Add Wrapperclass for Parser to RedPage
Add a wrapper class to overwrite type of Items returned by RedPage.redfams relationship Related Task: [https://fs.golderweb.de/index.php?do=details&task_id=109 FS#109]
This commit is contained in:
@@ -33,7 +33,7 @@ from pywikibot.bot import ExistingPageBot, NoRedirectPageBot
|
|||||||
|
|
||||||
import jogobot
|
import jogobot
|
||||||
|
|
||||||
from lib.redpage import RedPage
|
from lib.redpage import RedPageParser
|
||||||
from lib.redfam import RedFamParser
|
from lib.redfam import RedFamParser
|
||||||
|
|
||||||
|
|
||||||
@@ -127,7 +127,7 @@ class DiscussionParserBot(
|
|||||||
else:
|
else:
|
||||||
|
|
||||||
# If successfully parsed all pages in cat, flush db write cache
|
# If successfully parsed all pages in cat, flush db write cache
|
||||||
RedPage.flush_db_cache()
|
RedPageParser.flush_db_cache()
|
||||||
|
|
||||||
def treat_page( self ):
|
def treat_page( self ):
|
||||||
"""
|
"""
|
||||||
@@ -146,13 +146,13 @@ class DiscussionParserBot(
|
|||||||
return
|
return
|
||||||
|
|
||||||
# Initiate RedPage object
|
# Initiate RedPage object
|
||||||
redpage = RedPage.session.query(RedPage).filter(
|
redpage = RedPageParser.session.query(RedPageParser).filter(
|
||||||
RedPage.pageid == self.current_page.pageid ).one_or_none()
|
RedPageParser.pageid == self.current_page.pageid ).one_or_none()
|
||||||
|
|
||||||
if redpage:
|
if redpage:
|
||||||
redpage.update( self.current_page )
|
redpage.update( self.current_page )
|
||||||
else:
|
else:
|
||||||
redpage = RedPage( self.current_page )
|
redpage = RedPageParser( self.current_page )
|
||||||
|
|
||||||
# Check whether parsing is needed
|
# Check whether parsing is needed
|
||||||
if redpage.is_parsing_needed():
|
if redpage.is_parsing_needed():
|
||||||
|
|||||||
@@ -30,7 +30,8 @@ import mwparserfromhell as mwparser
|
|||||||
|
|
||||||
import jogobot # noqa
|
import jogobot # noqa
|
||||||
|
|
||||||
from lib.mysqlred import MysqlRedPage
|
from lib.mysqlred import (
|
||||||
|
MysqlRedPage, relationship, attribute_mapped_collection )
|
||||||
from lib.redfam import RedFamParser
|
from lib.redfam import RedFamParser
|
||||||
|
|
||||||
|
|
||||||
@@ -131,3 +132,12 @@ class RedPage( MysqlRedPage ):
|
|||||||
Calls flush method of Mysql Interface class
|
Calls flush method of Mysql Interface class
|
||||||
"""
|
"""
|
||||||
cls.session.commit()
|
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") )
|
||||||
|
|||||||
Reference in New Issue
Block a user