Browse Source

Implemment handling of changed page meta data (rev_id, page_title, status)

develop
Jonathan Golder 9 years ago
parent
commit
73b5d87e8d
  1. 2
      mysql_red.py
  2. 42
      red_page.py

2
mysql_red.py

@ -70,7 +70,7 @@ class MYSQL_RED_PAGE( MYSQL_RED ):
@param int rev_id MediaWiki current rev_id for page to update
@param str page_title MediaWiki new page_title for page to update
@param int status Page parsing status (0 - not (successfully) parsed; 1 - successfully parsed)
@param int status Page parsing status (0 - not (successfully) parsed; 1 - successfully parsed; 2 - successfully parsed archive)
"""
cursor = type( self ).connection.cursor()

42
red_page.py

@ -15,9 +15,13 @@ class RED_PAGE:
self.__handle_db( )
# if( self._mysql_page ):
# self.is_page_changed()
self.is_page_changed()
self.__parsed = None
if( self.__changed or self.__mysql.data[ 'status' ] == 0 ):
self.parse()
self.__update_db()
# else:
# self.__mysql.add_page()
@ -36,15 +40,31 @@ class RED_PAGE:
"""
Check wether the page was changed since last run
"""
if( self._mysql_page[ 'rev_id' ] != self.page._revid ):
changed_rev_id = True
self._mysql_page[ 'rev_id' ] = self.page._revid
if( self._mysql_page[ 'page_title' ] != self.page.title ):
changed_title = True
self._mysql_page[ 'page_title' ] = self.page.title
if( changed_rev_id or changed_title ):
if( self.__mysql.data != { 'page_id': self.page._pageid, 'rev_id': self.page._revid, 'page_title': self.page.title, 'status': self.__mysql.data[ 'status' ] } ):
self.__changed = True
else:
self.__changed = False
def is_archive( self ):
"""
Detects wether current page is an archive of discussions
"""
if u"/Archiv" in self.page.title:
return True
else:
return False
def __update_db( self ):
"""
Updates the page meta data in mysql db
"""
if( self.__parsed ):
status = 1
if( self.is_archive() ):
status = 2
else:
status = 0
self.__mysql.update_page( self.page._revid, self.page.title, status )

Loading…
Cancel
Save