a small tool for Wikipedia article quality inspection using ORES
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

#!/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)