mirror of
https://github.com/sabnzbd/sabnzbd.git
synced 2026-02-18 14:48:28 -05:00
Compare commits
34 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fad8484b93 | ||
|
|
7664b54f89 | ||
|
|
21cbc353dd | ||
|
|
8d66306ec4 | ||
|
|
adcdca6f2e | ||
|
|
efd7d1a4a0 | ||
|
|
fc3fa137ac | ||
|
|
61e901e07b | ||
|
|
d5dee106d1 | ||
|
|
00518e1a60 | ||
|
|
129d622015 | ||
|
|
4423cbfcf3 | ||
|
|
7f0d845dd0 | ||
|
|
bba1c894c5 | ||
|
|
6c197a4a8c | ||
|
|
4ceae8ec31 | ||
|
|
d257f903cc | ||
|
|
69742dd785 | ||
|
|
92161eae07 | ||
|
|
70d5099902 | ||
|
|
de80f4e262 | ||
|
|
0f0b8d4528 | ||
|
|
e34301fb2f | ||
|
|
a140c1ddc1 | ||
|
|
b472c615fb | ||
|
|
d41f33775e | ||
|
|
c27d60e2b0 | ||
|
|
77fcaf4fca | ||
|
|
206dc66f7c | ||
|
|
2d267fc50a | ||
|
|
5cd5f00df7 | ||
|
|
6a80869861 | ||
|
|
fb113514ae | ||
|
|
91740048c2 |
9
.github/workflows/build_release.yml
vendored
9
.github/workflows/build_release.yml
vendored
@@ -87,7 +87,7 @@ 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.11.0"
|
||||
PYTHON_VERSION: "3.11.1"
|
||||
MACOSX_DEPLOYMENT_TARGET: "10.9"
|
||||
# We need to force compile for universal2 support
|
||||
CFLAGS: -arch x86_64 -arch arm64
|
||||
@@ -123,7 +123,6 @@ jobs:
|
||||
# https://github.com/pyca/cryptography/issues/5918
|
||||
# 2. We need to build the PyInstaller bootloader:
|
||||
# https://github.com/pyinstaller/pyinstaller/issues/6235
|
||||
# 3. TEMPORARY: Add aarch64 for orjson universal2 build, until they provide a wheel
|
||||
if: steps.cache-virtualenv.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
python3 --version
|
||||
@@ -132,11 +131,9 @@ jobs:
|
||||
pip3 install --upgrade -r requirements.txt --no-binary cffi
|
||||
|
||||
pip3 uninstall cryptography -y
|
||||
pip3 download -r builder/osx/requirements.txt --platform macosx_10_10_universal2 --only-binary :all: --no-deps --dest .
|
||||
pip3 download -r builder/osx/requirements.txt --platform macosx_10_12_universal2 --only-binary :all: --no-deps --dest .
|
||||
pip3 install -r builder/osx/requirements.txt --no-cache-dir --no-index --find-links .
|
||||
|
||||
rustup target add aarch64-apple-darwin
|
||||
|
||||
|
||||
PYINSTALLER_COMPILE_BOOTLOADER=1 pip3 install --upgrade -r builder/requirements.txt --no-binary pyinstaller
|
||||
- name: Import macOS codesign certificates
|
||||
# Taken from https://github.com/Apple-Actions/import-codesign-certs/pull/27 (comments)
|
||||
|
||||
3
.github/workflows/integration_testing.yml
vendored
3
.github/workflows/integration_testing.yml
vendored
@@ -39,8 +39,7 @@ jobs:
|
||||
python-version: "3.11"
|
||||
- name: Windows
|
||||
os: windows-latest
|
||||
# lxml is not yet available for Python 3.11, so CI is stuck on 3.10 for now
|
||||
python-version: "3.10"
|
||||
python-version: "3.11"
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
2
.github/workflows/translations.yml
vendored
2
.github/workflows/translations.yml
vendored
@@ -22,7 +22,7 @@ jobs:
|
||||
if: env.TX_TOKEN
|
||||
run: |
|
||||
curl -o- https://raw.githubusercontent.com/transifex/cli/master/install.sh | bash
|
||||
./tx push --source
|
||||
./tx push --translation --source
|
||||
./tx pull --all --force
|
||||
- name: Compile translations to validate them
|
||||
run: |
|
||||
|
||||
4
PKG-INFO
4
PKG-INFO
@@ -1,7 +1,7 @@
|
||||
Metadata-Version: 1.0
|
||||
Name: SABnzbd
|
||||
Version: 3.7.1
|
||||
Summary: SABnzbd-3.7.1
|
||||
Version: 3.7.2RC1
|
||||
Summary: SABnzbd-3.7.2RC1
|
||||
Home-page: https://sabnzbd.org
|
||||
Author: The SABnzbd Team
|
||||
Author-email: team@sabnzbd.org
|
||||
|
||||
11
README.mkd
11
README.mkd
@@ -1,6 +1,15 @@
|
||||
Release Notes - SABnzbd 3.7.1
|
||||
Release Notes - SABnzbd 3.7.2 Release Candidate 1
|
||||
=========================================================
|
||||
|
||||
## Bugfixes and changes since 3.7.1
|
||||
- Ignore permissions inside archives during unpacking by UnRar.
|
||||
- Improvements to connection error messages.
|
||||
- Apply other changes only after updating the `Category` in multi-edit.
|
||||
- Categories were not sorted correctly in dropdowns.
|
||||
- Prevent crash when `Automatically sort queue` was enabled.
|
||||
- Tweaks to download performance.
|
||||
- Linux: Update appstream metadata.
|
||||
|
||||
## Bugfixes and changes since 3.7.0
|
||||
- Minor improvements in download performance.
|
||||
- Scripts set `On queue finish` are no longer persistent by default.
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
# Special requirements for macOS universal2 binary release
|
||||
# This way dependabot can auto-update them
|
||||
cryptography==38.0.4
|
||||
cryptography==39.0.0
|
||||
@@ -5,18 +5,19 @@ pyinstaller-hooks-contrib==2022.14
|
||||
altgraph==0.17.3
|
||||
wrapt==1.14.1
|
||||
setuptools==65.6.3
|
||||
pkginfo==1.9.2
|
||||
pkginfo==1.9.6
|
||||
PyGithub==1.57
|
||||
charset-normalizer==3.0.1
|
||||
certifi
|
||||
|
||||
# orjson does not support 32bit Windows, exclude it based on Python-version
|
||||
# This way we also test ujson on Python 3.7 and 3.8 in the CI-tests
|
||||
# Fixed to 3.8.3 due to issue in 3.8.4: https://github.com/ijl/orjson/issues/331
|
||||
orjson==3.8.3; python_version > '3.8'
|
||||
|
||||
# For the macOS build
|
||||
dmgbuild==1.6.0; sys_platform == 'darwin'
|
||||
mac-alias==2.2.1; sys_platform == 'darwin'
|
||||
mac-alias==2.2.2; sys_platform == 'darwin'
|
||||
macholib==1.16.2; sys_platform == 'darwin'
|
||||
ds-store==1.3.1; sys_platform == 'darwin'
|
||||
PyNaCl==1.5.0; sys_platform == 'darwin'
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<!--#if not $windows#-->
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" id="show_hidden_folders"> <span>$T('systemFolders')</span>
|
||||
<input type="checkbox" id="show_hidden_folders"> <span>$T('hiddenFolders')</span>
|
||||
</label>
|
||||
</div>
|
||||
<!--#end if#-->
|
||||
|
||||
@@ -671,6 +671,11 @@ function ViewModel() {
|
||||
}
|
||||
}
|
||||
|
||||
// default to url input when modal is shown
|
||||
$('#modal-add-nzb').on('shown.bs.modal', function() {
|
||||
$('input[name="nzbURL"]').focus();
|
||||
})
|
||||
|
||||
// From the upload or filedrop
|
||||
self.addNZBFromFile = function(files, fileindex) {
|
||||
// First file
|
||||
@@ -1334,6 +1339,12 @@ function ViewModel() {
|
||||
// And refresh now!
|
||||
self.refresh()
|
||||
|
||||
// Activate tooltips
|
||||
if (!isMobile) $('[data-tooltip="true"]').tooltip({ trigger: 'hover', container: 'body' })
|
||||
// Special options for (non) mobile
|
||||
if (isMobile) {
|
||||
// Disable accept parameter on file inputs, as it doesn't work on mobile Safari
|
||||
$("input[accept!=''][accept]").attr("accept","")
|
||||
} else {
|
||||
// Activate tooltips
|
||||
$('[data-tooltip="true"]').tooltip({ trigger: 'hover', container: 'body' })
|
||||
}
|
||||
}
|
||||
|
||||
@@ -343,54 +343,61 @@ function QueueListModel(parent) {
|
||||
var newStatus = $('.multioperations-selector input[name="multiedit-status"]:checked').val()
|
||||
|
||||
// List all the ID's
|
||||
var strIDs = '';
|
||||
var strIDs = '';
|
||||
$.each(self.multiEditItems(), function(index) {
|
||||
strIDs = strIDs + this.id + ',';
|
||||
})
|
||||
|
||||
// All non-category updates need to only happen after a category update
|
||||
function nonCatUpdates() {
|
||||
if(newScript != '') {
|
||||
callAPI({
|
||||
mode: 'change_script',
|
||||
value: strIDs,
|
||||
value2: newScript
|
||||
})
|
||||
}
|
||||
if(newPrior != '') {
|
||||
callAPI({
|
||||
mode: 'queue',
|
||||
name: 'priority',
|
||||
value: strIDs,
|
||||
value2: newPrior
|
||||
})
|
||||
}
|
||||
if(newProc != '') {
|
||||
callAPI({
|
||||
mode: 'change_opts',
|
||||
value: strIDs,
|
||||
value2: newProc
|
||||
})
|
||||
}
|
||||
if(newStatus) {
|
||||
callAPI({
|
||||
mode: 'queue',
|
||||
name: newStatus,
|
||||
value: strIDs
|
||||
})
|
||||
}
|
||||
|
||||
// Wat a little and do the refresh
|
||||
// Only if anything changed!
|
||||
if(newStatus || newProc != '' || newPrior != '' || newScript != '' || newCat != '') {
|
||||
setTimeout(parent.refresh, 100)
|
||||
}
|
||||
}
|
||||
|
||||
// What is changed?
|
||||
if(newCat != '') {
|
||||
callAPI({
|
||||
mode: 'change_cat',
|
||||
value: strIDs,
|
||||
value2: newCat
|
||||
})
|
||||
}
|
||||
if(newScript != '') {
|
||||
callAPI({
|
||||
mode: 'change_script',
|
||||
value: strIDs,
|
||||
value2: newScript
|
||||
})
|
||||
}
|
||||
if(newPrior != '') {
|
||||
callAPI({
|
||||
mode: 'queue',
|
||||
name: 'priority',
|
||||
value: strIDs,
|
||||
value2: newPrior
|
||||
})
|
||||
}
|
||||
if(newProc != '') {
|
||||
callAPI({
|
||||
mode: 'change_opts',
|
||||
value: strIDs,
|
||||
value2: newProc
|
||||
})
|
||||
}
|
||||
if(newStatus) {
|
||||
callAPI({
|
||||
mode: 'queue',
|
||||
name: newStatus,
|
||||
value: strIDs
|
||||
})
|
||||
}).then(nonCatUpdates)
|
||||
} else {
|
||||
nonCatUpdates()
|
||||
}
|
||||
|
||||
// Wat a little and do the refresh
|
||||
// Only if anything changed!
|
||||
if(newStatus || newProc != '' || newPrior != '' || newScript != '' || newCat != '') {
|
||||
setTimeout(parent.refresh, 100)
|
||||
}
|
||||
}
|
||||
|
||||
// Selete all selected
|
||||
|
||||
@@ -23,16 +23,26 @@
|
||||
</categories>
|
||||
<url type="homepage">https://sabnzbd.org</url>
|
||||
<url type="bugtracker">https://github.com/sabnzbd/sabnzbd/issues</url>
|
||||
<url type="vcs-browser">https://github.com/sabnzbd/sabnzbd</url>
|
||||
<url type="translate">https://sabnzbd.org/wiki/translate</url>
|
||||
<url type="donation">https://sabnzbd.org/donate</url>
|
||||
<url type="help">https://sabnzbd.org/wiki/</url>
|
||||
<url type="faq">https://sabnzbd.org/wiki/faq</url>
|
||||
<url type="contact">https://forums.sabnzbd.org</url>
|
||||
<url type="contact">https://sabnzbd.org/live-chat.html</url>
|
||||
<launchable type="desktop-id">sabnzbd.desktop</launchable>
|
||||
<provides>
|
||||
<mediatype>application/x-nzb</mediatype>
|
||||
<mediatype>application/x-compressed-nzb</mediatype>
|
||||
</provides>
|
||||
<supports>
|
||||
<control>pointing</control>
|
||||
<control>keyboard</control>
|
||||
<control>touch</control>
|
||||
</supports>
|
||||
<recommends>
|
||||
<display_length compare="ge">small</display_length>
|
||||
<internet>always</internet>
|
||||
</recommends>
|
||||
<project_license>GPL-2.0-or-later</project_license>
|
||||
<developer_name>The SABnzbd-team</developer_name>
|
||||
<screenshots>
|
||||
|
||||
@@ -393,7 +393,6 @@ msgstr ""
|
||||
msgid "You must set a maximum bandwidth before you can set a bandwidth limit"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Cannot connect to server %s [%s]"
|
||||
msgstr ""
|
||||
@@ -417,19 +416,16 @@ msgstr ""
|
||||
msgid "Failed to initialize %s@%s with reason: %s"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s"
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Probable account sharing"
|
||||
msgid "Login from too many different IP addresses to server %s [%s] - https://sabnzbd.org/multiple-adresses"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Failed login for server %s"
|
||||
msgid "Failed login for server %s [%s]"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
@@ -2828,6 +2824,10 @@ msgstr ""
|
||||
msgid "System Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hidden Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Administrative Folder"
|
||||
msgstr ""
|
||||
|
||||
@@ -428,7 +428,6 @@ msgstr ""
|
||||
"Musíte nastavit maximální rychlost linky předtím než začnete nastavovat "
|
||||
"limity pro přenos"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Cannot connect to server %s [%s]"
|
||||
msgstr "Nelze se připojit k serveru %s [%s]"
|
||||
@@ -452,20 +451,19 @@ msgstr ""
|
||||
msgid "Failed to initialize %s@%s with reason: %s"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s"
|
||||
msgstr "Příliš mnoho spojení k serveru %s"
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "Příliš mnoho spojení k serveru %s [%s]"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Probable account sharing"
|
||||
msgstr "Pravděpodobné sdílení účtu"
|
||||
msgid ""
|
||||
"Login from too many different IP addresses to server %s [%s] - "
|
||||
"https://sabnzbd.org/multiple-adresses"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Failed login for server %s"
|
||||
msgstr "Přihlášení k serveru %s se nezdařilo"
|
||||
msgid "Failed login for server %s [%s]"
|
||||
msgstr "Přihlášení k serveru %s se nezdařilo [%s]"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
@@ -2957,6 +2955,10 @@ msgstr ""
|
||||
msgid "System Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hidden Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Administrative Folder"
|
||||
msgstr ""
|
||||
|
||||
@@ -426,7 +426,6 @@ msgstr ""
|
||||
"Du skal angive den maksimale båndbredde, før du kan angive en båndbredde "
|
||||
"begrænsning"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Cannot connect to server %s [%s]"
|
||||
msgstr "Kan ikke tilslutte til server %s [%s]"
|
||||
@@ -450,20 +449,19 @@ msgstr ""
|
||||
msgid "Failed to initialize %s@%s with reason: %s"
|
||||
msgstr "Det lykkedes ikke at initialisere %s@%s med begrundelse %s"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s"
|
||||
msgstr "Alt for mange forbindelser til serveren %s"
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "Alt for mange forbindelser til serveren %s [%s]"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Probable account sharing"
|
||||
msgstr "Sandsynligt delt konto"
|
||||
msgid ""
|
||||
"Login from too many different IP addresses to server %s [%s] - "
|
||||
"https://sabnzbd.org/multiple-adresses"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Failed login for server %s"
|
||||
msgstr "Det lykkedes ikke at logge på serveren %s"
|
||||
msgid "Failed login for server %s [%s]"
|
||||
msgstr "Det lykkedes ikke at logge på serveren %s [%s]"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
@@ -3020,6 +3018,10 @@ msgstr ""
|
||||
msgid "System Folders"
|
||||
msgstr "Systemmapper"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hidden Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Administrative Folder"
|
||||
msgstr "Administrativ mappe"
|
||||
|
||||
@@ -10,14 +10,14 @@
|
||||
# Andreas Kames, 2021
|
||||
# Simon W., 2021
|
||||
# Nils Briggen, 2022
|
||||
# Safihre <safihre@sabnzbd.org>, 2022
|
||||
# reloxx13 <reloxx@interia.pl>, 2022
|
||||
# Safihre <safihre@sabnzbd.org>, 2022
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
|
||||
"Last-Translator: reloxx13 <reloxx@interia.pl>, 2022\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2022\n"
|
||||
"Language-Team: German (https://www.transifex.com/sabnzbd/teams/111101/de/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -455,7 +455,6 @@ msgstr ""
|
||||
"Bevor ein Bandbreitenlimit gesetzt werden kann, muss die maximale Bandbreite"
|
||||
" festgelegt werden"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Cannot connect to server %s [%s]"
|
||||
msgstr "Verbindung zum Server %s kann nicht hergestellt werden. %s"
|
||||
@@ -479,20 +478,19 @@ msgstr "Es gibt keine aktiven Server!"
|
||||
msgid "Failed to initialize %s@%s with reason: %s"
|
||||
msgstr "Fehler %s@%s zu initialisieren, aus folgendem Grund: %s"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s"
|
||||
msgstr "Zu viele Verbindungen zu Server %s"
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "Zu viele Verbindungen zu Server %s [%s]"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Probable account sharing"
|
||||
msgstr "Möglicherweise wird das Konto geteilt"
|
||||
msgid ""
|
||||
"Login from too many different IP addresses to server %s [%s] - "
|
||||
"https://sabnzbd.org/multiple-adresses"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Failed login for server %s"
|
||||
msgstr "Anmelden beim Server fehlgeschlagen. %s"
|
||||
msgid "Failed login for server %s [%s]"
|
||||
msgstr "Anmelden beim Server fehlgeschlagen. %s [%s]"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
@@ -3126,6 +3124,10 @@ msgstr ""
|
||||
msgid "System Folders"
|
||||
msgstr "System-Ordner"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hidden Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Administrative Folder"
|
||||
msgstr "Administrativer Ordner"
|
||||
|
||||
@@ -4,14 +4,14 @@
|
||||
#
|
||||
# Translators:
|
||||
# Ester Molla Aragones <moarages@gmail.com>, 2020
|
||||
# 1024mb <angelb2203@gmail.com>, 2020
|
||||
# Safihre <safihre@sabnzbd.org>, 2022
|
||||
# 1024mb <angelb2203@gmail.com>, 2023
|
||||
# Safihre <safihre@sabnzbd.org>, 2023
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2022\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
|
||||
"Language-Team: Spanish (https://www.transifex.com/sabnzbd/teams/111101/es/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -114,6 +114,8 @@ msgid ""
|
||||
"Current umask (%o) might deny SABnzbd access to the files and folders it "
|
||||
"creates."
|
||||
msgstr ""
|
||||
"La umask actual (%o) podría denegarle acceso a SABnzbd a los archivos y "
|
||||
"carpetas que este crea."
|
||||
|
||||
#. Warning message
|
||||
#: SABnzbd.py
|
||||
@@ -158,22 +160,22 @@ msgstr "Error grave al guardar estado"
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed postprocessor"
|
||||
msgstr ""
|
||||
msgstr "Reiniciando a causa de un posprocesador colgado"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed downloader"
|
||||
msgstr ""
|
||||
msgstr "Reiniciando debido al cuelgue del descargador"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed decoder"
|
||||
msgstr ""
|
||||
msgstr "Reiniciando a causa de un decodificador colgado"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
msgid "Restarting because of crashed assembler"
|
||||
msgstr ""
|
||||
msgstr "Reiniciando debido al cuelgue del ensamblador"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/__init__.py
|
||||
@@ -446,7 +448,6 @@ msgstr ""
|
||||
"Debe establecer un ancho de banda máximo antes de poder establecer un límite"
|
||||
" de ancho de banda"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Cannot connect to server %s [%s]"
|
||||
msgstr "Error en inicio de conexion a servidor %s [%s]"
|
||||
@@ -470,20 +471,19 @@ msgstr ""
|
||||
msgid "Failed to initialize %s@%s with reason: %s"
|
||||
msgstr "Error al inicializar %s@%s con la razón: %s"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s"
|
||||
msgstr "Demasiadas conexiones con el servidor %s"
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "Demasiadas conexiones con el servidor %s [%s]"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Probable account sharing"
|
||||
msgstr "Compartiendo de cuenta probable"
|
||||
msgid ""
|
||||
"Login from too many different IP addresses to server %s [%s] - "
|
||||
"https://sabnzbd.org/multiple-adresses"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Failed login for server %s"
|
||||
msgstr "Registraccion fallo para servidor %s"
|
||||
msgid "Failed login for server %s [%s]"
|
||||
msgstr "Registraccion fallo para servidor %s [%s]"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
@@ -3098,6 +3098,10 @@ msgstr ""
|
||||
msgid "System Folders"
|
||||
msgstr "Directorios del sistema"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hidden Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Administrative Folder"
|
||||
msgstr "Directorio de administración"
|
||||
|
||||
@@ -422,7 +422,6 @@ msgid "You must set a maximum bandwidth before you can set a bandwidth limit"
|
||||
msgstr ""
|
||||
"Sinun täytyy määrittää enimmäiskaista ennen kaistarajoituksen käyttöönottoa."
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Cannot connect to server %s [%s]"
|
||||
msgstr "Palvelimeen %s ei voida yhdistää [%s]"
|
||||
@@ -446,20 +445,19 @@ msgstr ""
|
||||
msgid "Failed to initialize %s@%s with reason: %s"
|
||||
msgstr "Alustaminen epäonnistui kohteessa %s@%s syy: %s"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s"
|
||||
msgstr "Liikaa yhteyksiä palvelimelle %s"
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "Liikaa yhteyksiä palvelimelle %s [%s]"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Probable account sharing"
|
||||
msgstr "Mahdollinen tilin jakaminen"
|
||||
msgid ""
|
||||
"Login from too many different IP addresses to server %s [%s] - "
|
||||
"https://sabnzbd.org/multiple-adresses"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Failed login for server %s"
|
||||
msgstr "Kirjautuminen palvelimelle %s epäonnistui"
|
||||
msgid "Failed login for server %s [%s]"
|
||||
msgstr "Kirjautuminen palvelimelle %s epäonnistui [%s]"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
@@ -3022,6 +3020,10 @@ msgstr ""
|
||||
msgid "System Folders"
|
||||
msgstr "Järjestelmäkansio"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hidden Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Administrative Folder"
|
||||
msgstr "Hallinnollinen kansio"
|
||||
|
||||
@@ -451,7 +451,6 @@ msgstr ""
|
||||
"Vous devez définir une bande passante maximale avant de pouvoir définir une "
|
||||
"limite de bande passante"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Cannot connect to server %s [%s]"
|
||||
msgstr "Impossible de se connecter au serveur %s [%s]"
|
||||
@@ -475,20 +474,21 @@ msgstr "Il n'y a aucun serveur actif !"
|
||||
msgid "Failed to initialize %s@%s with reason: %s"
|
||||
msgstr "Échec d'initialisation de %s@%s pour la raison suivante : %s"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s"
|
||||
msgstr "Trop de connexions au serveur %s"
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "Trop de connexions au serveur %s [%s]"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Probable account sharing"
|
||||
msgstr "Partage de compte probable"
|
||||
msgid ""
|
||||
"Login from too many different IP addresses to server %s [%s] - "
|
||||
"https://sabnzbd.org/multiple-adresses"
|
||||
msgstr ""
|
||||
"Connexion au serveur %s [%s] à partir de trop d'adresses IP différentes - "
|
||||
"https://sabnzbd.org/multiple-adresses"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Failed login for server %s"
|
||||
msgstr "Échec de la connexion au serveur %s"
|
||||
msgid "Failed login for server %s [%s]"
|
||||
msgstr "Échec de la connexion au serveur %s [%s]"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
@@ -3120,6 +3120,10 @@ msgstr ""
|
||||
msgid "System Folders"
|
||||
msgstr "Dossiers système"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hidden Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Administrative Folder"
|
||||
msgstr "Dossier administrateur"
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
# team@sabnzbd.org
|
||||
#
|
||||
# Translators:
|
||||
# Safihre <safihre@sabnzbd.org>, 2022
|
||||
# ION, 2022
|
||||
# Safihre <safihre@sabnzbd.org>, 2022
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-3.8.0-develop\n"
|
||||
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
|
||||
"Last-Translator: ION, 2022\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2022\n"
|
||||
"Language-Team: Hebrew (https://www.transifex.com/sabnzbd/teams/111101/he/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -422,7 +422,6 @@ msgstr "מושהה"
|
||||
msgid "You must set a maximum bandwidth before you can set a bandwidth limit"
|
||||
msgstr "אתה חייב לקבוע רוחב פס מרבי לפני שאתה קובע מגבלת רוחב פס"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Cannot connect to server %s [%s]"
|
||||
msgstr "לא ניתן להתחבר אל השרת %s [%s]"
|
||||
@@ -446,20 +445,19 @@ msgstr "אין שרתים פעילים!"
|
||||
msgid "Failed to initialize %s@%s with reason: %s"
|
||||
msgstr "נכשל באתחול %s@%s עם סיבה: %s"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s"
|
||||
msgstr "יותר מדי חיבורים לשרת %s"
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "יותר מדי חיבורים לשרת %s [%s]"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Probable account sharing"
|
||||
msgstr "שיתוף סביר של חשבון"
|
||||
msgid ""
|
||||
"Login from too many different IP addresses to server %s [%s] - "
|
||||
"https://sabnzbd.org/multiple-adresses"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Failed login for server %s"
|
||||
msgstr "נכשל בכניסה אל השרת %s"
|
||||
msgid "Failed login for server %s [%s]"
|
||||
msgstr "נכשל בכניסה אל השרת %s [%s]"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
@@ -3028,6 +3026,10 @@ msgstr "קובץ שמכיל את כל הסיסמאות שינוסו על קבצ
|
||||
msgid "System Folders"
|
||||
msgstr "תיקיות מערכת"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hidden Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Administrative Folder"
|
||||
msgstr "תיקייה מינהלית"
|
||||
|
||||
@@ -418,7 +418,6 @@ msgstr "Pauset"
|
||||
msgid "You must set a maximum bandwidth before you can set a bandwidth limit"
|
||||
msgstr "Du må sette maks båndbredde før du kan sette en båndbreddebegrensning"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Cannot connect to server %s [%s]"
|
||||
msgstr "Kan ikke koble til server %s [%s]"
|
||||
@@ -442,20 +441,19 @@ msgstr ""
|
||||
msgid "Failed to initialize %s@%s with reason: %s"
|
||||
msgstr "Feilet å starte %s@%s grunnet: %s"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s"
|
||||
msgstr "For mange tilkoblinger til server %s"
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "For mange tilkoblinger til server %s [%s]"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Probable account sharing"
|
||||
msgstr "Mistenkt kontodeling"
|
||||
msgid ""
|
||||
"Login from too many different IP addresses to server %s [%s] - "
|
||||
"https://sabnzbd.org/multiple-adresses"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Failed login for server %s"
|
||||
msgstr "Kunne ikke logge inn på server %s"
|
||||
msgid "Failed login for server %s [%s]"
|
||||
msgstr "Kunne ikke logge inn på server %s [%s]"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
@@ -3007,6 +3005,10 @@ msgstr ""
|
||||
msgid "System Folders"
|
||||
msgstr "Systemmapper"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hidden Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Administrative Folder"
|
||||
msgstr "Administrativ Mappe"
|
||||
|
||||
@@ -445,7 +445,6 @@ msgstr ""
|
||||
"Je moet eerst een maximumbandbreedte instellen voordat je een limiet kunt "
|
||||
"instellen"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Cannot connect to server %s [%s]"
|
||||
msgstr "Verbinding maken met server %s [%s] niet mogelijk"
|
||||
@@ -469,20 +468,21 @@ msgstr "Er zijn geen actieve servers!"
|
||||
msgid "Failed to initialize %s@%s with reason: %s"
|
||||
msgstr "Initialisatie van %s@%s mislukt, vanwege: %s"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s"
|
||||
msgstr "Te veel verbindingen met server %s"
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "Te veel verbindingen met server %s [%s]"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Probable account sharing"
|
||||
msgstr "Mogelijk delen van account"
|
||||
msgid ""
|
||||
"Login from too many different IP addresses to server %s [%s] - "
|
||||
"https://sabnzbd.org/multiple-adresses"
|
||||
msgstr ""
|
||||
"Teveel verschillende IP-adressen probeerde in te loggen op server %s [%s] - "
|
||||
"https://sabnzbd.org/multiple-adresses"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Failed login for server %s"
|
||||
msgstr "Aanmelden bij server %s mislukt"
|
||||
msgid "Failed login for server %s [%s]"
|
||||
msgstr "Aanmelden bij server %s mislukt [%s]"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
@@ -3083,6 +3083,10 @@ msgstr ""
|
||||
msgid "System Folders"
|
||||
msgstr "Systeemmappen"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hidden Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Administrative Folder"
|
||||
msgstr "Administratieve map"
|
||||
|
||||
@@ -415,7 +415,6 @@ msgstr ""
|
||||
"Przed ustawieniem limitu przepustowości należy ustawić maksymalną "
|
||||
"przepustowość"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Cannot connect to server %s [%s]"
|
||||
msgstr "Nie można połączyć się z serwerem %s [%s]"
|
||||
@@ -439,20 +438,19 @@ msgstr ""
|
||||
msgid "Failed to initialize %s@%s with reason: %s"
|
||||
msgstr "Błąd podczas inicjalizacji %s@%s: %s"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s"
|
||||
msgstr "Zbyt wiele połączeń do serwera %s"
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "Zbyt wiele połączeń do serwera %s [%s]"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Probable account sharing"
|
||||
msgstr "Prawdopodobne współdzielenie konta"
|
||||
msgid ""
|
||||
"Login from too many different IP addresses to server %s [%s] - "
|
||||
"https://sabnzbd.org/multiple-adresses"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Failed login for server %s"
|
||||
msgstr "Błąd logowania do serwera %s"
|
||||
msgid "Failed login for server %s [%s]"
|
||||
msgstr "Błąd logowania do serwera %s [%s]"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
@@ -3016,6 +3014,10 @@ msgstr ""
|
||||
msgid "System Folders"
|
||||
msgstr "Katalogi systemowe"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hidden Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Administrative Folder"
|
||||
msgstr "Katalog administracyjny"
|
||||
|
||||
@@ -421,7 +421,6 @@ msgstr ""
|
||||
"Você deve definir a largura de banda máxima antes de definir um limite de "
|
||||
"banda"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Cannot connect to server %s [%s]"
|
||||
msgstr "Não é possível conectar ao servidor %s [%s]"
|
||||
@@ -445,20 +444,19 @@ msgstr ""
|
||||
msgid "Failed to initialize %s@%s with reason: %s"
|
||||
msgstr "Falha ao iniciar %s@%s devido as seguintes razões: %s"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s"
|
||||
msgstr "Excesso de conexões ao servidor %s"
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "Excesso de conexões ao servidor %s [%s]"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Probable account sharing"
|
||||
msgstr "Provável compartilhamento de conta"
|
||||
msgid ""
|
||||
"Login from too many different IP addresses to server %s [%s] - "
|
||||
"https://sabnzbd.org/multiple-adresses"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Failed login for server %s"
|
||||
msgstr "Falha de logon ao servidor %s"
|
||||
msgid "Failed login for server %s [%s]"
|
||||
msgstr "Falha de logon ao servidor %s [%s]"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
@@ -3016,6 +3014,10 @@ msgstr ""
|
||||
msgid "System Folders"
|
||||
msgstr "Pastas de Sistema"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hidden Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Administrative Folder"
|
||||
msgstr "Pasta Administrativa"
|
||||
|
||||
@@ -435,7 +435,6 @@ msgstr ""
|
||||
"Trebuie să seta-ţi lățimea de bandă maximă înainte de a seta o limită de "
|
||||
"viteză."
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Cannot connect to server %s [%s]"
|
||||
msgstr "Nu mă pot conecta la serverul %s [%s]"
|
||||
@@ -459,20 +458,19 @@ msgstr ""
|
||||
msgid "Failed to initialize %s@%s with reason: %s"
|
||||
msgstr "Nu am putu inițializa %s@%s din cauza următorului motiv: %s"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s"
|
||||
msgstr "Prea multe conexiuni la serverul %s"
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "Prea multe conexiuni la serverul %s [%s]"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Probable account sharing"
|
||||
msgstr "Partajare cont probabilă"
|
||||
msgid ""
|
||||
"Login from too many different IP addresses to server %s [%s] - "
|
||||
"https://sabnzbd.org/multiple-adresses"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Failed login for server %s"
|
||||
msgstr "Autentificare nereuşită la serverul %s"
|
||||
msgid "Failed login for server %s [%s]"
|
||||
msgstr "Autentificare nereuşită la serverul %s [%s]"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
@@ -3042,6 +3040,10 @@ msgstr "Fişier ce conţine parole pentru fişiere RAR encriptate."
|
||||
msgid "System Folders"
|
||||
msgstr "Dosare Sistem"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hidden Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Administrative Folder"
|
||||
msgstr "Dosar Administrativ"
|
||||
|
||||
@@ -417,7 +417,6 @@ msgstr "Приостановлено"
|
||||
msgid "You must set a maximum bandwidth before you can set a bandwidth limit"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Cannot connect to server %s [%s]"
|
||||
msgstr "Не удаётся подключиться к серверу %s [%s]"
|
||||
@@ -441,20 +440,19 @@ msgstr ""
|
||||
msgid "Failed to initialize %s@%s with reason: %s"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s"
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr ""
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Probable account sharing"
|
||||
msgstr "Возможно, учётная запись используется где-то ещё"
|
||||
msgid ""
|
||||
"Login from too many different IP addresses to server %s [%s] - "
|
||||
"https://sabnzbd.org/multiple-adresses"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Failed login for server %s"
|
||||
msgstr "Ошибка входа на сервер %s"
|
||||
msgid "Failed login for server %s [%s]"
|
||||
msgstr "Ошибка входа на сервер %s [%s]"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
@@ -3012,6 +3010,10 @@ msgstr ""
|
||||
msgid "System Folders"
|
||||
msgstr "Системные папки"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hidden Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Administrative Folder"
|
||||
msgstr "Административная папка"
|
||||
|
||||
@@ -416,7 +416,6 @@ msgid "You must set a maximum bandwidth before you can set a bandwidth limit"
|
||||
msgstr ""
|
||||
"Требате да поставите максимални проток пре него што поставите ограничење"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Cannot connect to server %s [%s]"
|
||||
msgstr "Neuspešno povezivanje na server %s[%s]"
|
||||
@@ -440,20 +439,19 @@ msgstr ""
|
||||
msgid "Failed to initialize %s@%s with reason: %s"
|
||||
msgstr "Neuspešna inicijalizacija %s@%s iz razloga: %s"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s"
|
||||
msgstr "Previše konekcija ka serveru %s"
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "Previše konekcija ka serveru %s [%s]"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Probable account sharing"
|
||||
msgstr "Moguće deljenje naloga"
|
||||
msgid ""
|
||||
"Login from too many different IP addresses to server %s [%s] - "
|
||||
"https://sabnzbd.org/multiple-adresses"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Failed login for server %s"
|
||||
msgstr "Неуспешно пријављивање на сервер %s"
|
||||
msgid "Failed login for server %s [%s]"
|
||||
msgstr "Неуспешно пријављивање на сервер %s [%s]"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
@@ -2997,6 +2995,10 @@ msgstr "Датотека са свим лозинкама за шифрован
|
||||
msgid "System Folders"
|
||||
msgstr "Системске фасцикле"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hidden Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Administrative Folder"
|
||||
msgstr "Фасцикла Администратора"
|
||||
|
||||
@@ -416,7 +416,6 @@ msgstr "Pausad"
|
||||
msgid "You must set a maximum bandwidth before you can set a bandwidth limit"
|
||||
msgstr "Du måste ange maximal bandbredd innan du kan ange bandbreddsgräns"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Cannot connect to server %s [%s]"
|
||||
msgstr "Kan ej ansluta till server %s [%s]"
|
||||
@@ -440,20 +439,19 @@ msgstr ""
|
||||
msgid "Failed to initialize %s@%s with reason: %s"
|
||||
msgstr "Misslyckades att initiera %s@%s med orsak %s"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s"
|
||||
msgstr "För många anslutningar till servern %s"
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "För många anslutningar till servern %s [%s]"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Probable account sharing"
|
||||
msgstr "Misstänkt kontodelning"
|
||||
msgid ""
|
||||
"Login from too many different IP addresses to server %s [%s] - "
|
||||
"https://sabnzbd.org/multiple-adresses"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Failed login for server %s"
|
||||
msgstr "Det gick inte att logga in på server %s"
|
||||
msgid "Failed login for server %s [%s]"
|
||||
msgstr "Det gick inte att logga in på server %s [%s]"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
@@ -3008,6 +3006,10 @@ msgstr ""
|
||||
msgid "System Folders"
|
||||
msgstr "Systemmappar"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hidden Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Administrative Folder"
|
||||
msgstr "Administrativ mapp"
|
||||
|
||||
@@ -413,7 +413,6 @@ msgstr "已暂停"
|
||||
msgid "You must set a maximum bandwidth before you can set a bandwidth limit"
|
||||
msgstr "设置带宽限制前,您必须设置最大带宽值"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Cannot connect to server %s [%s]"
|
||||
msgstr "无法连接到服务器 %s [%s]"
|
||||
@@ -437,20 +436,19 @@ msgstr ""
|
||||
msgid "Failed to initialize %s@%s with reason: %s"
|
||||
msgstr "无法初始化 %s@%s,原因为: %s"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Too many connections to server %s"
|
||||
msgstr "服务器 %s 连接数过多"
|
||||
msgid "Too many connections to server %s [%s]"
|
||||
msgstr "服务器 %s 连接数过多 [%s]"
|
||||
|
||||
#. Warning message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Probable account sharing"
|
||||
msgstr "可能存在账号共享"
|
||||
msgid ""
|
||||
"Login from too many different IP addresses to server %s [%s] - "
|
||||
"https://sabnzbd.org/multiple-adresses"
|
||||
msgstr ""
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
msgid "Failed login for server %s"
|
||||
msgstr "无法登录服务器 %s"
|
||||
msgid "Failed login for server %s [%s]"
|
||||
msgstr "无法登录服务器 %s [%s]"
|
||||
|
||||
#. Error message
|
||||
#: sabnzbd/downloader.py
|
||||
@@ -2966,6 +2964,10 @@ msgstr "包含要对加密 RAR 文件进行尝试的所有密码的文件。"
|
||||
msgid "System Folders"
|
||||
msgstr "系统文件夹"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Hidden Folders"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Administrative Folder"
|
||||
msgstr "管理文件夹"
|
||||
|
||||
@@ -17,8 +17,8 @@ jaraco.context==4.2.0
|
||||
more-itertools==9.0.0
|
||||
zc.lockfile==2.0
|
||||
python-dateutil==2.8.2
|
||||
tempora==5.1.0
|
||||
pytz==2022.6
|
||||
tempora==5.2.0
|
||||
pytz==2022.7
|
||||
sgmllib3k==1.0.0
|
||||
portend==3.1.0
|
||||
chardet==5.1.0
|
||||
@@ -30,17 +30,17 @@ rebulk==3.1.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==38.0.4
|
||||
cryptography==39.0.0
|
||||
|
||||
# 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
|
||||
ujson==5.6.0
|
||||
ujson==5.7.0
|
||||
|
||||
# Windows system integration
|
||||
pywin32==305; sys_platform == 'win32'
|
||||
|
||||
# macOS system calls
|
||||
pyobjc==9.0; sys_platform == 'darwin'
|
||||
pyobjc==9.0.1; sys_platform == 'darwin'
|
||||
|
||||
# Linux notifications
|
||||
notify2==0.3.1; sys_platform != 'win32' and sys_platform != 'darwin'
|
||||
|
||||
@@ -713,7 +713,9 @@ def get_dconfig(section, keyword, nested=False):
|
||||
sect = CFG_DATABASE[section]
|
||||
except KeyError:
|
||||
return False, {}
|
||||
if section in ("servers", "categories", "rss"):
|
||||
if section == "categories":
|
||||
data[section] = get_ordered_categories()
|
||||
elif section in ("servers", "rss"):
|
||||
data[section] = []
|
||||
for keyword in sect.keys():
|
||||
res, conf = get_dconfig(section, keyword, True)
|
||||
|
||||
@@ -233,6 +233,10 @@ class DecoderWorker(Thread):
|
||||
# If the data needs to be written to disk due to full cache, this will be slow
|
||||
# Causing the decoder-queue to fill up and delay the downloader
|
||||
sabnzbd.ArticleCache.save_article(article, decoded_data)
|
||||
article.decoded = True
|
||||
elif not nzo.precheck:
|
||||
# Nothing to save
|
||||
article.on_disk = True
|
||||
|
||||
sabnzbd.NzbQueue.register_article(article, article_success)
|
||||
|
||||
@@ -241,9 +245,6 @@ def decode_yenc(article: Article, raw_data: List[bytes]) -> bytes:
|
||||
# Let SABYenc do all the heavy lifting
|
||||
decoded_data, yenc_filename, crc_correct = sabyenc3.decode_usenet_chunks(raw_data)
|
||||
|
||||
# Mark as decoded
|
||||
article.decoded = True
|
||||
|
||||
# Assume it is yenc
|
||||
article.nzf.type = "yenc"
|
||||
|
||||
@@ -373,9 +374,8 @@ def decode_uu(article: Article, raw_data: List[bytes]) -> bytes:
|
||||
# Store the decoded data
|
||||
decoded_data.write(decoded_line)
|
||||
|
||||
# Mark as decoded and set the type to uu; the latter is still needed in
|
||||
# Set the type to uu; the latter is still needed in
|
||||
# case the lowest_partnum article was damaged or slow to download.
|
||||
article.decoded = True
|
||||
article.nzf.type = "uu"
|
||||
|
||||
if article.lowest_partnum:
|
||||
|
||||
@@ -414,7 +414,6 @@ class DirectUnpacker(threading.Thread):
|
||||
"%s\\" % long_path(extraction_path),
|
||||
]
|
||||
else:
|
||||
# Don't use "-ai" (not needed for non-Windows)
|
||||
# The -scf forces the output to be UTF8
|
||||
command = [
|
||||
sabnzbd.newsunpack.RAR_COMMAND,
|
||||
@@ -423,6 +422,7 @@ class DirectUnpacker(threading.Thread):
|
||||
"-idp",
|
||||
"-scf",
|
||||
"-o+",
|
||||
"-ai",
|
||||
password_command,
|
||||
rarfile_path,
|
||||
"%s/" % extraction_path,
|
||||
|
||||
@@ -754,124 +754,24 @@ class Downloader(Thread):
|
||||
server = nw.server
|
||||
|
||||
try:
|
||||
bytes_received, done, skip = nw.recv_chunk()
|
||||
except:
|
||||
bytes_received, done, skip = (0, False, False)
|
||||
|
||||
if skip:
|
||||
bytes_received, done = nw.recv_chunk()
|
||||
except ssl.SSLWantReadError:
|
||||
continue
|
||||
|
||||
if bytes_received < 1:
|
||||
except:
|
||||
self.__reset_nw(nw, "server closed connection", wait=False)
|
||||
continue
|
||||
else:
|
||||
BPSMeter.update(server.id, bytes_received)
|
||||
|
||||
if self.bandwidth_limit:
|
||||
if BPSMeter.bps + BPSMeter.sum_cached_amount > self.bandwidth_limit:
|
||||
BPSMeter.update()
|
||||
while BPSMeter.bps > self.bandwidth_limit:
|
||||
time.sleep(0.01)
|
||||
BPSMeter.update()
|
||||
BPSMeter.update(server.id, bytes_received)
|
||||
if self.bandwidth_limit and BPSMeter.bps + BPSMeter.sum_cached_amount > self.bandwidth_limit:
|
||||
BPSMeter.update()
|
||||
while BPSMeter.bps > self.bandwidth_limit:
|
||||
time.sleep(0.01)
|
||||
BPSMeter.update()
|
||||
|
||||
if nw.status_code != 222 and not done:
|
||||
if not nw.connected or nw.status_code == 480:
|
||||
try:
|
||||
nw.finish_connect(nw.status_code)
|
||||
if sabnzbd.LOG_ALL:
|
||||
logging.debug(
|
||||
"%s@%s last message -> %s", nw.thrdnum, nw.server.host, nntp_to_msg(nw.data)
|
||||
)
|
||||
nw.clear_data()
|
||||
except NNTPPermanentError as error:
|
||||
# Handle login problems
|
||||
block = False
|
||||
penalty = 0
|
||||
display_msg = " [%s]" % error.msg
|
||||
logging.debug("Server login problem: %s", error.msg)
|
||||
if error.code in (502, 400, 481, 482) and clues_too_many(error.msg):
|
||||
# Too many connections: remove this thread and reduce thread-setting for server
|
||||
# Plan to go back to the full number after a penalty timeout
|
||||
if server.active:
|
||||
errormsg = T("Too many connections to server %s") % display_msg
|
||||
if server.errormsg != errormsg:
|
||||
server.errormsg = errormsg
|
||||
logging.warning(T("Too many connections to server %s"), server.host)
|
||||
# Don't count this for the tries (max_art_tries) on this server
|
||||
self.__reset_nw(nw, send_quit=True)
|
||||
self.plan_server(server, _PENALTY_TOOMANY)
|
||||
server.threads -= 1
|
||||
elif error.code in (502, 481, 482) and clues_too_many_ip(error.msg):
|
||||
# Account sharing?
|
||||
if server.active:
|
||||
errormsg = T("Probable account sharing") + display_msg
|
||||
if server.errormsg != errormsg:
|
||||
server.errormsg = errormsg
|
||||
name = " (%s)" % server.host
|
||||
logging.warning(T("Probable account sharing") + name)
|
||||
penalty = _PENALTY_SHARE
|
||||
block = True
|
||||
elif error.code in (452, 481, 482, 381) or (
|
||||
error.code in (500, 502) and clues_login(error.msg)
|
||||
):
|
||||
# Cannot login, block this server
|
||||
if server.active:
|
||||
errormsg = T("Failed login for server %s") % display_msg
|
||||
if server.errormsg != errormsg:
|
||||
server.errormsg = errormsg
|
||||
logging.error(T("Failed login for server %s"), server.host)
|
||||
penalty = _PENALTY_PERM
|
||||
block = True
|
||||
elif error.code in (502, 482):
|
||||
# Cannot connect (other reasons), block this server
|
||||
if server.active:
|
||||
errormsg = T("Cannot connect to server %s [%s]") % ("", error.msg)
|
||||
if server.errormsg != errormsg:
|
||||
server.errormsg = errormsg
|
||||
logging.warning(T("Cannot connect to server %s [%s]"), server.host, error.msg)
|
||||
if clues_pay(error.msg):
|
||||
penalty = _PENALTY_PERM
|
||||
else:
|
||||
penalty = _PENALTY_502
|
||||
block = True
|
||||
elif error.code == 400:
|
||||
# Temp connection problem?
|
||||
if server.active:
|
||||
logging.debug("Unspecified error 400 from server %s", server.host)
|
||||
penalty = _PENALTY_VERYSHORT
|
||||
block = True
|
||||
else:
|
||||
# Unknown error, just keep trying
|
||||
if server.active:
|
||||
errormsg = T("Cannot connect to server %s [%s]") % ("", display_msg)
|
||||
if server.errormsg != errormsg:
|
||||
server.errormsg = errormsg
|
||||
logging.warning(T("Cannot connect to server %s [%s]"), server.host, error.msg)
|
||||
penalty = _PENALTY_UNKNOWN
|
||||
block = True
|
||||
if block or (penalty and server.optional):
|
||||
retry_article = False
|
||||
if server.active:
|
||||
if server.required:
|
||||
sabnzbd.Scheduler.plan_required_server_resume()
|
||||
retry_article = True
|
||||
else:
|
||||
server.deactivate()
|
||||
if penalty and (block or server.optional):
|
||||
self.plan_server(server, penalty)
|
||||
# Note that the article is discard for this server if the server is not required
|
||||
self.__reset_nw(nw, retry_article=retry_article, send_quit=True)
|
||||
if not self.__finish_connect_nw(nw):
|
||||
continue
|
||||
except:
|
||||
logging.error(
|
||||
T("Connecting %s@%s failed, message=%s"),
|
||||
nw.thrdnum,
|
||||
nw.server.host,
|
||||
nntp_to_msg(nw.data),
|
||||
)
|
||||
# No reset-warning needed, above logging is sufficient
|
||||
self.__reset_nw(nw, retry_article=False)
|
||||
|
||||
if nw.connected:
|
||||
logging.info("Connecting %s@%s finished", nw.thrdnum, nw.server.host)
|
||||
self.__request_article(nw)
|
||||
@@ -927,6 +827,87 @@ class Downloader(Thread):
|
||||
server.idle_threads.append(nw)
|
||||
self.remove_socket(nw)
|
||||
|
||||
def __finish_connect_nw(self, nw: NewsWrapper) -> bool:
|
||||
server = nw.server
|
||||
try:
|
||||
nw.finish_connect(nw.status_code)
|
||||
if sabnzbd.LOG_ALL:
|
||||
logging.debug("%s@%s last message -> %s", nw.thrdnum, server.host, nntp_to_msg(nw.data))
|
||||
nw.clear_data()
|
||||
except NNTPPermanentError as error:
|
||||
# Handle login problems
|
||||
block = False
|
||||
penalty = 0
|
||||
errormsg = None
|
||||
logging.debug("Server login problem: %s", error.msg)
|
||||
if error.code in (502, 400, 481, 482) and clues_too_many(error.msg):
|
||||
# Too many connections: remove this thread and reduce thread-setting for server
|
||||
# Plan to go back to the full number after a penalty timeout
|
||||
errormsg = T("Too many connections to server %s [%s]") % (server.host, error.msg)
|
||||
if server.active:
|
||||
# Don't count this for the tries (max_art_tries) on this server
|
||||
self.__reset_nw(nw, send_quit=True)
|
||||
self.plan_server(server, _PENALTY_TOOMANY)
|
||||
server.threads -= 1
|
||||
elif error.code in (502, 481, 482) and clues_too_many_ip(error.msg):
|
||||
# Login from (too many) different IP addresses
|
||||
errormsg = T(
|
||||
"Login from too many different IP addresses to server %s [%s] - https://sabnzbd.org/multiple-adresses"
|
||||
) % (server.host, error.msg)
|
||||
penalty = _PENALTY_SHARE
|
||||
block = True
|
||||
elif error.code in (452, 481, 482, 381) or (error.code in (500, 502) and clues_login(error.msg)):
|
||||
# Cannot login, block this server
|
||||
errormsg = T("Failed login for server %s [%s]") % (server.host, error.msg)
|
||||
penalty = _PENALTY_PERM
|
||||
block = True
|
||||
elif error.code in (502, 482):
|
||||
# Cannot connect (other reasons), block this server
|
||||
errormsg = T("Cannot connect to server %s [%s]") % (server.host, error.msg)
|
||||
if clues_pay(error.msg):
|
||||
penalty = _PENALTY_PERM
|
||||
else:
|
||||
penalty = _PENALTY_502
|
||||
block = True
|
||||
elif error.code == 400:
|
||||
# Temp connection problem?
|
||||
logging.debug("Unspecified error 400 from server %s", server.host)
|
||||
penalty = _PENALTY_VERYSHORT
|
||||
block = True
|
||||
else:
|
||||
# Unknown error, just keep trying
|
||||
errormsg = T("Cannot connect to server %s [%s]") % (server.host, error.msg)
|
||||
penalty = _PENALTY_UNKNOWN
|
||||
block = True
|
||||
if block or (penalty and server.optional):
|
||||
retry_article = False
|
||||
if server.active:
|
||||
if server.required:
|
||||
sabnzbd.Scheduler.plan_required_server_resume()
|
||||
retry_article = True
|
||||
else:
|
||||
server.deactivate()
|
||||
if penalty and (block or server.optional):
|
||||
self.plan_server(server, penalty)
|
||||
# Note that the article is discard for this server if the server is not required
|
||||
self.__reset_nw(nw, retry_article=retry_article, send_quit=True)
|
||||
|
||||
# Set error for server and warn user if it was first time thrown
|
||||
if errormsg and server.active and server.errormsg != errormsg:
|
||||
server.errormsg = errormsg
|
||||
logging.warning(errormsg)
|
||||
return False
|
||||
except:
|
||||
logging.error(
|
||||
T("Connecting %s@%s failed, message=%s"),
|
||||
nw.thrdnum,
|
||||
nw.server.host,
|
||||
nntp_to_msg(nw.data),
|
||||
)
|
||||
# No reset-warning needed, above logging is sufficient
|
||||
self.__reset_nw(nw, retry_article=False)
|
||||
return True
|
||||
|
||||
def __reset_nw(
|
||||
self,
|
||||
nw: NewsWrapper,
|
||||
|
||||
@@ -701,7 +701,6 @@ def rar_extract_core(
|
||||
"%s/" % extraction_path,
|
||||
]
|
||||
else:
|
||||
# Don't use "-ai" (not needed for non-Windows)
|
||||
# The -scf forces the output to be UTF8
|
||||
command = [
|
||||
RAR_COMMAND,
|
||||
@@ -710,6 +709,7 @@ def rar_extract_core(
|
||||
"-scf",
|
||||
overwrite,
|
||||
rename,
|
||||
"-ai",
|
||||
password_command,
|
||||
rarfile_path,
|
||||
"%s/" % extraction_path,
|
||||
|
||||
@@ -178,28 +178,18 @@ class NewsWrapper:
|
||||
self.nntp.sock.sendall(command)
|
||||
self.clear_data()
|
||||
|
||||
def recv_chunk(self, block: bool = False) -> Tuple[int, bool, bool]:
|
||||
"""Receive data, return #bytes, done, skip"""
|
||||
self.timeout = time.time() + self.server.timeout
|
||||
while 1:
|
||||
try:
|
||||
if self.nntp.nw.server.ssl:
|
||||
# SSL chunks come in 16K frames
|
||||
# Setting higher limits results in slowdown
|
||||
chunk = self.nntp.sock.recv(16384)
|
||||
else:
|
||||
# Get as many bytes as possible
|
||||
chunk = self.nntp.sock.recv(262144)
|
||||
break
|
||||
except ssl.SSLWantReadError:
|
||||
# SSL connections will block until they are ready.
|
||||
# Either ignore the connection until it responds
|
||||
# Or wait in a loop until it responds
|
||||
if block:
|
||||
# time.sleep(0.0001)
|
||||
continue
|
||||
else:
|
||||
return 0, False, True
|
||||
def recv_chunk(self) -> Tuple[int, bool]:
|
||||
"""Receive data, return #bytes, done"""
|
||||
if self.nntp.nw.server.ssl:
|
||||
# SSL chunks come in 16K frames
|
||||
# Setting higher limits results in slowdown
|
||||
chunk = self.nntp.sock.recv(16384)
|
||||
else:
|
||||
chunk = self.nntp.sock.recv(262144)
|
||||
|
||||
chunk_len = len(chunk)
|
||||
if chunk_len == 0:
|
||||
raise ConnectionError("server closed connection")
|
||||
|
||||
if not self.data:
|
||||
try:
|
||||
@@ -209,21 +199,20 @@ class NewsWrapper:
|
||||
|
||||
# Append so we can do 1 join(), much faster than multiple!
|
||||
self.data.append(chunk)
|
||||
chunk_len = len(chunk)
|
||||
self.data_size += chunk_len
|
||||
self.timeout = time.time() + self.server.timeout
|
||||
|
||||
# Official end-of-article is ".\r\n" but sometimes it can get lost between 2 chunks
|
||||
if chunk[-5:] == b"\r\n.\r\n":
|
||||
return chunk_len, True, False
|
||||
return chunk_len, True
|
||||
elif chunk_len < 5 and len(self.data) > 1:
|
||||
# We need to make sure the end is not split over 2 chunks
|
||||
# This is faster than join()
|
||||
combine_chunk = self.data[-2][-5:] + chunk
|
||||
if combine_chunk[-5:] == b"\r\n.\r\n":
|
||||
return chunk_len, True, False
|
||||
if self.data[-2][-5 + chunk_len :] + chunk == b"\r\n.\r\n":
|
||||
return chunk_len, True
|
||||
|
||||
# Still in middle of data, so continue!
|
||||
return chunk_len, False, False
|
||||
return chunk_len, False
|
||||
|
||||
def soft_reset(self):
|
||||
"""Reset for the next article"""
|
||||
|
||||
@@ -585,7 +585,7 @@ class NzbQueue:
|
||||
sort_function = lambda nzo: nzo.avg_date
|
||||
elif field == "remaining":
|
||||
logging.debug("Sorting by percentage downloaded...")
|
||||
sort_function = lambda nzo: nzo.remaining / nzo.bytes
|
||||
sort_function = lambda nzo: nzo.remaining / nzo.bytes if nzo.bytes else 1
|
||||
else:
|
||||
logging.debug("Sort: %s not recognized", field)
|
||||
return
|
||||
|
||||
@@ -389,6 +389,7 @@ SKIN_TEXT = {
|
||||
"opt-password_file": TT("Password file"),
|
||||
"explain-password_file": TT("File containing all passwords to be tried on encrypted RAR files."),
|
||||
"systemFolders": TT("System Folders"),
|
||||
"hiddenFolders": TT("Hidden Folders"),
|
||||
"opt-admin_dir": TT("Administrative Folder"),
|
||||
"explain-admin_dir1": TT(
|
||||
"Location for queue admin and history database.<br /><i>Can only be changed when queue is empty.</i>"
|
||||
|
||||
@@ -90,7 +90,7 @@ def test_nntp_server_dict(kwargs):
|
||||
nw.init_connect()
|
||||
while not nw.connected:
|
||||
nw.clear_data()
|
||||
nw.recv_chunk(block=True)
|
||||
nw.recv_chunk()
|
||||
nw.finish_connect(nw.status_code)
|
||||
|
||||
except socket.timeout:
|
||||
@@ -124,7 +124,7 @@ def test_nntp_server_dict(kwargs):
|
||||
nw.nntp.sock.sendall(b"ARTICLE <test@home>\r\n")
|
||||
try:
|
||||
nw.clear_data()
|
||||
nw.recv_chunk(block=True)
|
||||
nw.recv_chunk()
|
||||
except:
|
||||
# Some internal error, not always safe to close connection
|
||||
return False, str(sys.exc_info()[1])
|
||||
|
||||
@@ -5,5 +5,5 @@
|
||||
|
||||
# You MUST use double quotes (so " and not ')
|
||||
|
||||
__version__ = "3.7.1"
|
||||
__version__ = "3.7.2RC1"
|
||||
__baseline__ = "unknown"
|
||||
|
||||
@@ -9,7 +9,7 @@ pytest-httpbin
|
||||
pytest-httpserver
|
||||
flaky
|
||||
xmltodict
|
||||
tavern
|
||||
tavern<2.0.0 # tavalidate does not support tavern 2.0.0+
|
||||
tavalidate
|
||||
importlib_metadata<5.0.0 # Required by tavern but 5.0.0 is not compatible with Python 3.7
|
||||
lxml
|
||||
|
||||
Reference in New Issue
Block a user