diff options
| -rw-r--r-- | module/gui/MainWindow.py | 1 | ||||
| -rw-r--r-- | module/gui/connector.py | 100 | ||||
| -rwxr-xr-x | pyLoadCore.py | 61 | ||||
| -rwxr-xr-x | pyLoadGui.py | 14 | 
4 files changed, 110 insertions, 66 deletions
| diff --git a/module/gui/MainWindow.py b/module/gui/MainWindow.py index 74bf00b51..06df7447c 100644 --- a/module/gui/MainWindow.py +++ b/module/gui/MainWindow.py @@ -53,6 +53,7 @@ class MainWindow(QMainWindow):          #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) diff --git a/module/gui/connector.py b/module/gui/connector.py index 64c05ba8c..8458d74b9 100644 --- a/module/gui/connector.py +++ b/module/gui/connector.py @@ -71,11 +71,11 @@ class connector(QThread):          if not server_version == SERVER_VERSION:              self.emit(SIGNAL("error_box"), "server is version %s client accepts version %s" % (server_version, SERVER_VERSION)) -    def _proxyError(self, func): +    def _proxyError(self, func, e):          """              formats proxy error msg          """ -        msg = "proxy error in '%s'" % (func,) +        msg = "proxy error in '%s':\n%s" % (func, e)          self.errorQueue.append(msg)      def getError(self): @@ -93,8 +93,8 @@ class connector(QThread):          self.mutex.lock()          try:              return self.proxy.get_collector_files() -        except: -            self.emit(SIGNAL("proxy_error"), "getLinkCollector") +        except Exception, e: +            self.emit(SIGNAL("proxy_error"), "getLinkCollector", e)          finally:              self.mutex.unlock() @@ -105,8 +105,8 @@ class connector(QThread):          self.mutex.lock()          try:              return self.proxy.get_collector_packages() -        except: -            self.emit(SIGNAL("proxy_error"), "getPackageCollector") +        except Exception, e: +            self.emit(SIGNAL("proxy_error"), "getPackageCollector", e)          finally:              self.mutex.unlock() @@ -117,8 +117,8 @@ class connector(QThread):          self.mutex.lock()          try:              return self.proxy.get_file_info(id) -        except: -            self.emit(SIGNAL("proxy_error"), "getLinkInfo") +        except Exception, e: +            self.emit(SIGNAL("proxy_error"), "getLinkInfo", e)          finally:              self.mutex.unlock() @@ -129,8 +129,8 @@ class connector(QThread):          self.mutex.lock()          try:              return self.proxy.get_package_data(id) -        except: -            self.emit(SIGNAL("proxy_error"), "getPackageInfo") +        except Exception, e: +            self.emit(SIGNAL("proxy_error"), "getPackageInfo", e)          finally:              self.mutex.unlock() @@ -141,8 +141,8 @@ class connector(QThread):          self.mutex.lock()          try:              return self.proxy.get_queue() -        except: -            self.emit(SIGNAL("proxy_error"), "getPackageQueue") +        except Exception, e: +            self.emit(SIGNAL("proxy_error"), "getPackageQueue", e)          finally:              self.mutex.unlock() @@ -153,8 +153,8 @@ class connector(QThread):          self.mutex.lock()          try:              return self.proxy.get_package_files(id) -        except: -            self.emit(SIGNAL("proxy_error"), "getPackageFiles") +        except Exception, e: +            self.emit(SIGNAL("proxy_error"), "getPackageFiles", e)          finally:              self.mutex.unlock() @@ -165,8 +165,8 @@ class connector(QThread):          self.mutex.lock()          try:              return self.proxy.status_downloads() -        except: -            self.emit(SIGNAL("proxy_error"), "getDownloadQueue") +        except Exception, e: +            self.emit(SIGNAL("proxy_error"), "getDownloadQueue", e)          finally:              self.mutex.unlock() @@ -177,8 +177,8 @@ class connector(QThread):          self.mutex.lock()          try:              return self.proxy.status_server() -        except: -            self.emit(SIGNAL("proxy_error"), "getServerStatus") +        except Exception, e: +            self.emit(SIGNAL("proxy_error"), "getServerStatus", e)          finally:              self.mutex.unlock() @@ -189,8 +189,8 @@ class connector(QThread):          self.mutex.lock()          try:              self.proxy.add_urls(links) -        except: -            self.emit(SIGNAL("proxy_error"), "addURLs") +        except Exception, e: +            self.emit(SIGNAL("proxy_error"), "addURLs", e)          finally:              self.mutex.unlock() @@ -201,8 +201,8 @@ class connector(QThread):          self.mutex.lock()          try:              return self.proxy.toggle_pause() -        except: -            self.emit(SIGNAL("proxy_error"), "togglePause") +        except Exception, e: +            self.emit(SIGNAL("proxy_error"), "togglePause", e)          finally:              self.mutex.unlock() @@ -216,8 +216,8 @@ class connector(QThread):                  self.proxy.pause_server()              else:                  self.proxy.unpause_server() -        except: -            self.emit(SIGNAL("proxy_error"), "setPause") +        except Exception, e: +            self.emit(SIGNAL("proxy_error"), "setPause", e)          finally:              self.mutex.unlock() @@ -228,8 +228,8 @@ class connector(QThread):          self.mutex.lock()          try:              return self.proxy.new_package(name) -        except: -            self.emit(SIGNAL("proxy_error"), "newPackage") +        except Exception, e: +            self.emit(SIGNAL("proxy_error"), "newPackage", e)          finally:              self.mutex.unlock() @@ -240,8 +240,8 @@ class connector(QThread):          self.mutex.lock()          try:              self.proxy.move_file_2_package(fileid, packid) -        except: -            self.emit(SIGNAL("proxy_error"), "addFileToPackage") +        except Exception, e: +            self.emit(SIGNAL("proxy_error"), "addFileToPackage", e)          finally:              self.mutex.unlock() @@ -252,8 +252,8 @@ class connector(QThread):          self.mutex.lock()          try:              self.proxy.push_package_2_queue(packid) -        except: -            self.emit(SIGNAL("proxy_error"), "pushPackageToQueue") +        except Exception, e: +            self.emit(SIGNAL("proxy_error"), "pushPackageToQueue", e)          finally:              self.mutex.unlock() @@ -264,8 +264,8 @@ class connector(QThread):          self.mutex.lock()          try:              self.proxy.restart_package(packid) -        except: -            self.emit(SIGNAL("proxy_error"), "restartPackage") +        except Exception, e: +            self.emit(SIGNAL("proxy_error"), "restartPackage", e)          finally:              self.mutex.unlock() @@ -276,8 +276,8 @@ class connector(QThread):          self.mutex.lock()          try:              self.proxy.restart_file(fileid) -        except: -            self.emit(SIGNAL("proxy_error"), "restartFile") +        except Exception, e: +            self.emit(SIGNAL("proxy_error"), "restartFile", e)          finally:              self.mutex.unlock() @@ -288,8 +288,8 @@ class connector(QThread):          self.mutex.lock()          try:              self.proxy.del_packages([packid,]) -        except: -            self.emit(SIGNAL("proxy_error"), "removePackage") +        except Exception, e: +            self.emit(SIGNAL("proxy_error"), "removePackage", e)          finally:              self.mutex.unlock() @@ -300,8 +300,8 @@ class connector(QThread):          self.mutex.lock()          try:              self.proxy.del_links([fileid,]) -        except: -            self.emit(SIGNAL("proxy_error"), "removeFile") +        except Exception, e: +            self.emit(SIGNAL("proxy_error"), "removeFile", e)          finally:              self.mutex.unlock() @@ -312,8 +312,8 @@ class connector(QThread):          self.mutex.lock()          try:              self.proxy.upload_container(filename, type, content) -        except: -            self.emit(SIGNAL("proxy_error"), "uploadContainer") +        except Exception, e: +            self.emit(SIGNAL("proxy_error"), "uploadContainer", e)          finally:              self.mutex.unlock() @@ -324,8 +324,8 @@ class connector(QThread):          self.mutex.lock()          try:              return self.proxy.get_log(offset) -        except: -            self.emit(SIGNAL("proxy_error"), "getLog") +        except Exception, e: +            self.emit(SIGNAL("proxy_error"), "getLog", e)          finally:              self.mutex.unlock() @@ -336,8 +336,20 @@ class connector(QThread):          self.mutex.lock()          try:              self.proxy.stop_downloads() -        except: -            self.emit(SIGNAL("proxy_error"), "stopAllDownloads") +        except Exception, e: +            self.emit(SIGNAL("proxy_error"), "stopAllDownloads", e) +        finally: +            self.mutex.unlock() +     +    def updateAvailable(self): +        """ +            update available +        """ +        self.mutex.lock() +        try: +            return self.proxy.update_available() +        except Exception, e: +            self.emit(SIGNAL("proxy_error"), "updateAvailable", e)          finally:              self.mutex.unlock() diff --git a/pyLoadCore.py b/pyLoadCore.py index 979abaf44..c062374bc 100755 --- a/pyLoadCore.py +++ b/pyLoadCore.py @@ -125,8 +125,10 @@ class Core(object):          self.server_methods = ServerMethods(self)
          self.file_list = File_List(self)
          self.thread_list = Thread_List(self)
 -
 -        self.server_methods.check_update()
 +         +        self.last_update_check = 0 +        self.update_check_interval = 1800
 +        self.update_available = self.check_update()
          self.init_server()
          self.init_webserver() # start webinterface like cli, gui etc
 @@ -160,7 +162,9 @@ class Core(object):              if self.do_kill:                  self.shutdown()
                  self.logger.info("pyLoad quits")
 -                exit()
 +                exit() +            if self.last_update_check + self.update_check_interval <= time.time():
 +                self.update_available = self.check_update()
      def init_server(self):
          try:
 @@ -323,41 +327,51 @@ class Core(object):              thread.shutdown = True              thread.join(15)          self.file_list.save()
 -        
 -    ####################################
 -    ########## XMLRPC Methods ##########
 -    ####################################
 -class ServerMethods():
 -    def __init__(self, core):
 -        self.core = core
 +    def check_update(self): +        try:
 +            if self.config['updates']['search_updates']:
 +                version_check = Request().load("http://update.pyload.org/index.php?do=dev%s&download=%s" % (CURRENT_VERSION, False))
 +                if version_check == "":
 +                    self.logger.info("No Updates for pyLoad")
 +                    return False +                else:
 +                    self.logger.info("New pyLoad Version %s available" % version_check)
 +                    return True
 +            else:
 +                return False +        finally: +            self.last_update_check = time.time()
 -    def check_update(self):
 -        """checks newst version"""
 -        if self.core.config['updates']['search_updates']:
 +    def install_update(self):
 +        if self.config['updates']['search_updates']:
              version_check = Request().load("http://update.pyload.org/index.php?do=dev%s&download=%s" % (CURRENT_VERSION, self.core.config['updates']['install_updates']))
              if version_check == "":
 -                self.core.logger.info("No Updates for pyLoad")
                  return False
              else:
 -                if self.core.config['updates']['install_updates']:
 +                if self.config['updates']['install_updates']:
                      try:
                          tmp_zip_name = __import__("tempfile").NamedTemporaryFile(suffix=".zip").name
 -                        tmp_zip = open(tmp_zip_name, 'w')
 +                        tmp_zip = open(tmp_zip_name, 'wb')
                          tmp_zip.write(version_check)
                          tmp_zip.close()
                          __import__("module.Unzip", globals(), locals(), "Unzip", -1).Unzip().extract(tmp_zip_name, "Test/")
                          return True
 -
                      except:
 -                        self.logger.core.info("Auto install Faild")
 +                        self.logger.info("Auto install Failed")
                          return False
 -
                  else:
 -                    self.core.logger.info("New pyLoad Version %s available" % version_check)
 -                    return True
 +                    return False
          else:
              return False
 +        
 +    ####################################
 +    ########## XMLRPC Methods ##########
 +    ####################################
 +
 +class ServerMethods():
 +    def __init__(self, core):
 +        self.core = core
      def status_downloads(self):
          downloads = []
 @@ -521,7 +535,10 @@ class ServerMethods():          return lines[offset:]      def stop_downloads(self): -        self.core.thread_list.stopAllDownloads()
 +        self.core.thread_list.stopAllDownloads() +     +    def update_available(self): +        return self.core.update_available
      #def move_urls_up(self, ids):
      #    for id in ids:
 diff --git a/pyLoadGui.py b/pyLoadGui.py index 0f76e6429..ea106c516 100755 --- a/pyLoadGui.py +++ b/pyLoadGui.py @@ -217,6 +217,9 @@ class main(QObject):          self.mainWindow.serverStatus.setText(text)      def refreshLog(self): +        """ +            update log window +        """          offset = self.mainWindow.tabs["log"]["text"].logOffset          lines = self.connector.getLog(offset)          if not lines: @@ -228,6 +231,16 @@ class main(QObject):          cursor.movePosition(QTextCursor.End, QTextCursor.MoveAnchor)          self.mainWindow.tabs["log"]["text"].setTextCursor(cursor) +    def updateAvailable(self): +        """ +            update notification +        """ +        status = self.connector.updateAvailable() +        if status: +            self.mainWindow.statusbar.emit(SIGNAL("showMsg"), "Update Available") +        else: +            self.mainWindow.statusbar.emit(SIGNAL("showMsg"), "") +          def getConnections(self):          """              parse all connections in the config file @@ -494,6 +507,7 @@ class main(QObject):              """              self.parent.refreshServerStatus()              self.parent.refreshLog() +            self.parent.updateAvailable()          def stop(self):              self.running = False | 
