Jelajahi Sumber

Merge branch 'master' of ssh://gogs.davidventura.com.ar:443/david/irc-books

tati 10 tahun lalu
induk
melakukan
0fcee5e7aa
2 mengubah file dengan 20 tambahan dan 2 penghapusan
  1. 14 2
      bot.py
  2. 6 0
      qmanager.py

+ 14 - 2
bot.py

@@ -16,6 +16,7 @@ class IRCClient():
     IGNORE=["NOTICE","PART","QUIT", "332","333", "372", "353","366", "251", "252", "254", "255","265","266","396"]
     CHANNEL="#ebooks"
     STATUS=""
+    PROGRESS=0
     TYPE="SEARCH"
     OUTPUT=""
     buffer = []
@@ -65,6 +66,16 @@ class IRCClient():
         self.connected=False
         self.socket.close()
 
+    def do_timeout(self):
+        if not self.NOT_EXITED:
+            return
+        self.NOT_EXITED=False
+        self.log("Abort mission")
+        self.STATUS="TIMED OUT"
+        self.connect=False
+        self.socket.close()
+
+
     def handle_read(self):
         while self.NOT_EXITED:
             try:
@@ -165,7 +176,7 @@ class IRCClient():
     def list_books(self,f):
         f=open(f,"r")
         lines=f.readlines()
-        lines=[l.strip() for l in lines if self.EXTENSION in l.lower() ]
+        lines=[l.strip().replace('\r','') for l in lines if self.EXTENSION in l.lower() and l.startswith('!') ]
         for l in lines:
             self.log(l)
         return lines
@@ -186,7 +197,8 @@ class IRCClient():
             count+=len(data)
             f.write(data)
             perc=int(100*count/size)
-            self.STATUS="DOWNLOADING %d%%" % perc #progress
+            self.STATUS="DOWNLOADING" #% perc #progress
+            self.PROGRESS=perc
 
 #            sys.stdout.write("\r%s/%d" % (str(count).zfill(sizelen),size)) #progress
             if count >= size:

+ 6 - 0
qmanager.py

@@ -33,6 +33,7 @@ class qManager:
             elapsed= time()-t.START_TIME
             ret.append({"ID": t.ID,
                 "STATUS": t.get_status(),
+                "PROGRESS": t.get_progress(),
                 "OUT": t.get_output(),
                 "ELAPSED": int(elapsed),
                 "QUERY": t.QUERY,
@@ -54,9 +55,14 @@ class task:
         self.START_TIME=time()
         pass
 
+    def get_progress(self):
+        return self.CLIENT.PROGRESS;
+
     def get_extra(self):
         return self.CLIENT.EXTRA_OUTPUT;
     def get_status(self):
+       if time() - self.START_TIME > 600:
+           self.CLIENT.do_timeout()
        self.OUTPUT=self.CLIENT.OUTPUT
        return self.CLIENT.STATUS