Esempio n. 1
0
def main():
    connection = DAAPClient()

    if len(sys.argv) > 1:
        host = sys.argv[1]
    else:
        host = "localhost"
    if len(sys.argv) > 2:
        port = sys.argv[2]
    else:
        port = 3689

    logging.basicConfig(
        level=logging.DEBUG, format='%(asctime)s %(levelname)s %(message)s'
    )

    try:
        # do everything in a big try, so we can disconnect at the end
        connection.connect(host, port)

        # auth isn't supported yet. Just log in
        session = connection.login()

        library = session.library()
        log.debug("Library name is `%r`", library.name)

        tracks = library.tracks()

        # demo - save the first track to disk
        # print("Saving %s by %s to disk as 'track.mp3'"%(tracks[0].name, tracks[0].artist))
        # tracks[0].save("track.mp3")
        if len(tracks) > 0:
            tracks[0].atom.printTree()
        else:
            print('No Tracks')
        session.update()
        print(session.revision)

    finally:
        # this here, so we logout even if there's an error somewhere,
        # or itunes will eventually refuse more connections.
        print("--------------")
        try:
            session.logout()
        except Exception:
            pass
Esempio n. 2
0
def main():
    connection = DAAPClient()

    if len(sys.argv) > 1:
        host = sys.argv[1]
    else:
        host = "localhost"
    if len(sys.argv) > 2:
        port = sys.argv[2]
    else:
        port = 3689

    logging.basicConfig(level=logging.DEBUG,
                        format='%(asctime)s %(levelname)s %(message)s')

    try:
        # do everything in a big try, so we can disconnect at the end
        connection.connect(host, port)

        # auth isn't supported yet. Just log in
        session = connection.login()

        library = session.library()
        log.debug("Library name is `%r`", library.name)

        tracks = library.tracks()

        # demo - save the first track to disk
        # print("Saving %s by %s to disk as 'track.mp3'"%(tracks[0].name, tracks[0].artist))
        # tracks[0].save("track.mp3")
        if len(tracks) > 0:
            tracks[0].atom.printTree()
        else:
            print('No Tracks')
        session.update()
        print(session.revision)

    finally:
        # this here, so we logout even if there's an error somewhere,
        # or itunes will eventually refuse more connections.
        print("--------------")
        try:
            session.logout()
        except Exception:
            pass
Esempio n. 3
0
    def connect(self, password=None):
        """
            Connect, login, and retrieve the track list.
        """
        try:
            client = DAAPClient()
            if AUTH and password:
                client.connect(self.server, self.port, password,
                               self.user_agent)
            else:
                client.connect(self.server, self.port, None, self.user_agent)
            self.session = client.login()
            self.connected = True
        #        except DAAPError:
        except Exception:
            logger.exception('failed to connect to ({0},{1})'.format(
                self.server, self.port))

            self.auth = True
            self.connected = False
            raise
Esempio n. 4
0
    def connect(self, password=None):
        """
            Connect, login, and retrieve the track list.
        """
        try:
            client = DAAPClient()
            if AUTH and password:
                client.connect(self.server, self.port, password, self.user_agent)
            else:
                client.connect(self.server, self.port, None, self.user_agent)
            self.session = client.login()
            self.connected = True
        #        except DAAPError:
        except Exception:
            logger.exception(
                'failed to connect to ({0},{1})'.format(self.server, self.port)
            )

            self.auth = True
            self.connected = False
            raise
Esempio n. 5
0
#
#   Check For python-avahi, we can work without
#  avahi, but wont be able to discover shares.
#

try:
    import avahi

    AVAHI = True
except ImportError:
    logger.warning('avahi not installed, can\'t auto-discover servers')
    AVAHI = False

# detect authoriztion support in python-daap
try:
    tmp = DAAPClient()
    tmp.connect("spam", "eggs", "sausage")  # dummy login
    del tmp
except TypeError:
    AUTH = False
except Exception:
    AUTH = True


class AttrDict(dict):
    def __getattr__(self, name):
        return self[name]


# helper function to parse avahi info into a list of tuples (for dict())
parse = functools.partial(
Esempio n. 6
0
#
#   Check For python-avahi, we can work without
#  avahi, but wont be able to discover shares.
#

try:
    import avahi

    AVAHI = True
except ImportError:
    logger.warning('avahi not installed, can\'t auto-discover servers')
    AVAHI = False

# detect authoriztion support in python-daap
try:
    tmp = DAAPClient()
    tmp.connect("spam", "eggs", "sausage")  # dummy login
    del tmp
except TypeError:
    AUTH = False
except Exception:
    AUTH = True


class AttrDict(dict):
    def __getattr__(self, name):
        return self[name]


# helper function to parse avahi info into a list of tuples (for dict())
parse = functools.partial(