You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.7 KiB
80 lines
2.7 KiB
#!/usr/bin/env python3
|
|
|
|
import os, time, json
|
|
import mwclient
|
|
|
|
from sys import stdin, stderr, stdout
|
|
import select
|
|
from pprint import pprint
|
|
import subprocess
|
|
|
|
site = mwclient.Site('en.wikipedia.org')
|
|
print(site)
|
|
|
|
while True:
|
|
|
|
|
|
page = site.Pages['User:Trustinformationws/sandbox']
|
|
# print(page)
|
|
|
|
revid = list(page.revisions())[0]['revid']
|
|
|
|
# model = 'draftquality'
|
|
# model = 'damaging'
|
|
model = 'goodfaith'
|
|
model = 'goodfaith draftquality'
|
|
|
|
cmd = "echo '{\"rev_id\": "+str(revid)+"}' | ores score_revisions https://ores.wikimedia.org enwiki "+model
|
|
# print(cmd)
|
|
|
|
sub = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
|
output = sub.communicate()[0]
|
|
# print('>>> this is the current output', output)
|
|
output = str(output)
|
|
output = output.split('\\n')[2]
|
|
result = json.loads(output)
|
|
# pprint(result)
|
|
|
|
if model == 'damaging':
|
|
true = result['score']['damaging']['score']['probability']['true']
|
|
false = result['score']['damaging']['score']['probability']['false']
|
|
x = '''\nLatest revid: {}. This edit is ...
|
|
... {} likely to be goodfaith,
|
|
... {} likely badfaith.'''.format(revid, true, false)
|
|
|
|
if model == 'draftquality':
|
|
ok = result['score']['draftquality']['score']['probability']['OK']
|
|
vandalism = result['score']['draftquality']['score']['probability']['vandalism']
|
|
spam = result['score']['draftquality']['score']['probability']['spam']
|
|
attack = result['score']['draftquality']['score']['probability']['attack']
|
|
x = '''\nLatest revid: {}. It is ...
|
|
... {} likely to be OK,
|
|
... {} likely to be vandalism,
|
|
... {} likely to be spam,
|
|
... {} likely to be an attack.'''.format(revid, ok, vandalism, spam, attack)
|
|
|
|
if model == 'goodfaith':
|
|
true = result['score']['goodfaith']['score']['probability']['true']
|
|
false = result['score']['goodfaith']['score']['probability']['false']
|
|
x = '''\nLatest revid: {}. This edit is ...
|
|
... {} likely to be goodfaith,
|
|
... {} likely badfaith.'''.format(revid, true, false)
|
|
|
|
if model == 'goodfaith draftquality':
|
|
true = result['score']['goodfaith']['score']['probability']['true']
|
|
false = result['score']['goodfaith']['score']['probability']['false']
|
|
ok = result['score']['draftquality']['score']['probability']['OK']
|
|
vandalism = result['score']['draftquality']['score']['probability']['vandalism']
|
|
spam = result['score']['draftquality']['score']['probability']['spam']
|
|
attack = result['score']['draftquality']['score']['probability']['attack']
|
|
x = '''\nLatest revid: {}. It is ...
|
|
... {} likely to be OK,
|
|
... {} likely to be vandalism,
|
|
... {} likely to be spam,
|
|
... {} likely to be an attack.\n
|
|
... {} likely to be goodfaith,
|
|
... {} likely badfaith.'''.format(revid, ok, vandalism, spam, attack, true, false)
|
|
|
|
print(x)
|
|
|
|
time.sleep(10)
|