Skip to content

Instantly share code, notes, and snippets.

@Vesihiisi
Last active September 1, 2020 06:51
Show Gist options
  • Save Vesihiisi/b5a902247aa89e990db6b120ed6aae9d to your computer and use it in GitHub Desktop.
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
# -*- 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