Skip to content

Commit

Permalink
Update autopatrol eligibles report
Browse files Browse the repository at this point in the history
  • Loading branch information
Niharika29 committed Apr 15, 2016
1 parent d9f55d5 commit e1c9a84
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 12 deletions.
4 changes: 2 additions & 2 deletions i18n/i18n.py
Expand Up @@ -27,7 +27,7 @@
"pagerevisions-revisions": "Revisions",

"autopatrol-page-title": "Editors eligible for Autopatrol privilege",
"autopatrol-desc": "List of editors who are eligible for the autopatrol privilege and don't have it yet. Limited to 500 users with most articles created.",
"autopatrol-desc": "List of editors who are eligible for the autopatrol privilege and don't have it yet. Limited to 500 users with most articles created. Author: Andrew Crawford (User:thparkth) <acrawford@laetabilis.com>",
"autopatrol-username": "Username",
"autopatrol-articles": "Number of articles created",

Expand Down Expand Up @@ -61,7 +61,7 @@
"reports_base_url": "Benutzer:Kopiersperre/",

"forgotten-articles-page-title": "Vergessene Artikel",
"forgotten-articles-desc": "Diese Liste enthält die 1000 Artikel, die am längsten nicht mehr bearbeitet wurde. AlsBearbeitung zählt hierbei jede Aktion, die zu einer Aktualisierung des Seitencache führt, also neben Textbearbeitungen auch Seitensperrungen oder Änderungen an eingebundenen Vorlage.",
"forgotten-articles-desc": "Diese Liste enthält die 1000 Artikel, die am längsten nicht mehr bearbeitet wurde. Als Bearbeitung zählt hierbei jede Aktion, die zu einer Aktualisierung des Felds <code>page_touched</code> in der Datenbank führt, also neben Textbearbeitungen auch Seitensperrungen oder Änderungen an eingebundenen Vorlage. Für eine Liste der „wirklich“ am längsten nicht mehr von Menschen bearbeiten Artikel, siehe [[Benutzer:Merlissimo/LetzterEdit]].",
"forgotten-articles-title": "Artikel",
"forgotten-articles-last-edited": "Letzte Bearbeitung",
"forgotten-articles-editcount": "Bearbeitungen insgesamt",
Expand Down
57 changes: 47 additions & 10 deletions reports.py
Expand Up @@ -72,18 +72,55 @@ def pages_with_most_revisions( self ):


# Editors eligible for autopatrol privileges
# Identify users who meet the criteria for being granted "autopatrolled" on the English Wikipedia but who don't already have it.
# Author: Andrew Crawford (thparkth) <acrawford@laetabilis.com>
def autopatrol_eligibles( self ):
cur = self.db.cursor()
query = """SELECT COUNT(*) AS creations, rev_user, u.user_name FROM revision r
LEFT JOIN ( SELECT user_name, user_id FROM user ) u ON u.user_id = r.rev_user
WHERE rev_parent_id = 0
AND rev_page NOT IN ( SELECT pp_page FROM page_props WHERE pp_propname = 'disambiguation' )
AND rev_page IN ( SELECT page_id FROM page WHERE page_namespace = 0 OR page_is_redirect = 1 )
AND rev_user NOT IN ( SELECT DISTINCT ug_user FROM user_groups WHERE ug_group IN ('bot', 'autoreviewer', 'bureaucrat', 'sysop') )
GROUP BY rev_user
HAVING COUNT(*) > 25
ORDER BY creations DESC
LIMIT 500"""
query = """ SELECT
/* "editor" consisting of user_name, wrapped in HTML tags linking to the sigma "created" tool */
CONCAT (
'<a href="https://tools.wmflabs.org/sigma/created.py?name=',
user_name,
'&server=enwiki&max=100&startdate=&ns=,,&redirects=none&deleted=undeleted">',
user_name,
'</a>'
) AS editor,
/* derived column "created count" returned by this subquery */
(
SELECT count(*)
FROM revision_userindex
LEFT JOIN page ON page_id = rev_page
WHERE page_namespace = 0 AND rev_parent_id = 0 AND rev_user_text = user_name AND rev_deleted = 0 AND page_is_redirect = 0
) AS created_count
FROM
(
/* This query returns users who have created pages in the last 30 days and who are not already members of autoreviewed */
SELECT DISTINCT user_name
FROM recentchanges
LEFT JOIN user
ON rc_user = user_id
LEFT JOIN page
ON rc_cur_id=page_id
WHERE
/* User created a page within the last thirty days */
rc_timestamp > date_format(date_sub(NOW(),INTERVAL 30 DAY),'%Y%m%d%H%i%S') AND
/* It was an article */
rc_namespace = 0 AND
/* The user was human */
rc_bot = 0 AND
/* It was a new page */
rc_new = 1 AND
/* It's not a redirect */
page_is_redirect = 0 AND
/* User doesn't already have autoreviewer */
NOT EXISTS
(
SELECT 1 FROM user_groups WHERE ug_user=user_id AND ( ug_group='autoreviewer' OR ug_group='sysop' )
)
) as InnerQuery
HAVING created_count > 24
ORDER BY created_count DESC
LIMIT 500"""
cur.execute( query )

content = []
Expand Down

0 comments on commit e1c9a84

Please sign in to comment.