| @@ -197,20 +197,14 @@ class Task(BaseTask): | |||||
| def process_move(self, page, **kwargs): | def process_move(self, page, **kwargs): | ||||
| query1 = "SELECT * FROM page WHERE page_title = ?" | query1 = "SELECT * FROM page WHERE page_title = ?" | ||||
| query2 = "SELECT page_latest FROM page WHERE page_title = ? AND page_namespace = ?" | |||||
| query2 = "SELECT page_latest FROM page WHERE page_namespace = ? AND page_title = ?" | |||||
| query3 = "UPDATE page SET page_title = ?, page_modify_oldid = ? WHERE page_title = ?" | query3 = "UPDATE page SET page_title = ?, page_modify_oldid = ? WHERE page_title = ?" | ||||
| source, dest = page | source, dest = page | ||||
| with self.conn.cursor() as cursor, self.db_access_lock: | with self.conn.cursor() as cursor, self.db_access_lock: | ||||
| cursor.execute(query1, (source,)) | cursor.execute(query1, (source,)) | ||||
| result = cursor.fetchall() | result = cursor.fetchall() | ||||
| if result: | if result: | ||||
| dest_ns, dest_main = dest.split(":", 1)[0] | |||||
| try: | |||||
| dest_ns = self.site.namespace_name_to_id(dest_ns) | |||||
| except wiki.NamespaceNotFoundError: | |||||
| res = self.site.sql_query(query2, (dest,))) | |||||
| else: | |||||
| res = self.site.sql_query(query2, (dest_main, dest_ns))) | |||||
| res = self.site.sql_query(query2, self.split_title(dest))) | |||||
| try: | try: | ||||
| new_oldid = list(res)[0][0] | new_oldid = list(res)[0][0] | ||||
| except IndexError: | except IndexError: | ||||
| @@ -219,10 +213,20 @@ class Task(BaseTask): | |||||
| else: | else: | ||||
| self.track_page(cursor, dest) | self.track_page(cursor, dest) | ||||
| def split_title(self, title): | |||||
| namespace, body = title.split(":", 1)[0] | |||||
| if not body: | |||||
| return 0, title | |||||
| try: | |||||
| ns = self.site.namespace_name_to_id(namespace) | |||||
| except wiki.NamespaceNotFoundError: | |||||
| return 0, title | |||||
| return ns, body | |||||
| def process_delete(self, page, **kwargs): | def process_delete(self, page, **kwargs): | ||||
| query = "SELECT page_id FROM page WHERE page_title = ?" | |||||
| query = "SELECT page_id FROM page WHERE page_namespace = ? AND page_title = ?" | |||||
| with self.conn.cursor() as cursor, self.db_access_lock: | with self.conn.cursor() as cursor, self.db_access_lock: | ||||
| result = self.site.sql_query(query, (page,)) | |||||
| result = self.site.sql_query(query, self.split_title(page)) | |||||
| if list(result): | if list(result): | ||||
| self.sync_page(cursor, page) | self.sync_page(cursor, page) | ||||
| else: | else: | ||||