mirror of
https://github.com/sabnzbd/sabnzbd.git
synced 2026-01-06 22:51:02 -05:00
Compare commits
35 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8f21533e76 | ||
|
|
89996482a1 | ||
|
|
03c10dce91 | ||
|
|
bd5331be05 | ||
|
|
a50a65ee7c | ||
|
|
8665af91f2 | ||
|
|
8641f86631 | ||
|
|
46e1645289 | ||
|
|
45de8c7206 | ||
|
|
4ce3965747 | ||
|
|
9d4af19db3 | ||
|
|
55f811289d | ||
|
|
fbb637e5e3 | ||
|
|
f628dda4e7 | ||
|
|
48e034f4be | ||
|
|
f8959baa2f | ||
|
|
8ed5997eae | ||
|
|
129d3eaf07 | ||
|
|
350db4afc0 | ||
|
|
0a8ffd233e | ||
|
|
a74b500e96 | ||
|
|
1298e7ccce | ||
|
|
e1c61c41ca | ||
|
|
3da76e15d2 | ||
|
|
b116c24b84 | ||
|
|
a43810ec46 | ||
|
|
d4954b52ec | ||
|
|
b0332e141c | ||
|
|
80a181816e | ||
|
|
0dec3b7ec3 | ||
|
|
2c92a7621c | ||
|
|
e05beb71e6 | ||
|
|
6d82c7e542 | ||
|
|
fb238af7de | ||
|
|
6b9e3cd9d8 |
@@ -3,6 +3,7 @@ matrix:
|
||||
include:
|
||||
- os: linux
|
||||
language: python
|
||||
python: 2.7
|
||||
env:
|
||||
- secure: iMXx74c2eUhDPJrukvAFxCFNWYDk8JB2alQ89Hc3T1ckXfDS37vgUplTze1aGo+AefUkDSFmTreFk9hVJvd4SQTHz4wS+qp7HQJFWECjR16jZwobIbukNPNU1JamozZoOa2igoVIJ8/tVIdIpfcsGfzj9WogwUlpChWHIiI8SM/Fc0WK+M9rDPKBpgjEN2yom73jbC2ETxuQ/HMdMNnNS9S1vS7MY+2W69+xi5Kl9hP0HUBIG/JtVXu1a4SO5NgqL5aW4cgKtgg0IjpedBRMcC0rpyEz+lDtl2jXYR+mXQEO8uNZOwzV7SLrq/ROGwW+DMtfiiySKxmuYoL/JOm4kcLyEup51dgnTQc1RdEcaYfk0twDry67prnQ/sXAQphzjl0StrTpLfzWUsCvgXRp7+XWhX9ElHN4KelOcAc7YeTSXoPY6bENk8LSy1woJ2HbH5TkSvtVJ6xrmssV3bEMp7aGx7qv1D/uvyAEMulB79WwdLyoDxmG9eIgXfp3nICko4p9kisrzK0hVCGDRCHSYgTnDBGTMJU/SlRRNUepmXHXQUrqWyTWvy2HTMUTjuYBaaNcUqZvyHyyaDq0MNBotwDCmes5o8fZu456lB/B26LwUu7cOSbCw19ePlGBNnbjA9NmNoQGOo66era3NEVJLYv+H91PAPQyWpzOt0X53Gk=
|
||||
- secure: Cryq31K8wxt+q212/q7IHlLf4flH4riaiHssxR0/VfGACtMp3jOAVZ5RAOvX03LPYp+BuX2KAHFXDHeGHGzYmESkpzPCToZ3GpaOwP3ymc3RNeU6bd98yEQyQtM/wtY4uxPUWdwz5Uw5kkeynxw3y/QFsYceipB3u3oCvfB9n8SqWShjWpBFyFhSKS/SJjUqgNcAaA0pTP8l/crquZNhkug/J8Nlc/nC0H6ZSJKGu8UhkhZ0VSEY8dofZZkGG6YCIIEAqGasQqkra6x/D0uECfQnnDrTqekvklUG31/zy+awQXl+0NjLTIKyl2rHp5AUpSTlbPO2mDYdbWEWcRYmNsEEiGfvy3R9kGGbNijB5b57jvgsJapH8DkGRWseISdCBWqLH7C/OafNuMGzQ4s3UCN1aazqqN/IAJplVjSWiKA76Nbh385x88E8RaH7Gnvx1ZK88Lgf7Bz8Ar/O1dMviyP8WbM/vQQkVMdOk89y5O6G8ZwHFoj/v8w383irWMN2iU0Mf7GKW91ughpKrrKbXCmkT1bR9+tNYpKWU1O+1jgnGk65149GNC0K+9exWt0TK3pNSUa7b2nVzxeAqdCJjCoKBi2pLiRxYVI50V80M2p5Xw+5iiSiOhTLzFLT3YRi2VBjjBFa8BHJHBS9Pua4DaFc1w06XNej6K8rRV5We0s=
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
*******************************************
|
||||
*** This is SABnzbd 2.3.8 ***
|
||||
*** This is SABnzbd 2.3.9 ***
|
||||
*******************************************
|
||||
SABnzbd is an open-source cross-platform binary newsreader.
|
||||
It simplifies the process of downloading from Usenet dramatically,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
SABnzbd 2.3.8
|
||||
SABnzbd 2.3.9
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
0) LICENSE
|
||||
|
||||
4
PKG-INFO
4
PKG-INFO
@@ -1,7 +1,7 @@
|
||||
Metadata-Version: 1.0
|
||||
Name: SABnzbd
|
||||
Version: 2.3.8
|
||||
Summary: SABnzbd-2.3.8
|
||||
Version: 2.3.9
|
||||
Summary: SABnzbd-2.3.9
|
||||
Home-page: https://sabnzbd.org
|
||||
Author: The SABnzbd Team
|
||||
Author-email: team@sabnzbd.org
|
||||
|
||||
29
README.mkd
29
README.mkd
@@ -1,16 +1,21 @@
|
||||
Release Notes - SABnzbd 2.3.8
|
||||
Release Notes - SABnzbd 2.3.9
|
||||
=========================================================
|
||||
|
||||
## Improvements and bug fixes since 2.3.7
|
||||
- Changes to newsserver configuration could be delayed
|
||||
- Filenames would not be sanitized when using "Make Windows compatible"
|
||||
- Sorting could fail on root-folders
|
||||
- 7z-files were not listed as supported NZB archives
|
||||
- SSL cipher settings were ignored during server test
|
||||
- Windows: update 7zip to 19.00
|
||||
- Windows: update MultiPar to v1.3.0.4
|
||||
- Windows and macOS: update Python to 2.7.16
|
||||
- Windows and macOS: update UnRar to 5.70
|
||||
## Improvements and bug fixes since 2.3.8
|
||||
- Duplicate job detection would not compare job names
|
||||
- Propagation delay could show even if it was not configured
|
||||
- Ignore Samples deleted all files of jobs containing the words Sample/Proof
|
||||
- Warning "Unable to stop the unrar process" was shown too often
|
||||
- Direct Unpack could hang forever on Unicode downloads
|
||||
- Test Download could fail if clicked on the icon instead of the button
|
||||
- Series Duplicate detection did not always work with Direct Unpack enabled
|
||||
- Adding a job with non-existing category was not set to Default (*) category
|
||||
- Only delete completed jobs from history when using History Retention option
|
||||
- Renamed Server Load-balancing to Server IP address selection
|
||||
- Linux: remove sabnzbd.error.log file at start-up if it grew too large
|
||||
- Windows: double-click delay increased to avoid accidental pausing
|
||||
- Windows: update MultiPar to v1.3.0.5
|
||||
- Windows and macOS: update UnRar to 5.71
|
||||
|
||||
## Upgrading from 2.2.x and older
|
||||
- Finish queue
|
||||
@@ -24,7 +29,7 @@ Release Notes - SABnzbd 2.3.8
|
||||
URL's that did not finish fetching before the upgrade will be lost.
|
||||
- The organization of the download queue is different from 0.7.x releases.
|
||||
This version will not see the 0.7.x queue, but you can restore the jobs
|
||||
by going to Status page and using Queue Repair.
|
||||
by going to the Status and Interface Settings window and using Queue Repair.
|
||||
|
||||
## Known problems and solutions
|
||||
- Read the file "ISSUES.txt"
|
||||
|
||||
12
SABnzbd.py
12
SABnzbd.py
@@ -89,7 +89,7 @@ import sabnzbd.newsunpack
|
||||
from sabnzbd.misc import real_path, \
|
||||
check_latest_version, exit_sab, get_from_url, \
|
||||
split_host, get_ext, create_https_certificates, \
|
||||
windows_variant, ip_extract, set_serv_parms, get_serv_parms, globber_full
|
||||
windows_variant, ip_extract, set_serv_parms, get_serv_parms, globber_full, remove_file
|
||||
from sabnzbd.panic import panic_tmpl, panic_port, panic_host, \
|
||||
panic_sqlite, panic, launch_a_browser
|
||||
import sabnzbd.scheduler as scheduler
|
||||
@@ -1126,8 +1126,14 @@ def main():
|
||||
try:
|
||||
x = sys.stderr.fileno
|
||||
x = sys.stdout.fileno
|
||||
ol_path = os.path.join(logdir, DEF_LOG_ERRFILE)
|
||||
out_log = file(ol_path, 'a+', 0)
|
||||
|
||||
# Get log file path and remove the log file if it got too large
|
||||
log_path = os.path.join(logdir, DEF_LOG_ERRFILE)
|
||||
if os.path.exists(log_path) and os.path.getsize(log_path) > sabnzbd.cfg.log_size.get_int():
|
||||
remove_file(log_path)
|
||||
|
||||
# Redirect stderr/stdout
|
||||
out_log = file(log_path, 'a+', 0)
|
||||
sys.stderr.flush()
|
||||
sys.stdout.flush()
|
||||
os.dup2(out_log.fileno(), sys.stderr.fileno())
|
||||
|
||||
@@ -35,6 +35,6 @@
|
||||
<!--#else if float($mbleft) < 0.1#-->
|
||||
SABnzbd
|
||||
<!--#else#-->
|
||||
<!--#if float($kbpersec) > 1023 #-->$speed<!--#else#--><!--#echo "%.0f" % float($kbpersec)#--> K<!--#end if#-->B/s - $sizeleft $T('Glitter-left') - SABnzbd
|
||||
${speed}B/s - $sizeleft $T('Glitter-left') - SABnzbd
|
||||
<!--#end if#-->
|
||||
|||<!--#echo "%.0f" % float($kbpersec)#-->
|
||||
@@ -96,7 +96,7 @@ function ViewModel() {
|
||||
|
||||
// Dynamic speed text function
|
||||
self.speedText = ko.pureComputed(function() {
|
||||
return self.speed() + ' ' + (self.speedMetrics[self.speedMetric()] ? self.speedMetrics[self.speedMetric()] : "KB/s");
|
||||
return self.speed() + ' ' + (self.speedMetrics[self.speedMetric()] ? self.speedMetrics[self.speedMetric()] : "B/s");
|
||||
});
|
||||
|
||||
// Dynamic icon
|
||||
@@ -852,6 +852,12 @@ function ViewModel() {
|
||||
// Download a test-NZB
|
||||
self.testDownload = function(data, event) {
|
||||
var nzbSize = $(event.target).data('size')
|
||||
|
||||
// Maybe it was a click on the icon?
|
||||
if(nzbSize == undefined) {
|
||||
nzbSize = $(event.target.parentElement).data('size')
|
||||
}
|
||||
|
||||
// Build request
|
||||
var theCall = {
|
||||
mode: "addurl",
|
||||
|
||||
BIN
osx/unrar/unrar
BIN
osx/unrar/unrar
Binary file not shown.
@@ -5,14 +5,14 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-2.4.0-develop\n"
|
||||
"Project-Id-Version: SABnzbd-2.3.8\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: shypike@sabnzbd.org\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=ASCII\n"
|
||||
"Content-Transfer-Encoding: 7bit\n"
|
||||
"POT-Creation-Date: 2019-01-04 12:49+W. Europe Standard Time\n"
|
||||
"POT-Creation-Date: 2019-05-07 09:00+W. Europe Daylight Time\n"
|
||||
"Generated-By: pygettext.py 1.5\n"
|
||||
|
||||
|
||||
@@ -412,10 +412,6 @@ msgstr ""
|
||||
msgid "Unpacked %s files/folders in %s"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Unable to stop the unrar process."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Direct Unpack was automatically enabled."
|
||||
msgstr ""
|
||||
@@ -3275,19 +3271,19 @@ msgid "Comma separated list"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Server load-balancing"
|
||||
msgid "Server IP address selection"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Prevent load-balancing"
|
||||
msgid "First IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing"
|
||||
msgid "Randomly selected IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing with optimization for IPv6"
|
||||
msgid "Quickest IP address, preferring IPv6"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -4154,10 +4150,6 @@ msgstr ""
|
||||
msgid "Optionally specify a filename"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Formats: .nzb, .rar, .zip, .gz, .bz2"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
@@ -6,15 +6,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2019-01-04 12:42+0000\n"
|
||||
"POT-Creation-Date: 2019-05-07 12:00+0000\n"
|
||||
"PO-Revision-Date: 2019-01-26 09:26+0000\n"
|
||||
"Last-Translator: B.E. <Unknown>\n"
|
||||
"Language-Team: Danish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2019-01-27 05:44+0000\n"
|
||||
"X-Generator: Launchpad (build 18857)\n"
|
||||
"X-Launchpad-Export-Date: 2019-05-08 05:48+0000\n"
|
||||
"X-Generator: Launchpad (build 18958)\n"
|
||||
"Language: da\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
@@ -441,10 +441,6 @@ msgstr "Færdig"
|
||||
msgid "Unpacked %s files/folders in %s"
|
||||
msgstr "Udpakket %s filer/mapper i %s"
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Unable to stop the unrar process."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Direct Unpack was automatically enabled."
|
||||
msgstr ""
|
||||
@@ -3541,20 +3537,20 @@ msgid "Comma separated list"
|
||||
msgstr "Kommasepareret liste"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Server load-balancing"
|
||||
msgstr "Server belastningsjustering"
|
||||
msgid "Server IP address selection"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Prevent load-balancing"
|
||||
msgstr "Forhindre belastningsjustering"
|
||||
msgid "First IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing"
|
||||
msgstr "Tillad belastningsjustering"
|
||||
msgid "Randomly selected IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing with optimization for IPv6"
|
||||
msgstr "Giver mulighed for belastningsjustering med optimering for IPv6"
|
||||
msgid "Quickest IP address, preferring IPv6"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Useful if a newsserver has more than one IPv4/IPv6 address"
|
||||
@@ -4451,10 +4447,6 @@ msgstr "Upload NZB"
|
||||
msgid "Optionally specify a filename"
|
||||
msgstr "Angiv et valgfrit filnavn"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Formats: .nzb, .rar, .zip, .gz, .bz2"
|
||||
msgstr "Formater: .nzb, .rar, .zip, .gz, .bz2"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Submit"
|
||||
msgstr "Tilføj"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2019-01-04 12:42+0000\n"
|
||||
"POT-Creation-Date: 2019-05-07 12:00+0000\n"
|
||||
"PO-Revision-Date: 2018-05-31 06:22+0000\n"
|
||||
"Last-Translator: scope <Unknown>\n"
|
||||
"Language-Team: German <de@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2019-01-05 05:41+0000\n"
|
||||
"X-Generator: Launchpad (build 18847)\n"
|
||||
"X-Launchpad-Export-Date: 2019-05-08 05:49+0000\n"
|
||||
"X-Generator: Launchpad (build 18958)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -457,10 +457,6 @@ msgstr "Fertiggestellt"
|
||||
msgid "Unpacked %s files/folders in %s"
|
||||
msgstr "%s Datei(en)/Ordner entpackt in %s"
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Unable to stop the unrar process."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Direct Unpack was automatically enabled."
|
||||
msgstr "Direkt entpacken wurde automatisch aktiviert"
|
||||
@@ -3646,20 +3642,20 @@ msgid "Comma separated list"
|
||||
msgstr "Durch Komma getrennte Liste"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Server load-balancing"
|
||||
msgstr "Server Lastverteilung"
|
||||
msgid "Server IP address selection"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Prevent load-balancing"
|
||||
msgstr "Lastverteilung verhindern"
|
||||
msgid "First IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing"
|
||||
msgstr "Lastverteilung zulassen"
|
||||
msgid "Randomly selected IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing with optimization for IPv6"
|
||||
msgstr "Lastverteilung mit IPv6-Optimierung zulassen"
|
||||
msgid "Quickest IP address, preferring IPv6"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Useful if a newsserver has more than one IPv4/IPv6 address"
|
||||
@@ -4562,10 +4558,6 @@ msgstr "NZB hochladen"
|
||||
msgid "Optionally specify a filename"
|
||||
msgstr "Wahlweise einen Dateinamen angeben:"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Formats: .nzb, .rar, .zip, .gz, .bz2"
|
||||
msgstr "Formate: .nzb, .rar, .zip, .gz, .bz2"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Submit"
|
||||
msgstr "Senden"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2019-01-04 12:42+0000\n"
|
||||
"POT-Creation-Date: 2019-05-07 12:00+0000\n"
|
||||
"PO-Revision-Date: 2018-02-14 14:18+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>\n"
|
||||
"Language-Team: Spanish <es@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2019-01-05 05:42+0000\n"
|
||||
"X-Generator: Launchpad (build 18847)\n"
|
||||
"X-Launchpad-Export-Date: 2019-05-08 05:49+0000\n"
|
||||
"X-Generator: Launchpad (build 18958)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -439,10 +439,6 @@ msgstr "Completado"
|
||||
msgid "Unpacked %s files/folders in %s"
|
||||
msgstr "Descompresos %s archivos/directorios en %s"
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Unable to stop the unrar process."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Direct Unpack was automatically enabled."
|
||||
msgstr ""
|
||||
@@ -3558,20 +3554,20 @@ msgid "Comma separated list"
|
||||
msgstr "Lista separada por comas"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Server load-balancing"
|
||||
msgstr "Balanceo de carga del servidor"
|
||||
msgid "Server IP address selection"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Prevent load-balancing"
|
||||
msgstr "Evitar el balanceo de carga"
|
||||
msgid "First IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing"
|
||||
msgstr "Permitir balanceo de carga"
|
||||
msgid "Randomly selected IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing with optimization for IPv6"
|
||||
msgstr "Permitir balanceo de carga con optimización para IPv6"
|
||||
msgid "Quickest IP address, preferring IPv6"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Useful if a newsserver has more than one IPv4/IPv6 address"
|
||||
@@ -4467,10 +4463,6 @@ msgstr "Subir NZB"
|
||||
msgid "Optionally specify a filename"
|
||||
msgstr "Opcionalmente especificar un nombre de fichero"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Formats: .nzb, .rar, .zip, .gz, .bz2"
|
||||
msgstr "Formatos: .nzb, .rar, .zip, .gz, .bz2"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Submit"
|
||||
msgstr "Enviar"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2019-01-04 12:42+0000\n"
|
||||
"POT-Creation-Date: 2019-05-07 12:00+0000\n"
|
||||
"PO-Revision-Date: 2018-02-14 14:19+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>\n"
|
||||
"Language-Team: Finnish <fi@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2019-01-05 05:41+0000\n"
|
||||
"X-Generator: Launchpad (build 18847)\n"
|
||||
"X-Launchpad-Export-Date: 2019-05-08 05:49+0000\n"
|
||||
"X-Generator: Launchpad (build 18958)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -438,10 +438,6 @@ msgstr "Valmistunut"
|
||||
msgid "Unpacked %s files/folders in %s"
|
||||
msgstr "Purettiin %s tiedostoa/kansiota kohteeseen %s"
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Unable to stop the unrar process."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Direct Unpack was automatically enabled."
|
||||
msgstr ""
|
||||
@@ -3547,20 +3543,20 @@ msgid "Comma separated list"
|
||||
msgstr "Pilkulla erotettu lista"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Server load-balancing"
|
||||
msgstr "Palvelimen kuormantasaus"
|
||||
msgid "Server IP address selection"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Prevent load-balancing"
|
||||
msgstr "Estä kuormantasaus"
|
||||
msgid "First IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing"
|
||||
msgstr "Salli kuormantasaus"
|
||||
msgid "Randomly selected IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing with optimization for IPv6"
|
||||
msgstr "Salli kuormantasaus IPv6 optimoinnille"
|
||||
msgid "Quickest IP address, preferring IPv6"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Useful if a newsserver has more than one IPv4/IPv6 address"
|
||||
@@ -4459,10 +4455,6 @@ msgstr "Lähetä NZB"
|
||||
msgid "Optionally specify a filename"
|
||||
msgstr "Vaihtoehtoisesti anna tiedostonimi"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Formats: .nzb, .rar, .zip, .gz, .bz2"
|
||||
msgstr "Tiedostomuodot: .nzb, .rar, .zip, .gz, .bz2"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Submit"
|
||||
msgstr "Lähetä"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2019-01-04 12:42+0000\n"
|
||||
"PO-Revision-Date: 2019-01-05 12:50+0000\n"
|
||||
"POT-Creation-Date: 2019-05-07 12:00+0000\n"
|
||||
"PO-Revision-Date: 2019-05-14 00:00+0000\n"
|
||||
"Last-Translator: Fred <88com88@gmail.com>\n"
|
||||
"Language-Team: French <fr@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2019-01-06 04:48+0000\n"
|
||||
"X-Generator: Launchpad (build 18847)\n"
|
||||
"X-Launchpad-Export-Date: 2019-05-15 04:49+0000\n"
|
||||
"X-Generator: Launchpad (build 18962)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -459,10 +459,6 @@ msgstr "Terminé"
|
||||
msgid "Unpacked %s files/folders in %s"
|
||||
msgstr "%s fichier(s)/dossier(s) extrait(s) en %s"
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Unable to stop the unrar process."
|
||||
msgstr "Impossible d'arrêter le processus unrar."
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Direct Unpack was automatically enabled."
|
||||
msgstr "La Décompression Directe a été activée automatiquement."
|
||||
@@ -3654,20 +3650,20 @@ msgid "Comma separated list"
|
||||
msgstr "Liste séparée par des virgules"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Server load-balancing"
|
||||
msgstr "Equilibrage de charge du serveur"
|
||||
msgid "Server IP address selection"
|
||||
msgstr "Sélection de l'adresse IP du serveur"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Prevent load-balancing"
|
||||
msgstr "Empêcher l'équilibrage de charge"
|
||||
msgid "First IP address"
|
||||
msgstr "Première adresse IP"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing"
|
||||
msgstr "Autoriser l'équilibrage de charge"
|
||||
msgid "Randomly selected IP address"
|
||||
msgstr "Adresse IP sélectionnée au hasard"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing with optimization for IPv6"
|
||||
msgstr "Autoriser l'équilibrage de charge avec l'optimisation pour IPv6"
|
||||
msgid "Quickest IP address, preferring IPv6"
|
||||
msgstr "Adresse IP la plus rapide, IPv6 de préférence"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Useful if a newsserver has more than one IPv4/IPv6 address"
|
||||
@@ -4576,10 +4572,6 @@ msgstr "Uploader le NZB"
|
||||
msgid "Optionally specify a filename"
|
||||
msgstr "Vous pouvez également indiquer un nom de fichier"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Formats: .nzb, .rar, .zip, .gz, .bz2"
|
||||
msgstr "Formats : .nzb, .rar, .zip, .gz, .bz2"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Submit"
|
||||
msgstr "Soumettre"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2019-01-04 12:42+0000\n"
|
||||
"PO-Revision-Date: 2019-01-14 07:17+0000\n"
|
||||
"POT-Creation-Date: 2019-05-07 12:00+0000\n"
|
||||
"PO-Revision-Date: 2019-05-07 23:12+0000\n"
|
||||
"Last-Translator: ION IL <Unknown>\n"
|
||||
"Language-Team: Hebrew <he@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2019-01-15 04:50+0000\n"
|
||||
"X-Generator: Launchpad (build 18855)\n"
|
||||
"X-Launchpad-Export-Date: 2019-05-08 05:49+0000\n"
|
||||
"X-Generator: Launchpad (build 18958)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -432,10 +432,6 @@ msgstr "הושלם"
|
||||
msgid "Unpacked %s files/folders in %s"
|
||||
msgstr "פורקו %s קבצים/תיקיות תוך %s"
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Unable to stop the unrar process."
|
||||
msgstr "לא היה ניתן לעצור את תהליך החילוץ"
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Direct Unpack was automatically enabled."
|
||||
msgstr ".פריקה ישירה אופשרה באופן אוטומטי"
|
||||
@@ -3518,20 +3514,20 @@ msgid "Comma separated list"
|
||||
msgstr "רשימה מופרדת בפסיקים"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Server load-balancing"
|
||||
msgstr "איזון-עומס של שרת"
|
||||
msgid "Server IP address selection"
|
||||
msgstr "של שרת IP בחירת כתובת"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Prevent load-balancing"
|
||||
msgstr "מנע איזון-עומס"
|
||||
msgid "First IP address"
|
||||
msgstr "ראשונה IP כתובת"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing"
|
||||
msgstr "התר איזון-עומס"
|
||||
msgid "Randomly selected IP address"
|
||||
msgstr "נבחרת באופן אקראי IP כתובת"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing with optimization for IPv6"
|
||||
msgstr "IPv6 התר איזון-עומס עם ייעול עבור"
|
||||
msgid "Quickest IP address, preferring IPv6"
|
||||
msgstr "IPv6 הזריזה ביותר, העדפה אל IP כתובת"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Useful if a newsserver has more than one IPv4/IPv6 address"
|
||||
@@ -4425,10 +4421,6 @@ msgstr "NZB העלה"
|
||||
msgid "Optionally specify a filename"
|
||||
msgstr "ציין באופן רשותי שם קובץ"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Formats: .nzb, .rar, .zip, .gz, .bz2"
|
||||
msgstr ".nzb, .rar, .zip, .gz, .bz2 :תסדירים"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Submit"
|
||||
msgstr "הגש"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2019-01-04 12:42+0000\n"
|
||||
"POT-Creation-Date: 2019-05-07 12:00+0000\n"
|
||||
"PO-Revision-Date: 2018-02-14 14:18+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>\n"
|
||||
"Language-Team: Norwegian Bokmal <nb@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2019-01-05 05:41+0000\n"
|
||||
"X-Generator: Launchpad (build 18847)\n"
|
||||
"X-Launchpad-Export-Date: 2019-05-08 05:49+0000\n"
|
||||
"X-Generator: Launchpad (build 18958)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -434,10 +434,6 @@ msgstr "Ferdig"
|
||||
msgid "Unpacked %s files/folders in %s"
|
||||
msgstr "Utpakket %s filer/mapper på %s"
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Unable to stop the unrar process."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Direct Unpack was automatically enabled."
|
||||
msgstr ""
|
||||
@@ -3512,20 +3508,20 @@ msgid "Comma separated list"
|
||||
msgstr "Kommaseparert liste"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Server load-balancing"
|
||||
msgstr "Serverlastbalansering"
|
||||
msgid "Server IP address selection"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Prevent load-balancing"
|
||||
msgstr "Forhindre lastbalansering"
|
||||
msgid "First IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing"
|
||||
msgstr "Tillat lastbalansering"
|
||||
msgid "Randomly selected IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing with optimization for IPv6"
|
||||
msgstr "Tillat lastbalansering med optimalisering for IPv6"
|
||||
msgid "Quickest IP address, preferring IPv6"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Useful if a newsserver has more than one IPv4/IPv6 address"
|
||||
@@ -4418,10 +4414,6 @@ msgstr "Last opp NZB"
|
||||
msgid "Optionally specify a filename"
|
||||
msgstr "Valgfritt spesifiser filnavn"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Formats: .nzb, .rar, .zip, .gz, .bz2"
|
||||
msgstr "Formater: .nzb, .rar, .zip, .gz, .bz2"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Submit"
|
||||
msgstr "Send"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2019-01-04 12:42+0000\n"
|
||||
"PO-Revision-Date: 2019-01-10 08:23+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>\n"
|
||||
"POT-Creation-Date: 2019-05-07 12:00+0000\n"
|
||||
"PO-Revision-Date: 2019-05-15 19:07+0000\n"
|
||||
"Last-Translator: Dennis Versteegen <Unknown>\n"
|
||||
"Language-Team: Dutch <nl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2019-01-11 05:42+0000\n"
|
||||
"X-Generator: Launchpad (build 18855)\n"
|
||||
"X-Launchpad-Export-Date: 2019-05-16 05:47+0000\n"
|
||||
"X-Generator: Launchpad (build 18962)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -452,10 +452,6 @@ msgstr "Voltooid"
|
||||
msgid "Unpacked %s files/folders in %s"
|
||||
msgstr "%s bestanden/mappen uitgepakt in %s"
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Unable to stop the unrar process."
|
||||
msgstr "Het was niet mogelijk het unrar process te stoppen."
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Direct Unpack was automatically enabled."
|
||||
msgstr "Direct Uitpakken is automatisch ingeschakeld."
|
||||
@@ -3601,20 +3597,20 @@ msgid "Comma separated list"
|
||||
msgstr "Door komma's gescheiden lijst"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Server load-balancing"
|
||||
msgstr "Balanceren van server belasting"
|
||||
msgid "Server IP address selection"
|
||||
msgstr "Server IP adres selectie"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Prevent load-balancing"
|
||||
msgstr "Schakel balancering uit"
|
||||
msgid "First IP address"
|
||||
msgstr "Eerste IP adres"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing"
|
||||
msgstr "Schakel balancering in"
|
||||
msgid "Randomly selected IP address"
|
||||
msgstr "willekeurig geselecteerd IP adres"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing with optimization for IPv6"
|
||||
msgstr "Schakel balancering met optimalisatie voor IPv6 in"
|
||||
msgid "Quickest IP address, preferring IPv6"
|
||||
msgstr "Snelste IP adres, voorkeur voor IPv6"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Useful if a newsserver has more than one IPv4/IPv6 address"
|
||||
@@ -4520,10 +4516,6 @@ msgstr "NZB uploaden"
|
||||
msgid "Optionally specify a filename"
|
||||
msgstr "Geef eventueel een andere naam"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Formats: .nzb, .rar, .zip, .gz, .bz2"
|
||||
msgstr "Formaten: .nzb, .rar, .zip, .gz, .bz2"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Submit"
|
||||
msgstr "Verstuur"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2019-01-04 12:42+0000\n"
|
||||
"POT-Creation-Date: 2019-05-07 12:00+0000\n"
|
||||
"PO-Revision-Date: 2018-02-14 14:18+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>\n"
|
||||
"Language-Team: Polish <pl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2019-01-05 05:42+0000\n"
|
||||
"X-Generator: Launchpad (build 18847)\n"
|
||||
"X-Launchpad-Export-Date: 2019-05-08 05:49+0000\n"
|
||||
"X-Generator: Launchpad (build 18958)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -434,10 +434,6 @@ msgstr "Ukończone"
|
||||
msgid "Unpacked %s files/folders in %s"
|
||||
msgstr "Rozpakowano %s plików/katalogów w %s"
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Unable to stop the unrar process."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Direct Unpack was automatically enabled."
|
||||
msgstr ""
|
||||
@@ -3529,20 +3525,20 @@ msgid "Comma separated list"
|
||||
msgstr "Lista wartości oddzielonych przecinkami"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Server load-balancing"
|
||||
msgstr "Równoważenie obciążenia serwerów"
|
||||
msgid "Server IP address selection"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Prevent load-balancing"
|
||||
msgstr "Zapobiegaj równoważeniu obciążenia"
|
||||
msgid "First IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing"
|
||||
msgstr "Zezwól na równoważenie obciążenia"
|
||||
msgid "Randomly selected IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing with optimization for IPv6"
|
||||
msgstr "Zezwól na równoważenie obciążenia, preferując IPv6"
|
||||
msgid "Quickest IP address, preferring IPv6"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Useful if a newsserver has more than one IPv4/IPv6 address"
|
||||
@@ -4435,10 +4431,6 @@ msgstr "Wczytaj NZB"
|
||||
msgid "Optionally specify a filename"
|
||||
msgstr "Opcjonalnie podaj nazwę pliku"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Formats: .nzb, .rar, .zip, .gz, .bz2"
|
||||
msgstr "Formaty: .nzb, .rar, .zip, .gz, .bz2"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Submit"
|
||||
msgstr "Wyślij"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2019-01-04 12:42+0000\n"
|
||||
"POT-Creation-Date: 2019-05-07 12:00+0000\n"
|
||||
"PO-Revision-Date: 2018-02-14 14:16+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>\n"
|
||||
"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2019-01-05 05:42+0000\n"
|
||||
"X-Generator: Launchpad (build 18847)\n"
|
||||
"X-Launchpad-Export-Date: 2019-05-08 05:50+0000\n"
|
||||
"X-Generator: Launchpad (build 18958)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -436,10 +436,6 @@ msgstr "Concluído"
|
||||
msgid "Unpacked %s files/folders in %s"
|
||||
msgstr "Descompactados %s arquivos/pastas em %s"
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Unable to stop the unrar process."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Direct Unpack was automatically enabled."
|
||||
msgstr ""
|
||||
@@ -3527,20 +3523,20 @@ msgid "Comma separated list"
|
||||
msgstr "Lista separada por vírgulas"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Server load-balancing"
|
||||
msgstr "Balanceamento de carga do servidor"
|
||||
msgid "Server IP address selection"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Prevent load-balancing"
|
||||
msgstr "Prevenir balanceamento de carga"
|
||||
msgid "First IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing"
|
||||
msgstr "Permitir balanceamento de carga"
|
||||
msgid "Randomly selected IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing with optimization for IPv6"
|
||||
msgstr "Permitir balanceamento de carga com optimização para IPv6"
|
||||
msgid "Quickest IP address, preferring IPv6"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Useful if a newsserver has more than one IPv4/IPv6 address"
|
||||
@@ -4434,10 +4430,6 @@ msgstr "Enviar NZB"
|
||||
msgid "Optionally specify a filename"
|
||||
msgstr "Opcionalmente, especifique um nome de arquivo"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Formats: .nzb, .rar, .zip, .gz, .bz2"
|
||||
msgstr "Formatos: .nzb, .rar, .zip, .gz, .bz2"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Submit"
|
||||
msgstr "Enviar"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2019-01-04 12:42+0000\n"
|
||||
"POT-Creation-Date: 2019-05-07 12:00+0000\n"
|
||||
"PO-Revision-Date: 2018-02-14 14:18+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>\n"
|
||||
"Language-Team: Romanian <ro@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2019-01-05 05:42+0000\n"
|
||||
"X-Generator: Launchpad (build 18847)\n"
|
||||
"X-Launchpad-Export-Date: 2019-05-08 05:49+0000\n"
|
||||
"X-Generator: Launchpad (build 18958)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -438,10 +438,6 @@ msgstr "Finalizat"
|
||||
msgid "Unpacked %s files/folders in %s"
|
||||
msgstr "Dezarhivat %s fişierele/dosarele în %s"
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Unable to stop the unrar process."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Direct Unpack was automatically enabled."
|
||||
msgstr ""
|
||||
@@ -3529,20 +3525,20 @@ msgid "Comma separated list"
|
||||
msgstr "Listă separată prin virgulă"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Server load-balancing"
|
||||
msgstr "Server de load-balancing"
|
||||
msgid "Server IP address selection"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Prevent load-balancing"
|
||||
msgstr "Previne load-balancing"
|
||||
msgid "First IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing"
|
||||
msgstr "Permite load-balancing"
|
||||
msgid "Randomly selected IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing with optimization for IPv6"
|
||||
msgstr "Permite load-balancing cu o optimizare pentru IPv6"
|
||||
msgid "Quickest IP address, preferring IPv6"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Useful if a newsserver has more than one IPv4/IPv6 address"
|
||||
@@ -4434,10 +4430,6 @@ msgstr "Încarcă NZB"
|
||||
msgid "Optionally specify a filename"
|
||||
msgstr "Opţional specifică un nume de fişier"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Formats: .nzb, .rar, .zip, .gz, .bz2"
|
||||
msgstr "Formate: .nzb, .rar, .zip, .gz, .bz2"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Submit"
|
||||
msgstr "Trimite"
|
||||
|
||||
@@ -2,15 +2,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: SABnzbd-0.7.x\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-01-04 12:42+0000\n"
|
||||
"POT-Creation-Date: 2019-05-07 12:00+0000\n"
|
||||
"PO-Revision-Date: 2013-05-05 14:50+0000\n"
|
||||
"Last-Translator: Pavel Maryanov <Unknown>\n"
|
||||
"Language-Team: Russian <gmu@mx.ru>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2019-01-05 05:42+0000\n"
|
||||
"X-Generator: Launchpad (build 18847)\n"
|
||||
"X-Launchpad-Export-Date: 2019-05-08 05:49+0000\n"
|
||||
"X-Generator: Launchpad (build 18958)\n"
|
||||
"Generated-By: pygettext.py 1.5\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
@@ -427,10 +427,6 @@ msgstr "Завершено"
|
||||
msgid "Unpacked %s files/folders in %s"
|
||||
msgstr "Распаковка %s файлов или папок в %s"
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Unable to stop the unrar process."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Direct Unpack was automatically enabled."
|
||||
msgstr ""
|
||||
@@ -3504,19 +3500,19 @@ msgid "Comma separated list"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Server load-balancing"
|
||||
msgid "Server IP address selection"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Prevent load-balancing"
|
||||
msgid "First IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing"
|
||||
msgid "Randomly selected IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing with optimization for IPv6"
|
||||
msgid "Quickest IP address, preferring IPv6"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
@@ -4415,10 +4411,6 @@ msgstr ""
|
||||
msgid "Optionally specify a filename"
|
||||
msgstr "Имя файла (необязательно)"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Formats: .nzb, .rar, .zip, .gz, .bz2"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: ОZZII <ozzii.translate@gmail.com>\n"
|
||||
"POT-Creation-Date: 2019-01-04 12:42+0000\n"
|
||||
"POT-Creation-Date: 2019-05-07 12:00+0000\n"
|
||||
"PO-Revision-Date: 2018-02-14 14:18+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>\n"
|
||||
"Language-Team: Serbian <sr@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2019-01-05 05:42+0000\n"
|
||||
"X-Generator: Launchpad (build 18847)\n"
|
||||
"X-Launchpad-Export-Date: 2019-05-08 05:49+0000\n"
|
||||
"X-Generator: Launchpad (build 18958)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -431,10 +431,6 @@ msgstr "Завршено"
|
||||
msgid "Unpacked %s files/folders in %s"
|
||||
msgstr "Издвојено %s датотека/фасцикла у %s"
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Unable to stop the unrar process."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Direct Unpack was automatically enabled."
|
||||
msgstr ""
|
||||
@@ -3498,20 +3494,20 @@ msgid "Comma separated list"
|
||||
msgstr "Lista razdvojena zarezom"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Server load-balancing"
|
||||
msgstr "Balansiranje opterećenja servera"
|
||||
msgid "Server IP address selection"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Prevent load-balancing"
|
||||
msgstr "Onemogući balansiranje opterećenja"
|
||||
msgid "First IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing"
|
||||
msgstr "Omogući balansiranje opterećenja"
|
||||
msgid "Randomly selected IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing with optimization for IPv6"
|
||||
msgstr "Omogući balansiranje opterećenja sa optimizacijom za IPv6"
|
||||
msgid "Quickest IP address, preferring IPv6"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Useful if a newsserver has more than one IPv4/IPv6 address"
|
||||
@@ -4402,10 +4398,6 @@ msgstr "Pošalji NZB"
|
||||
msgid "Optionally specify a filename"
|
||||
msgstr "Опционо специфирати име"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Formats: .nzb, .rar, .zip, .gz, .bz2"
|
||||
msgstr "Formati: .nzb, .rar, .zip, .gz, .bz2"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Submit"
|
||||
msgstr "Пошаљи"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2019-01-04 12:42+0000\n"
|
||||
"POT-Creation-Date: 2019-05-07 12:00+0000\n"
|
||||
"PO-Revision-Date: 2018-02-14 14:19+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>\n"
|
||||
"Language-Team: Swedish <sv@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2019-01-05 05:42+0000\n"
|
||||
"X-Generator: Launchpad (build 18847)\n"
|
||||
"X-Launchpad-Export-Date: 2019-05-08 05:49+0000\n"
|
||||
"X-Generator: Launchpad (build 18958)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -432,10 +432,6 @@ msgstr "Färdig"
|
||||
msgid "Unpacked %s files/folders in %s"
|
||||
msgstr "Uppackad %s filer/mappar i %s"
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Unable to stop the unrar process."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Direct Unpack was automatically enabled."
|
||||
msgstr ""
|
||||
@@ -3512,20 +3508,20 @@ msgid "Comma separated list"
|
||||
msgstr "Kommaseparerad lista"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Server load-balancing"
|
||||
msgstr "Serverbelastad-balansering"
|
||||
msgid "Server IP address selection"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Prevent load-balancing"
|
||||
msgstr "Undvik belastningsbalansering"
|
||||
msgid "First IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing"
|
||||
msgstr "Tillåt belastningsbalansering"
|
||||
msgid "Randomly selected IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing with optimization for IPv6"
|
||||
msgstr "Tillåt bellastningsbalansering med optimering för IPv6"
|
||||
msgid "Quickest IP address, preferring IPv6"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Useful if a newsserver has more than one IPv4/IPv6 address"
|
||||
@@ -4416,10 +4412,6 @@ msgstr "Ladda upp NZB"
|
||||
msgid "Optionally specify a filename"
|
||||
msgstr "Alternativt ange ett filnamn"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Formats: .nzb, .rar, .zip, .gz, .bz2"
|
||||
msgstr "Format: .nzb, .rar, .zip, .gz, .bz2"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Submit"
|
||||
msgstr "Skicka"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: sabnzbd\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2019-01-04 12:42+0000\n"
|
||||
"POT-Creation-Date: 2019-05-07 12:00+0000\n"
|
||||
"PO-Revision-Date: 2017-06-22 07:06+0000\n"
|
||||
"Last-Translator: Safihre <safihre@sabnzbd.org>\n"
|
||||
"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2019-01-05 05:42+0000\n"
|
||||
"X-Generator: Launchpad (build 18847)\n"
|
||||
"X-Launchpad-Export-Date: 2019-05-08 05:50+0000\n"
|
||||
"X-Generator: Launchpad (build 18958)\n"
|
||||
|
||||
#: SABnzbd.py [Error message]
|
||||
msgid "Failed to start web-interface"
|
||||
@@ -426,10 +426,6 @@ msgstr "完成"
|
||||
msgid "Unpacked %s files/folders in %s"
|
||||
msgstr "已解压 %s 个文件/文件夹,耗时 %s"
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Unable to stop the unrar process."
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/directunpacker.py [Warning message]
|
||||
msgid "Direct Unpack was automatically enabled."
|
||||
msgstr ""
|
||||
@@ -3441,20 +3437,20 @@ msgid "Comma separated list"
|
||||
msgstr "逗号分隔的列表"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Server load-balancing"
|
||||
msgstr "服务器负载均衡"
|
||||
msgid "Server IP address selection"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Prevent load-balancing"
|
||||
msgstr "避免负载均衡"
|
||||
msgid "First IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing"
|
||||
msgstr "允许负载均衡"
|
||||
msgid "Randomly selected IP address"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Allow load-balancing with optimization for IPv6"
|
||||
msgstr "允许负载均衡,并对 IPv6 优化"
|
||||
msgid "Quickest IP address, preferring IPv6"
|
||||
msgstr ""
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Useful if a newsserver has more than one IPv4/IPv6 address"
|
||||
@@ -4342,10 +4338,6 @@ msgstr "上传 NZB"
|
||||
msgid "Optionally specify a filename"
|
||||
msgstr "可以选择指定文件名"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Formats: .nzb, .rar, .zip, .gz, .bz2"
|
||||
msgstr "格式: .nzb, .rar, .zip, .gz, .bz2"
|
||||
|
||||
#: sabnzbd/skintext.py
|
||||
msgid "Submit"
|
||||
msgstr "提交"
|
||||
|
||||
@@ -1406,7 +1406,7 @@ def fast_queue():
|
||||
""" Return paused, bytes_left, bpsnow, time_left """
|
||||
bytes_left = NzbQueue.do.remaining()
|
||||
paused = Downloader.do.paused
|
||||
bpsnow = BPSMeter.do.get_bps()
|
||||
bpsnow = BPSMeter.do.bps
|
||||
time_left = calc_timeleft(bytes_left, bpsnow)
|
||||
return paused, bytes_left, bpsnow, time_left
|
||||
|
||||
@@ -1468,9 +1468,9 @@ def rss_qstatus():
|
||||
item = Item()
|
||||
item.title = 'Total ETA: %s - Queued: %.2f MB - Speed: %.2f kB/s' % \
|
||||
(
|
||||
calc_timeleft(qnfo.bytes_left, BPSMeter.do.get_bps()),
|
||||
calc_timeleft(qnfo.bytes_left, BPSMeter.do.bps),
|
||||
qnfo.bytes_left / MEBI,
|
||||
BPSMeter.do.get_bps() / KIBI
|
||||
BPSMeter.do.bps / KIBI
|
||||
)
|
||||
rss.addItem(item)
|
||||
|
||||
@@ -1501,7 +1501,7 @@ def rss_qstatus():
|
||||
status_line.append('<dt>Remain/Total: %.2f/%.2f MB</dt>' % (bytesleft, bytes))
|
||||
# ETA
|
||||
sum_bytesleft += pnfo.bytes_left
|
||||
status_line.append("<dt>ETA: %s </dt>" % calc_timeleft(sum_bytesleft, BPSMeter.do.get_bps()))
|
||||
status_line.append("<dt>ETA: %s </dt>" % calc_timeleft(sum_bytesleft, BPSMeter.do.bps))
|
||||
status_line.append("<dt>Age: %s</dt>" % calc_age(pnfo.avg_date))
|
||||
status_line.append("</tr>")
|
||||
item.description = ''.join(status_line)
|
||||
@@ -1695,7 +1695,7 @@ def build_queue_header(search=None, start=0, limit=0, output=None):
|
||||
|
||||
header = build_header(output=output)
|
||||
|
||||
bytespersec = BPSMeter.do.get_bps()
|
||||
bytespersec = BPSMeter.do.bps
|
||||
qnfo = NzbQueue.do.queue_info(search=search, start=start, limit=limit)
|
||||
|
||||
bytesleft = qnfo.bytes_left
|
||||
|
||||
@@ -320,9 +320,6 @@ class BPSMeter(object):
|
||||
del self.timeline_total[server]
|
||||
self.save()
|
||||
|
||||
def get_bps(self):
|
||||
return self.bps
|
||||
|
||||
def get_bps_list(self):
|
||||
refresh_rate = int(cfg.refresh_rate()) if cfg.refresh_rate() else 1
|
||||
self.add_empty_time()
|
||||
|
||||
@@ -36,7 +36,7 @@ import threading
|
||||
|
||||
import sabnzbd
|
||||
import sabnzbd.cfg
|
||||
from sabnzbd.constants import DB_HISTORY_NAME, STAGES
|
||||
from sabnzbd.constants import DB_HISTORY_NAME, STAGES, Status
|
||||
from sabnzbd.encoding import unicoder
|
||||
from sabnzbd.bpsmeter import this_week, this_month
|
||||
from sabnzbd.decorators import synchronized
|
||||
@@ -259,11 +259,11 @@ class HistoryDB(object):
|
||||
to_keep = int_conv(sabnzbd.cfg.history_retention())
|
||||
if to_keep > 0:
|
||||
logging.info('Removing all but last %s completed jobs from history', to_keep)
|
||||
return self.execute("""DELETE FROM history WHERE id NOT IN ( SELECT id FROM history WHERE status = 'Completed' ORDER BY completed DESC LIMIT ? )""", (to_keep,), save=True)
|
||||
return self.execute("""DELETE FROM history WHERE status = ? AND id NOT IN ( SELECT id FROM history WHERE status = ? ORDER BY completed DESC LIMIT ? )""", (Status.COMPLETED, Status.COMPLETED, to_keep), save=True)
|
||||
|
||||
def add_history_db(self, nzo, storage, path, postproc_time, script_output, script_line):
|
||||
""" Add a new job entry to the database """
|
||||
t = build_history_info(nzo, storage, path, postproc_time, script_output, script_line)
|
||||
t = build_history_info(nzo, storage, path, postproc_time, script_output, script_line, series_info=True)
|
||||
|
||||
self.execute("""INSERT INTO history (completed, name, nzb_name, category, pp, script, report,
|
||||
url, status, nzo_id, storage, path, script_log, script_line, download_time, postproc_time, stage_log,
|
||||
@@ -319,7 +319,6 @@ class HistoryDB(object):
|
||||
def have_episode(self, series, season, episode):
|
||||
""" Check whether History contains this series episode """
|
||||
total = 0
|
||||
series = series.lower().replace('.', ' ').replace('_', ' ').replace(' ', ' ')
|
||||
if series and season and episode:
|
||||
pattern = '%s/%s/%s' % (series, season, episode)
|
||||
res = self.execute("select count(*) from History WHERE series = ? AND STATUS != 'Failed'", (pattern,))
|
||||
@@ -330,10 +329,11 @@ class HistoryDB(object):
|
||||
pass
|
||||
return total > 0
|
||||
|
||||
def have_md5sum(self, md5sum):
|
||||
""" Check whether this md5sum already in History """
|
||||
def have_name_or_md5sum(self, name, md5sum):
|
||||
""" Check whether this name or md5sum is already in History """
|
||||
total = 0
|
||||
res = self.execute("select count(*) from History WHERE md5sum = ? AND STATUS != 'Failed'", (md5sum,))
|
||||
# Do the check case-insensitive
|
||||
res = self.execute("SELECT count(*) FROM History WHERE ( LOWER(name) = LOWER(?) OR md5sum = ? ) AND STATUS != 'Failed'", (name, md5sum))
|
||||
if res:
|
||||
try:
|
||||
total = self.c.fetchone().get('count(*)')
|
||||
@@ -438,7 +438,7 @@ def dict_factory(cursor, row):
|
||||
|
||||
|
||||
_PP_LOOKUP = {0: '', 1: 'R', 2: 'U', 3: 'D'}
|
||||
def build_history_info(nzo, storage='', downpath='', postproc_time=0, script_output='', script_line=''):
|
||||
def build_history_info(nzo, storage='', downpath='', postproc_time=0, script_output='', script_line='', series_info=False):
|
||||
""" Collects all the information needed for the database """
|
||||
|
||||
if not downpath:
|
||||
@@ -491,7 +491,7 @@ def build_history_info(nzo, storage='', downpath='', postproc_time=0, script_out
|
||||
|
||||
# Analyze series info only when job is finished
|
||||
series = u''
|
||||
if postproc_time:
|
||||
if series_info:
|
||||
seriesname, season, episode, dummy = sabnzbd.newsunpack.analyse_show(nzo.final_name)
|
||||
if seriesname and season and episode:
|
||||
series = u'%s/%s/%s' % (seriesname.lower(), season, episode)
|
||||
|
||||
@@ -175,7 +175,8 @@ class Decoder(Thread):
|
||||
if nzo.precheck:
|
||||
if found and not killed:
|
||||
# Pre-check, proper article found, just register
|
||||
logging.debug('Server %s has article %s', article.fetcher, art_id)
|
||||
if sabnzbd.LOG_ALL:
|
||||
logging.debug('Server %s has article %s', article.fetcher, art_id)
|
||||
register = True
|
||||
elif not killed and not found:
|
||||
logme = T('Badly formed yEnc article in %s') % art_id
|
||||
|
||||
@@ -51,7 +51,6 @@ from subprocess import Popen
|
||||
# Otherwise we could stop while the thread was still starting
|
||||
START_STOP_LOCK = threading.RLock()
|
||||
|
||||
MAX_ACTIVE_UNPACKERS = 10
|
||||
ACTIVE_UNPACKERS = []
|
||||
|
||||
RAR_NR = re.compile(r'(.*?)(\.part(\d*).rar|\.r(\d*))$', re.IGNORECASE)
|
||||
@@ -77,6 +76,8 @@ class DirectUnpacker(threading.Thread):
|
||||
self.success_sets = {}
|
||||
self.next_sets = []
|
||||
|
||||
self.duplicate_lines = 0
|
||||
|
||||
nzo.direct_unpacker = self
|
||||
|
||||
def stop(self):
|
||||
@@ -176,10 +177,10 @@ class DirectUnpacker(threading.Thread):
|
||||
break
|
||||
|
||||
# Error? Let PP-handle it
|
||||
if linebuf.endswith(('ERROR: ', 'Cannot create', 'in the encrypted file', 'CRC failed',
|
||||
'checksum failed', 'You need to start extraction from a previous volume',
|
||||
'password is incorrect', 'Write error', 'checksum error',
|
||||
'start extraction from a previous volume')):
|
||||
if linebuf.endswith(('ERROR: ', 'Cannot create', 'in the encrypted file', 'CRC failed', 'checksum failed',
|
||||
'You need to start extraction from a previous volume', 'password is incorrect',
|
||||
'Write error', 'checksum error', 'start extraction from a previous volume'
|
||||
'Unexpected end of archive')):
|
||||
logging.info('Error in DirectUnpack of %s: %s', self.cur_setname, linebuf.strip())
|
||||
self.abort()
|
||||
|
||||
@@ -271,13 +272,16 @@ class DirectUnpacker(threading.Thread):
|
||||
logging.info('DirectUnpacked volume %s for %s', self.cur_volume, self.cur_setname)
|
||||
|
||||
# If lines did not change and we don't have the next volume, this download is missing files!
|
||||
# In rare occasions we can get stuck forever with repeating lines
|
||||
if last_volume_linebuf == linebuf:
|
||||
if not self.have_next_volume():
|
||||
if not self.have_next_volume() or self.duplicate_lines > 10:
|
||||
logging.info('DirectUnpack failed due to missing files %s', self.cur_setname)
|
||||
self.abort()
|
||||
else:
|
||||
logging.debug('Duplicate output line detected: "%s"', last_volume_linebuf)
|
||||
|
||||
self.duplicate_lines += 1
|
||||
else:
|
||||
self.duplicate_lines = 0
|
||||
last_volume_linebuf = linebuf
|
||||
|
||||
# Show the log
|
||||
@@ -398,20 +402,12 @@ class DirectUnpacker(threading.Thread):
|
||||
pass
|
||||
|
||||
# Now force kill and give it a bit of time
|
||||
self.active_instance.kill()
|
||||
time.sleep(0.2)
|
||||
|
||||
# Have to collect the return-code to avoid zombie
|
||||
# But it will block forever if the process is in special state.
|
||||
# That should never happen, but it can happen on broken unrar's
|
||||
if self.active_instance.poll():
|
||||
self.active_instance.communicate()
|
||||
else:
|
||||
# It is still running?!? This should never happen
|
||||
# Wait a little bit longer just to be sure..
|
||||
time.sleep(2.0)
|
||||
if not self.active_instance.poll():
|
||||
logging.warning(T('Unable to stop the unrar process.'))
|
||||
try:
|
||||
self.active_instance.kill()
|
||||
time.sleep(0.2)
|
||||
except AttributeError:
|
||||
# Already killed by the Quit command
|
||||
pass
|
||||
|
||||
# Wake up the thread
|
||||
with self.next_file_lock:
|
||||
|
||||
@@ -600,17 +600,17 @@ class Downloader(Thread):
|
||||
|
||||
else:
|
||||
if self.bandwidth_limit:
|
||||
bps = BPSMeter.do.get_bps()
|
||||
bps = BPSMeter.do.bps
|
||||
bps += bytes
|
||||
limit = self.bandwidth_limit
|
||||
if bps > limit:
|
||||
while BPSMeter.do.get_bps() > limit:
|
||||
while BPSMeter.do.bps > limit:
|
||||
time.sleep(0.05)
|
||||
BPSMeter.do.update()
|
||||
BPSMeter.do.update(server.id, bytes)
|
||||
|
||||
if nzo:
|
||||
nzo.update_download_stats(BPSMeter.do.get_bps(), server.id, bytes)
|
||||
nzo.update_download_stats(BPSMeter.do.bps, server.id, bytes)
|
||||
|
||||
if not done and nw.status_code != '222':
|
||||
if not nw.connected or nw.status_code == '480':
|
||||
|
||||
@@ -158,6 +158,7 @@ def cat_to_opts(cat, pp=None, script=None, priority=None):
|
||||
try:
|
||||
my_cat = config.get_categories()[cat]
|
||||
except KeyError:
|
||||
cat = '*'
|
||||
my_cat = def_cat
|
||||
|
||||
if pp is None:
|
||||
|
||||
@@ -33,7 +33,7 @@ from sabnzbd.encoding import TRANS, unicoder, platform_encode, deunicode
|
||||
import sabnzbd.utils.rarfile as rarfile
|
||||
from sabnzbd.misc import format_time_string, find_on_path, make_script_path, int_conv, \
|
||||
real_path, globber, globber_full, get_all_passwords, renamer, clip_path, calc_age, \
|
||||
long_path, remove_file, recursive_listdir, is_rarfile
|
||||
long_path, remove_file, recursive_listdir, is_rarfile, get_filename
|
||||
from sabnzbd.sorting import SeriesSorter
|
||||
import sabnzbd.cfg as cfg
|
||||
from sabnzbd.constants import Status
|
||||
@@ -759,7 +759,7 @@ def rar_extract_core(rarfile_path, numrars, one_folder, nzo, setname, extraction
|
||||
# unrar 3.x: "Encrypted file: CRC failed in oLKQfrcNVivzdzSG22a2xo7t001.part1.rar (password incorrect ?)"
|
||||
# unrar 4.x: "CRC failed in the encrypted file oLKQfrcNVivzdzSG22a2xo7t001.part1.rar. Corrupt file or wrong password."
|
||||
# unrar 5.x: "Checksum error in the encrypted file oLKQfrcNVivzdzSG22a2xo7t001.part1.rar. Corrupt file or wrong password."
|
||||
# unrar 5.01 : "The specified password is incorrect."
|
||||
# unrar 5.01: "The specified password is incorrect."
|
||||
m = re.search(r'encrypted file (.+)\. Corrupt file', line)
|
||||
if not m:
|
||||
# unrar 3.x syntax
|
||||
@@ -767,7 +767,7 @@ def rar_extract_core(rarfile_path, numrars, one_folder, nzo, setname, extraction
|
||||
if m:
|
||||
filename = TRANS(m.group(1)).strip()
|
||||
else:
|
||||
filename = os.path.split(rarfile_path)[1]
|
||||
filename = get_filename(rarfile_path)
|
||||
nzo.fail_msg = T('Unpacking failed, archive requires a password')
|
||||
msg = (u'[%s][%s] ' + T('Unpacking failed, archive requires a password')) % (setname, filename)
|
||||
nzo.set_unpack_info('Unpack', unicoder(msg))
|
||||
@@ -779,20 +779,20 @@ def rar_extract_core(rarfile_path, numrars, one_folder, nzo, setname, extraction
|
||||
if m:
|
||||
filename = TRANS(m.group(1)).strip()
|
||||
else:
|
||||
filename = '???'
|
||||
filename = get_filename(rarfile_path)
|
||||
nzo.fail_msg = T('Unusable RAR file')
|
||||
msg = ('[%s][%s] ' + T('Unusable RAR file')) % (setname, filename)
|
||||
nzo.set_unpack_info('Unpack', unicoder(msg))
|
||||
fail = 3
|
||||
|
||||
elif 'checksum error' in line:
|
||||
# Corrupt archive
|
||||
elif 'checksum error' in line or 'Unexpected end of archive' in line:
|
||||
# Corrupt archive or passworded, we can't know
|
||||
# packed data checksum error in volume FILE
|
||||
m = re.search(r'error in volume (.+)', line)
|
||||
if m:
|
||||
filename = TRANS(m.group(1)).strip()
|
||||
else:
|
||||
filename = '???'
|
||||
filename = get_filename(rarfile_path)
|
||||
nzo.fail_msg = T('Corrupt RAR file')
|
||||
msg = ('[%s][%s] ' + T('Corrupt RAR file')) % (setname, filename)
|
||||
nzo.set_unpack_info('Unpack', unicoder(msg))
|
||||
|
||||
@@ -722,11 +722,13 @@ class NzbQueue(object):
|
||||
""" Get next article for jobs in the queue
|
||||
Not locked for performance, since it only reads the queue
|
||||
"""
|
||||
# Pre-calculate propagation delay
|
||||
propagtion_delay = float(cfg.propagation_delay() * 60)
|
||||
for nzo in self.__nzo_list:
|
||||
# Not when queue paused and not a forced item
|
||||
if nzo.status not in (Status.PAUSED, Status.GRABBING) or nzo.priority == TOP_PRIORITY:
|
||||
# Check if past propagation delay, or forced
|
||||
if not cfg.propagation_delay() or nzo.priority == TOP_PRIORITY or (nzo.avg_stamp + float(cfg.propagation_delay() * 60)) < time.time():
|
||||
if not propagtion_delay or nzo.priority == TOP_PRIORITY or (nzo.avg_stamp + propagtion_delay) < time.time():
|
||||
if not nzo.server_in_try_list(server):
|
||||
article = nzo.get_article(server, servers)
|
||||
if article:
|
||||
|
||||
@@ -933,7 +933,6 @@ class NzbObject(TryList):
|
||||
# Raise error, so it's not added
|
||||
raise TypeError
|
||||
|
||||
@synchronized(NZO_LOCK)
|
||||
def update_download_stats(self, bps, serverid, bytes):
|
||||
if bps:
|
||||
self.avg_bps_total += bps / 1024
|
||||
@@ -1331,8 +1330,9 @@ class NzbObject(TryList):
|
||||
dif = int(self.url_wait - time.time() + 0.5)
|
||||
if dif > 0:
|
||||
prefix += T('WAIT %s sec') % dif + ' / ' # : Queue indicator for waiting URL fetch
|
||||
if (self.avg_stamp + float(cfg.propagation_delay() * 60)) > time.time() and self.priority != TOP_PRIORITY:
|
||||
wait_time = int((self.avg_stamp + float(cfg.propagation_delay() * 60) - time.time()) / 60 + 0.5)
|
||||
propagtion_delay = float(cfg.propagation_delay() * 60)
|
||||
if propagtion_delay and (self.avg_stamp + propagtion_delay) > time.time() and self.priority != TOP_PRIORITY:
|
||||
wait_time = int((self.avg_stamp + propagtion_delay - time.time()) / 60 + 0.5)
|
||||
prefix += T('PROPAGATING %s min') % wait_time + ' / ' # : Queue indicator while waiting for propagation of post
|
||||
return '%s%s' % (prefix, self.final_name)
|
||||
|
||||
@@ -1881,7 +1881,7 @@ class NzbObject(TryList):
|
||||
|
||||
# dupe check off nzb contents
|
||||
if no_dupes:
|
||||
res = history_db.have_md5sum(self.md5sum)
|
||||
res = history_db.have_name_or_md5sum(self.final_name, self.md5sum)
|
||||
logging.debug('Dupe checking NZB in history: filename=%s, md5sum=%s, result=%s', self.filename, self.md5sum, res)
|
||||
if not res and cfg.backup_for_duplicates():
|
||||
res = sabnzbd.backup_exists(self.filename)
|
||||
|
||||
@@ -349,7 +349,6 @@ class SABnzbdDelegate(NSObject):
|
||||
pnfo_list = qnfo.list
|
||||
|
||||
bytesleftprogess = 0
|
||||
bpsnow = BPSMeter.do.get_bps()
|
||||
self.info = ""
|
||||
|
||||
self.menu_queue = NSMenu.alloc().init()
|
||||
@@ -366,7 +365,7 @@ class SABnzbdDelegate(NSObject):
|
||||
bytesleftprogess += pnfo.bytes_left
|
||||
bytes = pnfo.bytes / MEBI
|
||||
nzo_id = pnfo.nzo_id
|
||||
timeleft = self.calc_timeleft_(bytesleftprogess, bpsnow)
|
||||
timeleft = self.calc_timeleft_(bytesleftprogess, BPSMeter.do.bps)
|
||||
|
||||
job = "%s\t(%d/%d MB) %s" % (filename, bytesleft, bytes, timeleft)
|
||||
menu_queue_item = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_(job, '', '')
|
||||
|
||||
@@ -131,7 +131,6 @@ def parse_par2_file_packet(f, header):
|
||||
nothing = None, None, None
|
||||
|
||||
if header != PAR_PKT_ID:
|
||||
print header
|
||||
return nothing
|
||||
|
||||
# Length must be multiple of 4 and at least 20
|
||||
|
||||
@@ -910,17 +910,28 @@ def get_last_line(txt):
|
||||
|
||||
|
||||
def remove_samples(path):
|
||||
""" Remove all files that match the sample pattern """
|
||||
""" Remove all files that match the sample pattern
|
||||
Skip deleting if it matches all files or there is only 1 file
|
||||
"""
|
||||
files_to_delete = []
|
||||
nr_files = 0
|
||||
for root, _dirs, files in os.walk(path):
|
||||
for file_ in files:
|
||||
if RE_SAMPLE.search(file_):
|
||||
path = os.path.join(root, file_)
|
||||
try:
|
||||
logging.info("Removing unwanted sample file %s", path)
|
||||
remove_file(path)
|
||||
except:
|
||||
logging.error(T('Removing %s failed'), clip_path(path))
|
||||
logging.info("Traceback: ", exc_info=True)
|
||||
for file_to_match in files:
|
||||
nr_files += 1
|
||||
if RE_SAMPLE.search(file_to_match):
|
||||
files_to_delete.append(os.path.join(root, file_to_match))
|
||||
|
||||
# Make sure we skip false-positives
|
||||
if 1 < len(files_to_delete) < nr_files:
|
||||
for path in files_to_delete:
|
||||
try:
|
||||
logging.info("Removing unwanted sample file %s", path)
|
||||
remove_file(path)
|
||||
except:
|
||||
logging.error(T('Removing %s failed'), clip_path(path))
|
||||
logging.info("Traceback: ", exc_info=True)
|
||||
else:
|
||||
logging.info("Skipping sample-removal, false-positive")
|
||||
|
||||
|
||||
def rename_and_collapse_folder(oldpath, newpath, files):
|
||||
|
||||
@@ -542,10 +542,10 @@ SKIN_TEXT = {
|
||||
'opt-rating_filter_downvoted' : TT('More thumbs down than up'),
|
||||
'opt-rating_filter_keywords' : TT('Title keywords'),
|
||||
'explain-rating_filter_keywords' : TT('Comma separated list'),
|
||||
'opt-load_balancing' : TT('Server load-balancing'),
|
||||
'no-load-balancing' : TT('Prevent load-balancing'),
|
||||
'load-balancing' : TT('Allow load-balancing'),
|
||||
'load-balancing-happy-eyeballs' : TT('Allow load-balancing with optimization for IPv6'),
|
||||
'opt-load_balancing' : TT('Server IP address selection'),
|
||||
'no-load-balancing' : TT('First IP address'),
|
||||
'load-balancing' : TT('Randomly selected IP address'),
|
||||
'load-balancing-happy-eyeballs' : TT('Quickest IP address, preferring IPv6'),
|
||||
'explain-load_balancing' : TT('Useful if a newsserver has more than one IPv4/IPv6 address'),
|
||||
|
||||
# Config->Server
|
||||
|
||||
@@ -190,7 +190,7 @@ class SysTrayIconThread(Thread):
|
||||
# Wrapper of win32api, timeout is in ms
|
||||
# We need to wait at least untill what user has defined as double click
|
||||
self.stop_click_timer()
|
||||
self.click_timer = timer.set_timer(win32gui.GetDoubleClickTime(), self.click)
|
||||
self.click_timer = timer.set_timer(win32gui.GetDoubleClickTime() * 2, self.click)
|
||||
return True
|
||||
|
||||
def show_menu(self):
|
||||
|
||||
@@ -4,5 +4,5 @@
|
||||
|
||||
# You MUST use double quotes (so " and not ')
|
||||
|
||||
__version__ = "2.3.8"
|
||||
__baseline__ = "0dd1f647d8b672c8a992fc986f9b2ab5000dbbea"
|
||||
__version__ = "2.3.9"
|
||||
__baseline__ = "03c10dce91e13918bc2e6f8ca9c309196b90be11"
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user