Merge branch 'fs#76-redfam-without-dates' into fs#70-refactoring

This commit is contained in:
2016-08-24 17:01:00 +02:00
2 changed files with 23 additions and 6 deletions

View File

@@ -109,7 +109,7 @@ class DiscussionParserBot(
for fam in red_page.parse(): for fam in red_page.parse():
# Run RedFamParser on section text # Run RedFamParser on section text
redfam.RedFamParser.parser( fam, red_page.page._pageid, redfam.RedFamParser.parser( fam, red_page.page,
red_page.is_archive() ) red_page.is_archive() )
fam_counter += 1 fam_counter += 1

View File

@@ -137,14 +137,14 @@ class RedFamParser( RedFam ):
wurde gewünscht von:" wurde gewünscht von:"
__done_notice2 = "{{Erledigt|" __done_notice2 = "{{Erledigt|"
def __init__( self, heading, red_page_id, red_page_archive, def __init__( self, heading, red_page, red_page_archive,
beginning, ending=None ): beginning, ending=None ):
""" """
Creates a RedFam object based on data collected while parsing red_pages Creates a RedFam object based on data collected while parsing red_pages
combined with possibly former known data from db combined with possibly former known data from db
@param red_fam_heading str Wikitext heading of section @param red_fam_heading str Wikitext heading of section
@param red_page_id int MediaWiki page_id @param red_page page Pywikibot.page object
@param red_page_archive bool Is red_page an archive @param red_page_archive bool Is red_page an archive
@param beginning datetime Timestamp of beginning @param beginning datetime Timestamp of beginning
str as strptime parseable string str as strptime parseable string
@@ -153,7 +153,7 @@ class RedFamParser( RedFam ):
""" """
# Set object attributes: # Set object attributes:
self._red_page_id = red_page_id self._red_page_id = red_page._pageid
self._red_page_archive = red_page_archive self._red_page_archive = red_page_archive
self._fam_hash = None self._fam_hash = None
@@ -341,7 +341,7 @@ class RedFamParser( RedFam ):
return False return False
@classmethod @classmethod
def parser( cls, text, pageid, isarchive=False ): def parser( cls, text, page, isarchive=False ):
""" """
Handles parsing of redfam section Handles parsing of redfam section
@@ -359,8 +359,21 @@ class RedFamParser( RedFam ):
# Extract beginnig and maybe ending # Extract beginnig and maybe ending
(beginning, ending) = RedFamParser.extract_dates( text, isarchive ) (beginning, ending) = RedFamParser.extract_dates( text, isarchive )
# Missing beginning (Task: FS#76)
# Use first day of month of reddisc
if not beginning:
match = re.search(
jogobot.config["redundances"]["reddiscs_onlyinclude_re"],
page.title() )
if match:
beginning = datetime.strptime(
"01. {month} {year}".format(
month=match.group(1), year=match.group(2)),
"%d. %B %Y" )
# Create the RedFam object # Create the RedFam object
RedFamParser( heading, pageid, isarchive, beginning, ending ) RedFamParser( heading, page, isarchive, beginning, ending )
@classmethod @classmethod
def extract_dates( cls, text, isarchive=False ): def extract_dates( cls, text, isarchive=False ):
@@ -401,6 +414,10 @@ class RedFamParser( RedFam ):
else: else:
ending = None ending = None
# Missing dates (Task: FS#76)
else:
beginning = None
ending = None
return (beginning, ending) return (beginning, ending)