Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package Komikku for openSUSE:Factory checked in at 2025-05-26 18:36:18 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/Komikku (Old) and /work/SRC/openSUSE:Factory/.Komikku.new.2732 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "Komikku" Mon May 26 18:36:18 2025 rev:41 rq:1279860 version:1.77.0 Changes: -------- --- /work/SRC/openSUSE:Factory/Komikku/Komikku.changes 2025-05-12 16:56:05.566815263 +0200 +++ /work/SRC/openSUSE:Factory/.Komikku.new.2732/Komikku.changes 2025-05-26 18:37:58.053550550 +0200 @@ -1,0 +2,11 @@ +Sat May 24 16:53:56 UTC 2025 - Richard Rahl <[email protected]> + +- update to 1.77.0: + * [Webview] Fixed Cloudflare challenge detection + * [Servers] Manga-Scantrad (FR): Update + * [Servers] Night scans (EN): Update + * [Servers] Tres Daos (ES): Update + * [Servers] Mangapill (EN): Update + * [L10n] Updated Spanish translation + +------------------------------------------------------------------- Old: ---- Komikku-1.76.1.tar.gz New: ---- Komikku-1.77.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ Komikku.spec ++++++ --- /var/tmp/diff_new_pack.7btfyK/_old 2025-05-26 18:37:58.713578258 +0200 +++ /var/tmp/diff_new_pack.7btfyK/_new 2025-05-26 18:37:58.713578258 +0200 @@ -18,7 +18,7 @@ %define appid info.febvre.Komikku Name: Komikku -Version: 1.76.1 +Version: 1.77.0 Release: 0 Summary: A manga reader for GNOME # appdata.xml is CC-BY-4.0 ++++++ Komikku-1.76.1.tar.gz -> Komikku-1.77.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/komikku/data/info.febvre.Komikku.appdata.xml.in.in new/komikku/data/info.febvre.Komikku.appdata.xml.in.in --- old/komikku/data/info.febvre.Komikku.appdata.xml.in.in 2025-05-09 15:18:27.000000000 +0200 +++ new/komikku/data/info.febvre.Komikku.appdata.xml.in.in 2025-05-16 23:50:41.000000000 +0200 @@ -99,6 +99,19 @@ <url type="donation">https://febvre.info/donate.html</url> <releases> + <release version="1.77.0" date="2025-05-17"> + <description translate="no"> + <ul> + <li>[Webview] Fixed Cloudflare challenge detection</li> + <li>[Servers] Manga-Scantrad (FR): Update</li> + <li>[Servers] Night scans (EN): Update</li> + <li>[Servers] Tres Daos (ES): Update</li> + <li>[Servers] Mangapill (EN): Update</li> + <li>[L10n] Updated Spanish translation</li> + </ul> + <p>Happy reading.</p> + </description> + </release> <release version="1.76.1" date="2025-05-09"> <description translate="no"> <p>This is a bugfix version.</p> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/komikku/komikku/application.py new/komikku/komikku/application.py --- old/komikku/komikku/application.py 2025-05-09 15:18:27.000000000 +0200 +++ new/komikku/komikku/application.py 2025-05-16 23:50:41.000000000 +0200 @@ -538,22 +538,13 @@ # Override release notes dialog.set_release_notes(""" - <p>This is a bugfix version.</p> <ul> - <li>[Reader] Webtoon mode: Fixed scrolling after a pages jump (using controls overlay)</li> - <li>[L10n] Updated Portuguese (Brazil) translation</li> - </ul> - - <p>Changes in previous version 1.76.0</p> - - <ul> - <li>[Servers] Added ComicHubFree (EN)</li> - <li>[Servers] Asura Scans For Free (EN): Disabled</li> - <li>[Servers] Flame Comics (EN): Update</li> - <li>[Servers] Read Comic Online (EN): Update</li> - <li>[Servers] Team-X (AR): Update</li> - <li>[Servers] Terco Scans (EN):Update</li> - <li>[L10n] Updated Bulgarian, German, Indonesian, Italian and Ukrainian translations</li> + <li>[Webview] Fixed Cloudflare challenge detection</li> + <li>[Servers] Manga-Scantrad (FR): Update</li> + <li>[Servers] Night scans (EN): Update</li> + <li>[Servers] Tres Daos (ES): Update</li> + <li>[Servers] Mangapill (EN): Update</li> + <li>[L10n] Updated Spanish translation</li> </ul> <p>Happy reading.</p> """) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/komikku/komikku/servers/mangapill/__init__.py new/komikku/komikku/servers/mangapill/__init__.py --- old/komikku/komikku/servers/mangapill/__init__.py 2025-05-09 15:18:27.000000000 +0200 +++ new/komikku/komikku/servers/mangapill/__init__.py 2025-05-16 23:50:41.000000000 +0200 @@ -115,7 +115,8 @@ num = a_element.get('href').split('/')[-1].split('-')[-1] data['chapters'].append(dict( - url='/'.join(a_element.get('href').split('/')[2:]), + url='/'.join(a_element.get('href').split('/')[-2:]), + slug=a_element.get('href').split('/')[-1], title=a_element.text.strip(), num=num if is_number(num) else None, date=None, # not available diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/komikku/komikku/servers/mangascantrad/__init__.py new/komikku/komikku/servers/mangascantrad/__init__.py --- old/komikku/komikku/servers/mangascantrad/__init__.py 2025-05-09 15:18:27.000000000 +0200 +++ new/komikku/komikku/servers/mangascantrad/__init__.py 2025-05-16 23:50:41.000000000 +0200 @@ -2,13 +2,6 @@ # SPDX-License-Identifier: GPL-3.0-or-later # Author: Valéry Febvre <[email protected]> -try: - # This server requires JA3/TLS and HTTP2 fingerprints impersonation - from curl_cffi import requests -except Exception: - # Server will be disabled - requests = None - from komikku.servers.multi.madara import Madara @@ -17,13 +10,10 @@ name = 'Manga-Scantrad' lang = 'fr' is_nsfw = True - status = 'enabled' if requests is not None else 'disabled' has_cf = True - http_client = 'curl_cffi' date_format = None base_url = 'https://manga-scantrad.io' chapters_url = base_url + '/manga/{0}/ajax/chapters/' - bypass_cf_url = base_url + '/manga/tales-of-demons-and-gods-scan-fr/' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/komikku/komikku/servers/multi/madara/__init__.py new/komikku/komikku/servers/multi/madara/__init__.py --- old/komikku/komikku/servers/multi/madara/__init__.py 2025-05-09 15:18:27.000000000 +0200 +++ new/komikku/komikku/servers/multi/madara/__init__.py 2025-05-16 23:50:41.000000000 +0200 @@ -119,7 +119,7 @@ r = self.session_get( self.manga_url.format(initial_data['slug']), headers={ - 'Referer': self.base_url, + 'Referer': f'{self.base_url}/', } ) if r.status_code != 200: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/komikku/komikku/servers/multi/manga_stream/__init__.py new/komikku/komikku/servers/multi/manga_stream/__init__.py --- old/komikku/komikku/servers/multi/manga_stream/__init__.py 2025-05-09 15:18:27.000000000 +0200 +++ new/komikku/komikku/servers/multi/manga_stream/__init__.py 2025-05-16 23:50:41.000000000 +0200 @@ -242,7 +242,7 @@ if ignore: continue - title = li_element.select_one('.chapternum').text.strip().replace('\n', ' ') + title = ' '.join(li_element.select_one('.chapternum').text.split()) if date_element := li_element.select_one('.chapterdate'): date = convert_date_string(date_element.text.strip(), format=self.date_format) else: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/komikku/komikku/servers/nightscans/__init__.py new/komikku/komikku/servers/nightscans/__init__.py --- old/komikku/komikku/servers/nightscans/__init__.py 2025-05-09 15:18:27.000000000 +0200 +++ new/komikku/komikku/servers/nightscans/__init__.py 2025-05-16 23:50:41.000000000 +0200 @@ -20,3 +20,4 @@ scanlators_selector = '.tsinfo .imptdt:-soup-contains("Serialization") i' status_selector = '.tsinfo .imptdt:-soup-contains("Status") i' synopsis_selector = '[itemprop="description"]' + chapter_pages_selector = '#readerarea noscript img' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/komikku/komikku/servers/tresdaos/__init__.py new/komikku/komikku/servers/tresdaos/__init__.py --- old/komikku/komikku/servers/tresdaos/__init__.py 2025-05-09 15:18:27.000000000 +0200 +++ new/komikku/komikku/servers/tresdaos/__init__.py 2025-05-16 23:50:41.000000000 +0200 @@ -13,7 +13,7 @@ date_format = None - base_url = 'https://tresdaos.com' + base_url = 'https://3daos.mewingzone.com' manga_list_url = base_url + '/' authors_selector = '.tsinfo .imptdt:-soup-contains("Autor") i, .tsinfo .imptdt:-soup-contains("Artista") i' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/komikku/komikku/webview.py new/komikku/komikku/webview.py --- old/komikku/komikku/webview.py 2025-05-09 15:18:27.000000000 +0200 +++ new/komikku/komikku/webview.py 2025-05-16 23:50:41.000000000 +0200 @@ -385,43 +385,38 @@ # - No challenge found: change title to 'ready' # - An error occurs during challenge: change title to 'error' js = """ - function check() { - let intervalID = setInterval(() => { - if (document.getElementById('challenge-error-title')) { - // CF error: Browser is outdated? - document.title = 'error'; - clearInterval(intervalID); - } - else if (document.querySelector('.ray-id') || document.querySelector('style').innerText.indexOf('ray-id') > 0) { - document.title = 'cf_captcha'; - } - else if (document.querySelector('#request-info')) { - document.title = 'ddg_captcha'; - } - else if (document.querySelector('.g-recaptcha') && !document.querySelector('form .g-recaptcha')) { - // Google reCAPTCHA - // Not in a form to avoid false positives (login form for ex.) - document.title = 're_captcha'; - } - else if (document.querySelector('#formVerify')) { - document.title = 'ayh2_captcha'; - } - else if (document.querySelector('script[src*="challange"]')) { - document.title = 'challange_captcha'; - } - else { - document.title = 'ready'; - clearInterval(intervalID); - } - }, 100); - }; - - if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', check); - } - else { - check(); - } + let intervalID = setInterval(() => { + if (document.readyState === 'loading') { + return; + } + + if (document.getElementById('challenge-error-title')) { + // CF error: Browser is outdated? + document.title = 'error'; + clearInterval(intervalID); + } + else if (document.querySelector('.main-wrapper[role="main"] .main-content') || document.querySelector('.ray-id')) { + document.title = 'cf_captcha'; + } + else if (document.querySelector('#request-info')) { + document.title = 'ddg_captcha'; + } + else if (document.querySelector('.g-recaptcha') && !document.querySelector('form .g-recaptcha')) { + // Google reCAPTCHA + // Not in a form to avoid false positives (login form for ex.) + document.title = 're_captcha'; + } + else if (document.querySelector('#formVerify')) { + document.title = 'ayh2_captcha'; + } + else if (document.querySelector('script[src*="challange"]')) { + document.title = 'challange_captcha'; + } + else { + document.title = 'ready'; + clearInterval(intervalID); + } + }, 100); """ self.webview.webkit_webview.evaluate_javascript(js, -1) @@ -438,9 +433,9 @@ elif event == WebKit.LoadEvent.COMMITTED or \ (event == WebKit.LoadEvent.FINISHED and self.last_load_event != WebKit.LoadEvent.COMMITTED): - # Normally, COMMITTED event is received and then FINISHED event. - # The challenge can be monitor as soon as COMMITTED event is emit, - # but sometimes it isn't, so we have to wait for FINISHED event too + # Normally, COMMITTED (2) event is received and then FINISHED (3) event. + # The challenge can be monitored as soon as COMMITTED event is emitted, + # but sometimes it isn't, so we have to wait for FINISHED event. self.monitor_challenge() self.last_load_event = event @@ -497,7 +492,9 @@ self.webview.exit() logger.debug(f'{self.server.id}: Page loaded, getting cookies...') - self.webview.network_session.get_cookie_manager().get_cookies(self.server.base_url, None, self.on_get_cookies_finished, None) + self.webview.network_session.get_cookie_manager().get_cookies( + self.url, None, self.on_get_cookies_finished, None + ) def on_get_cookies_finished(self, cookie_manager, result, _user_data): if self.server.http_client == 'requests': diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/komikku/meson.build new/komikku/meson.build --- old/komikku/meson.build 2025-05-09 15:18:27.000000000 +0200 +++ new/komikku/meson.build 2025-05-16 23:50:41.000000000 +0200 @@ -3,7 +3,7 @@ # Author: Valéry Febvre <[email protected]> project('komikku', - version: '1.76.1', + version: '1.77.0', meson_version: '>= 0.59.0', license: 'GPL-3.0-or-later' ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/komikku/po/es.po new/komikku/po/es.po --- old/komikku/po/es.po 2025-05-09 15:18:27.000000000 +0200 +++ new/komikku/po/es.po 2025-05-16 23:50:41.000000000 +0200 @@ -4,25 +4,27 @@ # Óscar Fernández Díaz <[email protected]>, 2021-2022. # Óscar Fernández Díaz <[email protected]>, 2023, 2024. # gallegonovato <[email protected]>, 2023, 2024. +# Óscar Fernández Díaz <[email protected]>, 2025. msgid "" msgstr "" "Project-Id-Version: Komikku 0.30.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-04-04 00:19+0200\n" -"PO-Revision-Date: 2024-12-07 03:09+0000\n" -"Last-Translator: gallegonovato <[email protected]>\n" -"Language-Team: Spanish <https://hosted.weblate.org/projects/komikku/main/es/" -">\n" +"PO-Revision-Date: 2025-05-09 15:03+0000\n" +"Last-Translator: Óscar Fernández Díaz " +"<[email protected]>\n" +"Language-Team: Spanish <https://hosted.weblate.org/projects/komikku/main/es/>" +"\n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.9-dev\n" +"X-Generator: Weblate 5.12-dev\n" #: ../data/info.febvre.Komikku.appdata.xml.in.in:11 msgid "Discover and read manga & comics" -msgstr "" +msgstr "Descubrir y leer manga y cómics" #: ../data/info.febvre.Komikku.appdata.xml.in.in:13 msgid "" @@ -703,10 +705,11 @@ #: ../data/ui/preferences.blp:312 msgid "A setting has changed that requires a restart to take effect" msgstr "" +"Se ha modificado un ajuste que requiere un reinicio para que surta efecto" #: ../data/ui/preferences.blp:313 msgid "Got it!" -msgstr "" +msgstr "¡Entendido!" #: ../data/ui/preferences.blp:318 msgid "Data" @@ -833,7 +836,7 @@ #: ../data/ui/shortcuts_overview.blp:52 msgctxt "Shortcut window description" msgid "Update" -msgstr "" +msgstr "Actualizar" #: ../data/ui/shortcuts_overview.blp:58 msgctxt "Shortcut window description" @@ -997,11 +1000,11 @@ #: ../komikku/application.py:671 msgid "Restart" -msgstr "" +msgstr "Reiniciar" #: ../komikku/application.py:671 msgid "Restart?" -msgstr "" +msgstr "¿Reiniciar?" #: ../komikku/card/__init__.py:110 ../komikku/card/__init__.py:239 #: ../komikku/explorer/search/__init__.py:75 @@ -1011,7 +1014,7 @@ #: ../komikku/card/__init__.py:248 msgid "Unknown" -msgstr "" +msgstr "Desconocido" #: ../komikku/card/__init__.py:335 msgid "Read progress synchronization with server completed successfully" @@ -1262,7 +1265,7 @@ #: ../komikku/explorer/search/__init__.py:283 msgid "Search was cancelled" -msgstr "" +msgstr "La búsqueda se ha cancelado" #: ../komikku/explorer/search/__init__.py:290 msgid "Oops, server website URL is unknown." @@ -1327,7 +1330,7 @@ #: ../komikku/explorer/search/search_global.py:165 msgid "Search cancelled" -msgstr "" +msgstr "Búsqueda cancelada" #: ../komikku/explorer/search/search_global.py:173 msgid "No results" @@ -1547,7 +1550,7 @@ #: ../komikku/reader/__init__.py:367 msgid "Page successfully saved" -msgstr "" +msgstr "Página guardada correctamente" #: ../komikku/reader/pager/__init__.py:165 msgid "Failed to sync read progress with server" @@ -1690,7 +1693,7 @@ #: ../komikku/servers/dynasty/__init__.py:43 msgid "Anthologies" -msgstr "" +msgstr "Antologías" #: ../komikku/servers/dynasty/__init__.py:44 msgid "Doujins" @@ -1738,7 +1741,7 @@ #: ../komikku/servers/exceptions.py:26 msgid "Failed to complete browser challenge. Please try again." -msgstr "" +msgstr "No se ha podido completar el desafío del navegador. Inténtelo de nuevo." #: ../komikku/servers/exceptions.py:31 msgid "No longer exists." @@ -1787,7 +1790,7 @@ #: ../komikku/servers/mangadex/__init__.py:60 msgid "Filter by Content Ratings" -msgstr "" +msgstr "Filtrar por clasificación de contenidos" #: ../komikku/servers/mangadex/__init__.py:63 msgid "Safe" @@ -1839,7 +1842,7 @@ #: ../komikku/servers/mangadex/__init__.py:99 msgid "Filter by Formats" -msgstr "" +msgstr "Filtrar por formatos" #: ../komikku/servers/mangadex/__init__.py:102 msgid "4-Koma" @@ -1897,103 +1900,103 @@ #: ../komikku/servers/mangadex/__init__.py:120 msgid "Filter by Genres" -msgstr "" +msgstr "Filtrar por géneros" #: ../komikku/servers/mangadex/__init__.py:123 msgid "Action" -msgstr "" +msgstr "Acción" #: ../komikku/servers/mangadex/__init__.py:124 msgid "Adventure" -msgstr "" +msgstr "Aventura" #: ../komikku/servers/mangadex/__init__.py:125 msgid "Boys Love" -msgstr "" +msgstr "Amor de chicos" #: ../komikku/servers/mangadex/__init__.py:126 msgid "Comedy" -msgstr "" +msgstr "Comedia" #: ../komikku/servers/mangadex/__init__.py:127 msgid "Crime" -msgstr "" +msgstr "Crimen" #: ../komikku/servers/mangadex/__init__.py:128 msgid "Drama" -msgstr "" +msgstr "Drama" #: ../komikku/servers/mangadex/__init__.py:129 msgid "Fantasy" -msgstr "" +msgstr "Fantasía" #: ../komikku/servers/mangadex/__init__.py:130 msgid "Girls Love" -msgstr "" +msgstr "Amor de chicas" #: ../komikku/servers/mangadex/__init__.py:131 msgid "Historical" -msgstr "" +msgstr "Histórico" #: ../komikku/servers/mangadex/__init__.py:132 msgid "Horror" -msgstr "" +msgstr "Horror" #: ../komikku/servers/mangadex/__init__.py:133 msgid "Isekai" -msgstr "" +msgstr "Isekai" #: ../komikku/servers/mangadex/__init__.py:134 msgid "Magical Girls" -msgstr "" +msgstr "Chicas mágicas" #: ../komikku/servers/mangadex/__init__.py:135 msgid "Mecha" -msgstr "" +msgstr "Mecha" #: ../komikku/servers/mangadex/__init__.py:136 msgid "Medical" -msgstr "" +msgstr "Médico" #: ../komikku/servers/mangadex/__init__.py:137 msgid "Mystery" -msgstr "" +msgstr "Misterio" #: ../komikku/servers/mangadex/__init__.py:138 msgid "Philosophical" -msgstr "" +msgstr "Filosófico" #: ../komikku/servers/mangadex/__init__.py:139 msgid "Romance" -msgstr "" +msgstr "Romance" #: ../komikku/servers/mangadex/__init__.py:140 msgid "Sci-Fi" -msgstr "" +msgstr "Ciencia ficción" #: ../komikku/servers/mangadex/__init__.py:141 msgid "Slice of Life" -msgstr "" +msgstr "Recuentos de la vida" #: ../komikku/servers/mangadex/__init__.py:142 msgid "Sports" -msgstr "" +msgstr "Deportes" #: ../komikku/servers/mangadex/__init__.py:143 msgid "Superhero" -msgstr "" +msgstr "Superhéroes" #: ../komikku/servers/mangadex/__init__.py:144 msgid "Thriller" -msgstr "" +msgstr "Suspense" #: ../komikku/servers/mangadex/__init__.py:145 msgid "Tragedy" -msgstr "" +msgstr "Tragedia" #: ../komikku/servers/mangadex/__init__.py:146 msgid "Wuxia" -msgstr "" +msgstr "Wuxia" #: ../komikku/servers/mangadex/__init__.py:152 msgid "Tags Inclusion Mode"
