summaryrefslogtreecommitdiffstats
path: root/interfaces
diff options
context:
space:
mode:
Diffstat (limited to 'interfaces')
-rw-r--r--interfaces/gui/icons/abort.pngbin2569 -> 0 bytes
-rw-r--r--interfaces/gui/icons/clipboard.pngbin1344 -> 0 bytes
-rw-r--r--interfaces/gui/icons/close.pngbin2569 -> 0 bytes
-rw-r--r--interfaces/gui/icons/edit_small.pngbin570 -> 0 bytes
-rw-r--r--interfaces/gui/icons/logo.pngbin8172 -> 0 bytes
-rw-r--r--interfaces/gui/icons/pull_small.pngbin614 -> 0 bytes
-rw-r--r--interfaces/gui/icons/push_small.pngbin618 -> 0 bytes
-rw-r--r--interfaces/gui/icons/refresh_small.pngbin821 -> 0 bytes
-rw-r--r--interfaces/gui/icons/remove_small.pngbin287 -> 0 bytes
-rw-r--r--interfaces/gui/icons/toolbar_add.pngbin932 -> 0 bytes
-rw-r--r--interfaces/gui/icons/toolbar_pause.pngbin943 -> 0 bytes
-rw-r--r--interfaces/gui/icons/toolbar_remove.pngbin496 -> 0 bytes
-rw-r--r--interfaces/gui/icons/toolbar_start.pngbin1504 -> 0 bytes
-rw-r--r--interfaces/gui/icons/toolbar_stop.pngbin523 -> 0 bytes
-rw-r--r--interfaces/gui/locale/de/LC_MESSAGES/pyLoadGui.mobin3141 -> 0 bytes
-rw-r--r--interfaces/gui/locale/de/gui.po256
-rw-r--r--interfaces/gui/locale/en/LC_MESSAGES/pyLoadGui.mobin375 -> 0 bytes
-rw-r--r--interfaces/gui/locale/en/gui.po256
-rw-r--r--interfaces/gui/locale/es/LC_MESSAGES/pyLoadGui.mobin375 -> 0 bytes
-rw-r--r--interfaces/gui/locale/es/gui.po255
-rw-r--r--interfaces/gui/locale/fi/LC_MESSAGES/pyLoadGui.mobin375 -> 0 bytes
-rw-r--r--interfaces/gui/locale/fi/gui.po255
-rw-r--r--interfaces/gui/locale/fr/LC_MESSAGES/pyLoadGui.mobin375 -> 0 bytes
-rw-r--r--interfaces/gui/locale/fr/gui.po255
-rw-r--r--interfaces/gui/locale/gui.pot254
-rw-r--r--interfaces/gui/locale/it/LC_MESSAGES/pyLoadGui.mobin375 -> 0 bytes
-rw-r--r--interfaces/gui/locale/it/gui.po255
-rw-r--r--interfaces/gui/locale/nl/LC_MESSAGES/pyLoadGui.mobin3103 -> 0 bytes
-rw-r--r--interfaces/gui/locale/nl/gui.po257
-rw-r--r--interfaces/gui/locale/pl/LC_MESSAGES/pyLoadGui.mobin3147 -> 0 bytes
-rw-r--r--interfaces/gui/locale/pl/gui.po257
-rw-r--r--interfaces/gui/locale/ro/LC_MESSAGES/pyLoadGui.mobin375 -> 0 bytes
-rw-r--r--interfaces/gui/locale/ro/gui.po255
-rw-r--r--interfaces/gui/locale/ru/LC_MESSAGES/pyLoadGui.mobin375 -> 0 bytes
-rw-r--r--interfaces/gui/locale/ru/gui.po255
-rw-r--r--interfaces/gui/locale/tr/LC_MESSAGES/pyLoadGui.mobin375 -> 0 bytes
-rw-r--r--interfaces/gui/locale/tr/gui.po255
-rw-r--r--interfaces/gui/module/__init__.py0
-rw-r--r--interfaces/gui/module/config/gui_default.xml13
-rw-r--r--interfaces/gui/module/gui/Accounts.py167
-rw-r--r--interfaces/gui/module/gui/CaptchaDock.py85
-rw-r--r--interfaces/gui/module/gui/Collector.py289
-rw-r--r--interfaces/gui/module/gui/ConnectionManager.py261
-rw-r--r--interfaces/gui/module/gui/CoreConfigParser.py165
-rw-r--r--interfaces/gui/module/gui/LinkDock.py54
-rw-r--r--interfaces/gui/module/gui/MainWindow.py512
-rw-r--r--interfaces/gui/module/gui/PackageDock.py67
-rw-r--r--interfaces/gui/module/gui/Queue.py252
-rw-r--r--interfaces/gui/module/gui/SettingsWidget.py108
-rw-r--r--interfaces/gui/module/gui/XMLParser.py71
-rw-r--r--interfaces/gui/module/gui/__init__.py1
-rw-r--r--interfaces/gui/module/gui/connector.py311
-rwxr-xr-xinterfaces/pyLoadCli.py555
-rwxr-xr-xinterfaces/pyLoadGui.py (renamed from interfaces/gui/pyLoadGui.py)25
54 files changed, 565 insertions, 5436 deletions
diff --git a/interfaces/gui/icons/abort.png b/interfaces/gui/icons/abort.png
deleted file mode 100644
index 66170aae7..000000000
--- a/interfaces/gui/icons/abort.png
+++ /dev/null
Binary files differ
diff --git a/interfaces/gui/icons/clipboard.png b/interfaces/gui/icons/clipboard.png
deleted file mode 100644
index 9ba608eba..000000000
--- a/interfaces/gui/icons/clipboard.png
+++ /dev/null
Binary files differ
diff --git a/interfaces/gui/icons/close.png b/interfaces/gui/icons/close.png
deleted file mode 100644
index 66170aae7..000000000
--- a/interfaces/gui/icons/close.png
+++ /dev/null
Binary files differ
diff --git a/interfaces/gui/icons/edit_small.png b/interfaces/gui/icons/edit_small.png
deleted file mode 100644
index eb76e21b4..000000000
--- a/interfaces/gui/icons/edit_small.png
+++ /dev/null
Binary files differ
diff --git a/interfaces/gui/icons/logo.png b/interfaces/gui/icons/logo.png
deleted file mode 100644
index 72a95b740..000000000
--- a/interfaces/gui/icons/logo.png
+++ /dev/null
Binary files differ
diff --git a/interfaces/gui/icons/pull_small.png b/interfaces/gui/icons/pull_small.png
deleted file mode 100644
index 432ad321f..000000000
--- a/interfaces/gui/icons/pull_small.png
+++ /dev/null
Binary files differ
diff --git a/interfaces/gui/icons/push_small.png b/interfaces/gui/icons/push_small.png
deleted file mode 100644
index 701fc69e3..000000000
--- a/interfaces/gui/icons/push_small.png
+++ /dev/null
Binary files differ
diff --git a/interfaces/gui/icons/refresh_small.png b/interfaces/gui/icons/refresh_small.png
deleted file mode 100644
index 1ffd18d97..000000000
--- a/interfaces/gui/icons/refresh_small.png
+++ /dev/null
Binary files differ
diff --git a/interfaces/gui/icons/remove_small.png b/interfaces/gui/icons/remove_small.png
deleted file mode 100644
index bf99763e8..000000000
--- a/interfaces/gui/icons/remove_small.png
+++ /dev/null
Binary files differ
diff --git a/interfaces/gui/icons/toolbar_add.png b/interfaces/gui/icons/toolbar_add.png
deleted file mode 100644
index 17003e9f0..000000000
--- a/interfaces/gui/icons/toolbar_add.png
+++ /dev/null
Binary files differ
diff --git a/interfaces/gui/icons/toolbar_pause.png b/interfaces/gui/icons/toolbar_pause.png
deleted file mode 100644
index b7a727b71..000000000
--- a/interfaces/gui/icons/toolbar_pause.png
+++ /dev/null
Binary files differ
diff --git a/interfaces/gui/icons/toolbar_remove.png b/interfaces/gui/icons/toolbar_remove.png
deleted file mode 100644
index 1e9c00e16..000000000
--- a/interfaces/gui/icons/toolbar_remove.png
+++ /dev/null
Binary files differ
diff --git a/interfaces/gui/icons/toolbar_start.png b/interfaces/gui/icons/toolbar_start.png
deleted file mode 100644
index 1123266e6..000000000
--- a/interfaces/gui/icons/toolbar_start.png
+++ /dev/null
Binary files differ
diff --git a/interfaces/gui/icons/toolbar_stop.png b/interfaces/gui/icons/toolbar_stop.png
deleted file mode 100644
index b388e3d72..000000000
--- a/interfaces/gui/icons/toolbar_stop.png
+++ /dev/null
Binary files differ
diff --git a/interfaces/gui/locale/de/LC_MESSAGES/pyLoadGui.mo b/interfaces/gui/locale/de/LC_MESSAGES/pyLoadGui.mo
deleted file mode 100644
index 7fca76598..000000000
--- a/interfaces/gui/locale/de/LC_MESSAGES/pyLoadGui.mo
+++ /dev/null
Binary files differ
diff --git a/interfaces/gui/locale/de/gui.po b/interfaces/gui/locale/de/gui.po
deleted file mode 100644
index 63cd861b5..000000000
--- a/interfaces/gui/locale/de/gui.po
+++ /dev/null
@@ -1,256 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR ORGANIZATION
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-02-03 15:21+CET\n"
-"PO-Revision-Date: 2010-02-04 22:56+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-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"
-
-#: ./module/gui/CaptchaDock.py:25
-msgid "Captcha"
-msgstr "Captcha"
-
-#: ./module/gui/CaptchaDock.py:56 ./module/gui/PWInputWindow.py:28
-msgid "OK"
-msgstr "OK"
-
-#: ./module/gui/CaptchaDock.py:57 ./module/gui/ConnectionManager.py:154
-#: ./module/gui/PWInputWindow.py:29
-msgid "Cancel"
-msgstr "Abbrechen"
-
-#: ./module/gui/ConnectionManager.py:33
-msgid "New"
-msgstr "Neu"
-
-#: ./module/gui/ConnectionManager.py:34
-msgid "Edit"
-msgstr "Bearbeiten"
-
-#: ./module/gui/ConnectionManager.py:35 ./module/gui/MainWindow.py:191
-#: ./module/gui/MainWindow.py:205
-msgid "Remove"
-msgstr "Entfernen"
-
-#: ./module/gui/ConnectionManager.py:36
-msgid "Connect"
-msgstr "Verbinden"
-
-#: ./module/gui/ConnectionManager.py:76
-msgid "%s (Default)"
-msgstr "%s (Standard)"
-
-#: ./module/gui/ConnectionManager.py:138
-msgid "Name:"
-msgstr "Name:"
-
-#: ./module/gui/ConnectionManager.py:139
-msgid "Host:"
-msgstr "Host:"
-
-#: ./module/gui/ConnectionManager.py:140
-msgid "SSL:"
-msgstr "SSL:"
-
-#: ./module/gui/ConnectionManager.py:141
-msgid "Local:"
-msgstr "Lokal:"
-
-#: ./module/gui/ConnectionManager.py:142
-msgid "User:"
-msgstr "Benutzer:"
-
-#: ./module/gui/ConnectionManager.py:143
-msgid "Port:"
-msgstr "Port:"
-
-#: ./module/gui/ConnectionManager.py:153
-msgid "Save"
-msgstr "Speichern"
-
-#: ./module/gui/MainWindow.py:33
-msgid "pyLoad Client"
-msgstr "pyLoad Client"
-
-#: ./module/gui/MainWindow.py:60
-msgid "Status: Not Connected"
-msgstr "Status: nicht verbunden"
-
-#: ./module/gui/MainWindow.py:65
-msgid "File"
-msgstr "Datei"
-
-#: ./module/gui/MainWindow.py:66
-msgid "Connections"
-msgstr "Verbindungen"
-
-#: ./module/gui/MainWindow.py:70
-msgid "Exit"
-msgstr "Beenden"
-
-#: ./module/gui/MainWindow.py:71
-msgid "Connection manager"
-msgstr "Verbindungen verwalten"
-
-#: ./module/gui/MainWindow.py:88
-msgid "Queue"
-msgstr "Warteschlange"
-
-#: ./module/gui/MainWindow.py:89
-msgid "Collector"
-msgstr "Linksammler"
-
-#: ./module/gui/MainWindow.py:90
-msgid "Settings"
-msgstr "Einstellungen"
-
-#: ./module/gui/MainWindow.py:91
-msgid "Log"
-msgstr "Log"
-
-#: ./module/gui/MainWindow.py:117
-msgid "Main Toolbar"
-msgstr "Toolbar"
-
-#: ./module/gui/MainWindow.py:120
-msgid "Toggle Pause/Resume"
-msgstr "pause/fortsetzen"
-
-#: ./module/gui/MainWindow.py:126
-msgid "Stop"
-msgstr "Stop"
-
-#: ./module/gui/MainWindow.py:128
-msgid "Add"
-msgstr "Hinzufügen"
-
-#: ./module/gui/MainWindow.py:130
-msgid "Check Clipboard"
-msgstr "Zwischenablage überwachen"
-
-#: ./module/gui/MainWindow.py:137
-msgid "Package"
-msgstr "Paket"
-
-#: ./module/gui/MainWindow.py:138
-msgid "Links"
-msgstr "Links"
-
-#: ./module/gui/MainWindow.py:139
-msgid "Container"
-msgstr "Container"
-
-#: ./module/gui/MainWindow.py:156
-msgid "Packages"
-msgstr "Pakete"
-
-#: ./module/gui/MainWindow.py:158
-msgid "Push selected packages to queue"
-msgstr "Verschiebe ausgewählte Pakete in die Warteschlange"
-
-#: ./module/gui/MainWindow.py:192
-msgid "Restart"
-msgstr "Neustarten"
-
-#: ./module/gui/MainWindow.py:193
-msgid "Pull out"
-msgstr "in Linksammler verschieben"
-
-#: ./module/gui/MainWindow.py:206
-msgid "Push to queue"
-msgstr "in Warteschlange verschieben"
-
-#: ./module/gui/MainWindow.py:207
-msgid "Edit Name"
-msgstr "Name bearbeiten"
-
-#: ./module/gui/MainWindow.py:277
-msgid "All Container Types (%s)"
-msgstr "Alle Container Arten (%s)"
-
-#: ./module/gui/MainWindow.py:278
-msgid "DLC (%s)"
-msgstr "DLC (%s)"
-
-#: ./module/gui/MainWindow.py:279
-msgid "CCF (%s)"
-msgstr "CCF (%s)"
-
-#: ./module/gui/MainWindow.py:280
-msgid "RSDF (%s)"
-msgstr "RSDF (%s)"
-
-#: ./module/gui/MainWindow.py:281
-msgid "Text Files (%s)"
-msgstr "Text Dateien (%s)"
-
-#: ./module/gui/MainWindow.py:283
-msgid "Open container"
-msgstr "Container öffnen"
-
-#: ./module/gui/MainWindow.py:306
-msgid "Single Links"
-msgstr "Einzelne Links"
-
-#: ./module/gui/PWInputWindow.py:27
-msgid "Password:"
-msgstr "Passwort:"
-
-#: ./module/gui/PackageDock.py:24
-msgid "New Package"
-msgstr "Neues Paket"
-
-#: ./module/gui/PackageDock.py:50 ./pyLoadGui.py:236
-msgid "Name"
-msgstr "Name"
-
-#: ./module/gui/PackageDock.py:53
-msgid "Links in this Package"
-msgstr "Links in diesem Paket"
-
-#: ./module/gui/PackageDock.py:68
-msgid "Create"
-msgstr "Erstellen"
-
-#: ./pyLoadGui.py:236
-msgid "Plugin"
-msgstr "Plugin"
-
-#: ./pyLoadGui.py:236
-msgid "Progress"
-msgstr "Fortschritt"
-
-#: ./pyLoadGui.py:236
-msgid "Status"
-msgstr "Status"
-
-#: ./pyLoadGui.py:252
-msgid "Paused"
-msgstr "Pausiert"
-
-#: ./pyLoadGui.py:254
-msgid "Running"
-msgstr "Läuft"
-
-#: ./pyLoadGui.py:256
-msgid "Status: %(status)s | Speed: %(speed)s kb/s"
-msgstr "Status: %(status)s | Geschwindigkeit: %(speed)s kb/s"
-
-#: ./pyLoadGui.py:281
-msgid "Update Available"
-msgstr "Update verfügbar"
-
-#: ./pyLoadGui.py:305
-msgid "Unnamed"
-msgstr "Unbenannt"
diff --git a/interfaces/gui/locale/en/LC_MESSAGES/pyLoadGui.mo b/interfaces/gui/locale/en/LC_MESSAGES/pyLoadGui.mo
deleted file mode 100644
index 1ae24953f..000000000
--- a/interfaces/gui/locale/en/LC_MESSAGES/pyLoadGui.mo
+++ /dev/null
Binary files differ
diff --git a/interfaces/gui/locale/en/gui.po b/interfaces/gui/locale/en/gui.po
deleted file mode 100644
index 0cc6cf7ec..000000000
--- a/interfaces/gui/locale/en/gui.po
+++ /dev/null
@@ -1,256 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR ORGANIZATION
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-02-03 15:21+CET\n"
-"PO-Revision-Date: 2010-02-04 21:28+0200\n"
-"Last-Translator: Marius <mkaay@mkaay.de>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: en\n"
-"MIME-Version: 1.0\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"
-
-#: ./module/gui/CaptchaDock.py:25
-msgid "Captcha"
-msgstr "Captcha"
-
-#: ./module/gui/CaptchaDock.py:56 ./module/gui/PWInputWindow.py:28
-msgid "OK"
-msgstr "OK"
-
-#: ./module/gui/CaptchaDock.py:57 ./module/gui/ConnectionManager.py:154
-#: ./module/gui/PWInputWindow.py:29
-msgid "Cancel"
-msgstr "Cancel"
-
-#: ./module/gui/ConnectionManager.py:33
-msgid "New"
-msgstr "New"
-
-#: ./module/gui/ConnectionManager.py:34
-msgid "Edit"
-msgstr "Edit"
-
-#: ./module/gui/ConnectionManager.py:35 ./module/gui/MainWindow.py:191
-#: ./module/gui/MainWindow.py:205
-msgid "Remove"
-msgstr "Remove"
-
-#: ./module/gui/ConnectionManager.py:36
-msgid "Connect"
-msgstr "Connect"
-
-#: ./module/gui/ConnectionManager.py:76
-msgid "%s (Default)"
-msgstr "%s (Default)"
-
-#: ./module/gui/ConnectionManager.py:138
-msgid "Name:"
-msgstr "Name:"
-
-#: ./module/gui/ConnectionManager.py:139
-msgid "Host:"
-msgstr "Host:"
-
-#: ./module/gui/ConnectionManager.py:140
-msgid "SSL:"
-msgstr "SSL:"
-
-#: ./module/gui/ConnectionManager.py:141
-msgid "Local:"
-msgstr "Local:"
-
-#: ./module/gui/ConnectionManager.py:142
-msgid "User:"
-msgstr "User:"
-
-#: ./module/gui/ConnectionManager.py:143
-msgid "Port:"
-msgstr "Port:"
-
-#: ./module/gui/ConnectionManager.py:153
-msgid "Save"
-msgstr "Save"
-
-#: ./module/gui/MainWindow.py:33
-msgid "pyLoad Client"
-msgstr "pyLoad Client"
-
-#: ./module/gui/MainWindow.py:60
-msgid "Status: Not Connected"
-msgstr "Status: Not Connected"
-
-#: ./module/gui/MainWindow.py:65
-msgid "File"
-msgstr "File"
-
-#: ./module/gui/MainWindow.py:66
-msgid "Connections"
-msgstr "Connections"
-
-#: ./module/gui/MainWindow.py:70
-msgid "Exit"
-msgstr "Exit"
-
-#: ./module/gui/MainWindow.py:71
-msgid "Connection manager"
-msgstr "Connection manager"
-
-#: ./module/gui/MainWindow.py:88
-msgid "Queue"
-msgstr "Queue"
-
-#: ./module/gui/MainWindow.py:89
-msgid "Collector"
-msgstr "Collector"
-
-#: ./module/gui/MainWindow.py:90
-msgid "Settings"
-msgstr "Settings"
-
-#: ./module/gui/MainWindow.py:91
-msgid "Log"
-msgstr "Log"
-
-#: ./module/gui/MainWindow.py:117
-msgid "Main Toolbar"
-msgstr "Main Toolbar"
-
-#: ./module/gui/MainWindow.py:120
-msgid "Toggle Pause/Resume"
-msgstr "Toggle Pause/Resume"
-
-#: ./module/gui/MainWindow.py:126
-msgid "Stop"
-msgstr "Stop"
-
-#: ./module/gui/MainWindow.py:128
-msgid "Add"
-msgstr "Add"
-
-#: ./module/gui/MainWindow.py:130
-msgid "Check Clipboard"
-msgstr "Check Clipboard"
-
-#: ./module/gui/MainWindow.py:137
-msgid "Package"
-msgstr "Package"
-
-#: ./module/gui/MainWindow.py:138
-msgid "Links"
-msgstr "Links"
-
-#: ./module/gui/MainWindow.py:139
-msgid "Container"
-msgstr "Container"
-
-#: ./module/gui/MainWindow.py:156
-msgid "Packages"
-msgstr "Packages"
-
-#: ./module/gui/MainWindow.py:158
-msgid "Push selected packages to queue"
-msgstr "Push selected packages to queue"
-
-#: ./module/gui/MainWindow.py:192
-msgid "Restart"
-msgstr "Restart"
-
-#: ./module/gui/MainWindow.py:193
-msgid "Pull out"
-msgstr "Pull out"
-
-#: ./module/gui/MainWindow.py:206
-msgid "Push to queue"
-msgstr "Push to queue"
-
-#: ./module/gui/MainWindow.py:207
-msgid "Edit Name"
-msgstr "Edit Name"
-
-#: ./module/gui/MainWindow.py:277
-msgid "All Container Types (%s)"
-msgstr "All Container Types (%s)"
-
-#: ./module/gui/MainWindow.py:278
-msgid "DLC (%s)"
-msgstr "DLC (%s)"
-
-#: ./module/gui/MainWindow.py:279
-msgid "CCF (%s)"
-msgstr "CCF (%s)"
-
-#: ./module/gui/MainWindow.py:280
-msgid "RSDF (%s)"
-msgstr "RSDF (%s)"
-
-#: ./module/gui/MainWindow.py:281
-msgid "Text Files (%s)"
-msgstr "Text Files (%s)"
-
-#: ./module/gui/MainWindow.py:283
-msgid "Open container"
-msgstr "Open container"
-
-#: ./module/gui/MainWindow.py:306
-msgid "Single Links"
-msgstr "Single Links"
-
-#: ./module/gui/PWInputWindow.py:27
-msgid "Password:"
-msgstr "Password:"
-
-#: ./module/gui/PackageDock.py:24
-msgid "New Package"
-msgstr "New Package"
-
-#: ./module/gui/PackageDock.py:50 ./pyLoadGui.py:236
-msgid "Name"
-msgstr "Name"
-
-#: ./module/gui/PackageDock.py:53
-msgid "Links in this Package"
-msgstr "Links in this Package"
-
-#: ./module/gui/PackageDock.py:68
-msgid "Create"
-msgstr "Create"
-
-#: ./pyLoadGui.py:236
-msgid "Plugin"
-msgstr "Plugin"
-
-#: ./pyLoadGui.py:236
-msgid "Progress"
-msgstr "Progress"
-
-#: ./pyLoadGui.py:236
-msgid "Status"
-msgstr "Status"
-
-#: ./pyLoadGui.py:252
-msgid "Paused"
-msgstr "Paused"
-
-#: ./pyLoadGui.py:254
-msgid "Running"
-msgstr "Running"
-
-#: ./pyLoadGui.py:256
-msgid "Status: %(status)s | Speed: %(speed)s kb/s"
-msgstr "Status: %(status)s | Speed: %(speed)s kb/s"
-
-#: ./pyLoadGui.py:281
-msgid "Update Available"
-msgstr "Update Available"
-
-#: ./pyLoadGui.py:305
-msgid "Unnamed"
-msgstr "Unnamed"
diff --git a/interfaces/gui/locale/es/LC_MESSAGES/pyLoadGui.mo b/interfaces/gui/locale/es/LC_MESSAGES/pyLoadGui.mo
deleted file mode 100644
index 1ae24953f..000000000
--- a/interfaces/gui/locale/es/LC_MESSAGES/pyLoadGui.mo
+++ /dev/null
Binary files differ
diff --git a/interfaces/gui/locale/es/gui.po b/interfaces/gui/locale/es/gui.po
deleted file mode 100644
index b8bd3b9ee..000000000
--- a/interfaces/gui/locale/es/gui.po
+++ /dev/null
@@ -1,255 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR ORGANIZATION
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-02-03 15:21+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"
-"X-Generator: Translate Toolkit 1.5.1\n"
-"Generated-By: pygettext.py 1.5\n"
-
-#: ./module/gui/CaptchaDock.py:25
-msgid "Captcha"
-msgstr ""
-
-#: ./module/gui/CaptchaDock.py:56 ./module/gui/PWInputWindow.py:28
-msgid "OK"
-msgstr ""
-
-#: ./module/gui/CaptchaDock.py:57 ./module/gui/ConnectionManager.py:154
-#: ./module/gui/PWInputWindow.py:29
-msgid "Cancel"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:33
-msgid "New"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:34
-msgid "Edit"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:35 ./module/gui/MainWindow.py:191
-#: ./module/gui/MainWindow.py:205
-msgid "Remove"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:36
-msgid "Connect"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:76
-msgid "%s (Default)"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:138
-msgid "Name:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:139
-msgid "Host:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:140
-msgid "SSL:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:141
-msgid "Local:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:142
-msgid "User:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:143
-msgid "Port:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:153
-msgid "Save"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:33
-msgid "pyLoad Client"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:60
-msgid "Status: Not Connected"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:65
-msgid "File"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:66
-msgid "Connections"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:70
-msgid "Exit"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:71
-msgid "Connection manager"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:88
-msgid "Queue"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:89
-msgid "Collector"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:90
-msgid "Settings"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:91
-msgid "Log"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:117
-msgid "Main Toolbar"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:120
-msgid "Toggle Pause/Resume"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:126
-msgid "Stop"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:128
-msgid "Add"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:130
-msgid "Check Clipboard"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:137
-msgid "Package"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:138
-msgid "Links"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:139
-msgid "Container"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:156
-msgid "Packages"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:158
-msgid "Push selected packages to queue"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:192
-msgid "Restart"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:193
-msgid "Pull out"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:206
-msgid "Push to queue"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:207
-msgid "Edit Name"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:277
-msgid "All Container Types (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:278
-msgid "DLC (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:279
-msgid "CCF (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:280
-msgid "RSDF (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:281
-msgid "Text Files (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:283
-msgid "Open container"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:306
-msgid "Single Links"
-msgstr ""
-
-#: ./module/gui/PWInputWindow.py:27
-msgid "Password:"
-msgstr ""
-
-#: ./module/gui/PackageDock.py:24
-msgid "New Package"
-msgstr ""
-
-#: ./module/gui/PackageDock.py:50 ./pyLoadGui.py:236
-msgid "Name"
-msgstr ""
-
-#: ./module/gui/PackageDock.py:53
-msgid "Links in this Package"
-msgstr ""
-
-#: ./module/gui/PackageDock.py:68
-msgid "Create"
-msgstr ""
-
-#: ./pyLoadGui.py:236
-msgid "Plugin"
-msgstr ""
-
-#: ./pyLoadGui.py:236
-msgid "Progress"
-msgstr ""
-
-#: ./pyLoadGui.py:236
-msgid "Status"
-msgstr ""
-
-#: ./pyLoadGui.py:252
-msgid "Paused"
-msgstr ""
-
-#: ./pyLoadGui.py:254
-msgid "Running"
-msgstr ""
-
-#: ./pyLoadGui.py:256
-msgid "Status: %(status)s | Speed: %(speed)s kb/s"
-msgstr ""
-
-#: ./pyLoadGui.py:281
-msgid "Update Available"
-msgstr ""
-
-#: ./pyLoadGui.py:305
-msgid "Unnamed"
-msgstr ""
diff --git a/interfaces/gui/locale/fi/LC_MESSAGES/pyLoadGui.mo b/interfaces/gui/locale/fi/LC_MESSAGES/pyLoadGui.mo
deleted file mode 100644
index 1ae24953f..000000000
--- a/interfaces/gui/locale/fi/LC_MESSAGES/pyLoadGui.mo
+++ /dev/null
Binary files differ
diff --git a/interfaces/gui/locale/fi/gui.po b/interfaces/gui/locale/fi/gui.po
deleted file mode 100644
index b8bd3b9ee..000000000
--- a/interfaces/gui/locale/fi/gui.po
+++ /dev/null
@@ -1,255 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR ORGANIZATION
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-02-03 15:21+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"
-"X-Generator: Translate Toolkit 1.5.1\n"
-"Generated-By: pygettext.py 1.5\n"
-
-#: ./module/gui/CaptchaDock.py:25
-msgid "Captcha"
-msgstr ""
-
-#: ./module/gui/CaptchaDock.py:56 ./module/gui/PWInputWindow.py:28
-msgid "OK"
-msgstr ""
-
-#: ./module/gui/CaptchaDock.py:57 ./module/gui/ConnectionManager.py:154
-#: ./module/gui/PWInputWindow.py:29
-msgid "Cancel"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:33
-msgid "New"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:34
-msgid "Edit"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:35 ./module/gui/MainWindow.py:191
-#: ./module/gui/MainWindow.py:205
-msgid "Remove"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:36
-msgid "Connect"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:76
-msgid "%s (Default)"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:138
-msgid "Name:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:139
-msgid "Host:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:140
-msgid "SSL:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:141
-msgid "Local:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:142
-msgid "User:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:143
-msgid "Port:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:153
-msgid "Save"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:33
-msgid "pyLoad Client"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:60
-msgid "Status: Not Connected"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:65
-msgid "File"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:66
-msgid "Connections"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:70
-msgid "Exit"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:71
-msgid "Connection manager"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:88
-msgid "Queue"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:89
-msgid "Collector"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:90
-msgid "Settings"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:91
-msgid "Log"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:117
-msgid "Main Toolbar"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:120
-msgid "Toggle Pause/Resume"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:126
-msgid "Stop"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:128
-msgid "Add"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:130
-msgid "Check Clipboard"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:137
-msgid "Package"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:138
-msgid "Links"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:139
-msgid "Container"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:156
-msgid "Packages"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:158
-msgid "Push selected packages to queue"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:192
-msgid "Restart"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:193
-msgid "Pull out"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:206
-msgid "Push to queue"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:207
-msgid "Edit Name"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:277
-msgid "All Container Types (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:278
-msgid "DLC (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:279
-msgid "CCF (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:280
-msgid "RSDF (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:281
-msgid "Text Files (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:283
-msgid "Open container"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:306
-msgid "Single Links"
-msgstr ""
-
-#: ./module/gui/PWInputWindow.py:27
-msgid "Password:"
-msgstr ""
-
-#: ./module/gui/PackageDock.py:24
-msgid "New Package"
-msgstr ""
-
-#: ./module/gui/PackageDock.py:50 ./pyLoadGui.py:236
-msgid "Name"
-msgstr ""
-
-#: ./module/gui/PackageDock.py:53
-msgid "Links in this Package"
-msgstr ""
-
-#: ./module/gui/PackageDock.py:68
-msgid "Create"
-msgstr ""
-
-#: ./pyLoadGui.py:236
-msgid "Plugin"
-msgstr ""
-
-#: ./pyLoadGui.py:236
-msgid "Progress"
-msgstr ""
-
-#: ./pyLoadGui.py:236
-msgid "Status"
-msgstr ""
-
-#: ./pyLoadGui.py:252
-msgid "Paused"
-msgstr ""
-
-#: ./pyLoadGui.py:254
-msgid "Running"
-msgstr ""
-
-#: ./pyLoadGui.py:256
-msgid "Status: %(status)s | Speed: %(speed)s kb/s"
-msgstr ""
-
-#: ./pyLoadGui.py:281
-msgid "Update Available"
-msgstr ""
-
-#: ./pyLoadGui.py:305
-msgid "Unnamed"
-msgstr ""
diff --git a/interfaces/gui/locale/fr/LC_MESSAGES/pyLoadGui.mo b/interfaces/gui/locale/fr/LC_MESSAGES/pyLoadGui.mo
deleted file mode 100644
index 1ae24953f..000000000
--- a/interfaces/gui/locale/fr/LC_MESSAGES/pyLoadGui.mo
+++ /dev/null
Binary files differ
diff --git a/interfaces/gui/locale/fr/gui.po b/interfaces/gui/locale/fr/gui.po
deleted file mode 100644
index b8bd3b9ee..000000000
--- a/interfaces/gui/locale/fr/gui.po
+++ /dev/null
@@ -1,255 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR ORGANIZATION
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-02-03 15:21+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"
-"X-Generator: Translate Toolkit 1.5.1\n"
-"Generated-By: pygettext.py 1.5\n"
-
-#: ./module/gui/CaptchaDock.py:25
-msgid "Captcha"
-msgstr ""
-
-#: ./module/gui/CaptchaDock.py:56 ./module/gui/PWInputWindow.py:28
-msgid "OK"
-msgstr ""
-
-#: ./module/gui/CaptchaDock.py:57 ./module/gui/ConnectionManager.py:154
-#: ./module/gui/PWInputWindow.py:29
-msgid "Cancel"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:33
-msgid "New"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:34
-msgid "Edit"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:35 ./module/gui/MainWindow.py:191
-#: ./module/gui/MainWindow.py:205
-msgid "Remove"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:36
-msgid "Connect"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:76
-msgid "%s (Default)"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:138
-msgid "Name:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:139
-msgid "Host:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:140
-msgid "SSL:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:141
-msgid "Local:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:142
-msgid "User:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:143
-msgid "Port:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:153
-msgid "Save"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:33
-msgid "pyLoad Client"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:60
-msgid "Status: Not Connected"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:65
-msgid "File"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:66
-msgid "Connections"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:70
-msgid "Exit"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:71
-msgid "Connection manager"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:88
-msgid "Queue"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:89
-msgid "Collector"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:90
-msgid "Settings"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:91
-msgid "Log"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:117
-msgid "Main Toolbar"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:120
-msgid "Toggle Pause/Resume"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:126
-msgid "Stop"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:128
-msgid "Add"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:130
-msgid "Check Clipboard"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:137
-msgid "Package"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:138
-msgid "Links"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:139
-msgid "Container"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:156
-msgid "Packages"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:158
-msgid "Push selected packages to queue"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:192
-msgid "Restart"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:193
-msgid "Pull out"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:206
-msgid "Push to queue"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:207
-msgid "Edit Name"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:277
-msgid "All Container Types (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:278
-msgid "DLC (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:279
-msgid "CCF (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:280
-msgid "RSDF (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:281
-msgid "Text Files (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:283
-msgid "Open container"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:306
-msgid "Single Links"
-msgstr ""
-
-#: ./module/gui/PWInputWindow.py:27
-msgid "Password:"
-msgstr ""
-
-#: ./module/gui/PackageDock.py:24
-msgid "New Package"
-msgstr ""
-
-#: ./module/gui/PackageDock.py:50 ./pyLoadGui.py:236
-msgid "Name"
-msgstr ""
-
-#: ./module/gui/PackageDock.py:53
-msgid "Links in this Package"
-msgstr ""
-
-#: ./module/gui/PackageDock.py:68
-msgid "Create"
-msgstr ""
-
-#: ./pyLoadGui.py:236
-msgid "Plugin"
-msgstr ""
-
-#: ./pyLoadGui.py:236
-msgid "Progress"
-msgstr ""
-
-#: ./pyLoadGui.py:236
-msgid "Status"
-msgstr ""
-
-#: ./pyLoadGui.py:252
-msgid "Paused"
-msgstr ""
-
-#: ./pyLoadGui.py:254
-msgid "Running"
-msgstr ""
-
-#: ./pyLoadGui.py:256
-msgid "Status: %(status)s | Speed: %(speed)s kb/s"
-msgstr ""
-
-#: ./pyLoadGui.py:281
-msgid "Update Available"
-msgstr ""
-
-#: ./pyLoadGui.py:305
-msgid "Unnamed"
-msgstr ""
diff --git a/interfaces/gui/locale/gui.pot b/interfaces/gui/locale/gui.pot
deleted file mode 100644
index aae5349f0..000000000
--- a/interfaces/gui/locale/gui.pot
+++ /dev/null
@@ -1,254 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR ORGANIZATION
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2010-02-03 15:21+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=CHARSET\n"
-"Content-Transfer-Encoding: ENCODING\n"
-"Generated-By: pygettext.py 1.5\n"
-
-#: ./module/gui/CaptchaDock.py:25
-msgid "Captcha"
-msgstr ""
-
-#: ./module/gui/CaptchaDock.py:56 ./module/gui/PWInputWindow.py:28
-msgid "OK"
-msgstr ""
-
-#: ./module/gui/CaptchaDock.py:57 ./module/gui/ConnectionManager.py:154
-#: ./module/gui/PWInputWindow.py:29
-msgid "Cancel"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:33
-msgid "New"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:34
-msgid "Edit"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:35 ./module/gui/MainWindow.py:191
-#: ./module/gui/MainWindow.py:205
-msgid "Remove"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:36
-msgid "Connect"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:76
-msgid "%s (Default)"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:138
-msgid "Name:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:139
-msgid "Host:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:140
-msgid "SSL:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:141
-msgid "Local:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:142
-msgid "User:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:143
-msgid "Port:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:153
-msgid "Save"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:33
-msgid "pyLoad Client"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:60
-msgid "Status: Not Connected"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:65
-msgid "File"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:66
-msgid "Connections"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:70
-msgid "Exit"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:71
-msgid "Connection manager"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:88
-msgid "Queue"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:89
-msgid "Collector"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:90
-msgid "Settings"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:91
-msgid "Log"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:117
-msgid "Main Toolbar"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:120
-msgid "Toggle Pause/Resume"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:126
-msgid "Stop"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:128
-msgid "Add"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:130
-msgid "Check Clipboard"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:137
-msgid "Package"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:138
-msgid "Links"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:139
-msgid "Container"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:156
-msgid "Packages"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:158
-msgid "Push selected packages to queue"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:192
-msgid "Restart"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:193
-msgid "Pull out"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:206
-msgid "Push to queue"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:207
-msgid "Edit Name"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:277
-msgid "All Container Types (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:278
-msgid "DLC (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:279
-msgid "CCF (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:280
-msgid "RSDF (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:281
-msgid "Text Files (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:283
-msgid "Open container"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:306
-msgid "Single Links"
-msgstr ""
-
-#: ./module/gui/PWInputWindow.py:27
-msgid "Password:"
-msgstr ""
-
-#: ./module/gui/PackageDock.py:24
-msgid "New Package"
-msgstr ""
-
-#: ./module/gui/PackageDock.py:50 ./pyLoadGui.py:236
-msgid "Name"
-msgstr ""
-
-#: ./module/gui/PackageDock.py:53
-msgid "Links in this Package"
-msgstr ""
-
-#: ./module/gui/PackageDock.py:68
-msgid "Create"
-msgstr ""
-
-#: ./pyLoadGui.py:236
-msgid "Plugin"
-msgstr ""
-
-#: ./pyLoadGui.py:236
-msgid "Progress"
-msgstr ""
-
-#: ./pyLoadGui.py:236
-msgid "Status"
-msgstr ""
-
-#: ./pyLoadGui.py:252
-msgid "Paused"
-msgstr ""
-
-#: ./pyLoadGui.py:254
-msgid "Running"
-msgstr ""
-
-#: ./pyLoadGui.py:256
-msgid "Status: %(status)s | Speed: %(speed)s kb/s"
-msgstr ""
-
-#: ./pyLoadGui.py:281
-msgid "Update Available"
-msgstr ""
-
-#: ./pyLoadGui.py:305
-msgid "Unnamed"
-msgstr ""
-
diff --git a/interfaces/gui/locale/it/LC_MESSAGES/pyLoadGui.mo b/interfaces/gui/locale/it/LC_MESSAGES/pyLoadGui.mo
deleted file mode 100644
index 1ae24953f..000000000
--- a/interfaces/gui/locale/it/LC_MESSAGES/pyLoadGui.mo
+++ /dev/null
Binary files differ
diff --git a/interfaces/gui/locale/it/gui.po b/interfaces/gui/locale/it/gui.po
deleted file mode 100644
index b8bd3b9ee..000000000
--- a/interfaces/gui/locale/it/gui.po
+++ /dev/null
@@ -1,255 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR ORGANIZATION
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-02-03 15:21+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"
-"X-Generator: Translate Toolkit 1.5.1\n"
-"Generated-By: pygettext.py 1.5\n"
-
-#: ./module/gui/CaptchaDock.py:25
-msgid "Captcha"
-msgstr ""
-
-#: ./module/gui/CaptchaDock.py:56 ./module/gui/PWInputWindow.py:28
-msgid "OK"
-msgstr ""
-
-#: ./module/gui/CaptchaDock.py:57 ./module/gui/ConnectionManager.py:154
-#: ./module/gui/PWInputWindow.py:29
-msgid "Cancel"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:33
-msgid "New"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:34
-msgid "Edit"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:35 ./module/gui/MainWindow.py:191
-#: ./module/gui/MainWindow.py:205
-msgid "Remove"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:36
-msgid "Connect"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:76
-msgid "%s (Default)"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:138
-msgid "Name:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:139
-msgid "Host:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:140
-msgid "SSL:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:141
-msgid "Local:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:142
-msgid "User:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:143
-msgid "Port:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:153
-msgid "Save"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:33
-msgid "pyLoad Client"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:60
-msgid "Status: Not Connected"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:65
-msgid "File"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:66
-msgid "Connections"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:70
-msgid "Exit"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:71
-msgid "Connection manager"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:88
-msgid "Queue"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:89
-msgid "Collector"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:90
-msgid "Settings"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:91
-msgid "Log"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:117
-msgid "Main Toolbar"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:120
-msgid "Toggle Pause/Resume"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:126
-msgid "Stop"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:128
-msgid "Add"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:130
-msgid "Check Clipboard"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:137
-msgid "Package"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:138
-msgid "Links"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:139
-msgid "Container"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:156
-msgid "Packages"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:158
-msgid "Push selected packages to queue"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:192
-msgid "Restart"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:193
-msgid "Pull out"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:206
-msgid "Push to queue"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:207
-msgid "Edit Name"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:277
-msgid "All Container Types (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:278
-msgid "DLC (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:279
-msgid "CCF (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:280
-msgid "RSDF (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:281
-msgid "Text Files (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:283
-msgid "Open container"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:306
-msgid "Single Links"
-msgstr ""
-
-#: ./module/gui/PWInputWindow.py:27
-msgid "Password:"
-msgstr ""
-
-#: ./module/gui/PackageDock.py:24
-msgid "New Package"
-msgstr ""
-
-#: ./module/gui/PackageDock.py:50 ./pyLoadGui.py:236
-msgid "Name"
-msgstr ""
-
-#: ./module/gui/PackageDock.py:53
-msgid "Links in this Package"
-msgstr ""
-
-#: ./module/gui/PackageDock.py:68
-msgid "Create"
-msgstr ""
-
-#: ./pyLoadGui.py:236
-msgid "Plugin"
-msgstr ""
-
-#: ./pyLoadGui.py:236
-msgid "Progress"
-msgstr ""
-
-#: ./pyLoadGui.py:236
-msgid "Status"
-msgstr ""
-
-#: ./pyLoadGui.py:252
-msgid "Paused"
-msgstr ""
-
-#: ./pyLoadGui.py:254
-msgid "Running"
-msgstr ""
-
-#: ./pyLoadGui.py:256
-msgid "Status: %(status)s | Speed: %(speed)s kb/s"
-msgstr ""
-
-#: ./pyLoadGui.py:281
-msgid "Update Available"
-msgstr ""
-
-#: ./pyLoadGui.py:305
-msgid "Unnamed"
-msgstr ""
diff --git a/interfaces/gui/locale/nl/LC_MESSAGES/pyLoadGui.mo b/interfaces/gui/locale/nl/LC_MESSAGES/pyLoadGui.mo
deleted file mode 100644
index 94df0f64b..000000000
--- a/interfaces/gui/locale/nl/LC_MESSAGES/pyLoadGui.mo
+++ /dev/null
Binary files differ
diff --git a/interfaces/gui/locale/nl/gui.po b/interfaces/gui/locale/nl/gui.po
deleted file mode 100644
index 15562c9be..000000000
--- a/interfaces/gui/locale/nl/gui.po
+++ /dev/null
@@ -1,257 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR ORGANIZATION
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-02-03 15:21+CET\n"
-"PO-Revision-Date: 2010-02-16 14:32+0200\n"
-"Last-Translator: <laurenshoogstraten@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: nl\n"
-"MIME-Version: 1.0\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"
-
-#: ./module/gui/CaptchaDock.py:25
-msgid "Captcha"
-msgstr "Captcha"
-
-#: ./module/gui/CaptchaDock.py:56 ./module/gui/PWInputWindow.py:28
-msgid "OK"
-msgstr "OK"
-
-#: ./module/gui/CaptchaDock.py:57 ./module/gui/ConnectionManager.py:154
-#: ./module/gui/PWInputWindow.py:29
-msgid "Cancel"
-msgstr "Annuleer"
-
-#: ./module/gui/ConnectionManager.py:33
-msgid "New"
-msgstr "Nieuw"
-
-#: ./module/gui/ConnectionManager.py:34
-msgid "Edit"
-msgstr "Wijzigen"
-
-#: ./module/gui/ConnectionManager.py:35 ./module/gui/MainWindow.py:191
-#: ./module/gui/MainWindow.py:205
-msgid "Remove"
-msgstr "Verwijder"
-
-#: ./module/gui/ConnectionManager.py:36
-msgid "Connect"
-msgstr "Verbinden"
-
-#: ./module/gui/ConnectionManager.py:76
-msgid "%s (Default)"
-msgstr "%s (Standaard)"
-
-#: ./module/gui/ConnectionManager.py:138
-msgid "Name:"
-msgstr "Naam:"
-
-#: ./module/gui/ConnectionManager.py:139
-msgid "Host:"
-msgstr "Host:"
-
-#: ./module/gui/ConnectionManager.py:140
-msgid "SSL:"
-msgstr "SSL:"
-
-#: ./module/gui/ConnectionManager.py:141
-msgid "Local:"
-msgstr "Lokaal:"
-
-#: ./module/gui/ConnectionManager.py:142
-msgid "User:"
-msgstr "Gebruiker:"
-
-#: ./module/gui/ConnectionManager.py:143
-msgid "Port:"
-msgstr "Port:"
-
-#: ./module/gui/ConnectionManager.py:153
-msgid "Save"
-msgstr "Opslaan"
-
-#: ./module/gui/MainWindow.py:33
-msgid "pyLoad Client"
-msgstr "pyLoad cliënt"
-
-#: ./module/gui/MainWindow.py:60
-msgid "Status: Not Connected"
-msgstr "Status: Niet verbonden"
-
-#: ./module/gui/MainWindow.py:65
-msgid "File"
-msgstr "Bestand"
-
-#: ./module/gui/MainWindow.py:66
-msgid "Connections"
-msgstr "Verbindingen"
-
-#: ./module/gui/MainWindow.py:70
-msgid "Exit"
-msgstr "Afsluiten"
-
-#: ./module/gui/MainWindow.py:71
-msgid "Connection manager"
-msgstr "Verbindingen beheer"
-
-#: ./module/gui/MainWindow.py:88
-msgid "Queue"
-msgstr "Wachtrij"
-
-#: ./module/gui/MainWindow.py:89
-msgid "Collector"
-msgstr "Verzamelaar"
-
-#: ./module/gui/MainWindow.py:90
-msgid "Settings"
-msgstr "Instellingen"
-
-#: ./module/gui/MainWindow.py:91
-msgid "Log"
-msgstr "Logboek"
-
-#: ./module/gui/MainWindow.py:117
-msgid "Main Toolbar"
-msgstr "Hoofd Toolbar"
-
-#: ./module/gui/MainWindow.py:120
-msgid "Toggle Pause/Resume"
-msgstr "Pauze/Herstarten"
-
-#: ./module/gui/MainWindow.py:126
-msgid "Stop"
-msgstr "Stop"
-
-#: ./module/gui/MainWindow.py:128
-msgid "Add"
-msgstr "Toevoegen"
-
-#: ./module/gui/MainWindow.py:130
-msgid "Check Clipboard"
-msgstr "Check Klembord"
-
-#: ./module/gui/MainWindow.py:137
-msgid "Package"
-msgstr "Pakket"
-
-#: ./module/gui/MainWindow.py:138
-msgid "Links"
-msgstr "Links"
-
-#: ./module/gui/MainWindow.py:139
-msgid "Container"
-msgstr "Container"
-
-#: ./module/gui/MainWindow.py:156
-msgid "Packages"
-msgstr "Pakketen"
-
-#: ./module/gui/MainWindow.py:158
-msgid "Push selected packages to queue"
-msgstr "Verplaats de geselecteerde pakketen naar de wacht rij"
-
-#: ./module/gui/MainWindow.py:192
-msgid "Restart"
-msgstr "Herstart"
-
-# Don't know in wich context this is.
-#: ./module/gui/MainWindow.py:193
-msgid "Pull out"
-msgstr "Pull out"
-
-#: ./module/gui/MainWindow.py:206
-msgid "Push to queue"
-msgstr "Verplaats naar wacht rij"
-
-#: ./module/gui/MainWindow.py:207
-msgid "Edit Name"
-msgstr "Wijzig Naam"
-
-#: ./module/gui/MainWindow.py:277
-msgid "All Container Types (%s)"
-msgstr "Alle Containers types (%s)"
-
-#: ./module/gui/MainWindow.py:278
-msgid "DLC (%s)"
-msgstr "DLC (%s)"
-
-#: ./module/gui/MainWindow.py:279
-msgid "CCF (%s)"
-msgstr "CCF (%s)"
-
-#: ./module/gui/MainWindow.py:280
-msgid "RSDF (%s)"
-msgstr "RSDF (%s)"
-
-#: ./module/gui/MainWindow.py:281
-msgid "Text Files (%s)"
-msgstr "Tekst Bestanden (%s)"
-
-#: ./module/gui/MainWindow.py:283
-msgid "Open container"
-msgstr "Open container"
-
-#: ./module/gui/MainWindow.py:306
-msgid "Single Links"
-msgstr "Enkele Links"
-
-#: ./module/gui/PWInputWindow.py:27
-msgid "Password:"
-msgstr "Wachtwoord:"
-
-#: ./module/gui/PackageDock.py:24
-msgid "New Package"
-msgstr "Nieuw Pakket"
-
-#: ./module/gui/PackageDock.py:50 ./pyLoadGui.py:236
-msgid "Name"
-msgstr "Naam"
-
-#: ./module/gui/PackageDock.py:53
-msgid "Links in this Package"
-msgstr "Links in dit pakket"
-
-#: ./module/gui/PackageDock.py:68
-msgid "Create"
-msgstr "Creëer"
-
-#: ./pyLoadGui.py:236
-msgid "Plugin"
-msgstr "Plugin"
-
-#: ./pyLoadGui.py:236
-msgid "Progress"
-msgstr "Vooruitgang"
-
-#: ./pyLoadGui.py:236
-msgid "Status"
-msgstr "Status"
-
-#: ./pyLoadGui.py:252
-msgid "Paused"
-msgstr "Gepauzeerd"
-
-#: ./pyLoadGui.py:254
-msgid "Running"
-msgstr "Gestart"
-
-#: ./pyLoadGui.py:256
-msgid "Status: %(status)s | Speed: %(speed)s kb/s"
-msgstr "Status: %(status)s | Snelheid: %(speed)s kb/s"
-
-#: ./pyLoadGui.py:281
-msgid "Update Available"
-msgstr "Update Beschikbaar"
-
-#: ./pyLoadGui.py:305
-msgid "Unnamed"
-msgstr "Naamloos"
diff --git a/interfaces/gui/locale/pl/LC_MESSAGES/pyLoadGui.mo b/interfaces/gui/locale/pl/LC_MESSAGES/pyLoadGui.mo
deleted file mode 100644
index 7d1745301..000000000
--- a/interfaces/gui/locale/pl/LC_MESSAGES/pyLoadGui.mo
+++ /dev/null
Binary files differ
diff --git a/interfaces/gui/locale/pl/gui.po b/interfaces/gui/locale/pl/gui.po
deleted file mode 100644
index a4ef49e11..000000000
--- a/interfaces/gui/locale/pl/gui.po
+++ /dev/null
@@ -1,257 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR ORGANIZATION
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-02-03 15:21+CET\n"
-"PO-Revision-Date: 2010-02-05 01:18+0200\n"
-"Last-Translator: <martii@interia.pl>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: pl\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
-"|| n%100>=20) ? 1 : 2);\n"
-"X-Generator: Pootle 2.0.0\n"
-"Generated-By: pygettext.py 1.5\n"
-
-#: ./module/gui/CaptchaDock.py:25
-msgid "Captcha"
-msgstr "Token"
-
-#: ./module/gui/CaptchaDock.py:56 ./module/gui/PWInputWindow.py:28
-msgid "OK"
-msgstr "OK"
-
-#: ./module/gui/CaptchaDock.py:57 ./module/gui/ConnectionManager.py:154
-#: ./module/gui/PWInputWindow.py:29
-msgid "Cancel"
-msgstr "Anuluj"
-
-#: ./module/gui/ConnectionManager.py:33
-msgid "New"
-msgstr "Nowy"
-
-#: ./module/gui/ConnectionManager.py:34
-msgid "Edit"
-msgstr "Edytuj"
-
-#: ./module/gui/ConnectionManager.py:35 ./module/gui/MainWindow.py:191
-#: ./module/gui/MainWindow.py:205
-msgid "Remove"
-msgstr "Usuń"
-
-#: ./module/gui/ConnectionManager.py:36
-msgid "Connect"
-msgstr "Połącz"
-
-#: ./module/gui/ConnectionManager.py:76
-msgid "%s (Default)"
-msgstr "%s (domyślnie)"
-
-#: ./module/gui/ConnectionManager.py:138
-msgid "Name:"
-msgstr "Nazwa:"
-
-#: ./module/gui/ConnectionManager.py:139
-msgid "Host:"
-msgstr "Host:"
-
-#: ./module/gui/ConnectionManager.py:140
-msgid "SSL:"
-msgstr "SSL:"
-
-#: ./module/gui/ConnectionManager.py:141
-msgid "Local:"
-msgstr "Lokalny:"
-
-#: ./module/gui/ConnectionManager.py:142
-msgid "User:"
-msgstr "Użytkownik:"
-
-#: ./module/gui/ConnectionManager.py:143
-msgid "Port:"
-msgstr "Port:"
-
-#: ./module/gui/ConnectionManager.py:153
-msgid "Save"
-msgstr "Zapisz"
-
-#: ./module/gui/MainWindow.py:33
-msgid "pyLoad Client"
-msgstr "Klient pyLoad"
-
-#: ./module/gui/MainWindow.py:60
-msgid "Status: Not Connected"
-msgstr "Status: nie połączony"
-
-#: ./module/gui/MainWindow.py:65
-msgid "File"
-msgstr "Plik"
-
-#: ./module/gui/MainWindow.py:66
-msgid "Connections"
-msgstr "Połączenia"
-
-#: ./module/gui/MainWindow.py:70
-msgid "Exit"
-msgstr "Wyjście"
-
-#: ./module/gui/MainWindow.py:71
-msgid "Connection manager"
-msgstr "Zarządzanie połączeniami"
-
-#: ./module/gui/MainWindow.py:88
-msgid "Queue"
-msgstr "Kolejka"
-
-#: ./module/gui/MainWindow.py:89
-msgid "Collector"
-msgstr "Kolektor"
-
-#: ./module/gui/MainWindow.py:90
-msgid "Settings"
-msgstr "Ustawienia"
-
-#: ./module/gui/MainWindow.py:91
-msgid "Log"
-msgstr "Log"
-
-#: ./module/gui/MainWindow.py:117
-msgid "Main Toolbar"
-msgstr "Główny pasek"
-
-#: ./module/gui/MainWindow.py:120
-msgid "Toggle Pause/Resume"
-msgstr "Wstrzymaj/Wznów"
-
-#: ./module/gui/MainWindow.py:126
-msgid "Stop"
-msgstr "Zatrzymaj"
-
-#: ./module/gui/MainWindow.py:128
-msgid "Add"
-msgstr "Dodaj"
-
-#: ./module/gui/MainWindow.py:130
-msgid "Check Clipboard"
-msgstr "Sprawdź schowek"
-
-#: ./module/gui/MainWindow.py:137
-msgid "Package"
-msgstr "Paczka"
-
-#: ./module/gui/MainWindow.py:138
-msgid "Links"
-msgstr "Linki"
-
-#: ./module/gui/MainWindow.py:139
-msgid "Container"
-msgstr "Kontener"
-
-#: ./module/gui/MainWindow.py:156
-msgid "Packages"
-msgstr "Paczki"
-
-#: ./module/gui/MainWindow.py:158
-msgid "Push selected packages to queue"
-msgstr "Wyślij wybraną paczkę do kolejki"
-
-#: ./module/gui/MainWindow.py:192
-msgid "Restart"
-msgstr "Restartuj"
-
-#: ./module/gui/MainWindow.py:193
-msgid "Pull out"
-msgstr "Wycofaj"
-
-#: ./module/gui/MainWindow.py:206
-msgid "Push to queue"
-msgstr "Wyślij do kolejki"
-
-#: ./module/gui/MainWindow.py:207
-msgid "Edit Name"
-msgstr "Edytuj nazwę"
-
-#: ./module/gui/MainWindow.py:277
-msgid "All Container Types (%s)"
-msgstr "Wszystkie rodzaje kontenerów (%s)"
-
-#: ./module/gui/MainWindow.py:278
-msgid "DLC (%s)"
-msgstr "DLC (%s)"
-
-#: ./module/gui/MainWindow.py:279
-msgid "CCF (%s)"
-msgstr "CCF (%s)"
-
-#: ./module/gui/MainWindow.py:280
-msgid "RSDF (%s)"
-msgstr "RSDF (%s)"
-
-#: ./module/gui/MainWindow.py:281
-msgid "Text Files (%s)"
-msgstr "Pliki tekstowe (%s)"
-
-#: ./module/gui/MainWindow.py:283
-msgid "Open container"
-msgstr "Otwórz kontener"
-
-#: ./module/gui/MainWindow.py:306
-msgid "Single Links"
-msgstr "Pojedyńcze linki"
-
-#: ./module/gui/PWInputWindow.py:27
-msgid "Password:"
-msgstr "Hasło:"
-
-#: ./module/gui/PackageDock.py:24
-msgid "New Package"
-msgstr "Nowa paczka"
-
-#: ./module/gui/PackageDock.py:50 ./pyLoadGui.py:236
-msgid "Name"
-msgstr "Nazwa"
-
-#: ./module/gui/PackageDock.py:53
-msgid "Links in this Package"
-msgstr "Linki na tej stronie"
-
-#: ./module/gui/PackageDock.py:68
-msgid "Create"
-msgstr "Utwórz"
-
-#: ./pyLoadGui.py:236
-msgid "Plugin"
-msgstr "Wtyczka"
-
-#: ./pyLoadGui.py:236
-msgid "Progress"
-msgstr "Postęp"
-
-#: ./pyLoadGui.py:236
-msgid "Status"
-msgstr "Stan"
-
-#: ./pyLoadGui.py:252
-msgid "Paused"
-msgstr "Wstrzymany"
-
-#: ./pyLoadGui.py:254
-msgid "Running"
-msgstr "Uruchomiony"
-
-#: ./pyLoadGui.py:256
-msgid "Status: %(status)s | Speed: %(speed)s kb/s"
-msgstr "Stan: %(status)s | Prędkość: %(speed)s kb/s"
-
-#: ./pyLoadGui.py:281
-msgid "Update Available"
-msgstr "Jest dostępna aktualizacja"
-
-#: ./pyLoadGui.py:305
-msgid "Unnamed"
-msgstr "Bez nazwy"
diff --git a/interfaces/gui/locale/ro/LC_MESSAGES/pyLoadGui.mo b/interfaces/gui/locale/ro/LC_MESSAGES/pyLoadGui.mo
deleted file mode 100644
index 1ae24953f..000000000
--- a/interfaces/gui/locale/ro/LC_MESSAGES/pyLoadGui.mo
+++ /dev/null
Binary files differ
diff --git a/interfaces/gui/locale/ro/gui.po b/interfaces/gui/locale/ro/gui.po
deleted file mode 100644
index b8bd3b9ee..000000000
--- a/interfaces/gui/locale/ro/gui.po
+++ /dev/null
@@ -1,255 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR ORGANIZATION
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-02-03 15:21+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"
-"X-Generator: Translate Toolkit 1.5.1\n"
-"Generated-By: pygettext.py 1.5\n"
-
-#: ./module/gui/CaptchaDock.py:25
-msgid "Captcha"
-msgstr ""
-
-#: ./module/gui/CaptchaDock.py:56 ./module/gui/PWInputWindow.py:28
-msgid "OK"
-msgstr ""
-
-#: ./module/gui/CaptchaDock.py:57 ./module/gui/ConnectionManager.py:154
-#: ./module/gui/PWInputWindow.py:29
-msgid "Cancel"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:33
-msgid "New"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:34
-msgid "Edit"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:35 ./module/gui/MainWindow.py:191
-#: ./module/gui/MainWindow.py:205
-msgid "Remove"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:36
-msgid "Connect"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:76
-msgid "%s (Default)"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:138
-msgid "Name:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:139
-msgid "Host:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:140
-msgid "SSL:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:141
-msgid "Local:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:142
-msgid "User:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:143
-msgid "Port:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:153
-msgid "Save"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:33
-msgid "pyLoad Client"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:60
-msgid "Status: Not Connected"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:65
-msgid "File"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:66
-msgid "Connections"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:70
-msgid "Exit"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:71
-msgid "Connection manager"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:88
-msgid "Queue"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:89
-msgid "Collector"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:90
-msgid "Settings"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:91
-msgid "Log"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:117
-msgid "Main Toolbar"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:120
-msgid "Toggle Pause/Resume"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:126
-msgid "Stop"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:128
-msgid "Add"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:130
-msgid "Check Clipboard"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:137
-msgid "Package"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:138
-msgid "Links"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:139
-msgid "Container"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:156
-msgid "Packages"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:158
-msgid "Push selected packages to queue"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:192
-msgid "Restart"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:193
-msgid "Pull out"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:206
-msgid "Push to queue"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:207
-msgid "Edit Name"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:277
-msgid "All Container Types (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:278
-msgid "DLC (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:279
-msgid "CCF (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:280
-msgid "RSDF (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:281
-msgid "Text Files (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:283
-msgid "Open container"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:306
-msgid "Single Links"
-msgstr ""
-
-#: ./module/gui/PWInputWindow.py:27
-msgid "Password:"
-msgstr ""
-
-#: ./module/gui/PackageDock.py:24
-msgid "New Package"
-msgstr ""
-
-#: ./module/gui/PackageDock.py:50 ./pyLoadGui.py:236
-msgid "Name"
-msgstr ""
-
-#: ./module/gui/PackageDock.py:53
-msgid "Links in this Package"
-msgstr ""
-
-#: ./module/gui/PackageDock.py:68
-msgid "Create"
-msgstr ""
-
-#: ./pyLoadGui.py:236
-msgid "Plugin"
-msgstr ""
-
-#: ./pyLoadGui.py:236
-msgid "Progress"
-msgstr ""
-
-#: ./pyLoadGui.py:236
-msgid "Status"
-msgstr ""
-
-#: ./pyLoadGui.py:252
-msgid "Paused"
-msgstr ""
-
-#: ./pyLoadGui.py:254
-msgid "Running"
-msgstr ""
-
-#: ./pyLoadGui.py:256
-msgid "Status: %(status)s | Speed: %(speed)s kb/s"
-msgstr ""
-
-#: ./pyLoadGui.py:281
-msgid "Update Available"
-msgstr ""
-
-#: ./pyLoadGui.py:305
-msgid "Unnamed"
-msgstr ""
diff --git a/interfaces/gui/locale/ru/LC_MESSAGES/pyLoadGui.mo b/interfaces/gui/locale/ru/LC_MESSAGES/pyLoadGui.mo
deleted file mode 100644
index 1ae24953f..000000000
--- a/interfaces/gui/locale/ru/LC_MESSAGES/pyLoadGui.mo
+++ /dev/null
Binary files differ
diff --git a/interfaces/gui/locale/ru/gui.po b/interfaces/gui/locale/ru/gui.po
deleted file mode 100644
index b8bd3b9ee..000000000
--- a/interfaces/gui/locale/ru/gui.po
+++ /dev/null
@@ -1,255 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR ORGANIZATION
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-02-03 15:21+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"
-"X-Generator: Translate Toolkit 1.5.1\n"
-"Generated-By: pygettext.py 1.5\n"
-
-#: ./module/gui/CaptchaDock.py:25
-msgid "Captcha"
-msgstr ""
-
-#: ./module/gui/CaptchaDock.py:56 ./module/gui/PWInputWindow.py:28
-msgid "OK"
-msgstr ""
-
-#: ./module/gui/CaptchaDock.py:57 ./module/gui/ConnectionManager.py:154
-#: ./module/gui/PWInputWindow.py:29
-msgid "Cancel"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:33
-msgid "New"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:34
-msgid "Edit"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:35 ./module/gui/MainWindow.py:191
-#: ./module/gui/MainWindow.py:205
-msgid "Remove"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:36
-msgid "Connect"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:76
-msgid "%s (Default)"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:138
-msgid "Name:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:139
-msgid "Host:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:140
-msgid "SSL:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:141
-msgid "Local:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:142
-msgid "User:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:143
-msgid "Port:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:153
-msgid "Save"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:33
-msgid "pyLoad Client"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:60
-msgid "Status: Not Connected"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:65
-msgid "File"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:66
-msgid "Connections"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:70
-msgid "Exit"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:71
-msgid "Connection manager"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:88
-msgid "Queue"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:89
-msgid "Collector"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:90
-msgid "Settings"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:91
-msgid "Log"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:117
-msgid "Main Toolbar"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:120
-msgid "Toggle Pause/Resume"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:126
-msgid "Stop"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:128
-msgid "Add"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:130
-msgid "Check Clipboard"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:137
-msgid "Package"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:138
-msgid "Links"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:139
-msgid "Container"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:156
-msgid "Packages"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:158
-msgid "Push selected packages to queue"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:192
-msgid "Restart"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:193
-msgid "Pull out"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:206
-msgid "Push to queue"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:207
-msgid "Edit Name"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:277
-msgid "All Container Types (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:278
-msgid "DLC (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:279
-msgid "CCF (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:280
-msgid "RSDF (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:281
-msgid "Text Files (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:283
-msgid "Open container"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:306
-msgid "Single Links"
-msgstr ""
-
-#: ./module/gui/PWInputWindow.py:27
-msgid "Password:"
-msgstr ""
-
-#: ./module/gui/PackageDock.py:24
-msgid "New Package"
-msgstr ""
-
-#: ./module/gui/PackageDock.py:50 ./pyLoadGui.py:236
-msgid "Name"
-msgstr ""
-
-#: ./module/gui/PackageDock.py:53
-msgid "Links in this Package"
-msgstr ""
-
-#: ./module/gui/PackageDock.py:68
-msgid "Create"
-msgstr ""
-
-#: ./pyLoadGui.py:236
-msgid "Plugin"
-msgstr ""
-
-#: ./pyLoadGui.py:236
-msgid "Progress"
-msgstr ""
-
-#: ./pyLoadGui.py:236
-msgid "Status"
-msgstr ""
-
-#: ./pyLoadGui.py:252
-msgid "Paused"
-msgstr ""
-
-#: ./pyLoadGui.py:254
-msgid "Running"
-msgstr ""
-
-#: ./pyLoadGui.py:256
-msgid "Status: %(status)s | Speed: %(speed)s kb/s"
-msgstr ""
-
-#: ./pyLoadGui.py:281
-msgid "Update Available"
-msgstr ""
-
-#: ./pyLoadGui.py:305
-msgid "Unnamed"
-msgstr ""
diff --git a/interfaces/gui/locale/tr/LC_MESSAGES/pyLoadGui.mo b/interfaces/gui/locale/tr/LC_MESSAGES/pyLoadGui.mo
deleted file mode 100644
index 1ae24953f..000000000
--- a/interfaces/gui/locale/tr/LC_MESSAGES/pyLoadGui.mo
+++ /dev/null
Binary files differ
diff --git a/interfaces/gui/locale/tr/gui.po b/interfaces/gui/locale/tr/gui.po
deleted file mode 100644
index b8bd3b9ee..000000000
--- a/interfaces/gui/locale/tr/gui.po
+++ /dev/null
@@ -1,255 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR ORGANIZATION
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-02-03 15:21+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"
-"X-Generator: Translate Toolkit 1.5.1\n"
-"Generated-By: pygettext.py 1.5\n"
-
-#: ./module/gui/CaptchaDock.py:25
-msgid "Captcha"
-msgstr ""
-
-#: ./module/gui/CaptchaDock.py:56 ./module/gui/PWInputWindow.py:28
-msgid "OK"
-msgstr ""
-
-#: ./module/gui/CaptchaDock.py:57 ./module/gui/ConnectionManager.py:154
-#: ./module/gui/PWInputWindow.py:29
-msgid "Cancel"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:33
-msgid "New"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:34
-msgid "Edit"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:35 ./module/gui/MainWindow.py:191
-#: ./module/gui/MainWindow.py:205
-msgid "Remove"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:36
-msgid "Connect"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:76
-msgid "%s (Default)"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:138
-msgid "Name:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:139
-msgid "Host:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:140
-msgid "SSL:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:141
-msgid "Local:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:142
-msgid "User:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:143
-msgid "Port:"
-msgstr ""
-
-#: ./module/gui/ConnectionManager.py:153
-msgid "Save"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:33
-msgid "pyLoad Client"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:60
-msgid "Status: Not Connected"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:65
-msgid "File"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:66
-msgid "Connections"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:70
-msgid "Exit"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:71
-msgid "Connection manager"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:88
-msgid "Queue"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:89
-msgid "Collector"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:90
-msgid "Settings"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:91
-msgid "Log"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:117
-msgid "Main Toolbar"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:120
-msgid "Toggle Pause/Resume"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:126
-msgid "Stop"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:128
-msgid "Add"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:130
-msgid "Check Clipboard"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:137
-msgid "Package"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:138
-msgid "Links"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:139
-msgid "Container"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:156
-msgid "Packages"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:158
-msgid "Push selected packages to queue"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:192
-msgid "Restart"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:193
-msgid "Pull out"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:206
-msgid "Push to queue"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:207
-msgid "Edit Name"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:277
-msgid "All Container Types (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:278
-msgid "DLC (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:279
-msgid "CCF (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:280
-msgid "RSDF (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:281
-msgid "Text Files (%s)"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:283
-msgid "Open container"
-msgstr ""
-
-#: ./module/gui/MainWindow.py:306
-msgid "Single Links"
-msgstr ""
-
-#: ./module/gui/PWInputWindow.py:27
-msgid "Password:"
-msgstr ""
-
-#: ./module/gui/PackageDock.py:24
-msgid "New Package"
-msgstr ""
-
-#: ./module/gui/PackageDock.py:50 ./pyLoadGui.py:236
-msgid "Name"
-msgstr ""
-
-#: ./module/gui/PackageDock.py:53
-msgid "Links in this Package"
-msgstr ""
-
-#: ./module/gui/PackageDock.py:68
-msgid "Create"
-msgstr ""
-
-#: ./pyLoadGui.py:236
-msgid "Plugin"
-msgstr ""
-
-#: ./pyLoadGui.py:236
-msgid "Progress"
-msgstr ""
-
-#: ./pyLoadGui.py:236
-msgid "Status"
-msgstr ""
-
-#: ./pyLoadGui.py:252
-msgid "Paused"
-msgstr ""
-
-#: ./pyLoadGui.py:254
-msgid "Running"
-msgstr ""
-
-#: ./pyLoadGui.py:256
-msgid "Status: %(status)s | Speed: %(speed)s kb/s"
-msgstr ""
-
-#: ./pyLoadGui.py:281
-msgid "Update Available"
-msgstr ""
-
-#: ./pyLoadGui.py:305
-msgid "Unnamed"
-msgstr ""
diff --git a/interfaces/gui/module/__init__.py b/interfaces/gui/module/__init__.py
deleted file mode 100644
index e69de29bb..000000000
--- a/interfaces/gui/module/__init__.py
+++ /dev/null
diff --git a/interfaces/gui/module/config/gui_default.xml b/interfaces/gui/module/config/gui_default.xml
deleted file mode 100644
index 1faed776f..000000000
--- a/interfaces/gui/module/config/gui_default.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<root>
- <connections>
- <connection default="True" type="local" id="33965310e19b4a869112c43b39a16440">
- <name>Local</name>
- </connection>
- </connections>
- <mainWindow>
- <state></state>
- <geometry></geometry>
- </mainWindow>
- <language>en</language>
-</root>
diff --git a/interfaces/gui/module/gui/Accounts.py b/interfaces/gui/module/gui/Accounts.py
deleted file mode 100644
index f47928c1a..000000000
--- a/interfaces/gui/module/gui/Accounts.py
+++ /dev/null
@@ -1,167 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- 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
-"""
-
-from PyQt4.QtCore import *
-from PyQt4.QtGui import *
-
-from time import strftime, gmtime
-
-class AccountModel(QAbstractItemModel):
- def __init__(self, view, connector):
- QAbstractItemModel.__init__(self)
- self.connector = connector
- self.view = view
- self._data = []
- self.cols = 4
- self.mutex = QMutex()
-
- def reloadData(self):
- data = self.connector.proxy.get_accounts()
- self.beginRemoveRows(QModelIndex(), 0, len(self._data))
- self._data = []
- self.endRemoveRows()
- accounts = []
- for li in data.values():
- accounts += li
- self.beginInsertRows(QModelIndex(), 0, len(accounts))
- self._data = accounts
- self.endInsertRows()
-
- def toData(self, index):
- return index.internalPointer()
-
- def data(self, index, role=Qt.DisplayRole):
- if not index.isValid():
- return QVariant()
- if role == Qt.DisplayRole:
- if index.column() == 0:
- return QVariant(self.toData(index)["type"])
- elif index.column() == 1:
- return QVariant(self.toData(index)["login"])
- elif index.column() == 2:
- if not self.toData(index)["validuntil"]:
- return QVariant(_("n/a"))
- until = int(self.toData(index)["validuntil"])
- if until > 0:
- fmtime = strftime(_("%a, %d %b %Y %H:%M"), gmtime(until))
- return QVariant(fmtime)
- else:
- return QVariant(_("unlimited"))
- elif index.column() == 3:
- return QVariant(self.toData(index)["trafficleft"])
- #elif role == Qt.EditRole:
- # if index.column() == 0:
- # return QVariant(index.internalPointer().data["name"])
- return QVariant()
-
- def index(self, row, column, parent=QModelIndex()):
- if parent == QModelIndex() and len(self._data) > row:
- pointer = self._data[row]
- index = self.createIndex(row, column, pointer)
- elif parent.isValid():
- pointer = parent.internalPointer().children[row]
- index = self.createIndex(row, column, pointer)
- else:
- index = QModelIndex()
- return index
-
- def parent(self, index):
- return QModelIndex()
-
- def rowCount(self, parent=QModelIndex()):
- if parent == QModelIndex():
- return len(self._data)
- return 0
-
- def columnCount(self, parent=QModelIndex()):
- return self.cols
-
- def hasChildren(self, parent=QModelIndex()):
- return False
-
- def canFetchMore(self, parent):
- return False
-
- def headerData(self, section, orientation, role=Qt.DisplayRole):
- if orientation == Qt.Horizontal and role == Qt.DisplayRole:
- if section == 0:
- return QVariant(_("Type"))
- elif section == 1:
- return QVariant(_("Login"))
- elif section == 2:
- return QVariant(_("Valid until"))
- elif section == 3:
- return QVariant(_("Traffic left"))
- return QVariant()
-
- def flags(self, index):
- return Qt.ItemIsSelectable | Qt.ItemIsEditable | Qt.ItemIsEnabled
-
- #def setData(self, index, value, role=Qt.EditRole):
- # if index.column() == 0 and self.parent(index) == QModelIndex() and role == Qt.EditRole:
- # self.connector.setPackageName(index.internalPointer().id, str(value.toString()))
- # return True
-
-class AccountView(QTreeView):
- def __init__(self, connector):
- QTreeView.__init__(self)
- self.setModel(AccountModel(self, connector))
-
- self.setColumnWidth(0, 150)
- self.setColumnWidth(1, 150)
- self.setColumnWidth(2, 150)
- self.setColumnWidth(3, 150)
-
- self.setEditTriggers(QAbstractItemView.NoEditTriggers)
-
- self.delegate = AccountDelegate(self, self.model())
- self.setItemDelegateForColumn(3, self.delegate)
-
-class AccountDelegate(QItemDelegate):
- def __init__(self, parent, model):
- QItemDelegate.__init__(self, parent)
- self.model = model
-
- def paint(self, painter, option, index):
- if not index.isValid():
- return
- if index.column() == 3:
- data = self.model.toData(index)
- opts = QStyleOptionProgressBarV2()
- opts.minimum = 0
- if data["trafficleft"]:
- if data["trafficleft"] == -1:
- opts.maximum = opts.progress = 1
- else:
- opts.maximum = opts.progress = data["trafficleft"]
- if data["maxtraffic"]:
- opts.maximum = data["maxtraffic"]
-
- opts.rect = option.rect
- opts.rect.setRight(option.rect.right()-1)
- opts.rect.setHeight(option.rect.height()-1)
- opts.textVisible = True
- opts.textAlignment = Qt.AlignCenter
- if data["trafficleft"] and data["trafficleft"] == -1:
- opts.text = QString(_("unlimited"))
- else:
- opts.text = QString.number(round(float(opts.progress)/1024/1024, 2)) + " GB"
- QApplication.style().drawControl(QStyle.CE_ProgressBar, opts, painter)
- return
- QItemDelegate.paint(self, painter, option, index)
-
diff --git a/interfaces/gui/module/gui/CaptchaDock.py b/interfaces/gui/module/gui/CaptchaDock.py
deleted file mode 100644
index 4f3c9efd0..000000000
--- a/interfaces/gui/module/gui/CaptchaDock.py
+++ /dev/null
@@ -1,85 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
- 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
-"""
-
-from PyQt4.QtCore import *
-from PyQt4.QtGui import *
-
-class CaptchaDock(QDockWidget):
- def __init__(self):
- QDockWidget.__init__(self, _("Captcha"))
- self.setObjectName("Captcha Dock")
- self.widget = CaptchaDockWidget(self)
- self.setWidget(self.widget)
- self.setAllowedAreas(Qt.BottomDockWidgetArea)
- self.setFeatures(QDockWidget.NoDockWidgetFeatures)
- self.hide()
- self.processing = False
- self.currentID = None
- self.connect(self, SIGNAL("setTask"), self.setTask)
-
- def isFree(self):
- return not self.processing
-
- def setTask(self, tid, img, imgType):
- self.processing = True
- data = QByteArray(img)
- self.currentID = tid
- self.widget.emit(SIGNAL("setImage"), data)
- self.widget.input.setText("")
- self.show()
-
-class CaptchaDockWidget(QWidget):
- def __init__(self, dock):
- QWidget.__init__(self)
- self.dock = dock
- self.setLayout(QHBoxLayout())
- layout = self.layout()
-
- imgLabel = QLabel()
- captchaInput = QLineEdit()
- okayButton = QPushButton(_("OK"))
- cancelButton = QPushButton(_("Cancel"))
-
- layout.addStretch()
- layout.addWidget(imgLabel)
- layout.addWidget(captchaInput)
- layout.addWidget(okayButton)
- layout.addWidget(cancelButton)
- layout.addStretch()
-
- self.input = captchaInput
-
- self.connect(okayButton, SIGNAL("clicked()"), self.slotSubmit)
- self.connect(captchaInput, SIGNAL("returnPressed()"), self.slotSubmit)
- self.connect(self, SIGNAL("setImage"), self.setImg)
- self.connect(self, SIGNAL("setPixmap(const QPixmap &)"), imgLabel, SLOT("setPixmap(const QPixmap &)"))
-
- def setImg(self, data):
- pixmap = QPixmap()
- pixmap.loadFromData(data)
- self.emit(SIGNAL("setPixmap(const QPixmap &)"), pixmap)
-
- def slotSubmit(self):
- text = self.input.text()
- tid = self.dock.currentID
- self.dock.currentID = None
- self.dock.emit(SIGNAL("done"), tid, str(text))
- self.dock.hide()
- self.dock.processing = False
-
diff --git a/interfaces/gui/module/gui/Collector.py b/interfaces/gui/module/gui/Collector.py
deleted file mode 100644
index f7bfcbebf..000000000
--- a/interfaces/gui/module/gui/Collector.py
+++ /dev/null
@@ -1,289 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- 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
-"""
-
-from PyQt4.QtCore import *
-from PyQt4.QtGui import *
-
-statusMap = {
- "finished": 0,
- "offline": 1,
- "online": 2,
- "queued": 3,
- "checking": 4,
- "waiting": 5,
- "reconnected": 6,
- "starting": 7,
- "failed": 8,
- "aborted": 9,
- "decrypting": 10,
- "custom": 11,
- "downloading": 12,
- "processing": 13
-}
-statusMapReverse = dict((v,k) for k, v in statusMap.iteritems())
-
-class CollectorModel(QAbstractItemModel):
- def __init__(self, view, connector):
- QAbstractItemModel.__init__(self)
- self.connector = connector
- self.view = view
- self._data = []
- self.cols = 3
- self.interval = 1
- self.mutex = QMutex()
-
- def addEvent(self, event):
- locker = QMutexLocker(self.mutex)
- if event[0] == "reload":
- self.fullReload()
- elif event[0] == "remove":
- self.removeEvent(event)
- elif event[0] == "insert":
- self.insertEvent(event)
- elif event[0] == "update":
- self.updateEvent(event)
-
- def fullReload(self):
- self._data = []
- packs = self.connector.getPackageCollector()
- self.beginInsertRows(QModelIndex(), 0, len(packs))
- for pid, data in packs.items():
- package = Package(pid, data)
- self._data.append(package)
- self._data = sorted(self._data, key=lambda p: p.data["order"])
- self.endInsertRows()
-
- def removeEvent(self, event):
- if event[2] == "file":
- for p, package in enumerate(self._data):
- for k, child in enumerate(package.children):
- if child.id == int(event[3]):
- self.beginRemoveRows(self.index(p, 0), k, k)
- del package.children[k]
- self.endRemoveRows()
- break
- else:
- for k, package in enumerate(self._data):
- if package.id == int(event[3]):
- self.beginRemoveRows(QModelIndex(), k, k)
- del self._data[k]
- self.endRemoveRows()
- break
-
- def insertEvent(self, event):
- if event[2] == "file":
- info = self.connector.proxy.get_file_data(int(event[3]))
- fid = info.keys()[0]
- info = info.values()[0]
-
- for k, package in enumerate(self._data):
- if package.id == int(info["package"]):
- if package.getChild(fid):
- del event[4]
- self.updateEvent(event)
- break
- self.beginInsertRows(self.index(k, 0), info["order"], info["order"])
- package.addChild(fid, info, info["order"])
- self.endInsertRows()
- break
- else:
- data = self.connector.proxy.get_package_data(event[3])
- package = Package(event[3], data)
- self.beginInsertRows(QModelIndex(), data["order"], data["order"])
- self._data.insert(data["order"], package)
- self.endInsertRows()
-
- def updateEvent(self, event):
- if event[2] == "file":
- info = self.connector.proxy.get_file_data(int(event[3]))
- if not info:
- return
- fid = info.keys()[0]
- info = info.values()[0]
- for p, package in enumerate(self._data):
- 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
- 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:
- data = self.connector.proxy.get_package_data(int(event[3]))
- if not data:
- return
- pid = event[3]
- del data["links"]
- for p, package in enumerate(self._data):
- if package.id == int(pid):
- package.data = data
- self.emit(SIGNAL("dataChanged(const QModelIndex &, const QModelIndex &)"), self.index(p, 0), self.index(p, self.cols))
- break
-
- def data(self, index, role=Qt.DisplayRole):
- if not index.isValid():
- return QVariant()
- if role == Qt.DisplayRole:
- if index.column() == 0:
- return QVariant(index.internalPointer().data["name"])
- elif index.column() == 2:
- item = index.internalPointer()
- status = 0
- if isinstance(item, Package):
- for child in item.children:
- if child.data["status"] > status:
- status = child.data["status"]
- else:
- status = item.data["status"]
- return QVariant(statusMapReverse[status])
- elif index.column() == 1:
- item = index.internalPointer()
- plugins = []
- if isinstance(item, Package):
- for child in item.children:
- if not child.data["plugin"] in plugins:
- plugins.append(child.data["plugin"])
- else:
- plugins.append(item.data["plugin"])
- return QVariant(", ".join(plugins))
- elif role == Qt.EditRole:
- if index.column() == 0:
- return QVariant(index.internalPointer().data["name"])
- return QVariant()
-
- def index(self, row, column, parent=QModelIndex()):
- if parent == QModelIndex() and len(self._data) > row:
- pointer = self._data[row]
- index = self.createIndex(row, column, pointer)
- elif parent.isValid():
- pointer = parent.internalPointer().children[row]
- index = self.createIndex(row, column, pointer)
- else:
- index = QModelIndex()
- return index
-
- def parent(self, index):
- if index == QModelIndex():
- return QModelIndex()
- if index.isValid():
- link = index.internalPointer()
- if isinstance(link, Link):
- for k, pack in enumerate(self._data):
- if pack == link.package:
- return self.createIndex(k, 0, link.package)
- return QModelIndex()
-
- def rowCount(self, parent=QModelIndex()):
- if parent == QModelIndex():
- #return package count
- return len(self._data)
- else:
- if parent.isValid():
- #index is valid
- pack = parent.internalPointer()
- if isinstance(pack, Package):
- #index points to a package
- #return len of children
- return len(pack.children)
- else:
- #index is invalid
- return False
- #files have no children
- return 0
-
- def columnCount(self, parent=QModelIndex()):
- return self.cols
-
- def hasChildren(self, parent=QModelIndex()):
- if not parent.isValid():
- return True
- return (self.rowCount(parent) > 0)
-
- def canFetchMore(self, parent):
- return False
-
- def headerData(self, section, orientation, role=Qt.DisplayRole):
- if orientation == Qt.Horizontal and role == Qt.DisplayRole:
- if section == 0:
- return QVariant(_("Name"))
- elif section == 2:
- return QVariant(_("Status"))
- elif section == 1:
- return QVariant(_("Plugin"))
- return QVariant()
-
- def flags(self, index):
- if index.column() == 0 and self.parent(index) == QModelIndex():
- return Qt.ItemIsSelectable | Qt.ItemIsEditable | Qt.ItemIsEnabled
- return Qt.ItemIsSelectable | Qt.ItemIsEnabled
-
- def setData(self, index, value, role=Qt.EditRole):
- if index.column() == 0 and self.parent(index) == QModelIndex() and role == Qt.EditRole:
- self.connector.setPackageName(index.internalPointer().id, str(value.toString()))
- return True
-
-class Package(object):
- def __init__(self, pid, data):
- self.id = int(pid)
- self.children = []
- for fid, fdata in data["links"].items():
- self.addChild(int(fid), fdata)
- del data["links"]
- self.data = data
-
- def addChild(self, fid, data, pos=None):
- if pos is None:
- self.children.insert(data["order"], Link(fid, data, self))
- else:
- self.children.insert(pos, Link(fid, data, self))
- self.children = sorted(self.children, key=lambda l: l.data["order"])
-
- def getChild(self, fid):
- for child in self.children:
- if child.id == int(fid):
- return child
- return None
-
- def getChildKey(self, fid):
- for k, child in enumerate(self.children):
- if child.id == int(fid):
- return k
- return None
-
- def removeChild(self, fid):
- for k, child in enumerate(self.children):
- if child.id == int(fid):
- del self.children[k]
-
-class Link(object):
- def __init__(self, fid, data, pack):
- self.data = data
- self.data["downloading"] = None
- self.id = int(fid)
- self.package = pack
-
-class CollectorView(QTreeView):
- def __init__(self, connector):
- QTreeView.__init__(self)
- self.setModel(CollectorModel(self, connector))
- self.setColumnWidth(0, 500)
- self.setColumnWidth(1, 100)
- self.setColumnWidth(2, 200)
-
- self.setEditTriggers(QAbstractItemView.DoubleClicked | QAbstractItemView.EditKeyPressed)
-
diff --git a/interfaces/gui/module/gui/ConnectionManager.py b/interfaces/gui/module/gui/ConnectionManager.py
deleted file mode 100644
index 0bdeae282..000000000
--- a/interfaces/gui/module/gui/ConnectionManager.py
+++ /dev/null
@@ -1,261 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- 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
-"""
-
-from PyQt4.QtCore import *
-from PyQt4.QtGui import *
-
-from uuid import uuid4 as uuid
-
-class ConnectionManager(QWidget):
- def __init__(self):
- QWidget.__init__(self)
-
- mainLayout = QHBoxLayout()
- buttonLayout = QVBoxLayout()
-
- connList = QListWidget()
-
- new = QPushButton(_("New"))
- edit = QPushButton(_("Edit"))
- remove = QPushButton(_("Remove"))
- connect = QPushButton(_("Connect"))
-
- mainLayout.addWidget(connList)
- mainLayout.addLayout(buttonLayout)
-
- buttonLayout.addWidget(new)
- buttonLayout.addWidget(edit)
- buttonLayout.addWidget(remove)
- buttonLayout.addStretch()
- buttonLayout.addWidget(connect)
-
- self.setLayout(mainLayout)
-
- self.new = new
- self.connectb = connect
- self.remove = remove
- self.editb = edit
- self.connList = connList
- self.edit = self.EditWindow()
- self.connectSignals()
-
- self.defaultStates = {}
-
- def connectSignals(self):
- self.connect(self, SIGNAL("setConnections"), self.setConnections)
- self.connect(self.new, SIGNAL("clicked()"), self.slotNew)
- self.connect(self.editb, SIGNAL("clicked()"), self.slotEdit)
- self.connect(self.remove, SIGNAL("clicked()"), self.slotRemove)
- self.connect(self.connectb, SIGNAL("clicked()"), self.slotConnect)
- self.connect(self.edit, SIGNAL("save"), self.slotSave)
- self.connect(self.connList, SIGNAL("itemDoubleClicked(QListWidgetItem *)"), self.slotItemDoubleClicked)
-
- def setConnections(self, connections):
- self.connList.clear()
- for conn in connections:
- item = QListWidgetItem()
- item.setData(Qt.DisplayRole, QVariant(conn["name"]))
- item.setData(Qt.UserRole, QVariant(conn))
- self.connList.addItem(item)
- if conn["default"]:
- item.setData(Qt.DisplayRole, QVariant(_("%s (Default)") % conn["name"]))
- self.connList.setCurrentItem(item)
-
- def slotNew(self):
- data = {"id":uuid().hex, "type":"remote", "default":False, "name":"", "host":"", "ssl":False, "port":"7227", "user":"admin", "password":""}
- self.edit.setData(data)
- self.edit.show()
-
- def slotEdit(self):
- item = self.connList.currentItem()
- data = item.data(Qt.UserRole).toPyObject()
- data = self.cleanDict(data)
- self.edit.setData(data)
- self.edit.show()
-
- def slotRemove(self):
- item = self.connList.currentItem()
- data = item.data(Qt.UserRole).toPyObject()
- data = self.cleanDict(data)
- self.emit(SIGNAL("removeConnection"), data)
-
- def slotConnect(self):
- item = self.connList.currentItem()
- data = item.data(Qt.UserRole).toPyObject()
- data = self.cleanDict(data)
- self.emit(SIGNAL("connect"), data)
-
- def cleanDict(self, data):
- tmp = {}
- for k, d in data.items():
- tmp[str(k)] = d
- return tmp
-
- def slotSave(self, data):
- self.emit(SIGNAL("saveConnection"), data)
-
- def slotItemDoubleClicked(self, defaultItem):
- data = defaultItem.data(Qt.UserRole).toPyObject()
- self.setDefault(data, True)
- did = self.cleanDict(data)["id"]
- allItems = self.connList.findItems("*", Qt.MatchWildcard)
- count = self.connList.count()
- for i in range(count):
- item = self.connList.item(i)
- data = item.data(Qt.UserRole).toPyObject()
- if self.cleanDict(data)["id"] == did:
- continue
- self.setDefault(data, False)
-
- def setDefault(self, data, state):
- data = self.cleanDict(data)
- self.edit.setData(data)
- data = self.edit.getData()
- data["default"] = state
- self.edit.emit(SIGNAL("save"), data)
-
- class EditWindow(QWidget):
- def __init__(self):
- QWidget.__init__(self)
-
- grid = QGridLayout()
-
- nameLabel = QLabel(_("Name:"))
- hostLabel = QLabel(_("Host:"))
- sslLabel = QLabel(_("SSL:"))
- localLabel = QLabel(_("Local:"))
- userLabel = QLabel(_("User:"))
- pwLabel = QLabel(_("Password:"))
- portLabel = QLabel(_("Port:"))
-
- name = QLineEdit()
- host = QLineEdit()
- ssl = QCheckBox()
- local = QCheckBox()
- user = QLineEdit()
- password = QLineEdit()
- password.setEchoMode(QLineEdit.Password)
- port = QSpinBox()
- port.setRange(1,10000)
-
- save = QPushButton(_("Save"))
- cancel = QPushButton(_("Cancel"))
-
- grid.addWidget(nameLabel, 0, 0)
- grid.addWidget(name, 0, 1)
- grid.addWidget(localLabel, 1, 0)
- grid.addWidget(local, 1, 1)
- grid.addWidget(hostLabel, 2, 0)
- grid.addWidget(host, 2, 1)
- grid.addWidget(portLabel, 3, 0)
- grid.addWidget(port, 3, 1)
- grid.addWidget(sslLabel, 4, 0)
- grid.addWidget(ssl, 4, 1)
- grid.addWidget(userLabel, 5, 0)
- grid.addWidget(user, 5, 1)
- grid.addWidget(pwLabel, 6, 0)
- grid.addWidget(password, 6, 1)
- grid.addWidget(cancel, 7, 0)
- grid.addWidget(save, 7, 1)
-
- self.setLayout(grid)
- self.controls = {}
- self.controls["name"] = name
- self.controls["host"] = host
- self.controls["ssl"] = ssl
- self.controls["local"] = local
- self.controls["user"] = user
- self.controls["password"] = password
- self.controls["port"] = port
- self.controls["save"] = save
- self.controls["cancel"] = cancel
-
- self.connect(cancel, SIGNAL("clicked()"), self.hide)
- self.connect(save, SIGNAL("clicked()"), self.slotDone)
- self.connect(local, SIGNAL("stateChanged(int)"), self.slotLocalChanged)
-
- self.id = None
- self.default = None
-
- def setData(self, data):
- self.id = data["id"]
- self.default = data["default"]
- self.controls["name"].setText(data["name"])
- if data["type"] == "local":
- data["local"] = True
- else:
- data["local"] = False
- self.controls["local"].setChecked(data["local"])
- if not data["local"]:
- self.controls["ssl"].setChecked(data["ssl"])
- self.controls["user"].setText(data["user"])
- self.controls["password"].setText(data["password"])
- self.controls["port"].setValue(int(data["port"]))
- self.controls["host"].setText(data["host"])
- self.controls["ssl"].setDisabled(False)
- self.controls["user"].setDisabled(False)
- self.controls["password"].setDisabled(False)
- self.controls["port"].setDisabled(False)
- self.controls["host"].setDisabled(False)
- else:
- self.controls["ssl"].setChecked(False)
- self.controls["user"].setText("")
- self.controls["port"].setValue(1)
- self.controls["host"].setText("")
- self.controls["ssl"].setDisabled(True)
- self.controls["user"].setDisabled(True)
- self.controls["password"].setDisabled(True)
- self.controls["port"].setDisabled(True)
- self.controls["host"].setDisabled(True)
-
- def slotLocalChanged(self, val):
- if val == 2:
- self.controls["ssl"].setDisabled(True)
- self.controls["user"].setDisabled(True)
- self.controls["password"].setDisabled(True)
- self.controls["port"].setDisabled(True)
- self.controls["host"].setDisabled(True)
- elif val == 0:
- self.controls["ssl"].setDisabled(False)
- self.controls["user"].setDisabled(False)
- self.controls["password"].setDisabled(False)
- self.controls["port"].setDisabled(False)
- self.controls["host"].setDisabled(False)
-
- def getData(self):
- d = {}
- d["id"] = self.id
- d["default"] = self.default
- d["name"] = self.controls["name"].text()
- d["local"] = self.controls["local"].isChecked()
- d["ssl"] = str(self.controls["ssl"].isChecked())
- d["user"] = self.controls["user"].text()
- d["password"] = self.controls["password"].text()
- d["host"] = self.controls["host"].text()
- d["port"] = self.controls["port"].value()
- if d["local"]:
- d["type"] = "local"
- else:
- d["type"] = "remote"
- return d
-
- def slotDone(self):
- data = self.getData()
- self.hide()
- self.emit(SIGNAL("save"), data)
-
diff --git a/interfaces/gui/module/gui/CoreConfigParser.py b/interfaces/gui/module/gui/CoreConfigParser.py
deleted file mode 100644
index 0d1d298c6..000000000
--- a/interfaces/gui/module/gui/CoreConfigParser.py
+++ /dev/null
@@ -1,165 +0,0 @@
-# -*- coding: utf-8 -*-
-
-from __future__ import with_statement
-from os.path import exists
-from os.path import join
-
-
-CONF_VERSION = 1
-
-########################################################################
-class ConfigParser:
-
- #----------------------------------------------------------------------
- def __init__(self, configdir):
- """Constructor"""
- self.configdir = configdir
- self.config = {}
-
- if self.checkVersion():
- self.readConfig()
-
- #----------------------------------------------------------------------
- def checkVersion(self):
-
- if not exists(join(self.configdir, "pyload.conf")):
- return False
- f = open(join(self.configdir, "pyload.conf"), "rb")
- v = f.readline()
- f.close()
- v = v[v.find(":")+1:].strip()
-
- if int(v) < CONF_VERSION:
- return False
-
- return True
-
- #----------------------------------------------------------------------
- def readConfig(self):
- """reads the config file"""
-
- self.config = self.parseConfig(join(self.configdir, "pyload.conf"))
-
-
- #----------------------------------------------------------------------
- def parseConfig(self, config):
- """parses a given configfile"""
-
- f = open(config)
-
- config = f.read()
-
- config = config.split("\n")[1:]
-
- conf = {}
-
- section, option, value, typ, desc = "","","","",""
-
- listmode = False
-
- for line in config:
-
- line = line.rpartition("#") # removes comments
-
- if line[1]:
- line = line[0]
- else:
- line = line[2]
-
- line = line.strip()
-
- try:
-
- if line == "":
- continue
- elif line.endswith(":"):
- section, none, desc = line[:-1].partition('-')
- section = section.strip()
- desc = desc.replace('"', "").strip()
- conf[section] = { "desc" : desc }
- else:
- if listmode:
-
- if line.endswith("]"):
- listmode = False
- line = line.replace("]","")
-
- value += [self.cast(typ, x.strip()) for x in line.split(",") if x]
-
- if not listmode:
- conf[section][option] = { "desc" : desc,
- "type" : typ,
- "value" : value}
-
-
- else:
- content, none, value = line.partition("=")
-
- content, none, desc = content.partition(":")
-
- desc = desc.replace('"', "").strip()
-
- typ, option = content.split()
-
- value = value.strip()
-
- if value.startswith("["):
- if value.endswith("]"):
- listmode = False
- value = value[:-1]
- else:
- listmode = True
-
- value = [self.cast(typ, x.strip()) for x in value[1:].split(",") if x]
- else:
- value = self.cast(typ, value)
-
- if not listmode:
- conf[section][option] = { "desc" : desc,
- "type" : typ,
- "value" : value}
-
- except:
- pass
-
-
- f.close()
- return conf
-
- #----------------------------------------------------------------------
- def cast(self, typ, value):
- """cast value to given format"""
- if type(value) not in (str, unicode):
- return value
-
- if typ == "int":
- return int(value)
- elif typ == "bool":
- return True if value.lower() in ("1","true", "on", "an","yes") else False
- else:
- return value
-
- #----------------------------------------------------------------------
- def get(self, section, option):
- """get value"""
- return self.config[section][option]["value"]
-
- #----------------------------------------------------------------------
- def __getitem__(self, section):
- """provides dictonary like access: c['section']['option']"""
- return Section(self, section)
-
-########################################################################
-class Section:
- """provides dictionary like access for configparser"""
-
- #----------------------------------------------------------------------
- def __init__(self, parser, section):
- """Constructor"""
- self.parser = parser
- self.section = section
-
- #----------------------------------------------------------------------
- def __getitem__(self, item):
- """getitem"""
- return self.parser.get(self.section, item)
diff --git a/interfaces/gui/module/gui/LinkDock.py b/interfaces/gui/module/gui/LinkDock.py
deleted file mode 100644
index 99429d04b..000000000
--- a/interfaces/gui/module/gui/LinkDock.py
+++ /dev/null
@@ -1,54 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- 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
-"""
-
-from PyQt4.QtCore import *
-from PyQt4.QtGui import *
-
-class NewLinkDock(QDockWidget):
- def __init__(self):
- QDockWidget.__init__(self, "New Links")
- self.setObjectName("New Links Dock")
- self.widget = NewLinkWindow(self)
- self.setWidget(self.widget)
- self.setAllowedAreas(Qt.RightDockWidgetArea|Qt.LeftDockWidgetArea)
- self.hide()
-
- def slotDone(self):
- text = str(self.widget.box.toPlainText())
- lines = text.splitlines()
- self.emit(SIGNAL("done"), lines)
- self.widget.box.clear()
- self.hide()
-
-class NewLinkWindow(QWidget):
- def __init__(self, dock):
- QWidget.__init__(self)
- self.dock = dock
- self.setLayout(QVBoxLayout())
- layout = self.layout()
-
- boxLabel = QLabel("Paste URLs here:")
- self.box = QTextEdit()
-
- save = QPushButton("Add")
-
- layout.addWidget(boxLabel)
- layout.addWidget(self.box)
- layout.addWidget(save)
-
- self.connect(save, SIGNAL("clicked()"), self.dock.slotDone)
diff --git a/interfaces/gui/module/gui/MainWindow.py b/interfaces/gui/module/gui/MainWindow.py
deleted file mode 100644
index 4ab840fed..000000000
--- a/interfaces/gui/module/gui/MainWindow.py
+++ /dev/null
@@ -1,512 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- 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
-"""
-
-from PyQt4.QtCore import *
-from PyQt4.QtGui import *
-
-from module.gui.PackageDock import *
-from module.gui.LinkDock import *
-from module.gui.CaptchaDock import CaptchaDock
-from module.gui.SettingsWidget import SettingsWidget
-
-from module.gui.Collector import CollectorView, Package, Link
-from module.gui.Queue import QueueView
-from module.gui.Accounts import AccountView
-
-class MainWindow(QMainWindow):
- def __init__(self, connector):
- """
- set up main window
- """
- QMainWindow.__init__(self)
- #window stuff
- self.setWindowTitle(_("pyLoad Client"))
- self.setWindowIcon(QIcon("icons/logo.png"))
- self.resize(850,500)
-
- #layout version
- self.version = 3
-
- #init docks
- self.newPackDock = NewPackageDock()
- self.addDockWidget(Qt.RightDockWidgetArea, self.newPackDock)
- self.connect(self.newPackDock, SIGNAL("done"), self.slotAddPackage)
- self.captchaDock = CaptchaDock()
- self.addDockWidget(Qt.BottomDockWidgetArea, self.captchaDock)
-
- #central widget, layout
- self.masterlayout = QVBoxLayout()
- lw = QWidget()
- lw.setLayout(self.masterlayout)
- self.setCentralWidget(lw)
-
- #set menubar and statusbar
- self.menubar = self.menuBar()
- self.statusbar = self.statusBar()
- self.connect(self.statusbar, SIGNAL("showMsg"), self.statusbar.showMessage)
- self.serverStatus = QLabel(_("Status: Not Connected"))
- self.statusbar.addPermanentWidget(self.serverStatus)
-
- #menu
- self.menus = {}
- self.menus["file"] = self.menubar.addMenu(_("File"))
- self.menus["connections"] = self.menubar.addMenu(_("Connections"))
-
- #menu actions
- self.mactions = {}
- self.mactions["exit"] = QAction(_("Exit"), self.menus["file"])
- self.mactions["manager"] = QAction(_("Connection manager"), self.menus["connections"])
-
- #add menu actions
- self.menus["file"].addAction(self.mactions["exit"])
- self.menus["connections"].addAction(self.mactions["manager"])
-
- #toolbar
- self.actions = {}
- self.init_toolbar()
-
- #tabs
- self.tabw = QTabWidget()
- self.tabs = {}
- self.tabs["queue"] = {"w":QWidget()}
- self.tabs["collector"] = {"w":QWidget()}
- self.tabs["accounts"] = {"w":QWidget()}
- self.tabs["settings"] = {}
- self.tabs["settings"]["s"] = QScrollArea()
- self.tabs["settings"]["w"] = SettingsWidget()
- self.tabs["settings"]["s"].setWidgetResizable(True)
- self.tabs["settings"]["s"].setWidget(self.tabs["settings"]["w"])
- self.tabs["log"] = {"w":QWidget()}
- self.tabw.addTab(self.tabs["queue"]["w"], _("Queue"))
- self.tabw.addTab(self.tabs["collector"]["w"], _("Collector"))
- self.tabw.addTab(self.tabs["accounts"]["w"], _("Accounts"))
- self.tabw.addTab(self.tabs["settings"]["s"], _("Settings"))
- self.tabw.addTab(self.tabs["log"]["w"], _("Log"))
-
- #init tabs
- self.init_tabs(connector)
-
- self.setPriority = Priorty(self)
-
- #context menus
- self.init_context()
-
- #layout
- self.masterlayout.addWidget(self.tabw)
-
- #signals..
- self.connect(self.mactions["manager"], SIGNAL("triggered()"), self.slotShowConnector)
- self.connect(self.mactions["exit"], SIGNAL("triggered()"), self.close)
-
- self.connect(self.tabs["queue"]["view"], SIGNAL('customContextMenuRequested(const QPoint &)'), self.slotQueueContextMenu)
- self.connect(self.tabs["collector"]["package_view"], SIGNAL('customContextMenuRequested(const QPoint &)'), self.slotCollectorContextMenu)
-
- self.connect(self.tabw, SIGNAL("currentChanged(int)"), self.slotTabChanged)
-
- self.lastAddedID = None
-
- def init_toolbar(self):
- """
- create toolbar
- """
- self.toolbar = self.addToolBar(_("Main Toolbar"))
- self.toolbar.setObjectName("Main Toolbar")
- self.toolbar.setIconSize(QSize(40,40))
- self.actions["toggle_status"] = self.toolbar.addAction(_("Toggle Pause/Resume"))
- pricon = QIcon()
- pricon.addFile("icons/toolbar_start.png", QSize(), QIcon.Normal, QIcon.Off)
- pricon.addFile("icons/toolbar_pause.png", QSize(), QIcon.Normal, QIcon.On)
- self.actions["toggle_status"].setIcon(pricon)
- self.actions["toggle_status"].setCheckable(True)
- self.actions["status_stop"] = self.toolbar.addAction(QIcon("icons/toolbar_stop.png"), _("Stop"))
- self.toolbar.addSeparator()
- self.actions["add"] = self.toolbar.addAction(QIcon("icons/toolbar_add.png"), _("Add"))
- self.toolbar.addSeparator()
- self.actions["clipboard"] = self.toolbar.addAction(QIcon("icons/clipboard.png"), _("Check Clipboard"))
- self.actions["clipboard"].setCheckable(True)
-
- self.connect(self.actions["toggle_status"], SIGNAL("toggled(bool)"), self.slotToggleStatus)
- self.connect(self.actions["clipboard"], SIGNAL("toggled(bool)"), self.slotToggleClipboard)
- self.connect(self.actions["status_stop"], SIGNAL("triggered()"), self.slotStatusStop)
- self.addMenu = QMenu()
- packageAction = self.addMenu.addAction(_("Package"))
- containerAction = self.addMenu.addAction(_("Container"))
- self.connect(self.actions["add"], SIGNAL("triggered()"), self.slotAdd)
- self.connect(packageAction, SIGNAL("triggered()"), self.slotShowAddPackage)
- self.connect(containerAction, SIGNAL("triggered()"), self.slotShowAddContainer)
-
- def init_tabs(self, connector):
- """
- create tabs
- """
- #queue
- self.tabs["queue"]["l"] = QGridLayout()
- self.tabs["queue"]["w"].setLayout(self.tabs["queue"]["l"])
- self.tabs["queue"]["view"] = QueueView(connector)
- self.tabs["queue"]["l"].addWidget(self.tabs["queue"]["view"])
-
- #collector
- toQueue = QPushButton(_("Push selected packages to queue"))
- self.tabs["collector"]["l"] = QGridLayout()
- self.tabs["collector"]["w"].setLayout(self.tabs["collector"]["l"])
- self.tabs["collector"]["package_view"] = CollectorView(connector)
- self.tabs["collector"]["l"].addWidget(self.tabs["collector"]["package_view"], 0, 0)
- self.tabs["collector"]["l"].addWidget(toQueue, 1, 0)
- self.connect(toQueue, SIGNAL("clicked()"), self.slotPushPackageToQueue)
- self.tabs["collector"]["package_view"].setContextMenuPolicy(Qt.CustomContextMenu)
- self.tabs["queue"]["view"].setContextMenuPolicy(Qt.CustomContextMenu)
-
- #log
- self.tabs["log"]["l"] = QGridLayout()
- self.tabs["log"]["w"].setLayout(self.tabs["log"]["l"])
- self.tabs["log"]["text"] = QTextEdit()
- self.tabs["log"]["text"].logOffset = 0
- self.tabs["log"]["text"].setReadOnly(True)
- self.connect(self.tabs["log"]["text"], SIGNAL("append(QString)"), self.tabs["log"]["text"].append)
- self.tabs["log"]["l"].addWidget(self.tabs["log"]["text"])
-
- #accounts
- self.tabs["accounts"]["view"] = AccountView(connector)
- self.tabs["accounts"]["w"].setLayout(QHBoxLayout())
- self.tabs["accounts"]["w"].layout().addWidget(self.tabs["accounts"]["view"])
-
- def init_context(self):
- """
- create context menus
- """
- self.activeMenu = None
- #queue
- self.queueContext = QMenu()
- self.queueContext.buttons = {}
- self.queueContext.item = (None, None)
- self.queueContext.buttons["remove"] = QAction(QIcon("icons/remove_small.png"), _("Remove"), self.queueContext)
- self.queueContext.buttons["restart"] = QAction(QIcon("icons/refresh_small.png"), _("Restart"), self.queueContext)
- self.queueContext.buttons["pull"] = QAction(QIcon("icons/pull_small.png"), _("Pull out"), self.queueContext)
- self.queueContext.buttons["abort"] = QAction(QIcon("icons/abort.png"), _("Abort"), self.queueContext)
- self.queueContext.buttons["edit"] = QAction(QIcon("icons/edit_small.png"), _("Edit Name"), self.queueContext)
- self.queuePriorityMenu = QMenu(_("Priority"))
- self.queuePriorityMenu.actions = {}
- self.queuePriorityMenu.actions["veryhigh"] = QAction(_("very high"), self.queuePriorityMenu)
- self.queuePriorityMenu.addAction(self.queuePriorityMenu.actions["veryhigh"])
- self.queuePriorityMenu.actions["high"] = QAction(_("high"), self.queuePriorityMenu)
- self.queuePriorityMenu.addAction(self.queuePriorityMenu.actions["high"])
- self.queuePriorityMenu.actions["normal"] = QAction(_("normal"), self.queuePriorityMenu)
- self.queuePriorityMenu.addAction(self.queuePriorityMenu.actions["normal"])
- self.queuePriorityMenu.actions["low"] = QAction(_("low"), self.queuePriorityMenu)
- self.queuePriorityMenu.addAction(self.queuePriorityMenu.actions["low"])
- self.queuePriorityMenu.actions["verylow"] = QAction(_("very low"), self.queuePriorityMenu)
- self.queuePriorityMenu.addAction(self.queuePriorityMenu.actions["verylow"])
- self.queueContext.addAction(self.queueContext.buttons["pull"])
- self.queueContext.addAction(self.queueContext.buttons["edit"])
- self.queueContext.addAction(self.queueContext.buttons["remove"])
- self.queueContext.addAction(self.queueContext.buttons["restart"])
- self.queueContext.addAction(self.queueContext.buttons["abort"])
- self.queueContext.addMenu(self.queuePriorityMenu)
- self.connect(self.queueContext.buttons["remove"], SIGNAL("triggered()"), self.slotRemoveDownload)
- self.connect(self.queueContext.buttons["restart"], SIGNAL("triggered()"), self.slotRestartDownload)
- self.connect(self.queueContext.buttons["pull"], SIGNAL("triggered()"), self.slotPullOutPackage)
- self.connect(self.queueContext.buttons["abort"], SIGNAL("triggered()"), self.slotAbortDownload)
- self.connect(self.queueContext.buttons["edit"], SIGNAL("triggered()"), self.slotEditPackage)
-
- self.connect(self.queuePriorityMenu.actions["veryhigh"], SIGNAL("triggered()"), self.setPriority.veryHigh)
- self.connect(self.queuePriorityMenu.actions["high"], SIGNAL("triggered()"), self.setPriority.high)
- self.connect(self.queuePriorityMenu.actions["normal"], SIGNAL("triggered()"), self.setPriority.normal)
- self.connect(self.queuePriorityMenu.actions["low"], SIGNAL("triggered()"), self.setPriority.low)
- self.connect(self.queuePriorityMenu.actions["verylow"], SIGNAL("triggered()"), self.setPriority.veryLow)
-
- #collector
- self.collectorContext = QMenu()
- self.collectorContext.buttons = {}
- self.collectorContext.item = (None, None)
- self.collectorContext.buttons["remove"] = QAction(QIcon("icons/remove_small.png"), _("Remove"), self.collectorContext)
- self.collectorContext.buttons["push"] = QAction(QIcon("icons/push_small.png"), _("Push to queue"), self.collectorContext)
- self.collectorContext.buttons["edit"] = QAction(QIcon("icons/edit_small.png"), _("Edit Name"), self.collectorContext)
- self.collectorContext.addAction(self.collectorContext.buttons["push"])
- self.collectorContext.addAction(self.collectorContext.buttons["edit"])
- self.collectorContext.addAction(self.collectorContext.buttons["remove"])
- self.connect(self.collectorContext.buttons["remove"], SIGNAL("triggered()"), self.slotRemoveDownload)
- self.connect(self.collectorContext.buttons["push"], SIGNAL("triggered()"), self.slotPushPackageToQueue)
- self.connect(self.collectorContext.buttons["edit"], SIGNAL("triggered()"), self.slotEditPackage)
-
- def slotToggleStatus(self, status):
- """
- pause/start toggle (toolbar)
- """
- self.emit(SIGNAL("setDownloadStatus"), status)
-
- def slotStatusStop(self):
- """
- stop button (toolbar)
- """
- self.emit(SIGNAL("stopAllDownloads"))
-
- def slotAdd(self):
- """
- add button (toolbar)
- show context menu (choice: links/package)
- """
- self.addMenu.exec_(QCursor.pos())
-
- def slotShowAddPackage(self):
- """
- action from add-menu
- show new-package dock
- """
- self.tabw.setCurrentIndex(1)
- self.newPackDock.show()
-
- def slotShowAddLinks(self):
- """
- action from add-menu
- show new-links dock
- """
- self.tabw.setCurrentIndex(1)
- self.newLinkDock.show()
-
- def slotShowConnector(self):
- """
- connectionmanager action triggered
- let main to the stuff
- """
- self.emit(SIGNAL("connector"))
-
- def slotAddPackage(self, name, links):
- """
- new package
- let main to the stuff
- """
- self.emit(SIGNAL("addPackage"), name, links)
-
- def slotShowAddContainer(self):
- """
- action from add-menu
- show file selector, emit upload
- """
- typeStr = ";;".join([
- _("All Container Types (%s)") % "*.dlc *.ccf *.rsdf *.txt",
- _("DLC (%s)") % "*.dlc",
- _("CCF (%s)") % "*.ccf",
- _("RSDF (%s)") % "*.rsdf",
- _("Text Files (%s)") % "*.txt"
- ])
- fileNames = QFileDialog.getOpenFileNames(self, _("Open container"), "", typeStr)
- for name in fileNames:
- self.emit(SIGNAL("addContainer"), str(name))
-
- def slotPushPackageToQueue(self):
- """
- push collector pack to queue
- get child ids
- let main to the rest
- """
- smodel = self.tabs["collector"]["package_view"].selectionModel()
- for index in smodel.selectedRows(0):
- item = index.internalPointer()
- if isinstance(item, Package):
- self.emit(SIGNAL("pushPackageToQueue"), item.id)
- else:
- self.emit(SIGNAL("pushPackageToQueue"), item.package.id)
-
- def saveWindow(self):
- """
- get window state/geometry
- pass data to main
- """
- state_raw = self.saveState(self.version)
- geo_raw = self.saveGeometry()
-
- state = str(state_raw.toBase64())
- geo = str(geo_raw.toBase64())
-
- self.emit(SIGNAL("saveMainWindow"), state, geo)
-
- def closeEvent(self, event):
- """
- somebody wants to close me!
- let me first save my state
- """
- self.saveWindow()
- event.accept()
- self.emit(SIGNAL("quit"))
-
- def restoreWindow(self, state, geo):
- """
- restore window state/geometry
- """
- state = QByteArray(state)
- geo = QByteArray(geo)
-
- state_raw = QByteArray.fromBase64(state)
- geo_raw = QByteArray.fromBase64(geo)
-
- self.restoreState(state_raw, self.version)
- self.restoreGeometry(geo_raw)
-
- def slotQueueContextMenu(self, pos):
- """
- custom context menu in queue view requested
- """
- globalPos = self.tabs["queue"]["view"].mapToGlobal(pos)
- i = self.tabs["queue"]["view"].indexAt(pos)
- if not i:
- return
- item = i.internalPointer()
- menuPos = QCursor.pos()
- menuPos.setX(menuPos.x()+2)
- self.activeMenu = self.queueContext
- showAbort = False
- if isinstance(item, Link) and item.data["downloading"]:
- showAbort = True
- elif isinstance(item, Package):
- for child in item.children:
- if child.data["downloading"]:
- showAbort = True
- if showAbort:
- self.queueContext.buttons["abort"].setVisible(True)
- else:
- self.queueContext.buttons["abort"].setVisible(False)
- if isinstance(item, Package):
- self.queueContext.index = i
- self.queueContext.buttons["edit"].setVisible(True)
- else:
- self.queueContext.index = None
- self.queueContext.buttons["edit"].setVisible(False)
- self.queueContext.exec_(menuPos)
-
- def slotCollectorContextMenu(self, pos):
- """
- custom context menu in package collector view requested
- """
- globalPos = self.tabs["collector"]["package_view"].mapToGlobal(pos)
- i = self.tabs["collector"]["package_view"].indexAt(pos)
- if not i:
- return
- item = i.internalPointer()
- menuPos = QCursor.pos()
- menuPos.setX(menuPos.x()+2)
- self.activeMenu = self.collectorContext
- if isinstance(item, Package):
- self.collectorContext.index = i
- self.collectorContext.buttons["edit"].setVisible(True)
- else:
- self.collectorContext.index = None
- self.collectorContext.buttons["edit"].setVisible(False)
- self.collectorContext.exec_(menuPos)
-
- def slotLinkCollectorContextMenu(self, pos):
- """
- custom context menu in link collector view requested
- """
- pass
-
- def slotRestartDownload(self):
- """
- restart download action is triggered
- """
- smodel = self.tabs["queue"]["view"].selectionModel()
- for index in smodel.selectedRows(0):
- item = index.internalPointer()
- self.emit(SIGNAL("restartDownload"), item.id, isinstance(item, Package))
- id, isTopLevel = self.queueContext.item
- if not id == None:
- self.emit(SIGNAL("restartDownload"), id, isTopLevel)
-
- def slotRemoveDownload(self):
- """
- remove download action is triggered
- """
- if self.activeMenu == self.queueContext:
- view = self.tabs["queue"]["view"]
- else:
- view = self.tabs["collector"]["package_view"]
- smodel = view.selectionModel()
- for index in smodel.selectedRows(0):
- item = index.internalPointer()
- self.emit(SIGNAL("removeDownload"), item.id, isinstance(item, Package))
-
- def slotToggleClipboard(self, status):
- """
- check clipboard (toolbar)
- """
- self.emit(SIGNAL("setClipboardStatus"), status)
-
- def slotEditPackage(self):
- if self.activeMenu == self.queueContext:
- view = self.tabs["queue"]["view"]
- else:
- view = self.tabs["collector"]["package_view"]
- view.edit(self.activeMenu.index)
-
- def slotEditCommit(self, editor):
- self.emit(SIGNAL("changePackageName"), self.activeMenu.index.internalPointer().id, editor.text())
-
- def slotPullOutPackage(self):
- """
- pull package out of the queue
- """
- smodel = self.tabs["queue"]["view"].selectionModel()
- for index in smodel.selectedRows(0):
- item = index.internalPointer()
- if isinstance(item, Package):
- self.emit(SIGNAL("pullOutPackage"), item.id)
- else:
- self.emit(SIGNAL("pullOutPackage"), item.package.id)
-
- def slotAbortDownload(self):
- view = self.tabs["queue"]["view"]
- smodel = view.selectionModel()
- for index in smodel.selectedRows(0):
- item = index.internalPointer()
- self.emit(SIGNAL("abortDownload"), item.id, isinstance(item, Package))
-
- def changeEvent(self, e):
- if e.type() == QEvent.WindowStateChange and self.isMinimized():
- e.ignore()
- self.hide()
- self.emit(SIGNAL("hidden"))
- else:
- super(MainWindow, self).changeEvent(e)
-
- def slotTabChanged(self, index):
- if index == 2:
- self.emit(SIGNAL("reloadAccounts"))
- elif index == 3:
- self.tabs["settings"]["w"].loadConfig()
-
-class Priorty():
- def __init__(self, win):
- self.w = win
-
- def setPriority(self, level):
- if self.w.activeMenu == self.w.queueContext:
- smodel = self.w.tabs["queue"]["view"].selectionModel()
- else:
- smodel = self.w.tabs["collector"]["package_view"].selectionModel()
- for index in smodel.selectedRows(0):
- item = index.internalPointer()
- pid = item.id if isinstance(item, Package) else item.package.id
- self.w.emit(SIGNAL("setPriority"), pid, level)
-
- def veryHigh(self): self.setPriority(2)
- def high(self): self.setPriority(1)
- def normal(self): self.setPriority(0)
- def low(self): self.setPriority(-1)
- def veryLow(self): self.setPriority(-2)
-
-
-
diff --git a/interfaces/gui/module/gui/PackageDock.py b/interfaces/gui/module/gui/PackageDock.py
deleted file mode 100644
index 8bd965f16..000000000
--- a/interfaces/gui/module/gui/PackageDock.py
+++ /dev/null
@@ -1,67 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- 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
-"""
-
-from PyQt4.QtCore import *
-from PyQt4.QtGui import *
-
-class NewPackageDock(QDockWidget):
- def __init__(self):
- QDockWidget.__init__(self, _("New Package"))
- self.setObjectName("New Package Dock")
- self.widget = NewPackageWindow(self)
- self.setWidget(self.widget)
- self.setAllowedAreas(Qt.RightDockWidgetArea|Qt.LeftDockWidgetArea)
- self.hide()
-
- def slotDone(self):
- text = str(self.widget.box.toPlainText())
- lines = []
- for line in text.splitlines():
- line = line.strip()
- if not line:
- continue
- lines.append(line)
- self.emit(SIGNAL("done"), str(self.widget.nameInput.text()), lines)
- self.widget.nameInput.setText("")
- self.widget.box.clear()
- self.hide()
-
-class NewPackageWindow(QWidget):
- def __init__(self, dock):
- QWidget.__init__(self)
- self.dock = dock
- self.setLayout(QGridLayout())
- layout = self.layout()
-
- nameLabel = QLabel(_("Name"))
- nameInput = QLineEdit()
-
- linksLabel = QLabel(_("Links in this Package"))
-
- self.box = QTextEdit()
- self.nameInput = nameInput
-
- save = QPushButton(_("Create"))
-
- layout.addWidget(nameLabel, 0, 0)
- layout.addWidget(nameInput, 0, 1)
- layout.addWidget(linksLabel, 1, 0, 1, 2)
- layout.addWidget(self.box, 2, 0, 1, 2)
- layout.addWidget(save, 3, 0, 1, 2)
-
- self.connect(save, SIGNAL("clicked()"), self.dock.slotDone)
diff --git a/interfaces/gui/module/gui/Queue.py b/interfaces/gui/module/gui/Queue.py
deleted file mode 100644
index 8b6f679f8..000000000
--- a/interfaces/gui/module/gui/Queue.py
+++ /dev/null
@@ -1,252 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- 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
-"""
-
-from PyQt4.QtCore import *
-from PyQt4.QtGui import *
-
-from time import sleep, time
-
-from module.gui.Collector import CollectorModel, Package, Link, CollectorView, statusMap, statusMapReverse
-
-class QueueModel(CollectorModel):
- def __init__(self, view, connector):
- CollectorModel.__init__(self, view, connector)
- self.cols = 5
- self.wait_dict = {}
-
- self.updater = self.QueueUpdater(self.interval)
- self.connect(self.updater, SIGNAL("update()"), self.update)
-
- class QueueUpdater(QObject):
- def __init__(self, interval):
- QObject.__init__(self)
-
- self.interval = interval
- self.timer = QTimer()
- self.timer.connect(self.timer, SIGNAL("timeout()"), self, SIGNAL("update()"))
-
- def start(self):
- self.timer.start(1000)
-
- def stop(self):
- self.timer.stop()
-
- def start(self):
- self.updater.start()
-
- def stop(self):
- self.updater.stop()
-
- def fullReload(self):
- self._data = []
- packs = self.connector.getPackageQueue()
- self.beginInsertRows(QModelIndex(), 0, len(packs))
- for pid, data in packs.items():
- package = Package(pid, data)
- self._data.append(package)
- self._data = sorted(self._data, key=lambda p: p.data["order"])
- self.endInsertRows()
-
- def update(self):
- locker = QMutexLocker(self.mutex)
- downloading = self.connector.getDownloadQueue()
- for p, pack in enumerate(self._data):
- for d in downloading:
- child = pack.getChild(d["id"])
- if child:
- child.data["downloading"] = d
- k = pack.getChildKey(d["id"])
- 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)))
-
- def headerData(self, section, orientation, role=Qt.DisplayRole):
- if orientation == Qt.Horizontal and role == Qt.DisplayRole:
- if section == 0:
- return QVariant(_("Name"))
- elif section == 2:
- return QVariant(_("Status"))
- elif section == 1:
- return QVariant(_("Plugin"))
- elif section == 3:
- return QVariant(_("Priority"))
- elif section == 4:
- return QVariant(_("Progress"))
- return QVariant()
-
- def getWaitingProgress(self, item):
- locker = QMutexLocker(self.mutex)
- if isinstance(item, Link):
- if item.data["status"] == 5 and item.data["downloading"]:
- until = float(item.data["downloading"]["wait_until"])
- try:
- since, until_old = self.wait_dict[item.id]
- if not until == until_old:
- raise Exception
- except:
- since = time()
- self.wait_dict[item.id] = since, until
- since = float(since)
- max_wait = float(until-since)
- rest = int(until-time())
- res = 100/max_wait
- perc = rest*res
- return perc, rest
- return None
-
- 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
- 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
- if count == 0:
- return 0
- return perc_sum/count
- return 0
-
- def getSpeed(self, item):
- if isinstance(item, Link):
- if item.data["downloading"]:
- return int(item.data["downloading"]["speed"])
- elif isinstance(item, Package):
- count = len(item.children)
- speed_sum = 0
- all_waiting = True
- running = False
- for child in item.children:
- val = 0
- if child.data["downloading"]:
- if not child.data["statusmsg"] == "waiting":
- all_waiting = False
- val = int(child.data["downloading"]["speed"])
- running = True
- speed_sum += val
- if count == 0 or not running or all_waiting:
- return None
- return speed_sum
- return None
-
- def data(self, index, role=Qt.DisplayRole):
- if not index.isValid():
- return QVariant()
- if role == Qt.DisplayRole:
- if index.column() == 0:
- return QVariant(index.internalPointer().data["name"])
- elif index.column() == 1:
- item = index.internalPointer()
- plugins = []
- if isinstance(item, Package):
- for child in item.children:
- if not child.data["plugin"] in plugins:
- plugins.append(child.data["plugin"])
- else:
- plugins.append(item.data["plugin"])
- return QVariant(", ".join(plugins))
- elif index.column() == 2:
- item = index.internalPointer()
- status = 0
- speed = self.getSpeed(item)
- if isinstance(item, Package):
- for child in item.children:
- if child.data["status"] > status:
- status = child.data["status"]
- else:
- status = item.data["status"]
-
- if speed == None or status == 7 or status == 10 or status == 5:
- return QVariant(statusMapReverse[status])
- else:
- return QVariant("%s (%s KB/s)" % (statusMapReverse[status], speed))
- elif index.column() == 3:
- item = index.internalPointer()
- if isinstance(item, Package):
- return QVariant(item.data["priority"])
- elif role == Qt.EditRole:
- if index.column() == 0:
- return QVariant(index.internalPointer().data["name"])
- return QVariant()
-
- def flags(self, index):
- if index.column() == 0 and self.parent(index) == QModelIndex():
- return Qt.ItemIsSelectable | Qt.ItemIsEditable | Qt.ItemIsEnabled
- return Qt.ItemIsSelectable | Qt.ItemIsEnabled
-
-class QueueView(CollectorView):
- def __init__(self, connector):
- CollectorView.__init__(self, connector)
- self.setModel(QueueModel(self, connector))
-
- self.setColumnWidth(0, 300)
- self.setColumnWidth(1, 100)
- self.setColumnWidth(2, 150)
- self.setColumnWidth(3, 50)
- self.setColumnWidth(4, 100)
-
- self.setEditTriggers(QAbstractItemView.NoEditTriggers)
-
- self.delegate = QueueProgressBarDelegate(self, self.model())
- self.setItemDelegateForColumn(4, self.delegate)
-
-class QueueProgressBarDelegate(QItemDelegate):
- def __init__(self, parent, queue):
- QItemDelegate.__init__(self, parent)
- self.queue = queue
-
- def paint(self, painter, option, index):
- if not index.isValid():
- return
- if index.column() == 4:
- item = index.internalPointer()
- w = self.queue.getWaitingProgress(item)
- wait = None
- if w:
- progress = w[0]
- wait = w[1]
- else:
- progress = self.queue.getProgress(item)
- opts = QStyleOptionProgressBarV2()
- opts.maximum = 100
- opts.minimum = 0
- opts.progress = progress
- opts.rect = option.rect
- opts.rect.setRight(option.rect.right()-1)
- opts.rect.setHeight(option.rect.height()-1)
- opts.textVisible = True
- opts.textAlignment = Qt.AlignCenter
- if not wait == None:
- opts.text = QString("waiting %d seconds" % (wait,))
- else:
- opts.text = QString.number(opts.progress) + "%"
- QApplication.style().drawControl(QStyle.CE_ProgressBar, opts, painter)
- return
- QItemDelegate.paint(self, painter, option, index)
-
diff --git a/interfaces/gui/module/gui/SettingsWidget.py b/interfaces/gui/module/gui/SettingsWidget.py
deleted file mode 100644
index 6197cee6c..000000000
--- a/interfaces/gui/module/gui/SettingsWidget.py
+++ /dev/null
@@ -1,108 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- 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
-"""
-
-from PyQt4.QtCore import *
-from PyQt4.QtGui import *
-from sip import delete
-
-class SettingsWidget(QWidget):
- def __init__(self):
- QWidget.__init__(self)
- self.connector = None
- self.sections = {}
- self.psections = {}
- self.data = None
- self.pdata = None
- self.setSizePolicy(QSizePolicy.Ignored, QSizePolicy.Ignored)
-
- def setConnector(self, connector):
- self.connector = connector
-
- def loadConfig(self):
- if self.layout():
- delete(self.layout())
- for s in self.sections.values()+self.psections.values():
- delete(s)
- self.sections = {}
- self.setLayout(QVBoxLayout())
- self.clearConfig()
- layout = self.layout()
- layout.setSizeConstraint(QLayout.SetMinAndMaxSize)
-
- self.data = self.connector.proxy.get_config()
- self.pdata = self.connector.proxy.get_plugin_config()
- for k, section in self.data.items():
- s = Section(section, self)
- self.sections[k] = s
- layout.addWidget(s)
- for k, section in self.pdata.items():
- s = Section(section, self, "plugin")
- self.psections[k] = s
- layout.addWidget(s)
-
- rel = QPushButton(_("Reload"))
- layout.addWidget(rel)
- save = QPushButton(_("Save"))
- #layout.addWidget(save)
- self.connect(rel, SIGNAL("clicked()"), self.loadConfig)
-
- def clearConfig(self):
- self.sections = {}
-
-class Section(QGroupBox):
- def __init__(self, data, parent, ctype="core"):
- self.data = data
- QGroupBox.__init__(self, data["desc"], parent)
- self.labels = {}
- self.inputs = {}
- self.ctype = ctype
- layout = QGridLayout(self)
- self.setLayout(layout)
-
- row = 0
- for k, option in self.data.items():
- if k == "desc":
- continue
- l = QLabel(option["desc"], self)
- l.setMinimumWidth(400)
- self.labels[k] = l
- layout.addWidget(l, row, 0)
- if option["type"] == "int":
- i = QSpinBox(self)
- i.setMaximum(999999)
- i.setValue(int(option["value"]))
- elif not option["type"].find(";") == -1:
- choices = option["type"].split(";")
- i = QComboBox(self)
- i.addItems(choices)
- i.setCurrentIndex(i.findText(option["value"]))
- elif option["type"] == "bool":
- i = QComboBox(self)
- i.addItem(_("Yes"), QVariant(True))
- i.addItem(_("No"), QVariant(False))
- if option["value"]:
- i.setCurrentIndex(0)
- else:
- i.setCurrentIndex(1)
- else:
- i = QLineEdit(self)
- i.setText(option["value"])
- self.inputs[k] = i
- #i.setMaximumWidth(300)
- layout.addWidget(i, row, 1)
- row += 1
diff --git a/interfaces/gui/module/gui/XMLParser.py b/interfaces/gui/module/gui/XMLParser.py
deleted file mode 100644
index 5e3b7bf65..000000000
--- a/interfaces/gui/module/gui/XMLParser.py
+++ /dev/null
@@ -1,71 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- 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
-"""
-from __future__ import with_statement
-
-from PyQt4.QtCore import *
-from PyQt4.QtGui import *
-from PyQt4.QtXml import *
-
-import os
-
-class XMLParser():
- def __init__(self, data, dfile=""):
- self.mutex = QMutex()
- self.mutex.lock()
- self.xml = QDomDocument()
- self.file = data
- self.dfile = dfile
- self.mutex.unlock()
- self.loadData()
- self.root = self.xml.documentElement()
-
- def loadData(self):
- self.mutex.lock()
- f = self.file
- if not os.path.exists(f):
- f = self.dfile
- with open(f, 'r') as fh:
- content = fh.read()
- self.xml.setContent(content)
- self.mutex.unlock()
-
- def saveData(self):
- self.mutex.lock()
- content = self.xml.toString()
- with open(self.file, 'w') as fh:
- fh.write(content)
- self.mutex.unlock()
- return content
-
- def parseNode(self, node, ret_type="list"):
- if ret_type == "dict":
- childNodes = {}
- else:
- childNodes = []
- child = node.firstChild()
- while True:
- n = child.toElement()
- if n.isNull():
- break
- else:
- if ret_type == "dict":
- childNodes[str(n.tagName())] = n
- else:
- childNodes.append(n)
- child = child.nextSibling()
- return childNodes
diff --git a/interfaces/gui/module/gui/__init__.py b/interfaces/gui/module/gui/__init__.py
deleted file mode 100644
index 8d1c8b69c..000000000
--- a/interfaces/gui/module/gui/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/interfaces/gui/module/gui/connector.py b/interfaces/gui/module/gui/connector.py
deleted file mode 100644
index 975e1ca1b..000000000
--- a/interfaces/gui/module/gui/connector.py
+++ /dev/null
@@ -1,311 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
- 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
-"""
-
-SERVER_VERSION = "0.4.1-dev"
-
-from time import sleep
-from uuid import uuid4 as uuid
-
-from PyQt4.QtCore import *
-from PyQt4.QtGui import *
-
-from xmlrpclib import ServerProxy
-import socket
-
-class Connector(QThread):
- def __init__(self):
- QThread.__init__(self)
- self.mutex = QMutex()
- self.addr = None
- self.errorQueue = []
- self.connectionID = None
- self.running = True
- self.proxy = self.Dummy()
-
- def setAddr(self, addr):
- """
- set new address
- """
- self.mutex.lock()
- self.addr = addr
- self.mutex.unlock()
-
- def connectProxy(self):
- self.proxy = DispatchRPC(self.mutex, ServerProxy(self.addr, allow_none=True, verbose=False))
- self.connect(self.proxy, SIGNAL("proxy_error"), self._proxyError)
- self.connect(self.proxy, SIGNAL("connectionLost"), self, SIGNAL("connectionLost"))
- try:
- server_version = self.proxy.get_server_version()
- self.connectionID = uuid().hex
- except:
- return False
- if not server_version:
- return False
- elif not server_version == SERVER_VERSION:
- self.emit(SIGNAL("error_box"), "server is version %s client accepts version %s" % (server_version, SERVER_VERSION))
- return False
- return True
-
- def canConnect(self):
- return self.connectProxy()
-
- def _proxyError(self, func, e):
- """
- formats proxy error msg
- """
- msg = "proxy error in '%s':\n%s" % (func, e)
- self.errorQueue.append(msg)
-
- def getError(self):
- self.mutex.lock()
- if len(self.errorQueue) > 0:
- err = self.errorQueue.pop()
- print err
- self.emit(SIGNAL("error_box"), err)
- self.mutex.unlock()
-
- def stop(self):
- """
- stop thread
- """
- self.running = False
-
- def run(self):
- """
- start thread
- (called from thread.start())
- """
- self.canConnect()
- while self.running:
- sleep(1)
- self.getError()
-
- class Dummy(object):
- def __getattr__(self, attr):
- def dummy(*args, **kwargs):
- return None
- return dummy
-
- def getPackageCollector(self):
- """
- grab packages from collector and return the data
- """
- return self.proxy.get_collector()
-
- def getLinkInfo(self, id):
- """
- grab file info for the given id and return it
- """
- w = self.proxy.get_file_info
- w.error = False
- info = w(id)
- if not info: return None
- info["downloading"] = None
- return info
-
- def getPackageInfo(self, id):
- """
- grab package info for the given id and return it
- """
- w = self.proxy.get_package_data
- w.error = False
- return w(id)
-
- def getPackageQueue(self):
- """
- grab queue return the data
- """
- return self.proxy.get_queue()
-
- def getPackageFiles(self, id):
- """
- grab package files and return ids
- """
- return self.proxy.get_package_files(id)
-
- def getDownloadQueue(self):
- """
- grab files that are currently downloading and return info
- """
- return self.proxy.status_downloads()
-
- def getServerStatus(self):
- """
- return server status
- """
- return self.proxy.status_server()
-
- def addURLs(self, links):
- """
- add links to collector
- """
- self.proxy.add_urls(links)
-
- def togglePause(self):
- """
- toogle pause
- """
- return self.proxy.toggle_pause()
-
- def setPause(self, pause):
- """
- set pause
- """
- if pause:
- self.proxy.pause_server()
- else:
- self.proxy.unpause_server()
-
- def newPackage(self, name):
- """
- create a new package and return id
- """
- return self.proxy.new_package(name)
-
- def addFileToPackage(self, fileid, packid):
- """
- add a file from collector to package
- """
- self.proxy.move_file_2_package(fileid, packid)
-
- def pushPackageToQueue(self, packid):
- """
- push a package to queue
- """
- self.proxy.push_package_2_queue(packid)
-
- def restartPackage(self, packid):
- """
- restart a package
- """
- self.proxy.restart_package(packid)
-
- def restartFile(self, fileid):
- """
- restart a file
- """
- self.proxy.restart_file(fileid)
-
- def removePackage(self, packid):
- """
- remove a package
- """
- self.proxy.del_packages([packid,])
-
- def removeFile(self, fileid):
- """
- remove a file
- """
- self.proxy.del_links([fileid,])
-
- def uploadContainer(self, filename, type, content):
- """
- upload a container
- """
- self.proxy.upload_container(filename, type, content)
-
- def getLog(self, offset):
- """
- get log
- """
- return self.proxy.get_log(offset)
-
- def stopAllDownloads(self):
- """
- get log
- """
- self.proxy.pause_server()
- self.proxy.stop_downloads()
-
- def updateAvailable(self):
- """
- update available
- """
- return self.proxy.update_available()
-
- def setPackageName(self, pid, name):
- """
- set new package name
- """
- return self.proxy.set_package_name(pid, name)
-
- def pullOutPackage(self, pid):
- """
- pull out package
- """
- return self.proxy.pull_out_package(pid)
-
- def captchaWaiting(self):
- """
- is the a captcha waiting?
- """
- return self.proxy.is_captcha_waiting()
-
- def getCaptcha(self):
- """
- get captcha
- """
- return self.proxy.get_captcha_task()
-
- def setCaptchaResult(self, cid, result):
- """
- get captcha
- """
- return self.proxy.set_captcha_result(cid, result)
-
- def getCaptchaStatus(self, cid):
- """
- get captcha status
- """
- return self.proxy.get_task_status(cid)
-
- def getEvents(self):
- """
- get events
- """
- return self.proxy.get_events(self.connectionID)
-
-class DispatchRPC(QObject):
- def __init__(self, mutex, server):
- QObject.__init__(self)
- self.mutex = mutex
- self.server = server
-
- def __getattr__(self, attr):
- self.mutex.lock()
- self.fname = attr
- f = self.Wrapper(getattr(self.server, attr), self.mutex, self)
- return f
-
- class Wrapper(object):
- def __init__(self, f, mutex, dispatcher):
- self.f = f
- self.mutex = mutex
- self.dispatcher = dispatcher
- self.error = True
-
- def __call__(self, *args, **kwargs):
- try:
- return self.f(*args, **kwargs)
- except socket.error:
- self.dispatcher.emit(SIGNAL("connectionLost"))
- except Exception, e:
- if self.error:
- self.dispatcher.emit(SIGNAL("proxy_error"), self.dispatcher.fname, e)
- finally:
- self.mutex.unlock()
diff --git a/interfaces/pyLoadCli.py b/interfaces/pyLoadCli.py
new file mode 100755
index 000000000..aaeb6a4fa
--- /dev/null
+++ b/interfaces/pyLoadCli.py
@@ -0,0 +1,555 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+#
+#Copyright (C) 2010 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/>.
+#
+###
+from getopt import GetoptError
+from getopt import getopt
+import gettext
+from itertools import islice
+import os
+import os.path
+from os.path import join
+from os.path import abspath
+from os.path import dirname
+import sys
+from sys import exit
+import threading
+import time
+from time import sleep
+import xmlrpclib
+from traceback import print_exc
+
+sys.path.append(join(dirname(abspath(__file__)), ".."))
+
+from module import InitHomeDir
+from module.ConfigParser import ConfigParser
+
+import codecs
+
+sys.stdout = codecs.getwriter("utf8")(sys.stdout, errors = "replace")
+
+if sys.stdout.encoding.lower().startswith("utf"):
+ conv = unicode
+else:
+ conv = str
+
+class pyLoadCli:
+ def __init__(self, server_url, add=False):
+ self.core = xmlrpclib.ServerProxy(server_url, allow_none=True)
+ self.getch = _Getch()
+ self.input = ""
+ self.pos = [0, 0, 0]
+ self.inputline = 0
+ self.menuline = 0
+
+ self.new_package = {}
+
+ try:
+ self.core.get_server_version()
+ except:
+ print _("pyLoadCore not running")
+ exit()
+
+ if add:
+ self.core.add_package(add, [add])
+ print _("Linklist added")
+ exit()
+
+ self.links_added = 0
+
+ os.system("clear")
+ self.println(1, blue("py") + yellow("Load") + white(_(" Command Line Interface")))
+ self.println(2, "")
+
+
+ self.file_list = {}
+
+ self.thread = RefreshThread(self)
+ self.thread.start()
+
+ self.start()
+
+ def start(self):
+ while True:
+ #inp = raw_input()
+ inp = self.getch.impl()
+ if ord(inp) == 3:
+ os.system("clear")
+ sys.exit() # ctrl + c
+ elif ord(inp) == 13:
+ try:
+ self.handle_input()
+ except Exception, e:
+ self.println(2, red(conv(e)))
+ self.input = "" #enter
+ self.print_input()
+ elif ord(inp) == 127:
+ self.input = self.input[:-1] #backspace
+ self.print_input()
+ elif ord(inp) == 27: #ugly symbol
+ pass
+ else:
+ self.input += inp
+ self.print_input()
+
+ def format_time(self, seconds):
+ seconds = int(seconds)
+
+ hours, seconds = divmod(seconds, 3600)
+ minutes, seconds = divmod(seconds, 60)
+ return "%.2i:%.2i:%.2i" % (hours, minutes, seconds)
+
+ def format_size(self, size):
+ return conv(size / 1024 ** 2) + " MiB"
+
+ def println(self, line, content):
+ print "\033[" + conv(line) + ";0H\033[2K" + content + "\033[" + conv((self.inputline if self.inputline > 0 else self.inputline + 1) - 1) + ";0H"
+
+ def print_input(self):
+ self.println(self.inputline, white(" Input: ") + self.input)
+ self.println(self.inputline + 1, "")
+ self.println(self.inputline + 2, "")
+ self.println(self.inputline + 3, "")
+ self.println(self.inputline + 4, "")
+
+ def refresh(self):
+ """Handle incoming data"""
+ data = self.core.status_downloads()
+ #print updated information
+ print "\033[J" #clear screen
+ self.println(1, blue("py") + yellow("Load") + white(_(" Command Line Interface")))
+ self.println(2, "")
+ self.println(3, white(_("%s Downloads:") % (len(data))))
+ line = 4
+ speed = 0
+ for download in data:
+ if download["status"] == 12: # downloading
+ percent = download["percent"]
+ z = percent / 4
+ speed += download['speed']
+ self.println(line, cyan(download["name"]))
+ line += 1
+ self.println(line, blue("[") + yellow(z * "#" + (25-z) * " ") + blue("] ") + green(conv(percent) + "%") + _(" Speed: ") + green(conv(int(download['speed'])) + " kb/s") + _(" Size: ") + green(download['format_size']) + _(" Finished in: ") + green(download['format_eta']) + _(" ID: ") + green(conv(download['id'])))
+ line += 1
+ if download["status"] == 5:
+ self.println(line, cyan(download["name"]))
+ line += 1
+ self.println(line, _("waiting: ") + green(download["format_wait"]) )
+ line += 1
+ self.println(line, "")
+ line += 1
+ status = self.core.status_server()
+ if status['pause']:
+ self.println(line, _("Status: ") + red("paused") + _(" total Speed: ") + red(conv(int(speed)) + " kb/s") + _(" Files in queue: ") + red(conv(status["queue"])))
+ else:
+ self.println(line, _("Status: ") + red("running") + _(" total Speed: ") + red(conv(int(speed)) + " kb/s") + _(" Files in queue: ") + red(conv(status["queue"])))
+ line += 1
+ self.println(line, "")
+ line += 1
+ self.menuline = line
+
+ self.build_menu()
+ #
+ self.file_list = data
+
+ def build_menu(self):
+ line = self.menuline
+ self.println(line, white(_("Menu:")))
+ line += 1
+ if self.pos[0] == 0:# main menu
+ self.println(line, "")
+ line += 1
+ self.println(line, mag("1.") + _(" Add Links"))
+ line += 1
+ self.println(line, mag("2.") + _(" Manage Links"))
+ line += 1
+ self.println(line, mag("3.") + _(" (Un)Pause Server"))
+ line += 1
+ self.println(line, mag("4.") + _(" Kill Server"))
+ line += 1
+ self.println(line, mag("5.") + _(" Quit"))
+ line += 1
+ self.println(line, "")
+ line += 1
+ self.println(line, "")
+ elif self.pos[0] == 1:#add links
+
+ if self.pos[1] == 0:
+ self.println(line, "")
+ line += 1
+ self.println(line, _("Name your package."))
+ line += 1
+ self.println(line, "")
+ line += 1
+ self.println(line, "")
+ line += 1
+ self.println(line, "")
+ line += 1
+ self.println(line, "")
+ line += 1
+ self.println(line, mag("0.") + _(" back to main menu"))
+ line += 1
+ self.println(line, "")
+
+ else:
+ self.println(line, _("Package: %s") % self.new_package['name'])
+ line += 1
+ self.println(line, _("Parse the links you want to add."))
+ line += 1
+ self.println(line, _("Type %s when done.") % mag("END"))
+ line += 1
+ self.println(line, _("Links added: ") + mag(conv(self.links_added)))
+ line += 1
+ self.println(line, "")
+ line += 1
+ self.println(line, "")
+ line += 1
+ self.println(line, mag("0.") + _(" back to main menu"))
+ line += 1
+ self.println(line, "")
+ elif self.pos[0] == 2:#remove links
+ if self.pos[1] == 0:
+ pack = self.core.get_queue()
+ self.println(line, _("Type d(number of package) to delete a package, r to restart, or w/o d,r to look into it."))
+ line += 1
+ i = 0
+ for id, value in islice(pack.iteritems(), self.pos[2], self.pos[2] + 5):
+ try:
+ self.println(line, mag(conv(id)) + ": " + value['name'])
+ line += 1
+ i += 1
+ except Exception, e:
+ pass
+ for x in range(5-i):
+ self.println(line, "")
+ line += 1
+
+ else:
+ links = self.core.get_package_data(self.pos[1])
+ self.println(line, _("Type d(number) of the link you want to delete or r(number) to restart."))
+ line += 1
+ i = 0
+ for id, value in islice(links["links"].iteritems(), self.pos[2], self.pos[2] + 5):
+ try:
+
+ self.println(line, mag(conv(id)) + ": %s | %s | %s" % (value['name'], value['statusmsg'], value['plugin']))
+ line += 1
+ i += 1
+
+ except Exception, e:
+ pass
+ for x in range(5-i):
+ self.println(line, "")
+ line += 1
+
+ self.println(line, mag("p") + _(" - previous") + " | " + mag("n") + _(" - next"))
+ line += 1
+ self.println(line, mag("0.") + _(" back to main menu"))
+
+ self.inputline = line + 1
+ self.print_input()
+
+ def handle_input(self):
+ inp = self.input.strip()
+ if inp == "0":
+ self.pos = [0, 0, 0]
+ self.build_menu()
+ return True
+
+ if self.pos[0] == 0:
+ if inp == "1":
+ self.links_added = 0
+ self.pos[0] = 1
+ elif inp == "2":
+ self.pos[0] = 2
+ self.pos[1] = 0
+ elif inp == "3":
+ self.core.toggle_pause()
+ elif inp == "4":
+ self.core.kill()
+ sys.exit()
+ elif inp == "5":
+ os.system('clear')
+ sys.exit()
+
+ elif self.pos[0] == 1: #add links
+ if self.pos[1] == 0:
+ self.new_package['name'] = inp
+ self.new_package['links'] = []
+ self.pos[1] = 1
+ else:
+ if inp == "END":
+ self.core.add_package(self.new_package['name'], self.new_package['links'], 1) # add package
+ self.pos = [0, 0, 0]
+ self.links_added = 0
+ else: #@TODO validation
+ self.new_package['links'].append(inp)
+ self.links_added += 1
+
+ elif self.pos[0] == 2: #remove links
+ if self.pos[1] == 0:
+ if inp.startswith("d"):
+ if inp.find("-") > -1:
+ self.core.del_packages(range(*map(int, inp[1:].split("-"))))
+ else:
+ self.core.del_packages([int(inp[1:])])
+ if inp.startswith("r"):
+ self.core.restart_package(int(inp[1:]))
+ elif inp != "p" and inp != "n":
+ self.pos[1] = int(inp)
+ self.pos[2] = 0
+ elif inp.startswith('r'):
+ if inp.find("-") > -1:
+ map(self.core.restart_file, range(*map(int, inp[1:].split("-"))))
+ else:
+ self.core.restart_file(int(inp[1:]))
+ elif inp.startswith('d') and inp != "p" and inp != "n":
+ if inp.find("-") > -1:
+ self.core.del_links(range(*map(int, inp[1:].split("-"))))
+ else:
+ self.core.del_links([int(inp[1:])])
+ if inp == "p":
+ self.pos[2] -= 5
+ elif inp == "n":
+ self.pos[2] += 5
+
+ self.build_menu()
+
+class RefreshThread(threading.Thread):
+ def __init__(self, cli):
+ threading.Thread.__init__(self)
+ self.setDaemon(True)
+ self.cli = cli
+
+ def run(self):
+ while True:
+ sleep(1)
+ try:
+ self.cli.refresh()
+ except Exception, e:
+ self.cli.println(2, red(conv(e)))
+ self.cli.pos[1] = 0
+ self.cli.pos[2] = 0
+ print_exc()
+
+
+
+
+class _Getch:
+ """
+ Gets a single character from standard input. Does not echo to
+ the screen.
+ """
+ def __init__(self):
+ try:
+ self.impl = _GetchWindows()
+ except ImportError:
+ try:
+ self.impl = _GetchMacCarbon()
+ except(AttributeError, ImportError):
+ self.impl = _GetchUnix()
+
+ def __call__(self): return self.impl()
+
+
+class _GetchUnix:
+ def __init__(self):
+ import tty
+ import sys
+
+ def __call__(self):
+ import sys
+ import tty
+ import termios
+
+ fd = sys.stdin.fileno()
+ old_settings = termios.tcgetattr(fd)
+ try:
+ tty.setraw(sys.stdin.fileno())
+ ch = sys.stdin.read(1)
+ finally:
+ termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
+ return ch
+
+
+class _GetchWindows:
+ def __init__(self):
+ import msvcrt
+
+ def __call__(self):
+ import msvcrt
+ return msvcrt.getch()
+
+class _GetchMacCarbon:
+ """
+ A function which returns the current ASCII key that is down;
+ if no ASCII key is down, the null string is returned. The
+ page http://www.mactech.com/macintosh-c/chap02-1.html was
+ very helpful in figuring out how to do this.
+ """
+ def __init__(self):
+ import Carbon
+ Carbon.Evt #see if it has this (in Unix, it doesn't)
+
+ def __call__(self):
+ import Carbon
+ if Carbon.Evt.EventAvail(0x0008)[0] == 0: # 0x0008 is the keyDownMask
+ return ''
+ else:
+ #
+ # The event contains the following info:
+ # (what,msg,when,where,mod)=Carbon.Evt.GetNextEvent(0x0008)[1]
+ #
+ # The message (msg) contains the ASCII char which is
+ # extracted with the 0x000000FF charCodeMask; this
+ # number is converted to an ASCII character with chr() and
+ # returned
+ #
+ (what, msg, when, where, mod) = Carbon.Evt.GetNextEvent(0x0008)[1]
+ return chr(msg)
+
+def blue(string):
+ return "\033[1;34m" + string + "\033[0m"
+
+def green(string):
+ return "\033[1;32m" + string + "\033[0m"
+
+def yellow(string):
+ return "\033[1;33m" + string + "\033[0m"
+
+def red(string):
+ return "\033[1;31m" + string + "\033[0m"
+
+def cyan(string):
+ return "\033[1;36m" + string + "\033[0m"
+
+def mag(string):
+ return "\033[1;35m" + string + "\033[0m"
+
+def white(string):
+ return "\033[1;37m" + string + "\033[0m"
+
+def print_help():
+ print ""
+ print "pyLoadCli Copyright (c) 2008-2010 the pyLoad Team"
+ print ""
+ print "Usage: [python] pyLoadCli.py [options] [server url]"
+ print ""
+ print "<server url>"
+ print "The server url has this format: http://username:passwort@address:port"
+ print ""
+ print "<Options>"
+ print " -l, --local", " " * 6, "Use the local settings in config file"
+ print " -u, --username=<username>"
+ print " " * 20, "Specify username"
+ print ""
+ print " -a, --address=<address>"
+ print " " * 20, "Specify address (default=127.0.0.1)"
+ print ""
+ print " --linklist=<path>"
+ print " " * 20, "Add container to pyLoad"
+ print ""
+ print " -p, --port", " " * 7, "Specify port (default=7272)"
+ print " -s, --ssl", " " * 8, "Enable ssl (default=off)"
+ print " -h, --help", " " * 7, "Display this help screen"
+ print ""
+
+
+
+if __name__ == "__main__":
+ config = ConfigParser()
+
+ translation = gettext.translation("pyLoadCli", join(pypath, "locale"), languages=[config['general']['language']])
+ translation.install(unicode=(True if sys.stdout.encoding.lower().startswith("utf") else False))
+
+ server_url = ""
+ username = ""
+ password = ""
+ addr = ""
+ port = ""
+ ssl = None
+
+ add = ""
+
+ if len(sys.argv) > 1:
+
+
+ addr = "127.0.0.1"
+ port = "7272"
+ ssl = ""
+
+ shortOptions = 'lu:a:p:s:h'
+ longOptions = ['local', "username=", "address=", "port=", "ssl=", "help", "linklist=", "pw=", "configdir="]
+
+ try:
+ opts, extraparams = getopt(sys.argv[1:], shortOptions, longOptions)
+ for option, params in opts:
+ if option in ("-l", "--local"):
+
+ if config['ssl']['activated']:
+ ssl = "s"
+
+ username = config.username
+ password = config.password
+ addr = config['remote']['listenaddr']
+ port = config['remote']['port']
+ elif option in ("-u", "--username"):
+ username = params
+ elif option in ("-a", "--address"):
+ addr = params
+ elif option in ("-p", "--port"):
+ port = params
+ elif option in ("-s", "--ssl"):
+ if params.lower() == "true":
+ ssl = "s"
+ elif option in ("-h", "--help"):
+ print_help()
+ exit()
+ elif option in ("--linklist"):
+ add = params
+ elif option in ("--pw"):
+ password = params
+ except GetoptError:
+ print 'Unknown Argument(s) "%s"' % " ".join(sys.argv[1:])
+ print_help()
+ exit()
+
+ if len(extraparams) == 1:
+ server_url = sys.argv[1]
+
+ if not server_url:
+ if not username: username = raw_input(_("Username: "))
+ if not addr: addr = raw_input(_("address: "))
+ if ssl == None:
+ ssl = raw_input(_("Use SSL? ([y]/n): "))
+ if ssl == "y" or ssl == "":
+ ssl = "s"
+ else:
+ ssl = ""
+ if not port: port = raw_input(_("Port: "))
+ if not password:
+ from getpass import getpass
+ password = getpass(_("Password: "))
+
+ server_url = "http%s://%s:%s@%s:%s/" % (ssl, username, password, addr, port)
+
+ print server_url
+ if add:
+ cli = pyLoadCli(server_url, add)
+ else:
+ cli = pyLoadCli(server_url)
diff --git a/interfaces/gui/pyLoadGui.py b/interfaces/pyLoadGui.py
index 5dc0f8024..6279fb10b 100755
--- a/interfaces/gui/pyLoadGui.py
+++ b/interfaces/pyLoadGui.py
@@ -30,7 +30,13 @@ from uuid import uuid4 as uuid
import re
import gettext
from xmlrpclib import Binary
+from os.path import join
+from os.path import abspath
+from os.path import dirname
+
+sys.path.append(join(dirname(abspath(__file__)),".."))
+from module import InitHomeDir
from module.gui.ConnectionManager import *
from module.gui.connector import Connector
from module.gui.MainWindow import *
@@ -59,21 +65,10 @@ class main(QObject):
"""
QObject.__init__(self)
self.app = QApplication(sys.argv)
- self.path = join(dirname(__file__))
- self.homedir = self.getHomeDir()
+ self.path = pypath
+ self.homedir = self.getHomeDir()
- if platform in ("posix","linux2"):
- configdir = join(self.homedir, ".pyload")
- else:
- configdir = join(self.homedir, "pyload")
-
- #chdir(configdir)
- self.configdir = configdir
-
- try:
- makedirs(self.configdir)
- except:
- pass
+ self.configdir = ""
self.init(True)
@@ -108,7 +103,7 @@ class main(QObject):
parser = XMLParser(join(self.path, "module", "config", "gui_default.xml"))
lang = parser.xml.elementsByTagName("language").item(0).toElement().text()
- translation = gettext.translation("pyLoadGui", join(self.path, "locale"), languages=[str(lang)])
+ translation = gettext.translation("pyLoadGui", join(pypath, "locale"), languages=[str(lang)])
try:
translation.install(unicode=(True if sys.stdout.encoding.lower().startswith("utf") else False))
except: