diff -Nru sabnzbdplus-0.7.10/ABOUT.txt sabnzbdplus-0.7.11/ABOUT.txt --- sabnzbdplus-0.7.10/ABOUT.txt 2013-01-31 21:08:00.000000000 +0000 +++ sabnzbdplus-0.7.11/ABOUT.txt 2013-02-07 19:32:54.000000000 +0000 @@ -1,5 +1,5 @@ ******************************************* -*** This is SABnzbd 0.7.10 *** +*** This is SABnzbd 0.7.11 *** ******************************************* SABnzbd is an open-source cross-platform binary newsreader. It simplifies the process of downloading from Usenet dramatically, diff -Nru sabnzbdplus-0.7.10/CHANGELOG.txt sabnzbdplus-0.7.11/CHANGELOG.txt --- sabnzbdplus-0.7.10/CHANGELOG.txt 2013-01-31 21:08:00.000000000 +0000 +++ sabnzbdplus-0.7.11/CHANGELOG.txt 2013-02-07 19:32:54.000000000 +0000 @@ -1,4 +1,11 @@ ------------------------------------------------------------------------------- + 0.7.11Final by The SABnzbd-Team +------------------------------------------------------------------------------- +- Bad articles from some servers were accepted as valid data +- Show warning when the decoder encounters I/O errors +- Generic Sort failed to rename files when an extra folder level was present in the RAR files +- Obfuscated file name support caused regular NZBs to verify slower +------------------------------------------------------------------------------- 0.7.10Final by The SABnzbd-Team ------------------------------------------------------------------------------- - Disable obsolete newzbin bookmark readout diff -Nru sabnzbdplus-0.7.10/INSTALL.txt sabnzbdplus-0.7.11/INSTALL.txt --- sabnzbdplus-0.7.10/INSTALL.txt 2013-01-31 21:08:00.000000000 +0000 +++ sabnzbdplus-0.7.11/INSTALL.txt 2013-02-07 19:32:54.000000000 +0000 @@ -1,4 +1,4 @@ - SABnzbd 0.7.10 + SABnzbd 0.7.11 ------------------------------------------------------------------------------- 0) LICENSE diff -Nru sabnzbdplus-0.7.10/PKG-INFO sabnzbdplus-0.7.11/PKG-INFO --- sabnzbdplus-0.7.10/PKG-INFO 2013-01-31 21:07:52.000000000 +0000 +++ sabnzbdplus-0.7.11/PKG-INFO 2013-02-07 19:32:45.000000000 +0000 @@ -1,7 +1,7 @@ Metadata-Version: 1.0 Name: SABnzbd -Version: 0.7.10 -Summary: SABnzbd-0.7.10 +Version: 0.7.11 +Summary: SABnzbd-0.7.11 Home-page: http://sabnzbd.org Author: The SABnzbd Team Author-email: team@sabnzbd.org diff -Nru sabnzbdplus-0.7.10/README.txt sabnzbdplus-0.7.11/README.txt --- sabnzbdplus-0.7.10/README.txt 2013-01-31 21:07:52.000000000 +0000 +++ sabnzbdplus-0.7.11/README.txt 2013-02-07 19:32:45.000000000 +0000 @@ -1,18 +1,11 @@ -Release Notes - SABnzbd 0.7.10 +Release Notes - SABnzbd 0.7.11 ================================ -## Features -- Try to repair rar/par sets with obfuscated names -- Display next RSS scan moment in Cfg->RSS ## Bug fixes -- Disable obsolete newzbin bookmark readout -- Show speed when downloading in Forced mode while paused -- Plush History icons repair and unpack were swapped -- Reset "today" byte counters at midnight even when idle -- An email about a failed should say that the download failed -- Report errors coming from fully encrypted rar files -- Accept %fn (as well as %fn.%ext) as end parameter in sorting strings. +- Obfuscated file name support causes regular multi-set NZBs to verify (much) slower +- Bad articles from some servers are accepted as valid data +- Generic Sort fails to rename files when an extra folder level is present in the RAR files ## What's new in 0.7.0 diff -Nru sabnzbdplus-0.7.10/debian/changelog sabnzbdplus-0.7.11/debian/changelog --- sabnzbdplus-0.7.10/debian/changelog 2013-02-07 22:36:16.000000000 +0000 +++ sabnzbdplus-0.7.11/debian/changelog 2013-02-07 22:36:17.000000000 +0000 @@ -1,3 +1,9 @@ +sabnzbdplus (0.7.11-0ubuntu1~jcfp1~maverick) maverick; urgency=low + + * New upstream release. + + -- JCF Ploemen (jcfp) Thu, 07 Feb 2013 22:36:40 +0100 + sabnzbdplus (0.7.10-0ubuntu1~jcfp1~maverick) maverick; urgency=low * New upstream release. diff -Nru sabnzbdplus-0.7.10/interfaces/Classic/README.TXT sabnzbdplus-0.7.11/interfaces/Classic/README.TXT --- sabnzbdplus-0.7.10/interfaces/Classic/README.TXT 2013-01-31 21:08:00.000000000 +0000 +++ sabnzbdplus-0.7.11/interfaces/Classic/README.TXT 2013-02-07 19:32:55.000000000 +0000 @@ -1,5 +1,5 @@ # -# Copyright 2008-2012 The SABnzbd-Team +# Copyright 2008-2013 The SABnzbd-Team # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License diff -Nru sabnzbdplus-0.7.10/interfaces/Plush/templates/_inc_modals.tmpl sabnzbdplus-0.7.11/interfaces/Plush/templates/_inc_modals.tmpl --- sabnzbdplus-0.7.10/interfaces/Plush/templates/_inc_modals.tmpl 2013-01-31 21:08:01.000000000 +0000 +++ sabnzbdplus-0.7.11/interfaces/Plush/templates/_inc_modals.tmpl 2013-02-07 19:32:56.000000000 +0000 @@ -10,7 +10,7 @@

SABnzbd $T('version'): $version

-

Copyright (C) 2008-2012, The SABnzbd Team <team@sabnzbd.org>

+

Copyright (C) 2008-2013, The SABnzbd Team <team@sabnzbd.org>

$T('yourRights')

diff -Nru sabnzbdplus-0.7.10/interfaces/Plush/templates/static/javascripts/plush.js sabnzbdplus-0.7.11/interfaces/Plush/templates/static/javascripts/plush.js --- sabnzbdplus-0.7.10/interfaces/Plush/templates/static/javascripts/plush.js 2013-01-31 21:08:01.000000000 +0000 +++ sabnzbdplus-0.7.11/interfaces/Plush/templates/static/javascripts/plush.js 2013-02-07 19:32:56.000000000 +0000 @@ -8,7 +8,7 @@ // *************************************************************** // Plush defaults - refreshRate: $.cookie('plushRefreshRate') ? $.cookie('plushRefreshRate') : 30, // refresh rate in seconds + refreshRate: $.cookie('plushRefreshRate') ? $.cookie('plushRefreshRate') : 4, // refresh rate in seconds containerWidth: $.cookie('plushContainerWidth') ? $.cookie('plushContainerWidth') : '100%', // width of all elements on page queuePerPage: $.cookie('plushQueuePerPage') ? $.cookie('plushQueuePerPage') : 5, // pagination - nzbs per page histPerPage: $.cookie('plushHistPerPage') ? $.cookie('plushHistPerPage') : 5, // pagination - nzbs per page @@ -16,7 +16,7 @@ confirmDeleteHistory: $.cookie('plushConfirmDeleteHistory') == 0 ? false : true, // confirm history nzb removal blockRefresh: $.cookie('plushBlockRefresh') == 0 ? false : true, // prevent refreshing when hovering queue failedOnly: $.cookie('plushFailedOnly') == 1 ? 1 : 0, // prevent refreshing when hovering queue - multiOps: $.cookie('plushMultiOps') == 1 ? true : false, // is multi-operations menu visible in queue + multiOps: $.cookie('plushMultiOps') == 0 ? false : true, // is multi-operations menu visible in queue noTopMenu: $.cookie('plushNoTopMenu') == 1 ? false : true, // is top menu visible multiOpsChecks: null, Binary files /tmp/CY4Sh83VGn/sabnzbdplus-0.7.10/locale/da/LC_MESSAGES/SABnzbd.mo and /tmp/aGvTbN2wHn/sabnzbdplus-0.7.11/locale/da/LC_MESSAGES/SABnzbd.mo differ Binary files /tmp/CY4Sh83VGn/sabnzbdplus-0.7.10/locale/es/LC_MESSAGES/SABnzbd.mo and /tmp/aGvTbN2wHn/sabnzbdplus-0.7.11/locale/es/LC_MESSAGES/SABnzbd.mo differ diff -Nru sabnzbdplus-0.7.10/po/main/da.po sabnzbdplus-0.7.11/po/main/da.po --- sabnzbdplus-0.7.10/po/main/da.po 2013-01-31 21:07:54.000000000 +0000 +++ sabnzbdplus-0.7.11/po/main/da.po 2013-02-07 19:32:46.000000000 +0000 @@ -14,8 +14,8 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-01-29 05:39+0000\n" -"X-Generator: Launchpad (build 16451)\n" +"X-Launchpad-Export-Date: 2013-01-30 04:51+0000\n" +"X-Generator: Launchpad (build 16455)\n" #: SABnzbd.py:303 [Error message] msgid "Failed to start web-interface" diff -Nru sabnzbdplus-0.7.10/po/main/es.po sabnzbdplus-0.7.11/po/main/es.po --- sabnzbdplus-0.7.10/po/main/es.po 2013-01-31 21:07:54.000000000 +0000 +++ sabnzbdplus-0.7.11/po/main/es.po 2013-02-07 19:32:46.000000000 +0000 @@ -14,8 +14,8 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-01-29 05:39+0000\n" -"X-Generator: Launchpad (build 16451)\n" +"X-Launchpad-Export-Date: 2013-01-30 04:51+0000\n" +"X-Generator: Launchpad (build 16455)\n" #: SABnzbd.py:303 [Error message] msgid "Failed to start web-interface" diff -Nru sabnzbdplus-0.7.10/sabnzbd/decoder.py sabnzbdplus-0.7.11/sabnzbd/decoder.py --- sabnzbdplus-0.7.10/sabnzbd/decoder.py 2013-01-31 21:08:01.000000000 +0000 +++ sabnzbdplus-0.7.11/sabnzbd/decoder.py 2013-02-07 19:32:59.000000000 +0000 @@ -105,7 +105,9 @@ found = True except IOError, e: logme = Ta('Decoding %s failed') % art_id - logging.info(logme) + logging.warning(logme) + logging.info("Traceback: ", exc_info = True) + sabnzbd.downloader.Downloader.do.pause() article.fetcher = None @@ -262,7 +264,10 @@ except IndexError: raise BadYenc() - decoded_data = '\r\n'.join(data) + if found: + decoded_data = '\r\n'.join(data) + else: + raise BadYenc() #Deal with yenc encoded posts elif (ybegin and yend): diff -Nru sabnzbdplus-0.7.10/sabnzbd/misc.py sabnzbdplus-0.7.11/sabnzbd/misc.py --- sabnzbdplus-0.7.10/sabnzbd/misc.py 2013-01-31 21:08:01.000000000 +0000 +++ sabnzbdplus-0.7.11/sabnzbd/misc.py 2013-02-07 19:32:59.000000000 +0000 @@ -73,8 +73,10 @@ #------------------------------------------------------------------------------ def globber(path, pattern='*'): """ Do a glob.glob(), disabling the [] pattern in 'path' """ - return glob.glob(os.path.join(path, pattern).replace('[', '[[]')) - + if pattern: + return glob.glob(os.path.join(path, pattern).replace('[', '[[]')) + else: + return glob.glob(path.replace('[', '[[]')) #------------------------------------------------------------------------------ def cat_to_opts(cat, pp=None, script=None, priority=None): diff -Nru sabnzbdplus-0.7.10/sabnzbd/newsunpack.py sabnzbdplus-0.7.11/sabnzbd/newsunpack.py --- sabnzbdplus-0.7.10/sabnzbd/newsunpack.py 2013-01-31 21:08:01.000000000 +0000 +++ sabnzbdplus-0.7.11/sabnzbd/newsunpack.py 2013-02-07 19:32:59.000000000 +0000 @@ -949,7 +949,7 @@ # Append the wildcard for this set wildcard = '%s*' % os.path.join(os.path.split(parfile)[0], setname) - if len(globber(wildcard)) < 2: + if len(globber(wildcard, None)) < 2: # Support bizarre naming conventions wildcard = os.path.join(os.path.split(parfile)[0], '*') command.append(wildcard) diff -Nru sabnzbdplus-0.7.10/sabnzbd/postproc.py sabnzbdplus-0.7.11/sabnzbd/postproc.py --- sabnzbdplus-0.7.10/sabnzbd/postproc.py 2013-01-31 21:08:01.000000000 +0000 +++ sabnzbdplus-0.7.11/sabnzbd/postproc.py 2013-02-07 19:32:59.000000000 +0000 @@ -390,14 +390,17 @@ if not nzb_list: ## Give destination its final name if cfg.folder_rename() and tmp_workdir_complete and not one_folder: - if not all_ok: + if all_ok: + try: + newfiles = rename_and_collapse_folder(tmp_workdir_complete, workdir_complete, newfiles) + except: + logging.error(Ta('Error renaming "%s" to "%s"'), tmp_workdir_complete, workdir_complete) + logging.info('Traceback: ', exc_info = True) + # Better disable sorting because filenames are all off now + file_sorter.sort_file = None + else: workdir_complete = tmp_workdir_complete.replace('_UNPACK_', '_FAILED_') workdir_complete = get_unique_path(workdir_complete, n=0, create_dir=False) - try: - collapse_folder(tmp_workdir_complete, workdir_complete) - except: - logging.error(Ta('Error renaming "%s" to "%s"'), tmp_workdir_complete, workdir_complete) - logging.info("Traceback: ", exc_info = True) if empty: job_result = -1 @@ -750,9 +753,10 @@ #------------------------------------------------------------------------------ -def collapse_folder(oldpath, newpath): +def rename_and_collapse_folder(oldpath, newpath, files): """ Rename folder, collapsing when there's just a single subfolder oldpath --> newpath OR oldpath/subfolder --> newpath + Modify list of filenames accordingly """ orgpath = oldpath items = globber(oldpath) @@ -763,11 +767,16 @@ logging.info('Collapsing %s', os.path.join(newpath, folder)) oldpath = folder_path + oldpath = os.path.normpath(oldpath) + newpath = os.path.normpath(newpath) + files = [os.path.normpath(f).replace(oldpath, newpath) for f in files] + renamer(oldpath, newpath) try: remove_dir(orgpath) except: pass + return files #------------------------------------------------------------------------------ diff -Nru sabnzbdplus-0.7.10/sabnzbd/tvsort.py sabnzbdplus-0.7.11/sabnzbd/tvsort.py --- sabnzbdplus-0.7.10/sabnzbd/tvsort.py 2013-01-31 21:08:01.000000000 +0000 +++ sabnzbdplus-0.7.11/sabnzbd/tvsort.py 2013-02-07 19:32:59.000000000 +0000 @@ -403,9 +403,9 @@ def to_filepath(f, current_path): if is_full_path(f): - filepath = f.replace('_UNPACK_', '') + filepath = os.path.normpath(f) else: - filepath = os.path.join(current_path, f) + filepath = os.path.normpath(os.path.join(current_path, f)) return filepath # Create a generator of filepaths, ignore sample files and excluded files (vobs ect) @@ -657,9 +657,9 @@ logging.debug("Renaming Generic file") def filter_files(_file, current_path): if is_full_path(_file): - filepath = _file.replace('_UNPACK_', '') + filepath = os.path.normpath(_file) else: - filepath = os.path.join(current_path, _file) + filepath = os.path.normpath(os.path.join(current_path, _file)) if os.path.exists(filepath): size = os.stat(filepath).st_size if size >= cfg.movie_rename_limit.get_int() and not RE_SAMPLE.search(_file) \ @@ -675,9 +675,9 @@ if length == 1: file = files[0] if is_full_path(file): - filepath = file.replace('_UNPACK_', '') + filepath = os.path.normpath(file) else: - filepath = os.path.join(current_path, file) + filepath = os.path.normpath(os.path.join(current_path, file)) if os.path.exists(filepath): self.fname, ext = os.path.splitext(os.path.split(file)[1]) newname = "%s%s" % (self.filename_set, ext) @@ -881,9 +881,9 @@ #find the master file to rename for file in files: if is_full_path(file): - filepath = file.replace('_UNPACK_', '') + filepath = os.path.normpath(file) else: - filepath = os.path.join(current_path, file) + filepath = os.path.normpath(os.path.join(current_path, file)) if os.path.exists(filepath): size = os.stat(filepath).st_size diff -Nru sabnzbdplus-0.7.10/sabnzbd/version.py sabnzbdplus-0.7.11/sabnzbd/version.py --- sabnzbdplus-0.7.10/sabnzbd/version.py 2013-01-31 21:08:01.000000000 +0000 +++ sabnzbdplus-0.7.11/sabnzbd/version.py 2013-02-07 19:32:59.000000000 +0000 @@ -4,5 +4,5 @@ # You MUST use double quotes (so " and not ') -__version__ = "0.7.10" -__baseline__ = "e4de2d626dcb55d4216545f6ed350b2b7783ec30" +__version__ = "0.7.11" +__baseline__ = "a50412a32751f4d1d555020dea20a2da43d6a309"