Commit 1a96dd5b authored by SVN-Git Migration's avatar SVN-Git Migration

Imported Upstream version 1.0.3+dfsg

parent 9cbf5972
*******************************************
*** This is SABnzbd 1.0.2 ***
*** This is SABnzbd 1.0.3 ***
*******************************************
SABnzbd is an open-source cross-platform binary newsreader.
It simplifies the process of downloading from Usenet dramatically,
......
SABnzbd 1.0.2
SABnzbd 1.0.3
-------------------------------------------------------------------------------
0) LICENSE
......
Metadata-Version: 1.0
Name: SABnzbd
Version: 1.0.2
Summary: SABnzbd-1.0.2
Version: 1.0.3
Summary: SABnzbd-1.0.3
Home-page: http://sabnzbd.org
Author: The SABnzbd Team
Author-email: team@sabnzbd.org
......
Release Notes - SABnzbd 1.0.2
Release Notes - SABnzbd 1.0.3
===============================
## Bugfixes in 1.0.3
- Fix jobs hanging at 99% or 100%
- Support X-DNZB-PASSWORD header for inders that use this
- Prevent fatal "too many connections" issue
- Show checksum errors reported by unrar
- Windows: fix coupling of NZB files to SABnzbd, when the name contains non-US-ASCII characters
## Bugfixes in 1.0.2
- Fix hangups at 100% when QuickCheck is off and "all-pars" is on
- Fix handling of "too many connections" for some Usenet servers
......
......@@ -571,7 +571,7 @@ class Downloader(Thread):
ecode = msg[:3]
display_msg = ' [%s]' % msg
logging.debug('Server login problem: %s, %s', ecode, msg)
if ecode in ('502', '481', '400') and clues_too_many(msg):
if ecode in ('502', '400', '481', '482') and clues_too_many(msg):
# Too many connections: remove this thread and reduce thread-setting for server
# Plan to go back to the full number after a penalty timeout
if server.active:
......@@ -580,7 +580,7 @@ class Downloader(Thread):
self.__reset_nw(nw, None, warn=False, destroy=True, quit=True)
self.plan_server(server.id, _PENALTY_TOOMANY)
server.threads -= 1
elif ecode in ('502', '481') and clues_too_many_ip(msg):
elif ecode in ('502', '481', '482') and clues_too_many_ip(msg):
# Account sharing?
if server.active:
server.errormsg = T('Probable account sharing') + display_msg
......
......@@ -506,6 +506,9 @@ def rar_extract(rarfile, numrars, one_folder, nzo, setname, extraction_path):
passwords = [nzo.password.strip()]
else:
passwords = []
pw = nzo.nzo_info.get('password')
if pw:
passwords.append(pw)
# Append meta passwords, to prevent changing the original list
passwords.extend(nzo.meta.get('password', []))
if passwords:
......@@ -715,6 +718,19 @@ def rar_extract_core(rarfile, numrars, one_folder, nzo, setname, extraction_path
nzo.set_unpack_info('Unpack', unicoder(msg), set=setname)
fail = 3
elif 'checksum error' in line:
# Corrupt archive
# 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 = '???'
nzo.fail_msg = T('Corrupt RAR file')
msg = ('[%s][%s] ' + T('Corrupt RAR file')) % (setname, filename)
nzo.set_unpack_info('Unpack', unicoder(msg), set=setname)
fail = 3
else:
m = re.search(r'^(Extracting|Creating|...)\s+(.*?)\s+OK\s*$', line)
if m:
......
......@@ -897,9 +897,10 @@ class NzbObject(TryList):
def remove_nzf(self, nzf):
if nzf in self.files:
self.files.remove(nzf)
if nzf not in self.finished_files:
self.finished_files.append(nzf)
nzf.import_finished = True
nzf.deleted = True
nzf.import_finished = True
nzf.deleted = True
return not bool(self.files)
def reset_all_try_lists(self):
......@@ -1136,7 +1137,7 @@ class NzbObject(TryList):
self.unwanted_ext = 2
def add_parfile(self, parfile):
if parfile not in self.files:
if not parfile.completed and parfile not in self.files:
self.files.append(parfile)
if parfile.extrapars and parfile in parfile.extrapars:
parfile.extrapars.remove(parfile)
......
......@@ -160,6 +160,8 @@ class URLGrabber(Thread):
nzo_info['failure'] = value
elif item == 'x-dnzb-details':
nzo_info['details'] = value
elif item == 'x-dnzb-password':
nzo_info['password'] = value
elif item == 'retry-after':
# For NZBFinder
wait = misc.int_conv(value)
......
......@@ -23,6 +23,7 @@ import urllib2
import urllib
import logging
import os
from sabnzbd.encoding import unicoder
import sabnzbd.cfg as cfg
from sabnzbd.misc import get_ext, get_filename
import sabnzbd.newsunpack
......@@ -34,6 +35,7 @@ from sabnzbd.dirscanner import ProcessArchiveFile, ProcessSingleFile
def upload_file(url, fp):
""" Function for uploading nzbs to a running sabnzbd instance """
try:
fp = unicoder(fp).encode('utf-8')
fp = urllib.quote_plus(fp)
url = '%s&mode=addlocalfile&name=%s' % (url, fp)
# Add local apikey if it wasn't already in the registered URL
......
......@@ -4,5 +4,5 @@
# You MUST use double quotes (so " and not ')
__version__ = "1.0.2"
__baseline__ = "b7e2bd96844d85623458ea5ad02432becdb199e5"
__version__ = "1.0.3"
__baseline__ = "927ba3cd9d330a74fbdfc8d926f9cbc6aee764af"
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment