Пример #1
0
    def read_device(self):
        """
        read all files from the device
        """
        log('Reading files from %s', self._config.mp3_player_folder, sender=self)
        tracks = []
        for root, dirs, files in os.walk(self._config.mp3_player_folder):
            for file in files:
                filename = os.path.join(root, file)

                if filename == self.playlist_file or fnmatch.fnmatch(filename, '*.dat') or fnmatch.fnmatch(filename, '*.DAT'):
                    # We don't want to have our playlist file as
                    # an entry in our file list, so skip it!
                    # We also don't want to include dat files
                    continue

                if self._config.mp3_player_playlist_absolute_path:
                    filename = filename[len(self.mountpoint):]
                else:
                    filename = util.relpath(os.path.dirname(self.playlist_file),
                                            os.path.dirname(filename)) + \
                               os.sep + os.path.basename(filename)

                if self._config.mp3_player_playlist_win_path:
                    filename = filename.replace(os.sep, '\\')

                tracks.append(filename)
        return tracks
Пример #2
0
    def on_btn_playlist_folder_clicked(self, widget):
        fs = Gtk.FileChooserDialog(title=_('Select folder for playlists'),
                action=Gtk.FileChooserAction.SELECT_FOLDER)
        fs.set_local_only(False)
        fs.add_button(_('_Cancel'), Gtk.ResponseType.CANCEL)
        fs.add_button(_('_Open'), Gtk.ResponseType.OK)

        device_folder = util.new_gio_file(self._config.device_sync.device_folder)
        playlists_folder = device_folder.resolve_relative_path(self._config.device_sync.playlists.folder)
        fs.set_file(playlists_folder)

        while fs.run() == Gtk.ResponseType.OK:
            filename = util.relpath(fs.get_uri(),
                                    self._config.device_sync.device_folder)
            if not filename:
                show_message_dialog(fs, _('The playlists folder must be on the device'))
                continue

            if self._config.device_sync.device_type == 'filesystem':
                self._config.device_sync.playlists.folder = filename
                self.btn_playlistfolder.set_label(filename or "")
                children = self.btn_playlistfolder.get_children()
                if children:
                    label = children.pop()
                    label.set_alignment(0., .5)
            break

        fs.destroy()
Пример #3
0
    def read_device(self):
        """
        read all files from the device
        """
        log('Reading files from %s',
            self._config.mp3_player_folder,
            sender=self)
        tracks = []
        for root, dirs, files in os.walk(self._config.mp3_player_folder):
            for file in files:
                filename = os.path.join(root, file)

                if filename == self.playlist_file or fnmatch.fnmatch(
                        filename, '*.dat') or fnmatch.fnmatch(
                            filename, '*.DAT'):
                    # We don't want to have our playlist file as
                    # an entry in our file list, so skip it!
                    # We also don't want to include dat files
                    continue

                if self._config.mp3_player_playlist_absolute_path:
                    filename = filename[len(self.mountpoint):]
                else:
                    filename = util.relpath(os.path.dirname(self.playlist_file),
                                            os.path.dirname(filename)) + \
                               os.sep + os.path.basename(filename)

                if self._config.mp3_player_playlist_win_path:
                    filename = filename.replace(os.sep, '\\')

                tracks.append(filename)
        return tracks
Пример #4
0
 def get_absolute_filename_for_playlist(self, episode):
     """
     get the filename including full path for the given episode for the playlist
     """
     filename = self.get_filename_for_playlist(episode)
     if self._config.device_sync.one_folder_per_podcast:
         filename = os.path.join(util.sanitize_filename(episode.channel.title), filename)
     if self._config.device_sync.playlist.absolute_path:
         filename = os.path.join(util.relpath(self.mountpoint, self._config.device_sync.device_folder), filename)
     return filename
Пример #5
0
 def get_absolute_filename_for_playlist(self, episode):
     """
     get the filename including full path for the given episode for the playlist
     """
     filename = self.get_filename_for_playlist(episode)
     foldername = episode_foldername_on_device(self._config, episode)
     if foldername:
         filename = os.path.join(foldername, filename)
     if self._config.device_sync.playlist.absolute_path:
         filename = os.path.join(util.relpath(self.mountpoint, self._config.device_sync.device_folder), filename)
     return filename
Пример #6
0
 def get_absolute_filename_for_playlist(self, episode):
     """
     get the filename including full path for the given episode for the playlist
     """
     filename = self.get_filename_for_playlist(episode)
     foldername = episode_foldername_on_device(self._config, episode)
     if foldername:
         filename = os.path.join(foldername, filename)
     if self._config.device_sync.playlist.absolute_path:
         filename = os.path.join(util.relpath(self._config.device_sync.device_folder, self.mountpoint.get_uri()), filename)
     return filename
Пример #7
0
    def on_btn_playlist_folder_clicked(self, widget):
        fs = gtk.FileChooserDialog(title=_("Select folder for playlists"), action=gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER)
        fs.add_button(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)
        fs.add_button(gtk.STOCK_OPEN, gtk.RESPONSE_OK)
        fs.set_current_folder(self.btn_playlistfolder.get_label())
        if fs.run() == gtk.RESPONSE_OK:
            filename = util.relpath(self._config.device_sync.device_folder, fs.get_filename())
            if self._config.device_sync.device_type == "filesystem":
                self._config.device_sync.playlists.folder = filename
                self.btn_playlistfolder.set_label(filename)
                children = self.btn_playlistfolder.get_children()
                if children:
                    label = children.pop()
                    label.set_alignment(0.0, 0.5)

        fs.destroy()
Пример #8
0
    def on_btn_playlist_folder_clicked(self, widget):
        fs = Gtk.FileChooserDialog(title=_('Select folder for playlists'),
                action=Gtk.FileChooserAction.SELECT_FOLDER)
        fs.add_button(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL)
        fs.add_button(Gtk.STOCK_OPEN, Gtk.ResponseType.OK)
        fs.set_current_folder(self.btn_playlistfolder.get_label())
        if fs.run() == Gtk.ResponseType.OK:
            filename = util.relpath(self._config.device_sync.device_folder,
                                    fs.get_filename())
            if self._config.device_sync.device_type == 'filesystem':
                self._config.device_sync.playlists.folder = filename
                self.btn_playlistfolder.set_label(filename)
                children = self.btn_playlistfolder.get_children()
                if children:
                    label = children.pop()
                    label.set_alignment(0., .5)

        fs.destroy()
Пример #9
0
    def on_btn_playlist_folder_clicked(self, widget):
        fs = Gtk.FileChooserDialog(title=_('Select folder for playlists'),
                action=Gtk.FileChooserAction.SELECT_FOLDER)
        fs.add_button(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL)
        fs.add_button(Gtk.STOCK_OPEN, Gtk.ResponseType.OK)
        fs.set_current_folder(self.btn_playlistfolder.get_label())
        if fs.run() == Gtk.ResponseType.OK:
            filename = util.relpath(self._config.device_sync.device_folder,
                                    fs.get_filename())
            if self._config.device_sync.device_type == 'filesystem':
                self._config.device_sync.playlists.folder = filename
                self.btn_playlistfolder.set_label(filename)
                children = self.btn_playlistfolder.get_children()
                if children:
                    label = children.pop()
                    label.set_alignment(0., .5)

        fs.destroy()