diff options
-rw-r--r-- | locale/cli.pot | 150 | ||||
-rw-r--r-- | locale/core.pot | 462 | ||||
-rw-r--r-- | locale/generate_locale.py | 10 | ||||
-rw-r--r-- | locale/gui.pot | 430 | ||||
-rw-r--r-- | locale/setup.pot | 4 | ||||
-rw-r--r-- | module/FileDatabase.py | 276 | ||||
-rw-r--r-- | module/gui/Collector.py | 5 | ||||
-rw-r--r-- | module/gui/Queue.py | 16 | ||||
-rw-r--r-- | module/network/FtpRequest.py | 12 | ||||
-rwxr-xr-x | module/network/Request.py | 8 | ||||
-rw-r--r-- | module/network/XdccRequest.py | 1 | ||||
-rw-r--r-- | module/plugins/Plugin.py | 3 | ||||
-rw-r--r-- | module/plugins/hooks/UnRar.py | 6 |
13 files changed, 613 insertions, 770 deletions
diff --git a/locale/cli.pot b/locale/cli.pot index e51cba280..594f750a7 100644 --- a/locale/cli.pot +++ b/locale/cli.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: pyLoad 0.4\n" +"Project-Id-Version: pyLoad 0.4.3\n" "Report-Msgid-Bugs-To: 'bugs@pyload.org'\n" -"POT-Creation-Date: 2010-10-07 22:49+0200\n" +"POT-Creation-Date: 2010-12-12 14:19+0100\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" @@ -17,218 +17,222 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: pyLoadCli.py:59 pyLoadCli.py:553 +#: pyLoadCli.py:60 pyLoadCli.py:584 msgid "pyLoadCore not running" msgstr "" -#: pyLoadCli.py:65 pyLoadCli.py:124 +#: pyLoadCli.py:66 pyLoadCli.py:125 msgid " Command Line Interface" msgstr "" -#: pyLoadCli.py:126 +#: pyLoadCli.py:127 #, python-format msgid "%s Downloads:" msgstr "" -#: pyLoadCli.py:136 +#: pyLoadCli.py:139 msgid " Speed: " msgstr "" -#: pyLoadCli.py:136 +#: pyLoadCli.py:139 msgid " Size: " msgstr "" -#: pyLoadCli.py:136 +#: pyLoadCli.py:140 msgid " Finished in: " msgstr "" -#: pyLoadCli.py:136 +#: pyLoadCli.py:141 msgid " ID: " msgstr "" -#: pyLoadCli.py:141 +#: pyLoadCli.py:146 msgid "waiting: " msgstr "" -#: pyLoadCli.py:147 pyLoadCli.py:149 +#: pyLoadCli.py:153 pyLoadCli.py:157 msgid "Status: " msgstr "" -#: pyLoadCli.py:147 pyLoadCli.py:149 +#: pyLoadCli.py:153 pyLoadCli.py:157 msgid " total Speed: " msgstr "" -#: pyLoadCli.py:147 pyLoadCli.py:149 +#: pyLoadCli.py:154 pyLoadCli.py:158 msgid " Files in queue: " msgstr "" -#: pyLoadCli.py:161 +#: pyLoadCli.py:170 msgid "Menu:" msgstr "" -#: pyLoadCli.py:166 +#: pyLoadCli.py:175 msgid " Add Links" msgstr "" -#: pyLoadCli.py:168 +#: pyLoadCli.py:177 msgid " Manage Links" msgstr "" -#: pyLoadCli.py:170 +#: pyLoadCli.py:179 msgid " (Un)Pause Server" msgstr "" -#: pyLoadCli.py:172 +#: pyLoadCli.py:181 msgid " Kill Server" msgstr "" -#: pyLoadCli.py:174 +#: pyLoadCli.py:183 msgid " Quit" msgstr "" -#: pyLoadCli.py:184 +#: pyLoadCli.py:193 msgid "Name your package." msgstr "" -#: pyLoadCli.py:194 pyLoadCli.py:211 pyLoadCli.py:251 +#: pyLoadCli.py:203 pyLoadCli.py:220 pyLoadCli.py:261 msgid " back to main menu" msgstr "" -#: pyLoadCli.py:199 +#: pyLoadCli.py:208 #, python-format msgid "Package: %s" msgstr "" -#: pyLoadCli.py:201 +#: pyLoadCli.py:210 msgid "Parse the links you want to add." msgstr "" -#: pyLoadCli.py:203 +#: pyLoadCli.py:212 #, python-format msgid "Type %s when done." msgstr "" -#: pyLoadCli.py:205 +#: pyLoadCli.py:214 msgid "Links added: " msgstr "" -#: pyLoadCli.py:217 +#: pyLoadCli.py:227 msgid "" "Type d(number of package) to delete a package, r to restart, or w/o d,r to " "look into it." msgstr "" -#: pyLoadCli.py:233 +#: pyLoadCli.py:243 msgid "Type d(number) of the link you want to delete or r(number) to restart." msgstr "" -#: pyLoadCli.py:249 +#: pyLoadCli.py:259 msgid " - previous" msgstr "" -#: pyLoadCli.py:249 +#: pyLoadCli.py:259 msgid " - next" msgstr "" -#: pyLoadCli.py:533 -msgid "Username: " +#: pyLoadCli.py:484 +msgid "status" msgstr "" -#: pyLoadCli.py:534 -msgid "address: " +#: pyLoadCli.py:484 +msgid "prints server status" msgstr "" -#: pyLoadCli.py:536 -msgid "Use SSL? ([y]/n): " +#: pyLoadCli.py:485 +msgid "queue" msgstr "" -#: pyLoadCli.py:541 -msgid "Port: " +#: pyLoadCli.py:485 +msgid "prints downloads in queue" msgstr "" -#: pyLoadCli.py:544 -msgid "Password: " +#: pyLoadCli.py:486 +msgid "collector" msgstr "" -#: pyLoadCli.py:558 -msgid "Linklist added" +#: pyLoadCli.py:486 +msgid "prints downloads in collector" msgstr "" -#: pyLoadCli.py:580 -msgid "Unknown Command" +#: pyLoadCli.py:487 +msgid "pause" msgstr "" -#: pyLoadCli.py:581 -msgid "Use one of:" +#: pyLoadCli.py:487 +msgid "pause the server" msgstr "" -#: pyLoadCli.py:583 -msgid "status" +#: pyLoadCli.py:488 +msgid "unpause" msgstr "" -#: pyLoadCli.py:583 -msgid "prints server status" +#: pyLoadCli.py:488 +msgid "continue downloads" msgstr "" -#: pyLoadCli.py:584 -msgid "queue" +#: pyLoadCli.py:489 +msgid "toggle" msgstr "" -#: pyLoadCli.py:584 -msgid "prints download queue" +#: pyLoadCli.py:489 +msgid "toggle pause/unpause" msgstr "" -#: pyLoadCli.py:585 -msgid "pause" +#: pyLoadCli.py:490 +msgid "kill" msgstr "" -#: pyLoadCli.py:585 -msgid "pause the server" +#: pyLoadCli.py:490 +msgid "kill server" msgstr "" -#: pyLoadCli.py:586 -msgid "unpause" +#: pyLoadCli.py:563 +msgid "Username: " msgstr "" -#: pyLoadCli.py:586 -msgid "continue downloads" +#: pyLoadCli.py:564 +msgid "address: " msgstr "" -#: pyLoadCli.py:587 -msgid "toggle" +#: pyLoadCli.py:566 +msgid "Use SSL? ([y]/n): " msgstr "" -#: pyLoadCli.py:587 -msgid "toggle pause/unpause" +#: pyLoadCli.py:571 +msgid "Port: " msgstr "" -#: pyLoadCli.py:588 -msgid "kill" +#: pyLoadCli.py:575 +msgid "Password: " msgstr "" #: pyLoadCli.py:588 -msgid "kill server" +msgid "Linklist added" msgstr "" -#: pyLoadCli.py:598 +#: pyLoadCli.py:617 msgid "Status: paused" msgstr "" -#: pyLoadCli.py:600 +#: pyLoadCli.py:619 msgid "Status: running" msgstr "" -#: pyLoadCli.py:601 +#: pyLoadCli.py:621 #, python-format msgid "%s Downloads" msgstr "" -#: pyLoadCli.py:604 +#: pyLoadCli.py:624 #, python-format msgid "Downloading: %(name)-40s %(percent)s%% @%(speed)dkB/s" msgstr "" -#: pyLoadCli.py:606 +#: pyLoadCli.py:626 #, python-format msgid "Waiting: %(name)s-40s: %(format_wait)s" msgstr "" + +#: pyLoadCli.py:629 +msgid "Unknown Command" +msgstr "" diff --git a/locale/core.pot b/locale/core.pot index fd14329df..8f9834e44 100644 --- a/locale/core.pot +++ b/locale/core.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: pyLoad 0.4\n" +"Project-Id-Version: pyLoad 0.4.3\n" "Report-Msgid-Bugs-To: 'bugs@pyload.org'\n" -"POT-Creation-Date: 2010-10-07 22:49+0200\n" +"POT-Creation-Date: 2010-12-12 14:19+0100\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" @@ -17,177 +17,141 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: pyLoadCore.py:163 +#: pyLoadCore.py:177 msgid "Received Quit signal" msgstr "" -#: pyLoadCore.py:205 +#: pyLoadCore.py:260 +#, python-format +msgid "pyLoad already running with pid %s" +msgstr "" + +#: pyLoadCore.py:274 #, python-format msgid "Failed changing group: %s" msgstr "" -#: pyLoadCore.py:214 +#: pyLoadCore.py:283 #, python-format msgid "Failed changing user: %s" msgstr "" -#: pyLoadCore.py:216 +#: pyLoadCore.py:285 msgid "folder for logs" msgstr "" -#: pyLoadCore.py:227 +#: pyLoadCore.py:296 #, python-format msgid "Using home directory: %s" msgstr "" -#: pyLoadCore.py:231 +#: pyLoadCore.py:302 msgid "pycrypto to decode container files" msgstr "" -#: pyLoadCore.py:232 +#: pyLoadCore.py:303 msgid "Python Image Libary (PIL) for captcha reading" msgstr "" -#: pyLoadCore.py:234 +#: pyLoadCore.py:305 msgid "Django for webinterface" msgstr "" -#: pyLoadCore.py:235 +#: pyLoadCore.py:306 msgid "folder for temporary files" msgstr "" -#: pyLoadCore.py:236 +#: pyLoadCore.py:307 msgid "tesseract for captcha reading" msgstr "" -#: pyLoadCore.py:240 +#: pyLoadCore.py:311 msgid "folder for downloads" msgstr "" -#: pyLoadCore.py:241 +#: pyLoadCore.py:312 msgid "file for links" msgstr "" -#: pyLoadCore.py:244 +#: pyLoadCore.py:315 msgid "OpenSSL for secure connection" msgstr "" -#: pyLoadCore.py:268 +#: pyLoadCore.py:339 #, python-format msgid "Downloadtime: %s" msgstr "" -#: pyLoadCore.py:279 +#: pyLoadCore.py:350 #, python-format msgid "Free space: %sGB" msgstr "" -#: pyLoadCore.py:281 +#: pyLoadCore.py:352 #, python-format msgid "Free space: %sMB" msgstr "" -#: pyLoadCore.py:302 -msgid "links.txt could not be cleared" -msgstr "" - -#: pyLoadCore.py:319 +#: pyLoadCore.py:381 msgid "restarting pyLoad" msgstr "" -#: pyLoadCore.py:323 +#: pyLoadCore.py:385 msgid "pyLoad quits" msgstr "" -#: pyLoadCore.py:344 +#: pyLoadCore.py:401 msgid "Secure XMLRPC Server Started" msgstr "" -#: pyLoadCore.py:346 +#: pyLoadCore.py:403 msgid "SSL Certificates not found, fallback to auth XMLRPC server" msgstr "" -#: pyLoadCore.py:348 pyLoadCore.py:351 +#: pyLoadCore.py:405 pyLoadCore.py:408 msgid "Auth XMLRPC Server Started" msgstr "" -#: pyLoadCore.py:357 +#: pyLoadCore.py:414 #, python-format msgid "Failed starting XMLRPC server CLI and GUI will not be available: %s" msgstr "" -#: pyLoadCore.py:401 +#: pyLoadCore.py:458 #, python-format msgid "Install %s" msgstr "" -#: pyLoadCore.py:436 +#: pyLoadCore.py:493 #, python-format msgid "could not find %(desc)s: %(name)s" msgstr "" -#: pyLoadCore.py:438 +#: pyLoadCore.py:495 #, python-format msgid "could not create %(desc)s: %(name)s" msgstr "" -#: pyLoadCore.py:463 +#: pyLoadCore.py:520 msgid "shutting down..." msgstr "" -#: pyLoadCore.py:478 +#: pyLoadCore.py:535 msgid "error while shutting down" msgstr "" -#: pyLoadCore.py:611 +#: pyLoadCore.py:670 #, python-format msgid "Added package %(name)s containing %(count)d links" msgstr "" -#: pyLoadCore.py:809 -msgid "killed pyLoad from Terminal" -msgstr "" - -#: module/ThreadManager.py:94 -#, python-format -msgid "Reconnect Failed: %s" -msgstr "" - -#: module/ThreadManager.py:115 -msgid "Reconnect script not found!" -msgstr "" - -#: module/ThreadManager.py:121 -msgid "Starting reconnect" -msgstr "" - -#: module/ThreadManager.py:130 +#: pyLoadCore.py:722 #, python-format -msgid "Old IP: %s" -msgstr "" - -#: module/ThreadManager.py:135 -msgid "Failed executing reconnect script!" +msgid "Added %(count)d links to package #%(package)d " msgstr "" -#: module/ThreadManager.py:151 -#, python-format -msgid "Reconnected, new IP: %s" -msgstr "" - -#: module/HookManager.py:50 -#, python-format -msgid "Error executing hooks: %s" -msgstr "" - -#: module/HookManager.py:64 -#, python-format -msgid "%(name)s loaded, activated %(value)s" -msgstr "" - -#: module/HookManager.py:66 -#, python-format -msgid "Failed activating %(name)s" +#: pyLoadCore.py:921 +msgid "killed pyLoad from Terminal" msgstr "" #: module/FileDatabase.py:84 @@ -250,382 +214,446 @@ msgstr "" msgid "unknown" msgstr "" -#: module/FileDatabase.py:499 module/plugins/hooks/IRCInterface.py:68 -#: module/plugins/hooks/XMPPInterface.py:75 +#: module/FileDatabase.py:519 module/plugins/hooks/XMPPInterface.py:75 +#: module/plugins/hooks/IRCInterface.py:68 #, python-format msgid "Package finished: %s" msgstr "" -#: module/FileDatabase.py:610 +#: module/FileDatabase.py:633 msgid "Filedatabase was deleted due to incompatible version." msgstr "" -#: module/PluginManager.py:79 +#: module/ThreadManager.py:95 +#, python-format +msgid "Reconnect Failed: %s" +msgstr "" + +#: module/ThreadManager.py:119 +msgid "Reconnect script not found!" +msgstr "" + +#: module/ThreadManager.py:125 +msgid "Starting reconnect" +msgstr "" + +#: module/ThreadManager.py:134 +#, python-format +msgid "Old IP: %s" +msgstr "" + +#: module/ThreadManager.py:139 +msgid "Failed executing reconnect script!" +msgstr "" + +#: module/ThreadManager.py:151 +#, python-format +msgid "Reconnected, new IP: %s" +msgstr "" + +#: module/HookManager.py:50 +#, python-format +msgid "Error executing hooks: %s" +msgstr "" + +#: module/HookManager.py:64 +#, python-format +msgid "%(name)s loaded, activated %(value)s" +msgstr "" + +#: module/HookManager.py:66 +#, python-format +msgid "Failed activating %(name)s" +msgstr "" + +#: module/JsEngine.py:89 +msgid "" +"No js engine detected, please install either Spidermonkey, ossp-js or pyv8" +msgstr "" + +#: module/PluginManager.py:83 msgid "Crypter" msgstr "" -#: module/PluginManager.py:80 +#: module/PluginManager.py:84 msgid "Container" msgstr "" -#: module/PluginManager.py:81 +#: module/PluginManager.py:85 msgid "Hoster" msgstr "" -#: module/PluginManager.py:83 +#: module/PluginManager.py:87 msgid "Captcha" msgstr "" -#: module/PluginManager.py:84 +#: module/PluginManager.py:88 msgid "Account" msgstr "" -#: module/PluginManager.py:85 +#: module/PluginManager.py:89 msgid "Hook" msgstr "" -#: module/PluginManager.py:87 +#: module/PluginManager.py:91 msgid "created index of plugins" msgstr "" -#: module/PluginManager.py:166 +#: module/PluginManager.py:173 #, python-format msgid "%s has invalid pattern." msgstr "" -#: module/PluginManager.py:293 +#: module/PluginManager.py:300 #, python-format msgid "Error importing %(name)s: %(msg)s" msgstr "" -#: module/PluginManager.py:294 +#: module/PluginManager.py:301 msgid "You should fix dependicies or deactivate load on startup." msgstr "" -#: module/AccountManager.py:85 +#: module/AccountManager.py:86 msgid "Account settings deleted, due to new config format." msgstr "" -#: module/PluginThread.py:150 +#: module/PluginThread.py:158 #, python-format msgid "Download skipped: %(name)s @ %(plugin)s" msgstr "" -#: module/PluginThread.py:153 +#: module/PluginThread.py:161 msgid "File already exists." msgstr "" -#: module/PluginThread.py:156 +#: module/PluginThread.py:164 #, python-format msgid "Download starts: %s" msgstr "" -#: module/PluginThread.py:164 module/PluginThread.py:319 +#: module/PluginThread.py:172 module/PluginThread.py:321 #, python-format msgid "Plugin %s is missing a function." msgstr "" -#: module/PluginThread.py:173 module/PluginThread.py:226 +#: module/PluginThread.py:179 module/PluginThread.py:231 +#: module/PluginThread.py:340 #, python-format msgid "Download aborted: %s" msgstr "" -#: module/PluginThread.py:192 +#: module/PluginThread.py:196 #, python-format msgid "Download restarted: %s" msgstr "" -#: module/PluginThread.py:202 module/PluginThread.py:328 +#: module/PluginThread.py:206 module/PluginThread.py:330 #, python-format msgid "Download is offline: %s" msgstr "" -#: module/PluginThread.py:205 module/PluginThread.py:251 +#: module/PluginThread.py:209 module/PluginThread.py:253 #, python-format msgid "Download failed: %(name)s | %(msg)s" msgstr "" -#: module/PluginThread.py:218 +#: module/PluginThread.py:223 msgid "" "Couldn't connect to host or connection resetted waiting 1 minute and retry." msgstr "" -#: module/PluginThread.py:268 +#: module/PluginThread.py:269 #, python-format msgid "Download finished: %s" msgstr "" -#: module/PluginThread.py:314 +#: module/PluginThread.py:316 #, python-format msgid "Decrypting starts: %s" msgstr "" -#: module/PluginThread.py:331 module/PluginThread.py:344 +#: module/PluginThread.py:333 module/PluginThread.py:354 #, python-format msgid "Decrypting failed: %(name)s | %(msg)s" msgstr "" -#: module/PluginThread.py:338 +#: module/PluginThread.py:347 #, python-format msgid "Retrying %s" msgstr "" -#: module/web/ServerThread.py:45 -msgid "Database for Webinterface does not exitst, it will not be available." +#: module/plugins/Container.py:71 +msgid "File not exists." msgstr "" -#: module/web/ServerThread.py:46 -msgid "Please run: python pyLoadCore.py -s" +#: module/plugins/Plugin.py:262 +msgid "" +"Pil and tesseract not installed and no Client connected for captcha " +"decrypting" msgstr "" -#: module/web/ServerThread.py:47 -msgid "" -"Go through the setup and create a database and add an user to gain access." +#: module/plugins/Plugin.py:264 +msgid "No Client connected for captcha decrypting" msgstr "" -#: module/web/ServerThread.py:88 -msgid "SSL certificates not found." +#: module/plugins/Plugin.py:319 module/plugins/Plugin.py:342 +#, python-format +msgid "Setting User and Group failed: %s" msgstr "" -#: module/web/ServerThread.py:98 +#: module/plugins/Crypter.py:63 #, python-format -msgid "" -"Can't use %(server)s, either python-flup or %(server)s is not installed!" +msgid "Parsed package %(name)s with %(len)d links" msgstr "" -#: module/web/ServerThread.py:132 +#: module/plugins/Account.py:51 module/plugins/Account.py:55 #, python-format -msgid "Starting nginx Webserver: %(host)s:%(port)d" +msgid "Could not login with %(plugin)s account %(user)s | %(msg)s" msgstr "" -#: module/web/ServerThread.py:169 +#: module/plugins/Account.py:51 +msgid "Wrong Password" +msgstr "" + +#: module/plugins/Account.py:157 #, python-format -msgid "Starting lighttpd Webserver: %(host)s:%(port)d" +msgid "Your Time %s has wrong format, use: 1:22-3:44" msgstr "" -#: module/web/ServerThread.py:179 +#: module/plugins/Account.py:194 #, python-format -msgid "Starting django builtin Webserver: %(host)s:%(port)d" +msgid "%(plugin)s Account %(user)s has not enough traffic" msgstr "" -#: module/plugins/Crypter.py:58 +#: module/plugins/Account.py:199 #, python-format -msgid "Parsed package %(name)s with %(len)d links" +msgid "%(plugin)s Account %(user)s is expired" msgstr "" -#: module/plugins/Plugin.py:252 -msgid "" -"Pil and tesseract not installed and no Client connected for captcha " -"decrypting" +#: module/plugins/crypter/SerienjunkiesOrg.py:114 +msgid "Downloadlimit reached" msgstr "" -#: module/plugins/Plugin.py:254 -msgid "No Client connected for captcha decrypting" +#: module/plugins/crypter/CryptItCom.py:40 +msgid "File not found" msgstr "" -#: module/plugins/Plugin.py:296 module/plugins/Plugin.py:319 +#: module/plugins/hooks/HotFolder.py:82 #, python-format -msgid "Setting User and Group failed: %s" +msgid "Added %s from HotFolder" msgstr "" -#: module/plugins/Container.py:69 -msgid "File not exists." +#: module/plugins/hooks/UpdateManager.py:43 +msgid "*** Plugins have been updated, please restart pyLoad ***" +msgstr "" + +#: module/plugins/hooks/UpdateManager.py:45 +msgid "No plugin updates available" msgstr "" -#: module/plugins/Account.py:50 module/plugins/Account.py:54 +#: module/plugins/hooks/UpdateManager.py:53 +msgid "No Updates for pyLoad" +msgstr "" + +#: module/plugins/hooks/UpdateManager.py:56 #, python-format -msgid "Could not login with %(plugin)s account %(user)s | %(msg)s" +msgid "*** New pyLoad Version %s available ***" msgstr "" -#: module/plugins/Account.py:50 -msgid "Wrong Password" +#: module/plugins/hooks/UpdateManager.py:57 +msgid "*** Get it here: http://pyload.org/download ***" msgstr "" -#: module/plugins/Account.py:148 +#: module/plugins/hooks/UpdateManager.py:60 +#: module/plugins/hooks/UpdateManager.py:70 +msgid "Not able to connect server for updates" +msgstr "" + +#: module/plugins/hooks/UpdateManager.py:95 #, python-format -msgid "Your Time %s has wrong format, use: 1:22-3:44" +msgid "New version of %(type)s|%(name)s : %(version).2f" msgstr "" -#: module/plugins/Account.py:185 +#: module/plugins/hooks/XMPPInterface.py:82 #, python-format -msgid "%(plugin)s Account %(user)s has not enough traffic" +msgid "Download finished: %(name)s @ %(plugin)s" msgstr "" -#: module/plugins/Account.py:190 +#: module/plugins/hooks/XMPPInterface.py:114 #, python-format -msgid "%(plugin)s Account %(user)s is expired" +msgid "pyLoad XMPP: Message from %s received." msgstr "" -#: module/plugins/crypter/SerienjunkiesOrg.py:103 -msgid "Downloadlimit reached" +#: module/plugins/hooks/XMPPInterface.py:115 +#, python-format +msgid "pyLoad XMPP: Body: %s" msgstr "" -#: module/plugins/crypter/CryptItCom.py:40 -msgid "File not found" +#: module/plugins/hooks/XMPPInterface.py:169 +#, python-format +msgid "pyLoad XMPP: Send message to %s" msgstr "" -#: module/plugins/hooks/ClickAndLoad.py:73 -msgid "Click'N'Load: Port 9666 already in use" +#: module/plugins/hooks/ExternalScripts.py:48 +#: module/plugins/hooks/ExternalScripts.py:49 +msgid "folders for scripts" msgstr "" -#: module/plugins/hooks/UnRar.py:118 +#: module/plugins/hooks/UnRar.py:119 #, python-format msgid "starting Unrar of %s" msgstr "" -#: module/plugins/hooks/UnRar.py:134 module/plugins/hooks/UnRar.py:164 +#: module/plugins/hooks/UnRar.py:135 module/plugins/hooks/UnRar.py:166 #, python-format msgid "Unrar of %s failed (wrong password)" msgstr "" -#: module/plugins/hooks/UnRar.py:140 +#: module/plugins/hooks/UnRar.py:141 #, python-format msgid "Unrar of %s failed (missing volume)" msgstr "" -#: module/plugins/hooks/UnRar.py:144 module/plugins/hooks/UnRar.py:161 +#: module/plugins/hooks/UnRar.py:145 module/plugins/hooks/UnRar.py:162 #, python-format msgid "Unrar of %s ok" msgstr "" -#: module/plugins/hooks/UnRar.py:149 module/plugins/hooks/UnRar.py:157 +#: module/plugins/hooks/UnRar.py:150 module/plugins/hooks/UnRar.py:158 #, python-format msgid "Unrar of %s failed" msgstr "" -#: module/plugins/hooks/UnRar.py:152 +#: module/plugins/hooks/UnRar.py:153 #, python-format msgid "" "Your ram amount of %s MB seems not sufficient to unrar this file. You can " "deactivate this warning and risk instability" msgstr "" +#: module/plugins/hooks/ClickAndLoad.py:73 +msgid "Click'N'Load: Port 9666 already in use" +msgstr "" + #: module/plugins/hooks/IRCInterface.py:75 #, python-format msgid "Download finished: %(name)s @ %(plugin)s " msgstr "" -#: module/plugins/hooks/XMPPInterface.py:82 +#: module/plugins/hoster/UploadedTo.py:56 +#: module/plugins/hoster/RapidshareCom.py:138 #, python-format -msgid "Download finished: %(name)s @ %(plugin)s" +msgid "%(name)s: Use Premium Account (%(left)sGB left)" msgstr "" -#: module/plugins/hooks/XMPPInterface.py:114 +#: module/plugins/hoster/UploadedTo.py:58 +#: module/plugins/hoster/RapidshareCom.py:140 #, python-format -msgid "pyLoad XMPP: Message from %s received." +msgid "%s: Not enough traffic left" msgstr "" -#: module/plugins/hooks/XMPPInterface.py:115 -#, python-format -msgid "pyLoad XMPP: Body: %s" +#: module/plugins/hoster/UploadedTo.py:61 +msgid "Traffic exceeded" msgstr "" -#: module/plugins/hooks/XMPPInterface.py:169 -#, python-format -msgid "pyLoad XMPP: Send message to %s" +#: module/plugins/hoster/FilesMailRu.py:91 +msgid "There was HTML Code in the Downloaded File(" msgstr "" -#: module/plugins/hooks/HotFolder.py:78 +#: module/plugins/hoster/NetloadIn.py:168 #, python-format -msgid "Added %s from HotFolder" -msgstr "" - -#: module/plugins/hooks/ExternalScripts.py:47 -#: module/plugins/hooks/ExternalScripts.py:48 -msgid "folders for scripts" +msgid "Netload: waiting between downloads %d s." msgstr "" -#: module/plugins/hooks/UpdateManager.py:43 -msgid "*** Plugins have been updated, please restart pyLoad ***" +#: module/plugins/hoster/NetloadIn.py:198 +#, python-format +msgid "Netload: waiting for captcha %d s." msgstr "" -#: module/plugins/hooks/UpdateManager.py:45 -msgid "No plugin updates available" +#: module/plugins/hoster/NetloadIn.py:237 +msgid "Downloaded File was empty" msgstr "" -#: module/plugins/hooks/UpdateManager.py:53 -msgid "No Updates for pyLoad" +#: module/plugins/hoster/RapidshareCom.py:98 +msgid "Rapidshare: Traffic Share (direct download)" msgstr "" -#: module/plugins/hooks/UpdateManager.py:56 -#, python-format -msgid "*** New pyLoad Version %s available ***" +#: module/plugins/hoster/RapidshareCom.py:128 +#: module/plugins/hoster/RapidshareCom.py:198 +msgid "Already downloading from this ip address, waiting 60 seconds" msgstr "" -#: module/plugins/hooks/UpdateManager.py:57 -msgid "*** Get it here: http://pyload.org/download ***" +#: module/plugins/hoster/RapidshareCom.py:132 +msgid "Invalid Auth Code, download will be restarted" msgstr "" -#: module/plugins/hooks/UpdateManager.py:60 -#: module/plugins/hooks/UpdateManager.py:70 -msgid "Not able to connect server for updates" +#: module/plugins/hoster/RapidshareCom.py:202 +msgid "RapidShareCom: No free slots" msgstr "" -#: module/plugins/hooks/UpdateManager.py:95 +#: module/plugins/hoster/MegauploadCom.py:92 #, python-format -msgid "New version of %(type)s|%(name)s : %(version).2f" +msgid "Megaupload: waiting %d minutes" msgstr "" -#: module/plugins/hoster/MegauploadCom.py:83 -#, python-format -msgid "Megaupload: waiting %d minues" +#: module/plugins/hoster/MegauploadCom.py:109 +msgid "You need premium to download files larger than 1 GB" msgstr "" -#: module/plugins/hoster/MegauploadCom.py:108 +#: module/plugins/hoster/MegauploadCom.py:128 #, python-format msgid "" "%s: Megaupload is currently blocking your IP. Try again later, manually." msgstr "" -#: module/plugins/hoster/MegauploadCom.py:175 +#: module/plugins/hoster/MegauploadCom.py:200 msgid "" "Looks like the file is still not available. Retry downloading later, " "manually." msgstr "" -#: module/plugins/hoster/UploadedTo.py:56 -#: module/plugins/hoster/RapidshareCom.py:153 -#, python-format -msgid "%(name)s: Use Premium Account (%(left)sGB left)" +#: module/plugins/accounts/MegauploadCom.py:41 +msgid "Activate direct Download in your MegaUpload Account" msgstr "" -#: module/plugins/hoster/UploadedTo.py:58 -#: module/plugins/hoster/RapidshareCom.py:155 -#, python-format -msgid "%s: Not enough traffic left" +#: module/plugins/container/LinkList.py:54 +msgid "LinkList could not be cleared." msgstr "" -#: module/plugins/hoster/UploadedTo.py:61 -msgid "Traffic exceeded" +#: module/web/ServerThread.py:45 +msgid "Database for Webinterface does not exitst, it will not be available." msgstr "" -#: module/plugins/hoster/RapidshareCom.py:98 -msgid "Rapidshare: Traffic Share (direct download)" +#: module/web/ServerThread.py:46 +msgid "Please run: python pyLoadCore.py -s" msgstr "" -#: module/plugins/hoster/RapidshareCom.py:139 -#: module/plugins/hoster/RapidshareCom.py:213 -msgid "Already downloading from this ip address, waiting 60 seconds" +#: module/web/ServerThread.py:47 +msgid "" +"Go through the setup and create a database and add an user to gain access." msgstr "" -#: module/plugins/hoster/RapidshareCom.py:144 -msgid "Invalid Auth Code, download will be restarted" +#: module/web/ServerThread.py:88 +msgid "SSL certificates not found." msgstr "" -#: module/plugins/hoster/RapidshareCom.py:217 -msgid "RapidShareCom: No free slots" +#: module/web/ServerThread.py:98 +#, python-format +msgid "" +"Can't use %(server)s, either python-flup or %(server)s is not installed!" msgstr "" -#: module/plugins/hoster/NetloadIn.py:166 +#: module/web/ServerThread.py:132 #, python-format -msgid "Netload: waiting between downloads %d s." +msgid "Starting nginx Webserver: %(host)s:%(port)d" msgstr "" -#: module/plugins/hoster/NetloadIn.py:191 +#: module/web/ServerThread.py:169 #, python-format -msgid "Netload: waiting for captcha %d s." +msgid "Starting lighttpd Webserver: %(host)s:%(port)d" msgstr "" -#: module/plugins/hoster/NetloadIn.py:230 -msgid "Downloaded File was empty" +#: module/web/ServerThread.py:179 +#, python-format +msgid "Starting django builtin Webserver: %(host)s:%(port)d" msgstr "" diff --git a/locale/generate_locale.py b/locale/generate_locale.py index 737ba7a85..41dc9a931 100644 --- a/locale/generate_locale.py +++ b/locale/generate_locale.py @@ -22,7 +22,7 @@ for path, dir, filenames in walk("./module"): f.close() call(["xgettext", "--files-from=includes.txt", "--default-domain=core", "--from-code=utf-8", - "--copyright-holder=pyLoad Team", "--package-name=pyLoad", "--package-version=0.4","--msgid-bugs-address='bugs@pyload.org'"]) + "--copyright-holder=pyLoad Team", "--package-name=pyLoad", "--package-version=0.4.3","--msgid-bugs-address='bugs@pyload.org'"]) f = open("core.po", "rb") @@ -53,7 +53,7 @@ for path, dir, filenames in walk("./module/gui"): f.close() call(["xgettext", "--files-from=includes.txt", "--default-domain=gui", "--from-code=utf-8", - "--copyright-holder=pyLoad Team", "--package-name=pyLoad", "--package-version=0.4","--msgid-bugs-address='bugs@pyload.org'"]) + "--copyright-holder=pyLoad Team", "--package-name=pyLoad", "--package-version=0.4.3","--msgid-bugs-address='bugs@pyload.org'"]) f = open("gui.po", "rb") @@ -76,7 +76,7 @@ f.write("./pyLoadCli.py\n") f.close() call(["xgettext", "--files-from=includes.txt", "--default-domain=cli", "--from-code=utf-8", - "--copyright-holder=pyLoad Team", "--package-name=pyLoad", "--package-version=0.4","--msgid-bugs-address='bugs@pyload.org'"]) + "--copyright-holder=pyLoad Team", "--package-name=pyLoad", "--package-version=0.4.3","--msgid-bugs-address='bugs@pyload.org'"]) f = open("cli.po", "rb") @@ -98,7 +98,7 @@ f.write("./module/setup.py\n") f.close() call(["xgettext", "--files-from=includes.txt", "--default-domain=setup", "--from-code=utf-8", - "--copyright-holder=pyLoad Team", "--package-name=pyLoad", "--package-version=0.4","--msgid-bugs-address='bugs@pyload.org'"]) + "--copyright-holder=pyLoad Team", "--package-name=pyLoad", "--package-version=0.4.3","--msgid-bugs-address='bugs@pyload.org'"]) f = open("setup.po", "rb") @@ -118,4 +118,4 @@ print "TODO: Generate django.po with python manage.py makemessages --all --local call(["mv", "./module/web/locale/en/LC_MESSAGES/django.po", "./locale/django.pot"]) print -print "All finished."
\ No newline at end of file +print "All finished." diff --git a/locale/gui.pot b/locale/gui.pot index 68edecea6..4f5d3fbab 100644 --- a/locale/gui.pot +++ b/locale/gui.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: pyLoad 0.4\n" +"Project-Id-Version: pyLoad 0.4.3\n" "Report-Msgid-Bugs-To: 'bugs@pyload.org'\n" -"POT-Creation-Date: 2010-10-07 22:49+0200\n" +"POT-Creation-Date: 2010-12-12 14:19+0100\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" @@ -17,418 +17,460 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: pyLoadGui.py:280 +#: pyLoadGui.py:283 msgid "paused" msgstr "" -#: pyLoadGui.py:282 +#: pyLoadGui.py:285 msgid "running" msgstr "" -#: pyLoadGui.py:284 +#: pyLoadGui.py:287 #, python-format msgid "" "status: %(status)s | speed: %(speed)s kb/s | free space: %(freespace)s " "MiB" msgstr "" -#: pyLoadGui.py:323 +#: pyLoadGui.py:326 msgid "Unnamed" msgstr "" -#: pyLoadGui.py:650 +#: pyLoadGui.py:660 #, python-format msgid "Finished downloading of '%s'" msgstr "" -#: pyLoadGui.py:652 +#: pyLoadGui.py:662 #, python-format msgid "Started downloading '%s'" msgstr "" -#: pyLoadGui.py:654 +#: pyLoadGui.py:664 #, python-format msgid "Failed downloading '%s'!" msgstr "" -#: pyLoadGui.py:657 +#: pyLoadGui.py:667 #, python-format msgid "Added '%s' to queue" msgstr "" -#: pyLoadGui.py:709 +#: pyLoadGui.py:692 +msgid "Connection lost" +msgstr "" + +#: pyLoadGui.py:692 +msgid "Lost connection to the core!" +msgstr "" + +#: pyLoadGui.py:727 msgid "Show" msgstr "" -#: pyLoadGui.py:714 module/gui/MainWindow.py:86 +#: pyLoadGui.py:732 module/gui/MainWindow.py:90 msgid "Exit" msgstr "" -#: module/gui/Collector.py:54 -msgid "finished" +#: module/gui/MainWindow.py:41 +msgid "pyLoad Client" msgstr "" -#: module/gui/Collector.py:55 -msgid "offline" +#: module/gui/MainWindow.py:80 +msgid "Status: Not Connected" msgstr "" -#: module/gui/Collector.py:56 -msgid "online" +#: module/gui/MainWindow.py:85 +msgid "File" msgstr "" -#: module/gui/Collector.py:57 -msgid "queued" +#: module/gui/MainWindow.py:86 +msgid "Connections" msgstr "" -#: module/gui/Collector.py:58 -msgid "checking" +#: module/gui/MainWindow.py:91 +msgid "Connection manager" msgstr "" -#: module/gui/Collector.py:59 -msgid "waiting" +#: module/gui/MainWindow.py:113 +msgid "Queue" msgstr "" -#: module/gui/Collector.py:60 -msgid "reconnected" +#: module/gui/MainWindow.py:114 +msgid "Collector" msgstr "" -#: module/gui/Collector.py:61 -msgid "starting" +#: module/gui/MainWindow.py:115 +msgid "Accounts" msgstr "" -#: module/gui/Collector.py:62 -msgid "failed" +#: module/gui/MainWindow.py:116 +msgid "Settings" msgstr "" -#: module/gui/Collector.py:63 -msgid "aborted" +#: module/gui/MainWindow.py:117 +msgid "Log" msgstr "" -#: module/gui/Collector.py:64 -msgid "decrypting" +#: module/gui/MainWindow.py:148 +msgid "Main Toolbar" msgstr "" -#: module/gui/Collector.py:65 -msgid "custom" +#: module/gui/MainWindow.py:151 +msgid "Toggle Pause/Resume" msgstr "" -#: module/gui/Collector.py:66 -msgid "downloading" +#: module/gui/MainWindow.py:157 +msgid "Stop" msgstr "" -#: module/gui/Collector.py:67 -msgid "processing" +#: module/gui/MainWindow.py:159 module/gui/MainWindow.py:272 +#: module/gui/MainWindow.py:292 +msgid "Add" msgstr "" -#: module/gui/Collector.py:249 module/gui/PackageDock.py:51 -#: module/gui/Queue.py:79 -msgid "Name" +#: module/gui/MainWindow.py:161 +msgid "Check Clipboard" msgstr "" -#: module/gui/Collector.py:251 module/gui/Queue.py:81 -msgid "Status" +#: module/gui/MainWindow.py:168 module/gui/MainWindow.py:278 +msgid "Package" msgstr "" -#: module/gui/Collector.py:253 module/gui/Queue.py:83 -msgid "Plugin" +#: module/gui/MainWindow.py:169 module/gui/MainWindow.py:279 +msgid "Container" msgstr "" -#: module/gui/Accounts.py:58 module/gui/Accounts.py:161 -msgid "n/a" +#: module/gui/MainWindow.py:170 +msgid "Account" msgstr "" -#: module/gui/Accounts.py:61 -msgid "%a, %d %b %Y %H:%M" +#: module/gui/MainWindow.py:171 module/gui/MainWindow.py:280 +msgid "Links" msgstr "" -#: module/gui/Accounts.py:64 module/gui/Accounts.py:159 -msgid "unlimited" +#: module/gui/MainWindow.py:189 +msgid "Push selected packages to queue" msgstr "" -#: module/gui/Accounts.py:101 -msgid "Type" +#: module/gui/MainWindow.py:212 +msgid "New Account" msgstr "" -#: module/gui/Accounts.py:103 -msgid "Login" +#: module/gui/MainWindow.py:226 module/gui/MainWindow.py:265 +#: module/gui/MainWindow.py:293 module/gui/ConnectionManager.py:40 +msgid "Remove" msgstr "" -#: module/gui/Accounts.py:105 -msgid "Valid until" +#: module/gui/MainWindow.py:227 module/gui/MainWindow.py:268 +msgid "Restart" msgstr "" -#: module/gui/Accounts.py:107 -msgid "Traffic left" +#: module/gui/MainWindow.py:228 +msgid "Pull out" msgstr "" -#: module/gui/SettingsWidget.py:73 -msgid "General" +#: module/gui/MainWindow.py:229 +msgid "Abort" msgstr "" -#: module/gui/SettingsWidget.py:74 -msgid "Plugins" +#: module/gui/MainWindow.py:230 module/gui/MainWindow.py:267 +msgid "Edit Name" msgstr "" -#: module/gui/SettingsWidget.py:88 -msgid "Reload" +#: module/gui/MainWindow.py:231 module/gui/Queue.py:87 +msgid "Priority" msgstr "" -#: module/gui/SettingsWidget.py:89 module/gui/ConnectionManager.py:196 -msgid "Save" +#: module/gui/MainWindow.py:233 +msgid "very high" msgstr "" -#: module/gui/SettingsWidget.py:195 -msgid "Yes" +#: module/gui/MainWindow.py:235 +msgid "high" msgstr "" -#: module/gui/SettingsWidget.py:196 -msgid "No" +#: module/gui/MainWindow.py:237 +msgid "normal" msgstr "" -#: module/gui/ConnectionManager.py:33 -msgid "pyLoad ConnectionManager" +#: module/gui/MainWindow.py:239 +msgid "low" msgstr "" -#: module/gui/ConnectionManager.py:38 -msgid "New" +#: module/gui/MainWindow.py:241 +msgid "very low" msgstr "" -#: module/gui/ConnectionManager.py:39 +#: module/gui/MainWindow.py:266 +msgid "Push to queue" +msgstr "" + +#: module/gui/MainWindow.py:269 +msgid "Refresh Status" +msgstr "" + +#: module/gui/MainWindow.py:294 module/gui/ConnectionManager.py:39 msgid "Edit" msgstr "" -#: module/gui/ConnectionManager.py:40 module/gui/MainWindow.py:211 -#: module/gui/MainWindow.py:250 -msgid "Remove" +#: module/gui/MainWindow.py:372 +#, python-format +msgid "All Container Types (%s)" msgstr "" -#: module/gui/ConnectionManager.py:41 -msgid "Connect" +#: module/gui/MainWindow.py:373 +#, python-format +msgid "DLC (%s)" msgstr "" -#: module/gui/ConnectionManager.py:47 -msgid "Connect:" +#: module/gui/MainWindow.py:374 +#, python-format +msgid "CCF (%s)" msgstr "" -#: module/gui/ConnectionManager.py:64 -msgid "Use internal Core:" +#: module/gui/MainWindow.py:375 +#, python-format +msgid "RSDF (%s)" msgstr "" -#: module/gui/ConnectionManager.py:108 +#: module/gui/MainWindow.py:376 #, python-format -msgid "%s (Default)" +msgid "Text Files (%s)" msgstr "" -#: module/gui/ConnectionManager.py:178 -msgid "Name:" +#: module/gui/MainWindow.py:378 +msgid "Open container" msgstr "" -#: module/gui/ConnectionManager.py:179 -msgid "Host:" +#: module/gui/Collector.py:54 +msgid "finished" msgstr "" -#: module/gui/ConnectionManager.py:180 -msgid "SSL:" +#: module/gui/Collector.py:55 +msgid "offline" msgstr "" -#: module/gui/ConnectionManager.py:181 -msgid "Local:" +#: module/gui/Collector.py:56 +msgid "online" msgstr "" -#: module/gui/ConnectionManager.py:182 -msgid "User:" +#: module/gui/Collector.py:57 +msgid "queued" msgstr "" -#: module/gui/ConnectionManager.py:183 -msgid "Password:" +#: module/gui/Collector.py:58 +msgid "checking" msgstr "" -#: module/gui/ConnectionManager.py:184 -msgid "Port:" +#: module/gui/Collector.py:59 +msgid "waiting" msgstr "" -#: module/gui/ConnectionManager.py:197 module/gui/CaptchaDock.py:57 -msgid "Cancel" +#: module/gui/Collector.py:60 +msgid "reconnected" msgstr "" -#: module/gui/MainWindow.py:40 -msgid "pyLoad Client" +#: module/gui/Collector.py:61 +msgid "starting" msgstr "" -#: module/gui/MainWindow.py:76 -msgid "Status: Not Connected" +#: module/gui/Collector.py:62 +msgid "failed" msgstr "" -#: module/gui/MainWindow.py:81 -msgid "File" +#: module/gui/Collector.py:63 +msgid "aborted" msgstr "" -#: module/gui/MainWindow.py:82 -msgid "Connections" +#: module/gui/Collector.py:64 +msgid "decrypting" msgstr "" -#: module/gui/MainWindow.py:87 -msgid "Connection manager" +#: module/gui/Collector.py:65 +msgid "custom" msgstr "" -#: module/gui/MainWindow.py:109 -msgid "Queue" +#: module/gui/Collector.py:66 +msgid "downloading" msgstr "" -#: module/gui/MainWindow.py:110 -msgid "Collector" +#: module/gui/Collector.py:67 +msgid "processing" msgstr "" -#: module/gui/MainWindow.py:111 -msgid "Accounts" +#: module/gui/Collector.py:249 module/gui/Queue.py:81 +#: module/gui/PackageDock.py:55 +msgid "Name" msgstr "" -#: module/gui/MainWindow.py:112 -msgid "Settings" +#: module/gui/Collector.py:251 module/gui/Queue.py:83 +msgid "Status" msgstr "" -#: module/gui/MainWindow.py:113 -msgid "Log" +#: module/gui/Collector.py:253 module/gui/Queue.py:85 +msgid "Plugin" msgstr "" -#: module/gui/MainWindow.py:141 -msgid "Main Toolbar" +#: module/gui/Accounts.py:66 +msgid "not valid" msgstr "" -#: module/gui/MainWindow.py:144 -msgid "Toggle Pause/Resume" +#: module/gui/Accounts.py:68 module/gui/Accounts.py:174 +msgid "n/a" msgstr "" -#: module/gui/MainWindow.py:150 -msgid "Stop" +#: module/gui/Accounts.py:71 +msgid "%a, %d %b %Y %H:%M" msgstr "" -#: module/gui/MainWindow.py:152 -msgid "Add" +#: module/gui/Accounts.py:74 module/gui/Accounts.py:172 +msgid "unlimited" msgstr "" -#: module/gui/MainWindow.py:154 -msgid "Check Clipboard" +#: module/gui/Accounts.py:114 module/gui/AccountEdit.py:34 +msgid "Type" msgstr "" -#: module/gui/MainWindow.py:161 -msgid "Package" +#: module/gui/Accounts.py:116 module/gui/AccountEdit.py:35 +msgid "Login" msgstr "" -#: module/gui/MainWindow.py:162 -msgid "Container" +#: module/gui/Accounts.py:118 +msgid "Valid until" msgstr "" -#: module/gui/MainWindow.py:178 -msgid "Push selected packages to queue" +#: module/gui/Accounts.py:120 +msgid "Traffic left" msgstr "" -#: module/gui/MainWindow.py:212 -msgid "Restart" +#: module/gui/ConnectionManager.py:33 +msgid "pyLoad ConnectionManager" msgstr "" -#: module/gui/MainWindow.py:213 -msgid "Pull out" +#: module/gui/ConnectionManager.py:38 +msgid "New" msgstr "" -#: module/gui/MainWindow.py:214 -msgid "Abort" +#: module/gui/ConnectionManager.py:41 +msgid "Connect" msgstr "" -#: module/gui/MainWindow.py:215 module/gui/MainWindow.py:252 -msgid "Edit Name" +#: module/gui/ConnectionManager.py:47 +msgid "Connect:" msgstr "" -#: module/gui/MainWindow.py:216 module/gui/Queue.py:85 -msgid "Priority" +#: module/gui/ConnectionManager.py:64 +msgid "Use internal Core:" msgstr "" -#: module/gui/MainWindow.py:218 -msgid "very high" +#: module/gui/ConnectionManager.py:108 +#, python-format +msgid "%s (Default)" msgstr "" -#: module/gui/MainWindow.py:220 -msgid "high" +#: module/gui/ConnectionManager.py:178 +msgid "Name:" msgstr "" -#: module/gui/MainWindow.py:222 -msgid "normal" +#: module/gui/ConnectionManager.py:179 +msgid "Host:" msgstr "" -#: module/gui/MainWindow.py:224 -msgid "low" +#: module/gui/ConnectionManager.py:180 +msgid "SSL:" msgstr "" -#: module/gui/MainWindow.py:226 -msgid "very low" +#: module/gui/ConnectionManager.py:181 +msgid "Local:" msgstr "" -#: module/gui/MainWindow.py:251 -msgid "Push to queue" +#: module/gui/ConnectionManager.py:182 +msgid "User:" msgstr "" -#: module/gui/MainWindow.py:253 -msgid "Refresh Status" +#: module/gui/ConnectionManager.py:183 +msgid "Password:" msgstr "" -#: module/gui/MainWindow.py:318 -#, python-format -msgid "All Container Types (%s)" +#: module/gui/ConnectionManager.py:184 +msgid "Port:" msgstr "" -#: module/gui/MainWindow.py:319 -#, python-format -msgid "DLC (%s)" +#: module/gui/ConnectionManager.py:196 module/gui/SettingsWidget.py:90 +#: module/gui/AccountEdit.py:49 +msgid "Save" msgstr "" -#: module/gui/MainWindow.py:320 -#, python-format -msgid "CCF (%s)" +#: module/gui/ConnectionManager.py:197 module/gui/CaptchaDock.py:57 +msgid "Cancel" msgstr "" -#: module/gui/MainWindow.py:321 -#, python-format -msgid "RSDF (%s)" +#: module/gui/Queue.py:89 +msgid "ETA" +msgstr "" + +#: module/gui/Queue.py:91 +msgid "Progress" msgstr "" -#: module/gui/MainWindow.py:322 +#: module/gui/Queue.py:258 #, python-format -msgid "Text Files (%s)" +msgid "waiting %d seconds" msgstr "" -#: module/gui/MainWindow.py:324 -msgid "Open container" +#: module/gui/SettingsWidget.py:74 +msgid "General" +msgstr "" + +#: module/gui/SettingsWidget.py:75 +msgid "Plugins" +msgstr "" + +#: module/gui/SettingsWidget.py:89 +msgid "Reload" +msgstr "" + +#: module/gui/SettingsWidget.py:197 +msgid "Yes" +msgstr "" + +#: module/gui/SettingsWidget.py:198 +msgid "No" msgstr "" #: module/gui/PackageDock.py:24 msgid "New Package" msgstr "" -#: module/gui/PackageDock.py:54 +#: module/gui/PackageDock.py:57 +msgid "Password" +msgstr "" + +#: module/gui/PackageDock.py:60 msgid "Links in this Package" msgstr "" -#: module/gui/PackageDock.py:59 +#: module/gui/PackageDock.py:66 msgid "Create" msgstr "" -#: module/gui/CaptchaDock.py:25 -msgid "Captcha" +#: module/gui/AccountEdit.py:28 +msgid "Edit account" msgstr "" -#: module/gui/CaptchaDock.py:56 -msgid "OK" +#: module/gui/AccountEdit.py:36 +msgid "New password" msgstr "" -#: module/gui/Queue.py:87 -msgid "ETA" +#: module/gui/AccountEdit.py:73 +msgid "Create account" msgstr "" -#: module/gui/Queue.py:89 -msgid "Progress" +#: module/gui/CaptchaDock.py:25 +msgid "Captcha" msgstr "" -#: module/gui/Queue.py:254 -#, python-format -msgid "waiting %d seconds" +#: module/gui/CaptchaDock.py:56 +msgid "OK" msgstr "" diff --git a/locale/setup.pot b/locale/setup.pot index 575ce6c16..2d99aa551 100644 --- a/locale/setup.pot +++ b/locale/setup.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: pyLoad 0.4\n" +"Project-Id-Version: pyLoad 0.4.3\n" "Report-Msgid-Bugs-To: 'bugs@pyload.org'\n" -"POT-Creation-Date: 2010-10-07 22:49+0200\n" +"POT-Creation-Date: 2010-12-12 14:19+0100\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" diff --git a/module/FileDatabase.py b/module/FileDatabase.py index 9225873fe..9e5417c75 100644 --- a/module/FileDatabase.py +++ b/module/FileDatabase.py @@ -16,6 +16,7 @@ @author: RaNaN @author: mkaay """ + from Queue import Queue from os import remove from os.path import exists @@ -32,6 +33,9 @@ from module.PullEvents import ReloadAllEvent from module.PullEvents import RemoveEvent from module.PullEvents import UpdateEvent +from module.PyPackage import PyPackage +from module.PyFile import PyFile + try: from pysqlite2 import dbapi2 as sqlite3 except: @@ -468,7 +472,6 @@ class FileHandler: p.order = position self.db.commit() - e = ReloadAllEvent("collector" if not p.queue else "queue") self.core.pullManager.addEvent(e) @@ -500,15 +503,16 @@ class FileHandler: e = ReloadAllEvent("collector" if not self.getPackage(f["package"]).queue else "queue") - self.core.pullManager.addEvent(e) @change def updateFileInfo(self, data, pid): """ updates file info (name, size, status, url)""" - self.db.updateLinkInfo(data) + ids = self.db.updateLinkInfo(data) - #@TODO package update event + for fid in ids: + e = UpdateEvent("file", fid, "collector" if not self.getFile(fid).package().queue else "queue") + self.core.pullManager.addEvent(e) def checkPackageFinished(self, pyfile): """ checks if package is finished and calls hookmanager """ @@ -729,7 +733,8 @@ class FileDatabaseBackend(Thread): 'error': r[5], 'plugin': r[6], 'package': r[7], - 'order': r[8] + 'order': r[8], + 'progress': 100 if r[4] in (0, 4) else 0 } return data @@ -785,7 +790,8 @@ class FileDatabaseBackend(Thread): 'error': r[5], 'plugin': r[6], 'package': r[7], - 'order': r[8] + 'order': r[8], + 'progress': 100 if r[4] in (0, 4) else 0 } return data @@ -822,10 +828,15 @@ class FileDatabaseBackend(Thread): def updatePackage(self, p): self.c.execute('UPDATE packages SET name=?,folder=?,site=?,password=?,queue=?,priority=? WHERE id=?', (p.name, p.folder, p.site, p.password, p.queue, p.priority, str(p.id))) - @async + @queue def updateLinkInfo(self, data): """ data is list of tupels (name, size, status, url) """ self.c.executemany('UPDATE links SET name=?, size=?, status=? WHERE url=? AND status NOT IN (0,8,12,13)', data) + ids = [] + self.c.execute('SELECT id FROM links WHERE url IN (\'%s\')' % "','".join([x[3] for x in data])) + for r in self.c: + ids.append(int(r[0])) + return ids @queue def reorderPackage(self, p, position, noMove=False): @@ -925,257 +936,6 @@ class FileDatabaseBackend(Thread): self.c.execute("SELECT id FROM links WHERE package=? AND status NOT IN (0, 13) LIMIT 3", (str(pid),)) return [r[0] for r in self.c] - -class PyFile(): - def __init__(self, manager, id, url, name, size, status, error, pluginname, package, order): - self.m = manager - - self.id = int(id) - self.url = url - self.name = name - self.size = size - self.status = status - self.pluginname = pluginname - self.packageid = package #should not be used, use package() instead - self.error = error - self.order = order - # database information ends here - - self.plugin = None - - self.waitUntil = 0 # time() + time to wait - - # status attributes - self.active = False #obsolete? - self.abort = False - self.reconnected = False - - #hook progress - self.alternativePercent = None - - self.m.cache[int(id)] = self - - - def __repr__(self): - return "PyFile %s: %s@%s" % (self.id, self.name, self.pluginname) - - def initPlugin(self): - """ inits plugin instance """ - if not self.plugin: - self.pluginmodule = self.m.core.pluginManager.getPlugin(self.pluginname) - self.pluginclass = getattr(self.pluginmodule, self.pluginname) - self.plugin = self.pluginclass(self) - - - def package(self): - """ return package instance""" - return self.m.getPackage(self.packageid) - - def setStatus(self, status): - self.status = statusMap[status] - self.sync() #@TODO needed aslong no better job approving exists - - def hasStatus(self, status): - return statusMap[status] == self.status - - def sync(self): - """sync PyFile instance with database""" - self.m.updateLink(self) - - def release(self): - """sync and remove from cache""" - self.sync() - if hasattr(self, "plugin"): - del self.plugin - self.m.releaseLink(self.id) - - def delete(self): - """delete pyfile from database""" - self.m.deleteLink(self.id) - - def toDict(self): - """return dict with all information for interface""" - return self.toDbDict() - - def toDbDict(self): - """return data as dict for databse - - format: - - { - id: {'url': url, 'name': name ... } - } - - """ - return { - self.id: { - 'id': self.id, - 'url': self.url, - 'name': self.name, - 'plugin': self.pluginname, - 'size': self.getSize(), - 'format_size': self.formatSize(), - 'status': self.status, - 'statusmsg': self.m.statusMsg[self.status], - 'package': self.packageid, - 'error': self.error, - 'order': self.order - } - } - - def abortDownload(self): - """abort pyfile if possible""" - while self.id in self.m.core.threadManager.processingIds(): - self.abort = True - if self.plugin and self.plugin.req: self.plugin.req.abort = True - sleep(0.1) - - self.abort = False - if hasattr(self, "plugin") and self.plugin and self.plugin.req: self.plugin.req.abort = False - self.release() - - def finishIfDone(self): - """set status to finish and release file if every thread is finished with it""" - - if self.id in self.m.core.threadManager.processingIds(): - return False - - self.setStatus("finished") - self.release() - return True - - def formatWait(self): - """ formats and return wait time in humanreadable format """ - seconds = self.waitUntil - time() - - if seconds < 0: return "00:00:00" - - hours, seconds = divmod(seconds, 3600) - minutes, seconds = divmod(seconds, 60) - return "%.2i:%.2i:%.2i" % (hours, minutes, seconds) - - def formatSize(self): - """ formats size to readable format """ - return formatSize(self.getSize()) - - def formatETA(self): - """ formats eta to readable format """ - seconds = self.getETA() - - if seconds < 0: return "00:00:00" - - hours, seconds = divmod(seconds, 3600) - minutes, seconds = divmod(seconds, 60) - return "%.2i:%.2i:%.2i" % (hours, minutes, seconds) - - def getSpeed(self): - """ calculates speed """ - try: - return self.plugin.req.get_speed() - except: - return 0 - - def getETA(self): - """ gets established time of arrival""" - try: - return self.plugin.req.get_ETA() - except: - return 0 - - def getBytesLeft(self): - """ gets bytes left """ - try: - return self.plugin.req.bytes_left() - except: - return 0 - - def getPercent(self): - """ get % of download """ - if self.alternativePercent: return self.alternativePercent - try: - return int((float(self.plugin.req.dl_arrived) / self.plugin.req.dl_size) * 100) - except: - return 0 - - def getSize(self): - """ get size of download """ - if self.size: return self.size - else: - try: - return self.plugin.req.dl_size - except: - return 0 - - def notifyChange(self): - e = UpdateEvent("file", self.id, "collector" if not self.package().queue else "queue") - self.m.core.pullManager.addEvent(e) - -class PyPackage(): - def __init__(self, manager, id, name, folder, site, password, queue, order, priority): - self.m = manager - self.m.packageCache[int(id)] = self - - self.id = int(id) - self.name = name - self.folder = folder - self.site = site - self.password = password - self.queue = queue - self.order = order - self.priority = priority - - - self.setFinished = False - - def toDict(self): - """return data as dict - - format: - - { - id: {'name': name ... 'links': {} } } - } - - """ - return { - self.id: { - 'id': self.id, - 'name': self.name, - 'folder': self.folder, - 'site': self.site, - 'password': self.password, - 'queue': self.queue, - 'order': self.order, - 'priority': self.priority, - 'links': {} - } - } - - def getChildren(self): - """get information about contained links""" - return self.m.getPackageData(self.id)["links"] - - def setPriority(self, priority): - self.priority = priority - self.sync() - - def sync(self): - """sync with db""" - self.m.updatePackage(self) - - def release(self): - """sync and delete from cache""" - self.sync() - self.m.releasePackage(self.id) - - def delete(self): - self.m.deletePackage(self.id) - - def notifyChange(self): - e = UpdateEvent("file", self.id, "collector" if not self.queue else "queue") - self.m.core.pullManager.addEvent(e) - - if __name__ == "__main__": pypath = "." diff --git a/module/gui/Collector.py b/module/gui/Collector.py index 5fc041a8e..87d433566 100644 --- a/module/gui/Collector.py +++ b/module/gui/Collector.py @@ -142,8 +142,9 @@ class CollectorModel(QAbstractItemModel): if package.id == int(info["package"]): for k, child in enumerate(package.children): if child.id == int(event[3]): - child.data = info - child.data["downloading"] = None + child.data.update(info) + if not info["status"] == 12: + child.data["downloading"] = None self.emit(SIGNAL("dataChanged(const QModelIndex &, const QModelIndex &)"), self.index(k, 0, self.index(p, 0)), self.index(k, self.cols, self.index(p, self.cols))) break else: diff --git a/module/gui/Queue.py b/module/gui/Queue.py index 5489f85ce..eb13415f0 100644 --- a/module/gui/Queue.py +++ b/module/gui/Queue.py @@ -116,24 +116,12 @@ class QueueModel(CollectorModel): def getProgress(self, item): locker = QMutexLocker(self.mutex) if isinstance(item, Link): - if item.data["downloading"]: - return int(item.data["downloading"]["percent"]) - if item.data["statusmsg"] == "finished" or \ - item.data["statusmsg"] == "failed" or \ - item.data["statusmsg"] == "aborted": - return 100 + return int(item.data["progress"]) elif isinstance(item, Package): count = len(item.children) perc_sum = 0 for child in item.children: - val = 0 - if child.data["downloading"]: - val = int(child.data["downloading"]["percent"]) - elif child.data["statusmsg"] == "finished" or \ - child.data["statusmsg"] == "failed" or \ - child.data["statusmsg"] == "aborted": - val = 100 - perc_sum += val + perc_sum += int(child.data["progress"]) if count == 0: return 0 return perc_sum/count diff --git a/module/network/FtpRequest.py b/module/network/FtpRequest.py index d8f556fea..a0986a9ed 100644 --- a/module/network/FtpRequest.py +++ b/module/network/FtpRequest.py @@ -54,6 +54,7 @@ class FtpRequest: self.averageSpeeds = [] self.averageSpeedTime = 0.0 self.averageSpeedCount = 0.0 + self.progressNotify = None self.speedLimitActive = False self.maxSpeed = 0 @@ -219,8 +220,15 @@ class FtpRequest: def progress(self, dl_t, dl_d, up_t, up_d): if self.abort: return False - self.dl_arrived = int(dl_d) - self.dl_size = int(dl_t) + self.dl_arrived = int(dl_d)+self.offset + self.dl_size = int(dl_t)+self.offset + + if self.progressNotify: + try: + progress = int(float(self.dl_arrived)/self.dl_size*100) + self.progressNotify(progress) + except: + pass def get_free_name(self, file_name): file_count = 0 diff --git a/module/network/Request.py b/module/network/Request.py index 3a3cd0f41..5314f97ab 100755 --- a/module/network/Request.py +++ b/module/network/Request.py @@ -63,6 +63,7 @@ class Request: self.isSlow = False self.cookieJar = None self.interface = interface + self.progressNotify = None # change this for connection information self.debug = False @@ -379,6 +380,13 @@ class Request: self.dl_arrived = int(dl_d)+self.offset self.dl_size = int(dl_t)+self.offset + if self.progressNotify: + try: + progress = int(float(self.dl_arrived)/self.dl_size*100) + self.progressNotify(progress) + except: + pass + def get_free_name(self, folder, file_name): file_count = 0 file_name = join(folder, file_name) diff --git a/module/network/XdccRequest.py b/module/network/XdccRequest.py index b65398dbc..18378cc6f 100644 --- a/module/network/XdccRequest.py +++ b/module/network/XdccRequest.py @@ -70,6 +70,7 @@ class XdccRequest: self.speedLimitActive = False
self.maxSpeed = 0
self.isSlow = False
+ self.progressNotify = None
# change this for connection information
self.debug = False
diff --git a/module/plugins/Plugin.py b/module/plugins/Plugin.py index 34c06539a..f2c3b18eb 100644 --- a/module/plugins/Plugin.py +++ b/module/plugins/Plugin.py @@ -101,7 +101,8 @@ class Plugin(object): #self.req.canContinue = True else: self.req = pyfile.m.core.requestFactory.getRequest(self.__name__) - + self.req.progressNotify = pyfile.progress.setValue + self.log = pyfile.m.core.log self.pyfile = pyfile diff --git a/module/plugins/hooks/UnRar.py b/module/plugins/hooks/UnRar.py index 46b9aac6a..fa762a832 100644 --- a/module/plugins/hooks/UnRar.py +++ b/module/plugins/hooks/UnRar.py @@ -119,8 +119,10 @@ class UnRar(Hook): self.core.log.info(_("starting Unrar of %s") % fname) pyfile = self.core.files.getFile(fid) pyfile.setStatus("processing") + pyfile.progress.setRange(0, 100) def s(p): - pyfile.alternativePercent = p + pyfile.progress.setValue(p) + download_folder = self.core.config['general']['download_folder'] if self.core.config['general']['folder_per_package']: @@ -165,7 +167,7 @@ class UnRar(Hook): else: self.core.log.info(_("Unrar of %s failed (wrong password)") % fname) finally: - pyfile.alternativePercent = None + pyfile.progress.setValue(100) pyfile.setStatus("finished") pyfile.release() |