« Exemple: Chronobot » : différence entre les versions
Aller à la navigation
Aller à la recherche
(Page créée avec « == Exemples de page créée par le bot == * 3894 * 3895 * -41300 * -41301 == Code == <nowiki> # -*- coding: utf-8 -*- import urllib2 import requests... ») |
Aucun résumé des modifications |
||
Ligne 13 : | Ligne 13 : | ||
import datetime | import datetime | ||
user=' | user='testbot' | ||
passw=urllib2.quote(' | passw=urllib2.quote('dhbot2017') | ||
baseurl='http://wikipast.world/wiki/' | baseurl='http://wikipast.world/wiki/' | ||
login_params='?action=login&lgname=%s&lgpassword=%s&format=json'% (user,passw) | login_params='?action=login&lgname=%s&lgpassword=%s&format=json'% (user,passw) |
Version du 19 mars 2017 à 07:46
Exemples de page créée par le bot
Code
# -*- coding: utf-8 -*- import urllib2 import requests import datetime user='testbot' passw=urllib2.quote('dhbot2017') baseurl='http://wikipast.world/wiki/' login_params='?action=login&lgname=%s&lgpassword=%s&format=json'% (user,passw) summary='Chronobot update' dates=['0033/06/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 r1=requests.post(baseurl+'api.php'+login_params) login_token=r1.json()['login']['token'] #login confirm login_params2=login_params+'&lgtoken=%s'% login_token r2=requests.post(baseurl+'api.php'+login_params2,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 headers={'content-type':'application/x-www-form-urlencoded'} #payload={'action':'edit','assert':'user','format':'json','text':content,'summary':summary,'title':dates_convert[i],'token':edit_token} payload={'action':'edit','assert':'user','format':'json','appendtext':content,'summary':summary,'title':dates_convert[i],'token':edit_token} r4=requests.post(baseurl+'api.php',headers=headers,data=payload,cookies=edit_cookie) print(r4.text)