|
|
@@ -1,6 +1,6 @@ |
|
|
|
# -*- coding: utf-8 -*- |
|
|
|
# |
|
|
|
# Copyright (C) 2009-2014 Ben Kurtovic <ben.kurtovic@gmail.com> |
|
|
|
# Copyright (C) 2009-2017 Ben Kurtovic <ben.kurtovic@gmail.com> |
|
|
|
# |
|
|
|
# Permission is hereby granted, free of charge, to any person obtaining a copy |
|
|
|
# of this software and associated documentation files (the "Software"), to deal |
|
|
@@ -234,18 +234,21 @@ class AFCStatistics(Task): |
|
|
|
self._untrack_page(). |
|
|
|
""" |
|
|
|
self.logger.debug("Updating tracked submissions") |
|
|
|
query = """SELECT s.page_id, s.page_title, s.page_modify_oldid, |
|
|
|
r.page_latest, r.page_title, r.page_namespace |
|
|
|
FROM page AS s |
|
|
|
LEFT JOIN {0}_p.page AS r ON s.page_id = r.page_id |
|
|
|
WHERE s.page_modify_oldid != r.page_latest |
|
|
|
OR r.page_id IS NULL""" |
|
|
|
cursor.execute(query.format(self.site.name)) |
|
|
|
|
|
|
|
for pageid, title, oldid, real_oldid, real_title, real_ns in cursor: |
|
|
|
if not real_oldid: |
|
|
|
query1 = """SELECT page_id, page_title, page_modify_oldid |
|
|
|
FROM page""" |
|
|
|
query2 = """SELECT page_latest, page_title, page_namespace |
|
|
|
FROM page WHERE page_id = ?""" |
|
|
|
|
|
|
|
cursor.execute(query1) |
|
|
|
for pageid, title, oldid in cursor.fetchall(): |
|
|
|
result = list(self.site.sql_query(query2, (pageid,))) |
|
|
|
if not result: |
|
|
|
self._untrack_page(cursor, pageid) |
|
|
|
continue |
|
|
|
real_oldid, real_title, real_ns = result[0] |
|
|
|
if oldid == real_oldid: |
|
|
|
continue |
|
|
|
|
|
|
|
msg = u"Updating page [[{0}]] (id: {1}) @ {2}" |
|
|
|
self.logger.debug(msg.format(title, pageid, oldid)) |
|
|
|
msg = u" {0}: oldid: {1} -> {2}" |
|
|
@@ -269,15 +272,19 @@ class AFCStatistics(Task): |
|
|
|
self.ignore_list, we will track it with self._track_page(). |
|
|
|
""" |
|
|
|
self.logger.debug("Adding untracked pending submissions") |
|
|
|
query = """SELECT r.page_id, r.page_title, r.page_namespace |
|
|
|
FROM {0}_p.page AS r |
|
|
|
INNER JOIN {0}_p.categorylinks AS c ON r.page_id = c.cl_from |
|
|
|
LEFT JOIN page AS s ON r.page_id = s.page_id |
|
|
|
WHERE s.page_id IS NULL AND c.cl_to = ?""" |
|
|
|
cursor.execute(query.format(self.site.name), |
|
|
|
(self.pending_cat.replace(" ", "_"),)) |
|
|
|
|
|
|
|
for pageid, title, ns in cursor: |
|
|
|
query1 = "SELECT page_id FROM page" |
|
|
|
query2 = """SELECT page_id, page_title, page_namespace |
|
|
|
INNER JOIN categorylinks ON page_id = cl_from |
|
|
|
WHERE cl_to = ?""" |
|
|
|
|
|
|
|
cursor.execute(query1) |
|
|
|
tracked = [pid for (pid,) in cursor.fetchall()] |
|
|
|
pend_cat = self.pending_cat.replace(" ", "_") |
|
|
|
|
|
|
|
for pageid, title, ns in self.site.sql_query(query2, (pend_cat,)): |
|
|
|
if pageid in tracked: |
|
|
|
continue |
|
|
|
|
|
|
|
title = title.decode("utf8").replace("_", " ") |
|
|
|
ns_name = self.site.namespace_id_to_name(ns) |
|
|
|
if ns_name: |
|
|
|