| @@ -229,8 +229,9 @@ class AFCStatistics(Task): | |||||
| """ | """ | ||||
| self.logger.debug("Updating tracked submissions") | self.logger.debug("Updating tracked submissions") | ||||
| query = """SELECT s.page_id, s.page_title, s.page_modify_oldid, | 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)) | cursor.execute(query.format(self.site.name)) | ||||
| for pageid, title, oldid, real_oldid, real_title, real_ns in cursor: | 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.ignore_list, we will track it with self.track_page(). | ||||
| """ | """ | ||||
| self.logger.debug("Adding untracked pending submissions") | 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: | if title in self.ignore_list: | ||||
| continue | 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): | def delete_old(self, cursor): | ||||
| """Remove old submissions from the database. | """Remove old submissions from the database. | ||||
| @@ -432,7 +439,7 @@ class AFCStatistics(Task): | |||||
| s_user, s_time, s_id = self.get_special(pageid, chart) | s_user, s_time, s_id = self.get_special(pageid, chart) | ||||
| if s_id != result["page_special_oldid"]: | if s_id != result["page_special_oldid"]: | ||||
| cursor.execute(query2, (s_user, s_time, s_id, pageid)) | 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"], | msg = msg.format(pageid, result["page_special_user"], | ||||
| result["page_special_time"], | result["page_special_time"], | ||||
| result["page_special_oldid"], s_user, s_time, s_id) | result["page_special_oldid"], s_user, s_time, s_id) | ||||