mediawiki-gateway 0.1.3 → 0.1.4
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.
- data/.gitignore +1 -1
- data/README +4 -0
- data/Rakefile +1 -0
- data/VERSION +1 -1
- data/doc/classes/MediaWiki/Gateway.html +270 -238
- data/doc/created.rid +1 -1
- data/doc/files/README.html +1 -1
- data/doc/files/lib/media_wiki/config_rb.html +1 -1
- data/doc/files/lib/media_wiki/gateway_rb.html +1 -1
- data/doc/files/lib/media_wiki/utils_rb.html +1 -1
- data/doc/files/script/create_page_rb.html +1 -1
- data/doc/files/script/delete_batch_rb.html +1 -1
- data/doc/files/script/export_xml_rb.html +1 -1
- data/doc/files/script/get_page_rb.html +1 -1
- data/doc/files/script/import_xml_rb.html +1 -1
- data/doc/files/script/run_fake_media_wiki_rb.html +1 -1
- data/doc/files/script/upload_commons_rb.html +1 -1
- data/doc/files/script/upload_file_rb.html +1 -1
- data/lib/media_wiki/gateway.rb +26 -4
- data/mediawiki-gateway.gemspec +5 -2
- data/spec/fake_media_wiki/app.rb +10 -1
- data/spec/gateway_spec.rb +55 -9
- metadata +18 -4
data/.gitignore
CHANGED
data/README
CHANGED
data/Rakefile
CHANGED
@@ -35,6 +35,7 @@ begin
|
|
35
35
|
gemspec.homepage = "http://github.com/jpatokal/media_wiki_gateway"
|
36
36
|
gemspec.authors = ["Jani Patokallio"]
|
37
37
|
gemspec.add_dependency 'rest-client'
|
38
|
+
gemspec.add_development_dependency 'sham_rack'
|
38
39
|
end
|
39
40
|
rescue LoadError
|
40
41
|
puts "Jeweler not available. Install it with: gem install jeweler"
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.4
|
@@ -229,12 +229,12 @@ href="Gateway.html#M000003">new</a> one (useful for bulk loads)
|
|
229
229
|
onclick="toggleCode('M000007-source');return false;">[Source]</a></p>
|
230
230
|
<div class="method-source-code" id="M000007-source">
|
231
231
|
<pre>
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
232
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 101</span>
|
233
|
+
101: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">create</span>(<span class="ruby-identifier">title</span>, <span class="ruby-identifier">content</span>, <span class="ruby-identifier">options</span>={})
|
234
|
+
102: <span class="ruby-identifier">form_data</span> = {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'edit'</span>, <span class="ruby-value str">'title'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">title</span>, <span class="ruby-value str">'text'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">content</span>, <span class="ruby-value str">'summary'</span> =<span class="ruby-operator">></span> (<span class="ruby-identifier">options</span>[<span class="ruby-identifier">:summary</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">""</span>), <span class="ruby-value str">'token'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">get_token</span>(<span class="ruby-value str">'edit'</span>, <span class="ruby-identifier">title</span>)}
|
235
|
+
103: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'createonly'</span>] = <span class="ruby-value str">""</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:overwrite</span>]
|
236
|
+
104: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
237
|
+
105: <span class="ruby-keyword kw">end</span>
|
238
238
|
</pre>
|
239
239
|
</div>
|
240
240
|
</div>
|
@@ -263,11 +263,11 @@ support deleting multiple pages at a time.)
|
|
263
263
|
onclick="toggleCode('M000008-source');return false;">[Source]</a></p>
|
264
264
|
<div class="method-source-code" id="M000008-source">
|
265
265
|
<pre>
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
266
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 110</span>
|
267
|
+
110: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete</span>(<span class="ruby-identifier">title</span>)
|
268
|
+
111: <span class="ruby-identifier">form_data</span> = {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'delete'</span>, <span class="ruby-value str">'title'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">title</span>, <span class="ruby-value str">'token'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">get_token</span>(<span class="ruby-value str">'delete'</span>, <span class="ruby-identifier">title</span>)}
|
269
|
+
112: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
270
|
+
113: <span class="ruby-keyword kw">end</span>
|
271
271
|
</pre>
|
272
272
|
</div>
|
273
273
|
</div>
|
@@ -294,17 +294,17 @@ href="Gateway.html#M000014">download</a>.
|
|
294
294
|
onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
|
295
295
|
<div class="method-source-code" id="M000014-source">
|
296
296
|
<pre>
|
297
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
297
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 302</span>
|
298
|
+
302: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">download</span>(<span class="ruby-identifier">file_name</span>, <span class="ruby-identifier">options</span>={})
|
299
|
+
303: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'iiprop'</span>] = <span class="ruby-value str">'url'</span>
|
300
|
+
304:
|
301
|
+
305: <span class="ruby-identifier">attributes</span> = <span class="ruby-identifier">image_info</span>(<span class="ruby-identifier">file_name</span>, <span class="ruby-identifier">options</span>)
|
302
|
+
306: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attributes</span>
|
303
|
+
307: <span class="ruby-constant">RestClient</span>.<span class="ruby-identifier">get</span> <span class="ruby-identifier">attributes</span>[<span class="ruby-value str">'url'</span>]
|
304
|
+
308: <span class="ruby-keyword kw">else</span>
|
305
|
+
309: <span class="ruby-keyword kw">nil</span>
|
306
|
+
310: <span class="ruby-keyword kw">end</span>
|
307
|
+
311: <span class="ruby-keyword kw">end</span>
|
308
308
|
</pre>
|
309
309
|
</div>
|
310
310
|
</div>
|
@@ -335,11 +335,11 @@ Returns <a href="../MediaWiki.html">MediaWiki</a> XML dump
|
|
335
335
|
onclick="toggleCode('M000016-source');return false;">[Source]</a></p>
|
336
336
|
<div class="method-source-code" id="M000016-source">
|
337
337
|
<pre>
|
338
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
338
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 333</span>
|
339
|
+
333: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">export</span>(<span class="ruby-identifier">page_titles</span>)
|
340
|
+
334: <span class="ruby-identifier">form_data</span> = {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'query'</span>, <span class="ruby-value str">'titles'</span> =<span class="ruby-operator">></span> [<span class="ruby-identifier">page_titles</span>].<span class="ruby-identifier">join</span>(<span class="ruby-value str">'|'</span>), <span class="ruby-value str">'export'</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">'exportnowrap'</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">nil</span>}
|
341
|
+
335: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
342
|
+
336: <span class="ruby-keyword kw">end</span>
|
343
343
|
</pre>
|
344
344
|
</div>
|
345
345
|
</div>
|
@@ -367,16 +367,16 @@ version)
|
|
367
367
|
onclick="toggleCode('M000018-source');return false;">[Source]</a></p>
|
368
368
|
<div class="method-source-code" id="M000018-source">
|
369
369
|
<pre>
|
370
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
370
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 354</span>
|
371
|
+
354: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">extensions</span>
|
372
|
+
355: <span class="ruby-identifier">form_data</span> = { <span class="ruby-value str">'action'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'query'</span>, <span class="ruby-value str">'meta'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'siteinfo'</span>, <span class="ruby-value str">'siprop'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'extensions'</span> }
|
373
|
+
356: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
374
|
+
357: <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">XPath</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">res</span>, <span class="ruby-value str">"//ext"</span>).<span class="ruby-identifier">inject</span>(<span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">extensions</span>, <span class="ruby-identifier">extension</span><span class="ruby-operator">|</span>
|
375
|
+
358: <span class="ruby-identifier">name</span> = <span class="ruby-identifier">extension</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">"name"</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">""</span>
|
376
|
+
359: <span class="ruby-identifier">extensions</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">extension</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">"version"</span>]
|
377
|
+
360: <span class="ruby-identifier">extensions</span>
|
378
|
+
361: <span class="ruby-keyword kw">end</span>
|
379
|
+
362: <span class="ruby-keyword kw">end</span>
|
380
380
|
</pre>
|
381
381
|
</div>
|
382
382
|
</div>
|
@@ -482,34 +482,34 @@ Output:
|
|
482
482
|
onclick="toggleCode('M000013-source');return false;">[Source]</a></p>
|
483
483
|
<div class="method-source-code" id="M000013-source">
|
484
484
|
<pre>
|
485
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
511
|
-
|
512
|
-
|
485
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 271</span>
|
486
|
+
271: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">image_info</span>(<span class="ruby-identifier">file_name_or_page_id</span>, <span class="ruby-identifier">options</span>={})
|
487
|
+
272: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'iiprop'</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value str">'iiprop'</span>].<span class="ruby-identifier">join</span>(<span class="ruby-value str">'|'</span>) \
|
488
|
+
273: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">'iiprop'</span>].<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:join</span>)
|
489
|
+
274: <span class="ruby-identifier">form_data</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">merge</span>(
|
490
|
+
275: <span class="ruby-value str">'action'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'query'</span>,
|
491
|
+
276: <span class="ruby-value str">'prop'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'imageinfo'</span>,
|
492
|
+
277: <span class="ruby-value str">'redirects'</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">true</span>
|
493
|
+
278: )
|
494
|
+
279:
|
495
|
+
280: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">file_name_or_page_id</span>
|
496
|
+
281: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Fixnum</span>
|
497
|
+
282: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'pageids'</span>] = <span class="ruby-identifier">file_name_or_page_id</span>
|
498
|
+
283: <span class="ruby-keyword kw">else</span>
|
499
|
+
284: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'titles'</span>] = <span class="ruby-node">"File:#{file_name_or_page_id}"</span>
|
500
|
+
285: <span class="ruby-keyword kw">end</span>
|
501
|
+
286:
|
502
|
+
287: <span class="ruby-identifier">xml</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
503
|
+
288: <span class="ruby-identifier">page</span> = <span class="ruby-identifier">xml</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">"query/pages/page"</span>]
|
504
|
+
289: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span> <span class="ruby-identifier">page</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">page</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">"missing"</span>]
|
505
|
+
290: <span class="ruby-keyword kw">nil</span>
|
506
|
+
291: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">xml</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">"query/redirects/r"</span>]
|
507
|
+
292: <span class="ruby-comment cmt"># We're dealing with redirect here.</span>
|
508
|
+
293: <span class="ruby-identifier">image_info</span>(<span class="ruby-identifier">page</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">"pageid"</span>].<span class="ruby-identifier">to_i</span>, <span class="ruby-identifier">options</span>)
|
509
|
+
294: <span class="ruby-keyword kw">else</span>
|
510
|
+
295: <span class="ruby-identifier">page</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">"imageinfo/ii"</span>].<span class="ruby-identifier">attributes</span>
|
511
|
+
296: <span class="ruby-keyword kw">end</span>
|
512
|
+
297: <span class="ruby-keyword kw">end</span>
|
513
513
|
</pre>
|
514
514
|
</div>
|
515
515
|
</div>
|
@@ -543,14 +543,14 @@ href="Gateway.html#M000015">import</a>><page/><page/>…
|
|
543
543
|
onclick="toggleCode('M000015-source');return false;">[Source]</a></p>
|
544
544
|
<div class="method-source-code" id="M000015-source">
|
545
545
|
<pre>
|
546
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
547
|
-
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
|
553
|
-
|
546
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 320</span>
|
547
|
+
320: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">import</span>(<span class="ruby-identifier">xmlfile</span>)
|
548
|
+
321: <span class="ruby-identifier">form_data</span> = { <span class="ruby-value str">"action"</span> =<span class="ruby-operator">></span> <span class="ruby-value str">"import"</span>,
|
549
|
+
322: <span class="ruby-value str">"xml"</span> =<span class="ruby-operator">></span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">xmlfile</span>),
|
550
|
+
323: <span class="ruby-value str">"token"</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">get_token</span>(<span class="ruby-value str">'import'</span>, <span class="ruby-value str">'Main Page'</span>), <span class="ruby-comment cmt"># NB: dummy page name</span>
|
551
|
+
324: <span class="ruby-value str">"format"</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'xml'</span> }
|
552
|
+
325: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
553
|
+
326: <span class="ruby-keyword kw">end</span>
|
554
554
|
</pre>
|
555
555
|
</div>
|
556
556
|
</div>
|
@@ -581,26 +581,26 @@ Returns array of page titles (empty if no matches)
|
|
581
581
|
onclick="toggleCode('M000010-source');return false;">[Source]</a></p>
|
582
582
|
<div class="method-source-code" id="M000010-source">
|
583
583
|
<pre>
|
584
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
585
|
-
|
586
|
-
|
587
|
-
|
588
|
-
|
589
|
-
|
590
|
-
|
591
|
-
|
592
|
-
|
593
|
-
|
594
|
-
|
595
|
-
|
596
|
-
|
597
|
-
|
598
|
-
|
599
|
-
|
600
|
-
|
601
|
-
|
602
|
-
|
603
|
-
|
584
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 136</span>
|
585
|
+
136: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">list</span>(<span class="ruby-identifier">key</span>)
|
586
|
+
137: <span class="ruby-identifier">titles</span> = []
|
587
|
+
138: <span class="ruby-identifier">apfrom</span> = <span class="ruby-keyword kw">nil</span>
|
588
|
+
139: <span class="ruby-identifier">key</span>, <span class="ruby-identifier">namespace</span> = <span class="ruby-identifier">key</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">":"</span>, <span class="ruby-value">2</span>).<span class="ruby-identifier">reverse</span>
|
589
|
+
140: <span class="ruby-identifier">namespace</span> = <span class="ruby-identifier">namespaces_by_prefix</span>[<span class="ruby-identifier">namespace</span>] <span class="ruby-operator">||</span> <span class="ruby-value">0</span>
|
590
|
+
141: <span class="ruby-keyword kw">begin</span>
|
591
|
+
142: <span class="ruby-identifier">form_data</span> =
|
592
|
+
143: {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'query'</span>,
|
593
|
+
144: <span class="ruby-value str">'list'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'allpages'</span>,
|
594
|
+
145: <span class="ruby-value str">'apfrom'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">apfrom</span>,
|
595
|
+
146: <span class="ruby-value str">'apprefix'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">key</span>,
|
596
|
+
147: <span class="ruby-value str">'aplimit'</span> =<span class="ruby-operator">></span> <span class="ruby-value">500</span>, <span class="ruby-comment cmt"># max allowed by API</span>
|
597
|
+
148: <span class="ruby-value str">'apnamespace'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">namespace</span>}
|
598
|
+
149: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
599
|
+
150: <span class="ruby-identifier">apfrom</span> = <span class="ruby-identifier">res</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">'query-continue'</span>] <span class="ruby-operator">?</span> <span class="ruby-identifier">res</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">'query-continue/allpages'</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">'apfrom'</span>] <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
|
600
|
+
151: <span class="ruby-identifier">titles</span> <span class="ruby-operator">+=</span> <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">XPath</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">res</span>, <span class="ruby-value str">"//p"</span>).<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-identifier">x</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">"title"</span>] }
|
601
|
+
152: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">apfrom</span>
|
602
|
+
153: <span class="ruby-identifier">titles</span>
|
603
|
+
154: <span class="ruby-keyword kw">end</span>
|
604
604
|
</pre>
|
605
605
|
</div>
|
606
606
|
</div>
|
@@ -670,16 +670,16 @@ Returns array of namespaces (name => id)
|
|
670
670
|
onclick="toggleCode('M000017-source');return false;">[Source]</a></p>
|
671
671
|
<div class="method-source-code" id="M000017-source">
|
672
672
|
<pre>
|
673
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
674
|
-
|
675
|
-
|
676
|
-
|
677
|
-
|
678
|
-
|
679
|
-
|
680
|
-
|
681
|
-
|
682
|
-
|
673
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 341</span>
|
674
|
+
341: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">namespaces_by_prefix</span>
|
675
|
+
342: <span class="ruby-identifier">form_data</span> = { <span class="ruby-value str">'action'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'query'</span>, <span class="ruby-value str">'meta'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'siteinfo'</span>, <span class="ruby-value str">'siprop'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'namespaces'</span> }
|
676
|
+
343: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
677
|
+
344: <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">XPath</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">res</span>, <span class="ruby-value str">"//ns"</span>).<span class="ruby-identifier">inject</span>(<span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">namespaces</span>, <span class="ruby-identifier">namespace</span><span class="ruby-operator">|</span>
|
678
|
+
345: <span class="ruby-identifier">prefix</span> = <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">"canonical"</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">""</span>
|
679
|
+
346: <span class="ruby-identifier">namespaces</span>[<span class="ruby-identifier">prefix</span>] = <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">"id"</span>].<span class="ruby-identifier">to_i</span>
|
680
|
+
347: <span class="ruby-identifier">namespaces</span>
|
681
|
+
348: <span class="ruby-keyword kw">end</span>
|
682
|
+
349: <span class="ruby-keyword kw">end</span>
|
683
683
|
</pre>
|
684
684
|
</div>
|
685
685
|
</div>
|
@@ -690,7 +690,7 @@ Returns array of namespaces (name => id)
|
|
690
690
|
|
691
691
|
<div class="method-heading">
|
692
692
|
<a href="#M000006" class="method-signature">
|
693
|
-
<span class="method-name">render</span><span class="method-args">(page_title)</span>
|
693
|
+
<span class="method-name">render</span><span class="method-args">(page_title, options = {})</span>
|
694
694
|
</a>
|
695
695
|
</div>
|
696
696
|
|
@@ -701,25 +701,60 @@ Render a <a href="../MediaWiki.html">MediaWiki</a> page as HTML
|
|
701
701
|
<dl>
|
702
702
|
<dt>page_title</dt><dd>Page title to fetch
|
703
703
|
|
704
|
+
</dd>
|
705
|
+
<dt>options</dt><dd>Hash of additional options
|
706
|
+
|
704
707
|
</dd>
|
705
708
|
</dl>
|
706
709
|
<p>
|
710
|
+
Options:
|
711
|
+
</p>
|
712
|
+
<ul>
|
713
|
+
<li>[linkbase] supply a String to prefix all internal (relative) links with.
|
714
|
+
’/wiki/’ is assumed to be the base of a relative link
|
715
|
+
|
716
|
+
</li>
|
717
|
+
<li>[noeditsections] strips all edit-links if set to <tt>true</tt>
|
718
|
+
|
719
|
+
</li>
|
720
|
+
<li>[noimages] strips all <tt>img</tt> tags from the rendered text if set to
|
721
|
+
<tt>true</tt>
|
722
|
+
|
723
|
+
</li>
|
724
|
+
</ul>
|
725
|
+
<p>
|
707
726
|
Returns nil if the page does not exist
|
708
727
|
</p>
|
709
728
|
<p><a class="source-toggle" href="#"
|
710
729
|
onclick="toggleCode('M000006-source');return false;">[Source]</a></p>
|
711
730
|
<div class="method-source-code" id="M000006-source">
|
712
731
|
<pre>
|
713
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
714
|
-
|
715
|
-
|
716
|
-
|
717
|
-
|
718
|
-
|
719
|
-
|
720
|
-
|
721
|
-
|
722
|
-
|
732
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 65</span>
|
733
|
+
65: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">render</span>(<span class="ruby-identifier">page_title</span>, <span class="ruby-identifier">options</span> = {})
|
734
|
+
66: <span class="ruby-identifier">form_data</span> = {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'parse'</span>, <span class="ruby-value str">'page'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">page_title</span>}
|
735
|
+
67:
|
736
|
+
68: <span class="ruby-identifier">valid_options</span> = <span class="ruby-node">%w(linkbase noeditsections noimages)</span>
|
737
|
+
69: <span class="ruby-comment cmt"># Check options</span>
|
738
|
+
70: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">each</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">opt</span><span class="ruby-operator">|</span> <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">"Unknown option '#{opt}'"</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">valid_options</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">opt</span>.<span class="ruby-identifier">to_s</span>)}
|
739
|
+
71:
|
740
|
+
72: <span class="ruby-identifier">rendered</span> = <span class="ruby-keyword kw">nil</span>
|
741
|
+
73: <span class="ruby-identifier">parsed</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>).<span class="ruby-identifier">elements</span>[<span class="ruby-value str">"parse"</span>]
|
742
|
+
74: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parsed</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">"revid"</span>] <span class="ruby-operator">!=</span> <span class="ruby-value str">'0'</span>
|
743
|
+
75: <span class="ruby-identifier">rendered</span> = <span class="ruby-identifier">parsed</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">"text"</span>].<span class="ruby-identifier">text</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/<!--(.|\s)*?-->/</span>, <span class="ruby-value str">''</span>)
|
744
|
+
76: <span class="ruby-comment cmt"># OPTIMIZE: unifiy the keys in +options+ like symbolize_keys! but w/o</span>
|
745
|
+
77: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">"linkbase"</span>] <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:linkbase</span>]
|
746
|
+
78: <span class="ruby-identifier">linkbase</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value str">"linkbase"</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:linkbase</span>]
|
747
|
+
79: <span class="ruby-identifier">rendered</span> = <span class="ruby-identifier">rendered</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\shref="\/wiki\/(.*)"/</span>, <span class="ruby-value str">' href="'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">linkbase</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'/wiki/\1"'</span>)
|
748
|
+
80: <span class="ruby-keyword kw">end</span>
|
749
|
+
81: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">"noeditsections"</span>] <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:noeditsections</span>]
|
750
|
+
82: <span class="ruby-identifier">rendered</span> = <span class="ruby-identifier">rendered</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/<span class="editsection">\[.+\]<\/span>/</span>, <span class="ruby-value str">''</span>)
|
751
|
+
83: <span class="ruby-keyword kw">end</span>
|
752
|
+
84: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">"noimages"</span>] <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:noimages</span>]
|
753
|
+
85: <span class="ruby-identifier">rendered</span> = <span class="ruby-identifier">rendered</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/<img.*\/>/</span>, <span class="ruby-value str">''</span>)
|
754
|
+
86: <span class="ruby-keyword kw">end</span>
|
755
|
+
87: <span class="ruby-keyword kw">end</span>
|
756
|
+
88: <span class="ruby-identifier">rendered</span>
|
757
|
+
89: <span class="ruby-keyword kw">end</span>
|
723
758
|
</pre>
|
724
759
|
</div>
|
725
760
|
</div>
|
@@ -758,20 +793,20 @@ Returns array of page titles (empty if no matches)
|
|
758
793
|
onclick="toggleCode('M000011-source');return false;">[Source]</a></p>
|
759
794
|
<div class="method-source-code" id="M000011-source">
|
760
795
|
<pre>
|
761
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
762
|
-
|
763
|
-
|
764
|
-
|
765
|
-
|
766
|
-
|
767
|
-
|
768
|
-
|
769
|
-
|
770
|
-
|
771
|
-
|
772
|
-
|
773
|
-
|
774
|
-
|
796
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 163</span>
|
797
|
+
163: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">search</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">namespaces</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">limit</span>=<span class="ruby-value">10</span>)
|
798
|
+
164: <span class="ruby-identifier">titles</span> = []
|
799
|
+
165: <span class="ruby-identifier">form_data</span> = { <span class="ruby-value str">'action'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'query'</span>,
|
800
|
+
166: <span class="ruby-value str">'list'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'search'</span>,
|
801
|
+
167: <span class="ruby-value str">'srwhat'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'text'</span>,
|
802
|
+
168: <span class="ruby-value str">'srsearch'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">key</span>,
|
803
|
+
169: <span class="ruby-value str">'srlimit'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">limit</span>}
|
804
|
+
170: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">namespaces</span>
|
805
|
+
171: <span class="ruby-identifier">namespaces</span> = [ <span class="ruby-identifier">namespaces</span> ] <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">namespaces</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Array</span>
|
806
|
+
172: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'srnamespace'</span>] = <span class="ruby-identifier">namespaces</span>.<span class="ruby-identifier">map!</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">ns</span><span class="ruby-operator">|</span> <span class="ruby-identifier">namespaces_by_prefix</span>[<span class="ruby-identifier">ns</span>] <span class="ruby-keyword kw">end</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">'|'</span>)
|
807
|
+
173: <span class="ruby-keyword kw">end</span>
|
808
|
+
174: <span class="ruby-identifier">titles</span> <span class="ruby-operator">+=</span> <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">XPath</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>), <span class="ruby-value str">"//p"</span>).<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-identifier">x</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">"title"</span>] }
|
809
|
+
175: <span class="ruby-keyword kw">end</span>
|
775
810
|
</pre>
|
776
811
|
</div>
|
777
812
|
</div>
|
@@ -806,13 +841,13 @@ Returns result as an HTML string
|
|
806
841
|
onclick="toggleCode('M000019-source');return false;">[Source]</a></p>
|
807
842
|
<div class="method-source-code" id="M000019-source">
|
808
843
|
<pre>
|
809
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
810
|
-
|
811
|
-
|
812
|
-
|
813
|
-
|
814
|
-
|
815
|
-
|
844
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 370</span>
|
845
|
+
370: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">semantic_query</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">params</span> = [])
|
846
|
+
371: <span class="ruby-identifier">params</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"format=list"</span>
|
847
|
+
372: <span class="ruby-identifier">form_data</span> = { <span class="ruby-value str">'action'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'parse'</span>, <span class="ruby-value str">'prop'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'text'</span>, <span class="ruby-value str">'text'</span> =<span class="ruby-operator">></span> <span class="ruby-node">"{{#ask:#{query}|#{params.join('|')}}}"</span> }
|
848
|
+
373: <span class="ruby-identifier">xml</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
849
|
+
374: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">xml</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">"parse/text"</span>].<span class="ruby-identifier">text</span>
|
850
|
+
375: <span class="ruby-keyword kw">end</span>
|
816
851
|
</pre>
|
817
852
|
</div>
|
818
853
|
</div>
|
@@ -843,17 +878,17 @@ Returns number of revisions undeleted.
|
|
843
878
|
onclick="toggleCode('M000009-source');return false;">[Source]</a></p>
|
844
879
|
<div class="method-source-code" id="M000009-source">
|
845
880
|
<pre>
|
846
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
847
|
-
|
848
|
-
|
849
|
-
|
850
|
-
|
851
|
-
|
852
|
-
|
853
|
-
|
854
|
-
|
855
|
-
|
856
|
-
|
881
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 120</span>
|
882
|
+
120: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">undelete</span>(<span class="ruby-identifier">title</span>)
|
883
|
+
121: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">get_undelete_token</span>(<span class="ruby-identifier">title</span>)
|
884
|
+
122: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">token</span>
|
885
|
+
123: <span class="ruby-identifier">form_data</span> = {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'undelete'</span>, <span class="ruby-value str">'title'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">title</span>, <span class="ruby-value str">'token'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">token</span> }
|
886
|
+
124: <span class="ruby-identifier">xml</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
887
|
+
125: <span class="ruby-identifier">xml</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">"undelete"</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">"revisions"</span>].<span class="ruby-identifier">to_i</span>
|
888
|
+
126: <span class="ruby-keyword kw">else</span>
|
889
|
+
127: <span class="ruby-value">0</span> <span class="ruby-comment cmt"># No revisions to undelete</span>
|
890
|
+
128: <span class="ruby-keyword kw">end</span>
|
891
|
+
129: <span class="ruby-keyword kw">end</span>
|
857
892
|
</pre>
|
858
893
|
</div>
|
859
894
|
</div>
|
@@ -907,7 +942,7 @@ Options:
|
|
907
942
|
</p>
|
908
943
|
<ul>
|
909
944
|
<li>‘filename’ - Target filename (defaults to local name if not
|
910
|
-
given, options[:target] is alias for this.
|
945
|
+
given), options[:target] is alias for this.
|
911
946
|
|
912
947
|
</li>
|
913
948
|
<li>‘comment’ - Upload comment. Also used as the initial page text
|
@@ -925,11 +960,9 @@ href="Gateway.html#M000003">new</a> files
|
|
925
960
|
<li>‘ignorewarnings’ - Ignore any warnings
|
926
961
|
|
927
962
|
</li>
|
928
|
-
<li>‘url’ - Url to fetch the file from. Set path to nil
|
963
|
+
<li>‘url’ - Url to fetch the file from. Set path to nil if you want
|
964
|
+
to use this.
|
929
965
|
|
930
|
-
<pre>
|
931
|
-
if you want to use this.
|
932
|
-
</pre>
|
933
966
|
</li>
|
934
967
|
</ul>
|
935
968
|
<p>
|
@@ -952,47 +985,46 @@ Examples:
|
|
952
985
|
</p>
|
953
986
|
<pre>
|
954
987
|
mw.upload('/path/to/local/file.jpg', 'filename' => "RemoteFile.jpg")
|
955
|
-
mw.upload(nil, 'filename' => "RemoteFile2.jpg",
|
956
|
-
'url' => 'http://remote.com/server/file.jpg')
|
988
|
+
mw.upload(nil, 'filename' => "RemoteFile2.jpg", 'url' => 'http://remote.com/server/file.jpg')
|
957
989
|
</pre>
|
958
990
|
<p><a class="source-toggle" href="#"
|
959
991
|
onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
|
960
992
|
<div class="method-source-code" id="M000012-source">
|
961
993
|
<pre>
|
962
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
963
|
-
|
964
|
-
|
965
|
-
|
966
|
-
|
967
|
-
|
968
|
-
196:
|
969
|
-
197: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:target</span>]
|
970
|
-
198: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'filename'</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:target</span>]
|
971
|
-
199: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:target</span>)
|
972
|
-
200: <span class="ruby-keyword kw">end</span>
|
973
|
-
201:
|
974
|
-
202: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:summary</span>]
|
975
|
-
203: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'text'</span>] <span class="ruby-operator">||=</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:summary</span>]
|
976
|
-
204: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'comment'</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:summary</span>]
|
977
|
-
205: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:summary</span>)
|
978
|
-
206: <span class="ruby-keyword kw">end</span>
|
979
|
-
207:
|
980
|
-
208: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'comment'</span>] <span class="ruby-operator">||=</span> <span class="ruby-value str">"Uploaded by MediaWiki::Gateway"</span>
|
981
|
-
209: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'file'</span>] = <span class="ruby-constant">File</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">path</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">path</span>
|
982
|
-
210: <span class="ruby-identifier">full_name</span> = <span class="ruby-identifier">path</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">'url'</span>]
|
983
|
-
211: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'filename'</span>] <span class="ruby-operator">||=</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-identifier">full_name</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">full_name</span>
|
984
|
-
212:
|
985
|
-
213: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>.<span class="ruby-identifier">new</span>(
|
986
|
-
214: <span class="ruby-value str">"One of the 'file', 'url' or 'sessionkey' options must be specified!"</span>
|
987
|
-
215: ) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">'file'</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">'url'</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">'sessionkey'</span>]
|
994
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 211</span>
|
995
|
+
211: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">upload</span>(<span class="ruby-identifier">path</span>, <span class="ruby-identifier">options</span>={})
|
996
|
+
212: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:description</span>]
|
997
|
+
213: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'text'</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:description</span>]
|
998
|
+
214: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:description</span>)
|
999
|
+
215: <span class="ruby-keyword kw">end</span>
|
988
1000
|
216:
|
989
|
-
217: <span class="ruby-
|
990
|
-
218: <span class="ruby-value str">'
|
991
|
-
219: <span class="ruby-
|
992
|
-
220:
|
1001
|
+
217: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:target</span>]
|
1002
|
+
218: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'filename'</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:target</span>]
|
1003
|
+
219: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:target</span>)
|
1004
|
+
220: <span class="ruby-keyword kw">end</span>
|
993
1005
|
221:
|
994
|
-
222: <span class="ruby-
|
995
|
-
223:
|
1006
|
+
222: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:summary</span>]
|
1007
|
+
223: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'text'</span>] <span class="ruby-operator">||=</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:summary</span>]
|
1008
|
+
224: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'comment'</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:summary</span>]
|
1009
|
+
225: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:summary</span>)
|
1010
|
+
226: <span class="ruby-keyword kw">end</span>
|
1011
|
+
227:
|
1012
|
+
228: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'comment'</span>] <span class="ruby-operator">||=</span> <span class="ruby-value str">"Uploaded by MediaWiki::Gateway"</span>
|
1013
|
+
229: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'file'</span>] = <span class="ruby-constant">File</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">path</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">path</span>
|
1014
|
+
230: <span class="ruby-identifier">full_name</span> = <span class="ruby-identifier">path</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">'url'</span>]
|
1015
|
+
231: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'filename'</span>] <span class="ruby-operator">||=</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-identifier">full_name</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">full_name</span>
|
1016
|
+
232:
|
1017
|
+
233: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>.<span class="ruby-identifier">new</span>(
|
1018
|
+
234: <span class="ruby-value str">"One of the 'file', 'url' or 'sessionkey' options must be specified!"</span>
|
1019
|
+
235: ) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">'file'</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">'url'</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">'sessionkey'</span>]
|
1020
|
+
236:
|
1021
|
+
237: <span class="ruby-identifier">form_data</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">merge</span>(
|
1022
|
+
238: <span class="ruby-value str">'action'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'upload'</span>,
|
1023
|
+
239: <span class="ruby-value str">'token'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">get_token</span>(<span class="ruby-value str">'edit'</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value str">'filename'</span>])
|
1024
|
+
240: )
|
1025
|
+
241:
|
1026
|
+
242: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
1027
|
+
243: <span class="ruby-keyword kw">end</span>
|
996
1028
|
</pre>
|
997
1029
|
</div>
|
998
1030
|
</div>
|
@@ -1018,18 +1050,18 @@ return XML root
|
|
1018
1050
|
onclick="toggleCode('M000023-source');return false;">[Source]</a></p>
|
1019
1051
|
<div class="method-source-code" id="M000023-source">
|
1020
1052
|
<pre>
|
1021
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
1022
|
-
|
1023
|
-
|
1024
|
-
|
1025
|
-
|
1026
|
-
|
1027
|
-
|
1028
|
-
|
1029
|
-
|
1030
|
-
|
1031
|
-
|
1032
|
-
|
1053
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 429</span>
|
1054
|
+
429: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_response</span>(<span class="ruby-identifier">res</span>)
|
1055
|
+
430: <span class="ruby-identifier">doc</span> = <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">Document</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">res</span>).<span class="ruby-identifier">root</span>
|
1056
|
+
431: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">"RES: #{doc}"</span>)
|
1057
|
+
432: <span class="ruby-identifier">raise</span> <span class="ruby-node">"API error, response does not contain Mediawiki API XML: #{res}"</span> <span class="ruby-keyword kw">unless</span> [ <span class="ruby-value str">"api"</span>, <span class="ruby-value str">"mediawiki"</span> ].<span class="ruby-identifier">include?</span> <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">name</span>
|
1058
|
+
433: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">"error"</span>]
|
1059
|
+
434: <span class="ruby-identifier">code</span> = <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">"error"</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">"code"</span>]
|
1060
|
+
435: <span class="ruby-identifier">info</span> = <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">"error"</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">"info"</span>]
|
1061
|
+
436: <span class="ruby-identifier">raise</span> <span class="ruby-node">"API error: code '#{code}', info '#{info}'"</span>
|
1062
|
+
437: <span class="ruby-keyword kw">end</span>
|
1063
|
+
438: <span class="ruby-identifier">doc</span>
|
1064
|
+
439: <span class="ruby-keyword kw">end</span>
|
1033
1065
|
</pre>
|
1034
1066
|
</div>
|
1035
1067
|
</div>
|
@@ -1054,14 +1086,14 @@ href="Gateway.html#M000015">import</a>’)
|
|
1054
1086
|
onclick="toggleCode('M000020-source');return false;">[Source]</a></p>
|
1055
1087
|
<div class="method-source-code" id="M000020-source">
|
1056
1088
|
<pre>
|
1057
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
1058
|
-
|
1059
|
-
|
1060
|
-
|
1061
|
-
|
1062
|
-
|
1063
|
-
|
1064
|
-
|
1089
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 380</span>
|
1090
|
+
380: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_token</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">page_titles</span>)
|
1091
|
+
381: <span class="ruby-identifier">form_data</span> = {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'query'</span>, <span class="ruby-value str">'prop'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'info'</span>, <span class="ruby-value str">'intoken'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">type</span>, <span class="ruby-value str">'titles'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">page_titles</span>}
|
1092
|
+
382: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
1093
|
+
383: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">res</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">"query/pages/page"</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-identifier">type</span> <span class="ruby-operator">+</span> <span class="ruby-value str">"token"</span>]
|
1094
|
+
384: <span class="ruby-identifier">raise</span> <span class="ruby-node">"User is not permitted to perform this operation: #{type}"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">token</span>.<span class="ruby-identifier">nil?</span>
|
1095
|
+
385: <span class="ruby-identifier">token</span>
|
1096
|
+
386: <span class="ruby-keyword kw">end</span>
|
1065
1097
|
</pre>
|
1066
1098
|
</div>
|
1067
1099
|
</div>
|
@@ -1081,18 +1113,18 @@ href="Gateway.html#M000015">import</a>’)
|
|
1081
1113
|
onclick="toggleCode('M000021-source');return false;">[Source]</a></p>
|
1082
1114
|
<div class="method-source-code" id="M000021-source">
|
1083
1115
|
<pre>
|
1084
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
1085
|
-
|
1086
|
-
|
1087
|
-
|
1088
|
-
|
1089
|
-
|
1090
|
-
|
1091
|
-
|
1092
|
-
|
1093
|
-
|
1094
|
-
|
1095
|
-
|
1116
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 388</span>
|
1117
|
+
388: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_undelete_token</span>(<span class="ruby-identifier">page_titles</span>)
|
1118
|
+
389: <span class="ruby-identifier">form_data</span> = {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'query'</span>, <span class="ruby-value str">'list'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'deletedrevs'</span>, <span class="ruby-value str">'prop'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'info'</span>, <span class="ruby-value str">'drprop'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'token'</span>, <span class="ruby-value str">'titles'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">page_titles</span>}
|
1119
|
+
390: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
1120
|
+
391: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">res</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">"query/deletedrevs/page"</span>]
|
1121
|
+
392: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">res</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">"query/deletedrevs/page"</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">"token"</span>]
|
1122
|
+
393: <span class="ruby-identifier">raise</span> <span class="ruby-node">"User is not permitted to perform this operation: #{type}"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">token</span>.<span class="ruby-identifier">nil?</span>
|
1123
|
+
394: <span class="ruby-identifier">token</span>
|
1124
|
+
395: <span class="ruby-keyword kw">else</span>
|
1125
|
+
396: <span class="ruby-keyword kw">nil</span>
|
1126
|
+
397: <span class="ruby-keyword kw">end</span>
|
1127
|
+
398: <span class="ruby-keyword kw">end</span>
|
1096
1128
|
</pre>
|
1097
1129
|
</div>
|
1098
1130
|
</div>
|
@@ -1123,27 +1155,27 @@ Returns XML document
|
|
1123
1155
|
onclick="toggleCode('M000022-source');return false;">[Source]</a></p>
|
1124
1156
|
<div class="method-source-code" id="M000022-source">
|
1125
1157
|
<pre>
|
1126
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
1127
|
-
|
1128
|
-
|
1129
|
-
|
1130
|
-
|
1131
|
-
|
1132
|
-
|
1133
|
-
|
1134
|
-
|
1135
|
-
|
1136
|
-
|
1137
|
-
|
1138
|
-
|
1139
|
-
|
1140
|
-
|
1141
|
-
|
1142
|
-
|
1143
|
-
|
1144
|
-
|
1145
|
-
|
1146
|
-
|
1158
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 405</span>
|
1159
|
+
405: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
1160
|
+
406: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'format'</span>] = <span class="ruby-value str">'xml'</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">form_data</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Hash</span>
|
1161
|
+
407: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">"REQ: #{form_data.inspect}, #{@cookies.inspect}"</span>)
|
1162
|
+
408: <span class="ruby-constant">RestClient</span>.<span class="ruby-identifier">post</span>(<span class="ruby-ivar">@wiki_url</span>, <span class="ruby-identifier">form_data</span>, <span class="ruby-ivar">@headers</span>.<span class="ruby-identifier">merge</span>({<span class="ruby-identifier">:cookies</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@cookies</span>})) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">response</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span><span class="ruby-operator">|</span>
|
1163
|
+
409: <span class="ruby-comment cmt"># Check response for errors and return XML</span>
|
1164
|
+
410: <span class="ruby-identifier">raise</span> <span class="ruby-node">"API error, bad response: #{response}"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">code</span> <span class="ruby-operator">>=</span> <span class="ruby-value">200</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">code</span> <span class="ruby-operator"><</span> <span class="ruby-value">300</span>
|
1165
|
+
411: <span class="ruby-identifier">doc</span> = <span class="ruby-identifier">get_response</span>(<span class="ruby-identifier">response</span>.<span class="ruby-identifier">dup</span>)
|
1166
|
+
412: <span class="ruby-keyword kw">if</span>(<span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'action'</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'login'</span>)
|
1167
|
+
413: <span class="ruby-identifier">login_result</span> = <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">"login"</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">'result'</span>]
|
1168
|
+
414: <span class="ruby-ivar">@cookies</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-identifier">response</span>.<span class="ruby-identifier">cookies</span>)
|
1169
|
+
415: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">login_result</span>
|
1170
|
+
416: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">"Success"</span> <span class="ruby-keyword kw">then</span> <span class="ruby-comment cmt"># do nothing</span>
|
1171
|
+
417: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">"NeedToken"</span> <span class="ruby-keyword kw">then</span> <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-value str">'lgtoken'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">"login"</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">"token"</span>]))
|
1172
|
+
418: <span class="ruby-keyword kw">else</span> <span class="ruby-identifier">raise</span> <span class="ruby-value str">"Login failed: "</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">login_result</span>
|
1173
|
+
419: <span class="ruby-keyword kw">end</span>
|
1174
|
+
420: <span class="ruby-keyword kw">end</span>
|
1175
|
+
421: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">doc</span>
|
1176
|
+
422: <span class="ruby-keyword kw">end</span>
|
1177
|
+
423:
|
1178
|
+
424: <span class="ruby-keyword kw">end</span>
|
1147
1179
|
</pre>
|
1148
1180
|
</div>
|
1149
1181
|
</div>
|