예제 #1
0
def writeKeywords(filename, dDict):
    '''
    output keywords in Commons format
    '''
    # set-up
    header = u'{{user:Lokal Profil/LSH2|category=}}\n'
    row = u'{{User:Lokal Profil/LSH3\n' \
        u'|name      = %s\n' \
        u'|more      = %s\n' \
        u'|frequency = %d\n' \
        u'|category  = %s\n' \
        u'}}\n'
    footer = u'|}\n'
    intro = u'<!--From: %s -->\n' % CSV_FILES[u'stichwort'] \
        + u'Set commonsconnection of irrelevant keywords to "-"\n\n' \
        + u'Multiple categories are separated by "/"\n' \
        + u'===Keyword|frequency|description|commonsconnection===\n'
    # output
    once = True
    f = codecs.open(filename, 'w', 'utf8')
    f.write(intro)
    f.write(header)
    for key, val in helpers.sortedBy(dDict):
        if once and val[u'freq'] == 0:
            once = False
            f.write(footer)
            f.write(u'\n===Preserved mappings===\n')
            f.write(header)
        f.write(row % (key, '/'.join(val[u'descr']), val[u'freq'], '/'.join(
            val[u'cat'])))
    f.write(footer)
    f.write(u'\n\n[[%s]]' % LIST_CAT)
    f.close()
    output(u'Created %s' % filename)
예제 #2
0
def writeMaterials(filename, dDict):
    '''
    output materials in Commons format
    '''
    # set-up
    header = u'{{user:Lokal Profil/LSH2|name=Technique/material|technique=}}\n'
    row = u'{{User:Lokal Profil/LSH3\n' \
        + u'|name      = %s\n' \
        + u'|frequency = %d\n' \
        + u'|technique = %s\n' \
        + u'}}\n'
    footer = u'|}\n'
    intro = u'<!--From: %s -->\n' % CSV_FILES[u'objMultiple'] \
        + u'commonsconnection is the relevant parameter for ' \
        + u'{{tl|technique}}. Don\'t forget to add a translation in ' \
        + u'Swedish at [[Template:Technique/sv]]\n\n' \
        + u'Set commonsconnection of irrelevant technique/material ' \
        + u'to "-".\n\n' \
        + u'===technique/material|frequency|commonsconnection===\n'
    # output
    once = True
    f = codecs.open(filename, 'w', 'utf8')
    f.write(intro)
    f.write(header)
    for key, val in helpers.sortedBy(dDict):
        if once and val[u'freq'] == 0:
            once = False
            f.write(footer)
            f.write(u'\n===Preserved mappings===\n')
            f.write(header)
        f.write(row % (key, val[u'freq'], '/'.join(val[u'connect'])))
    f.write(footer)
    f.write(u'\n\n[[%s]]' % LIST_CAT)
    f.close()
    output(u'Created %s' % filename)
예제 #3
0
def writePhotographers(filename, dDict):
    '''
    output photographers in Commons format
    '''
    # set-up
    header = u'{{user:Lokal Profil/LSH2|name=Photographer|' \
        u'creator=|category=}}\n'
    row = u'{{User:Lokal Profil/LSH3\n' \
        u'|name      = %s\n' \
        u'|frequency = %d\n' \
        u'|creator   = %s\n' \
        u'|category  = %s\n' \
        u'}}\n'
    footer = u'|}\n'
    intro = u'<!--From: %s -->\n\n' % CSV_FILES[u'photo'] \
        + u'===Photographers===\n'
    # output
    once = True
    f = codecs.open(filename, 'w', 'utf8')
    f.write(intro)
    f.write(header)
    for key, val in helpers.sortedBy(dDict):
        if once and val[u'freq'] == 0:
            once = False
            f.write(footer)
            f.write(u'\n===Preserved mappings===\n')
            f.write(header)
        f.write(row % (key, val[u'freq'], val[u'creator'], val[u'cat']))
    f.write(footer)
    f.write(u'\n\n[[%s]]' % LIST_CAT)
    f.close()
    output(u'Created %s' % filename)
예제 #4
0
def writeKeywords(filename, dDict):
    '''
    output keywords in Commons format
    '''
    # set-up
    header = u'{{user:Lokal Profil/LSH2|category=}}\n'
    row = u'{{User:Lokal Profil/LSH3\n' \
        u'|name      = %s\n' \
        u'|more      = %s\n' \
        u'|frequency = %d\n' \
        u'|category  = %s\n' \
        u'}}\n'
    footer = u'|}\n'
    intro = u'<!--From: %s -->\n' % CSV_FILES[u'stichwort'] \
        + u'Set commonsconnection of irrelevant keywords to "-"\n\n' \
        + u'Multiple categories are separated by "/"\n' \
        + u'===Keyword|frequency|description|commonsconnection===\n'
    # output
    once = True
    f = codecs.open(filename, 'w', 'utf8')
    f.write(intro)
    f.write(header)
    for key, val in helpers.sortedBy(dDict):
        if once and val[u'freq'] == 0:
            once = False
            f.write(footer)
            f.write(u'\n===Preserved mappings===\n')
            f.write(header)
        f.write(row % (key, '/'.join(val[u'descr']),
                       val[u'freq'], '/'.join(val[u'cat'])))
    f.write(footer)
    f.write(u'\n\n[[%s]]' % LIST_CAT)
    f.close()
    output(u'Created %s' % filename)
예제 #5
0
def writePhotographers(filename, dDict):
    '''
    output photographers in Commons format
    '''
    # set-up
    header = u'{{user:Lokal Profil/LSH2|name=Photographer|' \
        u'creator=|category=}}\n'
    row = u'{{User:Lokal Profil/LSH3\n' \
        u'|name      = %s\n' \
        u'|frequency = %d\n' \
        u'|creator   = %s\n' \
        u'|category  = %s\n' \
        u'}}\n'
    footer = u'|}\n'
    intro = u'<!--From: %s -->\n\n' % CSV_FILES[u'photo'] \
        + u'===Photographers===\n'
    # output
    once = True
    f = codecs.open(filename, 'w', 'utf8')
    f.write(intro)
    f.write(header)
    for key, val in helpers.sortedBy(dDict):
        if once and val[u'freq'] == 0:
            once = False
            f.write(footer)
            f.write(u'\n===Preserved mappings===\n')
            f.write(header)
        f.write(row % (key, val[u'freq'], val[u'creator'], val[u'cat']))
    f.write(footer)
    f.write(u'\n\n[[%s]]' % LIST_CAT)
    f.close()
    output(u'Created %s' % filename)
예제 #6
0
def writeMaterials(filename, dDict):
    '''
    output materials in Commons format
    '''
    # set-up
    header = u'{{user:Lokal Profil/LSH2|name=Technique/material|technique=}}\n'
    row = u'{{User:Lokal Profil/LSH3\n' \
        + u'|name      = %s\n' \
        + u'|frequency = %d\n' \
        + u'|technique = %s\n' \
        + u'}}\n'
    footer = u'|}\n'
    intro = u'<!--From: %s -->\n' % CSV_FILES[u'objMultiple'] \
        + u'commonsconnection is the relevant parameter for ' \
        + u'{{tl|technique}}. Don\'t forget to add a translation in ' \
        + u'Swedish at [[Template:Technique/sv]]\n\n' \
        + u'Set commonsconnection of irrelevant technique/material ' \
        + u'to "-".\n\n' \
        + u'===technique/material|frequency|commonsconnection===\n'
    # output
    once = True
    f = codecs.open(filename, 'w', 'utf8')
    f.write(intro)
    f.write(header)
    for key, val in helpers.sortedBy(dDict):
        if once and val[u'freq'] == 0:
            once = False
            f.write(footer)
            f.write(u'\n===Preserved mappings===\n')
            f.write(header)
        f.write(row % (key, val[u'freq'], '/'.join(val[u'connect'])))
    f.write(footer)
    f.write(u'\n\n[[%s]]' % LIST_CAT)
    f.close()
    output(u'Created %s' % filename)
예제 #7
0
def writePlaces(filename, exhibitPlaces, landDict, ortDict, emptyPlaces):
    '''
    output Places in Commons format
    '''
    # set-up
    header = u'{{user:Lokal Profil/LSH2|name=Place|' \
        u'other=Commons connection}}\n'
    row = u'{{User:Lokal Profil/LSH3\n' \
        u'|name      = %s\n' \
        u'|frequency = %d\n' \
        u'|other     = %s\n' \
        u'}}\n'
    footer = u'|}\n'
    intro = u'<!--From: %s - col: ausOrt-->\n' % CSV_FILES[u'ausstellung'] \
        + u'<!--From: %s for OmuTypS = Tillverkningsland -->\n' % CSV_FILES[u'objMultiple'] \
        + u'<!--From: %s for OmuTypS = Tillverkningsort-->\n' % CSV_FILES[u'objMultiple'] \
        + u'The preffered order of making connections are: Institution, page, category' \
        + u'(where the category is prefixed by a ":").\n\n' \
        + u'Set commonsconnection of irrelevant places to "-"\n\n' \
        + u'===Place|Frequency|Commonsconnection===\n'
    # output
    f = codecs.open(filename, 'w', 'utf8')
    f.write(intro)
    f.write(u'\n====exhibit places====\n')
    f.write(header)
    for key, val in helpers.sortedBy(exhibitPlaces):
        f.write(row % (key, val[u'freq'], val[u'connect']))
    f.write(footer)
    f.write(u'\n====origin-Countries====\n')
    f.write(header)
    for key, val in helpers.sortedBy(landDict):
        f.write(row % (key, val[u'freq'], val[u'connect']))
    f.write(footer)
    f.write(u'\n====origin-cities====\n')
    f.write(header)
    for key, val in helpers.sortedBy(ortDict):
        f.write(row % (key, val[u'freq'], val[u'connect']))
    f.write(footer)
    f.write(u'\n====Preserved mappings====\n')
    f.write(header)
    for key, val in helpers.sortedBy(emptyPlaces):
        f.write(row % (key, val[u'freq'], val[u'connect']))
    f.write(footer)
    f.write(u'\n\n[[%s]]' % LIST_CAT)
    f.close()
    output(u'Created %s' % filename)
예제 #8
0
def writeObjKeywords(filename, ord1Dict, ord2Dict, gruppDict, emptyObjCats):
    '''
    output ObjKeywords in Commons format
    '''
    # set-up
    header = u'{{user:Lokal Profil/LSH2|category=}}\n'
    row = u'{{User:Lokal Profil/LSH3\n' \
        u'|name      = %s\n' \
        u'|frequency = %d\n' \
        u'|category  = %s\n' \
        u'}}\n'
    footer = u'|}\n'
    intro = u'<!--From: %s -->\n' % CSV_FILES[u'objDaten'] \
        + u'These are the keywords used to describe the objects ' \
        + u'themselves. Classification is used for all items whereas ' \
        + u'group is only used at HWY.\n\n' \
        + u'when possible ord1 will be used instead of the more ' \
        + u'generic ord2.\n\n' \
        + u'Multiple categories are separated by a "/"\n' \
        + u'===Keyword|frequency|commonscategory===\n'
    # output
    f = codecs.open(filename, 'w', 'utf8')
    f.write(intro)
    f.write(u'\n====class: ord1====\n')
    f.write(header)
    for key, val in helpers.sortedBy(ord1Dict):
        f.write(row % (key, val[u'freq'], '/'.join(val[u'connect'])))
    f.write(footer)
    f.write(u'\n====class: ord2====\n')
    f.write(header)
    for key, val in helpers.sortedBy(ord2Dict):
        f.write(row % (key, val[u'freq'], '/'.join(val[u'connect'])))
    f.write(footer)
    f.write(u'\n====class: class: HWY-grupp====\n')
    f.write(header)
    for key, val in helpers.sortedBy(gruppDict):
        f.write(row % (key, val[u'freq'], '/'.join(val[u'connect'])))
    f.write(footer)
    f.write(u'\n====Preserved mappings====\n')
    f.write(header)
    for key, val in helpers.sortedBy(emptyObjCats):
        f.write(row % (key, val[u'freq'], '/'.join(val[u'connect'])))
    f.write(footer)
    f.write(u'\n\n[[%s]]' % LIST_CAT)
    f.close()
    output(u'Created %s' % filename)
예제 #9
0
def writePlaces(filename, exhibitPlaces, landDict, ortDict, emptyPlaces):
    '''
    output Places in Commons format
    '''
    # set-up
    header = u'{{user:Lokal Profil/LSH2|name=Place|' \
        u'other=Commons connection}}\n'
    row = u'{{User:Lokal Profil/LSH3\n' \
        u'|name      = %s\n' \
        u'|frequency = %d\n' \
        u'|other     = %s\n' \
        u'}}\n'
    footer = u'|}\n'
    intro = u'<!--From: %s - col: ausOrt-->\n' % CSV_FILES[u'ausstellung'] \
        + u'<!--From: %s for OmuTypS = Tillverkningsland -->\n' % CSV_FILES[u'objMultiple'] \
        + u'<!--From: %s for OmuTypS = Tillverkningsort-->\n' % CSV_FILES[u'objMultiple'] \
        + u'The preffered order of making connections are: Institution, page, category' \
        + u'(where the category is prefixed by a ":").\n\n' \
        + u'Set commonsconnection of irrelevant places to "-"\n\n' \
        + u'===Place|Frequency|Commonsconnection===\n'
    # output
    f = codecs.open(filename, 'w', 'utf8')
    f.write(intro)
    f.write(u'\n====exhibit places====\n')
    f.write(header)
    for key, val in helpers.sortedBy(exhibitPlaces):
        f.write(row % (key, val[u'freq'], val[u'connect']))
    f.write(footer)
    f.write(u'\n====origin-Countries====\n')
    f.write(header)
    for key, val in helpers.sortedBy(landDict):
        f.write(row % (key, val[u'freq'], val[u'connect']))
    f.write(footer)
    f.write(u'\n====origin-cities====\n')
    f.write(header)
    for key, val in helpers.sortedBy(ortDict):
        f.write(row % (key, val[u'freq'], val[u'connect']))
    f.write(footer)
    f.write(u'\n====Preserved mappings====\n')
    f.write(header)
    for key, val in helpers.sortedBy(emptyPlaces):
        f.write(row % (key, val[u'freq'], val[u'connect']))
    f.write(footer)
    f.write(u'\n\n[[%s]]' % LIST_CAT)
    f.close()
    output(u'Created %s' % filename)
예제 #10
0
def writeObjKeywords(filename, ord1Dict, ord2Dict, gruppDict, emptyObjCats):
    '''
    output ObjKeywords in Commons format
    '''
    # set-up
    header = u'{{user:Lokal Profil/LSH2|category=}}\n'
    row = u'{{User:Lokal Profil/LSH3\n' \
        u'|name      = %s\n' \
        u'|frequency = %d\n' \
        u'|category  = %s\n' \
        u'}}\n'
    footer = u'|}\n'
    intro = u'<!--From: %s -->\n' % CSV_FILES[u'objDaten'] \
        + u'These are the keywords used to describe the objects ' \
        + u'themselves. Classification is used for all items whereas ' \
        + u'group is only used at HWY.\n\n' \
        + u'when possible ord1 will be used instead of the more ' \
        + u'generic ord2.\n\n' \
        + u'Multiple categories are separated by a "/"\n' \
        + u'===Keyword|frequency|commonscategory===\n'
    # output
    f = codecs.open(filename, 'w', 'utf8')
    f.write(intro)
    f.write(u'\n====class: ord1====\n')
    f.write(header)
    for key, val in helpers.sortedBy(ord1Dict):
        f.write(row % (key, val[u'freq'], '/'.join(val[u'connect'])))
    f.write(footer)
    f.write(u'\n====class: ord2====\n')
    f.write(header)
    for key, val in helpers.sortedBy(ord2Dict):
        f.write(row % (key, val[u'freq'], '/'.join(val[u'connect'])))
    f.write(footer)
    f.write(u'\n====class: class: HWY-grupp====\n')
    f.write(header)
    for key, val in helpers.sortedBy(gruppDict):
        f.write(row % (key, val[u'freq'], '/'.join(val[u'connect'])))
    f.write(footer)
    f.write(u'\n====Preserved mappings====\n')
    f.write(header)
    for key, val in helpers.sortedBy(emptyObjCats):
        f.write(row % (key, val[u'freq'], '/'.join(val[u'connect'])))
    f.write(footer)
    f.write(u'\n\n[[%s]]' % LIST_CAT)
    f.close()
    output(u'Created %s' % filename)
예제 #11
0
def writePeople(filename, dDict):
    '''
    output People in Commons format
    '''
    # set-up
    header = u'{{user:Lokal Profil/LSH2|name=Name <small>(kueId)</small>' \
        u'|link=Wikipedia-link|creator=|category=}}\n'
    row = u'{{User:Lokal Profil/LSH3\n' \
        u'|name      = %s\n' \
        u'|more      = %s\n' \
        u'|frequency = %d\n' \
        u'|link      = %s\n' \
        u'|creator   = %s\n' \
        u'|category  = %s\n' \
        u'}}\n'
    footer = u'|}\n'
    intro = u'<!--From: %s -->\n' % CSV_FILES[u'kuenstler'] \
        + u'\'\'wikipedia-link\'\' is used for descriptive texts whereas ' \
        + u'creator is a creator template on commons and ' \
        + u'\'\'commoncat\'\' is a relevant category on commons.\n\n' \
        + u'Set commonsconnection of irrelevant events to "-". ' \
        + u'Note that creator is only relevant for artists.\n\n' \
        + u'===kueId|frequency|name|wikipedia-link|creator|commoncat===\n'
    # output
    once = True
    f = codecs.open(filename, 'w', 'utf8')
    f.write(intro)
    f.write(header)
    for key, val in helpers.sortedBy(dDict):
        if once and val[u'freq'] == 0:
            once = False
            f.write(footer)
            f.write(u'\n===Preserved mappings===\n')
            f.write(header)
        f.write(row % (val[u'descr'], key, val[u'freq'], val[u'link'],
                       val[u'creator'], val[u'cat']))
    f.write(footer)
    f.write(u'\n\n[[%s]]' % LIST_CAT)
    f.close()
    output(u'Created %s' % filename)
예제 #12
0
def writeEvents(filename, dDict):
    '''
    output events in Commons format
    '''
    # set-up
    header = u'{{user:Lokal Profil/LSH2|name=Event|' \
        u'link=Wikipedia-link|category=}}\n'
    row = u'{{User:Lokal Profil/LSH3\n' \
        u'|name      = %s\n' \
        u'|frequency = %d\n' \
        u'|link      = %s\n' \
        u'|category  = %s\n' \
        u'}}\n'
    footer = u'|}\n'
    intro = u'<!--From: %s -->' % CSV_FILES[u'ereignis'] \
        + u'\'\'wikipedia-link\'\' are used for descriptive texts ' \
        + u'whereas \'\'commonsconnection\'\' is a relevant category ' \
        + u'on commons.\n\n' \
        + u'Set commonsconnection of irrelevant events to "-"\n\n' \
        + u'Multiple categories are separated by "/"\n\n' \
        + u'*död/begravning: [[:Category:Funeral of X of Sweden]]\n' \
        + u'*kröning: [[:Category:Coronation of X of Sweden]]\n' \
        + u'*bröllop: [[:Category:Wedding of X and Y of Sweden]]\n' \
        + u'===Event|Frequency|wikipedia-link|Commonsconnection===\n'
    # output
    once = True
    f = codecs.open(filename, 'w', 'utf8')
    f.write(intro)
    f.write(header)
    for key, val in helpers.sortedBy(dDict):
        if once and val[u'freq'] == 0:
            once = False
            f.write(footer)
            f.write(u'\n===Preserved mappings===\n')
            f.write(header)
        f.write(row % (key, val[u'freq'], val[u'link'], '/'.join(val[u'cat'])))
    f.write(footer)
    f.write(u'\n\n[[%s]]' % LIST_CAT)
    f.close()
    output(u'Created %s' % filename)
예제 #13
0
def writePeople(filename, dDict):
    '''
    output People in Commons format
    '''
    # set-up
    header = u'{{user:Lokal Profil/LSH2|name=Name <small>(kueId)</small>' \
        u'|link=Wikipedia-link|creator=|category=}}\n'
    row = u'{{User:Lokal Profil/LSH3\n' \
        u'|name      = %s\n' \
        u'|more      = %s\n' \
        u'|frequency = %d\n' \
        u'|link      = %s\n' \
        u'|creator   = %s\n' \
        u'|category  = %s\n' \
        u'}}\n'
    footer = u'|}\n'
    intro = u'<!--From: %s -->\n' % CSV_FILES[u'kuenstler'] \
        + u'\'\'wikipedia-link\'\' is used for descriptive texts whereas ' \
        + u'creator is a creator template on commons and ' \
        + u'\'\'commoncat\'\' is a relevant category on commons.\n\n' \
        + u'Set commonsconnection of irrelevant events to "-". ' \
        + u'Note that creator is only relevant for artists.\n\n' \
        + u'===kueId|frequency|name|wikipedia-link|creator|commoncat===\n'
    # output
    once = True
    f = codecs.open(filename, 'w', 'utf8')
    f.write(intro)
    f.write(header)
    for key, val in helpers.sortedBy(dDict):
        if once and val[u'freq'] == 0:
            once = False
            f.write(footer)
            f.write(u'\n===Preserved mappings===\n')
            f.write(header)
        f.write(row % (val[u'descr'], key, val[u'freq'], val[u'link'],
                       val[u'creator'], val[u'cat']))
    f.write(footer)
    f.write(u'\n\n[[%s]]' % LIST_CAT)
    f.close()
    output(u'Created %s' % filename)
예제 #14
0
def writeEvents(filename, dDict):
    '''
    output events in Commons format
    '''
    # set-up
    header = u'{{user:Lokal Profil/LSH2|name=Event|' \
        u'link=Wikipedia-link|category=}}\n'
    row = u'{{User:Lokal Profil/LSH3\n' \
        u'|name      = %s\n' \
        u'|frequency = %d\n' \
        u'|link      = %s\n' \
        u'|category  = %s\n' \
        u'}}\n'
    footer = u'|}\n'
    intro = u'<!--From: %s -->' % CSV_FILES[u'ereignis'] \
        + u'\'\'wikipedia-link\'\' are used for descriptive texts ' \
        + u'whereas \'\'commonsconnection\'\' is a relevant category ' \
        + u'on commons.\n\n' \
        + u'Set commonsconnection of irrelevant events to "-"\n\n' \
        + u'Multiple categories are separated by "/"\n\n' \
        + u'*död/begravning: [[:Category:Funeral of X of Sweden]]\n' \
        + u'*kröning: [[:Category:Coronation of X of Sweden]]\n' \
        + u'*bröllop: [[:Category:Wedding of X and Y of Sweden]]\n' \
        + u'===Event|Frequency|wikipedia-link|Commonsconnection===\n'
    # output
    once = True
    f = codecs.open(filename, 'w', 'utf8')
    f.write(intro)
    f.write(header)
    for key, val in helpers.sortedBy(dDict):
        if once and val[u'freq'] == 0:
            once = False
            f.write(footer)
            f.write(u'\n===Preserved mappings===\n')
            f.write(header)
        f.write(row % (key, val[u'freq'], val[u'link'], '/'.join(val[u'cat'])))
    f.write(footer)
    f.write(u'\n\n[[%s]]' % LIST_CAT)
    f.close()
    output(u'Created %s' % filename)