Last active
September 1, 2020 06:51
-
-
Save Vesihiisi/b5a902247aa89e990db6b120ed6aae9d to your computer and use it in GitHub Desktop.
[T261595] Add link to English website about Arnberg to Musikverket's music files
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- coding: utf-8 -*- | |
"""Add link to English site about Arnberg | |
https://phabricator.wikimedia.org/T261595 | |
Correct descriptions of files from Musikverket's | |
Arnberg collection by adding links to their | |
English website, not only Swedish. | |
""" | |
import pywikibot | |
from pywikibot import pagegenerators as pg | |
import mwparserfromhell as parser | |
site = pywikibot.Site("commons", 'commons') | |
catname = "Audio files from the Swedish Performing Arts Agency" | |
cat = pywikibot.Category(site, catname) | |
gen = pg.CategorizedPageGenerator(cat) | |
def add_missing_english(page): | |
edit_summary = "Adding link to glam's english page" | |
arnberg_desc = ("[https://musikverket.se/" | |
"svensktvisarkiv/arnbergs-resa-i-folkmusiken/ " | |
"Matts Arnberg]") | |
new_arnberg = ("Matts Arnberg " | |
"[https://musikverket.se/" | |
"svensktvisarkiv/arnbergs-resa-i-folkmusiken/ SV] " | |
"[https://musikverket.se/" | |
"svensktvisarkiv/arnbergs-resa-i-folkmusiken/?lang=en EN]") | |
parsed = parser.parse(page.text) | |
templates = parsed.filter_templates() | |
for t in templates: | |
if t.name.matches("Musikverket-audio"): | |
old_desc = str(t.get("description").value) | |
if arnberg_desc in old_desc: | |
new_desc = old_desc.replace(arnberg_desc, new_arnberg) | |
new_desc = new_desc.replace("{{sv|", "{{sv|1=") | |
t.add("description", new_desc) | |
page.text = str(parsed) | |
page.save(edit_summary) | |
if __name__ == "__main__": | |
for g in gen: | |
add_missing_english(g) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment