diff --git a/SABnzbd.py b/SABnzbd.py index 57da14f..bcdf773 100755 --- a/SABnzbd.py +++ b/SABnzbd.py @@ -96,7 +96,7 @@ import sabnzbd.scheduler as scheduler import sabnzbd.config as config import sabnzbd.cfg import sabnzbd.downloader -from sabnzbd.encoding import unicoder, latin1, deunicode +from sabnzbd.encoding import unicoder, deunicode import sabnzbd.growler as growler import sabnzbd.zconfig @@ -325,7 +325,7 @@ def daemonize(): def Bail_Out(browserhost, cherryport, err=''): """Abort program because of CherryPy troubles """ - logging.error(Ta('Failed to start web-interface') + ' : ' + str(err)) + logging.error(T('Failed to start web-interface') + ' : ' + str(err)) if not sabnzbd.DAEMON: if '13' in err: panic_xport(browserhost, cherryport) @@ -363,7 +363,7 @@ def Web_Template(key, defweb, wdir): if defweb == DEF_STDCONFIG: return '' # end temp fix - logging.warning(Ta('Cannot find web template: %s, trying standard template'), full_main) + logging.warning(T('Cannot find web template: %s, trying standard template'), full_main) full_dir = real_path(sabnzbd.DIR_INTERFACES, DEF_STDINTF) full_main = real_path(full_dir, DEF_MAIN_TMPL) if not os.path.exists(full_main): @@ -489,14 +489,14 @@ def print_modules(): logging.info("_yenc module... found!") else: if hasattr(sys, "frozen"): - logging.error(Ta('_yenc module... NOT found!')) + logging.error(T('_yenc module... NOT found!')) else: logging.info("_yenc module... NOT found!") if sabnzbd.newsunpack.PAR2_COMMAND: logging.info("par2 binary... found (%s)", sabnzbd.newsunpack.PAR2_COMMAND) else: - logging.error(Ta('par2 binary... NOT found!')) + logging.error(T('par2 binary... NOT found!')) if sabnzbd.newsunpack.PAR2C_COMMAND: logging.info("par2-classic binary... found (%s)", sabnzbd.newsunpack.PAR2C_COMMAND) @@ -504,17 +504,17 @@ def print_modules(): if sabnzbd.newsunpack.RAR_COMMAND: logging.info("unrar binary... found (%s)", sabnzbd.newsunpack.RAR_COMMAND) else: - logging.warning(Ta('unrar binary... NOT found')) + logging.warning(T('unrar binary... NOT found')) if sabnzbd.newsunpack.ZIP_COMMAND: logging.info("unzip binary... found (%s)", sabnzbd.newsunpack.ZIP_COMMAND) else: - if sabnzbd.cfg.enable_unzip(): logging.warning(Ta('unzip binary... NOT found!')) + if sabnzbd.cfg.enable_unzip(): logging.warning(T('unzip binary... NOT found!')) if sabnzbd.newsunpack.SEVEN_COMMAND: logging.info("7za binary... found (%s)", sabnzbd.newsunpack.SEVEN_COMMAND) else: - if sabnzbd.cfg.enable_7zip(): logging.warning(Ta('7za binary... NOT found!')) + if sabnzbd.cfg.enable_7zip(): logging.warning(T('7za binary... NOT found!')) if not sabnzbd.WIN32: if sabnzbd.newsunpack.NICE_COMMAND: @@ -667,7 +667,7 @@ def get_webhost(cherryhost, cherryport, https_port): logging.info("IPV6 has priority on this system, potential Firefox issue") if ipv6 and ipv4 and cherryhost == '' and sabnzbd.WIN32: - logging.warning(Ta('Please be aware the 0.0.0.0 hostname will need an IPv6 address for external access')) + logging.warning(T('Please be aware the 0.0.0.0 hostname will need an IPv6 address for external access')) if cherryhost == 'localhost' and not sabnzbd.WIN32 and not sabnzbd.DARWIN: # On the Ubuntu family, localhost leads to problems for CherryPy @@ -697,7 +697,7 @@ def get_webhost(cherryhost, cherryport, https_port): if cherryport == https_port and sabnzbd.cfg.enable_https(): sabnzbd.cfg.enable_https.set(False) # Should have a translated message, but that's not available yet - #logging.error(Ta('HTTP and HTTPS ports cannot be the same')) + #logging.error(T('HTTP and HTTPS ports cannot be the same')) logging.error('HTTP and HTTPS ports cannot be the same') return cherryhost, cherryport, browserhost, https_port @@ -1418,7 +1418,7 @@ def main(): create_https_certificates(https_cert, https_key) if not (os.path.exists(https_cert) and os.path.exists(https_key)): - logging.warning(Ta('Disabled HTTPS because of missing CERT and KEY files')) + logging.warning(T('Disabled HTTPS because of missing CERT and KEY files')) enable_https = False # Determine if this system has multiple definitions for 'localhost' @@ -1871,9 +1871,9 @@ if __name__ == '__main__': args = [] for txt in sys.argv: if ' ' in txt: - txt = '"%s"' % latin1(txt) + txt = '"%s"' % unicoder(txt) else: - txt = latin1(txt) + txt = unicoder(txt) args.append(txt) sabnzbd.CMDLINE = ' '.join(args) diff --git a/sabnzbd/__init__.py b/sabnzbd/__init__.py index a0a7309..27c3e34 100644 --- a/sabnzbd/__init__.py +++ b/sabnzbd/__init__.py @@ -169,7 +169,7 @@ def sig_handler(signum = None, frame = None): # Ignore the "logoff" event when running as a Win32 daemon return True if type(signum) != type(None): - logging.warning(Ta('Signal %s caught, saving and exiting...'), signum) + logging.warning(T('Signal %s caught, saving and exiting...'), signum) try: save_state(flag=True) sabnzbd.zconfig.remove_server() @@ -599,7 +599,7 @@ def add_nzbfile(nzbfile, pp=None, script=None, cat=None, priority=NORMAL_PRIORIT os.write(f, nzbfile.file.read()) os.close(f) except: - logging.error(Ta('Cannot create temp file for %s'), filename) + logging.error(T('Cannot create temp file for %s'), filename) logging.info("Traceback: ", exc_info = True) if ext.lower() in VALID_ARCHIVES: @@ -616,7 +616,7 @@ def enable_server(server): try: config.get_config('servers', server).enable.set(1) except: - logging.warning(Ta('Trying to set status of non-existing server %s'), server) + logging.warning(T('Trying to set status of non-existing server %s'), server) return config.save_config() Downloader.do.update_server(server, server) @@ -628,7 +628,7 @@ def disable_server(server): try: config.get_config('servers', server).enable.set(0) except: - logging.warning(Ta('Trying to set status of non-existing server %s'), server) + logging.warning(T('Trying to set status of non-existing server %s'), server) return config.save_config() Downloader.do.update_server(server, server) @@ -769,7 +769,7 @@ def CheckFreeSpace(): """ if cfg.download_free() and not sabnzbd.downloader.Downloader.do.paused: if misc.diskfree(cfg.download_dir.get_path()) < cfg.download_free.get_float() / GIGI: - logging.warning(Ta('Too little diskspace forcing PAUSE')) + logging.warning(T('Too little diskspace forcing PAUSE')) # Pause downloader, but don't save, since the disk is almost full! Downloader.do.pause(save=False) emailer.diskfull() @@ -795,7 +795,7 @@ def get_new_id(prefix, folder, check_list=None): if not check_list or tail not in check_list: return tail except: - logging.error(Ta('Failure in tempfile.mkstemp')) + logging.error(T('Failure in tempfile.mkstemp')) logging.info("Traceback: ", exc_info = True) # Cannot create unique id, crash the process raise IOError @@ -825,7 +825,7 @@ def save_data(data, _id, path, do_pickle = True, silent=False): _f.flush() _f.close() except: - logging.error(Ta('Saving %s failed'), path) + logging.error(T('Saving %s failed'), path) logging.info("Traceback: ", exc_info = True) @@ -855,7 +855,7 @@ def load_data(_id, path, remove=True, do_pickle=True, silent=False): if remove: os.remove(path) except: - logging.error(Ta('Loading %s failed'), path) + logging.error(T('Loading %s failed'), path) logging.info("Traceback: ", exc_info = True) return None @@ -896,7 +896,7 @@ def save_admin(data, _id, do_pickle=True): _f.flush() _f.close() except: - logging.error(Ta('Saving %s failed'), path) + logging.error(T('Saving %s failed'), path) logging.info("Traceback: ", exc_info = True) @@ -922,7 +922,7 @@ def load_admin(_id, remove=False, do_pickle=True): os.remove(path) except: excepterror = str(sys.exc_info()[0]) - logging.error(Ta('Loading %s failed with error %s'), path, excepterror) + logging.error(T('Loading %s failed with error %s'), path, excepterror) logging.info("Traceback: ", exc_info = True) return None diff --git a/sabnzbd/api.py b/sabnzbd/api.py index ea0a965..b184cb5 100644 --- a/sabnzbd/api.py +++ b/sabnzbd/api.py @@ -1620,7 +1620,7 @@ def build_header(prim, webdir='', search=None): header['speedlimit'] = "%s" % speed_limit header['restart_req'] = sabnzbd.RESTART_REQ header['have_warnings'] = str(sabnzbd.GUIHANDLER.count()) - header['last_warning'] = sabnzbd.GUIHANDLER.last().replace('WARNING', Ta('WARNING:')).replace('ERROR', Ta('ERROR:')) + header['last_warning'] = sabnzbd.GUIHANDLER.last().replace('WARNING', ('WARNING:')).replace('ERROR', T('ERROR:')) header['active_lang'] = cfg.language() header['my_lcldata'] = sabnzbd.DIR_LCLDATA header['my_home'] = sabnzbd.DIR_HOME @@ -1707,7 +1707,7 @@ def build_history(start=None, limit=None, verbose=False, verbose_list=None, sear try: re_search = re.compile(search_text, re.I) except: - logging.error(Ta('Failed to compile regex for search term: %s'), search_text) + logging.error(T('Failed to compile regex for search term: %s'), search_text) return False return re_search.search(text) diff --git a/sabnzbd/assembler.py b/sabnzbd/assembler.py index 04988b3..055e617 100644 --- a/sabnzbd/assembler.py +++ b/sabnzbd/assembler.py @@ -43,7 +43,7 @@ from sabnzbd.articlecache import ArticleCache from sabnzbd.postproc import PostProcessor import sabnzbd.downloader from sabnzbd.utils.rarfile import RarFile, is_rarfile -from sabnzbd.encoding import latin1, unicoder, is_utf8 +from sabnzbd.encoding import unicoder, is_utf8 #------------------------------------------------------------------------------ @@ -95,7 +95,7 @@ class Assembler(Thread): else: # 28 == disk full => pause downloader if errno == 28: - logging.error(Ta('Disk full! Forcing Pause')) + logging.error(T('Disk full! Forcing Pause')) else: logging.error(T('Disk error on creating file %s'), filepath) # Pause without saving @@ -114,18 +114,18 @@ class Assembler(Thread): if check_encrypted_rar(nzo, filepath): if cfg.pause_on_pwrar() == 1: - logging.warning(Ta('WARNING: Paused job "%s" because of encrypted RAR file'), latin1(nzo.final_name)) + logging.warning(T('WARNING: Paused job "%s" because of encrypted RAR file'), nzo.final_name) nzo.pause() else: - logging.warning(Ta('WARNING: Aborted job "%s" because of encrypted RAR file'), latin1(nzo.final_name)) + logging.warning(T('WARNING: Aborted job "%s" because of encrypted RAR file'), nzo.final_name) nzo.fail_msg = T('Aborted, encryption detected') import sabnzbd.nzbqueue sabnzbd.nzbqueue.NzbQueue.do.end_job(nzo) unwanted = rar_contains_unwanted_file(nzo, filepath) if unwanted: - logging.warning(Ta('WARNING: In "%s" unwanted extension in RAR file. Unwanted file is %s '), latin1(nzo.final_name), unwanted) - logging.debug(Ta('Unwanted extension is in rar file %s'), filepath) + logging.warning(T('WARNING: In "%s" unwanted extension in RAR file. Unwanted file is %s '), nzo.final_name, unwanted) + logging.debug(T('Unwanted extension is in rar file %s'), filepath) if cfg.action_on_unwanted_extensions() == 1 and nzo.unwanted_ext == 0: logging.debug('Unwanted extension ... pausing') nzo.unwanted_ext = 1 @@ -168,7 +168,7 @@ def _assemble(nzf, path, dupe): data = ArticleCache.do.load_article(article) if not data: - logging.info(Ta('%s missing'), article) + logging.info(T('%s missing'), article) else: # yenc data already decoded, flush it out if _type == 'yenc': diff --git a/sabnzbd/bpsmeter.py b/sabnzbd/bpsmeter.py index ae4b20d..5fa3689 100644 --- a/sabnzbd/bpsmeter.py +++ b/sabnzbd/bpsmeter.py @@ -250,7 +250,7 @@ class BPSMeter(object): from sabnzbd.downloader import Downloader if Downloader.do and not Downloader.do.paused: Downloader.do.pause() - logging.warning(Ta('Quota spent, pausing downloading')) + logging.warning(T('Quota spent, pausing downloading')) # Speedometer try: diff --git a/sabnzbd/config.py b/sabnzbd/config.py index e9ffc00..ce6b580 100644 --- a/sabnzbd/config.py +++ b/sabnzbd/config.py @@ -218,7 +218,7 @@ class OptionDir(Option): if value and (self.__create or create): res, path = sabnzbd.misc.create_real_path(self.ident()[1], self.__root, value, self.__apply_umask) if not res: - error = Ta("Cannot create %s folder %s") % (self.ident()[1], path) + error = T('Cannot create %s folder %s') % (self.ident()[1], path) if not error: self._Option__set(value) return error @@ -795,7 +795,7 @@ def save_config(force=False): # Check if file is writable if not sabnzbd.misc.is_writable(filename): - logging.error(Ta('Cannot write to INI file %s'), filename) + logging.error(T('Cannot write to INI file %s'), filename) return res # copy current file to backup @@ -803,7 +803,7 @@ def save_config(force=False): shutil.copyfile(filename, bakname) except: # Something wrong with the backup, - logging.error(Ta('Cannot create backup file for %s'), bakname) + logging.error(T('Cannot create backup file for %s'), bakname) logging.info("Traceback: ", exc_info = True) return res @@ -813,7 +813,7 @@ def save_config(force=False): modified = False res = True except: - logging.error(Ta('Cannot write to INI file %s'), filename) + logging.error(T('Cannot write to INI file %s'), filename) logging.info("Traceback: ", exc_info = True) try: os.remove(filename) @@ -942,7 +942,7 @@ def decode_password(pw, name): try: ch = chr( int(pw[n] + pw[n+1], 16) ) except ValueError: - logging.error(Ta('Incorrectly encoded password %s'), name) + logging.error(T('Incorrectly encoded password %s'), name) return '' decPW += ch return decPW @@ -966,7 +966,7 @@ def validate_octal(value): int(value, 8) return None, value except: - return Ta('%s is not a correct octal value') % value, None + return T('%s is not a correct octal value') % value, None def validate_no_unc(root, value, default): @@ -975,7 +975,7 @@ def validate_no_unc(root, value, default): if value and not value.startswith(r'\\'): return validate_notempty(root, value, default) else: - return Ta('UNC path "%s" not allowed here') % value, None + return T('UNC path "%s" not allowed here') % value, None def validate_safedir(root, value, default): @@ -983,11 +983,11 @@ def validate_safedir(root, value, default): On Windows path should be 80 max """ if sabnzbd.WIN32 and value and len(sabnzbd.misc.real_path(root, value)) > 80: - return Ta('Error: Path length should be below 80.'), None + return T('Error: Path length should be below 80.'), None if sabnzbd.empty_queues(): return validate_no_unc(root, value, default) else: - return Ta('Error: Queue not empty, cannot change folder.'), None + return T('Error: Queue not empty, cannot change folder.'), None def validate_dir_exists(root, value, default): @@ -996,7 +996,7 @@ def validate_dir_exists(root, value, default): if os.path.exists(p): return None, value else: - return Ta('Folder "%s" does not exist') % p, None + return T('Folder "%s" does not exist') % p, None def validate_notempty(root, value, default): diff --git a/sabnzbd/database.py b/sabnzbd/database.py index 96e5a41..c69bf33 100644 --- a/sabnzbd/database.py +++ b/sabnzbd/database.py @@ -120,11 +120,11 @@ class HistoryDB(object): except: error = str(sys.exc_value) if 'readonly' in error: - logging.error(Ta('Cannot write to History database, check access rights!')) + logging.error(T('Cannot write to History database, check access rights!')) # Report back success, because there's no recovery possible return True elif 'not a database' in error or 'malformed' in error: - logging.error(Ta('Damaged History database, created empty replacement')) + logging.error(T('Damaged History database, created empty replacement')) logging.info("Traceback: ", exc_info = True) self.close() try: @@ -133,7 +133,7 @@ class HistoryDB(object): pass self.connect() else: - logging.error(Ta('SQL Command Failed, see log')) + logging.error(T('SQL Command Failed, see log')) logging.debug("SQL: %s" , command) logging.info("Traceback: ", exc_info = True) try: @@ -181,7 +181,7 @@ class HistoryDB(object): try: self.con.commit() except: - logging.error(Ta('SQL Commit Failed, see log')) + logging.error(T('SQL Commit Failed, see log')) logging.info("Traceback: ", exc_info = True) def close(self): @@ -189,7 +189,7 @@ class HistoryDB(object): self.c.close() self.con.close() except: - logging.error(Ta('Failed to close database, see log')) + logging.error(T('Failed to close database, see log')) logging.info("Traceback: ", exc_info = True) def remove_completed(self, search=None): diff --git a/sabnzbd/decoder.py b/sabnzbd/decoder.py index 33d4a8b..67008da 100644 --- a/sabnzbd/decoder.py +++ b/sabnzbd/decoder.py @@ -104,7 +104,7 @@ class Decoder(Thread): nzf.article_count += 1 found = True except IOError, e: - logme = Ta('Decoding %s failed') % art_id + logme = T('Decoding %s failed') % art_id logging.warning(logme) logging.info("Traceback: ", exc_info = True) @@ -117,7 +117,7 @@ class Decoder(Thread): register = False except CrcError, e: - logme = Ta('CRC Error in %s (%s -> %s)') % (art_id, e.needcrc, e.gotcrc) + logme = T('CRC Error in %s (%s -> %s)') % (art_id, e.needcrc, e.gotcrc) logging.info(logme) data = e.data @@ -154,7 +154,7 @@ class Decoder(Thread): logging.debug('Server has article %s', art_id) register = True elif not killed and not found: - logme = Ta('Badly formed yEnc article in %s') % art_id + logme = T('Badly formed yEnc article in %s') % art_id logging.info(logme) if not found or killed: @@ -164,7 +164,7 @@ class Decoder(Thread): logme = None except: - logme = Ta('Unknown Error while decoding %s') % art_id + logme = T('Unknown Error while decoding %s') % art_id logging.info(logme) logging.info("Traceback: ", exc_info = True) @@ -226,7 +226,7 @@ class Decoder(Thread): logging.debug('%s => found at least one untested server', article) else: - msg = Ta('%s => missing from all servers, discarding') % article + msg = T('%s => missing from all servers, discarding') % article logging.info(msg) article.nzf.nzo.inc_log('missing_art_log', msg) diff --git a/sabnzbd/dirscanner.py b/sabnzbd/dirscanner.py index 58dc6e8..d31d5fc 100644 --- a/sabnzbd/dirscanner.py +++ b/sabnzbd/dirscanner.py @@ -128,7 +128,7 @@ def ProcessArchiveFile(filename, path, pp=None, script=None, cat=None, catdir=No try: if not keep: os.remove(path) except: - logging.error(Ta('Error removing %s'), path) + logging.error(T('Error removing %s'), path) logging.info("Traceback: ", exc_info = True) status = 1 else: @@ -166,7 +166,7 @@ def ProcessSingleFile(filename, path, pp=None, script=None, cat=None, catdir=Non data = f.read() f.close() except: - logging.warning(Ta('Cannot read %s'), path) + logging.warning(T('Cannot read %s'), path) logging.info("Traceback: ", exc_info = True) return -2, nzo_ids @@ -199,7 +199,7 @@ def ProcessSingleFile(filename, path, pp=None, script=None, cat=None, catdir=Non try: if not keep: os.remove(path) except: - logging.error(Ta('Error removing %s'), path) + logging.error(T('Error removing %s'), path) logging.info("Traceback: ", exc_info = True) return 1, nzo_ids @@ -299,7 +299,7 @@ class DirScanner(threading.Thread): files = os.listdir(folder) except: if not self.error_reported and not catdir: - logging.error(Ta('Cannot read Watched Folder %s'), folder) + logging.error(T('Cannot read Watched Folder %s'), folder) self.error_reported = True files = [] @@ -382,7 +382,7 @@ class DirScanner(threading.Thread): list = os.listdir(dirscan_dir) except: if not self.error_reported: - logging.error(Ta('Cannot read Watched Folder %s'), dirscan_dir) + logging.error(T('Cannot read Watched Folder %s'), dirscan_dir) self.error_reported = True list = [] diff --git a/sabnzbd/downloader.py b/sabnzbd/downloader.py index 4b4531f..dce2602 100644 --- a/sabnzbd/downloader.py +++ b/sabnzbd/downloader.py @@ -258,7 +258,7 @@ class Downloader(Thread): if mx: self.bandwidth_limit = mx * int(value) / 100 else: - logging.warning(Ta('You must set a maximum bandwidth before you can set a bandwidth limit')) + logging.warning(T('You must set a maximum bandwidth before you can set a bandwidth limit')) else: self.speed_set() logging.info("Bandwidth limit set to %s%%", value) @@ -301,7 +301,7 @@ class Downloader(Thread): server.bad_cons = 0 server.active = False server.errormsg = T('Server %s will be ignored for %s minutes') % ('', _PENALTY_TIMEOUT) - logging.warning(Ta('Server %s will be ignored for %s minutes'), server.id, _PENALTY_TIMEOUT) + logging.warning(T('Server %s will be ignored for %s minutes'), server.id, _PENALTY_TIMEOUT) self.plan_server(server.id, _PENALTY_TIMEOUT) # Remove all connections to server @@ -394,7 +394,7 @@ class Downloader(Thread): nw.thrdnum, server.id) nw.init_connect(self.write_fds) except: - logging.error(Ta('Failed to initialize %s@%s'), nw.thrdnum, server.id) + logging.error(T('Failed to initialize %s@%s'), nw.thrdnum, server.id) logging.info("Traceback: ", exc_info = True) self.__reset_nw(nw, "failed to initialize") @@ -526,30 +526,30 @@ class Downloader(Thread): # 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: - server.errormsg = Ta('Too many connections to server %s') % display_msg - logging.error(Ta('Too many connections to server %s'), server.id) + server.errormsg = T('Too many connections to server %s') % display_msg + logging.error(T('Too many connections to server %s'), server.id) 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): # Account sharing? if server.active: - server.errormsg = Ta('Probable account sharing') + display_msg + server.errormsg = T('Probable account sharing') + display_msg name = ' (%s)' % server.id - logging.error(Ta('Probable account sharing') + name) + logging.error(T('Probable account sharing') + name) penalty = _PENALTY_SHARE elif ecode in ('481', '482', '381') or (ecode == '502' and clues_login(msg)): # Cannot login, block this server if server.active: - server.errormsg = Ta('Failed login for server %s') % display_msg - logging.error(Ta('Failed login for server %s'), server.id) + server.errormsg = T('Failed login for server %s') % display_msg + logging.error(T('Failed login for server %s'), server.id) penalty = _PENALTY_PERM block = True elif ecode == '502': # Cannot connect (other reasons), block this server if server.active: - server.errormsg = Ta('Cannot connect to server %s [%s]') % ('', display_msg) - logging.warning(Ta('Cannot connect to server %s [%s]'), server.id, msg) + server.errormsg = T('Cannot connect to server %s [%s]') % ('', display_msg) + logging.warning(T('Cannot connect to server %s [%s]'), server.id, msg) if clues_pay(msg): penalty = _PENALTY_PERM else: @@ -564,8 +564,8 @@ class Downloader(Thread): else: # Unknown error, just keep trying if server.active: - server.errormsg = Ta('Cannot connect to server %s [%s]') % ('', display_msg) - logging.error(Ta('Cannot connect to server %s [%s]'), server.id, msg) + server.errormsg = T('Cannot connect to server %s [%s]') % ('', display_msg) + logging.error(T('Cannot connect to server %s [%s]'), server.id, msg) penalty = _PENALTY_UNKNOWN if block or (penalty and server.optional): if server.active: @@ -579,7 +579,7 @@ class Downloader(Thread): self.__reset_nw(nw, None, warn=False, quit=True) continue except: - logging.error(Ta('Connecting %s@%s failed, message=%s'), + logging.error(T('Connecting %s@%s failed, message=%s'), nw.thrdnum, nw.server.id, nw.lines[0]) # No reset-warning needed, above logging is sufficient self.__reset_nw(nw, None, warn=False) diff --git a/sabnzbd/emailer.py b/sabnzbd/emailer.py index e63cd70..2644a0d 100644 --- a/sabnzbd/emailer.py +++ b/sabnzbd/emailer.py @@ -30,11 +30,11 @@ import glob from sabnzbd.constants import * import sabnzbd from sabnzbd.misc import to_units, split_host, time_format -from sabnzbd.encoding import EmailFilter, latin1 +from sabnzbd.encoding import EmailFilter import sabnzbd.cfg as cfg def errormsg(msg): - logging.error(latin1(msg)) + logging.error(msg) return msg @@ -178,7 +178,7 @@ def send_with_template(prefix, parm, test=None): try: lst = glob.glob(os.path.join(path, '%s-*.tmpl' % prefix)) except: - logging.error(Ta('Cannot find email templates in %s'), path) + logging.error(T('Cannot find email templates in %s'), path) else: path = os.path.join(sabnzbd.DIR_PROG, DEF_EMAIL_TMPL) tpath = os.path.join(path, '%s-%s.tmpl' % (prefix, cfg.language())) diff --git a/sabnzbd/encoding.py b/sabnzbd/encoding.py index 86ecfe9..e64d009 100644 --- a/sabnzbd/encoding.py +++ b/sabnzbd/encoding.py @@ -149,11 +149,6 @@ def xml_name(p, keep_escape=False, encoding=None): return escape(p).encode('ascii', 'xmlcharrefreplace') -def latin1(txt): - """ When Unicode or UTF-8, convert to Latin-1 """ - return unicoder(txt) - - def encode_for_xml(ustr, encoding='ascii'): """ Encode unicode_data for use as XML or HTML, with characters outside diff --git a/sabnzbd/growler.py b/sabnzbd/growler.py index 0f68c20..03134e2 100644 --- a/sabnzbd/growler.py +++ b/sabnzbd/growler.py @@ -31,7 +31,7 @@ from threading import Thread import sabnzbd import sabnzbd.cfg -from sabnzbd.encoding import unicoder, latin1 +from sabnzbd.encoding import unicoder from sabnzbd.constants import NOTIFY_KEYS from gntp import GNTPRegister diff --git a/sabnzbd/interface.py b/sabnzbd/interface.py index 0596892..421d108 100644 --- a/sabnzbd/interface.py +++ b/sabnzbd/interface.py @@ -40,7 +40,7 @@ from sabnzbd.panic import panic_old_queue from sabnzbd.newswrapper import GetServerParms from sabnzbd.bpsmeter import BPSMeter from sabnzbd.encoding import TRANS, xml_name, LatinFilter, unicoder, special_fixer, \ - platform_encode, latin1, encode_for_xml + platform_encode, encode_for_xml import sabnzbd.config as config import sabnzbd.cfg as cfg import sabnzbd.newsunpack @@ -172,10 +172,10 @@ def check_session(kwargs): key = kwargs.get('apikey') msg = None if not key: - logging.warning(Ta('Missing Session key')) + logging.warning(T('Missing Session key')) msg = T('Error: Session Key Required') elif key != cfg.api_key(): - logging.warning(Ta('Error: Session Key Incorrect')) + logging.warning(T('Error: Session Key Incorrect')) msg = T('Error: Session Key Incorrect') return msg @@ -213,14 +213,14 @@ def check_apikey(kwargs, nokey=False): key = kwargs.get('apikey') if not key: if not special: - log_warning(Ta('API Key missing, please enter the api key from Config->General into your 3rd party program:')) + log_warning(T('API Key missing, please enter the api key from Config->General into your 3rd party program:')) return report(output, 'API Key Required', callback=callback) elif req_access == 1 and key == cfg.nzb_key(): return None elif key == cfg.api_key(): return None else: - log_warning(Ta('API Key incorrect, Use the api key from Config->General in your 3rd party program:')) + log_warning(T('API Key incorrect, Use the api key from Config->General in your 3rd party program:')) return report(output, 'API Key Incorrect', callback=callback) # No active APIKEY, check web credentials instead @@ -229,7 +229,7 @@ def check_apikey(kwargs, nokey=False): pass else: if not special: - log_warning(Ta('Authentication missing, please enter username/password from Config->General into your 3rd party program:')) + log_warning(T('Authentication missing, please enter username/password from Config->General into your 3rd party program:')) return report(output, 'Missing authentication', callback=callback) return None @@ -1470,7 +1470,7 @@ class ConfigGeneral(object): cfg.bandwidth_perc.set(bandwidth_perc) bandwidth_perc = cfg.bandwidth_perc() if bandwidth_perc and not bandwidth_max: - logging.warning(Ta('You must set a maximum bandwidth before you can set a bandwidth limit')) + logging.warning(T('You must set a maximum bandwidth before you can set a bandwidth limit')) config.save_config() @@ -1740,7 +1740,7 @@ class ConfigRss(object): # Find a unique new Feed name unum = 1 - txt = Ta('Feed') #: Used as default Feed name in Config->RSS + txt = T('Feed') #: Used as default Feed name in Config->RSS while txt + str(unum) in feeds: unum += 1 conf['feed'] = txt + str(unum) @@ -2312,7 +2312,7 @@ class Status(object): wlist = [] for w in sabnzbd.GUIHANDLER.content(): - w = w.replace('WARNING', Ta('WARNING:')).replace('ERROR', Ta('ERROR:')) + w = w.replace('WARNING', T('WARNING:')).replace('ERROR', T('ERROR:')) wlist.insert(0, unicoder(w)) header['warnings'] = wlist diff --git a/sabnzbd/misc.py b/sabnzbd/misc.py index 085b7b1..ce82e2b 100644 --- a/sabnzbd/misc.py +++ b/sabnzbd/misc.py @@ -42,7 +42,7 @@ from sabnzbd.decorators import synchronized from sabnzbd.constants import DEFAULT_PRIORITY, FUTURE_Q_FOLDER, JOB_ADMIN, GIGI, Status, MEBI import sabnzbd.config as config import sabnzbd.cfg as cfg -from sabnzbd.encoding import unicoder, latin1, special_fixer, gUTF +from sabnzbd.encoding import unicoder, special_fixer, gUTF import sabnzbd.growler as growler RE_VERSION = re.compile('(\d+)\.(\d+)\.(\d+)([a-zA-Z]*)(\d*)') @@ -405,13 +405,13 @@ def create_real_path(name, loc, path, umask=False): if not os.path.exists(my_dir): logging.info('%s directory: %s does not exist, try to create it', name, my_dir) if not create_all_dirs(my_dir, umask): - logging.error(Ta('Cannot create directory %s'), my_dir) + logging.error(T('Cannot create directory %s'), my_dir) return (False, my_dir) if os.access(my_dir, os.R_OK + os.W_OK): return (True, my_dir) else: - logging.error(Ta('%s directory: %s error accessing'), name, my_dir) + logging.error(T('%s directory: %s error accessing'), name, my_dir) return (False, my_dir) else: return (False, "") @@ -433,14 +433,14 @@ def get_user_shellfolders(): try: hive = _winreg.ConnectRegistry(None, _winreg.HKEY_CURRENT_USER) except WindowsError: - logging.error(Ta('Cannot connect to registry hive HKEY_CURRENT_USER.')) + logging.error(T('Cannot connect to registry hive HKEY_CURRENT_USER.')) return values # Then open the registry key where Windows stores the Shell Folder locations try: key = _winreg.OpenKey(hive, r"Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders") except WindowsError: - logging.error(Ta('Cannot open registry key "%s".'), r"Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders") + logging.error(T('Cannot open registry key "%s".'), r"Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders") _winreg.CloseKey(hive) return values @@ -454,7 +454,7 @@ def get_user_shellfolders(): return values except WindowsError: # On error, return empty dict. - logging.error(Ta('Failed to read registry keys for special folders')) + logging.error(T('Failed to read registry keys for special folders')) _winreg.CloseKey(key) _winreg.CloseKey(hive) return {} @@ -511,7 +511,7 @@ def get_serv_parms(service): except WindowsError: pass for n in xrange(len(value)): - value[n] = latin1(value[n]) + value[n] = value[n] return value @@ -811,7 +811,7 @@ def create_dirs(dirpath): if not os.path.exists(dirpath): logging.info('Creating directories: %s', dirpath) if not create_all_dirs(dirpath, True): - logging.error(Ta('Failed making (%s)'), dirpath) + logging.error(T('Failed making (%s)'), dirpath) return None return dirpath @@ -847,7 +847,7 @@ def move_to_path(path, new_path): os.remove(path) except: if not (cfg.marker_file() and cfg.marker_file() in path): - logging.error(Ta('Failed moving %s to %s'), path, new_path) + logging.error(T('Failed moving %s to %s'), path, new_path) logging.info("Traceback: ", exc_info = True) ok = False return ok, new_path @@ -1189,7 +1189,7 @@ def create_https_certificates(ssl_cert, ssl_key): from sabnzbd.utils.certgen import createKeyPair, createCertRequest, createCertificate, \ TYPE_RSA, serial except: - logging.warning(Ta('pyopenssl module missing, please install for https access')) + logging.warning(T('pyopenssl module missing, please install for https access')) return False # Create the CA Certificate @@ -1207,7 +1207,7 @@ def create_https_certificates(ssl_cert, ssl_key): open(ssl_key, 'w').write(crypto.dump_privatekey(crypto.FILETYPE_PEM, pkey)) open(ssl_cert, 'w').write(crypto.dump_certificate(crypto.FILETYPE_PEM, cert)) except: - logging.error(Ta('Error creating SSL key and certificate')) + logging.error(T('Error creating SSL key and certificate')) logging.info("Traceback: ", exc_info = True) return False @@ -1391,7 +1391,7 @@ def set_chmod(path, permissions, report): except: lpath = path.lower() if report and '.appledouble' not in lpath and '.ds_store' not in lpath: - logging.error(Ta('Cannot change permissions of %s'), path) + logging.error(T('Cannot change permissions of %s'), path) logging.info("Traceback: ", exc_info = True) diff --git a/sabnzbd/newsunpack.py b/sabnzbd/newsunpack.py index 11d34b1..ea45281 100644 --- a/sabnzbd/newsunpack.py +++ b/sabnzbd/newsunpack.py @@ -30,7 +30,7 @@ import shutil import sabnzbd from sabnzbd.encoding import TRANS, UNTRANS, unicode2local, name_fixer, \ - reliable_unpack_names, unicoder, latin1, platform_encode, deunicode + reliable_unpack_names, unicoder, platform_encode, deunicode from sabnzbd.utils.rarfile import RarFile, is_rarfile from sabnzbd.misc import format_time_string, find_on_path, make_script_path, int_conv, \ flag_file, real_path, globber @@ -188,7 +188,7 @@ def unpack_magic(nzo, workdir, workdir_complete, dele, one_folder, joinables, zi """ Do a recursive unpack from all archives in 'workdir' to 'workdir_complete' """ if depth > 5: - logging.warning('Unpack nesting too deep [%s]', latin1(nzo.final_name)) + logging.warning('Unpack nesting too deep [%s]', nzo.final_name) return False, [] depth += 1 @@ -690,7 +690,7 @@ def rar_extract_core(rarfile, numrars, one_folder, nzo, setname, extraction_path else: filename = '???' nzo.fail_msg = T('Unusable RAR file') - msg = ('[%s][%s] '+ Ta('Unusable RAR file')) % (setname, latin1(filename)) + msg = ('[%s][%s] '+ T('Unusable RAR file')) % (setname, filename) nzo.set_unpack_info('Unpack', unicoder(msg), set=setname) fail = 3 @@ -723,7 +723,7 @@ def rar_extract_core(rarfile, numrars, one_folder, nzo, setname, extraction_path logging.info('Skipping check of file %s', path) continue fullpath = os.path.join(extraction_path, path) - logging.debug("Checking existence of %s", latin1(fullpath)) + logging.debug("Checking existence of %s", fullpath) if path.endswith('/'): # Folder continue @@ -1697,10 +1697,10 @@ def sfv_check(sfv_path): if crc_check(path, checksum): logging.debug('File %s passed SFV check', path) else: - logging.info('File %s did not pass SFV check', latin1(path)) + logging.info('File %s did not pass SFV check', path) failed.append(unicoder(filename)) else: - logging.info('File %s missing in SFV check', latin1(path)) + logging.info('File %s missing in SFV check', path) failed.append(unicoder(filename)) fp.close() return failed diff --git a/sabnzbd/newswrapper.py b/sabnzbd/newswrapper.py index 0e67731..633bf7a 100644 --- a/sabnzbd/newswrapper.py +++ b/sabnzbd/newswrapper.py @@ -178,7 +178,7 @@ class NNTP(object): self.sock = SSLConnection(ctx, socket.socket(af, socktype, proto)) elif sslenabled and not _ssl: - logging.error(Ta('Error importing OpenSSL module. Connecting with NON-SSL')) + logging.error(T('Error importing OpenSSL module. Connecting with NON-SSL')) self.sock = socket.socket(af, socktype, proto) else: self.sock = socket.socket(af, socktype, proto) diff --git a/sabnzbd/nzbqueue.py b/sabnzbd/nzbqueue.py index 826db3f..665af63 100644 --- a/sabnzbd/nzbqueue.py +++ b/sabnzbd/nzbqueue.py @@ -42,7 +42,7 @@ from sabnzbd.articlecache import ArticleCache import sabnzbd.downloader from sabnzbd.assembler import Assembler, file_has_articles import sabnzbd.growler as growler -from sabnzbd.encoding import latin1, platform_encode +from sabnzbd.encoding import platform_encode from sabnzbd.bpsmeter import BPSMeter #------------------------------------------------------------------------------- @@ -86,13 +86,13 @@ class NzbQueue(TryList): queue_vers, nzo_ids, dummy = data if not queue_vers == QUEUE_VERSION: nzo_ids = [] - logging.error(Ta('Incompatible queuefile found, cannot proceed')) + logging.error(T('Incompatible queuefile found, cannot proceed')) if not repair: panic_queue(os.path.join(cfg.admin_dir.get_path(), QUEUE_FILE_NAME)) exit_sab(2) except ValueError: nzo_ids = [] - logging.error(Ta('Error loading %s, corrupt file detected'), + logging.error(T('Error loading %s, corrupt file detected'), os.path.join(cfg.admin_dir.get_path(), QUEUE_FILE_NAME)) if not repair: return @@ -183,16 +183,16 @@ class NzbQueue(TryList): if not all_verified(path): filename = globber_full(path, '*.gz') if len(filename) > 0: - logging.debug('Repair job %s by reparsing stored NZB', latin1(name)) + logging.debug('Repair job %s by reparsing stored NZB', name) nzo_id = sabnzbd.add_nzbfile(filename[0], pp=None, script=None, cat=None, priority=None, nzbname=name, reuse=True)[1] else: - logging.debug('Repair job %s without stored NZB', latin1(name)) + logging.debug('Repair job %s without stored NZB', name) nzo = NzbObject(name, pp=None, script=None, nzb='', cat=None, priority=None, nzbname=name, reuse=True) self.add(nzo) nzo_id = nzo.nzo_id else: remove_all(path, '*.gz') - logging.debug('Repair job %s with new NZB (%s)', latin1(name), latin1(filename)) + logging.debug('Repair job %s with new NZB (%s)', name, filename) nzo_id = sabnzbd.add_nzbfile(new_nzb, pp=None, script=None, cat=None, priority=None, nzbname=name, reuse=True)[1] return nzo_id @@ -301,7 +301,7 @@ class NzbQueue(TryList): self.reset_try_list() except: - logging.error(Ta('Error while adding %s, removing'), nzo_id) + logging.error(T('Error while adding %s, removing'), nzo_id) logging.info("Traceback: ", exc_info = True) self.remove(nzo_id, False) else: @@ -796,7 +796,7 @@ class NzbQueue(TryList): else: if file_has_articles(nzf): - logging.warning(Ta('%s -> Unknown encoding'), filename) + logging.warning(T('%s -> Unknown encoding'), filename) if post_done: self.end_job(nzo) diff --git a/sabnzbd/nzbstuff.py b/sabnzbd/nzbstuff.py index 2320f0b..1550db5 100644 --- a/sabnzbd/nzbstuff.py +++ b/sabnzbd/nzbstuff.py @@ -51,7 +51,7 @@ from sabnzbd.misc import to_units, cat_to_opts, cat_convert, sanitize_foldername fix_unix_encoding import sabnzbd.cfg as cfg from sabnzbd.trylist import TryList -from sabnzbd.encoding import unicoder, platform_encode, latin1, name_fixer +from sabnzbd.encoding import unicoder, platform_encode, name_fixer from sabnzbd.database import get_history_handle __all__ = ['Article', 'NzbFile', 'NzbObject'] @@ -413,7 +413,7 @@ class NzbParser(xml.sax.handler.ContentHandler): # Create an NZF self.in_file = False if not self.article_db: - logging.warning(Ta('File %s is empty, skipping'), self.filename) + logging.warning(T('File %s is empty, skipping'), self.filename) return try: tm = datetime.datetime.fromtimestamp(self.file_date) @@ -458,7 +458,7 @@ class NzbParser(xml.sax.handler.ContentHandler): self.nzo.avg_date = datetime.datetime.fromtimestamp(self.avg_age / files) self.nzo.md5sum = self.md5.hexdigest() if self.skipped_files: - logging.warning(Ta('Failed to import %s files from %s'), + logging.warning(T('Failed to import %s files from %s'), self.skipped_files, self.nzo.filename) @@ -651,13 +651,13 @@ class NzbObject(TryList): except xml.sax.SAXParseException, err: self.incomplete = True if '' not in nzb: - logging.warning(Ta('Incomplete NZB file %s'), filename) + logging.warning(T('Incomplete NZB file %s'), filename) else: - logging.warning(Ta('Invalid NZB file %s, skipping (reason=%s, line=%s)'), + logging.warning(T('Invalid NZB file %s, skipping (reason=%s, line=%s)'), filename, err.getMessage(), err.getLineNumber()) except Exception, err: self.incomplete = True - logging.warning(Ta('Invalid NZB file %s, skipping (reason=%s, line=%s)'), filename, err, 0) + logging.warning(T('Invalid NZB file %s, skipping (reason=%s, line=%s)'), filename, err, 0) if self.incomplete: if cfg.allow_incomplete_nzb(): @@ -682,9 +682,9 @@ class NzbObject(TryList): else: mylog = logging.info if self.url: - mylog(Ta('Empty NZB file %s') + ' [%s]', filename, self.url) + mylog(T('Empty NZB file %s') + ' [%s]', filename, self.url) else: - mylog(Ta('Empty NZB file %s'), filename) + mylog(T('Empty NZB file %s'), filename) raise ValueError if cat is None: @@ -753,12 +753,12 @@ class NzbObject(TryList): self.priority = LOW_PRIORITY if duplicate and cfg.no_dupes() == 1: - if cfg.warn_dupl_jobs(): logging.warning(Ta('Ignoring duplicate NZB "%s"'), filename) + if cfg.warn_dupl_jobs(): logging.warning(T('Ignoring duplicate NZB "%s"'), filename) self.purge_data(keep_basic=False) raise TypeError if duplicate or self.priority == DUP_PRIORITY: - if cfg.warn_dupl_jobs(): logging.warning(Ta('Pausing duplicate NZB "%s"'), filename) + if cfg.warn_dupl_jobs(): logging.warning(T('Pausing duplicate NZB "%s"'), filename) self.duplicate = True self.pause() self.priority = NORMAL_PRIORITY @@ -1011,19 +1011,19 @@ class NzbObject(TryList): def final_name_pw(self): prefix = '' if self.duplicate: - prefix = Ta('DUPLICATE') + ' / ' #: Queue indicator for duplicate job + prefix = T('DUPLICATE') + ' / ' #: Queue indicator for duplicate job if self.encrypted and self.status == 'Paused': - prefix += Ta('ENCRYPTED') + ' / ' #: Queue indicator for encrypted job + prefix += T('ENCRYPTED') + ' / ' #: Queue indicator for encrypted job if self.oversized and self.status == 'Paused': - prefix += Ta('TOO LARGE') + ' / ' #: Queue indicator for oversized job + prefix += T('TOO LARGE') + ' / ' #: Queue indicator for oversized job if self.incomplete and self.status == 'Paused': - prefix += Ta('INCOMPLETE') + ' / ' #: Queue indicator for incomplete NZB + prefix += T('INCOMPLETE') + ' / ' #: Queue indicator for incomplete NZB if self.unwanted_ext and self.status == 'Paused': - prefix += Ta('UNWANTED') + ' / ' #: Queue indicator for unwanted extensions + prefix += T('UNWANTED') + ' / ' #: Queue indicator for unwanted extensions if isinstance(self.wait, float): dif = int(self.wait - time.time() + 0.5) if dif > 0: - prefix += Ta('WAIT %s sec') % dif + ' / ' #: Queue indicator for waiting URL fetch + prefix += T('WAIT %s sec') % dif + ' / ' #: Queue indicator for waiting URL fetch if self.password: return '%s%s / %s' % (prefix, self.final_name, self.password) else: @@ -1168,7 +1168,7 @@ class NzbObject(TryList): nzf.finish_import() # Still not finished? Something went wrong... if not nzf.import_finished: - logging.error(Ta('Error importing %s'), nzf) + logging.error(T('Error importing %s'), nzf) nzf_remove_list.append(nzf) continue else: diff --git a/sabnzbd/panic.py b/sabnzbd/panic.py index 1ea8580..6c691d0 100644 --- a/sabnzbd/panic.py +++ b/sabnzbd/panic.py @@ -41,7 +41,7 @@ def MSG_BAD_NEWS(): return r'''
-