Page MenuHomePhabricator
Paste P3234

Proof of Concept: thanks_rev() for test:test
ActivePublic

Authored by darthbhyrava on Jun 13 2016, 2:10 PM.
#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
A script which takes a revision ID on the test wiki and thanks it on behalf of the user logged in.
Syntax: python pwb.py thanks [rev]
@params;
-rev: - The value of the revisionID to be thanked.
"""
from __future__ import absolute_import, unicode_literals
import pywikibot
from pywikibot.comms.http import session
def thank_rev(rev_id):
"""
Thank the given revision ID on the wiki on behalf of the user logged in.
"""
#Login into the wiki
site = pywikibot.Site()
site.login()
#Get csrf token from site.
token = site.tokens['csrf']
#Make the Thanks API call.
values = {'rev' : rev_id,
'source' : 'test_thank',
'token' : token }
r = session.post("https://test.wikipedia.org/w/api.php?action=thank&format=json", data=values)
print (r.text)
def main(*args):
"""
Proces command line arguments and thank the rev
"""
# Process the args
local_args = pywikibot.handle_args(args)
for arg in local_args:
option, sep, value = arg.partition(':')
if option == '-rev':
rev_id = int(value)
#Call the thank method
thank_rev(rev_id)
if __name__ == "__main__":
main()