User:Popcorndude/botcode3

import pywikibot
from pywikibot.pagegenerators import SubCategoriesPageGenerator
try:
    from skip import skip_list #list of items to skip
except:
    skip_list = []
site = pywikibot.Site("en", "wikipedia")
repo = pywikibot.Site("wikidata", "wikidata").data_repository()
claim = pywikibot.Claim(repo, u'P31')
target = pywikibot.ItemPage(repo, u"Q4167410")
claim.setTarget(target)
lang_descs = target.get()['labels']
for page in CategorizedPageGenerator(pywikibot.Category(site,"All_disambiguation_pages"), recurse=False, start=None, step=None, total=None, content=False):
    try:
        item = pywikibot.ItemPage.fromPage(page)
        if item.getID() in skip_list: continue
        dictionary = item.get()
        descs = dictionary['descriptions']
        results = {}
        kl = list(set(lang_descs.keys()).difference(set(descs.keys())))
        if not kl: continue
        if 'P31' not in item.claims:
            item.addClaim(claim)
        if len(item.claims['P31']) > 1:
            print item.getID()
        else:
            for lang in lang_descs.keys():
                if lang not in descs.keys() or descs[lang] == u'':
                    #or lang_descs[lang] != descs[lang]: #maybe correct descriptions
                    results[lang] = lang_descs[lang]
            item.editDescriptions(results, summary="adding descriptions")
        del item
    except:
        print page