User:Popcorndude/bacon
Jump to navigation
Jump to search
import pywikibot as pw wd = pw.Site('wikidata', 'wikidata').data_repository() do_list = ['Q3454165'] goal = 'Q720' def get_file(ip): return "scripts/my-scripts/Bacon/%s.txt" % divmod(int(ip.id[1:]), 1000)[0] def get_dict(ip): try: print get_file(ip) f = open(get_file(ip)) r = f.read() f.close() return eval(r) except: return {} class trick: def __init__(self, s): self.id = s def save_dict(d): f = open(get_file(trick(d.keys()[0])), 'w') f.write(str(d)) f.close() del d def update(ip, n, source, p): d = get_dict(ip) if ip.id not in d or d[ip.id][0] > n: d[ip.id] = [n, source, p] save_dict(d) do_list.append(ip.id) def do_ip(ip): ip.get() d = get_dict(ip) #print d try: n = d[ip.id][0] except: n = 0 d[ip.id] = [0, None, None] for p in ip.claims.keys(): for c in ip.claims[p]: if type(c.target) == type(ip): update(c.target, n + 1, ip.id, p) def goal_found(): return goal in get_dict(trick(goal)).keys() while not goal_found(): do_ip(pw.ItemPage(wd, do_list.pop(0)))