summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pyLoadCore.py30
-rw-r--r--pyLoadUpdater.py113
2 files changed, 129 insertions, 14 deletions
diff --git a/pyLoadCore.py b/pyLoadCore.py
index cc1eee920..2039eba9f 100644
--- a/pyLoadCore.py
+++ b/pyLoadCore.py
@@ -17,7 +17,7 @@
# along with this program; if not, see <http://www.gnu.org/licenses/>.
#
###
-CURRENT_VERSION = '0.1'
+CURRENT_VERSION = '0.0.5'
import ConfigParser
import gettext
@@ -62,7 +62,7 @@ class Core(object):
self.init_logger(logging.DEBUG) # logging level
- #self.check_update()
+ self.check_update()
self.logger.info(_("Downloadtime: %s") % self.is_dltime()) # debug only
@@ -118,16 +118,15 @@ class Core(object):
txt.write("")
txt.close()
- #def check_update(self):
- #"""checks newst version
- #"""
- #newst_version = urllib2.urlopen("http://pyload.nady.biz/files/version.txt").readline().strip()
- #if CURRENT_VERSION < newst_version:
- #self.logger.info(_("new update %s on pyload.org") % newst_version) #newer version out
- #elif CURRENT_VERSION == newst_version:
- #self.logger.info(_("newst version %s in use:") % CURRENT_VERSION) #using newst version
- #else:
- #self.logger.info(_("beta version %s in use:") % CURRENT_VERSION) #using beta version
+ def check_update(self):
+ """checks newst version
+ """
+ newst_version = urllib2.urlopen("http://pyloadupdate.appspot.com/", "version="+CURRENT_VERSION).readline()
+ if newst_version == "True":
+ self.logger.info("New version available, please run Updater")
+ else:
+ self.logger.info("pyLoad is up-to-date")
+
def check_create(self, check_name, legend, folder=True):
if not exists(check_name):
@@ -223,7 +222,9 @@ class Core(object):
self._test_print_status()
self.server_test()
sleep(2)
- if self.do_kill: exit()
+ if self.do_kill:
+ self.logger.info("pyLoad quits")
+ exit()
def server_test(self):
obj = RequestObject()
@@ -244,6 +245,7 @@ class Core(object):
def kill(self):
self.do_kill = True
+ self.logger.info("Going to kill pyLoad")
exit()
return True
@@ -256,7 +258,7 @@ class Core(object):
while self.thread_list.py_downloading:
sleep(1)
-
+ self.logger.info("Going to shutdown pyLoad")
exit()
def add_links(self, links):
diff --git a/pyLoadUpdater.py b/pyLoadUpdater.py
new file mode 100644
index 000000000..69575da8a
--- /dev/null
+++ b/pyLoadUpdater.py
@@ -0,0 +1,113 @@
+import urllib
+import urllib2
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+#
+#Copyright (C) 2009 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/>.
+#
+###
+
+
+## read version from core
+import re
+import zipfile
+import os
+
+class Unzip:
+ def __init__(self):
+ pass
+
+ def extract(self, file, dir):
+ if not dir.endswith(':') and not os.path.exists(dir):
+ os.mkdir(dir)
+
+ zf = zipfile.ZipFile(file)
+
+ # create directory structure to house files
+ self._createstructure(file, dir)
+
+ # extract files to directory structure
+ for i, name in enumerate(zf.namelist()):
+
+ if not name.endswith('/') and not name.endswith("config"):
+ print "extracting", name.replace("pyload/","")
+ outfile = open(os.path.join(dir, name.replace("pyload/","")), 'wb')
+ outfile.write(zf.read(name))
+ outfile.flush()
+ outfile.close()
+
+
+ def _createstructure(self, file, dir):
+ self._makedirs(self._listdirs(file), dir)
+
+ def _makedirs(self, directories, basedir):
+ """ Create any directories that don't currently exist """
+ for dir in directories:
+ curdir = os.path.join(basedir, dir)
+ if not os.path.exists(curdir):
+ os.mkdir(curdir)
+
+ def _listdirs(self, file):
+ """ Grabs all the directories in the zip structure
+ This is necessary to create the structure before trying
+ to extract the file to it. """
+ zf = zipfile.ZipFile(file)
+
+ dirs = []
+
+ for name in zf.namelist():
+ if name.endswith('/'):
+ dirs.append(name.replace("pyload/",""))
+
+ dirs.sort()
+ return dirs
+
+
+def main():
+ print "Updating pyLoad"
+
+ try:
+ f = open("pyLoadCore.py", "rb")
+ version = re.search(r"CURRENT_VERSION = '([0-9.]+)'",f.read()).group(1)
+ f.close()
+ except:
+ version = "0.0.0"
+
+
+ print "Your version:", version
+
+ req = urllib2.urlopen("http://pyloadupdate.appspot.com/", "version="+version)
+ result = req.readline()
+
+ if result == "False":
+ print "pyLoad is up-to-date, nothing to do."
+ return False
+
+ req = urllib2.urlopen("http://pyloadupdate.appspot.com/")
+ result = req.readline()
+ print "Newest Version:", result
+ print "Download new Version"
+
+ urllib.urlretrieve("http://pyloadupdate.appspot.com/download", "lastest_version.zip")
+
+ u = Unzip()
+ u.extract("lastest_version.zip",".")
+
+
+
+
+if __name__ == "__main__":
+ main() \ No newline at end of file