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 –"


Reply via email to