Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package osdlyrics for openSUSE:Factory 
checked in at 2026-10-21 20:56:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/osdlyrics (Old)
 and      /work/SRC/openSUSE:Factory/.osdlyrics.new.2252680 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "osdlyrics"

Wed Oct 21 20:56:16 2026 rev:16 rq:1386583 version:0.5.16

Changes:
--------
--- /work/SRC/openSUSE:Factory/osdlyrics/osdlyrics.changes      2026-02-16 
13:18:50.733882869 +0100
+++ /work/SRC/openSUSE:Factory/.osdlyrics.new.2252680/osdlyrics.changes 
2026-10-21 20:57:38.145356138 +0200
@@ -1,0 +2,9 @@
+Sat Oct 17 16:47:40 UTC 2026 - Martin Pluskal <[email protected]>
+
+- Update to version 0.5.16:
+  * Add LrcLib lyrics source.
+  * Remove Xiami lyrics source support.
+  * Correctly parse song title from filename.
+  * Fix build error (drop fix-build-with-gcc15.patch, adopted upstream).
+
+-------------------------------------------------------------------

Old:
----
  fix-build-with-gcc15.patch
  osdlyrics-0.5.15.tar.gz

New:
----
  osdlyrics-0.5.16.tar.gz

----------(Old B)----------
  Old:  * Correctly parse song title from filename.
  * Fix build error (drop fix-build-with-gcc15.patch, adopted upstream).
----------(Old E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ osdlyrics.spec ++++++
--- /var/tmp/diff_new_pack.FB2eeP/_old  2026-10-21 20:57:38.860386111 +0200
+++ /var/tmp/diff_new_pack.FB2eeP/_new  2026-10-21 20:57:38.861386153 +0200
@@ -17,15 +17,13 @@
 
 
 Name:           osdlyrics
-Version:        0.5.15
+Version:        0.5.16
 Release:        0
 Summary:        A third-party lyrics display program
 License:        GPL-3.0-or-later
-Group:          Productivity/Multimedia/Sound/Visualization
 URL:            https://github.com/osdlyrics/osdlyrics
 Source0:        
https://github.com/osdlyrics/osdlyrics/archive/%{version}/%{name}-%{version}.tar.gz
 Source1:        %{name}.appdata.xml
-Patch0:         fix-build-with-gcc15.patch
 BuildRequires:  fdupes
 BuildRequires:  gettext-devel
 BuildRequires:  glibc-devel
@@ -57,7 +55,6 @@
 
 %package -n python3-%{name}
 Summary:        Python module for osdlyrics
-Group:          Productivity/Multimedia/Sound/Visualization
 Requires:       %{name} = %{version}
 Obsoletes:      python-%{name} <= %{version}
 

++++++ osdlyrics-0.5.15.tar.gz -> osdlyrics-0.5.16.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osdlyrics-0.5.15/check-version.sh 
new/osdlyrics-0.5.16/check-version.sh
--- old/osdlyrics-0.5.15/check-version.sh       2023-12-20 15:02:07.000000000 
+0100
+++ new/osdlyrics-0.5.16/check-version.sh       2026-05-04 13:00:22.000000000 
+0200
@@ -1,7 +1,7 @@
 #h!/usr/bin/env sh
 
 GIT="${GIT:-git}"
-OL_VERSION="${OL_VERSION:-0.5.15}"
+OL_VERSION="${OL_VERSION:-0.5.16}"
 
 if [ ! "$("$GIT" rev-parse --show-prefix 2>/dev/null)" ]; then
   _GIT_VERSION="$("$GIT" describe --always --tags 2>/dev/null)"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osdlyrics-0.5.15/configure.ac 
new/osdlyrics-0.5.16/configure.ac
--- old/osdlyrics-0.5.15/configure.ac   2023-12-20 15:02:07.000000000 +0100
+++ new/osdlyrics-0.5.16/configure.ac   2026-05-04 13:00:22.000000000 +0200
@@ -132,7 +132,7 @@
 IT_PROG_INTLTOOL([0.35.0])
 AM_GNU_GETTEXT([external])
 AM_GNU_GETTEXT_VERSION([0.19])
-m4_ifdef([AM_GNU_GETTEXT_REQUIRE_VERSION],
+m4_ifdef([AM_GNU_GET][TEXT_REQUIRE_VERSION],
          [AM_GNU_GETTEXT_REQUIRE_VERSION([0.19])]
 )
 
@@ -159,11 +159,11 @@
         python/Makefile
         python/dbusext/Makefile
         lyricsources/Makefile
-        lyricsources/xiami/Makefile
         lyricsources/megalobiz/Makefile
         lyricsources/netease/Makefile
         lyricsources/netease_tr/Makefile
         lyricsources/subtitles4songs/Makefile
+        lyricsources/lrclib/Makefile
         tools/Makefile
 ])
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osdlyrics-0.5.15/doc/dbus.rst 
new/osdlyrics-0.5.16/doc/dbus.rst
--- old/osdlyrics-0.5.15/doc/dbus.rst   2023-12-20 15:02:07.000000000 +0100
+++ new/osdlyrics-0.5.16/doc/dbus.rst   2026-05-04 13:00:22.000000000 +0200
@@ -420,7 +420,7 @@
 
 To write a plugin to support a new lyric source to download or 
upload(optional), the plugins should follow the specification here.
 
-A lyric source plugin Must have a unique name, linke ``ttplayer`` or 
``xiami``. The well-known bus name should be 
``org.osdlyrics.LyricSourcePlugin.<pluginname>``. The object path should be 
``/org/osdlyrics/LyricSourcePlugin/<pluginname>``. ``<pluginname>`` here stands 
for the unique name of the plugin.
+A lyric source plugin Must have a unique name, like ``ttplayer``. The 
well-known bus name should be ``org.osdlyrics.LyricSourcePlugin.<pluginname>``. 
The object path should be ``/org/osdlyrics/LyricSourcePlugin/<pluginname>``. 
``<pluginname>`` here stands for the unique name of the plugin.
 
 All lyric source plugin should implement ``org.osdlyrics.LyricSourcePlugin`` 
interface. The interface is defined below:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osdlyrics-0.5.15/lyricsources/Makefile.am 
new/osdlyrics-0.5.16/lyricsources/Makefile.am
--- old/osdlyrics-0.5.15/lyricsources/Makefile.am       2023-12-20 
15:02:07.000000000 +0100
+++ new/osdlyrics-0.5.16/lyricsources/Makefile.am       2026-05-04 
13:00:22.000000000 +0200
@@ -1 +1 @@
-SUBDIRS = xiami megalobiz netease netease_tr subtitles4songs
+SUBDIRS = megalobiz netease netease_tr subtitles4songs lrclib
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osdlyrics-0.5.15/lyricsources/lrclib/Makefile.am 
new/osdlyrics-0.5.16/lyricsources/lrclib/Makefile.am
--- old/osdlyrics-0.5.15/lyricsources/lrclib/Makefile.am        1970-01-01 
01:00:00.000000000 +0100
+++ new/osdlyrics-0.5.16/lyricsources/lrclib/Makefile.am        2026-05-04 
13:00:22.000000000 +0200
@@ -0,0 +1,19 @@
+lrclib_PYTHON = lrclib.py
+
+lrclibdir = $(pkglibdir)/lyricsources/lrclib
+
+
+servicedir = $(datadir)/dbus-1/services
+service_in_files = org.osdlyrics.LyricSourcePlugin.lrclib.service.in
+service_DATA = $(service_in_files:.service.in=.service)
+
+EXTRA_DIST = \
+       $(service_in_files) \
+       $(NULL)
+
+$(service_DATA): $(service_in_files)
+       @sed -e "s|\@pkglibdir\@|$(pkglibdir)|" -e "s|\@PYTHON\@|$(PYTHON)|" $< 
> $@
+
+CLEANFILES = \
+       org.osdlyrics.LyricSourcePlugin.lrclib.service \
+       $(NULL)
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osdlyrics-0.5.15/lyricsources/lrclib/lrclib.py 
new/osdlyrics-0.5.16/lyricsources/lrclib/lrclib.py
--- old/osdlyrics-0.5.15/lyricsources/lrclib/lrclib.py  1970-01-01 
01:00:00.000000000 +0100
+++ new/osdlyrics-0.5.16/lyricsources/lrclib/lrclib.py  2026-05-04 
13:00:22.000000000 +0200
@@ -0,0 +1,147 @@
+# -*- coding: utf-8 -*-
+#
+# Copyright (C) 2025 OSD Lyrics Contributors
+#
+# This file is part of OSD Lyrics.
+#
+# OSD Lyrics is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# OSD Lyrics is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with OSD Lyrics.  If not, see <https://www.gnu.org/licenses/>.
+#
+
+import json
+import urllib.parse
+import gettext
+import http.client
+
+from osdlyrics.lyricsource import BaseLyricSourcePlugin, SearchResult
+from osdlyrics.utils import get_proxy_settings, http_download
+
+_ = gettext.gettext
+
+# API endpoints
+LRCLIB_HOST = 'https://lrclib.net'
+LRCLIB_SEARCH_PATH = '/api/search'
+LRCLIB_GET_PATH = '/api/get'
+LRCLIB_GET_CACHED_PATH = '/api/get-cached'
+
+# Set User-Agent as recommended in the API docs
+USER_AGENT = 'OSDLyrics v0.5.15 (https://github.com/osdlyrics/osdlyrics)'
+
+gettext.bindtextdomain('osdlyrics')
+gettext.textdomain('osdlyrics')
+
+
+class LrcLibSource(BaseLyricSourcePlugin):
+    """ Lyric source from https://lrclib.net/
+    """
+
+    def __init__(self):
+        super().__init__(id='lrclib', name=_('LrcLib'))
+
+    def do_search(self, metadata):
+        """
+        Search for lyrics using LrcLib API
+        """
+        # Prepare search parameters
+        params = {}
+        
+        # If both title and artist are available, use them for search
+        if metadata.title and metadata.artist:
+            params['track_name'] = metadata.title
+            params['artist_name'] = metadata.artist
+        # If only title is available, use it as a general query
+        elif metadata.title:
+            params['q'] = metadata.title
+        # If only artist is available, use it as a general query
+        elif metadata.artist:
+            params['q'] = metadata.artist
+        else:
+            # No search criteria available
+            return []
+            
+        # Add album name if available
+        if metadata.album:
+            params['album_name'] = metadata.album
+            
+        # Build the URL and make request
+        url = LRCLIB_HOST + LRCLIB_SEARCH_PATH
+        headers = {'User-Agent': USER_AGENT}
+        status, content = http_download(
+            url=url,
+            params=params,
+            headers=headers,
+            proxy=get_proxy_settings(self.config_proxy)
+        )
+        
+        # Check HTTP response code
+        if status < 200 or status >= 400:
+            if status == 404:
+                # Not found is a normal condition, return empty list
+                return []
+            raise http.client.HTTPException(status, content)
+            
+        # Parse JSON response
+        results = json.loads(content.decode('utf-8'))
+            
+        # Process search results
+        search_results = []
+        for result in results:
+            # Use the ID as downloadinfo - this is what we'll use to fetch 
lyrics
+            track_id = result.get('id')
+            if track_id:
+                search_results.append(
+                    SearchResult(
+                        title=result.get('trackName', ''),
+                        artist=result.get('artistName', ''),
+                        album=result.get('albumName', ''),
+                        sourceid=self.id,
+                        downloadinfo=str(track_id)
+                    )
+                )
+            
+        return search_results
+
+    def do_download(self, downloadinfo):
+        """
+        Download lyrics using LrcLib API
+        """
+        # downloadinfo is now just the track ID as a string
+        url = f"{LRCLIB_HOST}{LRCLIB_GET_PATH}/{downloadinfo}"
+        headers = {'User-Agent': USER_AGENT}
+        status, content = http_download(
+            url=url,
+            headers=headers,
+            proxy=get_proxy_settings(self.config_proxy)
+        )
+            
+        # Check HTTP response code
+        if status < 200 or status >= 400:
+            raise http.client.HTTPException(status, content)
+            
+        # Parse JSON response
+        result = json.loads(content.decode('utf-8'))
+        
+        # Check if we have synced lyrics
+        if result.get('syncedLyrics'):
+            return result['syncedLyrics'].encode('utf-8')
+        # Fall back to plain lyrics if no synced lyrics
+        elif result.get('plainLyrics'):
+            return result['plainLyrics'].encode('utf-8')
+        # Return empty string if no lyrics found
+        else:
+            return b''
+
+
+if __name__ == '__main__':
+    lls = LrcLibSource()
+    lls._app.run()
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/osdlyrics-0.5.15/lyricsources/lrclib/org.osdlyrics.LyricSourcePlugin.lrclib.service.in
 
new/osdlyrics-0.5.16/lyricsources/lrclib/org.osdlyrics.LyricSourcePlugin.lrclib.service.in
--- 
old/osdlyrics-0.5.15/lyricsources/lrclib/org.osdlyrics.LyricSourcePlugin.lrclib.service.in
  1970-01-01 01:00:00.000000000 +0100
+++ 
new/osdlyrics-0.5.16/lyricsources/lrclib/org.osdlyrics.LyricSourcePlugin.lrclib.service.in
  2026-05-04 13:00:22.000000000 +0200
@@ -0,0 +1,3 @@
+[D-BUS Service]
+Name=org.osdlyrics.LyricSourcePlugin.lrclib
+Exec=@PYTHON@ @pkglibdir@/lyricsources/lrclib/lrclib.py
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osdlyrics-0.5.15/lyricsources/xiami/Makefile.am 
new/osdlyrics-0.5.16/lyricsources/xiami/Makefile.am
--- old/osdlyrics-0.5.15/lyricsources/xiami/Makefile.am 2023-12-20 
15:02:07.000000000 +0100
+++ new/osdlyrics-0.5.16/lyricsources/xiami/Makefile.am 1970-01-01 
01:00:00.000000000 +0100
@@ -1,19 +0,0 @@
-xiami_PYTHON = xiami.py
-
-xiamidir = $(pkglibdir)/lyricsources/xiami
-
-
-servicedir = $(datadir)/dbus-1/services
-service_in_files = org.osdlyrics.LyricSourcePlugin.xiami.service.in
-service_DATA = $(service_in_files:.service.in=.service)
-
-EXTRA_DIST = \
-       $(service_in_files) \
-       $(NULL)
-
-$(service_DATA): $(service_in_files)
-       @sed -e "s|\@pkglibdir\@|$(pkglibdir)|" -e "s|\@PYTHON\@|$(PYTHON)|" $< 
> $@
-
-CLEANFILES = \
-       org.osdlyrics.LyricSourcePlugin.xiami.service \
-       $(NULL)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/osdlyrics-0.5.15/lyricsources/xiami/org.osdlyrics.LyricSourcePlugin.xiami.service.in
 
new/osdlyrics-0.5.16/lyricsources/xiami/org.osdlyrics.LyricSourcePlugin.xiami.service.in
--- 
old/osdlyrics-0.5.15/lyricsources/xiami/org.osdlyrics.LyricSourcePlugin.xiami.service.in
    2023-12-20 15:02:07.000000000 +0100
+++ 
new/osdlyrics-0.5.16/lyricsources/xiami/org.osdlyrics.LyricSourcePlugin.xiami.service.in
    1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-[D-BUS Service]
-Name=org.osdlyrics.LyricSourcePlugin.xiami
-Exec=@PYTHON@ @pkglibdir@/lyricsources/xiami/xiami.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osdlyrics-0.5.15/lyricsources/xiami/xiami.py 
new/osdlyrics-0.5.16/lyricsources/xiami/xiami.py
--- old/osdlyrics-0.5.15/lyricsources/xiami/xiami.py    2023-12-20 
15:02:07.000000000 +0100
+++ new/osdlyrics-0.5.16/lyricsources/xiami/xiami.py    1970-01-01 
01:00:00.000000000 +0100
@@ -1,122 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# Copyright (C) 2012 Tiger Soldier <[email protected]>
-#
-# This file is part of OSD Lyrics.
-#
-# OSD Lyrics is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# OSD Lyrics is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with OSD Lyrics.  If not, see <https://www.gnu.org/licenses/>.
-#
-
-# import urlparse
-import gettext
-import html.parser
-import http.client
-import re
-
-from osdlyrics.lyricsource import BaseLyricSourcePlugin, SearchResult
-from osdlyrics.utils import get_proxy_settings, http_download
-
-_ = gettext.gettext
-
-XIAMI_HOST = 'www.xiami.com'
-XIAMI_SEARCH_URL = '/search'
-XIAMI_SONG_URL = '/song/'
-XIAMI_LRC_URL = '/song/playlist/id/'
-XIAMI_SEARCH_PATTERN = re.compile(r'(<a 
[^<]*?href="http://www.xiami.com/song/(\w+)".*?>).*?(<a 
[^<]*?href="http://www.xiami.com/artist/.*?>).*?(<a 
[^<]*?href="http://www.xiami.com/album/.*?>)', re.DOTALL)
-XIAMI_ID_PATTERN = re.compile(r'<a [^<]*?onclick="tag\((\d+).*?>')
-XIAMI_URL_PATTERN = re.compile(r'<lyric>(.*?)</lyric>', re.DOTALL)
-TITLE_ATTR_PATTERN = re.compile(r'title="(.*?)"')
-
-gettext.bindtextdomain('osdlyrics')
-gettext.textdomain('osdlyrics')
-
-
-class XiamiSource(BaseLyricSourcePlugin):
-    """ Lyric source from xiami.com
-    """
-
-    def __init__(self):
-        super().__init__(id='xiami', name=_('Xiami'))
-
-    def do_search(self, metadata):
-        # type: (osdlyrics.metadata.Metadata) -> List[SearchResult]
-        keys = []
-        if metadata.title:
-            keys.append(metadata.title)
-        if metadata.artist:
-            keys.append(metadata.artist)
-        urlkey = '+'.join(keys).replace(' ', '+')
-        url = XIAMI_HOST + XIAMI_SEARCH_URL
-        status, content = http_download(url=url,
-                                        params={'key': urlkey},
-                                        
proxy=get_proxy_settings(self.config_proxy))
-        if status < 200 or status >= 400:
-            raise http.client.HTTPException(status, '')
-        match = XIAMI_SEARCH_PATTERN.findall(content.decode('utf8'))
-        result = []
-        if match:
-            for title_elem, id, artist_elem, album_elem in match:
-                title = TITLE_ATTR_PATTERN.search(title_elem).group(1)
-                artist = TITLE_ATTR_PATTERN.search(artist_elem).group(1)
-                album = TITLE_ATTR_PATTERN.search(album_elem).group(1)
-                url = self.get_url(id)
-                if url is not None:
-                    result.append(SearchResult(title=title,
-                                               artist=artist,
-                                               album=album,
-                                               sourceid=self.id,
-                                               downloadinfo=url))
-        return result
-
-    def get_songid(self, id):
-        status, content = http_download(url=XIAMI_HOST + XIAMI_SONG_URL + 
str(id),
-                                        
proxy=get_proxy_settings(self.config_proxy))
-        if status < 200 or status >= 400:
-            return None
-        match = XIAMI_ID_PATTERN.search(content)
-        if not match:
-            return None
-        songid = match.group(1).strip()
-        return songid
-
-    def get_url(self, id):
-        songid = self.get_songid(id)
-        status, content = http_download(url=XIAMI_HOST + XIAMI_LRC_URL + 
str(songid),
-                                        
proxy=get_proxy_settings(self.config_proxy))
-        if status < 200 or status >= 400:
-            return None
-        match = XIAMI_URL_PATTERN.search(content)
-        if not match:
-            return None
-        url = match.group(1).strip()
-        if url.lower().endswith('.lrc'):
-            return url
-        else:
-            return None
-
-    def do_download(self, downloadinfo):
-        # type: (Any) -> bytes
-        # parts = urlparse.urlparse(downloadinfo)
-        status, content = http_download(downloadinfo,
-                                        
proxy=get_proxy_settings(self.config_proxy))
-        if status < 200 or status >= 400:
-            raise http.client.HTTPException(status)
-        if content:
-            content = 
html.parser.HTMLParser().unescape(content.decode('utf-8'))
-        return content.encode('utf-8')
-
-
-if __name__ == '__main__':
-    xiami = XiamiSource()
-    xiami._app.run()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osdlyrics-0.5.15/po/POTFILES.in 
new/osdlyrics-0.5.16/po/POTFILES.in
--- old/osdlyrics-0.5.15/po/POTFILES.in 2023-12-20 15:02:07.000000000 +0100
+++ new/osdlyrics-0.5.16/po/POTFILES.in 2026-05-04 13:00:22.000000000 +0200
@@ -14,5 +14,4 @@
 lyricsources/megalobiz/megalobiz.py
 lyricsources/netease/netease.py
 lyricsources/netease_tr/netease_tr.py
-lyricsources/xiami/xiami.py
 lyricsources/subtitles4songs/subtitles4songs.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osdlyrics-0.5.15/po/cs.po 
new/osdlyrics-0.5.16/po/cs.po
--- old/osdlyrics-0.5.15/po/cs.po       2023-12-20 15:02:07.000000000 +0100
+++ new/osdlyrics-0.5.16/po/cs.po       2026-05-04 13:00:22.000000000 +0200
@@ -666,7 +666,3 @@
 #: ../data/osdlyrics.desktop.in.h:3
 msgid "Download and show lyrics for your favorite media player"
 msgstr "Stahuje a zobrazuje časovaný text k přehrávaným skladbám"
-
-#: ../lyricsources/xiami/xiami.py:49
-msgid "Xiami"
-msgstr ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osdlyrics-0.5.15/po/de.po 
new/osdlyrics-0.5.16/po/de.po
--- old/osdlyrics-0.5.15/po/de.po       2023-12-20 15:02:07.000000000 +0100
+++ new/osdlyrics-0.5.16/po/de.po       2026-05-04 13:00:22.000000000 +0200
@@ -107,10 +107,6 @@
 msgid "ttPlayer"
 msgstr ""
 
-#: ../src/ol_lrc_fetch_xiami.c:237
-msgid "Xiami"
-msgstr ""
-
 #: ../src/ol_lrc_candidate_list.c:43
 msgid "Title"
 msgstr "Titel"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osdlyrics-0.5.15/po/es.po 
new/osdlyrics-0.5.16/po/es.po
--- old/osdlyrics-0.5.15/po/es.po       2023-12-20 15:02:07.000000000 +0100
+++ new/osdlyrics-0.5.16/po/es.po       2026-05-04 13:00:22.000000000 +0200
@@ -106,10 +106,6 @@
 msgid "ttPlayer"
 msgstr ""
 
-#: ../src/ol_lrc_fetch_xiami.c:237
-msgid "Xiami"
-msgstr ""
-
 #: ../src/ol_lrc_candidate_list.c:43
 msgid "Title"
 msgstr "Título"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osdlyrics-0.5.15/po/fr.po 
new/osdlyrics-0.5.16/po/fr.po
--- old/osdlyrics-0.5.15/po/fr.po       2023-12-20 15:02:07.000000000 +0100
+++ new/osdlyrics-0.5.16/po/fr.po       2026-05-04 13:00:22.000000000 +0200
@@ -107,10 +107,6 @@
 msgid "ttPlayer"
 msgstr ""
 
-#: ../src/ol_lrc_fetch_xiami.c:237
-msgid "Xiami"
-msgstr ""
-
 #: ../src/ol_lrc_candidate_list.c:43
 msgid "Title"
 msgstr "Titre"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osdlyrics-0.5.15/po/it.po 
new/osdlyrics-0.5.16/po/it.po
--- old/osdlyrics-0.5.15/po/it.po       2023-12-20 15:02:07.000000000 +0100
+++ new/osdlyrics-0.5.16/po/it.po       2026-05-04 13:00:22.000000000 +0200
@@ -106,10 +106,6 @@
 msgid "ttPlayer"
 msgstr ""
 
-#: ../src/ol_lrc_fetch_xiami.c:237
-msgid "Xiami"
-msgstr ""
-
 #: ../src/ol_lrc_candidate_list.c:43
 msgid "Title"
 msgstr "Titolo"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osdlyrics-0.5.15/po/ms.po 
new/osdlyrics-0.5.16/po/ms.po
--- old/osdlyrics-0.5.15/po/ms.po       2023-12-20 15:02:07.000000000 +0100
+++ new/osdlyrics-0.5.16/po/ms.po       2026-05-04 13:00:22.000000000 +0200
@@ -106,10 +106,6 @@
 msgid "ttPlayer"
 msgstr ""
 
-#: ../src/ol_lrc_fetch_xiami.c:237
-msgid "Xiami"
-msgstr ""
-
 #: ../src/ol_lrc_candidate_list.c:43
 msgid "Title"
 msgstr "Tajuk"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osdlyrics-0.5.15/po/pt_BR.po 
new/osdlyrics-0.5.16/po/pt_BR.po
--- old/osdlyrics-0.5.15/po/pt_BR.po    2023-12-20 15:02:07.000000000 +0100
+++ new/osdlyrics-0.5.16/po/pt_BR.po    2026-05-04 13:00:22.000000000 +0200
@@ -106,10 +106,6 @@
 msgid "ttPlayer"
 msgstr ""
 
-#: ../src/ol_lrc_fetch_xiami.c:237
-msgid "Xiami"
-msgstr ""
-
 #: ../src/ol_lrc_candidate_list.c:43
 msgid "Title"
 msgstr "Título"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osdlyrics-0.5.15/po/ro.po 
new/osdlyrics-0.5.16/po/ro.po
--- old/osdlyrics-0.5.15/po/ro.po       2023-12-20 15:02:07.000000000 +0100
+++ new/osdlyrics-0.5.16/po/ro.po       2026-05-04 13:00:22.000000000 +0200
@@ -106,10 +106,6 @@
 msgid "ttPlayer"
 msgstr "ttPlayer"
 
-#: ../src/ol_lrc_fetch_xiami.c:237
-msgid "Xiami"
-msgstr "Xiami"
-
 #: ../src/ol_lrc_candidate_list.c:43
 msgid "Title"
 msgstr "Titlu"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osdlyrics-0.5.15/po/ru.po 
new/osdlyrics-0.5.16/po/ru.po
--- old/osdlyrics-0.5.15/po/ru.po       2023-12-20 15:02:07.000000000 +0100
+++ new/osdlyrics-0.5.16/po/ru.po       2026-05-04 13:00:22.000000000 +0200
@@ -107,10 +107,6 @@
 msgid "ttPlayer"
 msgstr ""
 
-#: ../src/ol_lrc_fetch_xiami.c:237
-msgid "Xiami"
-msgstr ""
-
 #: ../src/ol_lrc_candidate_list.c:43
 msgid "Title"
 msgstr "Заголовок"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osdlyrics-0.5.15/po/tr.po 
new/osdlyrics-0.5.16/po/tr.po
--- old/osdlyrics-0.5.15/po/tr.po       2023-12-20 15:02:07.000000000 +0100
+++ new/osdlyrics-0.5.16/po/tr.po       2026-05-04 13:00:22.000000000 +0200
@@ -106,10 +106,6 @@
 msgid "ttPlayer"
 msgstr ""
 
-#: ../src/ol_lrc_fetch_xiami.c:237
-msgid "Xiami"
-msgstr ""
-
 #: ../src/ol_lrc_candidate_list.c:43
 msgid "Title"
 msgstr "Başlık"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osdlyrics-0.5.15/po/uk.po 
new/osdlyrics-0.5.16/po/uk.po
--- old/osdlyrics-0.5.15/po/uk.po       2023-12-20 15:02:07.000000000 +0100
+++ new/osdlyrics-0.5.16/po/uk.po       2026-05-04 13:00:22.000000000 +0200
@@ -108,10 +108,6 @@
 msgid "ttPlayer"
 msgstr ""
 
-#: ../src/ol_lrc_fetch_xiami.c:237
-msgid "Xiami"
-msgstr ""
-
 #: ../src/ol_lrc_candidate_list.c:43
 msgid "Title"
 msgstr "Назва"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osdlyrics-0.5.15/po/zh_CN.po 
new/osdlyrics-0.5.16/po/zh_CN.po
--- old/osdlyrics-0.5.15/po/zh_CN.po    2023-12-20 15:02:07.000000000 +0100
+++ new/osdlyrics-0.5.16/po/zh_CN.po    2026-05-04 13:00:22.000000000 +0200
@@ -672,10 +672,6 @@
 msgid "Download and show lyrics for your favorite media player"
 msgstr "让你的音乐播放器支持下载和显示歌词"
 
-#: ../lyricsources/xiami/xiami.py:50
-msgid "Xiami"
-msgstr "虾米"
-
 #~ msgid "Cannot create the lyric directory"
 #~ msgstr "无法创建歌词目录"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osdlyrics-0.5.15/po/zh_HK.po 
new/osdlyrics-0.5.16/po/zh_HK.po
--- old/osdlyrics-0.5.15/po/zh_HK.po    2023-12-20 15:02:07.000000000 +0100
+++ new/osdlyrics-0.5.16/po/zh_HK.po    2026-05-04 13:00:22.000000000 +0200
@@ -101,10 +101,6 @@
 msgid "ttPlayer"
 msgstr ""
 
-#: ../src/ol_lrc_fetch_xiami.c:237
-msgid "Xiami"
-msgstr ""
-
 #: ../src/ol_lrc_candidate_list.c:43
 msgid "Title"
 msgstr "歌名"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osdlyrics-0.5.15/po/zh_TW.po 
new/osdlyrics-0.5.16/po/zh_TW.po
--- old/osdlyrics-0.5.15/po/zh_TW.po    2023-12-20 15:02:07.000000000 +0100
+++ new/osdlyrics-0.5.16/po/zh_TW.po    2026-05-04 13:00:22.000000000 +0200
@@ -101,10 +101,6 @@
 msgid "ttPlayer"
 msgstr ""
 
-#: ../src/ol_lrc_fetch_xiami.c:237
-msgid "Xiami"
-msgstr ""
-
 #: ../src/ol_lrc_candidate_list.c:43
 msgid "Title"
 msgstr "歌名"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osdlyrics-0.5.15/src/ol_config_property.h 
new/osdlyrics-0.5.16/src/ol_config_property.h
--- old/osdlyrics-0.5.15/src/ol_config_property.h       2023-12-20 
15:02:07.000000000 +0100
+++ new/osdlyrics-0.5.16/src/ol_config_property.h       2026-05-04 
13:00:22.000000000 +0200
@@ -33,7 +33,6 @@
 
 static const char *OL_CONFIG_DEFAULT_DOWNLOAD_ENGINE[] = {
   "ttPlayer",
-  "xiami",
   NULL,
 };
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osdlyrics-0.5.15/src/ol_keybindings.c 
new/osdlyrics-0.5.16/src/ol_keybindings.c
--- old/osdlyrics-0.5.15/src/ol_keybindings.c   2023-12-20 15:02:07.000000000 
+0100
+++ new/osdlyrics-0.5.16/src/ol_keybindings.c   2026-05-04 13:00:22.000000000 
+0200
@@ -51,8 +51,8 @@
   gtk_accel_group_connect_by_path (accel,
                                    "<OSD Lyrics>/Switch OSD",
                                    hide_closure);
-  ol_keybinder_bind ("<Ctrl><Shift>H", ol_osd_switch_display, NULL);
-  ol_keybinder_bind ("<Ctrl><Shift>L", ol_osd_lock_unlock, NULL);
+  ol_keybinder_bind ("<Ctrl><Shift>H", 
(OlBindkeyHandler)ol_osd_switch_display, NULL);
+  ol_keybinder_bind ("<Ctrl><Shift>L", (OlBindkeyHandler)ol_osd_lock_unlock, 
NULL);
 }
 
 GtkAccelGroup*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osdlyrics-0.5.15/src/ol_metadata.c 
new/osdlyrics-0.5.16/src/ol_metadata.c
--- old/osdlyrics-0.5.15/src/ol_metadata.c      2023-12-20 15:02:07.000000000 
+0100
+++ new/osdlyrics-0.5.16/src/ol_metadata.c      2026-05-04 13:00:22.000000000 
+0200
@@ -364,13 +364,28 @@
   char *tmp, *rhs;
 
   /* Remove track number, if any */
-  if ((tmp = strstr (new_title, ".")))
+  tmp = strstr (new_title, ".");
+  if (tmp != NULL && tmp != new_title)
   {
+    gboolean is_track_number = TRUE;
+    char *p;
+    for (p = new_title; p < tmp; p++)
+    {
+      if (!g_ascii_isdigit (*p) && !g_ascii_isspace(*p))
+      {
+        is_track_number = FALSE;
+        break;
+      }
+    }
+
+    if (is_track_number)
+    {
       rhs = g_strstrip (tmp + 1);
       if (strlen (rhs) > 0)
       {
         new_title = rhs;
       }
+    }
   }
   
   /*

Reply via email to