mediawiki-butt 0.8.1 → 0.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/mediawiki/administration.rb +4 -0
- data/lib/mediawiki/auth.rb +52 -3
- data/lib/mediawiki/butt.rb +9 -14
- data/lib/mediawiki/constants.rb +5 -1
- data/lib/mediawiki/edit.rb +21 -2
- data/lib/mediawiki/query/lists.rb +56 -2
- data/lib/mediawiki/query/meta/filerepoinfo.rb +10 -0
- data/lib/mediawiki/query/meta/siteinfo.rb +20 -0
- data/lib/mediawiki/query/meta/userinfo.rb +9 -0
- data/lib/mediawiki/query/properties/contributors.rb +10 -0
- data/lib/mediawiki/query/properties/files.rb +13 -0
- data/lib/mediawiki/query/properties/pages.rb +42 -0
- data/lib/mediawiki/query/properties/properties.rb +2 -0
- data/lib/mediawiki/query/query.rb +2 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 213456f1170993110a675e00652fb5a4319797dd
|
4
|
+
data.tar.gz: f43f85a958898445e7690dadeb99b5d30cfd56df
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7911cdaa9abcd01d41f048e2b422e1cf55d1302e768286ffeb891b90e699774f8a94dd90e646fd216b7bcde61ddaa51c0e52d1bea02240eed01f8c0a98eb9a04
|
7
|
+
data.tar.gz: 4f740f7718b7de3934c8374463d37f1d2ebd1c21d969bcb0f321736093e7168c5f3bbf10b8ec93643a34bf340d544a3dd9811330274159942cc1050f6762321b
|
@@ -5,6 +5,8 @@ module MediaWiki
|
|
5
5
|
# @param expiry [String] The expiry timestamp using a relative expiry time.
|
6
6
|
# @param reason [String] The reason to show in the block log.
|
7
7
|
# @param nocreate [Boolean] Whether to allow them to create an account.
|
8
|
+
# @see https://www.mediawiki.org/wiki/API:Block MediaWiki Block API Docs
|
9
|
+
# @since 0.5.0
|
8
10
|
# @return [String] The error code.
|
9
11
|
# @return [Int] The block ID.
|
10
12
|
def block(user, expiry = '2 weeks', reason = nil, nocreate = true)
|
@@ -31,6 +33,8 @@ module MediaWiki
|
|
31
33
|
# Unblocks the user.
|
32
34
|
# @param user [String] The user to unblock.
|
33
35
|
# @param reason [String] The reason to show in the block log.
|
36
|
+
# @see https://www.mediawiki.org/wiki/API:Block MediaWiki Block API Docs
|
37
|
+
# @since 0.5.0
|
34
38
|
# @return [String] The error code.
|
35
39
|
# @return [Int] The block ID.
|
36
40
|
def unblock(user, reason = nil)
|
data/lib/mediawiki/auth.rb
CHANGED
@@ -3,11 +3,26 @@ require_relative 'exceptions'
|
|
3
3
|
module MediaWiki
|
4
4
|
module Auth
|
5
5
|
# Checks the login result for errors. Returns true if it is successful,
|
6
|
-
#
|
6
|
+
# else false with an error raised.
|
7
7
|
# @param result [String] The parsed version of the result.
|
8
8
|
# @param secondtry [Boolean] Whether this login is the first or second try.
|
9
9
|
# False for first, true for second.
|
10
|
-
# @
|
10
|
+
# @raise [NeedTokenMoreThanOnceError] When secondtry is true and the wiki
|
11
|
+
# still returns 'NeedToken'
|
12
|
+
# @raise [NoNameError] When the username is nil or undefined.
|
13
|
+
# @raise [IllegalUsernameError] When the username is illegal.
|
14
|
+
# @raise [UsernameNotExistsError] When the username does not exist.
|
15
|
+
# @raise [EmptyPassError] When the password is nil or undefined.
|
16
|
+
# @raise [WrongPassError] When the password is incorrect.
|
17
|
+
# @raise [WrongPluginPassError] When an authentication plugin, not
|
18
|
+
# MediaWiki, claims that the password is incorrect.
|
19
|
+
# @raise [CreateBlockedError] When the wiki tries to automatically create
|
20
|
+
# an account, but the user's IP address is already blocked.
|
21
|
+
# @raise [ThrottledError] When the user has logged in, or tried to, too
|
22
|
+
# much in a particular amount of time.
|
23
|
+
# @raise [BlockedError] When the user is blocked from the wiki.
|
24
|
+
# @since 0.1.0
|
25
|
+
# @return [Boolean] true if successful. Does not return anything otherwise.
|
11
26
|
def check_login(result, secondtry)
|
12
27
|
case result
|
13
28
|
when 'Success'
|
@@ -37,8 +52,29 @@ module MediaWiki
|
|
37
52
|
end
|
38
53
|
|
39
54
|
# Checks the account creation result's error and raises the corresponding
|
40
|
-
#
|
55
|
+
# exception.
|
41
56
|
# @param error [String] The parsed error code string
|
57
|
+
# @raise [NoNameError] When the username was either not provided or is
|
58
|
+
# invalid.
|
59
|
+
# @raise [UserExistsError] When the username is already in use.
|
60
|
+
# @raise [UserPassMatchError] When the username and password are identical.
|
61
|
+
# @raise [PasswordLoginForbiddenError] When the use of the username and
|
62
|
+
# password has been forbidden.
|
63
|
+
# @raise [NoEmailTitleError] When there is no provided email address.
|
64
|
+
# @raise [InvalidEmailAddressError] When the email address has an invalid
|
65
|
+
# format.
|
66
|
+
# @raise [PasswordTooShortError] When the password is shorter than the
|
67
|
+
# $wgMinimumPasswordLength option.
|
68
|
+
# @raise [NoEmailError] When there is no email address set for the user.
|
69
|
+
# @raise [ThrottledError] When the user has created too many accounts in one
|
70
|
+
# day.
|
71
|
+
# @raise [AbortedError] When an extension has aborted this action.
|
72
|
+
# @raise [BlockedError] When the IP or logged in user is blocked.
|
73
|
+
# @raise [PermDeniedError] When the user does not have the right to create
|
74
|
+
# accounts.
|
75
|
+
# @raise [HookAbortedError] Same as AbortedError.
|
76
|
+
# @since 0.1.1
|
77
|
+
# @return [void]
|
42
78
|
def check_create(error)
|
43
79
|
case error
|
44
80
|
when 'noname'
|
@@ -74,6 +110,9 @@ module MediaWiki
|
|
74
110
|
# getting restricted data. Will return the result of #check_login
|
75
111
|
# @param username [String] The username
|
76
112
|
# @param password [String] The password
|
113
|
+
# @see check_login
|
114
|
+
# @see https://www.mediawiki.org/wiki/API:Login MediaWiki Login API Docs
|
115
|
+
# @since 0.1.0
|
77
116
|
# @return [Boolean] True if the login was successful, false if not.
|
78
117
|
def login(username, password)
|
79
118
|
params = {
|
@@ -106,6 +145,8 @@ module MediaWiki
|
|
106
145
|
end
|
107
146
|
|
108
147
|
# Logs the current user out.
|
148
|
+
# @see https://www.mediawiki.org/wiki/API:Logout MediaWiki Logout API Docs
|
149
|
+
# @since 0.1.0
|
109
150
|
# @return [Boolean] True if it was able to log anyone out, false if not
|
110
151
|
# (basically, if someone was logged in, it returns true).
|
111
152
|
def logout
|
@@ -131,6 +172,10 @@ module MediaWiki
|
|
131
172
|
# the name.
|
132
173
|
# @param reason [String] The reason for creating the account, as shown in
|
133
174
|
# the account creation log. Optional.
|
175
|
+
# @see check_create
|
176
|
+
# @see https://www.mediawiki.org/wiki/API:Account_creation MediaWiki Account
|
177
|
+
# Creation Docs
|
178
|
+
# @since 0.1.0
|
134
179
|
# @return [Boolean] True if successful, false if not.
|
135
180
|
def create_account(username, password, language = 'en', *reason)
|
136
181
|
params = {
|
@@ -179,6 +224,10 @@ module MediaWiki
|
|
179
224
|
# the name.
|
180
225
|
# @param reason [String] The reason for creating the account, as shown in
|
181
226
|
# the account creation log. Optional.
|
227
|
+
# @see check_create
|
228
|
+
# @see https://www.mediawiki.org/wiki/API:Account_creation MediaWiki Account
|
229
|
+
# Creation Docs
|
230
|
+
# @since 0.1.0
|
182
231
|
# @return [Boolean] True if successful, false if not.
|
183
232
|
def create_account_email(username, email, language = 'en', *reason)
|
184
233
|
params = {
|
data/lib/mediawiki/butt.rb
CHANGED
@@ -20,11 +20,12 @@ module MediaWiki
|
|
20
20
|
include MediaWiki::Administration
|
21
21
|
|
22
22
|
# Creates a new instance of MediaWiki::Butt. To work with any
|
23
|
-
#
|
23
|
+
# MediaWiki::Butt methods, you must first create an instance of it.
|
24
24
|
# @param url [String] The FULL wiki URL. api.php can be omitted, but it
|
25
25
|
# will make harsh assumptions about your wiki configuration.
|
26
26
|
# @param use_ssl [Boolean] Whether or not to use SSL. Will default to true.
|
27
27
|
# @param custom_agent [String] A custom User-Agent to use. Optional.
|
28
|
+
# @since 0.1.0
|
28
29
|
def initialize(url, use_ssl = true, custom_agent = nil)
|
29
30
|
@url = url =~ /api.php$/ ? url : "#{url}/api.php"
|
30
31
|
@client = HTTPClient.new
|
@@ -36,24 +37,17 @@ module MediaWiki
|
|
36
37
|
end
|
37
38
|
|
38
39
|
# Performs a generic HTTP POST action and provides the response. This
|
39
|
-
#
|
40
|
-
#
|
40
|
+
# method generally should not be used by the user, unless there is not a
|
41
|
+
# method provided by the Butt developers for a particular action.
|
41
42
|
# @param params [Hash] A basic hash containing MediaWiki API parameters.
|
42
43
|
# Please see the MediaWiki API for more information.
|
43
44
|
# @param autoparse [Boolean] Whether or not to provide a parsed version
|
44
45
|
# of the response's JSON. Will default to true.
|
45
46
|
# @param header [Hash] The header hash. Optional.
|
47
|
+
# @since 0.1.0
|
46
48
|
# @return [JSON/HTTPMessage] Parsed JSON if autoparse is true.
|
47
49
|
# @return [HTTPMessage] Raw HTTP response.
|
48
50
|
def post(params, autoparse = true, header = nil)
|
49
|
-
# Note that defining the header argument as a splat argument (*header)
|
50
|
-
# causes errors in HTTPClient. We must use header.nil? rather than a
|
51
|
-
# splat argument and defined? header due to this error. For those
|
52
|
-
# interested, the error is:
|
53
|
-
# undefined method `downcase' for {"Set-Cookie"=>"cookie"}:Hash
|
54
|
-
# This is obvisouly an error in HTTPClient, but we must work around it
|
55
|
-
# until there is a fix in the gem.
|
56
|
-
|
57
51
|
params[:format] = 'json'
|
58
52
|
header = {} if header.nil?
|
59
53
|
|
@@ -69,13 +63,14 @@ module MediaWiki
|
|
69
63
|
end
|
70
64
|
end
|
71
65
|
|
72
|
-
#
|
73
|
-
# This can be helpful to some developers, but it is mostly for use
|
74
|
-
# internally in MediaWiki::Butt.
|
66
|
+
# Gets whether the currently logged in user is a bot.
|
75
67
|
# @param username [String] The username to check. Optional. Defaults to
|
76
68
|
# the currently logged in user if nil.
|
77
69
|
# @return [Boolean] true if logged in as a bot, false if not logged in or
|
78
70
|
# logged in as a non-bot
|
71
|
+
# @since 0.1.0 as is_current_user_bot
|
72
|
+
# @since 0.3.0 as is_user_bot?
|
73
|
+
# @since 0.4.1 as user_bot?
|
79
74
|
def user_bot?(username = nil)
|
80
75
|
groups = false
|
81
76
|
|
data/lib/mediawiki/constants.rb
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
module MediaWiki
|
2
2
|
module Constants
|
3
|
-
#
|
3
|
+
# @since 0.2.0 as a module with individual global constants
|
4
|
+
# @since 0.4.0 as a module with a single global hash identical to this.
|
5
|
+
# @since 0.8.0 as its current state.
|
6
|
+
# @see https://www.mediawiki.org/wiki/Extension_default_namespaces
|
7
|
+
# MediaWiki's list of extension namespace IDs and names.
|
4
8
|
NAMESPACES = {
|
5
9
|
'MAIN' => 0,
|
6
10
|
'TALK' => 1,
|
data/lib/mediawiki/edit.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
module MediaWiki
|
2
2
|
module Edit
|
3
|
-
# Performs a standard edit.
|
4
|
-
# It cannot create pages. Please use create_page for that.
|
3
|
+
# Performs a standard non-creation edit.
|
5
4
|
# @param title [String] The page title.
|
6
5
|
# @param text [String] The new content.
|
7
6
|
# @param minor [Boolean] Will mark the edit as minor if true.
|
@@ -9,6 +8,10 @@ module MediaWiki
|
|
9
8
|
# @param bot [Boolean] Will mark the edit as bot edit if true.
|
10
9
|
# Defualts to true, for your convenience, bot developers.
|
11
10
|
# @param summary [String] The edit summary. Optional.
|
11
|
+
# @see https://www.mediawiki.org/wiki/API:Changing_wiki_content Changing
|
12
|
+
# wiki content on the MediaWiki API documentation
|
13
|
+
# @see https://www.mediawiki.org/wiki/API:Edit MediaWiki Edit API Docs
|
14
|
+
# @since 0.2.0
|
12
15
|
# @return [String] The new revision ID, or if it failed, the error code.
|
13
16
|
def edit(title, text, minor = false, bot = true, *summary)
|
14
17
|
params = {
|
@@ -41,6 +44,10 @@ module MediaWiki
|
|
41
44
|
# @param summary [String] The edit summary. Defaults to 'New page'.
|
42
45
|
# @param bot [Boolean] Will mark the edit as a bot edit if true.
|
43
46
|
# Defaults to true, for your convenience, bot developers.
|
47
|
+
# @see https://www.mediawiki.org/wiki/API:Changing_wiki_content Changing
|
48
|
+
# wiki content on the MediaWiki API documentation
|
49
|
+
# @see https://www.mediawiki.org/wiki/API:Edit MediaWiki Edit API Docs
|
50
|
+
# @since 0.3.0
|
44
51
|
# @return [String] The new page ID, or if it failed, the error code.
|
45
52
|
def create_page(title, text, summary = 'New page', bot = true)
|
46
53
|
params = {
|
@@ -74,6 +81,10 @@ module MediaWiki
|
|
74
81
|
# the last slash in the URL.
|
75
82
|
# @return [Boolean] True if the upload was successful, false if the
|
76
83
|
# file extension is not valid.
|
84
|
+
# @see https://www.mediawiki.org/wiki/API:Changing_wiki_content Changing
|
85
|
+
# wiki content on the MediaWiki API documentation
|
86
|
+
# @see https://www.mediawiki.org/wiki/API:Upload MediaWiki Upload API Docs
|
87
|
+
# @since 0.3.0
|
77
88
|
# @return [String] The warning's key if it was unsuccessful.
|
78
89
|
def upload(url, filename = nil)
|
79
90
|
params = {
|
@@ -115,6 +126,10 @@ module MediaWiki
|
|
115
126
|
# @param talk [Boolean] Whether to move the associated talk page.
|
116
127
|
# Defaults to true.
|
117
128
|
# @param redirect [Boolean] Whether to create a redirect. Defaults to false.
|
129
|
+
# @see https://www.mediawiki.org/wiki/API:Changing_wiki_content Changing
|
130
|
+
# wiki content on the MediaWiki API documentation
|
131
|
+
# @see https://www.mediawiki.org/wiki/API:Move MediaWiki Move API Docs
|
132
|
+
# @since 0.5.0
|
118
133
|
# @return [Boolean] True if it was successful.
|
119
134
|
# @return [String] The error code if it was unsuccessful.
|
120
135
|
def move(from, to, reason = nil, talk = true, redirect = false)
|
@@ -141,6 +156,10 @@ module MediaWiki
|
|
141
156
|
# Deletes a page.
|
142
157
|
# @param title [String] The page to delete.
|
143
158
|
# @param reason [String] The reason to be displayed in logs. Optional.
|
159
|
+
# @see https://www.mediawiki.org/wiki/API:Changing_wiki_content Changing
|
160
|
+
# wiki content on the MediaWiki API documentation
|
161
|
+
# @see https://www.mediawiki.org/wiki/API:Delete MediaWiki Delete API Docs
|
162
|
+
# @since 0.5.0
|
144
163
|
# @return [Boolean] True if successful.
|
145
164
|
# @return [String] The error code if it was not successful.
|
146
165
|
def delete(title, reason = nil)
|
@@ -9,6 +9,9 @@ module MediaWiki
|
|
9
9
|
# @param limit [Int] The maximum number of pages to get. Defaults to 500,
|
10
10
|
# and cannot be greater than that unless the user is a bot. If the user
|
11
11
|
# is a bot, the limit cannot be greater than 5000.
|
12
|
+
# @see https://www.mediawiki.org/wiki/API:Backlinks MediaWiki Backlinks
|
13
|
+
# API Docs
|
14
|
+
# @since 0.1.0
|
12
15
|
# @return [Array] All backlinks until the limit
|
13
16
|
def what_links_here(title, limit = 500)
|
14
17
|
params = {
|
@@ -32,6 +35,9 @@ module MediaWiki
|
|
32
35
|
# @param limit [Int] The maximum number of members to get. Defaults to
|
33
36
|
# 500, and cannot be greater than that unless the user is a bot.
|
34
37
|
# If the user is a bot, the limit cannot be greater than 5000.
|
38
|
+
# @see https://www.mediawiki.org/wiki/API:Categorymembers MediaWiki
|
39
|
+
# Category Members API Docs
|
40
|
+
# @since 0.1.0
|
35
41
|
# @return [Array] All category members until the limit
|
36
42
|
def get_category_members(category, limit = 500)
|
37
43
|
params = {
|
@@ -59,6 +65,8 @@ module MediaWiki
|
|
59
65
|
# or 20 for bots.
|
60
66
|
# @param namespace [Int] The namespace ID. Defaults to
|
61
67
|
# 0 (the main namespace).
|
68
|
+
# @see https://www.mediawiki.org/wiki/API:Random MediaWiki Random API Docs
|
69
|
+
# @since 0.2.0
|
62
70
|
# @return [Array] All members
|
63
71
|
def get_random_pages(number_of_pages = 1, namespace = 0)
|
64
72
|
params = {
|
@@ -67,7 +75,7 @@ module MediaWiki
|
|
67
75
|
rnlimit: get_limited(number_of_pages, 10, 20)
|
68
76
|
}
|
69
77
|
|
70
|
-
if
|
78
|
+
if MediaWiki::Constants::NAMESPACES.value?(namespace)
|
71
79
|
params[:rnnamespace] = namespace
|
72
80
|
else
|
73
81
|
params[:rnnamespace] = 0
|
@@ -81,10 +89,13 @@ module MediaWiki
|
|
81
89
|
end
|
82
90
|
|
83
91
|
# Gets user information. This method should rarely be used by
|
84
|
-
#
|
92
|
+
# normal users, unless they want a huge amount of user data at once.
|
85
93
|
# @param prop [String] The usprop parameter.
|
86
94
|
# @param username [String] The username to get info for. Optional.
|
87
95
|
# Defaults to the currently logged in user if ommitted.
|
96
|
+
# @see https://www.mediawiki.org/wiki/API:Users MediaWiki User Lists API
|
97
|
+
# Docs
|
98
|
+
# @since 0.3.0
|
88
99
|
# @return [String] Parsed full response if successful.
|
89
100
|
# @return [Nil] If the username is nil and the Butt is not logged in.
|
90
101
|
def get_userlists(prop, username = nil)
|
@@ -111,6 +122,8 @@ module MediaWiki
|
|
111
122
|
# Gets an array of all the user's groups.
|
112
123
|
# @param username [String] The username to get groups of. Optional.
|
113
124
|
# Defaults to the currently logged in user.
|
125
|
+
# @see get_userlists
|
126
|
+
# @since 0.3.0
|
114
127
|
# @return [Array] All of the user's groups.
|
115
128
|
# @return [Boolean] False if username is nil and not logged in.
|
116
129
|
def get_usergroups(username = nil)
|
@@ -135,6 +148,8 @@ module MediaWiki
|
|
135
148
|
# Gets the user rights for the user.
|
136
149
|
# @param username [String] The user to get the rights for. Optional.
|
137
150
|
# Defaults to the currently logged in user.
|
151
|
+
# @see get_userlists
|
152
|
+
# @since 0.3.0
|
138
153
|
# @return [Array] All of the user's groups.
|
139
154
|
# @return [Boolean] False if username is nil and not logged in.
|
140
155
|
def get_userrights(username = nil)
|
@@ -161,6 +176,8 @@ module MediaWiki
|
|
161
176
|
# Gets contribution count for the user.
|
162
177
|
# @param username [String] The username to get the contribution count of.
|
163
178
|
# Optional. Defaults to the currently logged in user.
|
179
|
+
# @see get_userlists
|
180
|
+
# @since 0.3.0
|
164
181
|
# @return [Boolean] False if username is nil and not logged in.
|
165
182
|
# @return [Int] The number of contributions the user has made.
|
166
183
|
def get_contrib_count(username = nil)
|
@@ -183,6 +200,8 @@ module MediaWiki
|
|
183
200
|
# Gets when the user registered.
|
184
201
|
# @param username [String] The username to get the registration date and
|
185
202
|
# time of. Optional. Defaults to the currently logged in user.
|
203
|
+
# @see get_userlists
|
204
|
+
# @since 0.4.0
|
186
205
|
# @return [DateTime] The registration date and time as a DateTime object.
|
187
206
|
def get_registration_time(username = nil)
|
188
207
|
time = nil
|
@@ -211,6 +230,8 @@ module MediaWiki
|
|
211
230
|
|
212
231
|
# Gets the gender for the provded user.
|
213
232
|
# @param username [String] The user.
|
233
|
+
# @see get_userlists
|
234
|
+
# @since 0.4.0
|
214
235
|
# @return [String] The gender. 'male', 'female', or 'unknown'.
|
215
236
|
def get_user_gender(username)
|
216
237
|
gender = nil
|
@@ -224,6 +245,8 @@ module MediaWiki
|
|
224
245
|
# @param search_value [String] The thing to search for.
|
225
246
|
# @param namespace [Int] The namespace to search in.
|
226
247
|
# Defaults to 0 (the main namespace).
|
248
|
+
# @see https://www.mediawiki.org/wiki/API:Search MediaWiki Search API Docs
|
249
|
+
# @since 0.4.0
|
227
250
|
# @return [Int] The number of pages that matched the search.
|
228
251
|
def get_search_result_amount(search_value, namespace = 0)
|
229
252
|
params = {
|
@@ -246,6 +269,8 @@ module MediaWiki
|
|
246
269
|
# @param search_value [String] The thing to search for.
|
247
270
|
# @param namespace [Int] The namespace to search in.
|
248
271
|
# Defaults to 0 (the main namespace).
|
272
|
+
# @see https://www.mediawiki.org/wiki/API:Search MediaWiki Search API Docs
|
273
|
+
# @since 0.4.0
|
249
274
|
# @return [Array] The page titles that matched the search.
|
250
275
|
def get_search_results(search_value, namespace = 0)
|
251
276
|
params = {
|
@@ -271,6 +296,9 @@ module MediaWiki
|
|
271
296
|
# Gets all categories on the entire wiki.
|
272
297
|
# @param limit [Int] The maximum number of categories to get. Defaults to
|
273
298
|
# 500. Cannot be greater than 500 for normal users, or 5000 for bots.
|
299
|
+
# @see https://www.mediawiki.org/wiki/API:Allcategories MediaWiki
|
300
|
+
# Allcategories API Docs
|
301
|
+
# @since 0.7.0
|
274
302
|
# @return [Array] An array of all categories.
|
275
303
|
def get_all_categories(limit = 500)
|
276
304
|
params = {
|
@@ -290,6 +318,9 @@ module MediaWiki
|
|
290
318
|
# Gets all the images on the wiki.
|
291
319
|
# @param limit [Int] The maximum number of images to get. Defaults to 500.
|
292
320
|
# Cannot be greater than 500 for normal users, or 5000 for bots.
|
321
|
+
# @see https://www.mediawiki.org/wiki/API:Allimages MediaWiki Allimages
|
322
|
+
# API Docs
|
323
|
+
# @since 0.7.0
|
293
324
|
# @return [Array] An array of all images.
|
294
325
|
def get_all_images(limit = 500)
|
295
326
|
params = {
|
@@ -309,6 +340,9 @@ module MediaWiki
|
|
309
340
|
# Gets all pages within a namespace integer.
|
310
341
|
# @param namespace [Int] The namespace ID.
|
311
342
|
# @param limit [Int] See #get_all_images
|
343
|
+
# @see https://www.mediawiki.org/wiki/API:Allpages MediaWiki Allpages
|
344
|
+
# API Docs
|
345
|
+
# @since 0.8.0
|
312
346
|
# @return [Array] An array of all page titles.
|
313
347
|
def get_all_pages_in_namespace(namespace, limit = 500)
|
314
348
|
params = {
|
@@ -329,6 +363,9 @@ module MediaWiki
|
|
329
363
|
# Gets all users, or all users in a group.
|
330
364
|
# @param group [String] The group to limit this query to.
|
331
365
|
# @param limit [Int] See #get_all_images.
|
366
|
+
# @see https://www.mediawiki.org/wiki/API:Allusers MediaWiki Allusers
|
367
|
+
# API Docs
|
368
|
+
# @since 0.8.0
|
332
369
|
# @return [Hash] A hash of all users, names are keys, IDs are values.
|
333
370
|
def get_all_users(group = nil, limit = 500)
|
334
371
|
params = {
|
@@ -349,6 +386,8 @@ module MediaWiki
|
|
349
386
|
# Gets all block IDs on the wiki. It seems like this only gets non-IP
|
350
387
|
# blocks, but the MediaWiki docs are a bit unclear.
|
351
388
|
# @param limit [Int] See #get_all_images.
|
389
|
+
# @see https://www.mediawiki.org/wiki/API:Blocks MediaWiki Blocks API Docs
|
390
|
+
# @since 0.8.0
|
352
391
|
# @return [Array] All block IDs as strings.
|
353
392
|
def get_all_blocks(limit = 500)
|
354
393
|
params = {
|
@@ -369,6 +408,9 @@ module MediaWiki
|
|
369
408
|
# Gets all page titles that transclude a given page.
|
370
409
|
# @param page [String] The page name.
|
371
410
|
# @param limit [Int] See #get_all_images.
|
411
|
+
# @see https://www.mediawiki.org/wiki/API:Embeddedin MediaWiki Embeddedin
|
412
|
+
# API Docs
|
413
|
+
# @since 0.8.0
|
372
414
|
# @return [Array] All transcluder page titles.
|
373
415
|
def get_all_transcluders(page, limit = 500)
|
374
416
|
params = {
|
@@ -388,6 +430,9 @@ module MediaWiki
|
|
388
430
|
|
389
431
|
# Gets an array of all deleted or archived files on the wiki.
|
390
432
|
# @param limit [Int] See #get_all_images
|
433
|
+
# @see https://www.mediawiki.org/wiki/API:Filearchive MediaWiki
|
434
|
+
# Filearchive API Docs
|
435
|
+
# @since 0.8.0
|
391
436
|
# @return [Array] All deleted file names. These are not titles, so they do
|
392
437
|
# not include "File:".
|
393
438
|
def get_all_deleted_files(limit = 500)
|
@@ -408,6 +453,9 @@ module MediaWiki
|
|
408
453
|
# Gets a list of all protected pages, by protection level if provided.
|
409
454
|
# @param protection_level [String] The protection level, e.g., sysop
|
410
455
|
# @param limit [Int] See #get_all_images.
|
456
|
+
# @see https://www.mediawiki.org/wiki/API:Protectedtitles MediaWiki
|
457
|
+
# Protectedtitles API Docs
|
458
|
+
# @since 0.8.0
|
411
459
|
# @return [Array] All protected page titles.
|
412
460
|
def get_all_protected_titles(protection_level = nil, limit = 500)
|
413
461
|
params = {
|
@@ -428,6 +476,9 @@ module MediaWiki
|
|
428
476
|
# Gets the latest contributions by the user until the limit.
|
429
477
|
# @param user [String] The username.
|
430
478
|
# @param limit [Int] See #get_all_images.
|
479
|
+
# @see https://www.mediawiki.org/wiki/API:Usercontribs MediaWiki
|
480
|
+
# User Contributions API Docs
|
481
|
+
# @since 0.8.0
|
431
482
|
# @return [Hash] Each contribution by its revid, containing the title,
|
432
483
|
# summary, total contribution size, and the size change relative to the
|
433
484
|
# previous edit.
|
@@ -459,6 +510,9 @@ module MediaWiki
|
|
459
510
|
# currently logged in user, according to the MediaWiki API.
|
460
511
|
# @param user [String] The username.
|
461
512
|
# @param limit [Int] See #get_all_images.
|
513
|
+
# @see https://www.mediawiki.org/wiki/API:Watchlist MediaWiki Watchlist
|
514
|
+
# API Docs
|
515
|
+
# @since 0.8.0
|
462
516
|
# @return [Array] All the watchlist page titles.
|
463
517
|
def get_full_watchlist(user = nil, limit = 500)
|
464
518
|
params = {
|
@@ -1,9 +1,12 @@
|
|
1
1
|
module MediaWiki
|
2
2
|
module Query
|
3
3
|
module Meta
|
4
|
+
# @see https://www.mediawiki.org/wiki/API:Filerepoinfo MediaWiki
|
5
|
+
# Filerepoinfo API Docs
|
4
6
|
module FileRepoInfo
|
5
7
|
# Gets FileRepoInfo for the property.
|
6
8
|
# @param prop [String] The friprop to get.
|
9
|
+
# @since 0.7.0
|
7
10
|
# @return [Response] The full parsed response.
|
8
11
|
def get_filerepoinfo(prop)
|
9
12
|
params = {
|
@@ -16,6 +19,7 @@ module MediaWiki
|
|
16
19
|
end
|
17
20
|
|
18
21
|
# Returns an array of all the wiki's file repository names.
|
22
|
+
# @since 0.1.0
|
19
23
|
# @return [Array] All wiki's file repository names.
|
20
24
|
def get_filerepo_names
|
21
25
|
response = get_filerepoinfo('name|displayname')
|
@@ -25,6 +29,7 @@ module MediaWiki
|
|
25
29
|
end
|
26
30
|
|
27
31
|
# Gets the root URLs for the file repositories.
|
32
|
+
# @since 0.7.0
|
28
33
|
# @return [Hash] A hash containing keys of the names, and values of the
|
29
34
|
# root URLs.
|
30
35
|
def get_filerepo_rooturls
|
@@ -35,6 +40,7 @@ module MediaWiki
|
|
35
40
|
end
|
36
41
|
|
37
42
|
# Gets an array containing all local repositories.
|
43
|
+
# @since 0.7.0
|
38
44
|
# @return [Array] All repositories that are marked as local.
|
39
45
|
def get_local_filerepos
|
40
46
|
response = get_filerepoinfo('name|local')
|
@@ -47,6 +53,7 @@ module MediaWiki
|
|
47
53
|
end
|
48
54
|
|
49
55
|
# Gets an array containing all repositories that aren't local.
|
56
|
+
# @since 0.7.0
|
50
57
|
# @return [Array] All repositories that are not marked as local.
|
51
58
|
def get_nonlocal_filerepos
|
52
59
|
response = get_filerepoinfo('name|local')
|
@@ -59,6 +66,7 @@ module MediaWiki
|
|
59
66
|
end
|
60
67
|
|
61
68
|
# Gets the repository names and their according URLs.
|
69
|
+
# @since 0.7.0
|
62
70
|
# @return [Hash] Names as the keys, with their URLs as the values.
|
63
71
|
def get_filerepo_urls
|
64
72
|
response = get_filerepoinfo('name|url')
|
@@ -68,6 +76,7 @@ module MediaWiki
|
|
68
76
|
end
|
69
77
|
|
70
78
|
# Gets the repository names and their accoring thumbnail URLs.
|
79
|
+
# @since 0.7.0
|
71
80
|
# @return [Hash] Names as the keys, with their URLs as the values.
|
72
81
|
def get_filerepo_thumburls
|
73
82
|
response = get_filerepoinfo('name|thumbUrl')
|
@@ -77,6 +86,7 @@ module MediaWiki
|
|
77
86
|
end
|
78
87
|
|
79
88
|
# Gets the repository names and their according favicon URLs.
|
89
|
+
# @since 0.7.0
|
80
90
|
# @return [Hash] Names as the keys, with their favicons as the values.
|
81
91
|
def get_filerepo_favicons
|
82
92
|
response = get_filerepoinfo('name|favicon')
|
@@ -1,10 +1,13 @@
|
|
1
1
|
module MediaWiki
|
2
2
|
module Query
|
3
3
|
module Meta
|
4
|
+
# @see https://www.mediawiki.org/wiki/API:Siteinfo MediaWiki Siteinfo
|
5
|
+
# API Docs
|
4
6
|
module SiteInfo
|
5
7
|
# Gets wiki information. This method should rarely be used by
|
6
8
|
# normal users.
|
7
9
|
# @param prop [String] The siprop parameter.
|
10
|
+
# @since 0.6.0
|
8
11
|
# @return [Response] Parsed full response.
|
9
12
|
def get_siteinfo(prop)
|
10
13
|
params = {
|
@@ -17,6 +20,7 @@ module MediaWiki
|
|
17
20
|
end
|
18
21
|
|
19
22
|
# Gets the statistics for the wiki.
|
23
|
+
# @since 0.6.0
|
20
24
|
# @return [Hash] The statistics and their according values.
|
21
25
|
def get_statistics
|
22
26
|
response = get_siteinfo('statistics')
|
@@ -26,6 +30,7 @@ module MediaWiki
|
|
26
30
|
end
|
27
31
|
|
28
32
|
# Gets the general information for the wiki.
|
33
|
+
# @since 0.6.0
|
29
34
|
# @return [Hash] The general info and their according values.
|
30
35
|
def get_general
|
31
36
|
response = get_siteinfo('general')
|
@@ -35,6 +40,7 @@ module MediaWiki
|
|
35
40
|
end
|
36
41
|
|
37
42
|
# Gets all extensions installed on the wiki.
|
43
|
+
# @since 0.6.0
|
38
44
|
# @return [Array] All extension names.
|
39
45
|
def get_extensions
|
40
46
|
response = get_siteinfo('extensions')
|
@@ -44,6 +50,7 @@ module MediaWiki
|
|
44
50
|
end
|
45
51
|
|
46
52
|
# Gets all languages and their codes.
|
53
|
+
# @since 0.6.0
|
47
54
|
# @return [Hash] All languages. Hash key value pair formatted as
|
48
55
|
# code => name.
|
49
56
|
def get_languages
|
@@ -55,6 +62,7 @@ module MediaWiki
|
|
55
62
|
|
56
63
|
# Gets all namespaces on the wiki and their IDs. Different from the
|
57
64
|
# Namespaces module.
|
65
|
+
# @since 0.6.0
|
58
66
|
# @return [Hash] All namespaces, formatted as ID => Name.
|
59
67
|
def get_namespaces
|
60
68
|
response = get_siteinfo('namespaces')
|
@@ -68,6 +76,7 @@ module MediaWiki
|
|
68
76
|
end
|
69
77
|
|
70
78
|
# Gets all namespace aliases and their IDs.
|
79
|
+
# @since 0.6.0
|
71
80
|
# @return [Hash] All aliases, formatted as ID => Alias.
|
72
81
|
def get_namespace_aliases
|
73
82
|
response = get_siteinfo('namespacealiases')
|
@@ -79,6 +88,7 @@ module MediaWiki
|
|
79
88
|
end
|
80
89
|
|
81
90
|
# Gets all special page aliases.
|
91
|
+
# @since 0.6.0
|
82
92
|
# @return [Hash] All aliases, formatted as RealName => Alias.
|
83
93
|
def get_special_page_aliases
|
84
94
|
response = get_siteinfo('specialpagealiases')
|
@@ -90,6 +100,7 @@ module MediaWiki
|
|
90
100
|
end
|
91
101
|
|
92
102
|
# Gets all magic words and their aliases.
|
103
|
+
# @since 0.6.0
|
93
104
|
# @return [Hash] All magic words, formatted as Name => Alias.
|
94
105
|
def get_magic_words
|
95
106
|
response = get_siteinfo('magicwords')
|
@@ -101,6 +112,7 @@ module MediaWiki
|
|
101
112
|
end
|
102
113
|
|
103
114
|
# Gets all user groups total.
|
115
|
+
# @since 0.6.0
|
104
116
|
# @return [Hash] All groups, formatted as Name => [Rights].
|
105
117
|
def get_all_usergroups
|
106
118
|
response = get_siteinfo('usergroups')
|
@@ -112,6 +124,7 @@ module MediaWiki
|
|
112
124
|
end
|
113
125
|
|
114
126
|
# Gets all file extensions that are allowed to be uploaded.
|
127
|
+
# @since 0.6.0
|
115
128
|
# @return [Array] All file extensions.
|
116
129
|
def get_allowed_file_extensions
|
117
130
|
response = get_siteinfo('fileextensions')
|
@@ -124,12 +137,14 @@ module MediaWiki
|
|
124
137
|
|
125
138
|
# Gets the response for the restrictions siteinfo API. Not really for
|
126
139
|
# use by users, mostly for the other two restriction methods.
|
140
|
+
# @since 0.6.0
|
127
141
|
def get_restrictions_data
|
128
142
|
response = get_siteinfo('restrictions')
|
129
143
|
response['query']['restrictions']
|
130
144
|
end
|
131
145
|
|
132
146
|
# Gets all restriction/protection types.
|
147
|
+
# @since 0.6.0
|
133
148
|
# @return [Array] All protection types.
|
134
149
|
def get_restriction_types
|
135
150
|
restrictions = get_restrictions_data
|
@@ -139,6 +154,7 @@ module MediaWiki
|
|
139
154
|
end
|
140
155
|
|
141
156
|
# Gets all restriction/protection levels.
|
157
|
+
# @since 0.6.0
|
142
158
|
# @return [Array] All protection levels.
|
143
159
|
def get_restriction_levels
|
144
160
|
restrictions = get_restrictions_data
|
@@ -148,6 +164,7 @@ module MediaWiki
|
|
148
164
|
end
|
149
165
|
|
150
166
|
# Gets all skins and their codes.
|
167
|
+
# @since 0.6.0
|
151
168
|
# @return [Hash] All skins, formatted as Code => Name
|
152
169
|
def get_skins
|
153
170
|
response = get_siteinfo('skins')
|
@@ -159,6 +176,7 @@ module MediaWiki
|
|
159
176
|
end
|
160
177
|
|
161
178
|
# Gets all HTML tags added by installed extensions.
|
179
|
+
# @since 0.6.0
|
162
180
|
# @return [Array] All extension tags.
|
163
181
|
def get_extension_tags
|
164
182
|
response = get_siteinfo('extensiontags')
|
@@ -170,6 +188,7 @@ module MediaWiki
|
|
170
188
|
end
|
171
189
|
|
172
190
|
# Gets all function hooks.
|
191
|
+
# @since 0.6.0
|
173
192
|
# @return [Array] All function hooks.
|
174
193
|
def get_function_hooks
|
175
194
|
response = get_siteinfo('functionhooks')
|
@@ -181,6 +200,7 @@ module MediaWiki
|
|
181
200
|
end
|
182
201
|
|
183
202
|
# Gets all variables that are usable on the wiki, such as NUMBEROFPAGES.
|
203
|
+
# @since 0.6.0
|
184
204
|
# @return [Array] All variable string values.
|
185
205
|
def get_variables
|
186
206
|
response = get_siteinfo('variables')
|
@@ -1,9 +1,12 @@
|
|
1
1
|
module MediaWiki
|
2
2
|
module Query
|
3
3
|
module Meta
|
4
|
+
# @see https://www.mediawiki.org/wiki/API:Userinfo MediaWiki Userinfo
|
5
|
+
# API Docs
|
4
6
|
module UserInfo
|
5
7
|
# Gets meta information for the currently logged in user.
|
6
8
|
# @param prop [String] The uiprop to get. Optional.
|
9
|
+
# @since 0.4.0
|
7
10
|
# @return [Response/Boolean] Either a full, parsed response.
|
8
11
|
# @return [Boolean] False if not logged in.
|
9
12
|
def get_current_user_meta(prop = nil)
|
@@ -21,6 +24,7 @@ module MediaWiki
|
|
21
24
|
end
|
22
25
|
|
23
26
|
# Gets the current user's username.
|
27
|
+
# @since 0.7.0
|
24
28
|
# @return [String] Returns the username.
|
25
29
|
# @return [Boolean] False if...
|
26
30
|
def get_current_user_name
|
@@ -36,6 +40,7 @@ module MediaWiki
|
|
36
40
|
|
37
41
|
# Returns whether or not the currently logged in user has any unread
|
38
42
|
# messages on their talk page.
|
43
|
+
# @since 0.7.0
|
39
44
|
# @return [Boolean] True if they have unreads, else false.
|
40
45
|
def current_user_hasmsg?
|
41
46
|
response = get_current_user_meta('hasmsg')
|
@@ -52,6 +57,7 @@ module MediaWiki
|
|
52
57
|
|
53
58
|
# Gets a hash-of-arrays containing all the groups the user can add and
|
54
59
|
# remove people from.
|
60
|
+
# @since 0.7.0
|
55
61
|
# @return [Boolean] False if get_current_user_meta is false
|
56
62
|
# @return [Hash] All the groups that the user can add, remove, add-self,
|
57
63
|
# and remove-self.
|
@@ -79,6 +85,7 @@ module MediaWiki
|
|
79
85
|
end
|
80
86
|
|
81
87
|
# Gets the currently logged in user's real name.
|
88
|
+
# @since 0.7.0
|
82
89
|
# @return [String] The user's real name.
|
83
90
|
# @return [Nil] If they don't have a real name set.
|
84
91
|
def get_realname
|
@@ -91,6 +98,7 @@ module MediaWiki
|
|
91
98
|
end
|
92
99
|
|
93
100
|
# Gets the currently logged in user's email address.
|
101
|
+
# @since 0.7.0
|
94
102
|
# @return [String] The user's email address.
|
95
103
|
# @return [Nil] If their email address is not set.
|
96
104
|
def get_email_address
|
@@ -103,6 +111,7 @@ module MediaWiki
|
|
103
111
|
end
|
104
112
|
|
105
113
|
# Gets the user's options.
|
114
|
+
# @since 0.7.0
|
106
115
|
# @return [Hash] The user's options.
|
107
116
|
def get_current_user_options
|
108
117
|
response = get_current_user_meta('options')
|
@@ -9,6 +9,9 @@ module MediaWiki
|
|
9
9
|
# @param limit [Int] The maximum number of users to get. Defaults to 500
|
10
10
|
# and cannot be greater than that unless the user is a bot. If the
|
11
11
|
# user is a bot, the limit cannot be greater than 5000.
|
12
|
+
# @see get_anonymous_contributors_count
|
13
|
+
# @see get_logged_in_contributors
|
14
|
+
# @since 0.8.0
|
12
15
|
# @return [Int] The number of contributors to that page.
|
13
16
|
def get_total_contributors(title, limit = 500)
|
14
17
|
anon_users = get_anonymous_contributors_count(title, limit)
|
@@ -20,6 +23,8 @@ module MediaWiki
|
|
20
23
|
# Gets the non-anonymous contributors for the given page.
|
21
24
|
# @param title [String] See #get_total_contributors
|
22
25
|
# @param limit [Int] See #get_total_contributors
|
26
|
+
# @see get_contributors_response
|
27
|
+
# @since 0.8.0
|
23
28
|
# @return [Array] All usernames for the contributors.
|
24
29
|
def get_logged_in_contributors(title, limit = 500)
|
25
30
|
response = get_contributors_response(title, limit)
|
@@ -42,6 +47,9 @@ module MediaWiki
|
|
42
47
|
# Gets the parsed response for the contributors property.
|
43
48
|
# @param title [String] See #get_total_contributors
|
44
49
|
# @param limit [Int] See #get_total_contributors
|
50
|
+
# @see https://www.mediawiki.org/wiki/API:Contributors MediaWiki
|
51
|
+
# Contributors Property API Docs
|
52
|
+
# @since 0.8.0
|
45
53
|
# @return [JSON] See #post
|
46
54
|
def get_contributors_response(title, limit = 500)
|
47
55
|
params = {
|
@@ -57,6 +65,8 @@ module MediaWiki
|
|
57
65
|
# Gets the total number of anonymous contributors for the given page.
|
58
66
|
# @param title [String] See #get_total_contributors
|
59
67
|
# @param limit [Int] See #get_total_contributors
|
68
|
+
# @see get_contributors_response
|
69
|
+
# @since 0.8.0
|
60
70
|
# @return [Int] The number of anonymous contributors for the page.
|
61
71
|
def get_anonymous_contributors_count(title, limit = 500)
|
62
72
|
response = get_contributors_response(title, limit)
|
@@ -7,6 +7,9 @@ module MediaWiki
|
|
7
7
|
# Gets the duplicated files of the title.
|
8
8
|
# @param title [String] The title to get duplicated files of.
|
9
9
|
# @param limit [Int] The maximum number of files to get.
|
10
|
+
# @see https://www.mediawiki.org/wiki/API:Duplicatefiles MediaWiki
|
11
|
+
# Duplicate Files API Docs
|
12
|
+
# @since 0.8.0
|
10
13
|
# @return [Array] Array of all the duplicated file names.
|
11
14
|
# @return [Nil] If there aren't any duplicated files.
|
12
15
|
def get_duplicated_files_of(title, limit = 500)
|
@@ -30,6 +33,9 @@ module MediaWiki
|
|
30
33
|
|
31
34
|
# Gets all duplicated files on the wiki.
|
32
35
|
# @param limit [Int] The maximum number of files to get.
|
36
|
+
# @see https://www.mediawiki.org/wiki/API:Duplicatefiles MediaWiki
|
37
|
+
# Duplicate Files API Docs
|
38
|
+
# @since 0.8.0
|
33
39
|
# @return [Array] All duplicate file titles on the wiki.
|
34
40
|
def get_all_duplicated_files(limit = 500)
|
35
41
|
params = {
|
@@ -49,6 +55,8 @@ module MediaWiki
|
|
49
55
|
|
50
56
|
# Gets the size of an image in bytes.
|
51
57
|
# @param image [String] The image to get info for.
|
58
|
+
# @see get_image_sizes
|
59
|
+
# @since 0.8.0
|
52
60
|
# @return [Fixnum] The number of bytes.
|
53
61
|
# @return [Nil] If the image does not exist.
|
54
62
|
def get_image_bytes(image)
|
@@ -59,6 +67,8 @@ module MediaWiki
|
|
59
67
|
|
60
68
|
# Gets the dimensions of an image as width, height.
|
61
69
|
# @param image [String] The image to get info for.
|
70
|
+
# @see get_image_sizes
|
71
|
+
# @since 0.8.0
|
62
72
|
# @return [Array] The dimensions as width, height.
|
63
73
|
# @return [Nil] If the image does not exist.
|
64
74
|
def get_image_dimensions(image)
|
@@ -71,6 +81,9 @@ module MediaWiki
|
|
71
81
|
|
72
82
|
# Gets the imageinfo property 'size' for the image.
|
73
83
|
# @param image [String] The image to get info for.
|
84
|
+
# @see https://www.mediawiki.org/wiki/API:Imageinfo MediaWiki Imageinfo
|
85
|
+
# API Docs
|
86
|
+
# @since 0.8.0
|
74
87
|
# @return [Hash] A hash of the size, width, and height.
|
75
88
|
# @return [Nil] If the image does not exist.
|
76
89
|
def get_image_sizes(image)
|
@@ -6,6 +6,9 @@ module MediaWiki
|
|
6
6
|
module Pages
|
7
7
|
# Gets all categories in the page.
|
8
8
|
# @param title [String] The page title.
|
9
|
+
# @see https://www.mediawiki.org/wiki/API:Property/Categories
|
10
|
+
# MediaWiki Categories Property API Docs
|
11
|
+
# @since 0.8.0
|
9
12
|
# @return [Array] All the categories
|
10
13
|
# @return [Nil] If the title does not exist.
|
11
14
|
def get_categories_in_page(title)
|
@@ -33,6 +36,9 @@ module MediaWiki
|
|
33
36
|
# Gets the wiki text for the given page. Returns nil if it for some
|
34
37
|
# reason cannot get the text, for example, if the page does not exist.
|
35
38
|
# @param title [String] The page title
|
39
|
+
# @see https://www.mediawiki.org/wiki/API:Revisions MediaWiki Revisions
|
40
|
+
# API Docs
|
41
|
+
# @since 0.8.0
|
36
42
|
# @return [String/nil] String containing page contents.
|
37
43
|
# @return [Nil] If the page does not exist.
|
38
44
|
def get_text(title)
|
@@ -56,6 +62,9 @@ module MediaWiki
|
|
56
62
|
|
57
63
|
# Gets the revision ID for the given page.
|
58
64
|
# @param title [String] The page title
|
65
|
+
# @see https://www.mediawiki.org/wiki/API:Revisions MediaWiki Revisions
|
66
|
+
# API Docs
|
67
|
+
# @since 0.8.0
|
59
68
|
# @return [Int/nil] The page's ID
|
60
69
|
# @return [Nil] If the page does not exist.
|
61
70
|
def get_id(title)
|
@@ -81,6 +90,9 @@ module MediaWiki
|
|
81
90
|
# @param limit [Int] The maximum number of members to get. Defaults to
|
82
91
|
# 500, and cannot be greater than that unless the user is a bot.
|
83
92
|
# If the user is a bot, the limit cannot be greater than 5000.
|
93
|
+
# @see https://www.mediawiki.org/wiki/API:Extlinks MediaWiki Extlinks
|
94
|
+
# API Docs
|
95
|
+
# @since 0.8.0
|
84
96
|
# @return [Array] All external link URLs.
|
85
97
|
def get_external_links(page, limit = 500)
|
86
98
|
params = {
|
@@ -107,6 +119,8 @@ module MediaWiki
|
|
107
119
|
|
108
120
|
# Gets whether the current user watches the page.
|
109
121
|
# @param page [String] The page title.
|
122
|
+
# @see https://www.mediawiki.org/wiki/API:Info MediaWiki Info API Docs
|
123
|
+
# @since 0.8.0
|
110
124
|
# @return [Boolean] Whether the user watches the page.
|
111
125
|
# @return [Boolean] False if the user is not logged in.
|
112
126
|
# @return [Nil] If the page does not exist.
|
@@ -134,6 +148,8 @@ module MediaWiki
|
|
134
148
|
|
135
149
|
# Gets whether the current user (can be anonymous) can read the page.
|
136
150
|
# @param page [String] The page title.
|
151
|
+
# @see https://www.mediawiki.org/wiki/API:Info MediaWiki Info API Docs
|
152
|
+
# @since 0.8.0
|
137
153
|
# @return [Boolean] Whether the user can read the page.
|
138
154
|
# @return [Nil] If the page does not exist.
|
139
155
|
def can_i_read?(page)
|
@@ -156,6 +172,8 @@ module MediaWiki
|
|
156
172
|
|
157
173
|
# Gets whether the given page is a redirect.
|
158
174
|
# @param page [String] The page title.
|
175
|
+
# @see https://www.mediawiki.org/wiki/API:Info MediaWiki Info API Docs
|
176
|
+
# @since 0.8.0
|
159
177
|
# @return [Boolean] Whether the page is a redirect.
|
160
178
|
# @return [Nil] If the page does not exist.
|
161
179
|
def page_redirect?(page)
|
@@ -177,6 +195,8 @@ module MediaWiki
|
|
177
195
|
|
178
196
|
# Gets whether the given page only has one edit.
|
179
197
|
# @param page [String] The page title.
|
198
|
+
# @see https://www.mediawiki.org/wiki/API:Info MediaWiki Info API Docs
|
199
|
+
# @since 0.8.0
|
180
200
|
# @return [Boolean] Whether the page only has one edit.
|
181
201
|
# @return [Nil] If the page does not exist.
|
182
202
|
def page_new?(page)
|
@@ -198,6 +218,8 @@ module MediaWiki
|
|
198
218
|
|
199
219
|
# Gets the number of users that watch the given page.
|
200
220
|
# @param page [String] The page title.
|
221
|
+
# @see https://www.mediawiki.org/wiki/API:Info MediaWiki Info API Docs
|
222
|
+
# @since 0.8.0
|
201
223
|
# @return [Fixnum] The number of watchers.
|
202
224
|
# @return [Nil] If the page does not exist.
|
203
225
|
def get_number_of_watchers(page)
|
@@ -222,6 +244,8 @@ module MediaWiki
|
|
222
244
|
# changes to its display, e.g., using a template to make the first
|
223
245
|
# letter lowercase, in cases like iPhone.
|
224
246
|
# @param page [String] The page title.
|
247
|
+
# @see https://www.mediawiki.org/wiki/API:Info MediaWiki Info API Docs
|
248
|
+
# @since 0.8.0
|
225
249
|
# @return [String] The page's display title.
|
226
250
|
# @return [Nil] If the page does not exist.
|
227
251
|
def get_display_title(page)
|
@@ -250,6 +274,8 @@ module MediaWiki
|
|
250
274
|
# that is needed to perform that type of edit, like 'sysop'. Expiry
|
251
275
|
# refers to when the protection will expire, if never, it will be
|
252
276
|
# 'infinity'.
|
277
|
+
# @see https://www.mediawiki.org/wiki/API:Info MediaWiki Info API Docs
|
278
|
+
# @since 0.8.0
|
253
279
|
# @return [Nil] If the page does not exist.
|
254
280
|
def get_protection_levels(page)
|
255
281
|
params = {
|
@@ -275,6 +301,8 @@ module MediaWiki
|
|
275
301
|
|
276
302
|
# Gets the size, in bytes, of the page.
|
277
303
|
# @param page [String] The page title.
|
304
|
+
# @see https://www.mediawiki.org/wiki/API:Info MediaWiki Info API Docs
|
305
|
+
# @since 0.8.0
|
278
306
|
# @return [Fixnum] The number of bytes.
|
279
307
|
# @return [Nil] If the page does not exist.
|
280
308
|
def get_page_size(page)
|
@@ -297,6 +325,9 @@ module MediaWiki
|
|
297
325
|
# Gets all of the images in the given page.
|
298
326
|
# @param page [String] The page title.
|
299
327
|
# @param limit [Fixnum] See #get_external_links
|
328
|
+
# @see https://www.mediawiki.org/wiki/API:Images MediaWiki Images API
|
329
|
+
# Docs
|
330
|
+
# @since 0.8.0
|
300
331
|
# @return [Array] All of the image titles in the page.
|
301
332
|
# @return [Nil] If the page does not exist.
|
302
333
|
def get_images_in_page(page, limit = 500)
|
@@ -325,6 +356,9 @@ module MediaWiki
|
|
325
356
|
# Gets all of the templates in the given page.
|
326
357
|
# @param page [String] The page title.
|
327
358
|
# @param limit [Fixnum] See #get_external_links
|
359
|
+
# @see https://www.mediawiki.org/wiki/API:Templates MediaWiki Templates
|
360
|
+
# API Docs
|
361
|
+
# @since 0.8.0
|
328
362
|
# @return [Array] All of the templte titles in the page.
|
329
363
|
# @return [Nil] If the page does not exist.
|
330
364
|
def get_templates_in_page(page, limit = 500)
|
@@ -353,6 +387,9 @@ module MediaWiki
|
|
353
387
|
# Gets all of the interwiki links on the given page.
|
354
388
|
# @param page [String] The page title.
|
355
389
|
# @param limit [Fixnum] See #get_external_links.
|
390
|
+
# @see https://www.mediawiki.org/wiki/API:Iwlinks MediaWiki Interwiki
|
391
|
+
# Links API Docs
|
392
|
+
# @since 0.8.0
|
356
393
|
# @return [Array] All interwiki link titles.
|
357
394
|
# @return [Nil] If the page does not exist.
|
358
395
|
def get_interwiki_links_in_page(page, limit = 500)
|
@@ -383,6 +420,9 @@ module MediaWiki
|
|
383
420
|
# title. This method does not work with the Translate extension.
|
384
421
|
# @param page [String] The page title.
|
385
422
|
# @param limit [Fixnum] See #get_external_links
|
423
|
+
# @see https://www.mediawiki.org/wiki/API:Langlinks MediaWiki Langlinks
|
424
|
+
# API Docs
|
425
|
+
# @since 0.8.0
|
386
426
|
# @return [Hash] The data described previously.
|
387
427
|
# @return [Nil] If the page does not exist.
|
388
428
|
def get_other_langs_of_page(page, limit = 500)
|
@@ -417,6 +457,8 @@ module MediaWiki
|
|
417
457
|
# Gets every single link in a page.
|
418
458
|
# @param page [String] The page title.
|
419
459
|
# @param limit [Fixnum] See #get_external_links.
|
460
|
+
# @see https://www.mediawiki.org/wiki/API:Links MediaWiki Links API Docs
|
461
|
+
# @since 0.8.0
|
420
462
|
# @return [Array] All link titles.
|
421
463
|
# @return [Nil] If the page does not exist.
|
422
464
|
def get_all_links_in_page(page, limit = 500)
|
@@ -13,6 +13,8 @@ module MediaWiki
|
|
13
13
|
# used by normal users.
|
14
14
|
# @param type [String] The type of token.
|
15
15
|
# @param title [String] The page title for the token. Optional.
|
16
|
+
# @see https://www.mediawiki.org/wiki/API:Info MediaWiki Info API Docs
|
17
|
+
# @since 0.5.0
|
16
18
|
# @return [String] The token. If the butt isn't logged in, it returns
|
17
19
|
# with '+\\'.
|
18
20
|
def get_token(type, title = nil)
|
@@ -11,10 +11,11 @@ module MediaWiki
|
|
11
11
|
protected
|
12
12
|
|
13
13
|
# Gets the limited version of the integer, to ensure nobody provides an int
|
14
|
-
#
|
14
|
+
# that is too large.
|
15
15
|
# @param integer [Int] The number to limit.
|
16
16
|
# @param max_user [Int] The maximum limit for normal users.
|
17
17
|
# @param max_bot [Int] The maximum limit for bot users.
|
18
|
+
# @since 0.8.0
|
18
19
|
# @return [Int] The capped number.
|
19
20
|
def get_limited(integer, max_user = 500, max_bot = 5000)
|
20
21
|
if integer > max_user
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mediawiki-butt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eli Foster
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-12-
|
12
|
+
date: 2015-12-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: httpclient
|