diff --git a/bots/reddiscparser.py b/bots/reddiscparser.py index 9179841..44f2aba 100644 --- a/bots/reddiscparser.py +++ b/bots/reddiscparser.py @@ -33,7 +33,7 @@ from pywikibot.bot import ExistingPageBot, NoRedirectPageBot import jogobot -from lib.redpage import RedPage +from lib.redpage import RedPageParser from lib.redfam import RedFamParser @@ -127,7 +127,7 @@ class DiscussionParserBot( else: # If successfully parsed all pages in cat, flush db write cache - RedPage.flush_db_cache() + RedPageParser.flush_db_cache() def treat_page( self ): """ @@ -146,13 +146,13 @@ class DiscussionParserBot( return # Initiate RedPage object - redpage = RedPage.session.query(RedPage).filter( - RedPage.pageid == self.current_page.pageid ).one_or_none() + redpage = RedPageParser.session.query(RedPageParser).filter( + RedPageParser.pageid == self.current_page.pageid ).one_or_none() if redpage: redpage.update( self.current_page ) else: - redpage = RedPage( self.current_page ) + redpage = RedPageParser( self.current_page ) # Check whether parsing is needed if redpage.is_parsing_needed(): diff --git a/lib/redpage.py b/lib/redpage.py index 69f02b8..1c535ad 100644 --- a/lib/redpage.py +++ b/lib/redpage.py @@ -30,7 +30,8 @@ import mwparserfromhell as mwparser import jogobot # noqa -from lib.mysqlred import MysqlRedPage +from lib.mysqlred import ( + MysqlRedPage, relationship, attribute_mapped_collection ) from lib.redfam import RedFamParser @@ -131,3 +132,12 @@ class RedPage( MysqlRedPage ): Calls flush method of Mysql Interface class """ cls.session.commit() + + +class RedPageParser( RedPage ): + """ + Wrapper class to change the type of redfams collection elements in parser + """ + redfams = relationship( + "RedFamParser", enable_typechecks=False, back_populates="redpage", + collection_class=attribute_mapped_collection("famhash") )