Compare commits

..
Author SHA1 Message Date
Jonah Brüchert 701e5cfddc Port to QCoro 2022-08-24 09:16:06 +02:00
48 changed files with 432 additions and 567 deletions

No files matched your search

+4 -1
View File
@@ -8,7 +8,7 @@ project(audiotube)
include(FeatureSummary)
set(PROJECT_VERSION "22.09")
set(PROJECT_VERSION "22.06")
set(QT5_MIN_VERSION 5.15)
set(KF5_MIN_VERSION 5.81)
@@ -32,12 +32,15 @@ ecm_setup_version(${PROJECT_VERSION}
)
kde_enable_exceptions()
add_compile_options(-fsanitize=address)
add_link_options(-fsanitize=address)
find_package(Qt5 ${QT5_MIN_VERSION} REQUIRED COMPONENTS Core Gui Qml QuickControls2 Svg Sql)
find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS Kirigami2 I18n CoreAddons Crash)
find_package(pybind11 REQUIRED)
find_package(Ytdlp REQUIRED RUNTIME)
find_package(YTMusicAPI REQUIRED RUNTIME)
find_package(QCoro5 REQUIRED COMPONENTS Core Qml Network)
ki18n_install(po)
+5 -5
View File
@@ -5,11 +5,6 @@
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"yt-dlp\" --no-build-isolation"
],
"sources": [
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/10/a5/6e8b3a3f9caa535543f342254ee15e711cb26e974b54f998e90e17e1fe09/yt_dlp-2022.9.1-py2.py3-none-any.whl",
"sha256": "af3721ecb286a95272008add3b9bebde4f370fb3bdd1bb6402727af9e2e3aa2b"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/f8/a3/622d9acbfb9a71144b5d7609906bc648c62e3ca5fdbb1c8cca222949d82c/websockets-10.3.tar.gz",
@@ -30,6 +25,11 @@
"url": "https://files.pythonhosted.org/packages/e9/06/d3d367b7af6305b16f0d28ae2aaeb86154fa91f144f036c2d5002a5a202b/certifi-2022.6.15-py3-none-any.whl",
"sha256": "fe86415d55e84719d75f8b69414f6438ac3547d2078ab91b67e779ef69378412"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/1f/13/b1f7b4e44b11584a5f077af87895961b57911217a629efb8d3a9efd2a491/yt_dlp-2022.7.18-py2.py3-none-any.whl",
"sha256": "d7d1f81d230756f094b4d9ee59b37b2c13b2e63ff5fb72cda53625edb072cdae"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/52/0d/6cc95a83f6961a1ca041798d222240890af79b381e97eda3b9b538dba16f/pycryptodomex-3.15.0.tar.gz",
+4 -4
View File
@@ -7,13 +7,13 @@
"sources": [
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/db/51/a507c856293ab05cdc1db77ff4bc1268ddd39f29e7dc4919aa497f0adbec/charset_normalizer-2.1.1-py3-none-any.whl",
"sha256": "83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f"
"url": "https://files.pythonhosted.org/packages/94/69/64b11e8c2fb21f08634468caef885112e682b0ebe2908e74d3616eb1c113/charset_normalizer-2.1.0-py3-none-any.whl",
"sha256": "5189b6f22b01957427f35b6a08d9a0bc45b46d3788ef5a92e978433c7a35f8a5"
},
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/6f/de/5be2e3eed8426f871b170663333a0f627fc2924cc386cd41be065e7ea870/urllib3-1.26.12-py2.py3-none-any.whl",
"sha256": "b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997"
"url": "https://files.pythonhosted.org/packages/68/47/93d3d28e97c7577f563903907912f4b3804054e4877a5ba6651f7182c53b/urllib3-1.26.10-py2.py3-none-any.whl",
"sha256": "8298d6d56d39be0e3bc13c1c97d133f9b45d797169a0e11cdd0e0489d786f7ec"
},
{
"type": "file",
-3
View File
@@ -95,9 +95,6 @@ SPDX-License-Identifier: CC0-1.0
<content_rating type="oars-1.0"/>
<url type="homepage">https://apps.kde.org/en/audiotube</url>
<releases>
<release version="22.09" date="2022-09-27">
<url>https://www.plasma-mobile.org/2022/09/27/plasma-mobile-gear-22-09/</url>
</release>
<release version="22.06" date="2022-06-24">
<url>https://www.plasma-mobile.org/2022/06/28/plasma-mobile-gear-22-06/</url>
<description>
+9 -14
View File
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
"PO-Revision-Date: 2022-08-28 22:19+0400\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-05-28 23:09+0400\n"
"Last-Translator: Zayed Al-Saidi <[email protected]>\n"
"Language-Team: Arabic <[email protected]>\n"
"Language: ar\n"
@@ -38,47 +38,42 @@ msgstr "شغّل"
msgid "Shuffle"
msgstr "اخلط"
#: contents/ui/AlbumPage.qml:35 contents/ui/ArtistPage.qml:19
#, kde-format
msgid "Open in Browser"
msgstr "افتح في المتصفّح"
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "شغل التالي"
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "أضف إلى قائمة التّشغيل"
#: contents/ui/ArtistPage.qml:47 contents/ui/SearchPage.qml:67
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
"\"%1\"?"
msgstr "تشغيل الفيديو غير مدعوم حتى الآن. هل تريد تشغيل صوت فقط من \"%1\"؟"
#: contents/ui/ArtistPage.qml:63 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#, kde-format
msgid "Albums"
msgstr "الألبومات"
#: contents/ui/ArtistPage.qml:65
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Singles"
msgstr "فردي"
#: contents/ui/ArtistPage.qml:67 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#, kde-format
msgid "Songs"
msgstr "أغاني"
#: contents/ui/ArtistPage.qml:69 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#, kde-format
msgid "Videos"
msgstr "الفيديوهات"
+8 -13
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-06-19 12:16+0400\n"
"Last-Translator: Kheyyam <[email protected]>\n"
"Language-Team: Azerbaijani <[email protected]>\n"
@@ -37,25 +37,20 @@ msgstr "Başladın"
msgid "Shuffle"
msgstr "Qarışıq"
#: contents/ui/AlbumPage.qml:35 contents/ui/ArtistPage.qml:19
#, kde-format
msgid "Open in Browser"
msgstr ""
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Sonrakını oxudun"
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Mahnı siyahısına əlavə edin"
#: contents/ui/ArtistPage.qml:47 contents/ui/SearchPage.qml:67
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -64,22 +59,22 @@ msgstr ""
"Video göstərilməsi hələlik dəstəklənmir. Siz yalnız \"%1\" videosunun səsini "
"oynatmaq istəyirsiniz?"
#: contents/ui/ArtistPage.qml:63 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#, kde-format
msgid "Albums"
msgstr "Albomlar"
#: contents/ui/ArtistPage.qml:65
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Singles"
msgstr "Musiqilər"
#: contents/ui/ArtistPage.qml:67 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#, kde-format
msgid "Songs"
msgstr "Mahnılar"
#: contents/ui/ArtistPage.qml:69 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#, kde-format
msgid "Videos"
msgstr "Videolar"
+9 -14
View File
@@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
"PO-Revision-Date: 2022-08-27 10:31+0200\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-05-26 09:09+0200\n"
"Last-Translator: Josep M. Ferrer <[email protected]>\n"
"Language-Team: Catalan <[email protected]>\n"
"Language: ca\n"
@@ -40,25 +40,20 @@ msgstr "Reprodueix"
msgid "Shuffle"
msgstr "Barreja"
#: contents/ui/AlbumPage.qml:35 contents/ui/ArtistPage.qml:19
#, kde-format
msgid "Open in Browser"
msgstr "Obre en el navegador"
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Reprodueix el següent"
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Afegeix a la llista de reproducció"
#: contents/ui/ArtistPage.qml:47 contents/ui/SearchPage.qml:67
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -67,22 +62,22 @@ msgstr ""
"Encara no s'admet la reproducció de vídeo. Voleu reproduir només l'àudio de "
"«%1»?"
#: contents/ui/ArtistPage.qml:63 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#, kde-format
msgid "Albums"
msgstr "Àlbums"
#: contents/ui/ArtistPage.qml:65
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Singles"
msgstr "Individuals"
#: contents/ui/ArtistPage.qml:67 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#, kde-format
msgid "Songs"
msgstr "Cançons"
#: contents/ui/ArtistPage.qml:69 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#, kde-format
msgid "Videos"
msgstr "Vídeos"
+10 -15
View File
@@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
"PO-Revision-Date: 2022-08-27 10:31+0200\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-05-26 09:09+0200\n"
"Last-Translator: Josep M. Ferrer <[email protected]>\n"
"Language-Team: Catalan <[email protected]>\n"
"Language: ca@valencia\n"
@@ -40,25 +40,20 @@ msgstr "Reproduïx"
msgid "Shuffle"
msgstr "Barreja"
#: contents/ui/AlbumPage.qml:35 contents/ui/ArtistPage.qml:19
#, kde-format
msgid "Open in Browser"
msgstr "Obri en el navegador"
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Reproduïx el següent"
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Afig a la llista de reproducció"
#: contents/ui/ArtistPage.qml:47 contents/ui/SearchPage.qml:67
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -67,22 +62,22 @@ msgstr ""
"Encara no s'admet la reproducció de vídeo. Voleu reproduir només l'àudio de "
"«%1»?"
#: contents/ui/ArtistPage.qml:63 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#, kde-format
msgid "Albums"
msgstr "Àlbums"
#: contents/ui/ArtistPage.qml:65
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Singles"
msgstr "Individuals"
#: contents/ui/ArtistPage.qml:67 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#, kde-format
msgid "Songs"
msgstr "Cançons"
#: contents/ui/ArtistPage.qml:69 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#, kde-format
msgid "Videos"
msgstr "Vídeos"
@@ -196,4 +191,4 @@ msgstr "Ràdio"
#: contents/ui/SearchPage.qml:147
#, kde-format
msgid "Find music on YouTube Music"
msgstr "Busca en la Música de Youtube"
msgstr "Busca a la Música de Youtube"
+8 -13
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-06-28 13:58+0200\n"
"Last-Translator: Vit Pelcak <[email protected]>\n"
"Language-Team: Czech <[email protected]>\n"
@@ -37,25 +37,20 @@ msgstr "Přehrát"
msgid "Shuffle"
msgstr "Zamíchat"
#: contents/ui/AlbumPage.qml:35 contents/ui/ArtistPage.qml:19
#, kde-format
msgid "Open in Browser"
msgstr "Otevřít v prohlížeči"
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Přehrát následující"
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Přidat do seznamu skladeb"
#: contents/ui/ArtistPage.qml:47 contents/ui/SearchPage.qml:67
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -64,22 +59,22 @@ msgstr ""
"Přehrávání videa ještě není podporováno. Chcete z \"%1\" přehrávat pouze "
"zvuk?"
#: contents/ui/ArtistPage.qml:63 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#, kde-format
msgid "Albums"
msgstr "Alba"
#: contents/ui/ArtistPage.qml:65
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Singles"
msgstr "Samotné"
#: contents/ui/ArtistPage.qml:67 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#, kde-format
msgid "Songs"
msgstr "Písně"
#: contents/ui/ArtistPage.qml:69 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#, kde-format
msgid "Videos"
msgstr "Videa"
+8 -13
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-07-02 12:04+0200\n"
"Last-Translator: Frederik Schwarzer <[email protected]>\n"
"Language-Team: German <[email protected]>\n"
@@ -38,25 +38,20 @@ msgstr "Wiedergabe"
msgid "Shuffle"
msgstr "Zufällig"
#: contents/ui/AlbumPage.qml:35 contents/ui/ArtistPage.qml:19
#, kde-format
msgid "Open in Browser"
msgstr ""
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Nächste Wiedergabe"
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Zur Wiedergabeliste hinzufügen"
#: contents/ui/ArtistPage.qml:47 contents/ui/SearchPage.qml:67
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -65,22 +60,22 @@ msgstr ""
"Die Video-Wiedergabe wird noch nicht unterstützt. Möchten Sie nur die "
"Audiospur von „%1“ abspielen?"
#: contents/ui/ArtistPage.qml:63 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#, kde-format
msgid "Albums"
msgstr "Alben"
#: contents/ui/ArtistPage.qml:65
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Singles"
msgstr "Singles"
#: contents/ui/ArtistPage.qml:67 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#, kde-format
msgid "Songs"
msgstr "Songs"
#: contents/ui/ArtistPage.qml:69 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#, kde-format
msgid "Videos"
msgstr "Videos"
+10 -15
View File
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
"PO-Revision-Date: 2022-08-29 12:04+0100\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-07-22 15:55+0100\n"
"Last-Translator: Steve Allewell <[email protected]>\n"
"Language-Team: British English <[email protected]>\n"
"Language: en_GB\n"
@@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Lokalize 22.08.0\n"
"X-Generator: Lokalize 22.04.3\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
@@ -37,25 +37,20 @@ msgstr "Play"
msgid "Shuffle"
msgstr "Shuffle"
#: contents/ui/AlbumPage.qml:35 contents/ui/ArtistPage.qml:19
#, kde-format
msgid "Open in Browser"
msgstr "Open in Browser"
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Play Next"
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Add to Playlist"
#: contents/ui/ArtistPage.qml:47 contents/ui/SearchPage.qml:67
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -64,22 +59,22 @@ msgstr ""
"Video playback is not supported yet. Do you want to play only the audio of "
"\"%1\"?"
#: contents/ui/ArtistPage.qml:63 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#, kde-format
msgid "Albums"
msgstr "Albums"
#: contents/ui/ArtistPage.qml:65
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Singles"
msgstr "Singles"
#: contents/ui/ArtistPage.qml:67 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#, kde-format
msgid "Songs"
msgstr "Songs"
#: contents/ui/ArtistPage.qml:69 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#, kde-format
msgid "Videos"
msgstr "Videos"
+10 -15
View File
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
"PO-Revision-Date: 2022-08-30 04:36+0200\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-05-27 12:34+0200\n"
"Last-Translator: Eloy Cuadra <[email protected]>\n"
"Language-Team: Spanish <[email protected]>\n"
"Language: es\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Lokalize 22.08.0\n"
"X-Generator: Lokalize 22.04.1\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
@@ -39,25 +39,20 @@ msgstr "Reproducir"
msgid "Shuffle"
msgstr "Desordenar"
#: contents/ui/AlbumPage.qml:35 contents/ui/ArtistPage.qml:19
#, kde-format
msgid "Open in Browser"
msgstr "Abrir en el navegador"
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Reproducir siguiente"
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Añadir a la lista de reproducción"
#: contents/ui/ArtistPage.qml:47 contents/ui/SearchPage.qml:67
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -66,22 +61,22 @@ msgstr ""
"La reproducción de vídeo aún no está permitida. ¿Desea reproducir solo el "
"sonido de «%1»?"
#: contents/ui/ArtistPage.qml:63 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#, kde-format
msgid "Albums"
msgstr "Álbumes"
#: contents/ui/ArtistPage.qml:65
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Singles"
msgstr "Sencillos"
#: contents/ui/ArtistPage.qml:67 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#, kde-format
msgid "Songs"
msgstr "Canciones"
#: contents/ui/ArtistPage.qml:69 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#, kde-format
msgid "Videos"
msgstr "Vídeos"
+9 -14
View File
@@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
"PO-Revision-Date: 2022-08-27 07:27+0200\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-07-18 22:37+0200\n"
"Last-Translator: Iñigo Salvador Azurmendi <[email protected]>\n"
"Language-Team: Basque <[email protected]>\n"
"Language: eu\n"
@@ -40,25 +40,20 @@ msgstr "Jo"
msgid "Shuffle"
msgstr "Nahastu"
#: contents/ui/AlbumPage.qml:35 contents/ui/ArtistPage.qml:19
#, kde-format
msgid "Open in Browser"
msgstr "Ireki arakatzailean"
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Jo hurrengoa"
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Gehitu jotze-zerrendara"
#: contents/ui/ArtistPage.qml:47 contents/ui/SearchPage.qml:67
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -67,22 +62,22 @@ msgstr ""
"Oraindik ez dago bideoa atzera jotzeko euskarririk. «%1»(r)en audioa "
"bakarrik jo nahi duzu?"
#: contents/ui/ArtistPage.qml:63 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#, kde-format
msgid "Albums"
msgstr "Albumak"
#: contents/ui/ArtistPage.qml:65
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Singles"
msgstr "Banakoa"
#: contents/ui/ArtistPage.qml:67 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#, kde-format
msgid "Songs"
msgstr "Abestiak"
#: contents/ui/ArtistPage.qml:69 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#, kde-format
msgid "Videos"
msgstr "Bideoak"
+8 -13
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-06-13 19:11+0300\n"
"Last-Translator: Tommi Nieminen <[email protected]>\n"
"Language-Team: Finnish <[email protected]>\n"
@@ -37,25 +37,20 @@ msgstr "Toista"
msgid "Shuffle"
msgstr "Sekoita"
#: contents/ui/AlbumPage.qml:35 contents/ui/ArtistPage.qml:19
#, kde-format
msgid "Open in Browser"
msgstr ""
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Toista seuraava"
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Lisää soittolistaan"
#: contents/ui/ArtistPage.qml:47 contents/ui/SearchPage.qml:67
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -63,22 +58,22 @@ msgid ""
msgstr ""
"Videotoistoa ei vielä tueta. Haluatko toistaa videosta ”%1” vain äänen?"
#: contents/ui/ArtistPage.qml:63 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#, kde-format
msgid "Albums"
msgstr "Albumit"
#: contents/ui/ArtistPage.qml:65
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Singles"
msgstr "Singlet"
#: contents/ui/ArtistPage.qml:67 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#, kde-format
msgid "Songs"
msgstr "Kappaleet"
#: contents/ui/ArtistPage.qml:69 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#, kde-format
msgid "Videos"
msgstr "Videot"
+10 -15
View File
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
"PO-Revision-Date: 2022-08-29 12:39+0200\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-06-05 18:56+0200\n"
"Last-Translator: Xavier Besnard <[email protected]>\n"
"Language-Team: French <[email protected]>\n"
"Language: fr\n"
@@ -12,7 +12,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Lokalize 22.08.0\n"
"X-Generator: Lokalize 22.04.1\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
@@ -34,25 +34,20 @@ msgstr "Lire"
msgid "Shuffle"
msgstr "Mélanger"
#: contents/ui/AlbumPage.qml:35 contents/ui/ArtistPage.qml:19
#, kde-format
msgid "Open in Browser"
msgstr "Ouvrir dans un navigateur"
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Lire le suivant"
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Ajouter à la liste de lecture"
#: contents/ui/ArtistPage.qml:47 contents/ui/SearchPage.qml:67
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -61,22 +56,22 @@ msgstr ""
"La lecture de vidéos n'est pas encore prise en charge. Voulez-vous vraiment "
"lire uniquement l'audio de « %1 » ?"
#: contents/ui/ArtistPage.qml:63 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#, kde-format
msgid "Albums"
msgstr "Albums"
#: contents/ui/ArtistPage.qml:65
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Singles"
msgstr "Titres uniques"
#: contents/ui/ArtistPage.qml:67 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#, kde-format
msgid "Songs"
msgstr "Chansons"
#: contents/ui/ArtistPage.qml:69 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#, kde-format
msgid "Videos"
msgstr "Vidéos"
+8 -13
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2021-09-17 20:09+0530\n"
"Last-Translator: Raghavendra Kamath <[email protected]>\n"
"Language-Team: kde-hindi\n"
@@ -37,25 +37,20 @@ msgstr "बजाएँ"
msgid "Shuffle"
msgstr "फेंटें"
#: contents/ui/AlbumPage.qml:35 contents/ui/ArtistPage.qml:19
#, kde-format
msgid "Open in Browser"
msgstr ""
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "अगला बजाएँ"
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "गीत-सूची में जोड़ें"
#: contents/ui/ArtistPage.qml:47 contents/ui/SearchPage.qml:67
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -63,22 +58,22 @@ msgid ""
msgstr ""
"वीडियो चलाना अभी तक समर्थित नहीं है। क्या आप केवल \"%1\" का ध्वनी चलाना चाहते हैं?"
#: contents/ui/ArtistPage.qml:63 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#, kde-format
msgid "Albums"
msgstr "एल्बम्स"
#: contents/ui/ArtistPage.qml:65
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Singles"
msgstr "एक गीत"
#: contents/ui/ArtistPage.qml:67 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#, kde-format
msgid "Songs"
msgstr "गीत"
#: contents/ui/ArtistPage.qml:69 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#, kde-format
msgid "Videos"
msgstr "वीडियो"
+10 -15
View File
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
"PO-Revision-Date: 2022-08-29 15:18+0200\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-05-26 14:13+0200\n"
"Last-Translator: Vincenzo Reale <[email protected]>\n"
"Language-Team: Italian <[email protected]>\n"
"Language: it\n"
@@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Lokalize 22.08.0\n"
"X-Generator: Lokalize 22.04.1\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
@@ -37,25 +37,20 @@ msgstr "Riproduci"
msgid "Shuffle"
msgstr "Mescola"
#: contents/ui/AlbumPage.qml:35 contents/ui/ArtistPage.qml:19
#, kde-format
msgid "Open in Browser"
msgstr "Apri nel browser"
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Riproduci successivo"
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Aggiungi alla scaletta"
#: contents/ui/ArtistPage.qml:47 contents/ui/SearchPage.qml:67
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -64,22 +59,22 @@ msgstr ""
"La riproduzione dei video non è ancora supportata. Vuoi riprodurre solo "
"l'audio di «%1»?"
#: contents/ui/ArtistPage.qml:63 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#, kde-format
msgid "Albums"
msgstr "Album"
#: contents/ui/ArtistPage.qml:65
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Singles"
msgstr "Singoli"
#: contents/ui/ArtistPage.qml:67 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#, kde-format
msgid "Songs"
msgstr "Brani"
#: contents/ui/ArtistPage.qml:69 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#, kde-format
msgid "Videos"
msgstr "Video"
+8 -13
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-07-13 15:34+0200\n"
"Last-Translator: Shinjo Park <[email protected]>\n"
"Language-Team: Korean <[email protected]>\n"
@@ -37,47 +37,42 @@ msgstr "재생"
msgid "Shuffle"
msgstr "무순서 재생"
#: contents/ui/AlbumPage.qml:35 contents/ui/ArtistPage.qml:19
#, kde-format
msgid "Open in Browser"
msgstr ""
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "다음 재생"
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "재생 목록에 추가"
#: contents/ui/ArtistPage.qml:47 contents/ui/SearchPage.qml:67
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
"\"%1\"?"
msgstr "비디오 재생은 지원하지 않습니다. \"%1\"의 오디오만 재생하시겠습니까?"
#: contents/ui/ArtistPage.qml:63 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#, kde-format
msgid "Albums"
msgstr "앨범"
#: contents/ui/ArtistPage.qml:65
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Singles"
msgstr "싱글"
#: contents/ui/ArtistPage.qml:67 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#, kde-format
msgid "Songs"
msgstr "곡"
#: contents/ui/ArtistPage.qml:69 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#, kde-format
msgid "Videos"
msgstr "비디오"
+10 -15
View File
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
"PO-Revision-Date: 2022-08-27 16:52+0200\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-05-26 13:17+0200\n"
"Last-Translator: Freek de Kruijf <[email protected]>\n"
"Language-Team: \n"
"Language: nl\n"
@@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Lokalize 22.08.0\n"
"X-Generator: Lokalize 22.04.1\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
@@ -37,25 +37,20 @@ msgstr "Afspelen"
msgid "Shuffle"
msgstr "Willekeurig afspelen"
#: contents/ui/AlbumPage.qml:35 contents/ui/ArtistPage.qml:19
#, kde-format
msgid "Open in Browser"
msgstr "In browser openen"
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Volgende afspelen"
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Aan afspeellijst toevoegen"
#: contents/ui/ArtistPage.qml:47 contents/ui/SearchPage.qml:67
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -64,22 +59,22 @@ msgstr ""
"Afspelen van video wordt nog niet ondersteund. Wilt u alleen het geluid van "
"\"%1\" afspelen?"
#: contents/ui/ArtistPage.qml:63 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#, kde-format
msgid "Albums"
msgstr "Albums"
#: contents/ui/ArtistPage.qml:65
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Singles"
msgstr "Enkelvoudige"
#: contents/ui/ArtistPage.qml:67 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#, kde-format
msgid "Songs"
msgstr "Songs"
#: contents/ui/ArtistPage.qml:69 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#, kde-format
msgid "Videos"
msgstr "Video's"
+10 -15
View File
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
"PO-Revision-Date: 2022-09-11 19:45+0200\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-08-07 12:08+0200\n"
"Last-Translator: Karl Ove Hufthammer <[email protected]>\n"
"Language-Team: Norwegian Nynorsk <[email protected]>\n"
"Language: nn\n"
@@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Lokalize 22.08.1\n"
"X-Generator: Lokalize 22.04.3\n"
"X-Environment: kde\n"
"X-Accelerator-Marker: &\n"
"X-Text-Markup: kde4\n"
@@ -40,47 +40,42 @@ msgstr "Spel av"
msgid "Shuffle"
msgstr "Stokk om"
#: contents/ui/AlbumPage.qml:35 contents/ui/ArtistPage.qml:19
#, kde-format
msgid "Open in Browser"
msgstr "Opna i nettlesar"
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Spel som neste"
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Legg til speleliste"
#: contents/ui/ArtistPage.qml:47 contents/ui/SearchPage.qml:67
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
"\"%1\"?"
msgstr "Videoavspeling er endå ikkje støtta. Vil du spela av lyden til «%1»?"
#: contents/ui/ArtistPage.qml:63 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#, kde-format
msgid "Albums"
msgstr "Album"
#: contents/ui/ArtistPage.qml:65
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Singles"
msgstr "Singelplater"
#: contents/ui/ArtistPage.qml:67 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#, kde-format
msgid "Songs"
msgstr "Songar"
#: contents/ui/ArtistPage.qml:69 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#, kde-format
msgid "Videos"
msgstr "Videoar"
+8 -13
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-01-01 09:11-0800\n"
"Last-Translator: A S Alam <[email protected]>\n"
"Language-Team: Punjabi <[email protected]>\n"
@@ -37,47 +37,42 @@ msgstr "ਚਲਾਓ"
msgid "Shuffle"
msgstr "ਰਲਵੇਂ"
#: contents/ui/AlbumPage.qml:35 contents/ui/ArtistPage.qml:19
#, kde-format
msgid "Open in Browser"
msgstr ""
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "ਅਗਲਾ ਚਲਾਓ"
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "ਪਲੇਅਲਿਸਟ ਵਿੱਚ ਜੋੜੋ"
#: contents/ui/ArtistPage.qml:47 contents/ui/SearchPage.qml:67
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
"\"%1\"?"
msgstr "ਵਿਡੀਓ ਪਲੇਅਬੈਕ ਹਾਲੇ ਸਹਾਇਕ ਨਹੀਂ ਹੈ। ਕੀ ਤੁਸੀਂ \"%1\" ਦਾ ਆਡੀਓ ਹੀ ਚਲਾਉਣਾ ਚਾਹੋਗੇ?"
#: contents/ui/ArtistPage.qml:63 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#, kde-format
msgid "Albums"
msgstr "ਐਲਬਮਾਂ"
#: contents/ui/ArtistPage.qml:65
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Singles"
msgstr "ਇਕੱਲੇ"
#: contents/ui/ArtistPage.qml:67 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#, kde-format
msgid "Songs"
msgstr "ਗੀਤ"
#: contents/ui/ArtistPage.qml:69 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#, kde-format
msgid "Videos"
msgstr "ਵਿਡੀਓ"
+8 -13
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-06-26 20:24+0200\n"
"Last-Translator: Łukasz Wojniłowicz <[email protected]>\n"
"Language-Team: Polish <[email protected]>\n"
@@ -39,25 +39,20 @@ msgstr "Odtwórz"
msgid "Shuffle"
msgstr "Wymieszaj"
#: contents/ui/AlbumPage.qml:35 contents/ui/ArtistPage.qml:19
#, kde-format
msgid "Open in Browser"
msgstr ""
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Odtwórz następny"
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Dodaj do listy odtwarzania"
#: contents/ui/ArtistPage.qml:47 contents/ui/SearchPage.qml:67
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -66,22 +61,22 @@ msgstr ""
"Odtwarzanie wideo nie jest jeszcze obsługiwane. Czy odtworzyć tylko dźwięk z "
"„%1”?"
#: contents/ui/ArtistPage.qml:63 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#, kde-format
msgid "Albums"
msgstr "Albumy"
#: contents/ui/ArtistPage.qml:65
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Singles"
msgstr "Single"
#: contents/ui/ArtistPage.qml:67 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#, kde-format
msgid "Songs"
msgstr "Piosenki"
#: contents/ui/ArtistPage.qml:69 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#, kde-format
msgid "Videos"
msgstr "Filmy"
+8 -13
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-06-03 17:36+0100\n"
"Last-Translator: José Nuno Coelho Pires <[email protected]>\n"
"Language-Team: Portuguese <[email protected]>\n"
@@ -39,25 +39,20 @@ msgstr "Reproduzir"
msgid "Shuffle"
msgstr "Baralhar"
#: contents/ui/AlbumPage.qml:35 contents/ui/ArtistPage.qml:19
#, kde-format
msgid "Open in Browser"
msgstr "Abrir no Navegador"
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Reproduzir o Seguinte"
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Adicionar à Lista de Reprodução"
#: contents/ui/ArtistPage.qml:47 contents/ui/SearchPage.qml:67
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -66,22 +61,22 @@ msgstr ""
"A reprodução de vídeos ainda não é suportada. Deseja reproduzir apenas o "
"áudio de \"%1\"?"
#: contents/ui/ArtistPage.qml:63 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#, kde-format
msgid "Albums"
msgstr "Álbuns"
#: contents/ui/ArtistPage.qml:65
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Singles"
msgstr "'Singles'"
#: contents/ui/ArtistPage.qml:67 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#, kde-format
msgid "Songs"
msgstr "Músicas"
#: contents/ui/ArtistPage.qml:69 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#, kde-format
msgid "Videos"
msgstr "Vídeos"
+8 -13
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-07-13 14:59-0300\n"
"Last-Translator: Luiz Fernando Ranghetti <[email protected]>\n"
"Language-Team: Portuguese <[email protected]>\n"
@@ -38,25 +38,20 @@ msgstr "Reproduzir"
msgid "Shuffle"
msgstr "Embaralhar"
#: contents/ui/AlbumPage.qml:35 contents/ui/ArtistPage.qml:19
#, kde-format
msgid "Open in Browser"
msgstr ""
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Reproduzir próxima"
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Adicionar à lista de reprodução"
#: contents/ui/ArtistPage.qml:47 contents/ui/SearchPage.qml:67
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -65,22 +60,22 @@ msgstr ""
"A reprodução de vídeos ainda não é suportada. Deseja reproduzir apenas o "
"áudio de \"%1\"?"
#: contents/ui/ArtistPage.qml:63 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#, kde-format
msgid "Albums"
msgstr "Álbuns"
#: contents/ui/ArtistPage.qml:65
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Singles"
msgstr "Singles"
#: contents/ui/ArtistPage.qml:67 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#, kde-format
msgid "Songs"
msgstr "Músicas"
#: contents/ui/ArtistPage.qml:69 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#, kde-format
msgid "Videos"
msgstr "Vídeos"
+8 -13
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-05-10 21:39+0300\n"
"Last-Translator: Alexander Yavorsky <[email protected]>\n"
"Language-Team: Russian <[email protected]>\n"
@@ -38,47 +38,42 @@ msgstr "Воспроизвести"
msgid "Shuffle"
msgstr "Перемешать"
#: contents/ui/AlbumPage.qml:35 contents/ui/ArtistPage.qml:19
#, kde-format
msgid "Open in Browser"
msgstr ""
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Воспроизвести следующий"
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr ""
#: contents/ui/ArtistPage.qml:47 contents/ui/SearchPage.qml:67
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
"\"%1\"?"
msgstr ""
#: contents/ui/ArtistPage.qml:63 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#, kde-format
msgid "Albums"
msgstr "Альбомы"
#: contents/ui/ArtistPage.qml:65
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Singles"
msgstr ""
#: contents/ui/ArtistPage.qml:67 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#, kde-format
msgid "Songs"
msgstr ""
#: contents/ui/ArtistPage.qml:69 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#, kde-format
msgid "Videos"
msgstr "Видеозаписи"
+8 -13
View File
@@ -4,7 +4,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-04-07 18:01+0200\n"
"Last-Translator: Roman Paholik <[email protected]>\n"
"Language-Team: Slovak <[email protected]>\n"
@@ -35,48 +35,43 @@ msgstr "Prehrať"
msgid "Shuffle"
msgstr "Zamiešať"
#: contents/ui/AlbumPage.qml:35 contents/ui/ArtistPage.qml:19
#, kde-format
msgid "Open in Browser"
msgstr ""
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#, fuzzy, kde-format
#| msgid "Play"
msgid "Play Next"
msgstr "Prehrať"
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Pridať do zoznamu skladieb"
#: contents/ui/ArtistPage.qml:47 contents/ui/SearchPage.qml:67
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
"\"%1\"?"
msgstr ""
#: contents/ui/ArtistPage.qml:63 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#, kde-format
msgid "Albums"
msgstr "Albumy"
#: contents/ui/ArtistPage.qml:65
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Singles"
msgstr "Samotné"
#: contents/ui/ArtistPage.qml:67 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#, kde-format
msgid "Songs"
msgstr ""
#: contents/ui/ArtistPage.qml:69 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#, kde-format
msgid "Videos"
msgstr "Videá"
+10 -15
View File
@@ -6,15 +6,15 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
"PO-Revision-Date: 2022-09-03 08:19+0200\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-05-27 07:50+0200\n"
"Last-Translator: Matjaž Jeran <[email protected]>\n"
"Language-Team: Slovenian <[email protected]>\n"
"Language: sl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Lokalize 22.04.1\n"
"X-Generator: Lokalize 21.12.2\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n"
"%100==4 ? 3 : 0);\n"
@@ -38,47 +38,42 @@ msgstr "Predvajaj"
msgid "Shuffle"
msgstr "Premešaj"
#: contents/ui/AlbumPage.qml:35 contents/ui/ArtistPage.qml:19
#, kde-format
msgid "Open in Browser"
msgstr "Odpri v brskalniku"
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Predvajaj naslednjo"
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Dodaj v seznam predvajanja"
#: contents/ui/ArtistPage.qml:47 contents/ui/SearchPage.qml:67
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
"\"%1\"?"
msgstr "Video playback še ni podprt. Ali želite predvajati samo zvok \"%1\"?"
#: contents/ui/ArtistPage.qml:63 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#, kde-format
msgid "Albums"
msgstr "Albumi"
#: contents/ui/ArtistPage.qml:65
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Singles"
msgstr "Singli"
#: contents/ui/ArtistPage.qml:67 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#, kde-format
msgid "Songs"
msgstr "Glasba"
#: contents/ui/ArtistPage.qml:69 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#, kde-format
msgid "Videos"
msgstr "Videposnetki"
+9 -14
View File
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
"PO-Revision-Date: 2022-09-24 14:57+0200\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-05-26 10:40+0200\n"
"Last-Translator: Stefan Asserhäll <[email protected]>\n"
"Language-Team: Swedish <[email protected]>\n"
"Language: sv\n"
@@ -37,47 +37,42 @@ msgstr "Spela"
msgid "Shuffle"
msgstr "Blanda"
#: contents/ui/AlbumPage.qml:35 contents/ui/ArtistPage.qml:19
#, kde-format
msgid "Open in Browser"
msgstr "Öppna i webbläsare"
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Spela nästa"
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Lägg till i spellista"
#: contents/ui/ArtistPage.qml:47 contents/ui/SearchPage.qml:67
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
"\"%1\"?"
msgstr "Videouppspelning stöds inte ännu. Vill du bara spela ljudet på \"%1\"?"
#: contents/ui/ArtistPage.qml:63 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#, kde-format
msgid "Albums"
msgstr "Album"
#: contents/ui/ArtistPage.qml:65
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Singles"
msgstr "Singlar"
#: contents/ui/ArtistPage.qml:67 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#, kde-format
msgid "Songs"
msgstr "Låtar"
#: contents/ui/ArtistPage.qml:69 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#, kde-format
msgid "Videos"
msgstr "Videor"
+10 -15
View File
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
"PO-Revision-Date: 2022-08-27 05:01+0300\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-05-26 10:29+0300\n"
"Last-Translator: Emir SARI <[email protected]>\n"
"Language-Team: Turkish <[email protected]>\n"
"Language: tr\n"
@@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Lokalize 22.04.3\n"
"X-Generator: Lokalize 22.04.0\n"
#, kde-format
msgctxt "NAME OF TRANSLATORS"
@@ -37,25 +37,20 @@ msgstr "Çal"
msgid "Shuffle"
msgstr "Karıştır"
#: contents/ui/AlbumPage.qml:35 contents/ui/ArtistPage.qml:19
#, kde-format
msgid "Open in Browser"
msgstr "Tarayıcıda Aç"
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Sonrakini Çal"
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Çalma Listesine Ekle"
#: contents/ui/ArtistPage.qml:47 contents/ui/SearchPage.qml:67
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -64,22 +59,22 @@ msgstr ""
"Video oynatımı henüz desteklenmiyor. \"%1\" videosunun yalnızca sesinin "
"çalınmasını ister misiniz?"
#: contents/ui/ArtistPage.qml:63 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#, kde-format
msgid "Albums"
msgstr "Albümler"
#: contents/ui/ArtistPage.qml:65
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Singles"
msgstr "Tekliler"
#: contents/ui/ArtistPage.qml:67 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#, kde-format
msgid "Songs"
msgstr "Şarkılar"
#: contents/ui/ArtistPage.qml:69 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#, kde-format
msgid "Videos"
msgstr "Videolar"
+9 -14
View File
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
"PO-Revision-Date: 2022-08-27 09:13+0300\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-05-26 08:15+0300\n"
"Last-Translator: Yuri Chornoivan <[email protected]>\n"
"Language-Team: Ukrainian <[email protected]>\n"
"Language: uk\n"
@@ -38,25 +38,20 @@ msgstr "Відтворити"
msgid "Shuffle"
msgstr "Перемішати"
#: contents/ui/AlbumPage.qml:35 contents/ui/ArtistPage.qml:19
#, kde-format
msgid "Open in Browser"
msgstr "Відкрити у переглядачі"
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "Відтворити наступну"
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "Додати до списку відтворення"
#: contents/ui/ArtistPage.qml:47 contents/ui/SearchPage.qml:67
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
@@ -65,22 +60,22 @@ msgstr ""
"Підтримки відтворення відео ще не передбачено. Хочете, щоб було відтворено "
"лише звукову частину «%1»?"
#: contents/ui/ArtistPage.qml:63 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#, kde-format
msgid "Albums"
msgstr "Альбоми"
#: contents/ui/ArtistPage.qml:65
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Singles"
msgstr "Одинарні"
#: contents/ui/ArtistPage.qml:67 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#, kde-format
msgid "Songs"
msgstr "Пісні"
#: contents/ui/ArtistPage.qml:69 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#, kde-format
msgid "Videos"
msgstr "Відео"
+19 -24
View File
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: kdeorg\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
"PO-Revision-Date: 2022-09-20 01:57\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-08-13 03:53\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Language: zh_CN\n"
@@ -37,47 +37,42 @@ msgstr "播放"
msgid "Shuffle"
msgstr "随机播放"
#: contents/ui/AlbumPage.qml:35 contents/ui/ArtistPage.qml:19
#, kde-format
msgid "Open in Browser"
msgstr "在浏览器中打开"
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr "播放下一首"
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr "添加到播放列表"
#: contents/ui/ArtistPage.qml:47 contents/ui/SearchPage.qml:67
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
"\"%1\"?"
msgstr "视频播放尚未被支持。您想要只播放“%1”中的音频吗?"
#: contents/ui/ArtistPage.qml:63 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#, kde-format
msgid "Albums"
msgstr "专辑"
#: contents/ui/ArtistPage.qml:65
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Singles"
msgstr "单曲"
#: contents/ui/ArtistPage.qml:67 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#, kde-format
msgid "Songs"
msgstr "曲目"
#: contents/ui/ArtistPage.qml:69 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#, kde-format
msgid "Videos"
msgstr "视频"
@@ -95,32 +90,32 @@ msgstr "取消"
#: contents/ui/LibraryPage.qml:27
#, kde-format
msgid "Favourites"
msgstr "收藏夹"
msgstr ""
#: contents/ui/LibraryPage.qml:37 contents/ui/LibraryPage.qml:108
#, kde-format
msgid "Show All"
msgstr "显示全部"
msgstr ""
#: contents/ui/LibraryPage.qml:42
#, kde-format
msgid "Favourite Songs"
msgstr "收藏的歌曲"
msgstr ""
#: contents/ui/LibraryPage.qml:98
#, kde-format
msgid "Most played"
msgstr "最常播放"
msgstr ""
#: contents/ui/LibraryPage.qml:113
#, kde-format
msgid "Played Songs"
msgstr "已播放歌曲"
msgstr ""
#: contents/ui/main.qml:39
#, kde-format
msgid "Back"
msgstr "返回"
msgstr ""
#: contents/ui/main.qml:73 contents/ui/SearchPage.qml:150
#, kde-format
@@ -135,12 +130,12 @@ msgstr "AudioTube"
#: contents/ui/MaximizedPlayerPage.qml:92
#, kde-format
msgid "Now Playing"
msgstr "正在播放"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:117
#, kde-format
msgid "Queue"
msgstr "播放队列"
msgstr ""
#: contents/ui/MaximizedPlayerPage.qml:222
#, kde-format
@@ -156,12 +151,12 @@ msgstr "没有正在播放的媒体"
#: contents/ui/PlaybackHistory.qml:15
#, kde-format
msgid "Unknown list of songs"
msgstr "未知歌曲列表"
msgstr ""
#: contents/ui/PlaybackHistory.qml:25
#, kde-format
msgid "No songs here yet"
msgstr "此处无歌曲"
msgstr ""
#: contents/ui/SearchPage.qml:27
#, kde-format
+8 -13
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audiotube\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2022-08-27 00:50+0000\n"
"POT-Creation-Date: 2022-07-12 00:48+0000\n"
"PO-Revision-Date: 2022-05-30 00:47+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -38,47 +38,42 @@ msgstr ""
msgid "Shuffle"
msgstr ""
#: contents/ui/AlbumPage.qml:35 contents/ui/ArtistPage.qml:19
#, kde-format
msgid "Open in Browser"
msgstr ""
#: contents/ui/AlbumPage.qml:77 contents/ui/ArtistPage.qml:109
#: contents/ui/AlbumPage.qml:68 contents/ui/ArtistPage.qml:101
#: contents/ui/PlaybackHistory.qml:74 contents/ui/PlaylistPage.qml:67
#, kde-format
msgid "Play Next"
msgstr ""
#: contents/ui/AlbumPage.qml:82 contents/ui/ArtistPage.qml:115
#: contents/ui/AlbumPage.qml:73 contents/ui/ArtistPage.qml:107
#: contents/ui/PlaybackHistory.qml:79 contents/ui/PlaylistPage.qml:72
#: contents/ui/SearchPage.qml:123
#, kde-format
msgid "Add to Playlist"
msgstr ""
#: contents/ui/ArtistPage.qml:47 contents/ui/SearchPage.qml:67
#: contents/ui/ArtistPage.qml:39 contents/ui/SearchPage.qml:67
#, kde-format
msgid ""
"Video playback is not supported yet. Do you want to play only the audio of "
"\"%1\"?"
msgstr ""
#: contents/ui/ArtistPage.qml:63 contents/ui/SearchPage.qml:25
#: contents/ui/ArtistPage.qml:55 contents/ui/SearchPage.qml:25
#, kde-format
msgid "Albums"
msgstr ""
#: contents/ui/ArtistPage.qml:65
#: contents/ui/ArtistPage.qml:57
#, kde-format
msgid "Singles"
msgstr ""
#: contents/ui/ArtistPage.qml:67 contents/ui/SearchPage.qml:31
#: contents/ui/ArtistPage.qml:59 contents/ui/SearchPage.qml:31
#, kde-format
msgid "Songs"
msgstr ""
#: contents/ui/ArtistPage.qml:69 contents/ui/SearchPage.qml:33
#: contents/ui/ArtistPage.qml:61 contents/ui/SearchPage.qml:33
#, kde-format
msgid "Videos"
msgstr ""
+3
View File
@@ -48,6 +48,9 @@ target_link_libraries(audiotube
KF5::I18n
KF5::CoreAddons
KF5::Crash
QCoro5::Core
QCoro5::Qml
QCoro5::Network
ytm
asyncdatabase
)
+30 -18
View File
@@ -4,26 +4,43 @@
#include "albummodel.h"
#include <QStringBuilder>
#include <QCoro/QCoroFuture>
#include <QCoro/QCoroTask>
#define AWAIT(coroutine) \
({ \
bool __abort = false; \
connect(this, &QObject::destroyed, [&]() { \
__abort = true; \
}); \
auto val = co_await coroutine; \
if (abort) { \
co_return; \
} \
val; \
})
AlbumModel::AlbumModel(QObject *parent)
: AbstractYTMusicModel(parent)
{
connect(this, &AlbumModel::browseIdChanged, this, [this] {
connect(this, &AlbumModel::browseIdChanged, this, [this]() -> QCoro::Task<> {
setLoading(true);
auto future = YTMusicThread::instance()->fetchAlbum(m_browseId);
connectFuture(future, this, [=, this](const album::Album &album) {
setLoading(false);
beginResetModel();
m_album = album;
endResetModel();
std::sort(m_album.thumbnails.begin(), m_album.thumbnails.end());
auto album = co_await YTMusicThread::instance()->fetchAlbum(m_browseId).withContext(this);
Q_EMIT titleChanged();
Q_EMIT thumbnailUrlChanged();
Q_EMIT playlistIdChanged();
});
setLoading(false);
beginResetModel();
m_album = album;
endResetModel();
std::sort(m_album.thumbnails.begin(), m_album.thumbnails.end());
Q_EMIT titleChanged();
Q_EMIT thumbnailUrlChanged();
Q_EMIT playlistIdChanged();
});
connect(&YTMusicThread::instance().get(), &AsyncYTMusic::errorOccurred, this, [=, this] {
@@ -90,8 +107,3 @@ QString AlbumModel::playlistId() const
{
return QString::fromStdString(m_album.audio_playlist_id);
}
QUrl AlbumModel::webUrl() const
{
return QUrl(YTMUSIC_WEB_BASE_URL % "/playlist?list=" % QString::fromStdString(m_album.audio_playlist_id));
}
-4
View File
@@ -18,7 +18,6 @@ class AlbumModel : public AbstractYTMusicModel
Q_PROPERTY(QString title READ title NOTIFY titleChanged)
Q_PROPERTY(QUrl thumbnailUrl READ thumbnailUrl NOTIFY thumbnailUrlChanged)
Q_PROPERTY(QString playlistId READ playlistId NOTIFY playlistIdChanged)
Q_PROPERTY(QUrl webUrl READ webUrl NOTIFY webUrlChanged)
public:
enum Role {
@@ -46,9 +45,6 @@ public:
QString playlistId() const;
Q_SIGNAL void playlistIdChanged();
QUrl webUrl() const;
Q_SIGNAL void webUrlChanged();
private:
QString m_browseId;
+19 -25
View File
@@ -4,41 +4,40 @@
#include "artistmodel.h"
#include <QStringBuilder>
#include <asyncytmusic.h>
#include <QCoro/QCoroTask>
#include <QCoro/QCoroFuture>
ArtistModel::ArtistModel(QObject *parent)
: AbstractYTMusicModel(parent)
, m_view(albums, singles, songs, videos)
{
connect(this, &ArtistModel::channelIdChanged, this, [this] {
connect(this, &ArtistModel::channelIdChanged, this, [this]() -> QCoro::Task<> {
if (m_channelId.isEmpty()) {
return;
co_return;
}
setLoading(true);
auto future = YTMusicThread::instance()->fetchArtist(m_channelId);
connectFuture(future, this, [=, this](const artist::Artist &artist) {
setLoading(false);
auto artist = co_await YTMusicThread::instance()->fetchArtist(m_channelId);
setLoading(false);
beginResetModel();
m_artist = artist;
std::sort(m_artist.thumbnails.begin(), m_artist.thumbnails.end());
beginResetModel();
m_artist = artist;
std::sort(m_artist.thumbnails.begin(), m_artist.thumbnails.end());
albums = m_artist.albums ? m_artist.albums->results : std::vector<artist::Artist::Album>();
singles = m_artist.singles ? m_artist.singles->results : std::vector<artist::Artist::Single>();
songs = m_artist.songs ? m_artist.songs->results : std::vector<artist::Artist::Song>();
videos = m_artist.videos ? m_artist.videos->results : std::vector<artist::Artist::Video>();
albums = m_artist.albums ? m_artist.albums->results : std::vector<artist::Artist::Album>();
singles = m_artist.singles ? m_artist.singles->results : std::vector<artist::Artist::Single>();
songs = m_artist.songs ? m_artist.songs->results : std::vector<artist::Artist::Song>();
videos = m_artist.videos ? m_artist.videos->results : std::vector<artist::Artist::Video>();
// std::span can't know if the data pointer underneath it was changed, so re-create
m_view = MultiIterableView(albums, singles, songs, videos);
endResetModel();
// std::span can't know if the data pointer underneath it was changed, so re-create
m_view = MultiIterableView(albums, singles, songs, videos);
endResetModel();
Q_EMIT titleChanged();
Q_EMIT thumbnailUrlChanged();
});
Q_EMIT titleChanged();
Q_EMIT thumbnailUrlChanged();
});
connect(&YTMusicThread::instance().get(), &AsyncYTMusic::errorOccurred, this, [this] {
setLoading(false);
@@ -147,11 +146,6 @@ QUrl ArtistModel::thumbnailUrl() const
return QUrl(QString::fromStdString(m_artist.thumbnails.back().url));
}
QUrl ArtistModel::webUrl() const
{
return QUrl(YTMUSIC_WEB_BASE_URL % u"channel/" % QString::fromStdString(m_artist.channel_id));
}
void ArtistModel::triggerItem(int row)
{
std::visit([&](auto&& item) {
-4
View File
@@ -23,7 +23,6 @@ class ArtistModel : public AbstractYTMusicModel
Q_PROPERTY(QString title READ title NOTIFY titleChanged)
Q_PROPERTY(QUrl thumbnailUrl READ thumbnailUrl NOTIFY thumbnailUrlChanged)
Q_PROPERTY(QUrl webUrl READ webUrl NOTIFY webUrlChanged)
public:
enum Type {
@@ -57,9 +56,6 @@ public:
QUrl thumbnailUrl() const;
Q_SIGNAL void thumbnailUrlChanged();
QUrl webUrl() const;
Q_SIGNAL void webUrlChanged();
Q_INVOKABLE void triggerItem(int row);
Q_SIGNAL void openAlbum(const QString &browseId);
+8 -8
View File
@@ -60,7 +60,7 @@ AsyncYTMusic::AsyncYTMusic(QObject *parent)
//
// search
//
QFuture<std::vector<search::SearchResultItem>> AsyncYTMusic::search(const QString &query)
QCoro::Task<std::vector<search::SearchResultItem>> AsyncYTMusic::search(const QString &query)
{
return invokeAndCatchOnThread([=, this]() {
return m_ytm->search(query.toStdString());
@@ -70,7 +70,7 @@ QFuture<std::vector<search::SearchResultItem>> AsyncYTMusic::search(const QStrin
//
// fetchArtist
//
QFuture<artist::Artist> AsyncYTMusic::fetchArtist(const QString &channelId)
QCoro::Task<artist::Artist> AsyncYTMusic::fetchArtist(const QString &channelId)
{
return invokeAndCatchOnThread([=, this]() {
return m_ytm->get_artist(channelId.toStdString());
@@ -80,7 +80,7 @@ QFuture<artist::Artist> AsyncYTMusic::fetchArtist(const QString &channelId)
//
// fetchAlbum
//
QFuture<album::Album> AsyncYTMusic::fetchAlbum(const QString &browseId)
QCoro::Task<album::Album> AsyncYTMusic::fetchAlbum(const QString &browseId)
{
return invokeAndCatchOnThread([=, this]() {
return m_ytm->get_album(browseId.toStdString());
@@ -90,7 +90,7 @@ QFuture<album::Album> AsyncYTMusic::fetchAlbum(const QString &browseId)
//
// fetchSong
//
QFuture<std::optional<song::Song>> AsyncYTMusic::fetchSong(const QString &videoId)
QCoro::Task<std::optional<song::Song>> AsyncYTMusic::fetchSong(const QString &videoId)
{
return invokeAndCatchOnThread([=, this]() {
return m_ytm->get_song(videoId.toStdString());
@@ -100,7 +100,7 @@ QFuture<std::optional<song::Song>> AsyncYTMusic::fetchSong(const QString &videoI
//
// fetchPlaylist
//
QFuture<playlist::Playlist> AsyncYTMusic::fetchPlaylist(const QString &playlistId) {
QCoro::Task<playlist::Playlist> AsyncYTMusic::fetchPlaylist(const QString &playlistId) {
return invokeAndCatchOnThread([=, this]() {
return m_ytm->get_playlist(playlistId.toStdString());
});
@@ -109,7 +109,7 @@ QFuture<playlist::Playlist> AsyncYTMusic::fetchPlaylist(const QString &playlistI
//
// fetchArtistAlbum
//
QFuture<std::vector<artist::Artist::Album>> AsyncYTMusic::fetchArtistAlbums(const QString &channelId, const QString &params)
QCoro::Task<std::vector<artist::Artist::Album>> AsyncYTMusic::fetchArtistAlbums(const QString &channelId, const QString &params)
{
return invokeAndCatchOnThread([=, this]() {
return m_ytm->get_artist_albums(channelId.toStdString(), params.toStdString());
@@ -119,7 +119,7 @@ QFuture<std::vector<artist::Artist::Album>> AsyncYTMusic::fetchArtistAlbums(cons
//
// extractVideoInfo
//
QFuture<video_info::VideoInfo> AsyncYTMusic::extractVideoInfo(const QString &videoId)
QCoro::Task<video_info::VideoInfo> AsyncYTMusic::extractVideoInfo(const QString &videoId)
{
return invokeAndCatchOnThread([=, this]() {
return m_ytm->extract_video_info(videoId.toStdString());
@@ -129,7 +129,7 @@ QFuture<video_info::VideoInfo> AsyncYTMusic::extractVideoInfo(const QString &vid
//
// fetchWatchPlaylist
//
QFuture<watch::Playlist> AsyncYTMusic::fetchWatchPlaylist(const std::optional<QString> &videoId, const std::optional<QString> &playlistId)
QCoro::Task<watch::Playlist> AsyncYTMusic::fetchWatchPlaylist(const std::optional<QString> &videoId, const std::optional<QString> &playlistId)
{
return invokeAndCatchOnThread([=, this]() {
return m_ytm->get_watch_playlist(
+13 -14
View File
@@ -9,12 +9,13 @@
#include <QFuture>
#include <QFutureWatcher>
#include <QCoroFuture>
#include <QCoroTask>
#include <vector>
#include <ytmusic.h>
constexpr QStringView YTMUSIC_WEB_BASE_URL = u"https://music.youtube.com/";
Q_DECLARE_METATYPE(std::vector<artist::Artist::Album>);
Q_DECLARE_METATYPE(std::vector<search::SearchResultItem>)
Q_DECLARE_METATYPE(artist::Artist)
@@ -61,14 +62,12 @@ void connectFuture(const QFuture<T> &future, QObjectDerivedType *self, const Fun
if constexpr (std::is_member_function_pointer_v<Function>) {
(self->*fun)();
} else {
Q_UNUSED(self);
fun();
}
} else if (future.resultCount() > 0) {
if constexpr (std::is_member_function_pointer_v<Function>) {
(self->*fun)(watcher->result());
} else {
Q_UNUSED(self);
fun(watcher->result());
}
}
@@ -104,21 +103,21 @@ class AsyncYTMusic : public QObject
public:
// public functions need to be thread safe
QFuture<std::vector<search::SearchResultItem>> search(const QString &query);
QCoro::Task<std::vector<search::SearchResultItem>> search(const QString &query);
QFuture<artist::Artist> fetchArtist(const QString &channelId);
QCoro::Task<artist::Artist> fetchArtist(const QString &channelId);
QFuture<album::Album> fetchAlbum(const QString &browseId);
QCoro::Task<album::Album> fetchAlbum(const QString &browseId);
QFuture<std::optional<song::Song> > fetchSong(const QString &videoId);
QCoro::Task<std::optional<song::Song> > fetchSong(const QString &videoId);
QFuture<playlist::Playlist> fetchPlaylist(const QString &playlistId);
QCoro::Task<playlist::Playlist> fetchPlaylist(const QString &playlistId);
QFuture<std::vector<artist::Artist::Album>> fetchArtistAlbums(const QString &channelId, const QString &params);
QCoro::Task<std::vector<artist::Artist::Album>> fetchArtistAlbums(const QString &channelId, const QString &params);
QFuture<video_info::VideoInfo> extractVideoInfo(const QString &videoId);
QCoro::Task<video_info::VideoInfo> extractVideoInfo(const QString &videoId);
QFuture<watch::Playlist> fetchWatchPlaylist(const std::optional<QString> &videoId = std::nullopt ,
QCoro::Task<watch::Playlist> fetchWatchPlaylist(const std::optional<QString> &videoId = std::nullopt ,
const std::optional<QString> &playlistId = std::nullopt);
Q_SIGNAL void errorOccurred(const QString &error);
@@ -129,7 +128,7 @@ protected:
private:
/// Invokes the given function on the thread of the YTMusic object, and handles exceptions that occur while invoking it.
template <typename Func>
QFuture<std::invoke_result_t<Func>> invokeAndCatchOnThread(Func fun) {
QCoro::Task<std::invoke_result_t<Func>> invokeAndCatchOnThread(Func fun) {
using ReturnType = std::invoke_result_t<Func>;
auto interface = std::make_shared<QFutureInterface<ReturnType>>();
QMetaObject::invokeMethod(this, [=, this]() {
@@ -142,7 +141,7 @@ private:
Q_EMIT errorOccurred(QString::fromLocal8Bit(err.what()));
}
});
return interface->future();
co_return co_await interface->future();
}
// Python interpreter will be initialized from the thread calling the methods
-9
View File
@@ -30,15 +30,6 @@ Kirigami.ScrollablePage {
}
}
contextualActions: [
Kirigami.Action {
text: i18n("Open in Browser")
icon.name: "internet-services"
onTriggered: Qt.openUrlExternally(albumModel.webUrl)
}
]
ListView {
header: Kirigami.ItemViewHeader {
backgroundImage.source: albumModel.thumbnailUrl
-8
View File
@@ -14,14 +14,6 @@ Kirigami.ScrollablePage {
title: artistModel.title
contextualActions: [
Kirigami.Action {
text: i18n("Open in Browser")
icon.name: "internet-services"
onTriggered: Qt.openUrlExternally(artistModel.webUrl)
}
]
ListView {
header: Kirigami.ItemViewHeader {
backgroundImage.source: artistModel.thumbnailUrl
+60 -45
View File
@@ -12,8 +12,18 @@
#include "asyncdatabase.h"
#include <QCoroTask>
#include <QCoroFuture>
#include <QCoroQmlTask>
#include <QCoroNetworkReply>
namespace ranges = std::ranges;
template <typename T>
QCoro::Task<T> toTask(QFuture<T> &&future) {
co_return co_await future;
}
Library::Library(QObject *parent)
: QObject{parent}
, m_database(ThreadedDatabase::establishConnection([]() -> DatabaseConfiguration {
@@ -40,20 +50,24 @@ Library &Library::instance()
FavouritesModel *Library::favourites()
{
auto future = m_database->getResults<Song>("select * from favourites natural join songs order by favourites.rowid desc");
return new FavouritesModel(std::move(future), this);
auto future = m_database->getResults<Song>("select * from favourites natural join songs");
return new FavouritesModel(toTask(std::move(future)), this);
}
void Library::addFavourite(const QString &videoId, const QString &title)
QCoro::QmlTask Library::addFavourite(const QString &videoId, const QString &title)
{
connectFuture(addSong(videoId, title), this, [=, this] {
connectFuture(m_database->execute("insert or ignore into favourites (video_id) values (?)", videoId), this, &Library::favouritesChanged);
});
return [=, this]() -> QCoro::Task<> {
co_await addSong(videoId, title);
co_await m_database->execute("insert or ignore into favourites (video_id) values (?)", videoId);
}();
}
void Library::removeFavourite(const QString &videoId)
QCoro::QmlTask Library::removeFavourite(const QString &videoId)
{
connectFuture(m_database->execute("delete from favourites where video_id = ?", videoId), this, &Library::favouritesChanged);
return [=, this]() -> QCoro::Task<> {
co_await m_database->execute("delete from favourites where video_id = ?", videoId);
Library::favouritesChanged();
}();
}
FavouriteWatcher *Library::favouriteWatcher(const QString &videoId)
@@ -66,7 +80,7 @@ FavouriteWatcher *Library::favouriteWatcher(const QString &videoId)
SearchHistoryModel *Library::searches()
{
return new SearchHistoryModel(m_database->getResults<SingleValue<QString>>("select (search_query) from searches order by search_id desc"), this);
return new SearchHistoryModel(toTask(m_database->getResults<SingleValue<QString>>("select (search_query) from searches order by search_id desc")), this);
}
void Library::addSearch(const QString &text)
@@ -77,22 +91,22 @@ void Library::addSearch(const QString &text)
PlaybackHistoryModel *Library::playbackHistory()
{
auto future = m_database->getResults<PlayedSong>("select * from played_songs natural join songs");
return new PlaybackHistoryModel(std::move(future), this);
return new PlaybackHistoryModel(toTask(std::move(future)), this);
}
void Library::addPlaybackHistoryItem(const QString &videoId, const QString &title)
QCoro::QmlTask Library::addPlaybackHistoryItem(const QString videoId, const QString title)
{
connectFuture(addSong(videoId, title), this, [=, this] {
connectFuture(m_database->execute("insert or ignore into played_songs (video_id, plays) values (?, ?)", videoId, 0), this, [=, this] {
connectFuture(m_database->execute("update played_songs set plays = plays + 1 where video_id = ? ", videoId), this, &Library::playbackHistoryChanged);
});
});
return [=, this]() -> QCoro::Task<> {
co_await addSong(videoId, title);
co_await m_database->execute("insert or ignore into played_songs (video_id, plays) values (?, ?)", videoId, 0);
co_await m_database->execute("update played_songs set plays = plays + 1 where video_id = ? ", videoId);
}();
}
PlaybackHistoryModel *Library::mostPlayed()
{
auto future = m_database->getResults<PlayedSong>("select * from played_songs natural join songs order by plays desc limit 10");
return new PlaybackHistoryModel(std::move(future), this);
return new PlaybackHistoryModel(toTask(std::move(future)), this);
}
QNetworkAccessManager &Library::nam()
@@ -100,14 +114,14 @@ QNetworkAccessManager &Library::nam()
return m_networkImageCacher;
}
QFuture<void> Library::addSong(const QString &videoId, const QString &title)
QCoro::Task<> Library::addSong(const QString videoId, const QString title)
{
return m_database->execute("insert or ignore into songs (video_id, title, artist, album) values (?, ?, null, null)", videoId, title);
co_await m_database->execute("insert or ignore into songs (video_id, title, artist, album) values (?, ?, null, null)", videoId, title);
}
void ThumbnailSource::setVideoId(const QString &id) {
QCoro::Task<> ThumbnailSource::setVideoId(const QString &id) {
if (m_videoId == id) {
return;
co_return;
}
m_videoId = id;
@@ -119,25 +133,21 @@ void ThumbnailSource::setVideoId(const QString &id) {
if (QFile::exists(cacheLocation)) {
setCachedPath(QUrl::fromLocalFile(cacheLocation));
return;
co_return;
}
auto future = YTMusicThread::instance()->extractVideoInfo(id);
connectFuture(future, this, [this, id, cacheLocation](video_info::VideoInfo &&info) {
auto *reply = Library::instance().nam().get(QNetworkRequest(QUrl(QString::fromStdString(info.thumbnail))));
connect(reply, &QNetworkReply::finished, this, [id, reply, this, cacheLocation]() {
QFile file(cacheLocation);
file.open(QFile::WriteOnly);
file.write(reply->readAll());
setCachedPath(QUrl::fromLocalFile(cacheLocation));
});
});
auto info = co_await YTMusicThread::instance()->extractVideoInfo(id);
auto *reply = co_await Library::instance().nam().get(QNetworkRequest(QUrl(QString::fromStdString(info.thumbnail))));
QFile file(cacheLocation);
file.open(QFile::WriteOnly);
file.write(reply->readAll());
setCachedPath(QUrl::fromLocalFile(cacheLocation));
}
PlaybackHistoryModel::PlaybackHistoryModel(QFuture<std::vector<PlayedSong> > &&songs, QObject *parent)
PlaybackHistoryModel::PlaybackHistoryModel(QCoro::Task<std::vector<PlayedSong> > &&songs, QObject *parent)
: QAbstractListModel(parent)
{
connectFuture(songs, this, [this](const auto songs) {
songs.then([this](const auto songs) {
beginResetModel();
m_playedSongs = songs;
endResetModel();
@@ -172,10 +182,10 @@ QVariant PlaybackHistoryModel::data(const QModelIndex &index, int role) const {
Q_UNREACHABLE();
}
FavouritesModel::FavouritesModel(QFuture<std::vector<Song>> &&songs, QObject *parent)
FavouritesModel::FavouritesModel(QCoro::Task<std::vector<Song>> &&songs, QObject *parent)
: QAbstractListModel(parent)
{
connectFuture(songs, this, [this](const auto songs) {
songs.then([this](const auto songs) {
beginResetModel();
m_favouriteSongs = songs;
endResetModel();
@@ -207,16 +217,21 @@ QVariant FavouritesModel::data(const QModelIndex &index, int role) const {
Q_UNREACHABLE();
}
template <typename T>
QCoro::Task<T> toTask(QFuture<T> &future) {
auto result = co_await future;
co_return result;
}
FavouriteWatcher::FavouriteWatcher(Library *library, const QString &videoId)
: QObject(library), m_videoId(videoId), m_library(library)
{
auto update = [this] {
connectFuture(m_library->database().getResult<SingleValue<bool>>("select count(*) > 0 from favourites where video_id = ?", m_videoId), this, [this](auto count) {
if (count) {
m_isFavourite = count->value;
Q_EMIT isFavouriteChanged();
}
});
auto update = [this]() -> QCoro::Task<> {
auto count = co_await toTask(m_library->database().getResult<SingleValue<bool>>("select count(*) > 0 from favourites where video_id = ?", m_videoId)).withContext(this);
if (count) {
m_isFavourite = count->value;
Q_EMIT isFavouriteChanged();
}
};
update();
connect(library, &Library::favouritesChanged, this, update);
@@ -226,10 +241,10 @@ bool FavouriteWatcher::isFavourite() const {
return m_isFavourite;
}
SearchHistoryModel::SearchHistoryModel(QFuture<std::vector<SingleValue<QString>>> &&historyFuture, QObject *parent)
SearchHistoryModel::SearchHistoryModel(QCoro::Task<std::vector<SingleValue<QString>>> &&historyFuture, QObject *parent)
: QAbstractListModel(parent)
{
connectFuture(historyFuture, this, [this](const auto history) {
historyFuture.then([this](const auto history) {
beginResetModel();
m_history = history;
endResetModel();
+10 -8
View File
@@ -9,6 +9,8 @@
#include <QNetworkAccessManager>
#include <QAbstractListModel>
#include <QCoroQmlTask>
#include <memory>
#include "asyncytmusic.h"
@@ -40,7 +42,7 @@ class FavouritesModel : public QAbstractListModel {
};
public:
FavouritesModel(QFuture<std::vector<Song>> &&songs, QObject *parent = nullptr);
FavouritesModel(QCoro::Task<std::vector<Song>> &&songs, QObject *parent = nullptr);
QHash<int, QByteArray> roleNames() const override;
int rowCount(const QModelIndex &parent) const override;
@@ -76,7 +78,7 @@ class PlaybackHistoryModel : public QAbstractListModel {
};
public:
PlaybackHistoryModel(QFuture<std::vector<PlayedSong>> &&songs, QObject *parent = nullptr);
PlaybackHistoryModel(QCoro::Task<std::vector<PlayedSong>> &&songs, QObject *parent = nullptr);
QHash<int, QByteArray> roleNames() const override;
int rowCount(const QModelIndex &parent) const override;
@@ -90,7 +92,7 @@ class SearchHistoryModel : public QAbstractListModel {
Q_OBJECT
public:
SearchHistoryModel(QFuture<std::vector<SingleValue<QString>>> &&historyFuture, QObject *parent = nullptr);
SearchHistoryModel(QCoro::Task<std::vector<SingleValue<QString>>> &&historyFuture, QObject *parent = nullptr);
int rowCount(const QModelIndex &parent) const override;
QVariant data(const QModelIndex &index, int role) const override;
@@ -114,8 +116,8 @@ public:
FavouritesModel *favourites();
Q_SIGNAL void favouritesChanged();
Q_INVOKABLE void addFavourite(const QString &videoId, const QString &title);
Q_INVOKABLE void removeFavourite(const QString &videoId);
Q_INVOKABLE QCoro::QmlTask addFavourite(const QString &videoId, const QString &title);
Q_INVOKABLE QCoro::QmlTask removeFavourite(const QString &videoId);
Q_INVOKABLE FavouriteWatcher *favouriteWatcher(const QString &videoId);
SearchHistoryModel *searches();
@@ -124,7 +126,7 @@ public:
PlaybackHistoryModel *playbackHistory();
Q_SIGNAL void playbackHistoryChanged();
Q_INVOKABLE void addPlaybackHistoryItem(const QString &videoId, const QString &title);
Q_INVOKABLE QCoro::QmlTask addPlaybackHistoryItem(const QString videoId, const QString title);
PlaybackHistoryModel *mostPlayed();
@@ -134,7 +136,7 @@ public:
}
private:
QFuture<void> addSong(const QString &videoId, const QString &title);
QCoro::Task<> addSong(const QString videoId, const QString title);
QNetworkAccessManager m_networkImageCacher;
std::unique_ptr<ThreadedDatabase> m_database;
@@ -150,7 +152,7 @@ class ThumbnailSource : public QObject {
QString videoId() const {
return m_videoId;
}
void setVideoId(const QString &id);
QCoro::Task<> setVideoId(const QString &id);
Q_SIGNAL void videoIdChanged();
QUrl cachedPath() const {
+4
View File
@@ -11,6 +11,8 @@
#include <KCrash>
#include <KAboutData>
#include <QCoroQml>
#include "searchmodel.h"
#include "albummodel.h"
#include "videoinfoextractor.h"
@@ -38,6 +40,8 @@ Q_DECL_EXPORT int main(int argc, char *argv[])
KAboutData::setApplicationData(KAboutData(QStringLiteral("audiotube"), QStringLiteral("AudioTube")));
KCrash::initialize();
QCoro::Qml::registerTypes();
QQmlApplicationEngine engine;
qmlRegisterType<SearchModel>(URI, 1, 0, "SearchModel");
+1 -1
View File
@@ -16,7 +16,7 @@ PlaylistModel::PlaylistModel(QObject *parent)
connect(this, &PlaylistModel::playlistIdChanged, this, [=, this] {
setLoading(true);
auto future = YTMusicThread::instance()->fetchPlaylist(m_playlistId);
connectFuture(future, this, [=, this](const playlist::Playlist &playlist) {
future.then(this, [=, this](const playlist::Playlist &playlist) {
setLoading(false);
beginResetModel();
m_playlist = playlist;
+10 -9
View File
@@ -4,25 +4,26 @@
#include "searchmodel.h"
#include <QCoroFuture>
#include <QCoroTask>
SearchModel::SearchModel(QObject *parent)
: AbstractYTMusicModel(parent)
{
connect(this, &SearchModel::searchQueryChanged, this, [this] {
connect(this, &SearchModel::searchQueryChanged, this, [this]() -> QCoro::Task<> {
if (m_searchQuery.isEmpty()) {
beginResetModel();
m_searchResults.clear();
endResetModel();
return;
co_return;
}
setLoading(true);
auto future = YTMusicThread::instance()->search(m_searchQuery);
connectFuture(future, this, [=, this](const std::vector<search::SearchResultItem> &results) {
beginResetModel();
setLoading(false);
m_searchResults = results;
endResetModel();
});
auto results = co_await YTMusicThread::instance()->search(m_searchQuery);
beginResetModel();
setLoading(false);
m_searchResults = results;
endResetModel();
});
connect(&YTMusicThread::instance().get(), &AsyncYTMusic::errorOccurred, this, [this] {
setLoading(false);
+2 -2
View File
@@ -41,7 +41,7 @@ UserPlaylistModel::UserPlaylistModel(QObject *parent)
setLoading(true);
auto future = YTMusicThread::instance()->fetchWatchPlaylist(m_initialVideoId);
connectFuture(future, this, handleResult);
future.then(this, handleResult);
});
connect(this, &UserPlaylistModel::playlistIdChanged, this, [=, this] {
if (m_playlistId.isEmpty()) {
@@ -50,7 +50,7 @@ UserPlaylistModel::UserPlaylistModel(QObject *parent)
setLoading(true);
auto future = YTMusicThread::instance()->fetchWatchPlaylist(std::nullopt, m_playlistId);
connectFuture(future, this, handleResult);;
future.then(this, handleResult);
});
connect(&YTMusicThread::instance().get(), &AsyncYTMusic::errorOccurred, this, [this] {
setLoading(false);
+1 -1
View File
@@ -27,7 +27,7 @@ VideoInfoExtractor::VideoInfoExtractor(QObject *parent)
setLoading(true);
auto future = YTMusicThread::instance()->extractVideoInfo(QString::fromStdString(m_videoId.toStdString()));
connectFuture(future, this, [this](const video_info::VideoInfo &videoInfo) {
future.then(this, [this](const video_info::VideoInfo &videoInfo) {
m_videoInfo = videoInfo;
setLoading(false);
Q_EMIT audioUrlChanged();