Example #1
0
 def _savePlaylist(self):
     if self.config.playlist:
         text, ok = QtGui.QInputDialog.getText(self, "Playlist Name", "", QtGui.QLineEdit.Normal, get_random_name())
         text = unicode(text)
         if ok and text != '':
             conf = tanooki_library.get_or_create_config()
             conf['playlists'][text] = self.config.playlist[:]
             tanooki_library.save_config(conf)
             self._refreshPlaylists()
Example #2
0
def from_itunes_to_sg(sg_playlists, itunes):
    playlists = get_itunes_playlists(itunes)

    #removing old versions
    #map(lambda x: x.delete(), [playlist for playlist in playlists if playlist.name in sg_playlists])

    for playlist in [p for p in playlists if not p.Name in sg_playlists]:
        sg_playlists[playlist.Name] = [get_track_location(track) for track in playlist.Tracks if get_track_location(track).endswith('.mp3')]
    conf = tanooki_library.get_or_create_config()
    conf['playlists'] = sg_playlists
    tanooki_library.save_config(conf)
Example #3
0
 def toggleNotification(self, ischecked):
     if not ischecked:
         self.icon.hide()
     else:
         self.icon.show()
         if self.config.playlist:
             self.updateNowPlaying(self.config.playlist[self.config.idx])
         else:
             self.icon.setIcon(QtGui.QIcon(':/png/media/icon.png'))
     conf = tanooki_library.get_or_create_config()
     conf['notification'] = ischecked
     tanooki_library.save_config(conf)
Example #4
0
def sync_playlists(sg_playlists, itunes, only_export=False):
    it_playlists = get_itunes_playlists(itunes)

    for it_playlist in it_playlists:
        it_tracks = [os.path.abspath(get_track_location(t)) for t in it_playlist.Tracks if get_track_location(t).endswith('.mp3')]
        sg_tracks = [os.path.abspath(t) for t in sg_playlists[it_playlist.Name]]

        if not only_export:
            for it_track in [tr for tr in it_tracks if not tr in sg_tracks]:
                sg_playlists[it_playlist.Name].append(it_track)
        else:
            for it_track in [t for t in it_playlist.Tracks if get_track_location(t).endswith('.mp3') and
                             not os.path.abspath(get_track_location(t)) in sg_tracks]:
                it_track.Delete()

        for sg_track in [tr for tr in sg_tracks if not tr in it_tracks]:
            it_playlist = convert_user_playlist(it_playlist)
            it_playlist.AddFile(sg_track)

    if not only_export:
        conf = tanooki_library.get_or_create_config()
        conf['playlists'] = sg_playlists
        tanooki_library.save_config(conf)
Example #5
0
def export_playlists(sg_playlists, widget, only_export=False):

    try:
        qapp = QCoreApplication.instance()
        qapp.processEvents()
        widget.progressbar.setMaximum(100)
        widget.label.setText('Starting Itunes...')
        widget.emit(Qt.SIGNAL('updateProgress(int)'), 0)
        qapp.processEvents()

        if win32com.client.gencache.is_readonly:
            win32com.client.gencache.is_readonly = False
            win32com.client.gencache.Rebuild()
        from win32com.client.gencache import EnsureDispatch
        itunes = EnsureDispatch("iTunes.Application")

        widget.label.setText('Exporting to itunes...')
        widget.emit(Qt.SIGNAL('updateProgress(int)'), 25 if not only_export else 50)
        qapp.processEvents()
        from_sg_to_itunes(sg_playlists, widget, itunes)

        if not only_export:
            widget.label.setText('Importing to Super Gokya...')
            widget.emit(Qt.SIGNAL('updateProgress(int)'), 50)
            qapp.processEvents()
            from_itunes_to_sg(sg_playlists, itunes)

        widget.label.setText('Synchronizing playlists...')
        widget.emit(Qt.SIGNAL('updateProgress(int)'), 100)
        qapp.processEvents()
        sync_playlists(sg_playlists, itunes, only_export)
        conf = tanooki_library.get_or_create_config()
        conf['playlists'] = sg_playlists
        tanooki_library.save_config(conf)
    except Exception as e:
        open('bandicoot', 'a').write(str(datetime.datetime.now()) + '\t ' + str(e) + '\n')
Example #6
0
 def _deletePlaylist(self):
     item = self.playlists.takeItem(self.playlists.currentRow())
     conf = tanooki_library.get_or_create_config()
     del conf['playlists'][unicode(item.text())]
     tanooki_library.save_config(conf)