Hello community, here is the log from the commit of package lollypop for openSUSE:Factory checked in at 2019-12-28 13:40:49 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/lollypop (Old) and /work/SRC/openSUSE:Factory/.lollypop.new.6675 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lollypop" Sat Dec 28 13:40:49 2019 rev:115 rq:759772 version:1.2.18 Changes: -------- --- /work/SRC/openSUSE:Factory/lollypop/lollypop.changes 2019-11-27 13:55:52.984285870 +0100 +++ /work/SRC/openSUSE:Factory/.lollypop.new.6675/lollypop.changes 2019-12-28 13:40:59.702947379 +0100 @@ -1,0 +2,12 @@ +Sat Dec 28 09:38:20 UTC 2019 - antoine.belv...@opensuse.org + +- Update to version 1.2.18: + * Fix artists and albums appearing multiple times + (glgo#World/lollypop#2155). +- Changes from version 1.2.17: + * Fix an issue with album view (glgo#World/lollypop#2156). + * Fix a crash (glgo#World/lollypop#2150). + * Make "Playback options" menu faster (glgo#World/lollypop#2141). + * Fix a crash when editing tags (glgo#World/lollypop#2133). + +------------------------------------------------------------------- Old: ---- lollypop-1.2.16.tar.xz New: ---- lollypop-1.2.18.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ lollypop.spec ++++++ --- /var/tmp/diff_new_pack.n6C03U/_old 2019-12-28 13:41:00.790947928 +0100 +++ /var/tmp/diff_new_pack.n6C03U/_new 2019-12-28 13:41:00.802947934 +0100 @@ -17,7 +17,7 @@ Name: lollypop -Version: 1.2.16 +Version: 1.2.18 Release: 0 Summary: GNOME music playing application License: GPL-3.0-or-later ++++++ _service ++++++ --- /var/tmp/diff_new_pack.n6C03U/_old 2019-12-28 13:41:00.862947965 +0100 +++ /var/tmp/diff_new_pack.n6C03U/_new 2019-12-28 13:41:00.866947966 +0100 @@ -1,7 +1,7 @@ <services> <service mode="disabled" name="tar_scm"> <param name="changesgenerate">enable</param> - <param name="revision">1.2.16</param> + <param name="revision">1.2.18</param> <param name="scm">git</param> <param name="url">https://gitlab.gnome.org/World/lollypop.git</param> <param name="versionformat">@PARENT_TAG@</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.n6C03U/_old 2019-12-28 13:41:00.890947978 +0100 +++ /var/tmp/diff_new_pack.n6C03U/_new 2019-12-28 13:41:00.894947980 +0100 @@ -1,4 +1,4 @@ <servicedata> <service name="tar_scm"> <param name="url">https://gitlab.gnome.org/World/lollypop.git</param> - <param name="changesrevision">39beeb8b3f4d16fbb00ffd440d314e8bba315d7c</param></service></servicedata> \ No newline at end of file + <param name="changesrevision">084f016738c1e4d7cc51bfec326cc0d2cd9751d1</param></service></servicedata> \ No newline at end of file ++++++ lollypop-1.2.16.tar.xz -> lollypop-1.2.18.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.2.16/data/org.gnome.Lollypop.appdata.xml.in new/lollypop-1.2.18/data/org.gnome.Lollypop.appdata.xml.in --- old/lollypop-1.2.16/data/org.gnome.Lollypop.appdata.xml.in 2019-11-26 12:51:41.000000000 +0100 +++ new/lollypop-1.2.18/data/org.gnome.Lollypop.appdata.xml.in 2019-12-26 23:45:10.000000000 +0100 @@ -17,7 +17,7 @@ </ul> </description> <releases> - <release version="1.2.16" date="2019-11-26"> + <release version="1.2.18" date="2019-12-26"> <description> </description> </release> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.2.16/lollypop/art_album.py new/lollypop-1.2.18/lollypop/art_album.py --- old/lollypop-1.2.16/lollypop/art_album.py 2019-11-26 12:51:41.000000000 +0100 +++ new/lollypop-1.2.18/lollypop/art_album.py 2019-12-26 23:45:10.000000000 +0100 @@ -486,10 +486,9 @@ files = [] for track in album.tracks: App().tracks.set_mtime(track.id, int(time()) + 10) - filename = GLib.filename_from_uri(track.uri)[0] - if filename is not None: - files.append(filename) - + f = Gio.File.new_for_uri(track.uri) + if f.query_exists(): + files.append(f.get_path()) worked = False cover = "%s/lollypop_cover_tags.jpg" % CACHE_PATH arguments = [["kid3-cli", "-c", "set picture:'%s' ''" % cover], diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.2.16/lollypop/collectionscanner.py new/lollypop-1.2.18/lollypop/collectionscanner.py --- old/lollypop-1.2.16/lollypop/collectionscanner.py 2019-11-26 12:51:41.000000000 +0100 +++ new/lollypop-1.2.18/lollypop/collectionscanner.py 2019-12-26 23:45:10.000000000 +0100 @@ -23,7 +23,6 @@ from gettext import gettext as _ from time import time import json -from multiprocessing import cpu_count from lollypop.inotify import Inotify from lollypop.define import App, ScanType, Type, StorageType, ScanUpdate @@ -32,7 +31,7 @@ from lollypop.logger import Logger from lollypop.database_history import History from lollypop.utils import is_audio, is_pls, get_mtime, profile, create_dir -from lollypop.utils import split_list, emit_signal +from lollypop.utils import emit_signal SCAN_QUERY_INFO = "{},{},{},{},{},{}".format( @@ -66,7 +65,6 @@ self.__history = History() self.__progress_total = 1 self.__progress_count = 0 - self.__new_tracks = [] self.__new_non_album_artists = [] self.__disable_compilations = True if App().settings.get_value("auto-update"): @@ -493,28 +491,17 @@ db_mtimes = App().tracks.get_mtimes() self.__progress_total = len(files) self.__progress_count = 0 - split_files = split_list(files, max(1, cpu_count() // 2)) - self.__new_tracks = [] - threads = [] - for files in split_files: - thread = App().task_helper.run(self.__scan_files, files, db_mtimes, - scan_type) - threads.append(thread) - - # Wait for scan to finish - for thread in threads: - thread.join() - + new_tracks = self.__scan_files(files, db_mtimes, scan_type) self.__remove_old_tracks(db_uris, scan_type) SqlCursor.remove(App().db) if scan_type != ScanType.EXTERNAL: self.__add_monitor(dirs) - GLib.idle_add(self.__finish, self.__new_tracks) + GLib.idle_add(self.__finish, new_tracks) if scan_type == ScanType.EXTERNAL: - App().player.play_uris(self.__new_tracks) + App().player.play_uris(new_tracks) def __scan_to_handle(self, uri): """ @@ -546,6 +533,7 @@ @return new track uris as [str] @thread safe """ + new_tracks = [] SqlCursor.add(App().db) discoverer = Discoverer() try: @@ -569,7 +557,7 @@ mtime = int(time()) Logger.debug("Adding file: %s" % uri) self.__add2db(discoverer, uri, mtime, storage_type) - self.__new_tracks.append(uri) + new_tracks.append(uri) if db_mtime != 0: del db_mtimes[uri] except Exception as e: @@ -585,6 +573,7 @@ emit_signal(self, "artist-updated", artist_id, ScanUpdate.ADDED) SqlCursor.remove(App().db) + return new_tracks def __remove_old_tracks(self, uris, scan_type): """ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.2.16/lollypop/menu_edit.py new/lollypop-1.2.18/lollypop/menu_edit.py --- old/lollypop-1.2.16/lollypop/menu_edit.py 2019-11-26 12:51:41.000000000 +0100 +++ new/lollypop-1.2.18/lollypop/menu_edit.py 2019-12-26 23:45:10.000000000 +0100 @@ -159,27 +159,27 @@ # tag editor tag_editor = "kid3-qt" worked = False - path = GLib.filename_from_uri(self.__object.uri)[0] - if path is None: - return - arguments = [ - [tag_editor, path], - ["flatpak-spawn", "--host", tag_editor, path]] - for argv in arguments: - try: - (pid, stdin, stdout, stderr) = GLib.spawn_async( - argv, flags=GLib.SpawnFlags.SEARCH_PATH | - GLib.SpawnFlags.STDOUT_TO_DEV_NULL, - standard_input=False, - standard_output=False, - standard_error=False - ) - GLib.spawn_close_pid(pid) - worked = True - break - except Exception as e: - Logger.error( - "MenuPopover::__on_edit_tag_action_activate(): %s", e) - if not worked: - App().notify.send("Lollypop", - _("Please install EasyTAG or Kid3")) + f = Gio.File.new_for_uri(self.__object.uri) + if f.query_exists(): + path = f.get_path() + arguments = [ + [tag_editor, path], + ["flatpak-spawn", "--host", tag_editor, path]] + for argv in arguments: + try: + (pid, stdin, stdout, stderr) = GLib.spawn_async( + argv, flags=GLib.SpawnFlags.SEARCH_PATH | + GLib.SpawnFlags.STDOUT_TO_DEV_NULL, + standard_input=False, + standard_output=False, + standard_error=False + ) + GLib.spawn_close_pid(pid) + worked = True + break + except Exception as e: + Logger.error( + "MenuPopover::__on_edit_tag_action_activate(): %s", e) + if not worked: + App().notify.send("Lollypop", + _("Please install EasyTAG or Kid3")) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.2.16/lollypop/objects_track.py new/lollypop-1.2.18/lollypop/objects_track.py --- old/lollypop-1.2.16/lollypop/objects_track.py 2019-11-26 12:51:41.000000000 +0100 +++ new/lollypop-1.2.18/lollypop/objects_track.py 2019-12-26 23:45:10.000000000 +0100 @@ -11,7 +11,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -from gi.repository import GLib, Gio +from gi.repository import Gio import json @@ -224,10 +224,13 @@ def path(self): """ Get track file path - Alias to Track.path @return str """ - return GLib.filename_from_uri(self.uri)[0] + f = Gio.File.new_for_uri(self.uri) + path = f.get_path() + if path is None: + return "" + return path @property def album(self): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.2.16/lollypop/toolbar_end.py new/lollypop-1.2.18/lollypop/toolbar_end.py --- old/lollypop-1.2.16/lollypop/toolbar_end.py 2019-11-26 12:51:41.000000000 +0100 +++ new/lollypop-1.2.18/lollypop/toolbar_end.py 2019-12-26 23:45:10.000000000 +0100 @@ -232,7 +232,7 @@ App().add_action(action) item = Gio.MenuItem.new(_("All genres"), "app.all_party_ids") self.__party_submenu.append_item(item) - genres = App().genres.get() + genres = App().artists.get() genres.append((Type.WEB, _("Web"), _("Web"))) for (genre_id, name, sortname) in genres: in_party_ids = not party_ids or genre_id in party_ids diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.2.16/lollypop/utils.py new/lollypop-1.2.18/lollypop/utils.py --- old/lollypop-1.2.16/lollypop/utils.py 2019-11-26 12:51:41.000000000 +0100 +++ new/lollypop-1.2.18/lollypop/utils.py 2019-12-26 23:45:10.000000000 +0100 @@ -226,17 +226,6 @@ listbox.select_row(children[i]) -def split_list(l, n=1): - """ - Split list in n parts - @param l as [] - @param n as int - """ - length = len(l) - split = [l[i * length // n: (i + 1) * length // n] for i in range(n)] - return [l for l in split if l] - - def noaccents(string): """ Return string without accents lowered diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.2.16/lollypop/view_albums_box.py new/lollypop-1.2.18/lollypop/view_albums_box.py --- old/lollypop-1.2.16/lollypop/view_albums_box.py 2019-11-26 12:51:41.000000000 +0100 +++ new/lollypop-1.2.18/lollypop/view_albums_box.py 2019-12-26 23:45:10.000000000 +0100 @@ -342,10 +342,10 @@ Configure widget based on albums @param items as [Album] """ - self._box.set_min_children_per_line(len(albums)) - FlowBoxView.populate(self, albums) if albums: self.show() + self._box.set_min_children_per_line(len(albums)) + FlowBoxView.populate(self, albums) @property def args(self): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.2.16/lollypop/view_artists_rounded.py new/lollypop-1.2.18/lollypop/view_artists_rounded.py --- old/lollypop-1.2.16/lollypop/view_artists_rounded.py 2019-11-26 12:51:41.000000000 +0100 +++ new/lollypop-1.2.18/lollypop/view_artists_rounded.py 2019-12-26 23:45:10.000000000 +0100 @@ -160,6 +160,9 @@ """ if add: artist_ids = App().artists.get_ids() + # Can happen during scan + if artist_id not in artist_ids: + return position = artist_ids.index(artist_id) artist_name = App().artists.get_name(artist_id) sortname = App().artists.get_sortname(artist_id) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.2.16/lollypop/widgets_menu.py new/lollypop-1.2.18/lollypop/widgets_menu.py --- old/lollypop-1.2.16/lollypop/widgets_menu.py 2019-11-26 12:51:41.000000000 +0100 +++ new/lollypop-1.2.18/lollypop/widgets_menu.py 2019-12-26 23:45:10.000000000 +0100 @@ -10,7 +10,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -from gi.repository import Gtk, GObject, Gdk, GdkPixbuf +from gi.repository import Gtk, GObject, Gdk, GdkPixbuf, GLib from lollypop.objects_album import Album from lollypop.define import App, ArtSize, ArtBehaviour, MARGIN @@ -38,6 +38,8 @@ """ Gtk.Stack.__init__(self) self.__boxes = {} + self.__menu_queue = [] + self.__submenu_queue = [] self.__add_menu(menu, "main", False, scrolled) return [ (App().window, "adaptive-changed", "_on_adaptive_changed") @@ -90,8 +92,21 @@ button.set_label(menu_name) button.show() box.add(button) - n_items = menu.get_n_items() - for i in range(0, n_items): + menu_range = list(range(0, menu.get_n_items())) + if submenu: + self.__submenu_queue.append((menu, menu_name, menu_range)) + else: + self.__add_menu_items(menu, menu_name, menu_range) + + def __add_menu_items(self, menu, menu_name, indexes): + """ + Add menu items present in indexes + @param menu as Gio.Menu + @param menu_name as str + @param indexes as [int] + """ + if indexes: + i = indexes.pop(0) header = menu.get_item_attribute_value(i, "header") action = menu.get_item_attribute_value(i, "action") label = menu.get_item_attribute_value(i, "label") @@ -102,7 +117,9 @@ header_label = header[1] if header_type == HeaderType.ALBUM: album_id = header[2] - self.__add_album_header(header_label, album_id, menu_name) + self.__add_album_header(header_label, + album_id, + menu_name) elif header_type == HeaderType.ARTIST: artist_id = header[2] self.__add_artist_header(header_label, artist_id, @@ -118,13 +135,25 @@ link = menu.get_item_link(i, "section") submenu = menu.get_item_link(i, "submenu") if link is not None: + self.__menu_queue.append((menu, menu_name, indexes)) self.__add_section(label, link, menu_name) elif submenu is not None: self.__add_submenu(label, submenu, menu_name) + GLib.idle_add(self.__add_menu_items, menu, + menu_name, indexes) else: target = menu.get_item_attribute_value(i, "target") self.__add_item(label, action, target, tooltip, close, menu_name) + GLib.idle_add(self.__add_menu_items, menu, menu_name, indexes) + # Continue to populate queued menu + elif self.__menu_queue: + (menu, menu_name, indexes) = self.__menu_queue.pop(-1) + GLib.idle_add(self.__add_menu_items, menu, menu_name, indexes) + # Finish with submenus + elif self.__submenu_queue: + (menu, menu_name, indexes) = self.__submenu_queue.pop(-1) + GLib.idle_add(self.__add_menu_items, menu, menu_name, indexes) def __add_item(self, text, action, target, tooltip, close, menu_name): """ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.2.16/lollypop/widgets_rating.py new/lollypop-1.2.18/lollypop/widgets_rating.py --- old/lollypop-1.2.16/lollypop/widgets_rating.py 2019-11-26 12:51:41.000000000 +0100 +++ new/lollypop-1.2.18/lollypop/widgets_rating.py 2019-12-26 23:45:10.000000000 +0100 @@ -10,7 +10,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -from gi.repository import Gtk, GLib +from gi.repository import Gtk, GLib, Gio from gettext import gettext as _ from time import time @@ -166,7 +166,7 @@ def __set_popularity(self, pop): """ - Set popularity as kid3 is installed + Set popularity with kid3-cli @param pop as int """ if pop == 0: @@ -181,29 +181,32 @@ value = 196 else: value = 255 - path = GLib.filename_from_uri(self.__object.uri)[0] - arguments = [["kid3-cli", "-c", "set POPM %s" % value, path], - ["flatpak-spawn", "--host", "kid3-cli", "-c", - "set POPM %s" % value, path]] - if App().scanner.inotify is not None: - App().scanner.inotify.disable() - worked = False - for argv in arguments: - try: - (pid, stdin, stdout, stderr) = GLib.spawn_async( - argv, flags=GLib.SpawnFlags.SEARCH_PATH | - GLib.SpawnFlags.STDOUT_TO_DEV_NULL, - standard_input=False, - standard_output=False, - standard_error=False - ) - GLib.spawn_close_pid(pid) - # Force mtime update to not run a collection update - App().tracks.set_mtime(self.__object.id, int(time()) + 10) - worked = True - break - except Exception as e: - Logger.error("RatingWidget::__on_can_set_popularity(): %s" % e) - if not worked: - App().notify.send("Lollypop", - _("You need to install kid3-cli")) + f = Gio.File.new_for_uri(self.__object.uri) + if f.query_exists(): + path = f.get_path() + arguments = [["kid3-cli", "-c", "set POPM %s" % value, path], + ["flatpak-spawn", "--host", "kid3-cli", "-c", + "set POPM %s" % value, path]] + if App().scanner.inotify is not None: + App().scanner.inotify.disable() + worked = False + for argv in arguments: + try: + (pid, stdin, stdout, stderr) = GLib.spawn_async( + argv, flags=GLib.SpawnFlags.SEARCH_PATH | + GLib.SpawnFlags.STDOUT_TO_DEV_NULL, + standard_input=False, + standard_output=False, + standard_error=False + ) + GLib.spawn_close_pid(pid) + # Force mtime update to not run a collection update + App().tracks.set_mtime(self.__object.id, int(time()) + 10) + worked = True + break + except Exception as e: + Logger.error( + "RatingWidget::__on_can_set_popularity(): %s" % e) + if not worked: + App().notify.send("Lollypop", + _("You need to install kid3-cli")) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.2.16/meson.build new/lollypop-1.2.18/meson.build --- old/lollypop-1.2.16/meson.build 2019-11-26 12:51:41.000000000 +0100 +++ new/lollypop-1.2.18/meson.build 2019-12-26 23:45:10.000000000 +0100 @@ -1,5 +1,5 @@ project('lollypop', - version: '1.2.16', + version: '1.2.18', meson_version: '>= 0.40.0' ) i18n = import('i18n') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.2.16/org.gnome.Lollypop.json new/lollypop-1.2.18/org.gnome.Lollypop.json --- old/lollypop-1.2.16/org.gnome.Lollypop.json 2019-11-26 12:51:41.000000000 +0100 +++ new/lollypop-1.2.18/org.gnome.Lollypop.json 2019-12-26 23:45:10.000000000 +0100 @@ -27,36 +27,6 @@ "--env=DCONF_USER_CONFIG_DIR=.config/dconf" ], "modules": [{ - "name": "gst-libav", - "config-opts": [ - "--disable-gtk-doc" - ], - "cleanup": [ - "*.la", - "/share/gtk-doc" - ], - "sources": [{ - "type": "archive", - "url": "https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-1.14.4.tar.xz", - "sha256": "dfd78591901df7853eab7e56a86c34a1b03635da0d3d56b89aa577f1897865da" - }] - }, - { - "name": "gst-plugins-ugly", - "config-opts": [ - "--disable-gtk-doc" - ], - "cleanup": [ - "*.la", - "/share/gtk-doc" - ], - "sources": [{ - "type": "archive", - "url": "https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.14.4.tar.xz", - "sha256": "ac02d837f166c35ff6ce0738e281680d0b90052cfb1f0255dcf6aaca5f0f6d23" - }] - }, - { "name": "six", "buildsystem": "simple", "build-commands": [ @@ -92,21 +62,6 @@ "build-commands": [ "python3 setup.py install --prefix=/app --root=/" ], - "modules": [{ - "name": "openjpeg", - "buildsystem": "cmake-ninja", - "config-opts": [ - "-DCMAKE_BUILD_TYPE=Release" - ], - "cleanup": [ - "/bin" - ], - "sources": [{ - "type": "archive", - "url": "https://github.com/uclouvain/openjpeg/archive/v2.3.1.tar.gz", - "sha256": "63f5a4713ecafc86de51bfad89cc07bb788e9bba24ebbf0c4ca637621aadb6a9" - }] - }], "build-options": { "arch": { "i386": { @@ -129,8 +84,8 @@ ], "sources": [{ "type": "archive", - "url": "https://files.pythonhosted.org/packages/81/1a/6b2971adc1bca55b9a53ed1efa372acff7e8b9913982a396f3fa046efaf8/Pillow-6.0.0.tar.gz", - "sha256": "809c0a2ce9032cbcd7b5313f71af4bdc5c8c771cb86eb7559afd954cab82ebb5" + "url": "https://files.pythonhosted.org/packages/5b/bb/cdc8086db1f15d0664dd22a62c69613cdc00f1dd430b5b19df1bea83f2a3/Pillow-6.2.1.tar.gz", + "sha256": "bf4e972a88f8841d8fdc6db1a75e0f8d763e66e3754b03006cbc3854d89f1cb1" }] }, { @@ -149,24 +104,24 @@ "name": "python-urllib3", "buildsystem": "simple", "build-commands": [ - "pip3 install --prefix=/app urllib3-1.24.2-py2.py3-none-any.whl" + "pip3 install --prefix=/app urllib3-1.25.6-py2.py3-none-any.whl" ], "sources": [{ "type": "file", - "url": "https://files.pythonhosted.org/packages/df/1c/59cca3abf96f991f2ec3131a4ffe72ae3d9ea1f5894abe8a9c5e3c77cfee/urllib3-1.24.2-py2.py3-none-any.whl", - "sha256": "4c291ca23bbb55c76518905869ef34bdd5f0e46af7afe6861e8375643ffee1a0" + "url": "https://files.pythonhosted.org/packages/e0/da/55f51ea951e1b7c63a579c09dd7db825bb730ec1fe9c0180fc77bfb31448/urllib3-1.25.6-py2.py3-none-any.whl", + "sha256": "3de946ffbed6e6746608990594d08faac602528ac7015ac28d33cee6a45b7398" }] }, { "name": "python-certifi", "buildsystem": "simple", "build-commands": [ - "pip3 install --prefix=/app certifi-2019.3.9-py2.py3-none-any.whl" + "pip3 install --prefix=/app certifi-2019.9.11-py2.py3-none-any.whl" ], "sources": [{ "type": "file", - "url": "https://files.pythonhosted.org/packages/60/75/f692a584e85b7eaba0e03827b3d51f45f571c2e793dd731e598828d380aa/certifi-2019.3.9-py2.py3-none-any.whl", - "sha256": "59b7658e26ca9c7339e00f8f4636cdfe59d34fa37b9b04f6f9e9926b3cece1a5" + "url": "https://files.pythonhosted.org/packages/18/b0/8146a4f8dd402f60744fa380bc73ca47303cccf8b9190fd16a827281eac2/certifi-2019.9.11-py2.py3-none-any.whl", + "sha256": "fd7c7c74727ddcf00e9acd26bba8da604ffec95bf1c2144e67aff7a8b50e6cef" }] }, { @@ -185,35 +140,35 @@ "name": "python-requests", "buildsystem": "simple", "build-commands": [ - "pip3 install --prefix=/app requests-2.21.0-py2.py3-none-any.whl" + "pip3 install --prefix=/app requests-2.22.0-py2.py3-none-any.whl" ], "sources": [{ "type": "file", - "url": "https://files.pythonhosted.org/packages/7d/e3/20f3d364d6c8e5d2353c72a67778eb189176f08e873c9900e10c0287b84b/requests-2.21.0-py2.py3-none-any.whl", - "sha256": "7bf2a778576d825600030a110f3c0e3e8edc51dfaafe1c146e39a2027784957b" + "url": "https://files.pythonhosted.org/packages/51/bd/23c926cd341ea6b7dd0b2a00aba99ae0f828be89d72b2190f27c11d4b7fb/requests-2.22.0-py2.py3-none-any.whl", + "sha256": "9cf5292fcd0f598c671cfc1e0d7d1a7f13bb8085e9a590f48c010551dc6c4b31" }] }, { "name": "python-beautifulsoup4", "buildsystem": "simple", "build-commands": [ - "pip3 install --prefix=/app beautifulsoup4-4.7.1-py3-none-any.whl" + "pip3 install --prefix=/app beautifulsoup4-4.8.1-py3-none-any.whl" ], "sources": [{ "type": "file", - "url": "https://files.pythonhosted.org/packages/1d/5d/3260694a59df0ec52f8b4883f5d23b130bc237602a1411fa670eae12351e/beautifulsoup4-4.7.1-py3-none-any.whl", - "sha256": "034740f6cb549b4e932ae1ab975581e6103ac8f942200a0e9759065984391858" + "url": "https://files.pythonhosted.org/packages/3b/c8/a55eb6ea11cd7e5ac4bacdf92bac4693b90d3ba79268be16527555e186f0/beautifulsoup4-4.8.1-py3-none-any.whl", + "sha256": "dcdef580e18a76d54002088602eba453eec38ebbcafafeaabd8cab12b6155d57" }], "modules": [{ "name": "soupsieve", "buildsystem": "simple", "build-commands": [ - "pip3 install --prefix=/app soupsieve-1.9.1-py2.py3-none-any.whl" + "pip3 install --prefix=/app soupsieve-1.9.4-py2.py3-none-any.whl" ], "sources": [{ "type": "file", - "url": "https://files.pythonhosted.org/packages/b9/a5/7ea40d0f8676bde6e464a6435a48bc5db09b1a8f4f06d41dd997b8f3c616/soupsieve-1.9.1-py2.py3-none-any.whl", - "sha256": "6898e82ecb03772a0d82bd0d0a10c0d6dcc342f77e0701d0ec4a8271be465ece" + "url": "https://files.pythonhosted.org/packages/5d/42/d821581cf568e9b7dfc5b415aa61952b0f5e3dede4f3cbd650e3a1082992/soupsieve-1.9.4-py2.py3-none-any.whl", + "sha256": "b91d676b330a0ebd5b21719cb6e9b57c57d433671f65b9c28dd3461d9a1ed0b6" }] }] }, @@ -225,8 +180,8 @@ ], "sources": [{ "type": "archive", - "url": "https://pypi.python.org/packages/53/12/6bf1d764f128636cef7408e8156b7235b150ea31650d0260969215bb8e7d/PySocks-1.6.8.tar.gz#md5=441c4e3bf5b042f7e70613cd871df26c", - "sha256": "3fe52c55890a248676fd69dc9e3c4e811718b777834bcaab7a8125cf9deac672" + "url": "https://files.pythonhosted.org/packages/bd/11/293dd436aea955d45fc4e8a35b6ae7270f5b8e00b53cf6c024c83b657a11/PySocks-1.7.1.tar.gz", + "sha256": "3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0" }] }, { @@ -254,8 +209,8 @@ ], "sources": [{ "type": "archive", - "url": "https://files.pythonhosted.org/packages/73/56/90178929712ce427ebad179f8dc46c8deef4e89d4c853092bee1efd57d05/nltk-3.4.1.zip", - "sha256": "3a64b1cb685bbf344adec416871fee07996671c876ff313b3e504158fa1500e1" + "url": "https://files.pythonhosted.org/packages/f6/1d/d925cfb4f324ede997f6d47bea4d9babba51b49e87a767c170b77005889d/nltk-3.4.5.zip", + "sha256": "bed45551259aa2101381bbdd5df37d44ca2669c5c3dad72439fa459b29137d94" }] }] }, @@ -288,6 +243,24 @@ ] }, { + "name": "youtube-dl", + "buildsystem": "simple", + "build-commands": [ + "python3 setup.py install --prefix=/app" + ], + "ensure-writable": [ + "/lib/python*/site-packages/easy-install.pth", + "/lib/python*/site-packages/setuptools.pth", + "/app/lib/python*/site-packages/easy-install.pth", + "/app/lib/python*/site-packages/setuptools.pth" + ], + "sources": [{ + "type": "archive", + "url": "https://github.com/ytdl-org/youtube-dl/archive/2019.11.28.tar.gz", + "sha256": "372cbf0cdf1a3abbd6634f0a8a366622be19d7c03eab59cb3c8014a7a084d7a5" + }] + }, + { "name": "lollypop", "buildsystem": "meson", "sources": [{ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.2.16/subprojects/po/cs.po new/lollypop-1.2.18/subprojects/po/cs.po --- old/lollypop-1.2.16/subprojects/po/cs.po 2019-11-26 12:51:41.000000000 +0100 +++ new/lollypop-1.2.18/subprojects/po/cs.po 2019-12-26 23:45:10.000000000 +0100 @@ -12,7 +12,7 @@ "Project-Id-Version: lollypop\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-11-12 07:21+0100\n" -"PO-Revision-Date: 2019-08-27 16:29+0000\n" +"PO-Revision-Date: 2019-12-11 16:46+0000\n" "Last-Translator: Pavel Fric <pavelf...@yahoo.com>\n" "Language-Team: Czech <https://hosted.weblate.org/projects/gnumdk/lollypop/cs/" ">\n" @@ -21,7 +21,7 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Weblate 3.9-dev\n" +"X-Generator: Weblate 3.10-dev\n" #: ../data/org.gnome.Lollypop.gschema.xml:34 msgid "Window size" @@ -95,7 +95,7 @@ #: ../data/org.gnome.Lollypop.gschema.xml:104 msgid "If true, Lollypop will not use system youtube-dl" -msgstr "" +msgstr "Pokud je povoleno, Lollypop nebude používat youtube-dl systému" #: ../data/org.gnome.Lollypop.gschema.xml:109 msgid "Import playlists from collections" @@ -151,7 +151,7 @@ #: ../data/org.gnome.Lollypop.gschema.xml:154 msgid "ReplayGain value in dB" -msgstr "" +msgstr "Hodnota pro vyrovnání hlasitosti v dB" #: ../data/org.gnome.Lollypop.gschema.xml:155 msgid "Between -15 and 15" @@ -172,7 +172,7 @@ #: ../data/org.gnome.Lollypop.gschema.xml:174 msgid "Show tracks in artist view" -msgstr "" +msgstr "Ukázat skladby v přehledu umělců" #: ../data/org.gnome.Lollypop.gschema.xml:179 ../data/SettingsAppearance.ui:138 #: ../data/SettingsAppearance.ui:152 @@ -282,11 +282,11 @@ #: ../data/org.gnome.Lollypop.gschema.xml:318 msgid "Ignore internal symlinks" -msgstr "" +msgstr "Přehlížet vnitřní symbolické odkazy" #: ../data/org.gnome.Lollypop.gschema.xml:323 msgid "ReplayGain state" -msgstr "" +msgstr "Stav vyrovnání hlasitosti přehrávaných skladeb" #: ../data/org.gnome.Lollypop.gschema.xml:328 msgid "Possibilities for powermanagement options" @@ -334,6 +334,17 @@ " Description in appdata\n" " " msgstr "" +"\n" +"Reda Lazri:\n" +" ikona Lollypopu\n" +"Vývojářské družstvo Geary:\n" +" ikona pro symbolizaci seznamu značek\n" +"Projekt GNOME:\n" +" symbolizace nepřehraných alb\n" +" ikony pro symbolizaci seznamu umělců\n" +"Martins D. Okoi:\n" +" Popis v appdata\n" +" " #: ../data/AboutDialog.ui.in:65 msgid "Donations:" @@ -369,6 +380,13 @@ "couch thanks to it fullscreen mode; fetches lyrics, artwork and biography " "online; and provides native support for ReplayGain." msgstr "" +"Lollypop je lehký pokrokový přehrávač navržený tak, aby pracoval výborně v " +"prostředí pracovní plochy GNOME. Je vybaven i večírkovým režimem, v němž " +"jsou automaticky vybírány seznamy skladeb spojené se společenskými " +"událostmi. Díky svému celoobrazovkovému režimu dává možnost přehrávač " +"ovládat z pohodlí lehátka. Natahuje z internetových databází slova písní, " +"obrázky týkající se děl a umělců a životopisy. Poskytuje vlastní podporu pro " +"vyrovnání hlasitosti přehrávaných skladeb." #: ../data/org.gnome.Lollypop.appdata.xml.in:13 msgid "Multiple Audio Formats –" @@ -597,15 +615,15 @@ #: ../data/SettingsBehaviour.ui:364 msgid "ReplayGain" -msgstr "" +msgstr "Vyrovnání hlasitosti" #: ../data/SettingsBehaviour.ui:389 msgid "Disabled" -msgstr "" +msgstr "Zakázáno" #: ../data/SettingsBehaviour.ui:390 msgid "Track" -msgstr "" +msgstr "Skladba" #: ../data/SettingsBehaviour.ui:391 ../data/SmartPlaylistWidget.ui:30 msgid "Album" @@ -740,6 +758,8 @@ "FANART.TV\n" "<span size=\"x-small\" alpha=\"70%\">Artwork search</span>" msgstr "" +"FANART.TV\n" +"<span size=\"x-small\" alpha=\"70%\">Hledání výtvarných děl</span>" #: ../data/SettingsBehaviour.ui:921 msgid "Only in party mode" @@ -782,7 +802,7 @@ #: ../data/SettingsWeb.ui:312 ../data/SettingsWeb.ui:512 #: ../lollypop/widgets_settings_web.py:195 msgid "Disabled in network settings" -msgstr "" +msgstr "Zakázáno v nastavení sítě" #: ../data/SettingsWeb.ui:245 msgid "Libre.fm" @@ -837,18 +857,21 @@ "<span size=\"small\" alpha='40000'>Activate this if Web playback does not " "work</span>" msgstr "" +"Použít poslední verzi youtube-dl\n" +"<span size=\"small\" alpha='40000'>Zapnout, pokud nepracuje přehrávání " +"internetových stránek</span>" #: ../data/SettingsWeb.ui:475 msgid "Use an Invidious server" -msgstr "" +msgstr "Použít server Invidious" #: ../data/SettingsWeb.ui:493 msgid "No server set" -msgstr "" +msgstr "Nenastaven žádný server" #: ../data/SettingsWeb.ui:531 msgid "Google" -msgstr "" +msgstr "Google" #: ../data/Shortcuts.ui:13 msgctxt "shortcut window" @@ -868,7 +891,7 @@ #: ../data/Shortcuts.ui:31 msgctxt "shortcut window" msgid "Party mode" -msgstr "Večírek" +msgstr "Večírkový režim" #: ../data/Shortcuts.ui:38 msgctxt "shortcut window" @@ -1186,11 +1209,11 @@ #: ../lollypop/menu_artist.py:83 msgid "Albums on the Web" -msgstr "" +msgstr "Alba na internetu" #: ../lollypop/menu_artist.py:93 msgid "Show tracks" -msgstr "" +msgstr "Ukázat skladby" #: ../lollypop/menu_edit.py:58 ../lollypop/widgets_row_album.py:128 msgid "Save in collection" @@ -1210,7 +1233,7 @@ #: ../lollypop/menu_edit.py:184 msgid "Please install EasyTAG or Kid3" -msgstr "" +msgstr "Nainstalujte EasyTAG nebo Kid3" #: ../lollypop/menu_genre.py:43 ../lollypop/menu_objects.py:56 #: ../lollypop/menu_objects.py:77 ../lollypop/menu_objects.py:100 @@ -1233,7 +1256,7 @@ #: ../lollypop/menu_playback.py:47 ../lollypop/menu_playlist.py:61 msgid "Show tracks number" -msgstr "" +msgstr "Ukázat čísla skladeb" #: ../lollypop/menu_playback.py:48 ../lollypop/shown.py:41 #: ../lollypop/widgets_banner_current_albums.py:62 @@ -1250,19 +1273,19 @@ #: ../lollypop/menu_playback.py:138 msgid "Play this playlist" -msgstr "" +msgstr "Přehrát tento seznam skladeb" #: ../lollypop/menu_playback.py:179 msgid "Play this artist" -msgstr "" +msgstr "Přehrát tohoto umělce" #: ../lollypop/menu_playback.py:243 msgid "Play this genre" -msgstr "" +msgstr "Přehrát tento žánr" #: ../lollypop/menu_playback.py:317 msgid "Play this decade" -msgstr "" +msgstr "Přehrát toto desetiletí" #: ../lollypop/menu_playback.py:393 ../lollypop/widgets_row_album.py:120 msgid "Play this album" @@ -1298,7 +1321,7 @@ #: ../lollypop/menu_playlist.py:62 msgid "Playlist" -msgstr "" +msgstr "Seznam skladeb" #: ../lollypop/menu_playlist.py:90 msgid "Remove this playlist?" @@ -1403,7 +1426,7 @@ #: ../lollypop/shown.py:29 msgid "Seldomly played albums" -msgstr "" +msgstr "Zřídkakdy přehrávaná alba" #: ../lollypop/shown.py:31 ../lollypop/widgets_banner_radios.py:38 msgid "Radios" @@ -1455,11 +1478,11 @@ #: ../lollypop/shown.py:72 msgid "Seldomly played tracks" -msgstr "" +msgstr "Zřídkakdy přehrávané skladby" #: ../lollypop/shown.py:73 msgid "All tracks" -msgstr "" +msgstr "Všechny skladby" #: ../lollypop/toolbar_end.py:233 msgid "All genres" @@ -1502,7 +1525,7 @@ #: ../lollypop/view_albums_box.py:423 msgid "Others compilations" -msgstr "" +msgstr "Jiné kompilace" #: ../lollypop/view_albums_box.py:452 msgid "Popular albums at the moment" @@ -1569,7 +1592,7 @@ #: ../lollypop/view_suggestions.py:127 msgid "Welcome to Lollypop" -msgstr "" +msgstr "Vítejte v Lollypopu" #: ../lollypop/view_tracks.py:89 msgid "" @@ -1614,7 +1637,7 @@ #: ../lollypop/widgets_banner_today.py:68 msgid "<b>Album of the day</b>\n" -msgstr "" +msgstr "<b>Album dne</b>\n" #: ../lollypop/widgets_device.py:119 msgid "No synchronized albums" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.2.16/subprojects/po/nb_NO.po new/lollypop-1.2.18/subprojects/po/nb_NO.po --- old/lollypop-1.2.16/subprojects/po/nb_NO.po 2019-11-26 12:51:41.000000000 +0100 +++ new/lollypop-1.2.18/subprojects/po/nb_NO.po 2019-12-26 23:45:10.000000000 +0100 @@ -9,7 +9,7 @@ "Project-Id-Version: https://hosted.weblate.org/projects/gnumdk/\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-11-12 07:21+0100\n" -"PO-Revision-Date: 2019-11-11 14:10+0000\n" +"PO-Revision-Date: 2019-12-03 00:05+0000\n" "Last-Translator: Allan Nordhøy <ep...@anotheragency.no>\n" "Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/gnumdk/" "lollypop/nb_NO/>\n" @@ -378,6 +378,11 @@ "couch thanks to it fullscreen mode; fetches lyrics, artwork and biography " "online; and provides native support for ReplayGain." msgstr "" +"Lollypop er en moderne lettvektig musikkspiller designet for innpass i GNOME-" +"skrivebordsmiljøet. Det har også et festmodus som automatisk velger " +"festrelaterte spillelister; tillater kontroll fra sofaen takket være " +"fullskjermsmoduset; det henter sangtekster, omslag og biografier fra " +"Internett, og tilbyr innebygget støtte for ReplayGain." #: ../data/org.gnome.Lollypop.appdata.xml.in:13 msgid "Multiple Audio Formats –"