mediawiki-butt 0.11.1 → 1.0.0

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.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +28 -5
  3. data/lib/mediawiki/administration.rb +18 -17
  4. data/lib/mediawiki/auth.rb +52 -193
  5. data/lib/mediawiki/butt.rb +51 -32
  6. data/lib/mediawiki/constants.rb +127 -130
  7. data/lib/mediawiki/edit.rb +58 -71
  8. data/lib/mediawiki/exceptions.rb +2 -123
  9. data/lib/mediawiki/query/lists/all.rb +35 -45
  10. data/lib/mediawiki/query/lists/backlinks.rb +23 -34
  11. data/lib/mediawiki/query/lists/categories.rb +17 -28
  12. data/lib/mediawiki/query/lists/log/block.rb +17 -33
  13. data/lib/mediawiki/query/lists/log/delete.rb +8 -24
  14. data/lib/mediawiki/query/lists/log/import.rb +9 -24
  15. data/lib/mediawiki/query/lists/log/log.rb +36 -63
  16. data/lib/mediawiki/query/lists/log/merge.rb +5 -12
  17. data/lib/mediawiki/query/lists/log/move.rb +6 -20
  18. data/lib/mediawiki/query/lists/log/newusers.rb +13 -36
  19. data/lib/mediawiki/query/lists/log/patrol.rb +5 -13
  20. data/lib/mediawiki/query/lists/log/protect.rb +20 -50
  21. data/lib/mediawiki/query/lists/log/rights.rb +10 -24
  22. data/lib/mediawiki/query/lists/log/upload.rb +10 -24
  23. data/lib/mediawiki/query/lists/miscellaneous.rb +10 -19
  24. data/lib/mediawiki/query/lists/querypage.rb +60 -62
  25. data/lib/mediawiki/query/lists/recent_changes.rb +18 -30
  26. data/lib/mediawiki/query/lists/search.rb +14 -29
  27. data/lib/mediawiki/query/lists/users.rb +43 -61
  28. data/lib/mediawiki/query/meta/filerepoinfo.rb +18 -20
  29. data/lib/mediawiki/query/meta/siteinfo.rb +30 -33
  30. data/lib/mediawiki/query/meta/userinfo.rb +48 -66
  31. data/lib/mediawiki/query/properties/contributors.rb +18 -22
  32. data/lib/mediawiki/query/properties/files.rb +18 -20
  33. data/lib/mediawiki/query/properties/pages.rb +129 -211
  34. data/lib/mediawiki/query/properties/properties.rb +20 -25
  35. data/lib/mediawiki/query/query.rb +0 -25
  36. data/lib/mediawiki/utils.rb +9 -8
  37. data/lib/mediawiki/watch.rb +52 -0
  38. metadata +6 -4
@@ -6,10 +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
9
+ # @see https://www.mediawiki.org/wiki/API:Property/Categories MediaWiki Categories Property API Docs
11
10
  # @since 0.8.0
12
- # @return [Array] All the categories
11
+ # @return [Array<String>] All the categories
13
12
  # @return [Nil] If the title does not exist.
14
13
  def get_categories_in_page(title)
15
14
  params = {
@@ -22,24 +21,17 @@ module MediaWiki
22
21
  pageid = nil
23
22
  ret = []
24
23
  response['query']['pages'].each { |r, _| pageid = r }
25
- if response['query']['pages'][pageid]['missing'] == ''
26
- return nil
27
- else
28
- response['query']['pages'][pageid]['categories'].each do |c|
29
- ret.push(c['title'])
30
- end
31
- end
24
+ return if response['query']['pages'][pageid]['missing'] == ''
32
25
 
33
- ret
26
+ response['query']['pages'][pageid].fetch('categories', []).map { |c| c['title'] }
34
27
  end
35
28
 
36
- # Gets the wiki text for the given page. Returns nil if it for some
37
- # reason cannot get the text, for example, if the page does not exist.
38
- # @param title [String] The page title
39
- # @see https://www.mediawiki.org/wiki/API:Revisions MediaWiki Revisions
40
- # API Docs
29
+ # Gets the wiki text for the given page. Returns nil if it for some reason cannot get the text, for example,
30
+ # if the page does not exist.
31
+ # @param (see #get_categories_in_page)
32
+ # @see https://www.mediawiki.org/wiki/API:Revisions MediaWiki Revisions API Docs
41
33
  # @since 0.8.0
42
- # @return [String/nil] String containing page contents.
34
+ # @return [String] String containing page contents.
43
35
  # @return [Nil] If the page does not exist.
44
36
  def get_text(title)
45
37
  params = {
@@ -53,19 +45,16 @@ module MediaWiki
53
45
  revid = nil
54
46
  response['query']['pages'].each { |r, _| revid = r }
55
47
 
56
- if response['query']['pages'][revid]['missing'] == ''
57
- return nil
58
- else
59
- return response['query']['pages'][revid]['revisions'][0]['*']
60
- end
48
+ revision = response['query']['pages'][revid]
49
+
50
+ revision['missing'] == '' ? nil : revision['revisions'][0]['*']
61
51
  end
62
52
 
63
53
  # Gets the revision ID for the given page.
64
- # @param title [String] The page title
65
- # @see https://www.mediawiki.org/wiki/API:Revisions MediaWiki Revisions
66
- # API Docs
54
+ # @param (see #get_categories_in_page)
55
+ # @see (see #get_text)
67
56
  # @since 0.8.0
68
- # @return [Int/nil] The page's ID
57
+ # @return [Fixnum] The page's ID
69
58
  # @return [Nil] If the page does not exist.
70
59
  def get_id(title)
71
60
  params = {
@@ -77,27 +66,21 @@ module MediaWiki
77
66
 
78
67
  response = post(params)
79
68
  response['query']['pages'].each do |revid, _|
80
- if revid != '-1'
81
- return revid.to_i
82
- else
83
- return nil
84
- end
69
+ return revid == '-1' ? nil : revid.to_i
85
70
  end
86
71
  end
87
72
 
88
73
  # Gets all the external links on a given page.
89
- # @param page [String] The page title.
90
- # @param limit [Int] The maximum number of members to get. Defaults to
91
- # 500, and cannot be greater than that unless the user is a bot.
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
74
+ # @param (see #get_categories_in_page)
75
+ # @param limit [Fixnum] The maximum number of members to get. Defaults to 500, and cannot be greater than
76
+ # that unless the user is a bot. If the user is a bot, the limit cannot be greater than 5000.
77
+ # @see https://www.mediawiki.org/wiki/API:Extlinks MediaWiki Extlinks API Docs
95
78
  # @since 0.8.0
96
- # @return [Array] All external link URLs.
97
- def get_external_links(page, limit = 500)
79
+ # @return [Array<String>] All external link URLs.
80
+ def get_external_links(title, limit = @query_limit_default)
98
81
  params = {
99
82
  action: 'query',
100
- titles: page,
83
+ titles: title,
101
84
  prop: 'extlinks',
102
85
  ellimit: get_limited(limit)
103
86
  }
@@ -105,12 +88,9 @@ module MediaWiki
105
88
  response = post(params)
106
89
  ret = []
107
90
  response['query']['pages'].each do |revid, _|
108
- if revid != '-1'
109
- response['query']['pages'][revid]['extlinks'].each do |l|
110
- ret.push(l['*'])
111
- end
112
- else
113
- return nil
91
+ return if revid == '-1'
92
+ response['query']['pages'][revid]['extlinks'].each do |l|
93
+ ret << l['*']
114
94
  end
115
95
  end
116
96
 
@@ -118,235 +98,193 @@ module MediaWiki
118
98
  end
119
99
 
120
100
  # Gets whether the current user watches the page.
121
- # @param page [String] The page title.
101
+ # @param (see #get_categories_in_page)
122
102
  # @see https://www.mediawiki.org/wiki/API:Info MediaWiki Info API Docs
123
103
  # @since 0.8.0
124
104
  # @return [Boolean] Whether the user watches the page.
125
105
  # @return [Boolean] False if the user is not logged in.
126
106
  # @return [Nil] If the page does not exist.
127
- def do_i_watch?(page)
128
- if @logged_in
129
- params = {
130
- action: 'query',
131
- titles: page,
132
- prop: 'info',
133
- inprop: 'watched'
134
- }
135
-
136
- response = post(params)
137
- response['query']['pages'].each do |revid, _|
138
- if revid != '-1'
139
- return response['query']['pages'][revid].key?('watched')
140
- else
141
- return nil
142
- end
143
- end
144
- else
145
- return false
107
+ def do_i_watch?(title)
108
+ return false unless @logged_in
109
+ params = {
110
+ action: 'query',
111
+ titles: title,
112
+ prop: 'info',
113
+ inprop: 'watched'
114
+ }
115
+
116
+ response = post(params)
117
+ response['query']['pages'].each do |revid, _|
118
+ return revid == '-1' ? nil : response['query']['pages'][revid].key?('watched')
146
119
  end
147
120
  end
148
121
 
149
122
  # Gets whether the current user (can be anonymous) can read the page.
150
- # @param page [String] The page title.
151
- # @see https://www.mediawiki.org/wiki/API:Info MediaWiki Info API Docs
123
+ # @param (see #get_categories_in_page)
124
+ # @see (see #do_i_watch?)
152
125
  # @since 0.8.0
153
126
  # @return [Boolean] Whether the user can read the page.
154
127
  # @return [Nil] If the page does not exist.
155
- def can_i_read?(page)
128
+ def can_i_read?(title)
156
129
  params = {
157
130
  action: 'query',
158
- titles: page,
131
+ titles: title,
159
132
  prop: 'info',
160
133
  inprop: 'readable'
161
134
  }
162
135
 
163
136
  response = post(params)
164
137
  response['query']['pages'].each do |revid, _|
165
- if revid != '-1'
166
- return response['query']['pages'][revid].key?('readable')
167
- else
168
- return nil
169
- end
138
+ return revid == '-1' ? nil : response['query']['pages'][revid].key?('readable')
170
139
  end
171
140
  end
172
141
 
173
142
  # Gets whether the given page is a redirect.
174
- # @param page [String] The page title.
175
- # @see https://www.mediawiki.org/wiki/API:Info MediaWiki Info API Docs
143
+ # @param (see #get_categories_in_page)
144
+ # @see (see #do_i_watch?)
176
145
  # @since 0.8.0
177
146
  # @return [Boolean] Whether the page is a redirect.
178
147
  # @return [Nil] If the page does not exist.
179
- def page_redirect?(page)
148
+ def page_redirect?(title)
180
149
  params = {
181
150
  action: 'query',
182
- titles: page,
151
+ titles: title,
183
152
  prop: 'info'
184
153
  }
185
154
 
186
155
  response = post(params)
187
156
  response['query']['pages'].each do |revid, _|
188
- if revid != '-1'
189
- return response['query']['pages'][revid].key?('redirect')
190
- else
191
- return nil
192
- end
157
+ return revid == '-1' ? nil : response['query']['pages'][revid].key?('redirect')
193
158
  end
194
159
  end
195
160
 
196
161
  # Gets whether the given page only has one edit.
197
- # @param page [String] The page title.
198
- # @see https://www.mediawiki.org/wiki/API:Info MediaWiki Info API Docs
162
+ # @param (see #get_categories_in_page)
163
+ # @see (see #do_i_watch?)
199
164
  # @since 0.8.0
200
165
  # @return [Boolean] Whether the page only has one edit.
201
166
  # @return [Nil] If the page does not exist.
202
- def page_new?(page)
167
+ def page_new?(title)
203
168
  params = {
204
169
  action: 'query',
205
- titles: page,
170
+ titles: title,
206
171
  prop: 'info'
207
172
  }
208
173
 
209
174
  response = post(params)
210
175
  response['query']['pages'].each do |revid, _|
211
- if revid != '-1'
212
- return response['query']['pages'][revid].key?('new')
213
- else
214
- return nil
215
- end
176
+ return revid == '-1' ? nil : response['query']['pages'][revid].key?('new')
216
177
  end
217
178
  end
218
179
 
219
180
  # Gets the number of users that watch the given page.
220
- # @param page [String] The page title.
221
- # @see https://www.mediawiki.org/wiki/API:Info MediaWiki Info API Docs
181
+ # @param (see #get_categoeries_in_page)
182
+ # @see (see #do_i_watch?)
222
183
  # @since 0.8.0
223
184
  # @return [Fixnum] The number of watchers.
224
185
  # @return [Nil] If the page does not exist.
225
- def get_number_of_watchers(page)
186
+ def get_number_of_watchers(title)
226
187
  params = {
227
188
  action: 'query',
228
- titles: page,
189
+ titles: title,
229
190
  prop: 'info',
230
191
  inprop: 'watchers'
231
192
  }
232
193
 
233
194
  response = post(params)
234
195
  response['query']['pages'].each do |revid, _|
235
- if revid != '-1'
236
- return response['query']['pages'][revid]['watchers']
237
- else
238
- return nil
239
- end
196
+ return revid == '-1' ? nil : response['query']['pages'][revid]['watchers']
240
197
  end
241
198
  end
242
199
 
243
- # Gets the way the title is actually displayed, after any in-page
244
- # changes to its display, e.g., using a template to make the first
245
- # letter lowercase, in cases like iPhone.
246
- # @param page [String] The page title.
247
- # @see https://www.mediawiki.org/wiki/API:Info MediaWiki Info API Docs
200
+ # Gets the way the title is actually displayed, after any in-page changes to its display, e.g., using a
201
+ # template to make the first letter lowercase, in cases like iPhone.
202
+ # @param (see #get_categories_in_page)
203
+ # @see (see #do_i_watch?)
248
204
  # @since 0.8.0
249
205
  # @return [String] The page's display title.
250
206
  # @return [Nil] If the page does not exist.
251
- def get_display_title(page)
207
+ def get_display_title(title)
252
208
  params = {
253
209
  action: 'query',
254
- titles: page,
210
+ titles: title,
255
211
  prop: 'info',
256
212
  inprop: 'displaytitle'
257
213
  }
258
214
 
259
215
  response = post(params)
260
216
  response['query']['pages'].each do |revid, _|
261
- if revid != '-1'
262
- return response['query']['pages'][revid]['displaytitle']
263
- else
264
- return nil
265
- end
217
+ return revid == '-1' ? nil : response['query']['pages'][revid]['displaytitle']
266
218
  end
267
219
  end
268
220
 
269
221
  # Gets the levels of protection on the page.
270
- # @param page [String] The page title.
271
- # @return [Array] Hashes of all the protection levels. Each has includes
272
- # a 'type', a 'level', and an 'expiry'. Type refers to the type of
273
- # change protected against, like 'edit'. Level refers to the usergroup
274
- # that is needed to perform that type of edit, like 'sysop'. Expiry
275
- # refers to when the protection will expire, if never, it will be
276
- # 'infinity'.
277
- # @see https://www.mediawiki.org/wiki/API:Info MediaWiki Info API Docs
222
+ # @param (see #get_categories_in_page)
223
+ # @see (see #do_i_watch?)
278
224
  # @since 0.8.0
225
+ # @return [Array<Hash<Symbol, String>>] Hashes of all the protection levels. Each has includes a 'type', a
226
+ # 'level', and an 'expiry'. Type refers to the type of change protected against, like 'edit'. Level refers to
227
+ # the usergroup that is needed to perform that type of edit, like 'sysop'. Expiry refers to when the
228
+ # protection will expire, if never, it will be 'infinity.
279
229
  # @return [Nil] If the page does not exist.
280
- def get_protection_levels(page)
230
+ def get_protection_levels(title)
281
231
  params = {
282
232
  action: 'query',
283
- titles: page,
233
+ titles: title,
284
234
  prop: 'info',
285
235
  inprop: 'protection'
286
236
  }
287
237
 
288
238
  response = post(params)
289
239
  response['query']['pages'].each do |revid, _|
290
- if revid != '-1'
291
- protection = response['query']['pages'][revid]['protection']
292
- protection.each do |p|
293
- p.keys.each { |k| p[k.to_sym] = p.delete(k) }
294
- end
295
- return protection
296
- else
297
- return nil
240
+ return if revid == '-1'
241
+ protection = response['query']['pages'][revid]['protection']
242
+ protection.each do |p|
243
+ p.keys.each { |k| p[k.to_sym] = p.delete(k) }
298
244
  end
245
+ return protection
299
246
  end
300
247
  end
301
248
 
302
249
  # Gets the size, in bytes, of the page.
303
- # @param page [String] The page title.
304
- # @see https://www.mediawiki.org/wiki/API:Info MediaWiki Info API Docs
250
+ # @param (see #get_categories_in_page)
251
+ # @see (see #do_i_watch?)
305
252
  # @since 0.8.0
306
253
  # @return [Fixnum] The number of bytes.
307
254
  # @return [Nil] If the page does not exist.
308
- def get_page_size(page)
255
+ def get_page_size(title)
309
256
  params = {
310
257
  action: 'query',
311
- titles: page,
258
+ titles: title,
312
259
  prop: 'info'
313
260
  }
314
261
 
315
262
  response = post(params)
316
263
  response['query']['pages'].each do |revid, _|
317
- if revid != '-1'
318
- return response['query']['pages'][revid]['length']
319
- else
320
- return nil
321
- end
264
+ return revid == '-1' ? nil : response['query']['pages'][revid]['length']
322
265
  end
323
266
  end
324
267
 
325
268
  # Gets all of the images in the given page.
326
- # @param page [String] The page title.
327
- # @param limit [Fixnum] See #get_external_links
328
- # @see https://www.mediawiki.org/wiki/API:Images MediaWiki Images API
329
- # Docs
269
+ # @param (see #get_external_links)
270
+ # @see https://www.mediawiki.org/wiki/API:Images MediaWiki Images API Docs
330
271
  # @since 0.8.0
331
- # @return [Array] All of the image titles in the page.
272
+ # @return [Array<String>] All of the image titles in the page.
332
273
  # @return [Nil] If the page does not exist.
333
- def get_images_in_page(page, limit = 500)
274
+ def get_images_in_page(title, limit = @query_limit_default)
334
275
  params = {
335
276
  action: 'query',
336
277
  prop: 'images',
337
- titles: page,
278
+ titles: title,
338
279
  imlimit: get_limited(limit)
339
280
  }
340
281
 
341
282
  response = post(params)
342
283
  ret = []
343
284
  response['query']['pages'].each do |revid, _|
344
- if revid != '-1'
345
- response['query']['pages'][revid]['images'].each do |img|
346
- ret.push(img['title'])
347
- end
348
- else
349
- return nil
285
+ return if revid == '-1'
286
+ response['query']['pages'][revid]['images'].each do |img|
287
+ ret << img['title']
350
288
  end
351
289
  end
352
290
 
@@ -354,30 +292,25 @@ module MediaWiki
354
292
  end
355
293
 
356
294
  # Gets all of the templates in the given page.
357
- # @param page [String] The page title.
358
- # @param limit [Fixnum] See #get_external_links
359
- # @see https://www.mediawiki.org/wiki/API:Templates MediaWiki Templates
360
- # API Docs
295
+ # @param (see #get_external_links)
296
+ # @see https://www.mediawiki.org/wiki/API:Templates MediaWiki Templates API Docs
361
297
  # @since 0.8.0
362
- # @return [Array] All of the templte titles in the page.
298
+ # @return [Array<String>] All of the template titles in the page.
363
299
  # @return [Nil] If the page does not exist.
364
- def get_templates_in_page(page, limit = 500)
300
+ def get_templates_in_page(title, limit = @query_limit_default)
365
301
  params = {
366
302
  action: 'query',
367
303
  prop: 'templates',
368
- titles: page,
304
+ titles: title,
369
305
  tllimit: get_limited(limit)
370
306
  }
371
307
 
372
308
  response = post(params)
373
309
  ret = []
374
310
  response['query']['pages'].each do |revid, _|
375
- if revid != '-1'
376
- response['query']['pages'][revid]['templates'].each do |tmp|
377
- ret.push(tmp['title'])
378
- end
379
- else
380
- return nil
311
+ return if revid == '-1'
312
+ response['query']['pages'][revid]['templates'].each do |tmp|
313
+ ret << tmp['title']
381
314
  end
382
315
  end
383
316
 
@@ -385,51 +318,43 @@ module MediaWiki
385
318
  end
386
319
 
387
320
  # Gets all of the interwiki links on the given page.
388
- # @param page [String] The page title.
389
- # @param limit [Fixnum] See #get_external_links.
390
- # @see https://www.mediawiki.org/wiki/API:Iwlinks MediaWiki Interwiki
391
- # Links API Docs
321
+ # @param (see #get_external_links)
322
+ # @see https://www.mediawiki.org/wiki/API:Iwlinks MediaWiki Interwiki Links API Docs
392
323
  # @since 0.8.0
393
- # @return [Array] All interwiki link titles.
324
+ # @return [Array<String>] All interwiki link titles.
394
325
  # @return [Nil] If the page does not exist.
395
- def get_interwiki_links_in_page(page, limit = 500)
326
+ def get_interwiki_links_in_page(title, limit = @query_limit_default)
396
327
  params = {
397
328
  action: 'query',
398
329
  prop: 'iwlinks',
399
- titles: page,
330
+ titles: title,
400
331
  tllimit: get_limited(limit)
401
332
  }
402
333
 
403
334
  response = post(params)
404
335
  ret = []
405
336
  response['query']['pages'].each do |revid, _|
406
- if revid != '-1'
407
- response['query']['pages'][revid]['iwlinks'].each do |l|
408
- ret.push(l['*'])
409
- end
410
- else
411
- return nil
337
+ return if revid == '-1'
338
+ response['query']['pages'][revid]['iwlinks'].each do |l|
339
+ ret << l['*']
412
340
  end
413
341
  end
414
342
 
415
343
  ret
416
344
  end
417
345
 
418
- # Gets a hash of data for the page in every language that it is
419
- # available in. This includes url, language name, autonym, and its
420
- # title. This method does not work with the Translate extension.
421
- # @param page [String] The page title.
422
- # @param limit [Fixnum] See #get_external_links
423
- # @see https://www.mediawiki.org/wiki/API:Langlinks MediaWiki Langlinks
424
- # API Docs
346
+ # Gets a hash of data for the page in every language that it is available in. This includes url, language
347
+ # name, autonym, and its title. This method does not work with the Translate extension.
348
+ # @param (see #get_external_links)
349
+ # @see https://www.mediawiki.org/wiki/API:Langlinks MediaWiki Langlinks API Docs
425
350
  # @since 0.8.0
426
351
  # @return [Hash] The data described previously.
427
352
  # @return [Nil] If the page does not exist.
428
- def get_other_langs_of_page(page, limit = 500)
353
+ def get_other_langs_of_page(title, limit = @query_limit_default)
429
354
  params = {
430
355
  action: 'query',
431
356
  prop: 'langlinks',
432
- titles: page,
357
+ titles: title,
433
358
  lllimit: get_limited(limit),
434
359
  llprop: 'url|langname|autonym'
435
360
  }
@@ -437,17 +362,14 @@ module MediaWiki
437
362
  response = post(params)
438
363
  ret = {}
439
364
  response['query']['pages'].each do |revid, _|
440
- if revid != '-1'
441
- response['query']['pages'][revid]['langlinks'].each do |l|
442
- ret[l['lang'].to_sym] = {
443
- url: l['url'],
444
- langname: l['langname'],
445
- autonym: l['autonym'],
446
- title: l['*']
447
- }
448
- end
449
- else
450
- return nil
365
+ return if revid == '-1'
366
+ response['query']['pages'][revid]['langlinks'].each do |l|
367
+ ret[l['lang'].to_sym] = {
368
+ url: l['url'],
369
+ langname: l['langname'],
370
+ autonym: l['autonym'],
371
+ title: l['*']
372
+ }
451
373
  end
452
374
  end
453
375
 
@@ -455,29 +377,25 @@ module MediaWiki
455
377
  end
456
378
 
457
379
  # Gets every single link in a page.
458
- # @param page [String] The page title.
459
- # @param limit [Fixnum] See #get_external_links.
380
+ # @param (see #get_external_links)
460
381
  # @see https://www.mediawiki.org/wiki/API:Links MediaWiki Links API Docs
461
382
  # @since 0.8.0
462
- # @return [Array] All link titles.
383
+ # @return [Array<String>] All link titles.
463
384
  # @return [Nil] If the page does not exist.
464
- def get_all_links_in_page(page, limit = 500)
385
+ def get_all_links_in_page(title, limit = @query_limit_default)
465
386
  params = {
466
387
  action: 'query',
467
388
  prop: 'links',
468
- titles: page,
389
+ titles: title,
469
390
  pllimit: get_limited(limit)
470
391
  }
471
392
 
472
393
  response = post(params)
473
394
  ret = []
474
395
  response['query']['pages'].each do |revid, _|
475
- if revid != '-1'
476
- response['query']['pages'][revid]['links'].each do |l|
477
- ret.push(l['title'])
478
- end
479
- else
480
- return nil
396
+ return if revid == '-1'
397
+ response['query']['pages'][revid]['links'].each do |l|
398
+ ret << l['title']
481
399
  end
482
400
  end
483
401