iOptimize savehostscache. - eomyidae - a gopher crawler software Err bitreich.org 70
hgit clone git://bitreich.org/eomyidae URL:git://bitreich.org/eomyidae bitreich.org 70
1Log /scm/eomyidae/log.gph bitreich.org 70
1Files /scm/eomyidae/files.gph bitreich.org 70
1Refs /scm/eomyidae/refs.gph bitreich.org 70
1Tags /scm/eomyidae/tag bitreich.org 70
1README /scm/eomyidae/file/README.md.gph bitreich.org 70
1LICENSE /scm/eomyidae/file/LICENSE.gph bitreich.org 70
i--- Err bitreich.org 70
1commit 29cd7839e600acdd21378256d73b4703f799f04a /scm/eomyidae/commit/29cd7839e600acdd21378256d73b4703f799f04a.gph bitreich.org 70
1parent 0dac4a637d7e25983b563286bb0539d53ddf8d3e /scm/eomyidae/commit/0dac4a637d7e25983b563286bb0539d53ddf8d3e.gph bitreich.org 70
hAuthor: Christoph Lohmann <20h@r-36.net> URL:mailto:20h@r-36.net bitreich.org 70
iDate: Mon, 12 Aug 2019 11:48:12 +0200 Err bitreich.org 70
i Err bitreich.org 70
iOptimize savehostscache. Err bitreich.org 70
i Err bitreich.org 70
iDiffstat: Err bitreich.org 70
i M eomyidae | 49 ++++++++++++++++++++----------- Err bitreich.org 70
i Err bitreich.org 70
i1 file changed, 32 insertions(+), 17 deletions(-) Err bitreich.org 70
i--- Err bitreich.org 70
1diff --git a/eomyidae b/eomyidae /scm/eomyidae/file/eomyidae.gph bitreich.org 70
i@@ -429,6 +429,8 @@ def main(args): Err bitreich.org 70
i starturi = largs[0] Err bitreich.org 70
i Err bitreich.org 70
i knownuris = loadlistdb("knownuris.pickle") Err bitreich.org 70
i+ if knownuris == []: Err bitreich.org 70
i+ knownuris = {} Err bitreich.org 70
i lastlenknownuris = len(knownuris) Err bitreich.org 70
i Err bitreich.org 70
i def isblocked(uri): Err bitreich.org 70
i@@ -449,38 +451,43 @@ def main(args): Err bitreich.org 70
i if hostscount[host] <= 0: Err bitreich.org 70
i del hostscount[host] Err bitreich.org 70
i Err bitreich.org 70
i- def addhostscache(host, uri, port=70): Err bitreich.org 70
i+ def addhostscache(uri, host=None, port=70, selector="/"): Err bitreich.org 70
i+ if uri != None and host == None: Err bitreich.org 70
i+ (host, port, mtype, selector) = parseuri(uri) Err bitreich.org 70
i+ port = int(port) Err bitreich.org 70
i+ else: Err bitreich.org 70
i+ try: Err bitreich.org 70
i+ port = int(port) Err bitreich.org 70
i+ except ValueError: Err bitreich.org 70
i+ return Err bitreich.org 70
i+ Err bitreich.org 70
i if uri in knownuris: Err bitreich.org 70
i- #print("ignored for queue: %s" % (uri)) Err bitreich.org 70
i+ print("ignored for queue: %s" % (uri)) Err bitreich.org 70
i return Err bitreich.org 70
i if host == "": Err bitreich.org 70
i- #print("ignored for queue: %s" % (uri)) Err bitreich.org 70
i+ print("ignored for queue: %s" % (uri)) Err bitreich.org 70
i return Err bitreich.org 70
i if isblocked(uri): Err bitreich.org 70
i print("blocked by filters: %s" % (uri)) Err bitreich.org 70
i return Err bitreich.org 70
i Err bitreich.org 70
i- try: Err bitreich.org 70
i- port = int(port) Err bitreich.org 70
i- except ValueError: Err bitreich.org 70
i- return Err bitreich.org 70
i- Err bitreich.org 70
i addhostscount(host) Err bitreich.org 70
i Err bitreich.org 70
i+ if not host in hostscache: Err bitreich.org 70
i+ hostscache[host] = {} Err bitreich.org 70
i+ if not "queue" in hostscache[host]: Err bitreich.org 70
i+ hostscache[host]["queue"] = {} Err bitreich.org 70
i+ Err bitreich.org 70
i filterrules = cacherobots(cachedir, uri, \ Err bitreich.org 70
i host=host, \ Err bitreich.org 70
i port=port, \ Err bitreich.org 70
i filtercache=robotscache) Err bitreich.org 70
i if selectorisallowed(filterrules, selector) == True: Err bitreich.org 70
i- if not host in hostscache: Err bitreich.org 70
i- hostscache[host] = {} Err bitreich.org 70
i- if not "queue" in hostscache[host]: Err bitreich.org 70
i- hostscache[host]["queue"] = {} Err bitreich.org 70
i hostscache[host]["queue"][uri] = None Err bitreich.org 70
i- #print("pushed to queue: %s" % (uri)) Err bitreich.org 70
i+ print("pushed to queue: %s" % (uri)) Err bitreich.org 70
i else: Err bitreich.org 70
i pass Err bitreich.org 70
i- #print("blocked by robots: %s" % (uri)) Err bitreich.org 70
i+ print("blocked by robots: %s" % (uri)) Err bitreich.org 70
i Err bitreich.org 70
i def getqueuelen(): Err bitreich.org 70
i queuelen = 0 Err bitreich.org 70
i@@ -518,9 +525,13 @@ def main(args): Err bitreich.org 70
i Err bitreich.org 70
i jobs = [] Err bitreich.org 70
i if starturi != None: Err bitreich.org 70
i+ #print("starturi = %s" % (starturi)) Err bitreich.org 70
i if not isblocked(starturi): Err bitreich.org 70
i (starthost, startport, startmtype, startselector) = parseuri(starturi) Err bitreich.org 70
i- addhostscache(hostscache, starthost, starturi) Err bitreich.org 70
i+ addhostscache(starturi, \ Err bitreich.org 70
i+ selector=startselector, \ Err bitreich.org 70
i+ host=starthost, \ Err bitreich.org 70
i+ port=startport) Err bitreich.org 70
i try: Err bitreich.org 70
i jobs.append([starturi, starthost, int(startport), startselector]) Err bitreich.org 70
i except ValueError: Err bitreich.org 70
i@@ -564,7 +575,9 @@ def main(args): Err bitreich.org 70
i if isblocked(jobitem[0]): Err bitreich.org 70
i continue Err bitreich.org 70
i (host, port, mtype, selector) = parseuri(jobitem[0]) Err bitreich.org 70
i- jobs.append([jobitem[0], host, port, selector]) Err bitreich.org 70
i+ job = [jobitem[0], host, port, selector] Err bitreich.org 70
i+ if job not in jobs: Err bitreich.org 70
i+ jobs.append([jobitem[0], host, port, selector]) Err bitreich.org 70
i hostjobs[selhost] -= 1 Err bitreich.org 70
i Err bitreich.org 70
i print("Getting %d jobs." % (len(jobs))) Err bitreich.org 70
i@@ -591,7 +604,9 @@ def main(args): Err bitreich.org 70
i guri = "gopher://%s:%s/%s%s" % \ Err bitreich.org 70
i (mi[3], mi[4], mi[0], mi[2]) Err bitreich.org 70
i Err bitreich.org 70
i- addhostscache(mi[3], guri, port=mi[4]) Err bitreich.org 70
i+ addhostscache(guri, host=mi[3], \ Err bitreich.org 70
i+ port=mi[4], \ Err bitreich.org 70
i+ selector=mi[2]) Err bitreich.org 70
i Err bitreich.org 70
i print("Uri %s done." % (cururi)) Err bitreich.org 70
i knownuris[cururi] = None Err bitreich.org 70
.
Response:
text/plain