Created
October 4, 2022 16:15
-
-
Save grischard/3d4f9a52f800ba167885c4920deb9c73 to your computer and use it in GitHub Desktop.
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
#!/usr/bin/env python | |
import xmlrpc.client | |
from datetime import date | |
import regex | |
# today = date.today() | |
today = date(2022, 10, 2) | |
server = xmlrpc.client.ServerProxy( | |
"https://weeklyOSM:[email protected]/login/xmlrpc" | |
) | |
wikipage = server.wiki.getPage("StartupPageSource") | |
# wikipage = server.wiki.getPage("SandBox") | |
ISSUENUMBER = 636 | |
isodate = today.strftime("%Y-%m-%d") | |
dmydateslash = today.strftime("%d/%m/%Y") | |
dmydatedot = today.strftime("%d.%m.%Y") | |
dmydatedash = today.strftime("%d.%m.%Y") | |
BEGINBLOCK = "# Begin weekly - leave at the top of the weeklyOSM section, automatically updated, do not edit manually" | |
ENDBLOCK = "# End weekly - leave at the bottom of the weeklyOSM section, automatically updated, do not edit manually" | |
BEGINNEWS = "# Begin news - leave at the top of the news section, do not edit or move this comment" | |
newblock = f"""{BEGINBLOCK} | |
en: * {isodate} **weeklyOSM**: The weekly round-up of OSM news, issue [https://weeklyosm.eu/en/en/ #{ISSUENUMBER}], is now available online in English | |
ca: * {dmydatedash} **setmanalOSM** : El resum setmanal de notícies d'OSM, ja està disponible en línia en anglès número [https://weeklyosm.eu/en/en/ #{ISSUENUMBER}] i en castellà [https://weeklyosm.eu/es/ n° {ISSUENUMBER}] | |
da: * {dmydatedash} **weeklyOSM**: Den ugentlige opsummering af OSM-nyheder, nummer [https://weeklyosm.eu/en/en/ #{ISSUENUMBER}], er nu tilgængelig online på engelsk | |
de: * {dmydatedot} **Wochennotiz**: Die wöchentliche Ausgabe der OSM-News [https://weeklyosm.eu/de/ #{ISSUENUMBER}] ist nun auf deutsch verfügbar | |
es: * {dmydatedash} **semanarioOSM** : El resumen semanario de noticias de OSM [https://weeklyosm.eu/es/ n° {ISSUENUMBER}], ya está disponible en línea en español | |
fr: * {dmydatedash} **hebdoOSM**: Le résumé hebdomadaire [https://www.weeklyosm.eu/fr/ n° {ISSUENUMBER}] de l'actualité OpenStreetMap vient de paraître en français | |
hu: * {isodate} **weeklyOSM**: Az OSM heti hírösszefoglalójának [https://weeklyosm.eu/en/en/ {ISSUENUMBER}. része] már elérhető angolul. | |
it: * {dmydatedot} **Notiziario Settimanale OSM**: Il riepilogo settimanale [https://www.weeklyosm.eu/it/ N. {ISSUENUMBER}] delle notizie su OSM è adesso disponibile online e in italiano | |
ko: * {isodate} **주간OSM**: 이번 주의 오픈스트리트맵 관련 소식을 전해주는 주간OSM [https://weeklyosm.eu/ko/ {ISSUENUMBER}호]가 올라왔습니다 | |
lt: * {isodate} **weeklyOSM**: Savaitinė OSM naujienų santrauka [https://weeklyosm.eu/en/en/ nr. {ISSUENUMBER}] yra prieinama anglų kalba | |
nl: * {isodate} **weeklyOSM**: De wekelijkse verzameling nieuws over OSM, uitgave [https://weeklyosm.eu/en/en/ #{ISSUENUMBER}], is nu online beschikbaar in het Engels | |
pl: * {dmydatedot} **Tygodnik OSM**: [nr {ISSUENUMBER}](https://weeklyosm.eu/pl/) cotygodniowego podsumowania wiadomości ze świata OSM jest już dostępny po polsku. | |
ru: * {isodate} **weeklyOSM**: еженедельный обзор новостей OSM, выпуск [https://weeklyosm.eu/en/en/ #{ISSUENUMBER}], доступен онлайн на английском и нескольких других языках | |
sk: * {isodate} **weeklyOSM**: Týždenný sumár noviniek v OSM, vydanie [https://weeklyosm.eu/en/en #{ISSUENUMBER}], je už dostupný online v angličtine. [https://weeklyosm.eu/cz/ Český preklad] bude dostupný neskôr. | |
sr@latin: * {isodate} **weeklyOSM**: Nedeljna tura vesti iz OSM sveta, problem zaveden pod brojem [https://weeklyosm.eu/en/en/ #{ISSUENUMBER}], od sada je dostupna na engleskom jeziku | |
uk: * {dmydatedot} **weeklyOSM**: Щотижневий огляд новин OSM, випуск [https://weeklyosm.eu/en/en/ #{ISSUENUMBER}], доступний англійською та іншими мовами | |
zh_CN: * {isodate} **weeklyOSM**:一周一次的 OSM 消息汇报,[https://weeklyosm.eu/cn/ #{ISSUENUMBER}]期中国华语版本已经上线。 | |
zh_TW: * {isodate} **weeklyOSM**:一週一次的 OSM 消息彙報,[https://weeklyosm.eu/zh/ #{ISSUENUMBER}]期台灣華語版本已經上線。 | |
{ENDBLOCK}""" | |
blockpattern = regex.compile(f"{BEGINBLOCK}\X*{ENDBLOCK}\n") | |
oldblock = blockpattern.search(wikipage).group() | |
newcount = newblock.count("\n") | |
oldcount = oldblock.count("\n") - 1 | |
if oldcount != newcount: | |
print( | |
f"Number of old translations ({oldcount-3}) does not match new translation ({newcount-3}). Manually added translation? Manual edit?" | |
) | |
else: | |
# Drop the old weekly, insert new one at top | |
wikipage = wikipage.replace(oldblock, "").replace( | |
BEGINNEWS, f"{BEGINNEWS}\n{newblock}" | |
) | |
server.wiki.putPage( | |
"StartupPageSource", wikipage, {"comment": "Semi-automatic weeklyOSM update"} | |
) | |
print("Update successful") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment