Skip to content

Instantly share code, notes, and snippets.

@salgo60
Last active April 21, 2020 13:38
Show Gist options
  • Select an option

  • Save salgo60/4ef72e1dff0a90a9902004b3b4d8f607 to your computer and use it in GitHub Desktop.

Select an option

Save salgo60/4ef72e1dff0a90a9902004b3b4d8f607 to your computer and use it in GitHub Desktop.
from mwclient import Site
from mwtemplates import TemplateEditor
site = Site('sv.wikipedia.org')
site.login('xusername', 'pwd')
# https://sv.wikipedia.org/wiki/Vincent_Lundberg
# https://sv.wikipedia.org/w/api.php?action=query&titles=Vincent_Lundberg&prop=revisions&rvprop=content&format=json
page = site.pages['Vincent Lundberg']
te = TemplateEditor(page.text())
for t in te.templates.items():
if 'SBL' in t:
for x in t[1]:
for y in t[1][0].parameters:
print ("param " , y)
print(x.parameters['namn'])
@salgo60
Copy link
Copy Markdown
Author

salgo60 commented Apr 21, 2020

/usr/local/bin/python3.8 /Users/magnus/Library/Preferences/PyCharmCE2019.2/scratches/scratch_43.py
param 9771
param D Vincent Lundberg
param Wolfram Kock
param 1982–1984
D Vincent Lundberg

Process finished with exit code 0

@salgo60
Copy link
Copy Markdown
Author

salgo60 commented Apr 21, 2020

Getting all pages with Template:SBL ==> 4973 poster

https://sv.wikipedia.org/w/api.php?action=query&list=search&srsearch=hastemplate:SBL

-->

"batchcomplete": "",
"continue": {
    "sroffset": 10,
    "continue": "-||"
},
"query": {
    "searchinfo": {
        "totalhits": 4973
    },
    "search": [
        {
            "ns": 0,
            "title": "Carl von Linn\u00e9",
            "pageid": 330,
            "size": 111141,
            "wordcount": 12210,
            "snippet": "Uppslagsorden "Linn\u00e9" och "Linnaeus" leder hit. F\u00f6r andra betydelser och personer med dessa efternamn, se Linn\u00e9 (olika betydelser) och Linnaeus (olika",
            "timestamp": "2020-04-15T20:56:17Z"
        },
        {
            "ns": 0,
            "title": "Gunnar Carlquist",
            "pageid": 325567,
            "size": 4537,
            "wordcount": 527,
            "snippet": "Nils Vilhelm Gunnar Carlquist, f\u00f6dd 3 februari 1889 i Kn\u00e4storp i Sk\u00e5ne, d\u00f6d 19 november 1963 i Lunds Allhelgonaf\u00f6rsamling, var en svensk historiker och",
            "timestamp": "2020-01-09T17:15:53Z"
        },
        {
            "ns": 0,
            "title": "August Strindberg",
            "pageid": 4989,
            "size": 82526,
            "wordcount": 8652,
            "snippet": "Uppslagsordet \u201dStrindberg\u201d leder hit. F\u00f6r andra personer med samma efternamn, se Strindberg (sl\u00e4kt). Johan August Strindberg, f\u00f6dd 22 januari 1849 i Stockholm",
            "timestamp": "2020-04-20T09:49:06Z"
        },
        {
            "ns": 0,
            "title": "Gustav Vasa",
            "pageid": 664,
            "size": 55208,
            "wordcount": 5727,
            "snippet": "F\u00f6r andra betydelser, se Gustav Vasa (olika betydelser). Gustav Vasa eller Gustav I (tidigare Gustav Eriksson), troligen f\u00f6dd 12 maj 1496, d\u00f6d 29 september",
            "timestamp": "2020-04-20T08:48:07Z"
        },
        {
            "ns": 0,
            "title": "Gustav III",
            "pageid": 649,
            "size": 48356,
            "wordcount": 5181,
            "snippet": "Den h\u00e4r artikeln handlar om den svenske kungen Gustav III. F\u00f6r andra betydelser, se Gustav III (olika betydelser). Gustav III, f\u00f6dd 13 januari (g.s.)/24",
            "timestamp": "2020-04-16T10:58:59Z"
        },
        {
            "ns": 0,
            "title": "Karl XII",
            "pageid": 5588,
            "size": 74687,
            "wordcount": 9230,
            "snippet": "F\u00f6r andra betydelser, se Karl XII (olika betydelser). Karl XII, f\u00f6dd 17 juni 1682 p\u00e5 Slottet Tre Kronor, d\u00f6d 30 november 1718 i Fredrikshald i Norge, var",
            "timestamp": "2020-04-20T17:51:03Z"
        },
        {
            "ns": 0,
            "title": "Elias Fries",
            "pageid": 96750,
            "size": 9038,
            "wordcount": 901,
            "snippet": "Ej att f\u00f6rv\u00e4xla med botanikern Magnus Fries. Elias Magnus Fries, f\u00f6dd den 15 augusti 1794 i Femsj\u00f6, d\u00f6d den 8 februari 1878 i Uppsala, var en svensk botaniker",
            "timestamp": "2019-12-21T16:21:38Z"
        },
        {
            "ns": 0,
            "title": "Karl XIV Johan",
            "pageid": 6202,
            "size": 74030,
            "wordcount": 8415,
            "snippet": "F\u00f6r fartyget, se Carl XIV Johan (fartyg). Karl XIV Johan, f\u00f6dd Jean Bernadotte 26 januari 1763 i Pau, B\u00e9arn, Frankrike, d\u00f6d 8 mars 1844 p\u00e5 Stockholms slott",
            "timestamp": "2020-04-18T20:22:57Z"
        },
        {
            "ns": 0,
            "title": "Karl IX",
            "pageid": 3201,
            "size": 33692,
            "wordcount": 3823,
            "snippet": "Den h\u00e4r artikeln handlar om den svenske kungen Karl\u00a0IX. F\u00f6r den franske kungen med samma namn, se Karl IX av Frankrike. Karl IX, f\u00f6rst k\u00e4nd som Hertig",
            "timestamp": "2020-04-20T17:47:38Z"
        },
        {
            "ns": 0,
            "title": "Karl XI",
            "pageid": 3192,
            "size": 54146,
            "wordcount": 5712,
            "snippet": "Karl XI, f\u00f6dd 24 november 1655, d\u00f6d 5 april 1697, var kung av Sverige fr\u00e5n 1660 till sin d\u00f6d. Han regerade \u00e4ven fr\u00e5n 1681 som hertig Karl I \u00f6ver Pfalz-Zweibr\u00fccken",
            "timestamp": "2020-04-12T15:23:48Z"
        }
    ]
}

}

@salgo60
Copy link
Copy Markdown
Author

salgo60 commented Apr 21, 2020

#Test uppdater
from mwclient import Site
from mwtemplates import TemplateEditor

site = Site('sv.wikipedia.org')
site.login('username', 'pwd')
page = site.pages['Vincent Lundberg']
te = TemplateEditor(page.text())
for t in te.templates.items():
if 'SBL' in t:
for x in t[1]:
for y in t[1][0].parameters:
print ("param " , y,type(y))
print(x.parameters['namn'])

print(te.templates['SBL'][0].parameters)
te.templates['SBL'][0].parameters['namn'] = "Nytt namn"
print (te.wikitext())

Output
/usr/local/bin/python3.8 /Users/magnus/Library/Preferences/PyCharmCE2019.2/scratches/scratch_43.py
param 9771 <class 'mwtemplates.templateeditor2.Parameter'>
param D Vincent Lundberg <class 'mwtemplates.templateeditor2.Parameter'>
param Wolfram Kock <class 'mwtemplates.templateeditor2.Parameter'>
param 1982–1984 <class 'mwtemplates.templateeditor2.Parameter'>
D Vincent Lundberg
<Parameters: 1="9771", namn="D Vincent Lundberg", författare="Wolfram Kock", år="1982–1984">
....
....
== Källor ==
*{{SBL|9771|namn=Nytt namn|författare=Wolfram Kock|år=1982–1984}}
*{{runeberg.org|sbh|b0096.html Lundberg, Daniel Vincent}}
....
...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment