User:Conrad.Bot/iso-upload.py

From Wiktionary, the free dictionary
Jump to navigation Jump to search

wikimedia is a file containing my login details for mwclient, just returns en.wikt logged in as Conrad.Bot.

import codecs
import wikimedia

import time
import sys

wikt = wikimedia.mwclient_bot()

stop = []

for line in codecs.open('/0/wt/iso_stop.tab', 'r', 'utf-8').readlines():
    stop.append(line.split('\t')[0])

for line in codecs.open('/0/wt/iso-639-3.tab','r','utf-8').readlines():
    try:
        code, name, rname = (x.strip() for x in line.split("\t"))
        if code <= "gdu":
            continue

        if "(" in name:
            print "HRM: Ignoring [[Template:%s]] with bracketed: %s" % (code, name.encode('utf-8'))
            sys.stdout.flush()

        if code in stop:
            print "HRM: Ignoring [[Template:%s]] (%s) code in stop list: %s" % (code, name.encode('utf-8'))
            sys.stdout.flush()

        page = wikt.Pages[u'Template:%s' % code]

        text = page.edit()

        ideal = u"{{{l|[}}}{{{l|[}}}%s{{{l|]]}}}<noinclude>[[Category:Language templates|%s]]</noinclude>" % (name, code)
        alright = u"%s<noinclude>[[Category:Language templates|%s]]</noinclude>" % (name,code)

        if text:
            if not (text == ideal or text == alright):
                print "HRM: * [[Template:%s]] %s: %s\n----" % (code, name, text)
            else:
                print "* %s" % code
            sys.stdout.flush()
        else:
            print "* [[Template:%s]]" % code
            sys.stdout.flush()
            page.save(ideal, u"(test) Creating language template for %s from http://www.sil.org/iso639-3/" % name)
            time.sleep(30)


    except Exception, e:
        print "Error: %s" % line.encode('utf-8')