|
|
@ -156,21 +156,21 @@ class MysqlRedPage( MysqlRed ): |
|
|
|
# Class variables for storing cached querys |
|
|
|
# '{prefix}' will be replaced during super().__init__() |
|
|
|
_cached_update_data = [] |
|
|
|
_update_query = 'UPDATE `{prefix}_red_pages` \ |
|
|
|
SET `page_title` = ?, `rev_id` = ?, `status`= ? WHERE `page_id` = ?;' |
|
|
|
_update_query = 'UPDATE `{prefix}_redpages` \ |
|
|
|
SET `pagetitle` = ?, `revid` = ?, `status`= ? WHERE `pageid` = ?;' |
|
|
|
|
|
|
|
_cached_insert_data = {} |
|
|
|
_insert_query = 'INSERT INTO `{prefix}_red_pages` \ |
|
|
|
( page_id, page_title, rev_id, status ) VALUES ( ?, ?, ?, ? );' |
|
|
|
_insert_query = 'INSERT INTO `{prefix}_redpages` \ |
|
|
|
( pageid, pagetitle, revid, status ) VALUES ( ?, ?, ?, ? );' |
|
|
|
|
|
|
|
def __init__( self, page_id ): |
|
|
|
def __init__( self, pageid ): |
|
|
|
""" |
|
|
|
Creates a new instance, runs __init__ of parent class |
|
|
|
""" |
|
|
|
|
|
|
|
super().__init__( ) |
|
|
|
|
|
|
|
self.__page_id = int( page_id ) |
|
|
|
self.__pageid = int( pageid ) |
|
|
|
|
|
|
|
self.data = self.get_page() |
|
|
|
|
|
|
@ -185,7 +185,7 @@ SET `page_title` = ?, `rev_id` = ?, `status`= ? WHERE `page_id` = ?;' |
|
|
|
""" |
|
|
|
Retrieves a red page row from MySQL-Database for given page_id |
|
|
|
|
|
|
|
@param int page_id MediaWiki page_id for page to retrieve |
|
|
|
@param int pageid MediaWiki page_id for page to retrieve |
|
|
|
|
|
|
|
@returns tuple Tuple with data for given page_id |
|
|
|
bool FALSE if none found |
|
|
@ -194,8 +194,8 @@ SET `page_title` = ?, `rev_id` = ?, `status`= ? WHERE `page_id` = ?;' |
|
|
|
cursor = type( self ).connection.cursor(mysqldb.DictCursor) |
|
|
|
|
|
|
|
cursor.execute( |
|
|
|
'SELECT * FROM `{prefix}_red_pages` WHERE `page_id` = ?;'.format( |
|
|
|
prefix=type(self).db_table_prefix), ( self.__page_id, ) ) |
|
|
|
'SELECT * FROM `{prefix}_redpages` WHERE `pageid` = ?;'.format( |
|
|
|
prefix=type(self).db_table_prefix), ( self.__pageid, ) ) |
|
|
|
|
|
|
|
res = cursor.fetchone() |
|
|
|
|
|
|
@ -204,40 +204,40 @@ SET `page_title` = ?, `rev_id` = ?, `status`= ? WHERE `page_id` = ?;' |
|
|
|
else: |
|
|
|
return False |
|
|
|
|
|
|
|
def add_page( self, page_title, rev_id, status=0 ): |
|
|
|
def add_page( self, pagetitle, revid, status=0 ): |
|
|
|
""" |
|
|
|
Inserts a red page row in MySQL-Database for given page_id |
|
|
|
Inserts a red page row in MySQL-Database for given pageid |
|
|
|
|
|
|
|
@param int rev_id MediaWiki current rev_id |
|
|
|
@param str page_title MediaWiki new page_title |
|
|
|
@param int revid MediaWiki current revid |
|
|
|
@param str pagetitle MediaWiki new pagetitle |
|
|
|
@param int status Page parsing status |
|
|
|
""" |
|
|
|
|
|
|
|
insert_data = { self.__page_id: ( self.__page_id, page_title, |
|
|
|
rev_id, status ) } |
|
|
|
insert_data = { self.__pageid: ( self.__pageid, pagetitle, |
|
|
|
revid, status ) } |
|
|
|
|
|
|
|
type( self )._cached_insert_data.update( insert_data ) |
|
|
|
|
|
|
|
# Manualy construct self.data dict |
|
|
|
self.data = { 'page_id': self.__page_id, 'rev_id': rev_id, |
|
|
|
'page_title': page_title, 'status': status } |
|
|
|
self.data = { 'pageid': self.__pageid, 'revid': revid, |
|
|
|
'pagetitle': pagetitle, 'status': status } |
|
|
|
|
|
|
|
def update_page( self, rev_id=None, page_title=None, status=0 ): |
|
|
|
def update_page( self, revid=None, pagetitle=None, status=0 ): |
|
|
|
""" |
|
|
|
Updates the red page row in MySQL-Database for given page_id |
|
|
|
|
|
|
|
@param int rev_id MediaWiki current rev_id |
|
|
|
@param str page_title MediaWiki new page_title |
|
|
|
@param int revid MediaWiki current rev_id |
|
|
|
@param str pagetitle MediaWiki new page_title |
|
|
|
@param int status Page parsing status |
|
|
|
""" |
|
|
|
|
|
|
|
if not page_title: |
|
|
|
page_title = self.data[ 'page_title' ] |
|
|
|
if not rev_id: |
|
|
|
rev_id = self.data[ 'rev_id' ] |
|
|
|
if not pagetitle: |
|
|
|
pagetitle = self.data[ 'pagetitle' ] |
|
|
|
if not revid: |
|
|
|
revid = self.data[ 'revid' ] |
|
|
|
|
|
|
|
type( self )._cached_update_data.append( ( page_title, rev_id, |
|
|
|
status, self.__page_id ) ) |
|
|
|
type( self )._cached_update_data.append( ( pagetitle, revid, |
|
|
|
status, self.__pageid ) ) |
|
|
|
|
|
|
|
|
|
|
|
class MysqlRedFam( MysqlRed ): |
|
|
@ -247,22 +247,22 @@ class MysqlRedFam( MysqlRed ): |
|
|
|
|
|
|
|
# Class variables for storing cached querys |
|
|
|
_cached_update_data = [] |
|
|
|
_update_query = 'UPDATE `{prefix}_red_families` \ |
|
|
|
SET `red_page_id` = ?, `heading` = ?, `beginning` = ?, `ending` = ?, \ |
|
|
|
`status`= ? WHERE `fam_hash` = ?;' |
|
|
|
_update_query = 'UPDATE `{prefix}_redfams` \ |
|
|
|
SET `redpageid` = ?, `heading` = ?, `beginning` = ?, `ending` = ?, \ |
|
|
|
`status`= ? WHERE `famhash` = ?;' |
|
|
|
|
|
|
|
_cached_insert_data = {} |
|
|
|
_insert_query = 'INSERT INTO `{prefix}_red_families` \ |
|
|
|
( fam_hash, red_page_id, beginning, ending, status, heading, \ |
|
|
|
_insert_query = 'INSERT INTO `{prefix}_redfams` \ |
|
|
|
( famhash, redpageid, beginning, ending, status, heading, \ |
|
|
|
article0, article1, article2, article3, article4, article5, article6, \ |
|
|
|
article7 ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? );' |
|
|
|
|
|
|
|
def __init__( self, fam_hash=None ): |
|
|
|
def __init__( self, famhash=None ): |
|
|
|
""" |
|
|
|
Creates a new instance, runs __init__ of parent class |
|
|
|
""" |
|
|
|
|
|
|
|
self.__fam_hash = fam_hash |
|
|
|
self.__famhash = famhash |
|
|
|
|
|
|
|
super().__init__( ) |
|
|
|
|
|
|
@ -273,27 +273,27 @@ article7 ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? );' |
|
|
|
""" |
|
|
|
pass |
|
|
|
|
|
|
|
def get_fam( self, fam_hash ): |
|
|
|
def get_fam( self, famhash ): |
|
|
|
""" |
|
|
|
Retrieves a red family row from MySQL-Database for given fam_hash |
|
|
|
|
|
|
|
@returns dict Dictionairy with data for given fam hash |
|
|
|
False if none found |
|
|
|
""" |
|
|
|
self.__fam_hash = fam_hash |
|
|
|
self.__famhash = famhash |
|
|
|
|
|
|
|
cursor = type( self ).connection.cursor( mysqldb.DictCursor ) |
|
|
|
|
|
|
|
cursor.execute( |
|
|
|
'SELECT * FROM `{prefix}_red_families` WHERE `fam_hash` = ?;'. |
|
|
|
format( prefix=type(self).db_table_prefix), ( fam_hash, ) ) |
|
|
|
'SELECT * FROM `{prefix}_redfams` WHERE `famhash` = ?;'. |
|
|
|
format( prefix=type(self).db_table_prefix), ( famhash, ) ) |
|
|
|
|
|
|
|
self.data = cursor.fetchone() |
|
|
|
|
|
|
|
def add_fam( self, articlesList, heading, red_page_id, |
|
|
|
def add_fam( self, articlesList, heading, redpageid, |
|
|
|
beginning, ending=None, status=0 ): |
|
|
|
|
|
|
|
data = [ self.__fam_hash, red_page_id, beginning, ending, |
|
|
|
data = [ self.__famhash, redpageid, beginning, ending, |
|
|
|
status, heading ] |
|
|
|
|
|
|
|
for article in articlesList: |
|
|
@ -304,29 +304,29 @@ article7 ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? );' |
|
|
|
|
|
|
|
data = tuple( data ) |
|
|
|
|
|
|
|
insert_data = { self.__fam_hash: data } |
|
|
|
insert_data = { self.__famhash: data } |
|
|
|
type( self )._cached_insert_data.update( insert_data ) |
|
|
|
|
|
|
|
# Manualy construct self.data dict |
|
|
|
data_keys = ( 'fam_hash', 'red_page_id', 'beginning', 'ending', |
|
|
|
data_keys = ( 'fam_hash', 'redpageid', 'beginning', 'ending', |
|
|
|
'status', 'heading', 'article0', 'article1', 'article2', |
|
|
|
'article3', 'article4', 'article5', 'article6', |
|
|
|
'article7' ) |
|
|
|
self.data = dict( zip( data_keys, data ) ) |
|
|
|
|
|
|
|
def update_fam( self, red_page_id, heading, beginning, ending, status ): |
|
|
|
def update_fam( self, redpageid, heading, beginning, ending, status ): |
|
|
|
""" |
|
|
|
Updates the red fam row in MySQL-Database for given fam_hash |
|
|
|
|
|
|
|
@param int red_page_id MediaWiki page_id |
|
|
|
@param int redpageid MediaWiki page_id |
|
|
|
@param datetime beginning Timestamp of beginning |
|
|
|
qparam datetime ending Timestamp of ending of |
|
|
|
@param int status red_fam status |
|
|
|
""" |
|
|
|
|
|
|
|
type( self )._cached_update_data.append( ( red_page_id, heading, |
|
|
|
type( self )._cached_update_data.append( ( redpageid, heading, |
|
|
|
beginning, ending, status, |
|
|
|
self.__fam_hash ) ) |
|
|
|
self.__famhash ) ) |
|
|
|
|
|
|
|
def get_by_status( self, status ): |
|
|
|
""" |
|
|
@ -336,7 +336,7 @@ article7 ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? );' |
|
|
|
cursor = type( self ).connection.cursor( mysqldb.DictCursor ) |
|
|
|
|
|
|
|
cursor.execute( |
|
|
|
'SELECT * FROM `{prefix}_red_families` WHERE `status` = ?;'.format( |
|
|
|
'SELECT * FROM `{prefix}_redfams` WHERE `status` = ?;'.format( |
|
|
|
prefix=type( self ).db_table_prefix), ( status, ) ) |
|
|
|
|
|
|
|
while True: |
|
|
@ -355,11 +355,11 @@ article7 ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? );' |
|
|
|
|
|
|
|
cursor.execute( ( |
|
|
|
'SELECT * ' + |
|
|
|
'FROM `{prefix}_red_families` `F` ' + |
|
|
|
'INNER JOIN `{prefix}_red_pages` `P` ' + |
|
|
|
'FROM `{prefix}_redfams` `F` ' + |
|
|
|
'INNER JOIN `{prefix}_redpages` `P` ' + |
|
|
|
'ON `F`.`status` = ? ' + |
|
|
|
'AND `F`.`ending` >= ? ' |
|
|
|
'AND `F`.`red_page_id` = `P`.`page_id`;').format( |
|
|
|
'AND `F`.`redpageid` = `P`.`pageid`;').format( |
|
|
|
prefix=type( self ).db_table_prefix), ( status, ending ) ) |
|
|
|
|
|
|
|
while True: |
|
|
|