chiark / gitweb /
Limit yoweb-scrape backlog parsing to 500K
[ypp-sc-tools.web-test.git] / yoweb-scrape
index b43e5a2ea728379e9d2fea85243b415fd3e23bb3..10cc734e2df672057d13952e63d00c721230b2e1 100755 (executable)
@@ -502,9 +502,15 @@ class ChatLogTracker:
                                # self._v = self._vl[self._vessel]
                self._date = None
                self._myself = myself_pi
-               self._f = file(logfn)
                self._lbuf = ''
-               self._progress = [0, os.fstat(self._f.fileno()).st_size]
+               self._f = file(logfn)
+               flen = os.fstat(self._f.fileno()).st_size
+               max_backlog = 500000
+               if flen > max_backlog:
+                       startpos = flen - max_backlog
+                       self._f.seek(startpos)
+                       self._f.readline()
+               self._progress = [0, flen - self._f.tell()]
                self._disembark_myself()
                self._need_redisplay = False
                self._lastvessel = None
@@ -974,7 +980,7 @@ def do_track_chat_log(args, bu):
                track.catchup()
                if track.changed():
                        print track
-               sleep(1)
+               sleep(0.5 + 0.5 * random.random())
 
 #----- ship management aid -----