コード例 #1
0
    def open(self):
        Device.open(self)
        if not gpod_available:
            logger.error(
                'Please install the gpod module to sync with an iPod device.')
            return False
        if not os.path.isdir(self.mountpoint):
            return False

        self.notify('status', _('Opening iPod database'))
        self.itdb = gpod.itdb_parse(self.mountpoint, None)
        if self.itdb is None:
            return False

        self.itdb.mountpoint = self.mountpoint
        self.podcasts_playlist = gpod.itdb_playlist_podcasts(self.itdb)
        self.master_playlist = gpod.itdb_playlist_mpl(self.itdb)

        if self.podcasts_playlist:
            self.notify('status', _('iPod opened'))

            # build the initial tracks_list
            self.tracks_list = self.get_all_tracks()

            return True
        else:
            return False
コード例 #2
0
    def send_file_to_ipod(self, itdb, fname, tags):
        if not os.path.exists(fname):
            logger.error("File '%s' does not exist" % fname)
            return False

        logger.debug("Copying file '%s' to iPod..." % fname)
        podcasts = gpod.itdb_playlist_podcasts(itdb)
        track = gpod.itdb_track_new()
        track.visible = 1
        track.filetype = "mp3"
        track.ipod_path = fname
        track.album = str(tags['album'])
        track.artist = str(tags['artist'])
        track.title = str(tags['title'])
        track.genre = str(tags['genre'])
        track.tracklen = tags['length']
        track.playcount = 0
        gpod.itdb_track_add(itdb, track, -1)
        gpod.itdb_playlist_add_track(podcasts, track, -1)
        is_copied = gpod.itdb_cp_track_to_ipod(track, fname, None)
        if is_copied:
            logger.info("File '%s' has been successfully copied to iPod" % fname)
        else:
            # roll back
            logger.error("File '%s' could not be copied to iPod" % fname)
            gpod.itdb_playlist_remove_track(podcasts, track)
            gpod.itdb_track_remove(track)
        track = None
        gpod.itdb_write(itdb, None)
        return is_copied
コード例 #3
0
ファイル: peapod.py プロジェクト: huwlynes/peapod
 def copyToiPod(self,itdb,filename):
     """
     Copy file to iPod via gpod library.
     """
     track = gpod.itdb_track_new()
     pl=gpod.itdb_playlist_podcasts(itdb)
     audiofile = eyeD3.Mp3AudioFile(filename)
     tag = audiofile.getTag()
     for func, attrib in (('getArtist','artist'),
                          ('getTitle','title'),
                          ('getBPM','BPM'),
                          ('getPlayCount','playcount'),
                          ('getAlbum','album')):
         value = getattr(tag,func)()
         if value:
             value = value.encode("utf-8")
             setattr(track,attrib,value)
     track.skip_when_shuffling=0x01
     track.remember_playback_position=0x01
     track.mediatype = 0x00000004
     track.mark_unplayed = 0x02
     #track.flag4=0x01
     track.tracklen = audiofile.getPlayTime() * 1000
     gpod.itdb_track_add(itdb, track, -1)
     gpod.itdb_playlist_add_track(pl, track, -1)
     if gpod.itdb_cp_track_to_ipod(track,filename, None)!= 1:
         raise Exception('Unable to copy %s to iPod' % filename)
コード例 #4
0
ファイル: sync.py プロジェクト: uberchicgeekchick/alacast
    def open(self):
        if not os.path.isdir(self.mountpoint):
            return False

        self.notify('status', _('Opening iPod database'))
        self.itdb=gpod.itdb_parse(self.mountpoint, None)
        if self.itdb is None:
            return False

        self.itdb.mountpoint=self.mountpoint
        self.podcasts_playlist=gpod.itdb_playlist_podcasts(self.itdb)

        if self.podcasts_playlist:
            self.notify('status', _('iPod opened'))
            return True
        else:
            return False
コード例 #5
0
ファイル: sync.py プロジェクト: boyska/gpodder
    def open(self):
        Device.open(self)
        if not gpod_available or not os.path.isdir(self.mountpoint):
            return False

        self.notify('status', _('Opening iPod database'))
        self.itdb = gpod.itdb_parse(self.mountpoint, None)
        if self.itdb is None:
            return False

        self.itdb.mountpoint = self.mountpoint
        self.podcasts_playlist = gpod.itdb_playlist_podcasts(self.itdb)
        self.master_playlist = gpod.itdb_playlist_mpl(self.itdb)

        if self.podcasts_playlist:
            self.notify('status', _('iPod opened'))

            # build the initial tracks_list
            self.tracks_list = self.get_all_tracks()

            return True
        else:
            return False
コード例 #6
0
 def get_podcasts(self):
     """Get the podcasts playlist."""
     return Playlist(self,
                     proxied_playlist=gpod.itdb_playlist_podcasts(
                         self._itdb))
コード例 #7
0
ファイル: ipod.py プロジェクト: Babl0lka/libgpod
 def get_podcasts(self):
     """Get the podcasts playlist."""
     return Playlist(self,proxied_playlist=gpod.itdb_playlist_podcasts(self._itdb))