diff --git a/mysql_red.py b/mysql_red.py index f576f2d..72e784d 100644 --- a/mysql_red.py +++ b/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() diff --git a/red_page.py b/red_page.py index e4892ef..76293e6 100644 --- a/red_page.py +++ b/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 ) +