mirror of
https://github.com/sabnzbd/sabnzbd.git
synced 2026-02-01 03:12:22 -05:00
Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
927ba3cd9d | ||
|
|
6296fc1762 | ||
|
|
60fbe44724 | ||
|
|
29e45da431 | ||
|
|
d82e69eef4 | ||
|
|
8c7d557252 | ||
|
|
7548d9e975 |
@@ -1,5 +1,5 @@
|
||||
*******************************************
|
||||
*** 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,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
SABnzbd 1.0.2
|
||||
SABnzbd 1.0.3
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
0) LICENSE
|
||||
|
||||
4
PKG-INFO
4
PKG-INFO
@@ -1,7 +1,7 @@
|
||||
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
|
||||
|
||||
@@ -1,6 +1,13 @@
|
||||
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__ = "0.8.x"
|
||||
__version__ = "1.0.x"
|
||||
__baseline__ = "unknown"
|
||||
|
||||
Reference in New Issue
Block a user