From 69746896671494ab0169ac74fc316b5fce02cd95 Mon Sep 17 00:00:00 2001 From: RaNaN Date: Sat, 2 Jan 2010 12:42:53 +0100 Subject: new cli functions --- pyLoadCore.py | 246 +++++++++++++++++++++++++++++----------------------------- 1 file changed, 123 insertions(+), 123 deletions(-) (limited to 'pyLoadCore.py') diff --git a/pyLoadCore.py b/pyLoadCore.py index 4ca81efed..bdf4e1e40 100755 --- a/pyLoadCore.py +++ b/pyLoadCore.py @@ -35,30 +35,30 @@ from os.path import basename from os.path import abspath from os.path import dirname from os.path import exists -from os.path import join +from os.path import join from os import execv from re import sub import subprocess from sys import argv from sys import exit from sys import path -from sys import stdout +from sys import stdout from sys import executable import thread import time -from time import sleep -from shutil import copyfile +from time import sleep +from shutil import copyfile from tempfile import NamedTemporaryFile from module.network.Request import Request import module.remote.SecureXMLRPCServer as Server -from module.XMLConfigParser import XMLConfigParser +from module.XMLConfigParser import XMLConfigParser from module.file_list import File_List from module.thread_list import Thread_List from module.web.ServerThread import WebServer -from module.CaptchaManager import CaptchaManager - +from module.CaptchaManager import CaptchaManager + from xmlrpclib import Binary class Core(object): @@ -113,8 +113,8 @@ class Core(object): if self.config['ssl']['activated']: self.check_install("OpenSSL", "OpenSSL for secure connection", True) self.check_file(self.config['ssl']['cert'], _("ssl certificate"), False, True) - self.check_file(self.config['ssl']['key'], _("ssl key"), False, True) - + self.check_file(self.config['ssl']['key'], _("ssl key"), False, True) + self.downloadSpeedLimit = int(self.xmlconfig.get("general", "download_speed_limit", 0)) if self.config['general']['debug_mode']: @@ -125,15 +125,15 @@ class Core(object): self.init_scripts() path.append(self.plugin_folder) self.create_plugin_index() - - self.lastGuiConnected = 0 + + self.lastGuiConnected = 0 self.server_methods = ServerMethods(self) self.file_list = File_List(self) - self.thread_list = Thread_List(self) + self.thread_list = Thread_List(self) self.captchaManager = CaptchaManager(self) - - self.last_update_check = 0 + + self.last_update_check = 0 self.update_check_interval = 1800 self.update_available = self.check_update() @@ -159,19 +159,19 @@ class Core(object): pid = found lid = self.file_list.collector.addLink(linkFile) self.file_list.packager.addFileToPackage(pid, self.file_list.collector.popFile(lid)) - self.file_list.packager.pushPackage2Queue(pid) - + self.file_list.packager.pushPackage2Queue(pid) + self.file_list.continueAborted() while True: sleep(2) - if self.do_restart: - self.logger.info("restarting pyLoad") + if self.do_restart: + self.logger.info("restarting pyLoad") self.restart() - if self.do_kill: + 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() @@ -196,10 +196,10 @@ class Core(object): traceback.print_exc() - def init_webserver(self): - pyloadDBFile = join(self.path, "module", "web", "pyload.db") - pyloadDefaultDBFile = join(self.path, "module", "web", "pyload_default.db") - if not exists(pyloadDBFile): + def init_webserver(self): + pyloadDBFile = join(self.path, "module", "web", "pyload.db") + pyloadDefaultDBFile = join(self.path, "module", "web", "pyload_default.db") + if not exists(pyloadDBFile): copyfile(pyloadDefaultDBFile, pyloadDBFile) if self.config['webinterface']['activated']: self.webserver = WebServer(self) @@ -280,12 +280,12 @@ class Core(object): print _("could not create %s: %s") % (description, tmp_name) if essential: exit() - - def isGUIConnected(self): - return self.lastGuiConnected+10 > time.time() + + def isGUIConnected(self): + return self.lastGuiConnected+10 > time.time() def restart(self): - self.shutdown() + self.shutdown() execv(executable, [executable, "pyLoadCore.py"]) #~ def update(self, file_update=None): @@ -298,10 +298,10 @@ class Core(object): #~ except: #~ self.logger.info("Error on updating pyLoad") - def create_plugin_index(self): - plugins = glob(join(self.plugin_folder, "hoster", "*.py")) - plugins += glob(join(self.plugin_folder, "decrypter", "*.py")) - plugins += glob(join(self.plugin_folder, "container", "*.py")) + def create_plugin_index(self): + plugins = glob(join(self.plugin_folder, "hoster", "*.py")) + plugins += glob(join(self.plugin_folder, "decrypter", "*.py")) + plugins += glob(join(self.plugin_folder, "container", "*.py")) plugins += glob(join(self.plugin_folder, "container", "DLC.pyc")) for file_handler in plugins: plugin_pattern = "" @@ -325,36 +325,36 @@ class Core(object): if start < now and end > now: return True elif start > end and (now > start or now < end): return True elif start < now and end < now and start > end: return True - else: return False - - def getMaxSpeed(self): - return self.downloadSpeedLimit - - def shutdown(self): + else: return False + + def getMaxSpeed(self): + return self.downloadSpeedLimit + + def shutdown(self): self.logger.info("shutting down...") - if self.config['webinterface']['activated']: + if self.config['webinterface']['activated']: self.webserver.quit() - self.webserver.join() - for thread in self.thread_list.threads: - thread.shutdown = True - self.thread_list.stopAllDownloads() - for thread in self.thread_list.threads: - thread.join(15) + self.webserver.join() + for thread in self.thread_list.threads: + thread.shutdown = True + self.thread_list.stopAllDownloads() + for thread in self.thread_list.threads: + thread.join(15) self.file_list.save() - def check_update(self): + 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 + return False else: self.logger.info("New pyLoad Version %s available" % version_check) return True else: - return False - finally: + return False + finally: self.last_update_check = time.time() def install_update(self): @@ -420,7 +420,7 @@ class ServerMethods(): if self.core.thread_list.pause: self.core.thread_list.pause = False else: - self.core.thread_list.pause = True + self.core.thread_list.pause = True return self.core.thread_list.pause def status_server(self): @@ -443,8 +443,8 @@ class ServerMethods(): return CURRENT_VERSION def add_urls(self, links): - for link in links: - link = link.strip() + for link in links: + link = link.strip() if link.startswith("http") or exists(link): self.core.file_list.collector.addLink(link) self.core.file_list.save() @@ -519,77 +519,77 @@ class ServerMethods(): self.core.file_list.collector.removeFile(fid) def push_package_2_queue(self, id): - self.core.file_list.packager.pushPackage2Queue(id) - - def restart_package(self, packid): - for id in self.core.file_list.packager.getPackageFiles(packid): - self.core.file_list.packager.resetFileStatus(id) - - def restart_file(self, 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.core.file_list.packager.pushPackage2Queue(id) + + def restart_package(self, packid): + for id in self.core.file_list.packager.getPackageFiles(packid): + self.core.file_list.packager.resetFileStatus(id) + + def restart_file(self, 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 get_log(self, offset=0): - filename = self.core.config['log']['log_folder'] + sep + 'log.txt' - fh = open(filename, "r") - content = fh.read() - fh.close() - lines = content.splitlines() - if offset >= len(lines): - return None - return lines[offset:] - - def stop_downloads(self): - self.core.thread_list.stopAllDownloads() - - def stop_download(self, type, id): - if type == "pack": - ids = self.core.file_list.getPackageFiles(id) - for fid in ids: - self.core.file_list.packager.abortFile(fid) - else: - self.core.file_list.packager.abortFile(id) - - def update_available(self): - return self.core.update_available - - def set_package_name(self, pid, name): - self.core.file_list.packager.setPackageData(pid, package_name=name) - - def pull_out_package(self, pid): - self.core.file_list.packager.pullOutPackage(pid) - - def is_captcha_waiting(self): - self.core.lastGuiConnected = time.time() - task = self.core.captchaManager.getTask() - return not task == None - - def get_captcha_task(self): - task = self.core.captchaManager.getTask() - if task: - task.setWatingForUser() - c = task.getCaptcha() - return str(task.getID()), Binary(c[0]), str(c[1]) - else: - return None, None, None - - def set_captcha_result(self, tid, result): - task = self.core.captchaManager.getTaskFromID(tid) - if task: - task.setResult(result) - task.setDone() - return True - else: - return False + self.core.file_list.save() + + def get_log(self, offset=0): + filename = self.core.config['log']['log_folder'] + sep + 'log.txt' + fh = open(filename, "r") + content = fh.read() + fh.close() + lines = content.splitlines() + if offset >= len(lines): + return None + return lines[offset:] + + def stop_downloads(self): + self.core.thread_list.stopAllDownloads() + + def stop_download(self, type, id): + if type == "pack": + ids = self.core.file_list.getPackageFiles(id) + for fid in ids: + self.core.file_list.packager.abortFile(fid) + else: + self.core.file_list.packager.abortFile(id) + + def update_available(self): + return self.core.update_available + + def set_package_name(self, pid, name): + self.core.file_list.packager.setPackageData(pid, package_name=name) + + def pull_out_package(self, pid): + self.core.file_list.packager.pullOutPackage(pid) + + def is_captcha_waiting(self): + self.core.lastGuiConnected = time.time() + task = self.core.captchaManager.getTask() + return not task == None + + def get_captcha_task(self): + task = self.core.captchaManager.getTask() + if task: + task.setWatingForUser() + c = task.getCaptcha() + return str(task.getID()), Binary(c[0]), str(c[1]) + else: + return None, None, None + + def set_captcha_result(self, tid, result): + task = self.core.captchaManager.getTaskFromID(tid) + if task: + task.setResult(result) + task.setDone() + return True + else: + return False #def move_urls_up(self, ids): # for id in ids: @@ -615,7 +615,7 @@ if __name__ == "__main__": pyload_core = Core() try: pyload_core.start() - except KeyboardInterrupt: + except KeyboardInterrupt: pyload_core.shutdown() pyload_core.logger.info("killed pyLoad from Terminal") exit() -- cgit v1.2.3