Exemplo n.º 1
0
    def is_scrobbling(self, provider):
        state = None
        handle_sp_error(
            self.__session_interface.is_scrobbling(self.__session_struct,
                                                   provider, state))

        return state
Exemplo n.º 2
0
    def __init__(self,
                 callbacks,
                 cache_location="",
                 settings_location="",
                 app_key=None,
                 user_agent=None,
                 compress_playlists=False,
                 dont_save_metadata_for_playlists=False,
                 initially_unload_playlists=False,
                 device_id=None,
                 proxy=None,
                 proxy_username=None,
                 proxy_password=None,
                 ca_certs_filename=None,
                 tracefile=None):
        #Low level interface
        self.__session_interface = _session.SessionInterface()

        #Callback managers
        self._user_callbacks = spotify.CallbackQueueManager()
        self._metadata_callbacks = spotify.CallbackQueueManager()

        #prepare callbacks
        self.__callback_manager = spotify.CallbackManager()
        self.__callbacks = ProxySessionCallbacks(self, callbacks,
                                                 self.__callback_manager)

        #app key conversion
        appkey_c = (ctypes.c_byte * len(app_key))(*app_key)

        args = [
            self.api_version,
            cache_location,
            settings_location,
            appkey_c,
            ctypes.sizeof(appkey_c),
            user_agent,
            ctypes.pointer(self.__callbacks.get_callback_struct()),
            ctypes.c_void_p(),
            compress_playlists,
            dont_save_metadata_for_playlists,
            initially_unload_playlists,
            device_id,
            proxy,
            proxy_username,
            proxy_password,
            tracefile,
        ]

        #Linux builds have an extra member just before tracefile
        if is_linux():
            args.insert(-1, ca_certs_filename)

        #initialize app config
        config = _session.config(*args)

        self.__session_struct = ctypes.c_void_p()
        err = self.__session_interface.create(
            ctypes.byref(config), ctypes.byref(self.__session_struct))
        spotify.handle_sp_error(err)
Exemplo n.º 3
0
    def is_scrobbling_possible(self, provider):
        out = None
        handle_sp_error(
            self.__session_interface.is_scrobbling_possible(
                self.__session_struc, provider, out))

        return out
Exemplo n.º 4
0
    def __init__(
        self,
        callbacks,
        cache_location="",
        settings_location="",
        app_key=None,
        user_agent=None,
        compress_playlists=False,
        dont_save_metadata_for_playlists=False,
        initially_unload_playlists=False,
        device_id=None,
        proxy=None,
        proxy_username=None,
        proxy_password=None,
        ca_certs_filename=None,
        tracefile=None,
    ):
        # Low level interface
        self.__session_interface = _session.SessionInterface()

        # Callback managers
        self._user_callbacks = spotify.CallbackQueueManager()
        self._metadata_callbacks = spotify.CallbackQueueManager()

        # prepare callbacks
        self.__callback_manager = spotify.CallbackManager()
        self.__callbacks = ProxySessionCallbacks(self, callbacks, self.__callback_manager)

        # app key conversion
        appkey_c = (ctypes.c_byte * len(app_key))(*app_key)

        args = [
            self.api_version,
            cache_location,
            settings_location,
            appkey_c,
            ctypes.sizeof(appkey_c),
            user_agent,
            ctypes.pointer(self.__callbacks.get_callback_struct()),
            ctypes.c_void_p(),
            compress_playlists,
            dont_save_metadata_for_playlists,
            initially_unload_playlists,
            device_id,
            proxy,
            proxy_username,
            proxy_password,
            tracefile,
        ]

        # Linux builds have an extra member just before tracefile
        if is_linux():
            args.insert(-1, ca_certs_filename)

        # initialize app config
        config = _session.config(*args)

        self.__session_struct = ctypes.c_void_p()
        err = self.__session_interface.create(ctypes.byref(config), ctypes.byref(self.__session_struct))
        spotify.handle_sp_error(err)
 def remove_playlist(self, index):
     #FIXME: Should refresh index in _playlist_objects
     handle_sp_error(
         self.__container_interface.remove_playlist(
             self.__container_struct, index
         )
     )
Exemplo n.º 6
0
 def playlist_folder_name(self, container, index):
     buf = ctypes.create_string_buffer(255)
     handle_sp_error(
         container._PlaylistContainer__container_interface.playlist_folder_name(
             container._PlaylistContainer__container_struct, index, buf, 255
         )
     )
     return buf.value
Exemplo n.º 7
0
 def playlist_folder_name(self, container, index):
     buf = ctypes.create_string_buffer(255)
     handle_sp_error(
         container._PlaylistContainer__container_interface.
         playlist_folder_name(
             container._PlaylistContainer__container_struct, index, buf,
             255))
     return buf.value
 def playlist_folder_name(self, index):
     buf = (ctypes.c_char() * 255)()
     handle_sp_error(
         self.__container_interface.playlist_folder_name(
             self.__container_struct, index, ctypes.byref(buf), 255
         )
     )
     return buf.value
Exemplo n.º 9
0
 def is_scrobbling(self, provider):
     state = None
     handle_sp_error(
         self.__session_interface.is_scrobbling(
             self.__session_struct, provider, state
         )
     )
     
     return state
Exemplo n.º 10
0
 def is_scrobbling_possible(self, provider):
     out = None
     handle_sp_error(
         self.__session_interface.is_scrobbling_possible(
             self.__session_struc, provider, out
         )
     )
     
     return out
Exemplo n.º 11
0
    def remove_tracks(self, tracks):
        arr = (ctypes.c_int * len(tracks))()

        for index, item in enumerate(tracks):
            arr[index] = item

        handle_sp_error(
            self.__playlist_interface.remove_tracks(self.__playlist_struct,
                                                    ctypes.byref(arr),
                                                    len(tracks)))
Exemplo n.º 12
0
    def add_tracks(self, tracks, position, session):
        arr = (ctypes.c_void_p * len(tracks))()

        for index, item in enumerate(tracks):
            arr[index] = item.get_struct()

        handle_sp_error(
            self.__playlist_interface.add_tracks(self.__playlist_struct,
                                                 ctypes.byref(arr),
                                                 len(tracks), position,
                                                 session.get_struct()))
Exemplo n.º 13
0
 def remove_tracks(self, tracks):
     arr = (ctypes.c_int * len(tracks))()
     
     for index, item in enumerate(tracks):
         arr[index] = item
     
     handle_sp_error(
         self.__playlist_interface.remove_tracks(
             self.__playlist_struct, ctypes.byref(arr), len(tracks)
         )
     )
Exemplo n.º 14
0
 def add_tracks(self, tracks, position, session):
     arr = (ctypes.c_void_p * len(tracks))()
     
     for index, item in enumerate(tracks):
         arr[index] = item.get_struct()
     
     handle_sp_error(
         self.__playlist_interface.add_tracks(
             self.__playlist_struct,
             ctypes.byref(arr), len(tracks), position,
             session.get_struct()
         )
     )
Exemplo n.º 15
0
 def set_social_credentials(self, provider, username, password):
     handle_sp_error(
         self.__session_interface.set_social_credentials(
             self.__session_struct, provider, username, password))
 def add_folder(self, index, name):
     handle_sp_error(
         self.__container_interface.add_folder(
             self.__container_struct, index, name
         )
     )
Exemplo n.º 17
0
 def track_set_seen(self, index, seen):
     handle_sp_error(
         self.__playlist_interface.track_set_seen(self.__playlist_struct,
                                                  index, seen))
Exemplo n.º 18
0
 def set_scrobbling(self, provider, state):
     handle_sp_error(
         self.__session_interface.set_scrobbling(self.__session_struct,
                                                 provider, state))
Exemplo n.º 19
0
 def preferred_offline_bitrate(self, bitrate, allow_resync):
     handle_sp_error(
         self.__session_interface.preferred_offline_bitrate(
             self.__session_struct, bitrate, allow_resync))
Exemplo n.º 20
0
 def preferred_bitrate(self, bitrate):
     handle_sp_error(
         self.__session_interface.preferred_bitrate(self.__session_struct,
                                                    bitrate))
Exemplo n.º 21
0
 def player_prefetch(self, track):
     handle_sp_error(
         self.__session_interface.player_prefetch(self.__session_struct,
                                                  track.get_struct()))
Exemplo n.º 22
0
 def relogin(self):
     handle_sp_error(self.__session_interface.relogin(
         self.__session_struct))
Exemplo n.º 23
0
 def track_set_seen(self, index, seen):
     handle_sp_error(
         self.__playlist_interface.track_set_seen(
             self.__playlist_struct, index, seen
         )
     )
 def move_playlist(self, index, new_position, dry_run):
     handle_sp_error(
         self.__container_interface.move_playlist(
             self.__container_struct, new_position, dry_run
         )
     )
Exemplo n.º 25
0
 def set_social_credentials(self, provider, username, password):
     handle_sp_error(
         self.__session_interface.set_social_credentials(self.__session_struct, provider, username, password)
     )
Exemplo n.º 26
0
 def preferred_offline_bitrate(self, bitrate, allow_resync):
     handle_sp_error(
         self.__session_interface.preferred_offline_bitrate(self.__session_struct, bitrate, allow_resync)
     )
Exemplo n.º 27
0
 def player_prefetch(self, track):
     handle_sp_error(self.__session_interface.player_prefetch(self.__session_struct, track.get_struct()))
Exemplo n.º 28
0
 def rename(self, new_name):
     handle_sp_error(
         self.__playlist_interface.rename(self.__playlist_struct, new_name)
     )
Exemplo n.º 29
0
 def relogin(self):
     handle_sp_error(self.__session_interface.relogin(self.__session_struct))
Exemplo n.º 30
0
 def rename(self, new_name):
     handle_sp_error(
         self.__playlist_interface.rename(self.__playlist_struct, new_name))
Exemplo n.º 31
0
 def preferred_bitrate(self, bitrate):
     handle_sp_error(self.__session_interface.preferred_bitrate(self.__session_struct, bitrate))
Exemplo n.º 32
0
 def move_playlist(self, index, new_position, dry_run):
     handle_sp_error(
         self.__container_interface.move_playlist(self.__container_struct,
                                                  new_position, dry_run))
Exemplo n.º 33
0
 def set_scrobbling(self, provider, state):
     handle_sp_error(self.__session_interface.set_scrobbling(self.__session_struct, provider, state))
Exemplo n.º 34
0
 def add_folder(self, index, name):
     handle_sp_error(
         self.__container_interface.add_folder(self.__container_struct,
                                               index, name))
Exemplo n.º 35
0
 def logged_in(self, session, error):
     handle_sp_error(error)
     print "login successful"  
Exemplo n.º 36
0
 def logged_in(self, session, error):
     handle_sp_error(error)
     print "login successful"