Compare commits

..

1 Commits

Author SHA1 Message Date
Safihre
9cbae891d0 WIP on release313 2024-10-16 10:37:53 +02:00
80 changed files with 151 additions and 589 deletions

View File

@@ -7,7 +7,6 @@
"schedule": [
"before 8am on Monday"
],
"baseBranches": ["develop", "feature/uvicorn"],
"pip_requirements": {
"fileMatch": [
"requirements.txt",
@@ -23,7 +22,8 @@
"jaraco.collections",
"sabctools",
"paho-mqtt",
"werkzeug"
"werkzeug",
"pyinstaller"
],
"packageRules": [
{

View File

@@ -13,10 +13,10 @@ jobs:
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.13 (64bit)
- name: Set up Python 3.12 (64bit)
uses: actions/setup-python@v5
with:
python-version: "3.13"
python-version: "3.12"
architecture: "x64"
cache: pip
cache-dependency-path: "**/requirements.txt"
@@ -69,18 +69,18 @@ jobs:
# We need the official Python, because the GA ones only support newer macOS versions
# The deployment target is picked up by the Python build tools automatically
# If updated, make sure to also set LSMinimumSystemVersion in SABnzbd.spec
PYTHON_VERSION: "3.13.0"
PYTHON_VERSION: "3.12.6"
MACOSX_DEPLOYMENT_TARGET: "10.13"
# We need to force compile for universal2 support
CFLAGS: -arch x86_64 -arch arm64
ARCHFLAGS: -arch x86_64 -arch arm64
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.13.0
- name: Set up Python 3.12
# Only use this for the caching of pip packages!
uses: actions/setup-python@v5
with:
python-version: "3.13"
python-version: "3.12"
cache: pip
cache-dependency-path: "**/requirements.txt"
- name: Cache Python download

View File

@@ -1,22 +1,17 @@
Release Notes - SABnzbd 4.4.0 Beta 2
Release Notes - SABnzbd 4.4.0 Alpha 2
=========================================================
This is the second beta release of SABnzbd 4.4.0.
This is the first test release of SABnzbd 4.4.0.
## New features since 4.3.0
* Subtitle files will be deobfuscated if required.
* Show server `Personal notes` on the main servers display.
* Windows: Use par2cmdline-turbo by default (thanks to @dnzbk).
* macOS: Dropped support for macOS 10.12 and below.
* macOS and Windows: Use Python 3.13 for release.
## Bug fixes since 4.3.0
* Toggling of Servers could result in jobs being stuck at 99%.
* Corrupt NZB's could also result in jobs being stuck at 99%.
* Config restart would always determine redirect URL instead of using current.
* Correctly handle `disk full` errors from Unrar.
* Create new history database in case of `no such table` error.
## Upgrade notices

View File

@@ -13,7 +13,7 @@ from builder.constants import EXTRA_FILES, EXTRA_FOLDERS, RELEASE_VERSION, RELEA
extra_pyinstaller_files = []
# Add hidden imports
extra_hiddenimports = ["Cheetah.DummyTransaction", "cheroot.ssl.builtin", "certifi"]
extra_hiddenimports = ["Cheetah.DummyTransaction", "cheroot.ssl.builtin", "certifi", "pkg_resources.extern"]
extra_hiddenimports.extend(collect_submodules("apprise"))
extra_hiddenimports.extend(collect_submodules("babelfish.converters"))
extra_hiddenimports.extend(collect_submodules("guessit.data"))
@@ -40,7 +40,7 @@ else:
)
# Windows
extra_hiddenimports.extend(["win32timezone"])
extra_hiddenimports.extend(["win32timezone", "winrt.windows.foundation.collections"])
EXTRA_FOLDERS += ["win/multipar/", "win/par2/", "win/unrar/", "win/7zip/"]
EXTRA_FILES += ["portable.cmd"]
@@ -88,7 +88,6 @@ for folder_item in EXTRA_FOLDERS:
extra_pyinstaller_files.extend(collect_data_files("babelfish"))
extra_pyinstaller_files.extend(collect_data_files("guessit"))
extra_pyinstaller_files.extend(collect_data_files("apprise"))
extra_pyinstaller_files.extend(collect_data_files("dateutil"))
pyi_analysis = Analysis(
["SABnzbd.py"],

View File

@@ -1,2 +1,2 @@
PyGithub==2.5.0
praw==7.8.1
PyGithub==2.4.0
praw==7.7.1

View File

@@ -1,20 +1,19 @@
# Basic build requirements
# Note that not all sub-dependencies are listed, but only ones we know could cause trouble
pyinstaller==6.11.1
packaging==24.2
pyinstaller-hooks-contrib==2024.10
pyinstaller==5.13.2
packaging==24.1
pyinstaller-hooks-contrib==2024.8
altgraph==0.17.4
wrapt==1.16.0
setuptools # List version-less for Python 3.8 to just get latest supported
setuptools==75.4.0; python_version > '3.8'
setuptools==75.1.0
# Required on 32bit Windows, exclude it based on Python-version
importlib_metadata==8.5.0; python_version < '3.10'
importlib_resources==6.4.5; python_version < '3.10'
zipp; python_version < '3.10' # List version-less for Python 3.8 to just get latest supported
zipp==3.20.2; python_version < '3.10'
# orjson does not support 32bit Windows, also exclude based on Python-version
orjson==3.10.11; python_version > '3.8'
orjson==3.10.7; python_version > '3.8'
# For the Windows build
pefile==2024.8.26; sys_platform == 'win32'

View File

@@ -171,9 +171,6 @@
</table>
<button type="button" class="btn btn-default showserver"><span class="glyphicon glyphicon-pencil"></span> $T('showDetails')</button>
<button type="button" class="btn btn-default clrServer"><span class="glyphicon glyphicon-remove"></span> $T('button-clrServer')</button>
<!--#if $server['notes'] #-->
<p>$server['notes'].replace('\n', '<br>')</p>
<!--#end if#-->
</div>
<div class="col1" style="display:none;">
<input type="hidden" name="enable" id="enable$cur" value="$int($server['enable'])" />
@@ -462,8 +459,8 @@
When finished loading
**/
jQuery(document).ready(function(){
// Reload form in case we change items that make the servers appear different
jQuery('input[name="priority"], input[name="displayname"], textarea[name="notes"]').on('change', function() {
// Exception when change of priority, reload
jQuery('input[name="priority"], input[name="displayname"]').on('change', function() {
jQuery('.fullform').submit(function() {
// No ajax this time
jQuery('input[name="ajax"]').val('')

View File

@@ -165,9 +165,6 @@ input[type="checkbox"]+.desc {
color: #666;
margin: 1em 0;
}
.col2 p {
margin-left: 3px;
}
.field-pair {
padding: 6px;
clear: both;

View File

@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha2\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: team@sabnzbd.org\n"
"Language-Team: SABnzbd <team@sabnzbd.org>\n"

View File

@@ -3,7 +3,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Language-Team: Czech (https://app.transifex.com/sabnzbd/teams/111101/cs/)\n"
"MIME-Version: 1.0\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Danish (https://app.transifex.com/sabnzbd/teams/111101/da/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: German (https://app.transifex.com/sabnzbd/teams/111101/de/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Spanish (https://app.transifex.com/sabnzbd/teams/111101/es/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Finnish (https://app.transifex.com/sabnzbd/teams/111101/fi/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: French (https://app.transifex.com/sabnzbd/teams/111101/fr/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: ION, 2020\n"
"Language-Team: Hebrew (https://app.transifex.com/sabnzbd/teams/111101/he/)\n"

View File

@@ -3,7 +3,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Language-Team: Italian (https://app.transifex.com/sabnzbd/teams/111101/it/)\n"
"MIME-Version: 1.0\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Norwegian Bokmål (https://app.transifex.com/sabnzbd/teams/111101/nb/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Dutch (https://app.transifex.com/sabnzbd/teams/111101/nl/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Polish (https://app.transifex.com/sabnzbd/teams/111101/pl/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Portuguese (Brazil) (https://app.transifex.com/sabnzbd/teams/111101/pt_BR/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Romanian (https://app.transifex.com/sabnzbd/teams/111101/ro/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Russian (https://app.transifex.com/sabnzbd/teams/111101/ru/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Serbian (https://app.transifex.com/sabnzbd/teams/111101/sr/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Swedish (https://app.transifex.com/sabnzbd/teams/111101/sv/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Chinese (China) (https://app.transifex.com/sabnzbd/teams/111101/zh_CN/)\n"

View File

@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha2\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: team@sabnzbd.org\n"
"Language-Team: SABnzbd <team@sabnzbd.org>\n"
@@ -168,14 +168,6 @@ msgstr ""
msgid "Could not connect to %s on port %s. It appears that %s operates as a web server (port 80), possibly an indexer, not a usenet server. You have to fill a usenet server."
msgstr ""
#: sabnzbd/api.py
msgid "Could not connect to %s on port %s. Use the default usenet settings: port 563 and SSL turned on"
msgstr ""
#: sabnzbd/api.py
msgid "Could not connect to %s on port %s. Use the default usenet settings: port 119 and SSL turned off"
msgstr ""
#: sabnzbd/api.py, sabnzbd/interface.py
msgid "Server address \"%s:%s\" is not valid."
msgstr ""
@@ -335,11 +327,6 @@ msgstr ""
msgid "Do not use a folder in the application folder as your Scripts Folder, it might be emptied during updates."
msgstr ""
#. Warning message
#: sabnzbd/cfg.py
msgid "The par2 application was switched, any custom par2 parameters were removed"
msgstr ""
#. Warning message
#: sabnzbd/config.py
msgid "Configuration locked, cannot save settings"
@@ -885,10 +872,6 @@ msgstr ""
msgid "Unpacking failed, write error or disk is full?"
msgstr ""
#: sabnzbd/newsunpack.py
msgid "Unpacking failed, disk full"
msgstr ""
#: sabnzbd/newsunpack.py
msgid "Unpacking failed, path is too long"
msgstr ""

View File

@@ -7,7 +7,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha2\n"
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
"Language-Team: Czech (https://app.transifex.com/sabnzbd/teams/111101/cs/)\n"
@@ -188,18 +188,6 @@ msgid ""
" a usenet server."
msgstr ""
#: sabnzbd/api.py
msgid ""
"Could not connect to %s on port %s. Use the default usenet settings: port "
"563 and SSL turned on"
msgstr ""
#: sabnzbd/api.py
msgid ""
"Could not connect to %s on port %s. Use the default usenet settings: port "
"119 and SSL turned off"
msgstr ""
#: sabnzbd/api.py, sabnzbd/interface.py
msgid "Server address \"%s:%s\" is not valid."
msgstr "Adresa serveru \"%s:%s\" není správná."
@@ -374,12 +362,6 @@ msgid ""
"might be emptied during updates."
msgstr ""
#. Warning message
#: sabnzbd/cfg.py
msgid ""
"The par2 application was switched, any custom par2 parameters were removed"
msgstr ""
#. Warning message
#: sabnzbd/config.py
msgid "Configuration locked, cannot save settings"
@@ -951,10 +933,6 @@ msgstr ""
msgid "Unpacking failed, write error or disk is full?"
msgstr "Rozbalování selhalo, chyba zápisu nebo plný disk?"
#: sabnzbd/newsunpack.py
msgid "Unpacking failed, disk full"
msgstr ""
#: sabnzbd/newsunpack.py
msgid "Unpacking failed, path is too long"
msgstr "Rozbalování selhalo, cesta k souboru je příliš dlouhá."

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha2\n"
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
"Language-Team: Danish (https://app.transifex.com/sabnzbd/teams/111101/da/)\n"
@@ -188,18 +188,6 @@ msgid ""
" a usenet server."
msgstr ""
#: sabnzbd/api.py
msgid ""
"Could not connect to %s on port %s. Use the default usenet settings: port "
"563 and SSL turned on"
msgstr ""
#: sabnzbd/api.py
msgid ""
"Could not connect to %s on port %s. Use the default usenet settings: port "
"119 and SSL turned off"
msgstr ""
#: sabnzbd/api.py, sabnzbd/interface.py
msgid "Server address \"%s:%s\" is not valid."
msgstr "Serveradressen \"%s:%s\" er ikke gyldigt."
@@ -377,12 +365,6 @@ msgid ""
"might be emptied during updates."
msgstr ""
#. Warning message
#: sabnzbd/cfg.py
msgid ""
"The par2 application was switched, any custom par2 parameters were removed"
msgstr ""
#. Warning message
#: sabnzbd/config.py
msgid "Configuration locked, cannot save settings"
@@ -959,10 +941,6 @@ msgstr "Udpakningen fejlede, da filen er for stor til filsystemet (FAT?)"
msgid "Unpacking failed, write error or disk is full?"
msgstr "Udpakning mislykkedes, skrivefejl eller disken fuld?"
#: sabnzbd/newsunpack.py
msgid "Unpacking failed, disk full"
msgstr ""
#: sabnzbd/newsunpack.py
msgid "Unpacking failed, path is too long"
msgstr "Udpakningen mislykkedes, stien er for lang"

View File

@@ -18,7 +18,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha1\n"
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
"Last-Translator: Stefan Rodriguez Galeano, 2024\n"
"Language-Team: German (https://app.transifex.com/sabnzbd/teams/111101/de/)\n"
@@ -212,18 +212,6 @@ msgstr ""
"als sei %s ein Webserver (Port 80), vielleicht ein Indexer, aber kein "
"Usenet-Server. Trage einen Usenet-Server ein."
#: sabnzbd/api.py
msgid ""
"Could not connect to %s on port %s. Use the default usenet settings: port "
"563 and SSL turned on"
msgstr ""
#: sabnzbd/api.py
msgid ""
"Could not connect to %s on port %s. Use the default usenet settings: port "
"119 and SSL turned off"
msgstr ""
#: sabnzbd/api.py, sabnzbd/interface.py
msgid "Server address \"%s:%s\" is not valid."
msgstr "Server-Adresse \"%s:%s\" ist ungültig."
@@ -414,12 +402,6 @@ msgstr ""
"Verwenden Sie keinen Ordner im Anwendungsordner als Ihren Skriptordner, er "
"könnte während Updates geleert werden."
#. Warning message
#: sabnzbd/cfg.py
msgid ""
"The par2 application was switched, any custom par2 parameters were removed"
msgstr ""
#. Warning message
#: sabnzbd/config.py
msgid "Configuration locked, cannot save settings"
@@ -1022,10 +1004,6 @@ msgid "Unpacking failed, write error or disk is full?"
msgstr ""
"Entpacken fehlgeschlagen. Fehler beim Schreiben oder volle Festplatte?"
#: sabnzbd/newsunpack.py
msgid "Unpacking failed, disk full"
msgstr ""
#: sabnzbd/newsunpack.py
msgid "Unpacking failed, path is too long"
msgstr "Entpacken fehlgeschlagen, Pfad ist zu lang"

View File

@@ -8,7 +8,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha2\n"
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
"Language-Team: Spanish (https://app.transifex.com/sabnzbd/teams/111101/es/)\n"
@@ -197,18 +197,6 @@ msgid ""
" a usenet server."
msgstr ""
#: sabnzbd/api.py
msgid ""
"Could not connect to %s on port %s. Use the default usenet settings: port "
"563 and SSL turned on"
msgstr ""
#: sabnzbd/api.py
msgid ""
"Could not connect to %s on port %s. Use the default usenet settings: port "
"119 and SSL turned off"
msgstr ""
#: sabnzbd/api.py, sabnzbd/interface.py
msgid "Server address \"%s:%s\" is not valid."
msgstr "La dirección del servidor «%s:%s» no es válida."
@@ -392,12 +380,6 @@ msgid ""
"might be emptied during updates."
msgstr ""
#. Warning message
#: sabnzbd/cfg.py
msgid ""
"The par2 application was switched, any custom par2 parameters were removed"
msgstr ""
#. Warning message
#: sabnzbd/config.py
msgid "Configuration locked, cannot save settings"
@@ -992,10 +974,6 @@ msgid "Unpacking failed, write error or disk is full?"
msgstr ""
"Error al descomprimir; ¿Error de escritura, o tal vez el disco está lleno?"
#: sabnzbd/newsunpack.py
msgid "Unpacking failed, disk full"
msgstr ""
#: sabnzbd/newsunpack.py
msgid "Unpacking failed, path is too long"
msgstr "Aperture de archivo fallo, la via es muy larga"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha2\n"
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
"Language-Team: Finnish (https://app.transifex.com/sabnzbd/teams/111101/fi/)\n"
@@ -190,18 +190,6 @@ msgid ""
" a usenet server."
msgstr ""
#: sabnzbd/api.py
msgid ""
"Could not connect to %s on port %s. Use the default usenet settings: port "
"563 and SSL turned on"
msgstr ""
#: sabnzbd/api.py
msgid ""
"Could not connect to %s on port %s. Use the default usenet settings: port "
"119 and SSL turned off"
msgstr ""
#: sabnzbd/api.py, sabnzbd/interface.py
msgid "Server address \"%s:%s\" is not valid."
msgstr "Palvelimen osoite \"%s:%s\" ei ole kelvollinen."
@@ -373,12 +361,6 @@ msgid ""
"might be emptied during updates."
msgstr ""
#. Warning message
#: sabnzbd/cfg.py
msgid ""
"The par2 application was switched, any custom par2 parameters were removed"
msgstr ""
#. Warning message
#: sabnzbd/config.py
msgid "Configuration locked, cannot save settings"
@@ -954,10 +936,6 @@ msgstr ""
msgid "Unpacking failed, write error or disk is full?"
msgstr "Purkaminen epäonnistui, kirjoitusvirhe tai levy täynnä?"
#: sabnzbd/newsunpack.py
msgid "Unpacking failed, disk full"
msgstr ""
#: sabnzbd/newsunpack.py
msgid "Unpacking failed, path is too long"
msgstr "Purkaminen epäonnistui, polku on liian pitkä"

View File

@@ -7,7 +7,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha1\n"
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
"Last-Translator: Fred L <88com88@gmail.com>, 2024\n"
"Language-Team: French (https://app.transifex.com/sabnzbd/teams/111101/fr/)\n"
@@ -203,22 +203,6 @@ msgstr ""
"comme un serveur web (port 80), peut-être un indexeur, et non comme un "
"serveur Usenet. Vous devez spécifier un serveur Usenet."
#: sabnzbd/api.py
msgid ""
"Could not connect to %s on port %s. Use the default usenet settings: port "
"563 and SSL turned on"
msgstr ""
"Impossible de se connecter à %s sur le port %s. Utilisez les paramètres "
"usenet par défaut : port 563 et SSL activés"
#: sabnzbd/api.py
msgid ""
"Could not connect to %s on port %s. Use the default usenet settings: port "
"119 and SSL turned off"
msgstr ""
"Impossible de se connecter à %s sur le port %s. Utilisez les paramètres "
"usenet par défaut : port 119 et SSL désactivés"
#: sabnzbd/api.py, sabnzbd/interface.py
msgid "Server address \"%s:%s\" is not valid."
msgstr "L' adresse du serveur \"%s:%s\" n'est pas valide."
@@ -411,12 +395,6 @@ msgstr ""
"N'utilisez pas un dossier à l'intérieur du dossier de l'application pour y "
"stocker les scripts, il pourrait être vidé lors des mises à jour."
#. Warning message
#: sabnzbd/cfg.py
msgid ""
"The par2 application was switched, any custom par2 parameters were removed"
msgstr ""
#. Warning message
#: sabnzbd/config.py
msgid "Configuration locked, cannot save settings"
@@ -1020,10 +998,6 @@ msgid "Unpacking failed, write error or disk is full?"
msgstr ""
"Échec de l'extraction, erreur d'écriture ou espace disque insuffisant ?"
#: sabnzbd/newsunpack.py
msgid "Unpacking failed, disk full"
msgstr "Échec de l'extraction, disque plein"
#: sabnzbd/newsunpack.py
msgid "Unpacking failed, path is too long"
msgstr "Extraction échoué, le chemin est trop long"

View File

@@ -7,7 +7,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha2\n"
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
"Last-Translator: ION, 2024\n"
"Language-Team: Hebrew (https://app.transifex.com/sabnzbd/teams/111101/he/)\n"
@@ -189,18 +189,6 @@ msgstr ""
"לא היה ניתן להתחבר אל %s על פתחה %s. נראה כי %s פועל כשרת רשת (פתחה 80), "
"כנראה מדדן, לא שרת Usenet. אתה חייב למלא שרת Usenet."
#: sabnzbd/api.py
msgid ""
"Could not connect to %s on port %s. Use the default usenet settings: port "
"563 and SSL turned on"
msgstr ""
#: sabnzbd/api.py
msgid ""
"Could not connect to %s on port %s. Use the default usenet settings: port "
"119 and SSL turned off"
msgstr ""
#: sabnzbd/api.py, sabnzbd/interface.py
msgid "Server address \"%s:%s\" is not valid."
msgstr "כתובת השרת \"%s:%s\" אינה תקפה."
@@ -377,12 +365,6 @@ msgstr ""
"אל תשתמש בתיקייה בתוך תיקיית היישום כתיקיית התסריטים שלך, היא עשויה להתרוקן "
"במהלך עדכונים."
#. Warning message
#: sabnzbd/cfg.py
msgid ""
"The par2 application was switched, any custom par2 parameters were removed"
msgstr ""
#. Warning message
#: sabnzbd/config.py
msgid "Configuration locked, cannot save settings"
@@ -962,10 +944,6 @@ msgstr "פריקה נכשלה, קובץ גדול מדי עבור מערכת הק
msgid "Unpacking failed, write error or disk is full?"
msgstr "פריקה נכשלה, שגיאת כתיבה או דיסק מלא?"
#: sabnzbd/newsunpack.py
msgid "Unpacking failed, disk full"
msgstr ""
#: sabnzbd/newsunpack.py
msgid "Unpacking failed, path is too long"
msgstr "פריקה נכשלה, נתיב ארוך מדי"

View File

@@ -3,7 +3,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha2\n"
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
"Language-Team: Italian (https://app.transifex.com/sabnzbd/teams/111101/it/)\n"
"MIME-Version: 1.0\n"
@@ -178,18 +178,6 @@ msgid ""
" a usenet server."
msgstr ""
#: sabnzbd/api.py
msgid ""
"Could not connect to %s on port %s. Use the default usenet settings: port "
"563 and SSL turned on"
msgstr ""
#: sabnzbd/api.py
msgid ""
"Could not connect to %s on port %s. Use the default usenet settings: port "
"119 and SSL turned off"
msgstr ""
#: sabnzbd/api.py, sabnzbd/interface.py
msgid "Server address \"%s:%s\" is not valid."
msgstr ""
@@ -360,12 +348,6 @@ msgid ""
"might be emptied during updates."
msgstr ""
#. Warning message
#: sabnzbd/cfg.py
msgid ""
"The par2 application was switched, any custom par2 parameters were removed"
msgstr ""
#. Warning message
#: sabnzbd/config.py
msgid "Configuration locked, cannot save settings"
@@ -926,10 +908,6 @@ msgstr ""
msgid "Unpacking failed, write error or disk is full?"
msgstr ""
#: sabnzbd/newsunpack.py
msgid "Unpacking failed, disk full"
msgstr ""
#: sabnzbd/newsunpack.py
msgid "Unpacking failed, path is too long"
msgstr ""

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha2\n"
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
"Language-Team: Norwegian Bokmål (https://app.transifex.com/sabnzbd/teams/111101/nb/)\n"
@@ -186,18 +186,6 @@ msgid ""
" a usenet server."
msgstr ""
#: sabnzbd/api.py
msgid ""
"Could not connect to %s on port %s. Use the default usenet settings: port "
"563 and SSL turned on"
msgstr ""
#: sabnzbd/api.py
msgid ""
"Could not connect to %s on port %s. Use the default usenet settings: port "
"119 and SSL turned off"
msgstr ""
#: sabnzbd/api.py, sabnzbd/interface.py
msgid "Server address \"%s:%s\" is not valid."
msgstr "Serveradressen \"%s:%s\" er ikke gyldig."
@@ -371,12 +359,6 @@ msgid ""
"might be emptied during updates."
msgstr ""
#. Warning message
#: sabnzbd/cfg.py
msgid ""
"The par2 application was switched, any custom par2 parameters were removed"
msgstr ""
#. Warning message
#: sabnzbd/config.py
msgid "Configuration locked, cannot save settings"
@@ -951,10 +933,6 @@ msgstr "Utpakking feilet, filen er for stor for filsystemet (FAT?)"
msgid "Unpacking failed, write error or disk is full?"
msgstr "Utpakking mislyktes, skrivefeil eller er disken full?"
#: sabnzbd/newsunpack.py
msgid "Unpacking failed, disk full"
msgstr ""
#: sabnzbd/newsunpack.py
msgid "Unpacking failed, path is too long"
msgstr "Utpakking feilet, stien er for lang"

View File

@@ -8,7 +8,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha2\n"
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2024\n"
"Language-Team: Dutch (https://app.transifex.com/sabnzbd/teams/111101/nl/)\n"
@@ -198,18 +198,6 @@ msgstr ""
"functioneert als een webserver (poort 80), mogelijk een indexer, geen "
"usenetserver. Vul een usenetserver in."
#: sabnzbd/api.py
msgid ""
"Could not connect to %s on port %s. Use the default usenet settings: port "
"563 and SSL turned on"
msgstr ""
#: sabnzbd/api.py
msgid ""
"Could not connect to %s on port %s. Use the default usenet settings: port "
"119 and SSL turned off"
msgstr ""
#: sabnzbd/api.py, sabnzbd/interface.py
msgid "Server address \"%s:%s\" is not valid."
msgstr "Serveradres \"%s:%s\" is niet geldig."
@@ -398,12 +386,6 @@ msgstr ""
"automatisch verwijderd worden tijdens updates. We adviseren een andere "
"locatie te gebruiken voor je scripts."
#. Warning message
#: sabnzbd/cfg.py
msgid ""
"The par2 application was switched, any custom par2 parameters were removed"
msgstr ""
#. Warning message
#: sabnzbd/config.py
msgid "Configuration locked, cannot save settings"
@@ -1005,10 +987,6 @@ msgstr "Uitplakken mislukt, bestand te groot voor het bestandssysteem (FAT?)"
msgid "Unpacking failed, write error or disk is full?"
msgstr "Uitpakken mislukt, schrijffout of schijf vol?"
#: sabnzbd/newsunpack.py
msgid "Unpacking failed, disk full"
msgstr ""
#: sabnzbd/newsunpack.py
msgid "Unpacking failed, path is too long"
msgstr "Uitpakken mislukt, bestandspad is te lang"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha2\n"
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
"Language-Team: Polish (https://app.transifex.com/sabnzbd/teams/111101/pl/)\n"
@@ -184,18 +184,6 @@ msgid ""
" a usenet server."
msgstr ""
#: sabnzbd/api.py
msgid ""
"Could not connect to %s on port %s. Use the default usenet settings: port "
"563 and SSL turned on"
msgstr ""
#: sabnzbd/api.py
msgid ""
"Could not connect to %s on port %s. Use the default usenet settings: port "
"119 and SSL turned off"
msgstr ""
#: sabnzbd/api.py, sabnzbd/interface.py
msgid "Server address \"%s:%s\" is not valid."
msgstr "Nieprawidłowy adres serwera \"%s:%s\"."
@@ -370,12 +358,6 @@ msgid ""
"might be emptied during updates."
msgstr ""
#. Warning message
#: sabnzbd/cfg.py
msgid ""
"The par2 application was switched, any custom par2 parameters were removed"
msgstr ""
#. Warning message
#: sabnzbd/config.py
msgid "Configuration locked, cannot save settings"
@@ -954,10 +936,6 @@ msgstr ""
msgid "Unpacking failed, write error or disk is full?"
msgstr "Rozpakowywanie nie powiodło się, błąd zapisu lub zapełniony dysk?"
#: sabnzbd/newsunpack.py
msgid "Unpacking failed, disk full"
msgstr ""
#: sabnzbd/newsunpack.py
msgid "Unpacking failed, path is too long"
msgstr "Rozpakowywanie nie powiodło się, zbyt długa ścieżka"

View File

@@ -7,7 +7,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha2\n"
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
"Language-Team: Portuguese (Brazil) (https://app.transifex.com/sabnzbd/teams/111101/pt_BR/)\n"
@@ -191,18 +191,6 @@ msgid ""
" a usenet server."
msgstr ""
#: sabnzbd/api.py
msgid ""
"Could not connect to %s on port %s. Use the default usenet settings: port "
"563 and SSL turned on"
msgstr ""
#: sabnzbd/api.py
msgid ""
"Could not connect to %s on port %s. Use the default usenet settings: port "
"119 and SSL turned off"
msgstr ""
#: sabnzbd/api.py, sabnzbd/interface.py
msgid "Server address \"%s:%s\" is not valid."
msgstr "Endereço de servidor \"%s:%s\" não é válido."
@@ -382,12 +370,6 @@ msgid ""
"might be emptied during updates."
msgstr ""
#. Warning message
#: sabnzbd/cfg.py
msgid ""
"The par2 application was switched, any custom par2 parameters were removed"
msgstr ""
#. Warning message
#: sabnzbd/config.py
msgid "Configuration locked, cannot save settings"
@@ -966,10 +948,6 @@ msgstr ""
msgid "Unpacking failed, write error or disk is full?"
msgstr "A descompactação falhou. Erro de escrita ou disco cheio?"
#: sabnzbd/newsunpack.py
msgid "Unpacking failed, disk full"
msgstr ""
#: sabnzbd/newsunpack.py
msgid "Unpacking failed, path is too long"
msgstr "Descompactação falhou, o caminho é muito extenso"

View File

@@ -7,7 +7,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha2\n"
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
"Language-Team: Romanian (https://app.transifex.com/sabnzbd/teams/111101/ro/)\n"
@@ -192,18 +192,6 @@ msgid ""
" a usenet server."
msgstr ""
#: sabnzbd/api.py
msgid ""
"Could not connect to %s on port %s. Use the default usenet settings: port "
"563 and SSL turned on"
msgstr ""
#: sabnzbd/api.py
msgid ""
"Could not connect to %s on port %s. Use the default usenet settings: port "
"119 and SSL turned off"
msgstr ""
#: sabnzbd/api.py, sabnzbd/interface.py
msgid "Server address \"%s:%s\" is not valid."
msgstr "Adresa server \"%s:%s\" nu este validă"
@@ -386,12 +374,6 @@ msgid ""
"might be emptied during updates."
msgstr ""
#. Warning message
#: sabnzbd/cfg.py
msgid ""
"The par2 application was switched, any custom par2 parameters were removed"
msgstr ""
#. Warning message
#: sabnzbd/config.py
msgid "Configuration locked, cannot save settings"
@@ -977,10 +959,6 @@ msgstr ""
msgid "Unpacking failed, write error or disk is full?"
msgstr "Dezarhivare nereuşită, eroare scriere sau disc plin?"
#: sabnzbd/newsunpack.py
msgid "Unpacking failed, disk full"
msgstr ""
#: sabnzbd/newsunpack.py
msgid "Unpacking failed, path is too long"
msgstr "Dezarhivare eșuată, calea este prea lungă"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha2\n"
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
"Language-Team: Russian (https://app.transifex.com/sabnzbd/teams/111101/ru/)\n"
@@ -186,18 +186,6 @@ msgid ""
" a usenet server."
msgstr ""
#: sabnzbd/api.py
msgid ""
"Could not connect to %s on port %s. Use the default usenet settings: port "
"563 and SSL turned on"
msgstr ""
#: sabnzbd/api.py
msgid ""
"Could not connect to %s on port %s. Use the default usenet settings: port "
"119 and SSL turned off"
msgstr ""
#: sabnzbd/api.py, sabnzbd/interface.py
msgid "Server address \"%s:%s\" is not valid."
msgstr "Адрес сервера «%s:%s» является недопустимым."
@@ -370,12 +358,6 @@ msgid ""
"might be emptied during updates."
msgstr ""
#. Warning message
#: sabnzbd/cfg.py
msgid ""
"The par2 application was switched, any custom par2 parameters were removed"
msgstr ""
#. Warning message
#: sabnzbd/config.py
msgid "Configuration locked, cannot save settings"
@@ -950,10 +932,6 @@ msgstr ""
msgid "Unpacking failed, write error or disk is full?"
msgstr "Не удалось распаковать: ошибка записи или на диске нет места?"
#: sabnzbd/newsunpack.py
msgid "Unpacking failed, disk full"
msgstr ""
#: sabnzbd/newsunpack.py
msgid "Unpacking failed, path is too long"
msgstr ""

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha2\n"
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
"Language-Team: Serbian (https://app.transifex.com/sabnzbd/teams/111101/sr/)\n"
@@ -184,18 +184,6 @@ msgid ""
" a usenet server."
msgstr ""
#: sabnzbd/api.py
msgid ""
"Could not connect to %s on port %s. Use the default usenet settings: port "
"563 and SSL turned on"
msgstr ""
#: sabnzbd/api.py
msgid ""
"Could not connect to %s on port %s. Use the default usenet settings: port "
"119 and SSL turned off"
msgstr ""
#: sabnzbd/api.py, sabnzbd/interface.py
msgid "Server address \"%s:%s\" is not valid."
msgstr "Adresa servera \"%s:%s\" je neispravna"
@@ -367,12 +355,6 @@ msgid ""
"might be emptied during updates."
msgstr ""
#. Warning message
#: sabnzbd/cfg.py
msgid ""
"The par2 application was switched, any custom par2 parameters were removed"
msgstr ""
#. Warning message
#: sabnzbd/config.py
msgid "Configuration locked, cannot save settings"
@@ -946,10 +928,6 @@ msgstr ""
msgid "Unpacking failed, write error or disk is full?"
msgstr "Neuspašno raspakivanje, greška u pisanju ili je disk pun?"
#: sabnzbd/newsunpack.py
msgid "Unpacking failed, disk full"
msgstr ""
#: sabnzbd/newsunpack.py
msgid "Unpacking failed, path is too long"
msgstr "Neuspešno raspakivanje, putanja je predugačka"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha2\n"
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
"Language-Team: Swedish (https://app.transifex.com/sabnzbd/teams/111101/sv/)\n"
@@ -185,18 +185,6 @@ msgid ""
" a usenet server."
msgstr ""
#: sabnzbd/api.py
msgid ""
"Could not connect to %s on port %s. Use the default usenet settings: port "
"563 and SSL turned on"
msgstr ""
#: sabnzbd/api.py
msgid ""
"Could not connect to %s on port %s. Use the default usenet settings: port "
"119 and SSL turned off"
msgstr ""
#: sabnzbd/api.py, sabnzbd/interface.py
msgid "Server address \"%s:%s\" is not valid."
msgstr "Serveradressen \"%s:%s\" är ej giltig."
@@ -367,12 +355,6 @@ msgid ""
"might be emptied during updates."
msgstr ""
#. Warning message
#: sabnzbd/cfg.py
msgid ""
"The par2 application was switched, any custom par2 parameters were removed"
msgstr ""
#. Warning message
#: sabnzbd/config.py
msgid "Configuration locked, cannot save settings"
@@ -948,10 +930,6 @@ msgstr ""
msgid "Unpacking failed, write error or disk is full?"
msgstr "Uppackning misslyckades, skrivfel eller disken full?"
#: sabnzbd/newsunpack.py
msgid "Unpacking failed, disk full"
msgstr ""
#: sabnzbd/newsunpack.py
msgid "Unpacking failed, path is too long"
msgstr "Uppackning misslyckades, sökvägen är för lång"

View File

@@ -7,7 +7,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha2\n"
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
"Last-Translator: Kangwei Li <lkw20010211@gmail.com>, 2023\n"
"Language-Team: Chinese (China) (https://app.transifex.com/sabnzbd/teams/111101/zh_CN/)\n"
@@ -183,18 +183,6 @@ msgid ""
" a usenet server."
msgstr ""
#: sabnzbd/api.py
msgid ""
"Could not connect to %s on port %s. Use the default usenet settings: port "
"563 and SSL turned on"
msgstr ""
#: sabnzbd/api.py
msgid ""
"Could not connect to %s on port %s. Use the default usenet settings: port "
"119 and SSL turned off"
msgstr ""
#: sabnzbd/api.py, sabnzbd/interface.py
msgid "Server address \"%s:%s\" is not valid."
msgstr "服务器地址 \"%s:%s\" 无效。"
@@ -365,12 +353,6 @@ msgid ""
"might be emptied during updates."
msgstr ""
#. Warning message
#: sabnzbd/cfg.py
msgid ""
"The par2 application was switched, any custom par2 parameters were removed"
msgstr ""
#. Warning message
#: sabnzbd/config.py
msgid "Configuration locked, cannot save settings"
@@ -941,10 +923,6 @@ msgstr "解压失败,文件太大文件系统不支持 (FAT?)"
msgid "Unpacking failed, write error or disk is full?"
msgstr "解压失败,写入出错或磁盘已满?"
#: sabnzbd/newsunpack.py
msgid "Unpacking failed, disk full"
msgstr ""
#: sabnzbd/newsunpack.py
msgid "Unpacking failed, path is too long"
msgstr "解压失败,路径过长"

View File

@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha2\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: team@sabnzbd.org\n"
"Language-Team: SABnzbd <team@sabnzbd.org>\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Pavel C <quoing_transifex@mess.cz>, 2022\n"
"Language-Team: Czech (https://app.transifex.com/sabnzbd/teams/111101/cs/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Danish (https://app.transifex.com/sabnzbd/teams/111101/da/)\n"

View File

@@ -9,7 +9,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Lorenz B, 2024\n"
"Language-Team: German (https://app.transifex.com/sabnzbd/teams/111101/de/)\n"

View File

@@ -7,7 +7,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Ester Molla Aragones <moarages@gmail.com>, 2020\n"
"Language-Team: Spanish (https://app.transifex.com/sabnzbd/teams/111101/es/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Finnish (https://app.transifex.com/sabnzbd/teams/111101/fi/)\n"

View File

@@ -7,7 +7,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Fred L <88com88@gmail.com>, 2024\n"
"Language-Team: French (https://app.transifex.com/sabnzbd/teams/111101/fr/)\n"

View File

@@ -7,7 +7,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: ION, 2024\n"
"Language-Team: Hebrew (https://app.transifex.com/sabnzbd/teams/111101/he/)\n"

View File

@@ -3,7 +3,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Language-Team: Italian (https://app.transifex.com/sabnzbd/teams/111101/it/)\n"
"MIME-Version: 1.0\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Norwegian Bokmål (https://app.transifex.com/sabnzbd/teams/111101/nb/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2024\n"
"Language-Team: Dutch (https://app.transifex.com/sabnzbd/teams/111101/nl/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Polish (https://app.transifex.com/sabnzbd/teams/111101/pl/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Portuguese (Brazil) (https://app.transifex.com/sabnzbd/teams/111101/pt_BR/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Romanian (https://app.transifex.com/sabnzbd/teams/111101/ro/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Russian (https://app.transifex.com/sabnzbd/teams/111101/ru/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Serbian (https://app.transifex.com/sabnzbd/teams/111101/sr/)\n"

View File

@@ -7,7 +7,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Petter Ramme, 2024\n"
"Language-Team: Swedish (https://app.transifex.com/sabnzbd/teams/111101/sv/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.4.0Beta1\n"
"Project-Id-Version: SABnzbd-4.4.0Alpha1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Chinese (China) (https://app.transifex.com/sabnzbd/teams/111101/zh_CN/)\n"

View File

@@ -2,7 +2,7 @@
# Note that not all sub-dependencies are listed, but only ones we know could cause trouble
apprise==1.9.0
sabctools==8.2.5
CT3==3.4.0b4
CT3==3.3.3.post1
cffi==1.17.1
pycparser==2.22
feedparser==6.0.11
@@ -23,6 +23,7 @@ pytz==2024.2
sgmllib3k==1.0.0
portend==3.2.0
chardet==5.2.0
pyunormalize==16.0.0
PySocks==1.7.1
puremagic==1.28
guessit==3.8.0
@@ -31,7 +32,7 @@ rebulk==3.2.0
# Recent cryptography versions require Rust. If you run into issues compiling this
# SABnzbd will also work with older pre-Rust versions such as cryptography==3.3.2
cryptography==43.0.3
cryptography==43.0.1
# We recommend using "orjson" as it is 2x as fast as "ujson". However, it requires
# Rust so SABnzbd works just as well with "ujson" or the Python built in "json" module
@@ -40,11 +41,11 @@ ujson==5.10.0
# Windows system integration
pywin32==308; sys_platform == 'win32'
windows-toasts==1.3.0; sys_platform == 'win32' and python_version > '3.8'
winrt-runtime==2.3.0; sys_platform == 'win32' and python_version > '3.8'
winrt-Windows.Data.Xml.Dom==2.3.0; sys_platform == 'win32' and python_version > '3.8'
winrt-Windows.Foundation==2.3.0; sys_platform == 'win32' and python_version > '3.8'
winrt-Windows.Foundation.Collections==2.3.0; sys_platform == 'win32' and python_version > '3.8'
winrt-Windows.UI.Notifications==2.3.0; sys_platform == 'win32' and python_version > '3.8'
winrt-runtime==2.2.0; sys_platform == 'win32' and python_version > '3.8'
winrt-Windows.Data.Xml.Dom==2.2.0; sys_platform == 'win32' and python_version > '3.8'
winrt-Windows.Foundation==2.2.0; sys_platform == 'win32' and python_version > '3.8'
winrt-Windows.Foundation.Collections==2.2.0; sys_platform == 'win32' and python_version > '3.8'
winrt-Windows.UI.Notifications==2.2.0; sys_platform == 'win32' and python_version > '3.8'
# macOS system calls
pyobjc-core==10.3.1; sys_platform == 'darwin'
@@ -67,8 +68,7 @@ urllib3==2.2.3
certifi==2024.8.30
oauthlib==3.2.2
PyJWT==2.9.0
blinker # List version-less for Python 3.8 to just get latest supported
blinker==1.9.0; python_version > '3.8'
blinker==1.8.2
# Optional support for *nix tray icon.
# Note that pygobject depends on pycairo, which requires pkg-config and cairo headers.

View File

@@ -1317,39 +1317,15 @@ def test_nntp_server_dict(kwargs: Dict[str, Union[str, List[str]]]) -> Tuple[boo
# All exceptions are caught internally
test_server.request_addrinfo_blocking()
if not test_server.addrinfo:
# so NNTP connection was tried, but did not succeed: no addrinfo. Possible causes:
# - user has filled out an indexer as newsserver. Not good.
# - user has filled out a weird port on which there is no newsserver
# - generic network problem (?)
test_server.timeout = DEF_NETWORKING_TEST_TIMEOUT # force a short timeout
# let's try well-known ports: HTTP and NTTP(S)
port_working = {80: False, 119: False, 563: False}
for port_to_check in port_working:
# Don't re-check if it was already tried by user
if port_to_check != port:
test_server.port = port_to_check
test_server.request_addrinfo_blocking()
port_working[port_to_check] = bool(test_server.addrinfo)
if not port_working[119] and not port_working[563] and port_working[80]:
# That's a webserver, not a newsserver!
# Try if we can connect on port 80 (so web server), forcing a short timeout
test_server.port = 80
test_server.timeout = DEF_NETWORKING_TEST_TIMEOUT
test_server.request_addrinfo_blocking()
if test_server.addrinfo:
return False, T(
"Could not connect to %s on port %s. It appears that %s operates as a web server (port 80), "
"possibly an indexer, not a usenet server. You have to fill a usenet server."
) % (host, port, host)
elif port not in (119, 563):
# User specified a weird port, so check if regular ones do work
if port_working[563]:
return False, T(
"Could not connect to %s on port %s. Use the default usenet settings: port 563 and SSL turned on"
) % (host, port)
if port_working[119]:
return False, T(
"Could not connect to %s on port %s. Use the default usenet settings: port 119 and SSL turned off"
) % (host, port)
# Sorry, no clever analysis:
return False, T('Server address "%s:%s" is not valid.') % (host, port)
try:

View File

@@ -448,7 +448,7 @@ start_paused = OptionBool("misc", "start_paused", False)
preserve_paused_state = OptionBool("misc", "preserve_paused_state", False)
enable_par_cleanup = OptionBool("misc", "enable_par_cleanup", True)
process_unpacked_par2 = OptionBool("misc", "process_unpacked_par2", True)
disable_par2cmdline = OptionBool("misc", "disable_par2cmdline", False)
enable_multipar = OptionBool("misc", "enable_multipar", True)
enable_unrar = OptionBool("misc", "enable_unrar", True)
enable_7zip = OptionBool("misc", "enable_7zip", True)
enable_filejoin = OptionBool("misc", "enable_filejoin", True)
@@ -785,17 +785,6 @@ def config_conversions():
# url_base conversion
if config_conversion_version() < 2:
# We did not end up applying this conversion, so we skip this conversion_version
logging.info("Config conversion set 2")
config_conversion_version.set(2)
# Switch to par2cmdline-turbo on Windows
if config_conversion_version() < 3:
logging.info("Config conversion set 3")
if sabnzbd.WIN32 and par_option():
# Just empty it, so we don't pass the wrong parameters
logging.warning(T("The par2 application was switched, any custom par2 parameters were removed"))
par_option.set("")
# Done
config_conversion_version.set(3)
# We did not end up applying this conversion, so we skip this conversion_version
pass

View File

@@ -33,7 +33,7 @@ import os
import re
import sabnzbd
from sabnzbd.filesystem import get_unique_filename, renamer, get_ext, get_basename
from sabnzbd.filesystem import get_unique_filename, renamer, get_ext, get_basename, listdir_normalized
from sabnzbd.par2file import is_parfile, parse_par2_file
import sabnzbd.utils.file_extension as file_extension
from sabnzbd.misc import match_str
@@ -59,7 +59,7 @@ def decode_par2(parfile: str) -> List[str]:
# Parse all files in the folder
dirname = os.path.dirname(parfile)
new_files = [] # list of new files generated
for fn in os.listdir(dirname):
for fn in listdir_normalized(dirname):
filepath = os.path.join(dirname, fn)
# Only check files
if os.path.isfile(filepath):

View File

@@ -214,7 +214,7 @@ class DirectUnpacker(threading.Thread):
"in the encrypted file",
"CRC failed",
"checksum failed",
"not enough space on the disk",
"You need to start extraction from a previous volume",
"password is incorrect",
"Incorrect password",
"Write error",

View File

@@ -20,6 +20,7 @@ sabnzbd.encoding - Unicode/byte translation functions
"""
import locale
import pyunormalize
import chardet
from xml.sax.saxutils import escape
from typing import AnyStr
@@ -27,6 +28,11 @@ from typing import AnyStr
CODEPAGE = locale.getpreferredencoding()
def normalize_utf8(inputstring: str) -> str:
"""Make sure we return an utf8 normalized version"""
return pyunormalize.NFC(inputstring)
def utob(str_in: AnyStr) -> bytes:
"""Shorthand for converting UTF-8 string to bytes"""
if isinstance(str_in, bytes):
@@ -37,22 +43,19 @@ def utob(str_in: AnyStr) -> bytes:
def ubtou(str_in: AnyStr) -> str:
"""Shorthand for converting unicode bytes to UTF-8 string"""
if isinstance(str_in, str):
return str_in
return str_in.decode("utf-8")
return normalize_utf8(str_in)
return normalize_utf8(str_in.decode("utf-8"))
def platform_btou(str_in: AnyStr) -> str:
"""Return Unicode string, if not already Unicode, decode with locale encoding.
NOTE: Used for POpen because universal_newlines/text parameter doesn't
always work! We cannot use encoding-parameter because it's Python 3.7+
"""
"""Return Unicode string, if not already Unicode, decode with locale encoding"""
if isinstance(str_in, bytes):
try:
return ubtou(str_in)
except UnicodeDecodeError:
return str_in.decode(CODEPAGE, errors="replace").replace("?", "!")
return normalize_utf8(str_in.decode(CODEPAGE, errors="replace").replace("?", "!"))
else:
return str_in
return normalize_utf8(str_in)
def correct_unknown_encoding(str_or_bytes_in: AnyStr) -> str:
@@ -71,10 +74,10 @@ def correct_unknown_encoding(str_or_bytes_in: AnyStr) -> str:
except UnicodeDecodeError:
try:
# Try using 8-bit ASCII, if came from Windows
return str_or_bytes_in.decode("ISO-8859-1")
return normalize_utf8(str_or_bytes_in.decode("ISO-8859-1"))
except ValueError:
# Last resort we use the slow chardet package
return str_or_bytes_in.decode(chardet.detect(str_or_bytes_in)["encoding"])
return normalize_utf8(str_or_bytes_in.decode(chardet.detect(str_or_bytes_in)["encoding"]))
def correct_cherrypy_encoding(inputstring: str) -> str:

View File

@@ -46,7 +46,7 @@ except ImportError:
import sabnzbd
from sabnzbd.decorators import synchronized, cache_maintainer
from sabnzbd.constants import FUTURE_Q_FOLDER, JOB_ADMIN, GIGI, DEF_FILE_MAX, IGNORED_FILES_AND_FOLDERS, DEF_LOG_FILE
from sabnzbd.encoding import correct_unknown_encoding, utob, ubtou
from sabnzbd.encoding import correct_unknown_encoding, utob, ubtou, normalize_utf8
from sabnzbd.utils import rarfile
@@ -561,7 +561,7 @@ def globber(path: str, pattern: str = "*") -> List[str]:
"""Return matching base file/folder names in folder `path`"""
# Cannot use glob.glob() because it doesn't support Windows long name notation
if os.path.exists(path):
return [f for f in os.listdir(path) if safe_fnmatch(f, pattern)]
return [f for f in listdir_normalized(path) if safe_fnmatch(f, pattern)]
return []
@@ -569,7 +569,8 @@ def globber_full(path: str, pattern: str = "*") -> List[str]:
"""Return matching full file/folder names in folder `path`"""
# Cannot use glob.glob() because it doesn't support Windows long name notation
if os.path.exists(path):
return [os.path.join(path, f) for f in os.listdir(path) if safe_fnmatch(f, pattern)]
path = normalize_utf8(path)
return [os.path.join(path, f) for f in listdir_normalized(path) if safe_fnmatch(f, pattern)]
return []
@@ -581,7 +582,7 @@ def fix_unix_encoding(folder: str):
if not sabnzbd.WIN32 and not sabnzbd.MACOS:
for root, dirs, files in os.walk(folder):
for name in files:
new_name = correct_unknown_encoding(name)
new_name = normalize_utf8(correct_unknown_encoding(name))
if name != new_name:
try:
renamer(os.path.join(root, name), os.path.join(root, new_name))
@@ -804,6 +805,12 @@ def get_unique_filename(path: str) -> str:
return path
def listdir_normalized(input_dir: str) -> List[str]:
"""On macOS, the OS returns un-normalized results.
Always use the same normalization on all platforms"""
return [normalize_utf8(path) for path in os.listdir(input_dir)]
@synchronized(DIR_LOCK)
def listdir_full(input_dir: str, recursive: bool = True) -> List[str]:
"""List all files in dirs and sub-dirs"""
@@ -812,7 +819,7 @@ def listdir_full(input_dir: str, recursive: bool = True) -> List[str]:
for file in files:
# Ignore special folders and resources files created by macOS
if not sabnzbd.misc.match_str(root, IGNORED_FILES_AND_FOLDERS) and not file.startswith("._"):
filelist.append(os.path.join(root, file))
filelist.append(normalize_utf8(os.path.join(root, file)))
if not recursive:
break
return filelist
@@ -1386,7 +1393,7 @@ def pathbrowser(path: str, show_hidden: bool = False, show_files: bool = False)
# List all files and folders
file_list = []
for filename in os.listdir(path):
for filename in listdir_normalized(path):
fpath = os.path.join(path, filename)
isdir = os.path.isdir(fpath)

View File

@@ -70,12 +70,10 @@ class AddrInfo:
canonname: str
sockaddr: Union[Tuple[str, int], Tuple[str, int, int, int]]
ipaddress: str = ""
port: int = 0
def __post_init__(self):
# For easy access
self.ipaddress = self.sockaddr[0]
self.port = self.sockaddr[1]
def family_type(family) -> str:
@@ -100,18 +98,16 @@ def do_socket_connect(result_queue: queue.Queue, addrinfo: AddrInfo, timeout: in
s.connect(addrinfo.sockaddr)
result_queue.put(addrinfo)
logging.debug(
"Happy Eyeballs connected to %s (%s, port=%d) in %dms",
"Happy Eyeballs connected to %s (%s) in %dms",
addrinfo.ipaddress,
addrinfo.canonname,
addrinfo.port,
1000 * (time.time() - start),
)
except socket.error:
logging.debug(
"Happy Eyeballs failed to connect to %s (%s, port=%d) in %dms",
"Happy Eyeballs failed to connect to %s (%s) in %dms",
addrinfo.ipaddress,
addrinfo.canonname,
addrinfo.port,
1000 * (time.time() - start),
)
finally:

View File

@@ -843,7 +843,7 @@ SPECIAL_BOOL_LIST = (
"api_warnings",
"helpful_warnings",
"ampm",
"disable_par2cmdline",
"enable_multipar",
"enable_unrar",
"enable_7zip",
"enable_filejoin",

View File

@@ -63,6 +63,7 @@ from sabnzbd.filesystem import (
SEVENMULTI_RE,
is_size,
get_basename,
listdir_normalized,
)
from sabnzbd.nzbstuff import NzbObject
import sabnzbd.cfg as cfg
@@ -734,7 +735,6 @@ def rar_extract_core(
extracted = []
rarfiles = []
fail = 0
requires_kill = False
inrecovery = False
lines = []
@@ -790,14 +790,6 @@ def rar_extract_core(
nzo.set_unpack_info("Unpack", msg, setname)
fail = 1
elif line.startswith("There is not enough space on the disk"):
msg = T("Unpacking failed, disk full")
nzo.fail_msg = msg
nzo.set_unpack_info("Unpack", msg, setname)
fail = 1
# After this is a line that requires user input ([R]etry, [A]bort), which hangs, so we need a kill
requires_kill = True
elif line.startswith("Cannot create"):
line2 = p.stdout.readline()
if "must not exceed 260" in line2:
@@ -808,7 +800,7 @@ def rar_extract_core(
nzo.set_unpack_info("Unpack", msg, setname)
fail = 1
# Kill the process (can stay in endless loop on Windows Server)
requires_kill = True
p.kill()
elif line.startswith("ERROR: "):
nzo.fail_msg = line
@@ -853,10 +845,9 @@ def rar_extract_core(
extracted.append(real_path(extraction_path, unpacked_file))
if fail:
if requires_kill:
p.kill()
else:
p.wait()
if p.stdout:
p.stdout.close()
p.wait()
logging.debug("UNRAR output: \n%s", "\n".join(lines))
return fail, [], []
@@ -1030,7 +1021,7 @@ def par2_repair(nzo: NzbObject, setname: str) -> Tuple[bool, bool]:
return False, True
parfile = os.path.join(nzo.download_path, parfile_nzf.filename)
old_dir_content = os.listdir(nzo.download_path)
old_dir_content = listdir_normalized(nzo.download_path)
used_joinables = ()
joinables = ()
used_for_repair = ()
@@ -1069,7 +1060,7 @@ def par2_repair(nzo: NzbObject, setname: str) -> Tuple[bool, bool]:
joinables, _, _, _ = build_filelists(nzo.download_path, check_rar=False)
# Multipar on Windows, par2cmdline on the other platforms
if cfg.disable_par2cmdline() and sabnzbd.WIN32:
if cfg.enable_multipar() and sabnzbd.WIN32:
finished, readd, used_joinables, used_for_repair = multipar_verify(parfile, nzo, setname, joinables)
else:
finished, readd, used_joinables, used_for_repair = par2cmdline_verify(parfile, nzo, setname, joinables)
@@ -1090,7 +1081,7 @@ def par2_repair(nzo: NzbObject, setname: str) -> Tuple[bool, bool]:
try:
if cfg.enable_par_cleanup():
deletables = []
new_dir_content = os.listdir(nzo.download_path)
new_dir_content = listdir_normalized(nzo.download_path)
# If Multipar or par2cmdline repairs a broken part of a joinable, it doesn't list it as such.
# So we need to manually add all joinables of the set to the list of used joinables.
@@ -1160,7 +1151,13 @@ def par2cmdline_verify(
else:
# Normal case, everything is named after set
wildcard = setname + "*"
command.append(os.path.join(parfolder, wildcard))
if sabnzbd.MACOS or sabnzbd.WIN32:
command.append(os.path.join(parfolder, wildcard))
else:
# For Unix systems, remove folders, due to bug in some par2cmdline versions
flist = [item for item in globber_full(parfolder, wildcard) if os.path.isfile(item)]
command.extend(flist)
# We need to check for the bad par2cmdline that skips blocks
# Or the one that complains about basepath

View File

@@ -1223,7 +1223,7 @@ class NzbObject(TryList):
# Abort the job due to failure
if not job_can_succeed:
self.fail_msg = T("Aborted, cannot be completed") + " - https://sabnzbd.org/not-complete"
self.set_unpack_info("Download", self.fail_msg)
self.set_unpack_info("Download", self.fail_msg, unique=False)
logging.debug('Abort job "%s", due to impossibility to complete it', self.final_name)
return True, True, True

View File

@@ -73,6 +73,7 @@ from sabnzbd.filesystem import (
get_filename,
directory_is_writable,
check_filesystem_capabilities,
listdir_normalized,
)
from sabnzbd.nzbstuff import NzbObject
from sabnzbd.sorting import Sorter
@@ -961,7 +962,7 @@ def rar_renamer(nzo: NzbObject) -> int:
volnrext = {}
# Scan rar files in workdir, but not subdirs
workdir_files = os.listdir(nzo.download_path)
workdir_files = listdir_normalized(nzo.download_path)
for file_to_check in workdir_files:
file_to_check = os.path.join(nzo.download_path, file_to_check)
@@ -1185,7 +1186,7 @@ def one_file_or_folder(folder: str) -> str:
"""If the dir only contains one file or folder, join that file/folder onto the path"""
if os.path.exists(folder) and os.path.isdir(folder):
try:
cont = os.listdir(folder)
cont = listdir_normalized(folder)
if len(cont) == 1:
folder = os.path.join(folder, cont[0])
folder = one_file_or_folder(folder)

View File

@@ -37,6 +37,7 @@ from sabnzbd.filesystem import (
renamer,
sanitize_foldername,
clip_path,
listdir_normalized,
)
import sabnzbd.config as config
import sabnzbd.cfg as cfg
@@ -616,7 +617,7 @@ def move_to_parent_directory(workdir: str) -> Tuple[str, bool]:
logging.debug("Moving all files from %s to %s", workdir, dest)
# Check for DVD folders and bail out if found
for item in os.listdir(workdir):
for item in listdir_normalized(workdir):
if item.lower() in IGNORED_MOVIE_FOLDERS:
return workdir, True

View File

@@ -6,5 +6,5 @@
# You MUST use double quotes (so " and not ')
# Do not forget to update the appdata file for every major release!
__version__ = "4.4.0Beta2"
__version__ = "4.4.0Alpha2"
__baseline__ = "unknown"

View File

@@ -1,5 +1,5 @@
# Testing requirements
pytest
pytest==7.4.4
setuptools
selenium
requests

View File

@@ -175,7 +175,7 @@ class TestPar2Repair:
]
)
if sabnzbd.WIN32 and cfg.disable_par2cmdline():
if sabnzbd.WIN32 and cfg.enable_multipar():
# Multipar output status updates
nzo.set_action_line.assert_has_calls(
[
@@ -238,7 +238,7 @@ class TestPar2Repair:
# There are no renames in case of filejoin by par2repair!
nzo.renamed_file.assert_not_called()
if sabnzbd.WIN32 and cfg.disable_par2cmdline():
if sabnzbd.WIN32 and cfg.enable_multipar():
# Multipar output status updates, which is limited because Multipar doesn't say much..
nzo.set_action_line.assert_has_calls(
[
@@ -301,7 +301,7 @@ class TestPar2Repair:
# All joinable files should be removed
assert dir_contents == ["__ADMIN__", "par2test.bin"]
if sabnzbd.WIN32 and cfg.disable_par2cmdline():
if sabnzbd.WIN32 and cfg.enable_multipar():
# Multipar output status updates, which is limited because Multipar doesn't say much..
nzo.set_action_line.assert_has_calls(
[

View File

Binary file not shown.

View File

Binary file not shown.