Browse Source

Merge branch '2.3.x'

tags/2.3.9
Safihre 6 years ago
parent
commit
89996482a1
  1. 1
      .travis.yml
  2. 2
      ABOUT.txt
  3. 2
      INSTALL.txt
  4. 4
      PKG-INFO
  5. 29
      README.mkd
  6. 12
      SABnzbd.py
  7. 2
      interfaces/Glitter/templates/queue.tmpl
  8. 8
      interfaces/Glitter/templates/static/javascripts/glitter.main.js
  9. BIN
      osx/unrar/unrar
  10. 20
      po/main/SABnzbd.pot
  11. 30
      po/main/da.po
  12. 30
      po/main/de.po
  13. 30
      po/main/es.po
  14. 30
      po/main/fi.po
  15. 32
      po/main/fr.po
  16. 32
      po/main/he.po
  17. 30
      po/main/nb.po
  18. 34
      po/main/nl.po
  19. 30
      po/main/pl.po
  20. 30
      po/main/pt_BR.po
  21. 30
      po/main/ro.po
  22. 22
      po/main/ru.po
  23. 30
      po/main/sr.po
  24. 30
      po/main/sv.po
  25. 30
      po/main/zh_CN.po
  26. 10
      sabnzbd/api.py
  27. 3
      sabnzbd/bpsmeter.py
  28. 18
      sabnzbd/database.py
  29. 3
      sabnzbd/decoder.py
  30. 38
      sabnzbd/directunpacker.py
  31. 6
      sabnzbd/downloader.py
  32. 1
      sabnzbd/misc.py
  33. 14
      sabnzbd/newsunpack.py
  34. 4
      sabnzbd/nzbqueue.py
  35. 8
      sabnzbd/nzbstuff.py
  36. 3
      sabnzbd/osxmenu.py
  37. 1
      sabnzbd/par2file.py
  38. 31
      sabnzbd/postproc.py
  39. 8
      sabnzbd/skintext.py
  40. 2
      sabnzbd/utils/systrayiconthread.py
  41. 4
      sabnzbd/version.py
  42. BIN
      win/par2/multipar/par2j.exe
  43. BIN
      win/par2/multipar/par2j64.exe
  44. BIN
      win/unrar/UnRAR.exe
  45. BIN
      win/unrar/x64/UnRAR.exe

1
.travis.yml

@ -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=

2
ABOUT.txt

@ -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,

2
INSTALL.txt

@ -1,4 +1,4 @@
SABnzbd 2.3.8
SABnzbd 2.3.9
-------------------------------------------------------------------------------
0) LICENSE

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

@ -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

@ -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())

2
interfaces/Glitter/templates/queue.tmpl

@ -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)#-->

8
interfaces/Glitter/templates/static/javascripts/glitter.main.js

@ -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

Binary file not shown.

20
po/main/SABnzbd.pot

@ -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"
@ -413,10 +413,6 @@ 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
@ -4155,10 +4151,6 @@ msgid "Optionally specify a filename"
msgstr ""
#: sabnzbd/skintext.py
msgid "Formats: .nzb, .rar, .zip, .gz, .bz2"
msgstr ""
#: sabnzbd/skintext.py
msgid "Submit"
msgstr ""

30
po/main/da.po

@ -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]
@ -442,10 +442,6 @@ 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"
@ -4452,10 +4448,6 @@ 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"

30
po/main/de.po

@ -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"
@ -458,10 +458,6 @@ 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"
@ -4563,10 +4559,6 @@ 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"

30
po/main/es.po

@ -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"
@ -440,10 +440,6 @@ 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"
@ -4468,10 +4464,6 @@ 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"

30
po/main/fi.po

@ -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"
@ -439,10 +439,6 @@ 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"
@ -4460,10 +4456,6 @@ 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ä"

32
po/main/fr.po

@ -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"
@ -460,10 +460,6 @@ 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"
@ -4577,10 +4573,6 @@ 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"

32
po/main/he.po

@ -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"
@ -433,10 +433,6 @@ 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"
@ -4426,10 +4422,6 @@ 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 "הגש"

30
po/main/nb.po

@ -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"
@ -435,10 +435,6 @@ 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"
@ -4419,10 +4415,6 @@ 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"

34
po/main/nl.po

@ -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"
@ -453,10 +453,6 @@ 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"
@ -4521,10 +4517,6 @@ 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"

30
po/main/pl.po

@ -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"
@ -435,10 +435,6 @@ 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"
@ -4436,10 +4432,6 @@ 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"

30
po/main/pt_BR.po

@ -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"
@ -437,10 +437,6 @@ 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"
@ -4435,10 +4431,6 @@ 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"

30
po/main/ro.po

@ -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"
@ -439,10 +439,6 @@ 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"
@ -4435,10 +4431,6 @@ 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"

22
po/main/ru.po

@ -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]
@ -428,10 +428,6 @@ 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
@ -4416,10 +4412,6 @@ msgid "Optionally specify a filename"
msgstr "Имя файла (необязательно)"
#: sabnzbd/skintext.py
msgid "Formats: .nzb, .rar, .zip, .gz, .bz2"
msgstr ""
#: sabnzbd/skintext.py
msgid "Submit"
msgstr ""

30
po/main/sr.po

@ -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"
@ -432,10 +432,6 @@ 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"
@ -4403,10 +4399,6 @@ 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 "Пошаљи"

30
po/main/sv.po

@ -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"
@ -433,10 +433,6 @@ 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"
@ -4417,10 +4413,6 @@ 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"

30
po/main/zh_CN.po

@ -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"
@ -427,10 +427,6 @@ 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"
@ -4343,10 +4339,6 @@ 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 "提交"

10
sabnzbd/api.py

@ -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

3
sabnzbd/bpsmeter.py

@ -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()

18
sabnzbd/database.py

@ -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)

3
sabnzbd/decoder.py

@ -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

38
sabnzbd/directunpacker.py

@ -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:

6
sabnzbd/downloader.py

@ -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':

1
sabnzbd/misc.py

@ -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:

14
sabnzbd/newsunpack.py

@ -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))

4
sabnzbd/nzbqueue.py

@ -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:

8
sabnzbd/nzbstuff.py

@ -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)

3
sabnzbd/osxmenu.py

@ -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, '', '')

1
sabnzbd/par2file.py

@ -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

31
sabnzbd/postproc.py

@ -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):

8
sabnzbd/skintext.py

@ -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

2
sabnzbd/utils/systrayiconthread.py

@ -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
sabnzbd/version.py

@ -4,5 +4,5 @@
# You MUST use double quotes (so " and not ')
__version__ = "2.3.8"
__baseline__ = "0dd1f647d8b672c8a992fc986f9b2ab5000dbbea"
__version__ = "2.3.9"
__baseline__ = "unknown"

BIN
win/par2/multipar/par2j.exe

Binary file not shown.

BIN
win/par2/multipar/par2j64.exe

Binary file not shown.

BIN
win/unrar/UnRAR.exe

Binary file not shown.

BIN
win/unrar/x64/UnRAR.exe

Binary file not shown.
Loading…
Cancel
Save