#!/usr/bin/python # -*- coding: utf-8 -*- # #Copyright (C) 2009 sp00b, sebnapi # #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 . # ### #python from Queue import Queue #my from download_thread import Download_Thread class Thread_List(object): def __init__(self, parent): self.parent = parent self.threads = [] self.max_threads = 3 self.py_load_files = [] self.download_queue = Queue() self.status_queue = Queue() self.f_relation = [0,0] def create_thread(self): """ creates thread for Py_Load_File and append thread to self.threads """ if self.py_load_files: thread = Download_Thread(self) self.threads.append(thread) return True def get_loaded_urls(self): loaded_urls = [] for file in self.py_load_files: loaded_urls.append(file.url) return loaded_urls def remove_thread(self, thread): self.threads.remove(thread) def status(self): if not self.status_queue.empty(): while not self.status_queue.empty(): status = self.status_queue.get() self.py_load_files[status.id].status = status def extend_py_load_files(self): pass def select_thread(self): """ select a thread """ if len(self.threads) < self.max_threads: self.create_thread() def append_py_load_file(self, py_load_file): py_load_file.id = len(self.py_load_files) self.py_load_files.append(py_load_file) self.download_queue.put(py_load_file) self.f_relation[1] += 1 self.select_thread() def reconnect(): reconn = subprocess.Popen(reconnectMethod) reconn.wait() ip = re.match(".*Current IP Address: (.*).*", urllib2.urlopen("http://checkip.dyndns.org/").read()).group(1) #versuchen neue ip aus zu lesen while ip == "": #solange versuch bis neue ip ausgelesen ip = re.match(".*Current IP Address: (.*).*", urllib2.urlopen("http://checkip.dyndns.org/").read()).group(1) time.sleep(1) #print "Neue IP: " + ip