CountryList-Module: Implement methods to get the latest entry of list
This commit is contained in:
@@ -104,3 +104,49 @@ class CountryList():
|
|||||||
# If last year does not match, raise YearError
|
# If last year does not match, raise YearError
|
||||||
if str( self.year ) not in self.page.title():
|
if str( self.year ) not in self.page.title():
|
||||||
raise CountryListYearError
|
raise CountryListYearError
|
||||||
|
|
||||||
|
def detect_belgian( self ):
|
||||||
|
"""
|
||||||
|
Detect wether current entry is on of the belgian (Belgien/Wallonien)
|
||||||
|
"""
|
||||||
|
# Check if begian province name is in link text or title
|
||||||
|
if "Wallonien" in str( self.wikilink.text ) \
|
||||||
|
or "Wallonien" in str( self.wikilink.title):
|
||||||
|
return "Wallonie"
|
||||||
|
elif "Flandern" in str( self.wikilink.text ) \
|
||||||
|
or "Flandern" in str( self.wikilink.title):
|
||||||
|
return "Flandern"
|
||||||
|
else:
|
||||||
|
return None
|
||||||
|
|
||||||
|
def generate_wikicode( self ):
|
||||||
|
"""
|
||||||
|
Runs mwparser on page.text to get mwparser.objects
|
||||||
|
"""
|
||||||
|
|
||||||
|
self.wikicode = mwparser.parse( self.page.text )
|
||||||
|
|
||||||
|
def get_latest_entry( self ):
|
||||||
|
"""
|
||||||
|
Get latest list entry template object
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Select the section "Singles"
|
||||||
|
# For belgian list we need to select subsection of country
|
||||||
|
belgian = self.detect_belgian()
|
||||||
|
|
||||||
|
if belgian:
|
||||||
|
singles_section = self.wikicode.get_sections(
|
||||||
|
matches=belgian )[0].get_sections( matches="Singles" )[0]
|
||||||
|
else:
|
||||||
|
singles_section = self.wikicode.get_sections( matches="Singles" )[0]
|
||||||
|
|
||||||
|
# Select the last occurence of template "Nummer-eins-Hits Zeile" in
|
||||||
|
# "Singles"-section
|
||||||
|
for self.entry in singles_section.ifilter_templates(
|
||||||
|
matches="Nummer-eins-Hits Zeile" ):
|
||||||
|
pass
|
||||||
|
|
||||||
|
# Check if we have found something
|
||||||
|
if not self.entry:
|
||||||
|
raise CountryListError( self.page.title() )
|
||||||
|
|||||||
Reference in New Issue
Block a user