| @@ -229,8 +229,9 @@ class AFCStatistics(Task): | |||
| """ | |||
| 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""" | |||
| 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""" | |||
| cursor.execute(query.format(self.site.name)) | |||
| for pageid, title, oldid, real_oldid, real_title, real_ns in cursor: | |||
| @@ -260,22 +261,28 @@ class AFCStatistics(Task): | |||
| self.ignore_list, we will track it with self.track_page(). | |||
| """ | |||
| self.logger.debug("Adding untracked pending submissions") | |||
| cursor.execute("SELECT page_id FROM page") | |||
| tracked = [i[0] for i in cursor.fetchall()] | |||
| category = self.site.get_category(self.pending_cat) | |||
| for page in category.get_members(): | |||
| title, pageid = page.title, page.pageid | |||
| 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: | |||
| title = title.decode("utf8").replace("_", " ") | |||
| ns = self.site.namespace_id_to_name(ns) | |||
| if ns: | |||
| title = u":".join((ns, title)) | |||
| if title in self.ignore_list: | |||
| continue | |||
| if pageid not in tracked: | |||
| msg = u"Tracking page [[{0}]] (id: {1})".format(title, pageid) | |||
| self.logger.debug(msg) | |||
| try: | |||
| self.track_page(cursor, pageid, title) | |||
| except Exception: | |||
| e = u"Error tracking page [[{0}]] (id: {1})" | |||
| self.logger.exception(e.format(title, pageid)) | |||
| msg = u"Tracking page [[{0}]] (id: {1})".format(title, pageid) | |||
| self.logger.debug(msg) | |||
| try: | |||
| self.track_page(cursor, pageid, title) | |||
| except Exception: | |||
| e = u"Error tracking page [[{0}]] (id: {1})" | |||
| self.logger.exception(e.format(title, pageid)) | |||
| def delete_old(self, cursor): | |||
| """Remove old submissions from the database. | |||
| @@ -432,7 +439,7 @@ class AFCStatistics(Task): | |||
| s_user, s_time, s_id = self.get_special(pageid, chart) | |||
| if s_id != result["page_special_oldid"]: | |||
| cursor.execute(query2, (s_user, s_time, s_id, pageid)) | |||
| msg = u"{0}: special: {1} / {2} / {3} -> {4} / {5} / {6}" | |||
| msg = u" {0}: special: {1} / {2} / {3} -> {4} / {5} / {6}" | |||
| msg = msg.format(pageid, result["page_special_user"], | |||
| result["page_special_time"], | |||
| result["page_special_oldid"], s_user, s_time, s_id) | |||