mediawiki-butt 0.8.1 → 0.8.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|