summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar mkaay <mkaay@mkaay.de> 2009-12-26 22:35:20 +0100
committerGravatar mkaay <mkaay@mkaay.de> 2009-12-26 22:35:20 +0100
commitb5d1c47ac2590fe4314d7e96d58443c30463746c (patch)
treebf35105179c5fc841edc26b86b8ed96f148f2b35
parentpluginconfig now in xml (diff)
downloadpyload-b5d1c47ac2590fe4314d7e96d58443c30463746c.tar.xz
gui contaoner upload, closes #39
-rw-r--r--module/gui/MainWindow.py11
-rw-r--r--module/gui/connector.py13
-rwxr-xr-xpyLoadCore.py15
-rwxr-xr-xpyLoadGui.py15
4 files changed, 52 insertions, 2 deletions
diff --git a/module/gui/MainWindow.py b/module/gui/MainWindow.py
index 53de8cd54..744518adb 100644
--- a/module/gui/MainWindow.py
+++ b/module/gui/MainWindow.py
@@ -122,9 +122,11 @@ class MainWindow(QMainWindow):
self.addMenu = QMenu()
packageAction = self.addMenu.addAction("Package")
linkAction = self.addMenu.addAction("Links")
+ containerAction = self.addMenu.addAction("Container")
self.connect(self.actions["add"], SIGNAL("triggered()"), self.slotAdd)
self.connect(packageAction, SIGNAL("triggered()"), self.slotShowAddPackage)
self.connect(linkAction, SIGNAL("triggered()"), self.slotShowAddLinks)
+ self.connect(containerAction, SIGNAL("triggered()"), self.slotShowAddContainer)
def init_tabs(self):
"""
@@ -230,6 +232,15 @@ class MainWindow(QMainWindow):
"""
self.emit(SIGNAL("addPackage"), name, ids)
+ def slotShowAddContainer(self):
+ """
+ action from add-menu
+ show file selector, emit upload
+ """
+ fileNames = QFileDialog.getOpenFileNames(self, "Container Öffnen", "", "All Container Types (*.dlc *.ccf *.rsdf *.txt);;DLC (*.dlc);;CCF (*.ccf);;RSDF (*.rsdf);;Text Files (*.txt)")
+ for name in fileNames:
+ self.emit(SIGNAL("addContainer"), str(name))
+
def slotPushPackageToQueue(self):
"""
push collector pack to queue
diff --git a/module/gui/connector.py b/module/gui/connector.py
index 4ac635200..e52cf42ff 100644
--- a/module/gui/connector.py
+++ b/module/gui/connector.py
@@ -304,3 +304,16 @@ class connector(QThread):
self.emit(SIGNAL("proxy_error"), "removeFile")
finally:
self.mutex.unlock()
+
+ def uploadContainer(self, filename, type, content):
+ """
+ upload a container
+ """
+ self.mutex.lock()
+ try:
+ self.proxy.upload_container(filename, type, content)
+ except:
+ self.emit(SIGNAL("proxy_error"), "uploadContainer")
+ finally:
+ self.mutex.unlock()
+
diff --git a/pyLoadCore.py b/pyLoadCore.py
index 7cf83389e..9e9da2c4b 100755
--- a/pyLoadCore.py
+++ b/pyLoadCore.py
@@ -44,7 +44,8 @@ from sys import stdout
import thread
import time
from time import sleep
-from shutil import copyfile
+from shutil import copyfile
+from tempfile import NamedTemporaryFile
from module.file_list import File_List
from module.network.Request import Request
@@ -494,7 +495,17 @@ class ServerMethods():
self.core.file_list.packager.resetFileStatus(id)
def restart_file(self, fileid):
- self.core.file_list.packager.resetFileStatus(fileid)
+ self.core.file_list.packager.resetFileStatus(fileid)
+
+ def upload_container(self, filename, type, content):
+ th = NamedTemporaryFile(mode="w", suffix="."+type, delete=False)
+ th.write(content)
+ path = th.name
+ th.close()
+ pid = self.core.file_list.packager.addNewPackage(filename)
+ cid = self.core.file_list.collector.addLink(path)
+ self.move_file_2_package(cid, pid)
+ self.core.file_list.save()
#def move_urls_up(self, ids):
# for id in ids:
diff --git a/pyLoadGui.py b/pyLoadGui.py
index 5e13dd080..f075db710 100755
--- a/pyLoadGui.py
+++ b/pyLoadGui.py
@@ -28,6 +28,8 @@ from PyQt4.QtGui import *
from uuid import uuid4 as uuid
+from os.path import basename
+
from module.gui.ConnectionManager import *
from module.gui.connector import *
from module.gui.MainWindow import *
@@ -109,6 +111,7 @@ class main(QObject):
self.connect(self.mainWindow, SIGNAL("pushPackageToQueue"), self.slotPushPackageToQueue)
self.connect(self.mainWindow, SIGNAL("restartDownload"), self.slotRestartDownload)
self.connect(self.mainWindow, SIGNAL("removeDownload"), self.slotRemoveDownload)
+ self.connect(self.mainWindow, SIGNAL("addContainer"), self.slotAddContainer)
def slotShowConnector(self):
"""
@@ -377,6 +380,18 @@ class main(QObject):
for fileid in ids:
self.connector.addFileToPackage(fileid, packid)
+ def slotAddContainer(self, path):
+ """
+ emitted from main window
+ add container
+ """
+ filename = basename(path)
+ type = "".join(filename.split(".")[-1])
+ fh = open(path, "r")
+ content = fh.read()
+ fh.close()
+ self.connector.uploadContainer(filename, type, content)
+
def slotSaveMainWindow(self, state, geo):
"""
save the window geometry and toolbar/dock position to config file