« Exemple: Chronobot » : différence entre les versions
Aller à la navigation
Aller à la recherche
(→Code) |
m (Arnau a déplacé la page Chronobot vers Exemple: Chronobot) |
(Aucune différence)
|
Dernière version du 2 mai 2017 à 11:28
Exemples de page créée par le bot
Code
# -*- coding: utf-8 -*- import urllib2 import requests import datetime user='testbot' passw='dhbot2017' baseurl='http://wikipast.epfl.ch/wikipast/' summary='Wikipastbot update' dates=['1980/08/30','1980/08/31','1856/12/03','1856/12/02'] dates_convert=[] for date in dates: the_date=datetime.datetime.strptime(date, "%Y/%m/%d") timestamp=(the_date-datetime.datetime(1970, 1, 1)).total_seconds()+36 convert=int(1.0*timestamp/(24*3600)) dates_convert.append(str(convert)) print(str(date)+' => '+str(convert)) # Login request payload={'action':'query','format':'json','utf8':'','meta':'tokens','type':'login'} r1=requests.post(baseurl + 'api.php', data=payload) #login confirm login_token=r1.json()['query']['tokens']['logintoken'] payload={'action':'login','format':'json','utf8':'','lgname':user,'lgpassword':passw,'lgtoken':login_token} r2=requests.post(baseurl + 'api.php', data=payload, cookies=r1.cookies) #get edit token2 params3='?format=json&action=query&meta=tokens&continue=' r3=requests.get(baseurl + 'api.php' + params3, cookies=r2.cookies) edit_token=r3.json()['query']['tokens']['csrftoken'] edit_cookie=r2.cookies.copy() edit_cookie.update(r3.cookies) for i in range(len(dates)): content='\n==Date: '+str(dates[i])+'==' # save action #payload={'action':'edit','assert':'user','format':'json','utf8':'','text':content,'summary':summary,'title':dates_convert[i],'token':edit_token} payload={'action':'edit','assert':'user','format':'json','utf8':'','appendtext':content,'summary':summary,'title':dates_convert[i],'token':edit_token} r4=requests.post(baseurl+'api.php',data=payload,cookies=edit_cookie) print(r4.text)