diff options
| -rw-r--r-- | locale/de/de.po | 219 | ||||
| -rw-r--r-- | locale/en/en.po | 219 | ||||
| -rw-r--r-- | locale/fr/fr.po | 215 | ||||
| -rw-r--r-- | locale/messages.pot | 191 | ||||
| -rw-r--r-- | module/download_thread.py | 50 | ||||
| -rw-r--r-- | module/file_list.py | 8 | ||||
| -rw-r--r-- | module/gui/Collector.py | 15 | ||||
| -rw-r--r-- | module/gui/Queue.py | 11 | ||||
| -rw-r--r-- | module/gui/connector.py | 3 | ||||
| -rw-r--r-- | module/plugins/decrypter/SerienjunkiesOrg.py | 1 | ||||
| -rw-r--r-- | module/thread_list.py | 57 | ||||
| -rwxr-xr-x | pyLoadCore.py | 36 | 
12 files changed, 795 insertions, 230 deletions
| diff --git a/locale/de/de.po b/locale/de/de.po index 471d543cf..1994499df 100644 --- a/locale/de/de.po +++ b/locale/de/de.po @@ -4,69 +4,202 @@  #  msgid ""  msgstr "" -"Project-Id-Version: 0.1\n" -"POT-Creation-Date: 2009-06-04 15:33+CEST\n" -"PO-Revision-Date: 2009-06-05 18:27+0100\n" -"Last-Translator: spoob <spoob@gmx.de>\n" -"Language-Team: pyLoad <LL@li.org>\n" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2010-02-02 21:54+CET\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n"  "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: ENCODING\n"  "Generated-By: pygettext.py 1.5\n" -#: Core.py:59 + +#: module/download_thread.py:115 +msgid "Hoster unvailable, wait 60 seconds" +msgstr "" + +#: module/download_thread.py:117 +msgid "Error getting error code: %s" +msgstr "" + +#: module/download_thread.py:163 +msgid "Checksum ok ('%s')" +msgstr "" + +#: module/download_thread.py:165 +msgid "Checksum not matched! ('%s')" +msgstr "" + +#: module/download_thread.py:167 +msgid "Can't get checksum for %s" +msgstr "" + +#: module/download_thread.py:169 +msgid "Checksum not implemented for %s" +msgstr "" + +#: module/file_list.py:87 +msgid "Found %s links in linkcollector" +msgstr "" + +#: module/file_list.py:89 +msgid "Found %s unqueued packages" +msgstr "" + +#: module/file_list.py:91 +msgid "Added %s packages to queue" +msgstr "" + +#: module/thread_list.py:88 +msgid "Get links from: %s" +msgstr "" + +#: module/thread_list.py:90 +msgid "Download starts: %s" +msgstr "" + +#: module/thread_list.py:136 +msgid "Parsed links from %s: %i" +msgstr "" + +#: module/thread_list.py:138 +msgid "No links in %s" +msgstr "" + +#: module/thread_list.py:145 +msgid "Download finished: %s" +msgstr "" + +#: module/thread_list.py:151 +msgid "Download failed: %s | %s" +msgstr "" + +#: module/thread_list.py:156 +msgid "Download aborted: %s" +msgstr "" + +#: module/thread_list.py:206 +msgid "Starting reconnect" +msgstr "" + +#: module/thread_list.py:220 +msgid "Reconnected, new IP: %s" +msgstr "" + +#: pyLoadCore.py:111 +msgid "pycrypto to decode container files" +msgstr "" + +#: pyLoadCore.py:112 +msgid "Python Image Libary (PIL) for captha reading" +msgstr "" + +#: pyLoadCore.py:113 +msgid "pycurl for lower memory footprint while downloading" +msgstr "" + +#: pyLoadCore.py:114 +msgid "Django for webinterface" +msgstr "" + +#: pyLoadCore.py:115 +msgid "tesseract for captcha reading" +msgstr "" + +#: pyLoadCore.py:116 +msgid "gocr for captcha reading" +msgstr "" + +#: pyLoadCore.py:118  msgid "folder for logs" -msgstr "Ordner für Logs" +msgstr "" -#: Core.py:60 +#: pyLoadCore.py:119  msgid "folder for downloads" -msgstr "Ordner für Downloads" +msgstr "" -#: Core.py:61 +#: pyLoadCore.py:120  msgid "file for links" -msgstr "Linkdatei" +msgstr "" -#: Core.py:62 +#: pyLoadCore.py:121  msgid "file for failed links" -msgstr "Datei für felgeschlagene Links" +msgstr "" -#: Core.py:68 +#: pyLoadCore.py:124 +msgid "OpenSSL for secure connection" +msgstr "" + +#: pyLoadCore.py:125 +msgid "ssl certificate" +msgstr "" + +#: pyLoadCore.py:126 +msgid "ssl key" +msgstr "" + +#: pyLoadCore.py:150  msgid "Downloadtime: %s" -msgstr "Downloadzeit: %s" +msgstr "" -#: Core.py:96 -msgid "added" -msgstr "Hinzugefügt" +#: pyLoadCore.py:179 +msgid "restarting pyLoad" +msgstr "" -#: Core.py:97 -msgid "created index of plugins" -msgstr "Plugin Index erstellt" +#: pyLoadCore.py:183 +msgid "pyLoad quits" +msgstr "" -#: Core.py:119 -msgid "new update %s on pyload.org" -msgstr "Neue Version %s auf pyload.org verfügbar!" +#: pyLoadCore.py:194 +msgid "Secure XMLRPC Server Started" +msgstr "" -#: Core.py:121 -msgid "newst version %s in use:" -msgstr "Neueste Version %s in Benutzung" +#: pyLoadCore.py:197 +msgid "Auth XMLRPC Server Started" +msgstr "" -#: Core.py:123 -msgid "beta version %s in use:" -msgstr "Beta Version %s in Benutzung" +#: pyLoadCore.py:203 +msgid "Failed starting XMLRPC server, CLI and GUI will not be available: %s" +msgstr "" -#: Core.py:132 +#: pyLoadCore.py:272  msgid "%s created" -msgstr "%s erstellt" +msgstr "" + +#: pyLoadCore.py:275 +msgid "could not find %s: %s" +msgstr "" + +#: pyLoadCore.py:277 +msgid "could not create %s: %s" +msgstr "" + +#: pyLoadCore.py:305 +msgid "%s added" +msgstr "" -#: Core.py:134 -msgid "could not create %s" -msgstr "Konnte %s nicht erstellen" +#: pyLoadCore.py:306 +msgid "created index of plugins" +msgstr "" + +#: pyLoadCore.py:325 +msgid "shutting down..." +msgstr "" + +#: pyLoadCore.py:341 +msgid "No Updates for pyLoad" +msgstr "" -#: Core.py:194 -msgid "%i seconds" -msgstr "%i Sekunden" +#: pyLoadCore.py:344 +msgid "New pyLoad Version %s available" +msgstr "" -#: Core.py:222 -msgid "Server Mode" -msgstr "Servermodus" +#: pyLoadCore.py:369 +msgid "Auto install Failed" +msgstr "" + +#: pyLoadCore.py:607 +msgid "killed pyLoad from Terminal" +msgstr "" diff --git a/locale/en/en.po b/locale/en/en.po index 87e646735..4d5bc4ee3 100644 --- a/locale/en/en.po +++ b/locale/en/en.po @@ -4,65 +4,206 @@  #  msgid ""  msgstr "" -"Project-Id-Version: 0.1\n" -"POT-Creation-Date: 2009-06-05 18:26+CEST\n" -"PO-Revision-Date: 2009-06-05 18:28+0100\n" -"Last-Translator: spoob <spoob@gmx.de>\n" -"Language-Team: pyLoad <LL@li.org>\n" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2010-02-02 21:54+CET\n" +"PO-Revision-Date: 2010-02-02 23:05+0200\n" +"Last-Translator: Marius <mkaay@mkaay.de>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"Language: de\n"  "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" +"Content-Type: text/plain; charset=UTF-8\n"  "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Pootle 2.0.0\n"  "Generated-By: pygettext.py 1.5\n" -#: Core.py:59 +#: module/download_thread.py:115 +msgid "Hoster unvailable, wait 60 seconds" +msgstr "Hoster unvailable, wait 60 seconds" + +#: module/download_thread.py:117 +msgid "Error getting error code: %s" +msgstr "Error getting error code: %s" + +#: module/download_thread.py:163 +msgid "Checksum ok ('%s')" +msgstr "Checksum ok ('%s')" + +#: module/download_thread.py:165 +msgid "Checksum not matched! ('%s')" +msgstr "Checksum not matched! ('%s')" + +#: module/download_thread.py:167 +msgid "Can't get checksum for %s" +msgstr "Can't get checksum for %s" + +#: module/download_thread.py:169 +msgid "Checksum not implemented for %s" +msgstr "Checksum not implemented for %s" + +#: module/file_list.py:87 +msgid "Found %s links in linkcollector" +msgstr "Found %s links in linkcollector" + +#: module/file_list.py:89 +msgid "Found %s unqueued packages" +msgstr "Found %s unqueued packages" + +#: module/file_list.py:91 +msgid "Added %s packages to queue" +msgstr "Added %s packages to queue" + +#: module/thread_list.py:88 +msgid "Get links from: %s" +msgstr "Get links from: %s" + +#: module/thread_list.py:90 +msgid "Download starts: %s" +msgstr "Download starts: %s" + +#: module/thread_list.py:136 +msgid "Parsed links from %s: %i" +msgstr "Parsed links from %s: %i" + +#: module/thread_list.py:138 +msgid "No links in %s" +msgstr "No links in %s" + +#: module/thread_list.py:145 +msgid "Download finished: %s" +msgstr "Download finished: %s" + +#: module/thread_list.py:151 +msgid "Download failed: %s | %s" +msgstr "Download failed: %s | %s" + +#: module/thread_list.py:156 +msgid "Download aborted: %s" +msgstr "Download aborted: %s" + +#: module/thread_list.py:206 +msgid "Starting reconnect" +msgstr "Starting reconnect" + +#: module/thread_list.py:220 +msgid "Reconnected, new IP: %s" +msgstr "Reconnected, new IP: %s" + +#: pyLoadCore.py:111 +msgid "pycrypto to decode container files" +msgstr "pycrypto to decode container files" + +#: pyLoadCore.py:112 +msgid "Python Image Libary (PIL) for captha reading" +msgstr "Python Image Libary (PIL) for captha reading" + +#: pyLoadCore.py:113 +msgid "pycurl for lower memory footprint while downloading" +msgstr "pycurl for lower memory footprint while downloading" + +#: pyLoadCore.py:114 +msgid "Django for webinterface" +msgstr "Django for webinterface" + +#: pyLoadCore.py:115 +msgid "tesseract for captcha reading" +msgstr "tesseract for captcha reading" + +#: pyLoadCore.py:116 +msgid "gocr for captcha reading" +msgstr "gocr for captcha reading" + +#: pyLoadCore.py:118  msgid "folder for logs" -msgstr "" +msgstr "folder for logs" -#: Core.py:60 +#: pyLoadCore.py:119  msgid "folder for downloads" -msgstr "" +msgstr "folder for downloads" -#: Core.py:61 +#: pyLoadCore.py:120  msgid "file for links" -msgstr "" +msgstr "file for links" -#: Core.py:62 +#: pyLoadCore.py:121  msgid "file for failed links" -msgstr "" +msgstr "file for failed links" + +#: pyLoadCore.py:124 +msgid "OpenSSL for secure connection" +msgstr "OpenSSL for secure connection" + +#: pyLoadCore.py:125 +msgid "ssl certificate" +msgstr "ssl certificate" + +#: pyLoadCore.py:126 +msgid "ssl key" +msgstr "ssl key" -#: Core.py:68 +#: pyLoadCore.py:150  msgid "Downloadtime: %s" -msgstr "" +msgstr "Downloadtime: %s" -#: Core.py:96 -msgid " added" -msgstr "" +#: pyLoadCore.py:179 +msgid "restarting pyLoad" +msgstr "restarting pyLoad" -#: Core.py:97 -msgid "created index of plugins" -msgstr "" +#: pyLoadCore.py:183 +msgid "pyLoad quits" +msgstr "pyLoad quits" -#: Core.py:119 -msgid "new update %s on pyload.org" -msgstr "" +#: pyLoadCore.py:194 +msgid "Secure XMLRPC Server Started" +msgstr "Secure XMLRPC Server Started" -#: Core.py:121 -msgid "newst version %s in use:" -msgstr "" +#: pyLoadCore.py:197 +msgid "Auth XMLRPC Server Started" +msgstr "Auth XMLRPC Server Started" -#: Core.py:123 -msgid "beta version %s in use:" -msgstr "" +#~ msgid "Failed starting socket server, CLI and GUI will not be available: %s" +#~ msgstr "" -#: Core.py:132 +#: pyLoadCore.py:272  msgid "%s created" -msgstr "" +msgstr "%s created" -#: Core.py:194 -msgid "%i seconds" -msgstr "" +#: pyLoadCore.py:275 +msgid "could not find %s: %s" +msgstr "could not find %s: %s" -#: Core.py:222 -msgid "Server Mode" -msgstr "" +#: pyLoadCore.py:277 +msgid "could not create %s: %s" +msgstr "could not create %s: %s" + +#: pyLoadCore.py:305 +msgid "%s added" +msgstr "%s added" + +#: pyLoadCore.py:306 +msgid "created index of plugins" +msgstr "created index of plugins" + +#: pyLoadCore.py:325 +msgid "shutting down..." +msgstr "shutting down..." + +#: pyLoadCore.py:341 +msgid "No Updates for pyLoad" +msgstr "No Updates for pyLoad" + +#: pyLoadCore.py:344 +msgid "New pyLoad Version %s available" +msgstr "New pyLoad Version %s available" + +#: pyLoadCore.py:369 +msgid "Auto install Failed" +msgstr "Auto install Failed" + +#: pyLoadCore.py:607 +msgid "killed pyLoad from Terminal" +msgstr "killed pyLoad from Terminal" +#: pyLoadCore.py:203 +msgid "Failed starting XMLRPC server, CLI and GUI will not be available: %s" +msgstr "Failed starting XMLRPC server, CLI and GUI will not be available: %s" diff --git a/locale/fr/fr.po b/locale/fr/fr.po index fbe233952..1994499df 100644 --- a/locale/fr/fr.po +++ b/locale/fr/fr.po @@ -5,64 +5,201 @@  msgid ""  msgstr ""  "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2009-06-04 15:33+CEST\n" -"PO-Revision-Date: 2009-06-04 23:09+0100\n" -"Last-Translator: spoob <spoob@gmx.de>\n" +"POT-Creation-Date: 2010-02-02 21:54+CET\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"  "Language-Team: LANGUAGE <LL@li.org>\n"  "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: ENCODING\n"  "Generated-By: pygettext.py 1.5\n" -#: Core.py:59 + +#: module/download_thread.py:115 +msgid "Hoster unvailable, wait 60 seconds" +msgstr "" + +#: module/download_thread.py:117 +msgid "Error getting error code: %s" +msgstr "" + +#: module/download_thread.py:163 +msgid "Checksum ok ('%s')" +msgstr "" + +#: module/download_thread.py:165 +msgid "Checksum not matched! ('%s')" +msgstr "" + +#: module/download_thread.py:167 +msgid "Can't get checksum for %s" +msgstr "" + +#: module/download_thread.py:169 +msgid "Checksum not implemented for %s" +msgstr "" + +#: module/file_list.py:87 +msgid "Found %s links in linkcollector" +msgstr "" + +#: module/file_list.py:89 +msgid "Found %s unqueued packages" +msgstr "" + +#: module/file_list.py:91 +msgid "Added %s packages to queue" +msgstr "" + +#: module/thread_list.py:88 +msgid "Get links from: %s" +msgstr "" + +#: module/thread_list.py:90 +msgid "Download starts: %s" +msgstr "" + +#: module/thread_list.py:136 +msgid "Parsed links from %s: %i" +msgstr "" + +#: module/thread_list.py:138 +msgid "No links in %s" +msgstr "" + +#: module/thread_list.py:145 +msgid "Download finished: %s" +msgstr "" + +#: module/thread_list.py:151 +msgid "Download failed: %s | %s" +msgstr "" + +#: module/thread_list.py:156 +msgid "Download aborted: %s" +msgstr "" + +#: module/thread_list.py:206 +msgid "Starting reconnect" +msgstr "" + +#: module/thread_list.py:220 +msgid "Reconnected, new IP: %s" +msgstr "" + +#: pyLoadCore.py:111 +msgid "pycrypto to decode container files" +msgstr "" + +#: pyLoadCore.py:112 +msgid "Python Image Libary (PIL) for captha reading" +msgstr "" + +#: pyLoadCore.py:113 +msgid "pycurl for lower memory footprint while downloading" +msgstr "" + +#: pyLoadCore.py:114 +msgid "Django for webinterface" +msgstr "" + +#: pyLoadCore.py:115 +msgid "tesseract for captcha reading" +msgstr "" + +#: pyLoadCore.py:116 +msgid "gocr for captcha reading" +msgstr "" + +#: pyLoadCore.py:118  msgid "folder for logs" -msgstr "Dossier pour des logs" +msgstr "" -#: Core.py:60 +#: pyLoadCore.py:119  msgid "folder for downloads" -msgstr "Dossier téléchargement" +msgstr "" -#: Core.py:61 +#: pyLoadCore.py:120  msgid "file for links" -msgstr "Fichier du lien hypertexte" +msgstr "" -#: Core.py:68 +#: pyLoadCore.py:121 +msgid "file for failed links" +msgstr "" + +#: pyLoadCore.py:124 +msgid "OpenSSL for secure connection" +msgstr "" + +#: pyLoadCore.py:125 +msgid "ssl certificate" +msgstr "" + +#: pyLoadCore.py:126 +msgid "ssl key" +msgstr "" + +#: pyLoadCore.py:150  msgid "Downloadtime: %s" -msgstr "Temp du téléchargement: %s" +msgstr "" -#: Core.py:96 -msgid " added" -msgstr "Ajouté." +#: pyLoadCore.py:179 +msgid "restarting pyLoad" +msgstr "" -#: Core.py:97 -msgid "created index of plugins" -msgstr "Un indice des Plugins a été créé." +#: pyLoadCore.py:183 +msgid "pyLoad quits" +msgstr "" -#: Core.py:119 -msgid "new update %s on pyload.org" -msgstr "Il y a un mise à jour - pyLoad %s - sur pyload.org" +#: pyLoadCore.py:194 +msgid "Secure XMLRPC Server Started" +msgstr "" -#: Core.py:121 -msgid "newst version %s in use:" -msgstr "Tu utilises la version %s." +#: pyLoadCore.py:197 +msgid "Auth XMLRPC Server Started" +msgstr "" -#: Core.py:123 -msgid "beta version %s in use:" -msgstr "Tu utilises pyLoad %s - une version beta." +#: pyLoadCore.py:203 +msgid "Failed starting XMLRPC server, CLI and GUI will not be available: %s" +msgstr "" -#: Core.py:132 +#: pyLoadCore.py:272  msgid "%s created" -msgstr "%s a été créé." +msgstr "" -#: Core.py:134 -msgid "could not create %s" -msgstr "Il était impossible de créer %s." +#: pyLoadCore.py:275 +msgid "could not find %s: %s" +msgstr "" -#: Core.py:194 -msgid "%i seconds" -msgstr "%s secondes." +#: pyLoadCore.py:277 +msgid "could not create %s: %s" +msgstr "" + +#: pyLoadCore.py:305 +msgid "%s added" +msgstr "" -#: Core.py:222 -msgid "Server Mode" -msgstr "Mode de Serveur." +#: pyLoadCore.py:306 +msgid "created index of plugins" +msgstr "" + +#: pyLoadCore.py:325 +msgid "shutting down..." +msgstr "" + +#: pyLoadCore.py:341 +msgid "No Updates for pyLoad" +msgstr "" + +#: pyLoadCore.py:344 +msgid "New pyLoad Version %s available" +msgstr "" + +#: pyLoadCore.py:369 +msgid "Auto install Failed" +msgstr "" + +#: pyLoadCore.py:607 +msgid "killed pyLoad from Terminal" +msgstr "" diff --git a/locale/messages.pot b/locale/messages.pot index 87e646735..1994499df 100644 --- a/locale/messages.pot +++ b/locale/messages.pot @@ -4,65 +4,202 @@  #  msgid ""  msgstr "" -"Project-Id-Version: 0.1\n" -"POT-Creation-Date: 2009-06-05 18:26+CEST\n" -"PO-Revision-Date: 2009-06-05 18:28+0100\n" -"Last-Translator: spoob <spoob@gmx.de>\n" -"Language-Team: pyLoad <LL@li.org>\n" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2010-02-02 21:54+CET\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n"  "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: ENCODING\n"  "Generated-By: pygettext.py 1.5\n" -#: Core.py:59 + +#: module/download_thread.py:115 +msgid "Hoster unvailable, wait 60 seconds" +msgstr "" + +#: module/download_thread.py:117 +msgid "Error getting error code: %s" +msgstr "" + +#: module/download_thread.py:163 +msgid "Checksum ok ('%s')" +msgstr "" + +#: module/download_thread.py:165 +msgid "Checksum not matched! ('%s')" +msgstr "" + +#: module/download_thread.py:167 +msgid "Can't get checksum for %s" +msgstr "" + +#: module/download_thread.py:169 +msgid "Checksum not implemented for %s" +msgstr "" + +#: module/file_list.py:87 +msgid "Found %s links in linkcollector" +msgstr "" + +#: module/file_list.py:89 +msgid "Found %s unqueued packages" +msgstr "" + +#: module/file_list.py:91 +msgid "Added %s packages to queue" +msgstr "" + +#: module/thread_list.py:88 +msgid "Get links from: %s" +msgstr "" + +#: module/thread_list.py:90 +msgid "Download starts: %s" +msgstr "" + +#: module/thread_list.py:136 +msgid "Parsed links from %s: %i" +msgstr "" + +#: module/thread_list.py:138 +msgid "No links in %s" +msgstr "" + +#: module/thread_list.py:145 +msgid "Download finished: %s" +msgstr "" + +#: module/thread_list.py:151 +msgid "Download failed: %s | %s" +msgstr "" + +#: module/thread_list.py:156 +msgid "Download aborted: %s" +msgstr "" + +#: module/thread_list.py:206 +msgid "Starting reconnect" +msgstr "" + +#: module/thread_list.py:220 +msgid "Reconnected, new IP: %s" +msgstr "" + +#: pyLoadCore.py:111 +msgid "pycrypto to decode container files" +msgstr "" + +#: pyLoadCore.py:112 +msgid "Python Image Libary (PIL) for captha reading" +msgstr "" + +#: pyLoadCore.py:113 +msgid "pycurl for lower memory footprint while downloading" +msgstr "" + +#: pyLoadCore.py:114 +msgid "Django for webinterface" +msgstr "" + +#: pyLoadCore.py:115 +msgid "tesseract for captcha reading" +msgstr "" + +#: pyLoadCore.py:116 +msgid "gocr for captcha reading" +msgstr "" + +#: pyLoadCore.py:118  msgid "folder for logs"  msgstr "" -#: Core.py:60 +#: pyLoadCore.py:119  msgid "folder for downloads"  msgstr "" -#: Core.py:61 +#: pyLoadCore.py:120  msgid "file for links"  msgstr "" -#: Core.py:62 +#: pyLoadCore.py:121  msgid "file for failed links"  msgstr "" -#: Core.py:68 +#: pyLoadCore.py:124 +msgid "OpenSSL for secure connection" +msgstr "" + +#: pyLoadCore.py:125 +msgid "ssl certificate" +msgstr "" + +#: pyLoadCore.py:126 +msgid "ssl key" +msgstr "" + +#: pyLoadCore.py:150  msgid "Downloadtime: %s"  msgstr "" -#: Core.py:96 -msgid " added" +#: pyLoadCore.py:179 +msgid "restarting pyLoad"  msgstr "" -#: Core.py:97 -msgid "created index of plugins" +#: pyLoadCore.py:183 +msgid "pyLoad quits"  msgstr "" -#: Core.py:119 -msgid "new update %s on pyload.org" +#: pyLoadCore.py:194 +msgid "Secure XMLRPC Server Started"  msgstr "" -#: Core.py:121 -msgid "newst version %s in use:" +#: pyLoadCore.py:197 +msgid "Auth XMLRPC Server Started"  msgstr "" -#: Core.py:123 -msgid "beta version %s in use:" +#: pyLoadCore.py:203 +msgid "Failed starting XMLRPC server, CLI and GUI will not be available: %s"  msgstr "" -#: Core.py:132 +#: pyLoadCore.py:272  msgid "%s created"  msgstr "" -#: Core.py:194 -msgid "%i seconds" +#: pyLoadCore.py:275 +msgid "could not find %s: %s" +msgstr "" + +#: pyLoadCore.py:277 +msgid "could not create %s: %s" +msgstr "" + +#: pyLoadCore.py:305 +msgid "%s added" +msgstr "" + +#: pyLoadCore.py:306 +msgid "created index of plugins" +msgstr "" + +#: pyLoadCore.py:325 +msgid "shutting down..." +msgstr "" + +#: pyLoadCore.py:341 +msgid "No Updates for pyLoad" +msgstr "" + +#: pyLoadCore.py:344 +msgid "New pyLoad Version %s available" +msgstr "" + +#: pyLoadCore.py:369 +msgid "Auto install Failed"  msgstr "" -#: Core.py:222 -msgid "Server Mode" +#: pyLoadCore.py:607 +msgid "killed pyLoad from Terminal"  msgstr "" diff --git a/module/download_thread.py b/module/download_thread.py index 65c7e1e23..7c899b185 100644 --- a/module/download_thread.py +++ b/module/download_thread.py @@ -1,22 +1,26 @@  #!/usr/bin/env python  # -*- coding: utf-8 -*- -# -#Copyright (C) 2009 sp00b, sebnapi -# -#This program is free software; you can redistribute it and/or modify -#it under the terms of the GNU General Public License as published by -#the Free Software Foundation; either version 3 of the License, -#or (at your option) any later version. -# -#This program is distributed in the hope that it will be useful, -#but WITHOUT ANY WARRANTY; without even the implied warranty of -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -#See the GNU General Public License for more details. -# -#You should have received a copy of the GNU General Public License -# along with this program; if not, see <http://www.gnu.org/licenses/>. -# -### + +""" +    This program is free software; you can redistribute it and/or modify +    it under the terms of the GNU General Public License as published by +    the Free Software Foundation; either version 3 of the License, +    or (at your option) any later version. + +    This program is distributed in the hope that it will be useful, +    but WITHOUT ANY WARRANTY; without even the implied warranty of +    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +    See the GNU General Public License for more details. + +    You should have received a copy of the GNU General Public License +    along with this program; if not, see <http://www.gnu.org/licenses/>. +     +    @author: mkaay +    @author: spoob +    @author: sebnapi +    @version: v0.3 +""" +  import threading  import traceback  from os.path import join @@ -108,9 +112,9 @@ class Download_Thread(threading.Thread):                          code, msg = e                          if code == 7:                              sleep(60) -                        self.parent.parent.logger.info("Hoster unvailable, wait 60 seconds") +                        self.parent.parent.logger.info(_("Hoster unvailable, wait 60 seconds"))                      except Exception, f: -                        self.parent.parent.logger.debug("Error getting error code: "+ str(f)) +                        self.parent.parent.logger.debug(_("Error getting error code: %s") % f)                          if self.parent.parent.config['general']['debug_mode']:                              traceback.print_exc()                      self.loadedPyFile.status.type = "failed" @@ -156,13 +160,13 @@ class Download_Thread(threading.Thread):              20 - unknown error              """              if code == 0: -                self.parent.parent.logger.info("Checksum ok ('%s')" % status.filename) +                self.parent.parent.logger.info(_("Checksum ok ('%s')") % status.filename)              elif code == 1: -                self.parent.parent.logger.info("Checksum not matched! ('%s')" % status.filename) +                self.parent.parent.logger.info(_("Checksum not matched! ('%s')") % status.filename)              elif code == 5: -                self.parent.parent.logger.debug("Can't get checksum for %s" % status.filename) +                self.parent.parent.logger.debug(_("Can't get checksum for %s") % status.filename)              elif code == 10: -                self.parent.parent.logger.debug("Checksum not implemented for %s" % status.filename) +                self.parent.parent.logger.debug(_("Checksum not implemented for %s") % status.filename)              if not check:                  raise Checksum(code, location) diff --git a/module/file_list.py b/module/file_list.py index b9f70bd27..d251868b9 100644 --- a/module/file_list.py +++ b/module/file_list.py @@ -84,11 +84,11 @@ class File_List(object):          self.lock.release()          if len(self.data["collector"]) > 0: -            self.core.logger.info("Found %s links in linkcollector" % len(self.data["collector"])) +            self.core.logger.info(_("Found %s links in linkcollector") % len(self.data["collector"]))          if len(self.data["packages"]) > 0: -            self.core.logger.info("Found %s unqueued packages" % len(self.data["packages"])) +            self.core.logger.info(_("Found %s unqueued packages") % len(self.data["packages"]))          if len(self.data["queue"]) > 0: -            self.core.logger.info("Added %s packages to queue" % len(self.data["queue"])) +            self.core.logger.info(_("Added %s packages to queue") % len(self.data["queue"]))      def save(self):          self.lock.acquire() @@ -298,8 +298,6 @@ class File_List(object):                      pyfile.plugin.req.abort = True                  sleep(0.1)                  del packager.file_list.data[key][n] -                if key == "packages": -                    key = "collector"                  packager.file_list.core.pullManager.addEvent(RemoveEvent("pack", id, key))              finally:                  packager.file_list.lock.release() diff --git a/module/gui/Collector.py b/module/gui/Collector.py index c0754aa42..ebdbd372d 100644 --- a/module/gui/Collector.py +++ b/module/gui/Collector.py @@ -66,12 +66,12 @@ class PackageCollector(QObject):              for pack in ItemIterator(self.rootItem):                  for k, child in enumerate(pack.getChildren()):                      if child.getFileData()["id"] == event[3]: -                        pack.takeChild(k) +                        pack.removeChild(child)                          break          else:              for k, pack in enumerate(ItemIterator(self.rootItem)):                  if pack.getPackData()["id"] == event[3]: -                    self.rootItem.takeChild(k) +                    self.rootItem.removeChild(pack)                      break      def insertEvent(self, event): @@ -99,6 +99,8 @@ class PackageCollector(QObject):      def updateEvent(self, event):          if event[2] == "file":              info = self.connector.getLinkInfo(event[3]) +            if not info: +                return              for pack in ItemIterator(self.rootItem):                  if pack.getPackData()["id"] == info["package"]:                      child = pack.getChild(event[3]) @@ -145,7 +147,7 @@ class PackageCollector(QObject):      def clearAll(self):          for k, pack in enumerate(ItemIterator(self.rootItem)):              if not pack.getPackData()["id"] == "fixed": -                self.rootItem.takeChild(k) +                self.rootItem.removeChild(pack)      class PackageCollectorPack(QTreeWidgetItem):          def __init__(self, collector): @@ -238,7 +240,7 @@ class LinkCollector(QObject):          if event[2] == "file":              for k, file in enumerate(ItemIterator(self.rootItem)):                  if file.getFileData()["id"] == event[3]: -                    self.rootItem.takeChild(k) +                    self.rootItem.removeChild(file)                      break      def insertEvent(self, event): @@ -251,6 +253,8 @@ class LinkCollector(QObject):      def updateEvent(self, event):          if event[2] == "file":              data = self.connector.getLinkInfo(event[3]) +            if not data: +                return              file = getFile(event[3])              file.setFileData(data)              self.addFile(event[3], file) @@ -281,7 +285,8 @@ class LinkCollector(QObject):          return None      def clearAll(self): -        self.rootItem.takeChildren() +        for k, file in enumerate(ItemIterator(self.rootItem)): +            self.rootItem.removeChild(file)      class LinkCollectorFile(QTreeWidgetItem):          def __init__(self, collector): diff --git a/module/gui/Queue.py b/module/gui/Queue.py index 9659137ec..bd45e27dc 100644 --- a/module/gui/Queue.py +++ b/module/gui/Queue.py @@ -89,7 +89,6 @@ class Queue(QObject):              self.addPack(pack.getPackData()["id"], pack)      def fullReload(self): -        locker = QMutexLocker(self.mutex)          self.clearAll()          packs = self.connector.getPackageQueue()          for data in packs: @@ -106,6 +105,7 @@ class Queue(QObject):              self.addPack(data["id"], pack)      def addEvent(self, event): +        locker = QMutexLocker(self.mutex)          if event[0] == "reload":              self.fullReload()          elif event[0] == "remove": @@ -120,12 +120,12 @@ class Queue(QObject):              for pack in ItemIterator(self.rootItem):                  for k, child in enumerate(pack.getChildren()):                      if child.getFileData()["id"] == event[3]: -                        pack.takeChild(k) +                        pack.removeChild(child)                          break          else:              for k, pack in enumerate(ItemIterator(self.rootItem)):                  if pack.getPackData()["id"] == event[3]: -                    self.rootItem.takeChild(k) +                    self.rootItem.removeChild(pack)                      break      def insertEvent(self, event): @@ -155,6 +155,8 @@ class Queue(QObject):      def updateEvent(self, event):          if event[2] == "file":              info = self.connector.getLinkInfo(event[3]) +            if not info: +                return              for pack in ItemIterator(self.rootItem):                  if pack.getPackData()["id"] == info["package"]:                      child = pack.getChild(event[3]) @@ -219,7 +221,8 @@ class Queue(QObject):          return None      def clearAll(self): -        self.rootItem.takeChildren() +        for pack in ItemIterator(self.rootItem): +            self.rootItem.removeChild(pack)      def getWaitingProgress(self, q):          locker = QMutexLocker(self.mutex) diff --git a/module/gui/connector.py b/module/gui/connector.py index 3146ecf5b..b6c383956 100644 --- a/module/gui/connector.py +++ b/module/gui/connector.py @@ -131,7 +131,8 @@ class connector(QThread):              info["downloading"] = None              return info          except Exception, e: -            self.emit(SIGNAL("proxy_error"), "getLinkInfo", e) +            #self.emit(SIGNAL("proxy_error"), "getLinkInfo", e) +            return None          finally:              self.mutex.unlock() diff --git a/module/plugins/decrypter/SerienjunkiesOrg.py b/module/plugins/decrypter/SerienjunkiesOrg.py index af7dc8169..d8396bd0b 100644 --- a/module/plugins/decrypter/SerienjunkiesOrg.py +++ b/module/plugins/decrypter/SerienjunkiesOrg.py @@ -5,6 +5,7 @@ import re  from module.Plugin import Plugin  from module.BeautifulSoup import BeautifulSoup  from module.unescape import unescape +from module.download_thread import CaptchaError  class SerienjunkiesOrg(Plugin):      def __init__(self, parent): diff --git a/module/thread_list.py b/module/thread_list.py index 1a66bf6f5..a50d73aaf 100644 --- a/module/thread_list.py +++ b/module/thread_list.py @@ -1,22 +1,27 @@  #!/usr/bin/env python  # -*- coding: utf-8 -*- -# -#Copyright (C) 2009 sp00b, sebnapi, RaNaN -# -#This program is free software; you can redistribute it and/or modify -#it under the terms of the GNU General Public License as published by -#the Free Software Foundation; either version 3 of the License, -#or (at your option) any later version. -# -#This program is distributed in the hope that it will be useful, -#but WITHOUT ANY WARRANTY; without even the implied warranty of -#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -#See the GNU General Public License for more details. -# -#You should have received a copy of the GNU General Public License -# along with this program; if not, see <http://www.gnu.org/licenses/>. -# -### + +""" +    This program is free software; you can redistribute it and/or modify +    it under the terms of the GNU General Public License as published by +    the Free Software Foundation; either version 3 of the License, +    or (at your option) any later version. + +    This program is distributed in the hope that it will be useful, +    but WITHOUT ANY WARRANTY; without even the implied warranty of +    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +    See the GNU General Public License for more details. + +    You should have received a copy of the GNU General Public License +    along with this program; if not, see <http://www.gnu.org/licenses/>. +     +    @author: mkaay +    @author: spoob +    @author: sebnapi +    @author: RaNaN +    @version: v0.3 +""" +  from __future__ import with_statement  from os.path import exists  import re @@ -80,9 +85,9 @@ class Thread_List(object):                  self.occ_plugins.append(pyfile.modul.__name__)              pyfile.active = True              if pyfile.plugin.props['type'] == "container": -                self.parent.logger.info('Get links from: ' + pyfile.url) +                self.parent.logger.info(_("Get links from: %s") % pyfile.url)              else: -                self.parent.logger.info('Download starts: ' + pyfile.url) +                self.parent.logger.info(_("Download starts: %s") % pyfile.url)          self.lock.release()          return pyfile @@ -128,27 +133,27 @@ class Thread_List(object):                  self.list.packager.removeFileFromPackage(pyfile.id, pyfile.package.data["id"])                  if newLinks: -                    self.parent.logger.info("Parsed links from %s: %i" % (pyfile.status.filename, newLinks)) +                    self.parent.logger.info(_("Parsed links from %s: %i") % (pyfile.status.filename, newLinks))                  else: -                    self.parent.logger.info("No links in %s" % pyfile.status.filename) +                    self.parent.logger.info(_("No links in %s") % pyfile.status.filename)                  #~ self.list.packager.removeFileFromPackage(pyfile.id, pyfile.package.id)                  #~ for link in pyfile.plugin.links:                  #~ id = self.list.collector.addLink(link)                  #~ pyfile.packager.pullOutPackage(pyfile.package.id)                  #~ pyfile.packager.addFileToPackage(pyfile.package.id, pyfile.collector.popFile(id))              else: -                self.parent.logger.info("Download finished: %s" % pyfile.url) +                self.parent.logger.info(_("Download finished: %s") % pyfile.url)          elif pyfile.status.type == "reconnected":              pyfile.plugin.req.init_curl()          elif pyfile.status.type == "failed": -            self.parent.logger.warning("Download failed: " + pyfile.url + " | " + pyfile.status.error) +            self.parent.logger.warning(_("Download failed: %s | %s") % (pyfile.url, pyfile.status.error))              with open(self.parent.config['general']['failed_file'], 'a') as f:                  f.write(pyfile.url + "\n")          elif pyfile.status.type == "aborted": -            self.parent.logger.info("Download aborted: " + pyfile.url) +            self.parent.logger.info(_("Download aborted: %s") % pyfile.url)          self.list.save() @@ -198,7 +203,7 @@ class Thread_List(object):              return False      def reconnect(self): -        self.parent.logger.info("Start reconnect") +        self.parent.logger.info(_("Starting reconnect"))          ip = re.match(".*Current IP Address: (.*)</body>.*", urllib2.urlopen("http://checkip.dyndns.org/").read()).group(1)          self.parent.hookManager.beforeReconnecting(ip)          reconn = subprocess.Popen(self.parent.config['reconnect']['method'])#, stdout=subprocess.PIPE) @@ -212,7 +217,7 @@ class Thread_List(object):                  ip = ""              time.sleep(1)          self.parent.hookManager.afterReconnecting(ip) -        self.parent.logger.info("Reconnected, new IP: " + ip) +        self.parent.logger.info(_("Reconnected, new IP: %s") % ip)      def stopAllDownloads(self):          self.pause = True diff --git a/pyLoadCore.py b/pyLoadCore.py index dbc9dc1cd..9df831aed 100755 --- a/pyLoadCore.py +++ b/pyLoadCore.py @@ -108,12 +108,12 @@ class Core(object):          translation = gettext.translation("pyLoad", join(self.path, "locale"), languages=[self.config['general']['language']])
          translation.install(unicode=True)
 -        self.check_install("Crypto", "pycrypto to decode container files")
 -        self.check_install("Image", "Python Image Libary (PIL) for captha reading")
 -        self.check_install("pycurl", "pycurl for lower memory footprint while downloading")
 -        self.check_install("django", "Django for webinterface")
 -        self.check_install("tesseract", "tesseract for captcha reading", False)
 -        self.check_install("gocr", "gocr for captcha reading", False)
 +        self.check_install("Crypto", _("pycrypto to decode container files"))
 +        self.check_install("Image", _("Python Image Libary (PIL) for captha reading"))
 +        self.check_install("pycurl", _("pycurl for lower memory footprint while downloading"))
 +        self.check_install("django", _("Django for webinterface"))
 +        self.check_install("tesseract", _("tesseract for captcha reading"), False)
 +        self.check_install("gocr", _("gocr for captcha reading"), False)
          self.check_file(self.config['log']['log_folder'], _("folder for logs"), True)
          self.check_file(self.config['general']['download_folder'], _("folder for downloads"), True)
 @@ -121,7 +121,7 @@ class Core(object):          self.check_file(self.config['general']['failed_file'], _("file for failed links"))
          if self.config['ssl']['activated']:
 -            self.check_install("OpenSSL", "OpenSSL for secure connection", True)
 +            self.check_install("OpenSSL", _("OpenSSL for secure connection"), True)
              self.check_file(self.config['ssl']['cert'], _("ssl certificate"), False, True)
              self.check_file(self.config['ssl']['key'], _("ssl key"), False, True)
 @@ -176,11 +176,11 @@ class Core(object):          while True:
              sleep(2)
              if self.do_restart:
 -                self.logger.info("restarting pyLoad")
 +                self.logger.info(_("restarting pyLoad"))
                  self.restart()
              if self.do_kill:
                  self.shutdown()
 -                self.logger.info("pyLoad quits")
 +                self.logger.info(_("pyLoad quits"))
                  exit()
              if self.last_update_check + self.update_check_interval <= time.time():
                  self.update_available = self.check_update()
 @@ -191,16 +191,16 @@ class Core(object):              usermap = {self.config['remote']['username']: self.config['remote']['password']}
              if self.config['ssl']['activated']:
                  self.server = Server.SecureXMLRPCServer(server_addr, self.config['ssl']['cert'], self.config['ssl']['key'], usermap)
 -                self.logger.info("Secure XMLRPC Server Started")
 +                self.logger.info(_("Secure XMLRPC Server Started"))
              else:
                  self.server = Server.AuthXMLRPCServer(server_addr, usermap)
 -                self.logger.info("Auth XMLRPC Server Started")
 +                self.logger.info(_("Auth XMLRPC Server Started"))
              self.server.register_instance(self.server_methods)
              thread.start_new_thread(self.server.serve_forever, ())
          except Exception, e:
 -            self.logger.error("Failed starting socket server, CLI and GUI will not be available: %s" % str(e))
 +            self.logger.error(_("Failed starting XMLRPC server CLI and GUI will not be available: %s") % str(e))
              if self.config['general']['debug_mode']:
                  import traceback
                  traceback.print_exc()
 @@ -302,7 +302,7 @@ class Core(object):                          break
              if plugin_pattern != "":
                  self.plugins_avaible[plugin_file] = plugin_pattern
 -                self.logger.debug(plugin_file + _(" added"))
 +                self.logger.debug(_("%s added") % plugin_file)
          self.logger.info(_("created index of plugins"))
      def compare_time(self, start, end):
 @@ -322,7 +322,7 @@ class Core(object):          return self.downloadSpeedLimit
      def shutdown(self):
 -        self.logger.info("shutting down...")
 +        self.logger.info(_("shutting down..."))
          if self.config['webinterface']['activated']:
              self.webserver.quit()
              self.webserver.join()
 @@ -338,10 +338,10 @@ class Core(object):              if self.config['updates']['search_updates']:
                  version_check = Request().load("http://get.pyload.org/check/%s/" % (CURRENT_VERSION, ))
                  if version_check == "":
 -                    self.logger.info("No Updates for pyLoad")
 +                    self.logger.info(_("No Updates for pyLoad"))
                      return False
                  else:
 -                    self.logger.info("New pyLoad Version %s available" % version_check)
 +                    self.logger.info(_("New pyLoad Version %s available") % version_check)
                      return True
              else:
                  return False
 @@ -366,7 +366,7 @@ class Core(object):                          __import__("module.Unzip", globals(), locals(), "Unzip", -1).Unzip().extract(tmp_zip_name, "Test/")
                          return True
                      except:
 -                        self.logger.info("Auto install Failed")
 +                        self.logger.info(_("Auto install Failed"))
                          return False
                  else:
                      return False
 @@ -604,5 +604,5 @@ if __name__ == "__main__":          pyload_core.start()
      except KeyboardInterrupt:
          pyload_core.shutdown()
 -        pyload_core.logger.info("killed pyLoad from Terminal")
 +        pyload_core.logger.info(_("killed pyLoad from Terminal"))
          exit()
 | 
