示例#1
0
static PyObject *
User_canonical_name(User * self)
{
    const char *s = sp_user_canonical_name(self->_user);

    return PyUnicode_FromString(s);
}
示例#2
0
static PyObject *
User_str(PyObject *self)
{
    User *a = (User *) self;
    const char *s = sp_user_canonical_name(a->_user);

    return PyUnicode_FromString(s);
}
示例#3
0
static PyObject *
Session_username(PyObject *self)
{
    sp_user *user = sp_session_user(Session_SP_SESSION(self));
    if (user == NULL) {
        PyErr_SetString(SpotifyError, "Not logged in");
        return NULL;
    }
    return PyUnicode_FromString(sp_user_canonical_name(user));
};
示例#4
0
文件: spotify.c 项目: theodoor/spop
gboolean get_username(gchar** username){
    if(sp_session_user(g_session)){
        *username = g_strdup((gchar*)sp_user_canonical_name(sp_session_user(g_session)));
        return TRUE;
    }
    else{
        *username = g_strdup("No user");
        return FALSE;
    }
}
示例#5
0
static PyObject *Session_username(Session *self) {
    sp_user *user;
    user = sp_session_user(self->_session);
    if(user == NULL) {
        PyErr_SetString(SpotifyError, "no user returned from session");
        return NULL;
    }
    const char *username = sp_user_canonical_name(user);
    return PyString_FromString(username);
};
示例#6
0
sp_playlist *
sp_session_starred_create(sp_session *session)
{
  if (sp_session_connectionstate(session) != SP_CONNECTION_STATE_LOGGED_IN)
  {
    return NULL;
  }

  return sp_session_starred_for_user_create(session, sp_user_canonical_name(session->user));
}
示例#7
0
QSpotifyUser::QSpotifyUser(sp_user *user)
    : QSpotifyObject(true)
{
    Q_ASSERT(user);
    sp_user_add_ref(user);
    m_sp_user = user;
    m_canonicalName = QString::fromUtf8(sp_user_canonical_name(m_sp_user));

    connect(this, SIGNAL(dataChanged()), this, SIGNAL(userDataChanged()));
}
/**
  credentialsBlobUpdated
  callback from login when we get the blob, used instead of plain password
  will send blob to application to storage
  @note its up the the application to store it
  @note2: it will be fired more than once, always store latest blob
  @note3: if user have no cache, it will fire once, if cache it will (maybe) update current blob
  **/
void SpotifySession::credentialsBlobUpdated(sp_session *session, const char *blob)
{

    SpotifySession* _session = reinterpret_cast<SpotifySession*>(sp_session_userdata(session));
#if SPOTIFY_API_VERSION >= 12
    const char* username = sp_session_user_name( session );
#else
    const char* username = sp_user_canonical_name( sp_session_user( session ) );
#endif
    _session->m_blob = QByteArray(blob);
    qDebug() << " ==== Got blob update for " << QString::fromUtf8(username, strlen(username) ) << " ==== ";
    emit _session->blobUpdated( username, QByteArray(blob).constData() );
}
示例#9
0
bool QSpotifyUser::updateData()
{
    QString canonicalName = QString::fromUtf8(sp_user_canonical_name(m_sp_user));
    QString displayName = QString::fromUtf8(sp_user_display_name(m_sp_user));

    bool updated = false;
    if (m_canonicalName != canonicalName) {
        m_canonicalName = canonicalName;
        updated = true;
    }
    if (m_displayName != displayName) {
        m_displayName = displayName;
        updated = true;
    }

    return updated;
}
示例#10
0
static void
spotify_cb_logged_in (sp_session *spotify_session, sp_error error)
{
  if (SP_ERROR_OK != error) {
    GST_CAT_ERROR_OBJECT (gst_spot_src_debug_cb, ugly_spot, "Failed to log in to Spotify: %s", sp_error_message (error));
    return;
  }

  sp_user *me = sp_session_user (spotify_session);
  const char *my_name = (sp_user_is_loaded (me) ?
                         sp_user_display_name (me) :
                         sp_user_canonical_name (me));
  GST_CAT_DEBUG_OBJECT (gst_spot_src_debug_cb, ugly_spot, "Logged_in callback, user=%s", my_name);
  /* set default bitrate to audiofility */
  sp_session_preferred_bitrate(spotify_session, SP_BITRATE_320k);
  GST_SPOT_SRC_LOGGED_IN (ugly_spot) = TRUE;
}
示例#11
0
/**
 * This callback is called when an attempt to login has succeeded or failed.
 *
 * @sa sp_session_callbacks#logged_in
 */
static void logged_in(sp_session *session, sp_error error)
{
  sp_user *me;
  const char *my_name;

  if (SP_ERROR_OK != error) {
    fprintf(stderr, "failed to log in to Spotify: %s\n",
                    sp_error_message(error));
    sp_session_release(session);
    exit(4);
  }

  // Let us print the nice message...
  me = sp_session_user(session);
  my_name = (sp_user_is_loaded(me) ? sp_user_display_name(me) : sp_user_canonical_name(me));

  fprintf(stderr, "Logged in to Spotify as user %s\n", my_name);
}
示例#12
0
void SpotifyUser::updateData()
{
    bool updated = false;

    QString canonicalName = QString::fromUtf8(sp_user_canonical_name(m_spUser));
    QString displayName = QString::fromUtf8(sp_user_display_name(m_spUser));
    bool loaded = sp_user_is_loaded(m_spUser);

    if(exchange(canonicalName, m_canonicalName)) {
        updated = true;
    }

    if(exchange(displayName, m_displayName)) {
        updated = true;
    }

    if(exchange(m_loaded, loaded)) {
        updated = true;
    }
}
示例#13
0
/**
 * This callback is called when an attempt to login has succeeded or failed.
 *
 * @sa sp_session_callbacks#logged_in
 */
static void logged_in(sp_session *session, sp_error error)
{
	sp_user *me;
	const char *my_name;

	if (SP_ERROR_OK != error) {
		fprintf(stderr, "failed to log in to Spotify: %s\n",
		                sp_error_message(error));
		sp_session_release(session);
		exit(4);
	}

	// Let us print the nice message...
	me = sp_session_user(session);
	my_name = (sp_user_is_loaded(me) ? sp_user_display_name(me) : sp_user_canonical_name(me));

	fprintf(stderr, "Logged in to Spotify as user %s\n", my_name);
    sp_playlist *pl = sp_playlist_create(session, sp_link_create_from_string("spotify:user:devnevyn:playlist:44ZXlJstDZrwuQvWPOo7KX"));
    empty_callbacks.playlist_state_changed = foo;
    sp_playlist_add_callbacks(pl, &empty_callbacks, NULL);
}
示例#14
0
static void sess_callback_logged_in(sp_session *session, sp_error error) {
	sp_user *user;

	if(error != SP_ERROR_OK) {
		syslog(LOG_ERR, "Session: Login failed with error: %s", sp_error_message(error));

		/* The logout callback is called automatically in libspotify 12 */
		return;
	}

	user = sp_session_user(session);
	if(user != NULL) {
		syslog(LOG_INFO, "Session: Successfully logged in as user %s <%s>",
			sp_user_display_name(user), sp_user_canonical_name(user));
	}

	/* No point in sharing usage from this program */
	syslog(LOG_DEBUG, "Session: enabling private listening mode");
	sp_session_set_private_session(session, 1);

	/* Notify app of login to hook up rootlist callbacks */
	app_post_event(APP_LOGGED_IN);
}
示例#15
0
/**
 * This callback is called when an attempt to login has succeeded or failed.
 *
 * @sa sp_session_callbacks#logged_in
 */
static void logged_in(sp_session *session, sp_error error)
{
	sp_user *me;
	const char *my_name;

	if (SP_ERROR_OK != error) {
		fprintf(stderr, "failed to log in to Spotify: %s\n",
		                sp_error_message(error));
		exit(4);
	}

	// Let us print the nice message...
	me = sp_session_user(session);
	my_name = (sp_user_is_loaded(me) ? sp_user_display_name(me) : sp_user_canonical_name(me));

	fprintf(stderr, "Logged in to Spotify as user %s\n", my_name);


	// Below are parts related to the playlist manager
	// error == OK is true by now.
	logged_in_playlist(session);

	start_prompt();
}
示例#16
0
JNIEXPORT jobject JNICALL Java_jahspotify_impl_JahSpotifyImpl_retrieveUser (JNIEnv *env, jobject obj)
{
    sp_user *user = sp_session_user(g_sess);
    const char *value = NULL;
    int country = 0;

    while (!sp_user_is_loaded(user))
    {
        fprintf ( stderr, "jahspotify::Java_jahspotify_impl_JahSpotifyImpl_retrieveUser: waiting for user to load\n" );
        sleep(1);
    }

    jclass jClass = (*env)->FindClass(env, "jahspotify/media/User");
    if (jClass == NULL)
    {
        fprintf(stderr,"jahspotify::Java_jahspotify_impl_JahSpotifyImpl_retrieveUser: could not load jahnotify.media.User\n");
        return NULL;
    }

    jobject userInstance = (*env)->AllocObject(env,jClass);
    if (!userInstance)
    {
        fprintf(stderr,"jahspotify::Java_jahspotify_impl_JahSpotifyImpl_retrieveUser: could not create instance of jahspotify.media.User\n");
        return NULL;
    }

    while (!sp_user_is_loaded(user))
    {
        sleep(1);
    }

    if (sp_user_is_loaded(user))
    {
        fprintf ( stderr, "jahspotify::Java_jahspotify_impl_JahSpotifyImpl_retrieveUser: user is loaded\n" );
        value = sp_user_full_name(user);
        if (value)
        {
            setObjectStringField(env,userInstance,"fullName",value);
        }
        value = sp_user_canonical_name(user);
        if (value)
        {
            setObjectStringField(env,userInstance,"userName",value);
        }
        value = sp_user_display_name(user);
        if (value)
        {
            setObjectStringField(env,userInstance,"displayName",value);
        }
        value = sp_user_picture(user);
        if (value)
        {
            setObjectStringField(env,userInstance,"imageURL",value);
        }

        // Country encoded in an integer 'SE' = 'S' << 8 | 'E'
        country = sp_session_user_country(g_sess);
        char countryStr[] = "  ";
        countryStr[0] = (byte)(country >> 8);
        countryStr[1] = (byte)country;
        setObjectStringField(env,userInstance,"country",countryStr);

        return userInstance;
    }

    return NULL;

}