This is a
documentation
subpage for
Module:Rfx. It may contain usage information, categories and other content that is not part of the original module page. |
This is a library for getting information about individual
requests for adminship (RfA) and
requests for bureaucratship (RfB) pages on the English Wikipedia. It is not meant to be used directly from wiki pages, but rather to be used by other Lua modules.
First of all, the library must be loaded, like this:
local rfx = require( 'Module:Rfx' )
Once the library is loaded, you can make a new rfx object using rfx.new()
. Caution - this function is expensive (see
below).
rfx.new()
is used like this:
local myRfx = rfx.new( pagename )
The pagename
variable should be the name of a valid RfA or RfB page, for example:
local exampleRfa = rfx.new( 'Wikipedia:Requests for adminship/Example' )
If pagename
is not specified, or the page is not a subpage of
Wikipedia:Requests for adminship or
Wikipedia:Requests for bureaucratship, then rfx.new
will return nil
.
Once you have created a new rfx
object, there are a number of methods and properties that you can use. They are all read-only.
type
: the type of the rfx. This is either "rfa
" or "rfb
".supports
: the number of supports in the RfX. nil
if the supports could not be processed.opposes
: the number of opposes in the RfX. nil
if the opposes could not be processed.neutrals
: the number of neutrals in the RfX. nil
if the neutrals could not be processed.percent
: the support percentage. Calculated by and rounded to the nearest integer. nil
if it could not be processed.endTime
: the end time of the RfX. This is a string value taken from the RfX page. nil
if it could not be found.user
: the username of the RfX candidate. nil
if it could not be found.Methods must be called with the colon syntax:
local titleObject = exampleRfa:getTitleObject()
getTitleObject()
: gets the title object for the RfX page. See the
reference manual for details on how to use title objects.getSupportUsers()
: gets an array containing the usernames that supported the RfX. If any usernames could not be processed, the text "Error parsing signature" is used instead, along with the text of the comment in question. N.b. this technique relies on the text of comment text being unique - if it is not unique then dupesExist()
will treat the identical comments as duplicate votes. If the page content could not be parsed at all, this method returns nil
.getOpposeUsers()
: gets an array containing the usernames that opposed the RfX. Functions similarly to getSupportUsers()
.getNeutralUsers()
: gets an array containing the usernames that were neutral at the RfX. Functions similarly to getSupportUsers()
.dupesExist()
: returns a boolean indicating whether there were any duplicate votes at the RfX. Returns nil
if the vote tables couldn't be processed.getSecondsLeft()
: returns the number of seconds left before the RfX is due to close. Once it is due to close, shows zero. If the ending time cannot be found, returns nil
.getTimeLeft()
: returns a string showing the time left before the RfX is due to close. The string is in the format "x days, y hours
".getReport()
: returns a
URI object for X!'s RfA Analysis tool at Wikimedia Labs, preloaded with the RfX page.getStatus()
: returns a string showing the current status of the RfX. This can be "successful", "unsuccessful", "open", or "pending closure". Returns nil
if the status could not be determined.You can compare rfx
objects with the ==
operator. This will return true only if the two objects point to the same page. tostring( rfx )
will return prefixedTitle
from the RfX page's title object (see the
reference manual).
This module makes use of the
title:getContent method to fetch RfX page sources. This method will be called for each RfX page being looked up, so each use of rfx.new
will count as an
expensive function call. Please be aware that the library may fail for scripts which create many different RfX objects. (The current limit for the English Wikipedia is 500 expensive function calls per page.) Also, each RfX page that is looked up will count as a
transclusion in
Special:WhatLinksHere.
This is a
documentation
subpage for
Module:Rfx. It may contain usage information, categories and other content that is not part of the original module page. |
This is a library for getting information about individual
requests for adminship (RfA) and
requests for bureaucratship (RfB) pages on the English Wikipedia. It is not meant to be used directly from wiki pages, but rather to be used by other Lua modules.
First of all, the library must be loaded, like this:
local rfx = require( 'Module:Rfx' )
Once the library is loaded, you can make a new rfx object using rfx.new()
. Caution - this function is expensive (see
below).
rfx.new()
is used like this:
local myRfx = rfx.new( pagename )
The pagename
variable should be the name of a valid RfA or RfB page, for example:
local exampleRfa = rfx.new( 'Wikipedia:Requests for adminship/Example' )
If pagename
is not specified, or the page is not a subpage of
Wikipedia:Requests for adminship or
Wikipedia:Requests for bureaucratship, then rfx.new
will return nil
.
Once you have created a new rfx
object, there are a number of methods and properties that you can use. They are all read-only.
type
: the type of the rfx. This is either "rfa
" or "rfb
".supports
: the number of supports in the RfX. nil
if the supports could not be processed.opposes
: the number of opposes in the RfX. nil
if the opposes could not be processed.neutrals
: the number of neutrals in the RfX. nil
if the neutrals could not be processed.percent
: the support percentage. Calculated by and rounded to the nearest integer. nil
if it could not be processed.endTime
: the end time of the RfX. This is a string value taken from the RfX page. nil
if it could not be found.user
: the username of the RfX candidate. nil
if it could not be found.Methods must be called with the colon syntax:
local titleObject = exampleRfa:getTitleObject()
getTitleObject()
: gets the title object for the RfX page. See the
reference manual for details on how to use title objects.getSupportUsers()
: gets an array containing the usernames that supported the RfX. If any usernames could not be processed, the text "Error parsing signature" is used instead, along with the text of the comment in question. N.b. this technique relies on the text of comment text being unique - if it is not unique then dupesExist()
will treat the identical comments as duplicate votes. If the page content could not be parsed at all, this method returns nil
.getOpposeUsers()
: gets an array containing the usernames that opposed the RfX. Functions similarly to getSupportUsers()
.getNeutralUsers()
: gets an array containing the usernames that were neutral at the RfX. Functions similarly to getSupportUsers()
.dupesExist()
: returns a boolean indicating whether there were any duplicate votes at the RfX. Returns nil
if the vote tables couldn't be processed.getSecondsLeft()
: returns the number of seconds left before the RfX is due to close. Once it is due to close, shows zero. If the ending time cannot be found, returns nil
.getTimeLeft()
: returns a string showing the time left before the RfX is due to close. The string is in the format "x days, y hours
".getReport()
: returns a
URI object for X!'s RfA Analysis tool at Wikimedia Labs, preloaded with the RfX page.getStatus()
: returns a string showing the current status of the RfX. This can be "successful", "unsuccessful", "open", or "pending closure". Returns nil
if the status could not be determined.You can compare rfx
objects with the ==
operator. This will return true only if the two objects point to the same page. tostring( rfx )
will return prefixedTitle
from the RfX page's title object (see the
reference manual).
This module makes use of the
title:getContent method to fetch RfX page sources. This method will be called for each RfX page being looked up, so each use of rfx.new
will count as an
expensive function call. Please be aware that the library may fail for scripts which create many different RfX objects. (The current limit for the English Wikipedia is 500 expensive function calls per page.) Also, each RfX page that is looked up will count as a
transclusion in
Special:WhatLinksHere.