| @@ -39,6 +39,7 @@ class Site(object): | |||||
| domain -- returns our web domain, like "en.wikipedia.org" | domain -- returns our web domain, like "en.wikipedia.org" | ||||
| api_query -- does an API query with the given kwargs as params | api_query -- does an API query with the given kwargs as params | ||||
| sql_query -- does an SQL query and yields its results | sql_query -- does an SQL query and yields its results | ||||
| get_replag -- returns the estimated database replication lag | |||||
| namespace_id_to_name -- given a namespace ID, returns associated name(s) | namespace_id_to_name -- given a namespace ID, returns associated name(s) | ||||
| namespace_name_to_id -- given a namespace name, returns associated id | namespace_name_to_id -- given a namespace name, returns associated id | ||||
| get_page -- returns a Page object for the given title | get_page -- returns a Page object for the given title | ||||
| @@ -521,6 +522,18 @@ class Site(object): | |||||
| for result in cur: | for result in cur: | ||||
| yield result | yield result | ||||
| def get_replag(self): | |||||
| """Return the estimated database replication lag in seconds. | |||||
| Requires SQL access. This function only makes sense on a replicated | |||||
| database (e.g. the Wikimedia Toolserver) and on a wiki that receives a | |||||
| large number of edits (ideally, at least one per second), or the result | |||||
| may be larger than expected. | |||||
| """ | |||||
| query = "SELECT NOW() - MAX(rev_timestamp) FROM revision" | |||||
| result = list(self.sql_query(query)) | |||||
| return result[0][0] | |||||
| def namespace_id_to_name(self, ns_id, all=False): | def namespace_id_to_name(self, ns_id, all=False): | ||||
| """Given a namespace ID, returns associated namespace names. | """Given a namespace ID, returns associated namespace names. | ||||