mediawiki-gateway 0.2.1 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +2 -0
- data/doc/classes/MediaWiki.html +106 -26
- data/doc/classes/MediaWiki/Config.html +12 -12
- data/doc/classes/MediaWiki/Gateway.html +553 -430
- data/doc/created.rid +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/fr_method_index.html +29 -25
- data/lib/media_wiki.rb +4 -0
- data/lib/media_wiki/gateway.rb +20 -3
- data/lib/media_wiki/utils.rb +30 -9
- data/mediawiki-gateway.gemspec +2 -3
- data/spec/utils_spec.rb +30 -2
- metadata +4 -5
- data/VERSION +0 -1
data/Rakefile
CHANGED
@@ -2,6 +2,7 @@ require 'rake'
|
|
2
2
|
require 'rake/gempackagetask'
|
3
3
|
require 'rake/rdoctask'
|
4
4
|
require 'spec/rake/spectask'
|
5
|
+
require 'lib/media_wiki'
|
5
6
|
|
6
7
|
task :default => ['spec']
|
7
8
|
|
@@ -34,6 +35,7 @@ begin
|
|
34
35
|
gemspec.email = "jpatokal@iki.fi"
|
35
36
|
gemspec.homepage = "http://github.com/jpatokal/mediawiki-gateway"
|
36
37
|
gemspec.authors = ["Jani Patokallio"]
|
38
|
+
gemspec.version = MediaWiki::VERSION
|
37
39
|
gemspec.add_dependency 'rest-client'
|
38
40
|
gemspec.add_development_dependency 'sham_rack'
|
39
41
|
gemspec.add_development_dependency 'jeweler'
|
data/doc/classes/MediaWiki.html
CHANGED
@@ -88,9 +88,11 @@
|
|
88
88
|
<h3 class="section-bar">Methods</h3>
|
89
89
|
|
90
90
|
<div class="name-list">
|
91
|
+
<a href="#M000001">get_path_to_subpage</a>
|
92
|
+
<a href="#M000002">get_subpage</a>
|
91
93
|
<a href="#M000003">uri_to_wiki</a>
|
92
|
-
<a href="#
|
93
|
-
<a href="#
|
94
|
+
<a href="#M000005">version</a>
|
95
|
+
<a href="#M000004">wiki_to_uri</a>
|
94
96
|
</div>
|
95
97
|
</div>
|
96
98
|
|
@@ -119,6 +121,84 @@ Class <a href="MediaWiki/Gateway.html" class="link">MediaWiki::Gateway</a><br />
|
|
119
121
|
<div id="methods">
|
120
122
|
<h3 class="section-bar">Public Class methods</h3>
|
121
123
|
|
124
|
+
<div id="method-M000001" class="method-detail">
|
125
|
+
<a name="M000001"></a>
|
126
|
+
|
127
|
+
<div class="method-heading">
|
128
|
+
<a href="#M000001" class="method-signature">
|
129
|
+
<span class="method-name">get_path_to_subpage</span><span class="method-args">(title)</span>
|
130
|
+
</a>
|
131
|
+
</div>
|
132
|
+
|
133
|
+
<div class="method-description">
|
134
|
+
<p>
|
135
|
+
Extract path leading up to subpage. If title does not contain a subpage,
|
136
|
+
returns nil.
|
137
|
+
</p>
|
138
|
+
<p>
|
139
|
+
Examples: <a
|
140
|
+
href="MediaWiki.html#M000001">get_path_to_subpage</a>("Namespace:Foo/Bar/Baz")
|
141
|
+
-> "Namespace:Foo/Bar" <a
|
142
|
+
href="MediaWiki.html#M000001">get_path_to_subpage</a>("Namespace:Foo")
|
143
|
+
-> nil
|
144
|
+
</p>
|
145
|
+
<dl>
|
146
|
+
<dt>title</dt><dd>Page name string in Wiki format
|
147
|
+
|
148
|
+
</dd>
|
149
|
+
</dl>
|
150
|
+
<p><a class="source-toggle" href="#"
|
151
|
+
onclick="toggleCode('M000001-source');return false;">[Source]</a></p>
|
152
|
+
<div class="method-source-code" id="M000001-source">
|
153
|
+
<pre>
|
154
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/utils.rb, line 11</span>
|
155
|
+
11: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_path_to_subpage</span>(<span class="ruby-identifier">title</span>)
|
156
|
+
12: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">title</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">title</span>.<span class="ruby-identifier">include?</span> <span class="ruby-value str">'/'</span>
|
157
|
+
13: <span class="ruby-identifier">parts</span> = <span class="ruby-identifier">title</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp re">/\/([^\/]*)$/</span>).<span class="ruby-identifier">first</span>
|
158
|
+
14: <span class="ruby-keyword kw">end</span>
|
159
|
+
</pre>
|
160
|
+
</div>
|
161
|
+
</div>
|
162
|
+
</div>
|
163
|
+
|
164
|
+
<div id="method-M000002" class="method-detail">
|
165
|
+
<a name="M000002"></a>
|
166
|
+
|
167
|
+
<div class="method-heading">
|
168
|
+
<a href="#M000002" class="method-signature">
|
169
|
+
<span class="method-name">get_subpage</span><span class="method-args">(title)</span>
|
170
|
+
</a>
|
171
|
+
</div>
|
172
|
+
|
173
|
+
<div class="method-description">
|
174
|
+
<p>
|
175
|
+
Extract subpage name. If there is no hierarchy above, return page name.
|
176
|
+
</p>
|
177
|
+
<p>
|
178
|
+
Examples: <a
|
179
|
+
href="MediaWiki.html#M000002">get_subpage</a>("Namespace:Foo/Bar/Baz")
|
180
|
+
-> "Baz" <a
|
181
|
+
href="MediaWiki.html#M000002">get_subpage</a>("Namespace:Foo")
|
182
|
+
-> "Namespace:Foo"
|
183
|
+
</p>
|
184
|
+
<dl>
|
185
|
+
<dt>title</dt><dd>Page name string in Wiki format
|
186
|
+
|
187
|
+
</dd>
|
188
|
+
</dl>
|
189
|
+
<p><a class="source-toggle" href="#"
|
190
|
+
onclick="toggleCode('M000002-source');return false;">[Source]</a></p>
|
191
|
+
<div class="method-source-code" id="M000002-source">
|
192
|
+
<pre>
|
193
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/utils.rb, line 23</span>
|
194
|
+
23: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_subpage</span>(<span class="ruby-identifier">title</span>)
|
195
|
+
24: <span class="ruby-identifier">title</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">'/'</span>).<span class="ruby-identifier">last</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">title</span>
|
196
|
+
25: <span class="ruby-keyword kw">end</span>
|
197
|
+
</pre>
|
198
|
+
</div>
|
199
|
+
</div>
|
200
|
+
</div>
|
201
|
+
|
122
202
|
<div id="method-M000003" class="method-detail">
|
123
203
|
<a name="M000003"></a>
|
124
204
|
|
@@ -142,47 +222,47 @@ display format page name ("getting there & away")
|
|
142
222
|
onclick="toggleCode('M000003-source');return false;">[Source]</a></p>
|
143
223
|
<div class="method-source-code" id="M000003-source">
|
144
224
|
<pre>
|
145
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/utils.rb, line
|
146
|
-
|
147
|
-
|
148
|
-
|
225
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/utils.rb, line 29</span>
|
226
|
+
29: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">uri_to_wiki</span>(<span class="ruby-identifier">uri</span>)
|
227
|
+
30: <span class="ruby-constant">CGI</span>.<span class="ruby-identifier">unescape</span>(<span class="ruby-identifier">uri</span>).<span class="ruby-identifier">tr</span>(<span class="ruby-value str">'_'</span>, <span class="ruby-value str">' '</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri</span>
|
228
|
+
31: <span class="ruby-keyword kw">end</span>
|
149
229
|
</pre>
|
150
230
|
</div>
|
151
231
|
</div>
|
152
232
|
</div>
|
153
233
|
|
154
|
-
<div id="method-
|
155
|
-
<a name="
|
234
|
+
<div id="method-M000005" class="method-detail">
|
235
|
+
<a name="M000005"></a>
|
156
236
|
|
157
237
|
<div class="method-heading">
|
158
|
-
<a href="#
|
238
|
+
<a href="#M000005" class="method-signature">
|
159
239
|
<span class="method-name">version</span><span class="method-args">()</span>
|
160
240
|
</a>
|
161
241
|
</div>
|
162
242
|
|
163
243
|
<div class="method-description">
|
164
244
|
<p>
|
165
|
-
|
166
|
-
href="MediaWiki.html
|
245
|
+
Return current <a href="MediaWiki.html#M000005">version</a> of <a
|
246
|
+
href="MediaWiki/Gateway.html">MediaWiki::Gateway</a>
|
167
247
|
</p>
|
168
248
|
<p><a class="source-toggle" href="#"
|
169
|
-
onclick="toggleCode('
|
170
|
-
<div class="method-source-code" id="
|
249
|
+
onclick="toggleCode('M000005-source');return false;">[Source]</a></p>
|
250
|
+
<div class="method-source-code" id="M000005-source">
|
171
251
|
<pre>
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
252
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/utils.rb, line 41</span>
|
253
|
+
41: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">version</span>
|
254
|
+
42: <span class="ruby-constant">MediaWiki</span><span class="ruby-operator">::</span><span class="ruby-constant">VERSION</span>
|
255
|
+
43: <span class="ruby-keyword kw">end</span>
|
176
256
|
</pre>
|
177
257
|
</div>
|
178
258
|
</div>
|
179
259
|
</div>
|
180
260
|
|
181
|
-
<div id="method-
|
182
|
-
<a name="
|
261
|
+
<div id="method-M000004" class="method-detail">
|
262
|
+
<a name="M000004"></a>
|
183
263
|
|
184
264
|
<div class="method-heading">
|
185
|
-
<a href="#
|
265
|
+
<a href="#M000004" class="method-signature">
|
186
266
|
<span class="method-name">wiki_to_uri</span><span class="method-args">(wiki)</span>
|
187
267
|
</a>
|
188
268
|
</div>
|
@@ -199,13 +279,13 @@ slashes
|
|
199
279
|
</dd>
|
200
280
|
</dl>
|
201
281
|
<p><a class="source-toggle" href="#"
|
202
|
-
onclick="toggleCode('
|
203
|
-
<div class="method-source-code" id="
|
282
|
+
onclick="toggleCode('M000004-source');return false;">[Source]</a></p>
|
283
|
+
<div class="method-source-code" id="M000004-source">
|
204
284
|
<pre>
|
205
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/utils.rb, line
|
206
|
-
|
207
|
-
|
208
|
-
|
285
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/utils.rb, line 36</span>
|
286
|
+
36: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">wiki_to_uri</span>(<span class="ruby-identifier">wiki</span>)
|
287
|
+
37: <span class="ruby-identifier">wiki</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">'/'</span>).<span class="ruby-identifier">map</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">chunk</span><span class="ruby-operator">|</span> <span class="ruby-constant">CGI</span>.<span class="ruby-identifier">escape</span>(<span class="ruby-identifier">chunk</span>.<span class="ruby-identifier">tr</span>(<span class="ruby-value str">' '</span>, <span class="ruby-value str">'_'</span>)) }.<span class="ruby-identifier">join</span>(<span class="ruby-value str">'/'</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">wiki</span>
|
288
|
+
38: <span class="ruby-keyword kw">end</span>
|
209
289
|
</pre>
|
210
290
|
</div>
|
211
291
|
</div>
|
@@ -86,8 +86,8 @@
|
|
86
86
|
<h3 class="section-bar">Methods</h3>
|
87
87
|
|
88
88
|
<div class="name-list">
|
89
|
-
<a href="#
|
90
|
-
<a href="#
|
89
|
+
<a href="#M000030">abort</a>
|
90
|
+
<a href="#M000029">new</a>
|
91
91
|
</div>
|
92
92
|
</div>
|
93
93
|
|
@@ -157,19 +157,19 @@
|
|
157
157
|
<div id="methods">
|
158
158
|
<h3 class="section-bar">Public Class methods</h3>
|
159
159
|
|
160
|
-
<div id="method-
|
161
|
-
<a name="
|
160
|
+
<div id="method-M000029" class="method-detail">
|
161
|
+
<a name="M000029"></a>
|
162
162
|
|
163
163
|
<div class="method-heading">
|
164
|
-
<a href="#
|
164
|
+
<a href="#M000029" class="method-signature">
|
165
165
|
<span class="method-name">new</span><span class="method-args">(args, type = "read")</span>
|
166
166
|
</a>
|
167
167
|
</div>
|
168
168
|
|
169
169
|
<div class="method-description">
|
170
170
|
<p><a class="source-toggle" href="#"
|
171
|
-
onclick="toggleCode('
|
172
|
-
<div class="method-source-code" id="
|
171
|
+
onclick="toggleCode('M000029-source');return false;">[Source]</a></p>
|
172
|
+
<div class="method-source-code" id="M000029-source">
|
173
173
|
<pre>
|
174
174
|
<span class="ruby-comment cmt"># File lib/media_wiki/config.rb, line 10</span>
|
175
175
|
10: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">args</span>, <span class="ruby-identifier">type</span> = <span class="ruby-value str">"read"</span>)
|
@@ -230,19 +230,19 @@
|
|
230
230
|
|
231
231
|
<h3 class="section-bar">Public Instance methods</h3>
|
232
232
|
|
233
|
-
<div id="method-
|
234
|
-
<a name="
|
233
|
+
<div id="method-M000030" class="method-detail">
|
234
|
+
<a name="M000030"></a>
|
235
235
|
|
236
236
|
<div class="method-heading">
|
237
|
-
<a href="#
|
237
|
+
<a href="#M000030" class="method-signature">
|
238
238
|
<span class="method-name">abort</span><span class="method-args">(error)</span>
|
239
239
|
</a>
|
240
240
|
</div>
|
241
241
|
|
242
242
|
<div class="method-description">
|
243
243
|
<p><a class="source-toggle" href="#"
|
244
|
-
onclick="toggleCode('
|
245
|
-
<div class="method-source-code" id="
|
244
|
+
onclick="toggleCode('M000030-source');return false;">[Source]</a></p>
|
245
|
+
<div class="method-source-code" id="M000030-source">
|
246
246
|
<pre>
|
247
247
|
<span class="ruby-comment cmt"># File lib/media_wiki/config.rb, line 62</span>
|
248
248
|
62: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">abort</span>(<span class="ruby-identifier">error</span>)
|
@@ -86,27 +86,29 @@
|
|
86
86
|
<h3 class="section-bar">Methods</h3>
|
87
87
|
|
88
88
|
<div class="name-list">
|
89
|
-
<a href="#
|
90
|
-
<a href="#
|
91
|
-
<a href="#
|
92
|
-
<a href="#
|
93
|
-
<a href="#
|
94
|
-
<a href="#
|
95
|
-
<a href="#
|
96
|
-
<a href="#
|
97
|
-
<a href="#
|
98
|
-
<a href="#
|
99
|
-
<a href="#
|
100
|
-
<a href="#
|
101
|
-
<a href="#
|
102
|
-
<a href="#
|
103
|
-
<a href="#
|
104
|
-
<a href="#
|
105
|
-
<a href="#
|
106
|
-
<a href="#
|
107
|
-
<a href="#
|
108
|
-
<a href="#
|
109
|
-
<a href="#
|
89
|
+
<a href="#M000015">backlinks</a>
|
90
|
+
<a href="#M000010">create</a>
|
91
|
+
<a href="#M000012">delete</a>
|
92
|
+
<a href="#M000019">download</a>
|
93
|
+
<a href="#M000021">export</a>
|
94
|
+
<a href="#M000023">extensions</a>
|
95
|
+
<a href="#M000008">get</a>
|
96
|
+
<a href="#M000028">get_response</a>
|
97
|
+
<a href="#M000025">get_token</a>
|
98
|
+
<a href="#M000026">get_undelete_token</a>
|
99
|
+
<a href="#M000018">image_info</a>
|
100
|
+
<a href="#M000020">import</a>
|
101
|
+
<a href="#M000014">list</a>
|
102
|
+
<a href="#M000007">login</a>
|
103
|
+
<a href="#M000027">make_api_request</a>
|
104
|
+
<a href="#M000011">move</a>
|
105
|
+
<a href="#M000022">namespaces_by_prefix</a>
|
106
|
+
<a href="#M000006">new</a>
|
107
|
+
<a href="#M000009">render</a>
|
108
|
+
<a href="#M000016">search</a>
|
109
|
+
<a href="#M000024">semantic_query</a>
|
110
|
+
<a href="#M000013">undelete</a>
|
111
|
+
<a href="#M000017">upload</a>
|
110
112
|
</div>
|
111
113
|
</div>
|
112
114
|
|
@@ -118,6 +120,19 @@
|
|
118
120
|
<div id="section">
|
119
121
|
|
120
122
|
|
123
|
+
<div id="constants-list">
|
124
|
+
<h3 class="section-bar">Constants</h3>
|
125
|
+
|
126
|
+
<div class="name-list">
|
127
|
+
<table summary="Constants">
|
128
|
+
<tr class="top-aligned-row context-row">
|
129
|
+
<td class="context-item-name">API_MAX_LIMIT</td>
|
130
|
+
<td>=</td>
|
131
|
+
<td class="context-item-value">500</td>
|
132
|
+
</tr>
|
133
|
+
</table>
|
134
|
+
</div>
|
135
|
+
</div>
|
121
136
|
|
122
137
|
|
123
138
|
|
@@ -141,11 +156,11 @@
|
|
141
156
|
<div id="methods">
|
142
157
|
<h3 class="section-bar">Public Class methods</h3>
|
143
158
|
|
144
|
-
<div id="method-
|
145
|
-
<a name="
|
159
|
+
<div id="method-M000006" class="method-detail">
|
160
|
+
<a name="M000006"></a>
|
146
161
|
|
147
162
|
<div class="method-heading">
|
148
|
-
<a href="#
|
163
|
+
<a href="#M000006" class="method-signature">
|
149
164
|
<span class="method-name">new</span><span class="method-args">(url, loglevel = Logger::WARN)</span>
|
150
165
|
</a>
|
151
166
|
</div>
|
@@ -166,17 +181,17 @@ href="http://en.wikipedia.org/w/api.php">en.wikipedia.org/w/api.php</a>")
|
|
166
181
|
</dd>
|
167
182
|
</dl>
|
168
183
|
<p><a class="source-toggle" href="#"
|
169
|
-
onclick="toggleCode('
|
170
|
-
<div class="method-source-code" id="
|
184
|
+
onclick="toggleCode('M000006-source');return false;">[Source]</a></p>
|
185
|
+
<div class="method-source-code" id="M000006-source">
|
171
186
|
<pre>
|
172
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
187
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 16</span>
|
188
|
+
16: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">url</span>, <span class="ruby-identifier">loglevel</span> = <span class="ruby-constant">Logger</span><span class="ruby-operator">::</span><span class="ruby-constant">WARN</span>)
|
189
|
+
17: <span class="ruby-ivar">@log</span> = <span class="ruby-constant">Logger</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">STDERR</span>)
|
190
|
+
18: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">level</span> = <span class="ruby-identifier">loglevel</span>
|
191
|
+
19: <span class="ruby-ivar">@wiki_url</span> = <span class="ruby-identifier">url</span>
|
192
|
+
20: <span class="ruby-ivar">@headers</span> = { <span class="ruby-value str">"User-Agent"</span> =<span class="ruby-operator">></span> <span class="ruby-node">"MediaWiki::Gateway/#{MediaWiki.version}"</span> }
|
193
|
+
21: <span class="ruby-ivar">@cookies</span> = {}
|
194
|
+
22: <span class="ruby-keyword kw">end</span>
|
180
195
|
</pre>
|
181
196
|
</div>
|
182
197
|
</div>
|
@@ -184,22 +199,75 @@ href="http://en.wikipedia.org/w/api.php">en.wikipedia.org/w/api.php</a>")
|
|
184
199
|
|
185
200
|
<h3 class="section-bar">Public Instance methods</h3>
|
186
201
|
|
187
|
-
<div id="method-
|
188
|
-
<a name="
|
202
|
+
<div id="method-M000015" class="method-detail">
|
203
|
+
<a name="M000015"></a>
|
189
204
|
|
190
205
|
<div class="method-heading">
|
191
|
-
<a href="#
|
206
|
+
<a href="#M000015" class="method-signature">
|
207
|
+
<span class="method-name">backlinks</span><span class="method-args">(title, filter = "all")</span>
|
208
|
+
</a>
|
209
|
+
</div>
|
210
|
+
|
211
|
+
<div class="method-description">
|
212
|
+
<p>
|
213
|
+
Get a <a href="Gateway.html#M000014">list</a> of pages that link to a
|
214
|
+
target page
|
215
|
+
</p>
|
216
|
+
<dl>
|
217
|
+
<dt>title</dt><dd>Link target page
|
218
|
+
|
219
|
+
</dd>
|
220
|
+
<dt>filter</dt><dd>"all" links (default), "redirects" only, or
|
221
|
+
"nonredirects" (plain links only)
|
222
|
+
|
223
|
+
</dd>
|
224
|
+
</dl>
|
225
|
+
<p>
|
226
|
+
Returns array of page titles (empty if no matches)
|
227
|
+
</p>
|
228
|
+
<p><a class="source-toggle" href="#"
|
229
|
+
onclick="toggleCode('M000015-source');return false;">[Source]</a></p>
|
230
|
+
<div class="method-source-code" id="M000015-source">
|
231
|
+
<pre>
|
232
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 180</span>
|
233
|
+
180: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">backlinks</span>(<span class="ruby-identifier">title</span>, <span class="ruby-identifier">filter</span> = <span class="ruby-value str">"all"</span>)
|
234
|
+
181: <span class="ruby-identifier">titles</span> = []
|
235
|
+
182: <span class="ruby-identifier">blcontinue</span> = <span class="ruby-keyword kw">nil</span>
|
236
|
+
183: <span class="ruby-keyword kw">begin</span>
|
237
|
+
184: <span class="ruby-identifier">form_data</span> =
|
238
|
+
185: {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'query'</span>,
|
239
|
+
186: <span class="ruby-value str">'list'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'backlinks'</span>,
|
240
|
+
187: <span class="ruby-value str">'bltitle'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">title</span>,
|
241
|
+
188: <span class="ruby-value str">'blfilterredir'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">filter</span>,
|
242
|
+
189: <span class="ruby-value str">'bllimit'</span> =<span class="ruby-operator">></span> <span class="ruby-constant">API_MAX_LIMIT</span> }
|
243
|
+
190: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'blcontinue'</span>] = <span class="ruby-identifier">blcontinue</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">blcontinue</span>
|
244
|
+
191: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
245
|
+
192: <span class="ruby-identifier">blcontinue</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/backlinks'</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">'blcontinue'</span>] <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
|
246
|
+
193: <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">"//bl"</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>] }
|
247
|
+
194: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">blcontinue</span>
|
248
|
+
195: <span class="ruby-identifier">titles</span>
|
249
|
+
196: <span class="ruby-keyword kw">end</span>
|
250
|
+
</pre>
|
251
|
+
</div>
|
252
|
+
</div>
|
253
|
+
</div>
|
254
|
+
|
255
|
+
<div id="method-M000010" class="method-detail">
|
256
|
+
<a name="M000010"></a>
|
257
|
+
|
258
|
+
<div class="method-heading">
|
259
|
+
<a href="#M000010" class="method-signature">
|
192
260
|
<span class="method-name">create</span><span class="method-args">(title, content, options={})</span>
|
193
261
|
</a>
|
194
262
|
</div>
|
195
263
|
|
196
264
|
<div class="method-description">
|
197
265
|
<p>
|
198
|
-
Create a <a href="Gateway.html#
|
266
|
+
Create a <a href="Gateway.html#M000006">new</a> page, or overwrite an
|
199
267
|
existing one
|
200
268
|
</p>
|
201
269
|
<dl>
|
202
|
-
<dt>title</dt><dd>Page title to <a href="Gateway.html#
|
270
|
+
<dt>title</dt><dd>Page title to <a href="Gateway.html#M000010">create</a> or overwrite,
|
203
271
|
string
|
204
272
|
|
205
273
|
</dd>
|
@@ -221,30 +289,30 @@ Options:
|
|
221
289
|
|
222
290
|
</li>
|
223
291
|
<li>[token] Use this existing edit token instead requesting a <a
|
224
|
-
href="Gateway.html#
|
292
|
+
href="Gateway.html#M000006">new</a> one (useful for bulk loads)
|
225
293
|
|
226
294
|
</li>
|
227
295
|
</ul>
|
228
296
|
<p><a class="source-toggle" href="#"
|
229
|
-
onclick="toggleCode('
|
230
|
-
<div class="method-source-code" id="
|
297
|
+
onclick="toggleCode('M000010-source');return false;">[Source]</a></p>
|
298
|
+
<div class="method-source-code" id="M000010-source">
|
231
299
|
<pre>
|
232
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
300
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 102</span>
|
301
|
+
102: <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>={})
|
302
|
+
103: <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>)}
|
303
|
+
104: <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>]
|
304
|
+
105: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
305
|
+
106: <span class="ruby-keyword kw">end</span>
|
238
306
|
</pre>
|
239
307
|
</div>
|
240
308
|
</div>
|
241
309
|
</div>
|
242
310
|
|
243
|
-
<div id="method-
|
244
|
-
<a name="
|
311
|
+
<div id="method-M000012" class="method-detail">
|
312
|
+
<a name="M000012"></a>
|
245
313
|
|
246
314
|
<div class="method-heading">
|
247
|
-
<a href="#
|
315
|
+
<a href="#M000012" class="method-signature">
|
248
316
|
<span class="method-name">delete</span><span class="method-args">(title)</span>
|
249
317
|
</a>
|
250
318
|
</div>
|
@@ -255,29 +323,29 @@ Delete one page. (<a href="../MediaWiki.html">MediaWiki</a> API does not
|
|
255
323
|
support deleting multiple pages at a time.)
|
256
324
|
</p>
|
257
325
|
<dl>
|
258
|
-
<dt>title</dt><dd>Title of page to <a href="Gateway.html#
|
326
|
+
<dt>title</dt><dd>Title of page to <a href="Gateway.html#M000012">delete</a>
|
259
327
|
|
260
328
|
</dd>
|
261
329
|
</dl>
|
262
330
|
<p><a class="source-toggle" href="#"
|
263
|
-
onclick="toggleCode('
|
264
|
-
<div class="method-source-code" id="
|
331
|
+
onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
|
332
|
+
<div class="method-source-code" id="M000012-source">
|
265
333
|
<pre>
|
266
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
334
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 128</span>
|
335
|
+
128: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete</span>(<span class="ruby-identifier">title</span>)
|
336
|
+
129: <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>)}
|
337
|
+
130: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
338
|
+
131: <span class="ruby-keyword kw">end</span>
|
271
339
|
</pre>
|
272
340
|
</div>
|
273
341
|
</div>
|
274
342
|
</div>
|
275
343
|
|
276
|
-
<div id="method-
|
277
|
-
<a name="
|
344
|
+
<div id="method-M000019" class="method-detail">
|
345
|
+
<a name="M000019"></a>
|
278
346
|
|
279
347
|
<div class="method-heading">
|
280
|
-
<a href="#
|
348
|
+
<a href="#M000019" class="method-signature">
|
281
349
|
<span class="method-name">download</span><span class="method-args">(file_name, options={})</span>
|
282
350
|
</a>
|
283
351
|
</div>
|
@@ -285,36 +353,36 @@ support deleting multiple pages at a time.)
|
|
285
353
|
<div class="method-description">
|
286
354
|
<p>
|
287
355
|
Download <em>file_name</em>. Returns file contents. All options are passed
|
288
|
-
to <a href="Gateway.html#
|
356
|
+
to <a href="Gateway.html#M000018">image_info</a> however
|
289
357
|
options[‘iiprop’] is forced to url. You can still set other
|
290
358
|
options to control what file you want to <a
|
291
|
-
href="Gateway.html#
|
359
|
+
href="Gateway.html#M000019">download</a>.
|
292
360
|
</p>
|
293
361
|
<p><a class="source-toggle" href="#"
|
294
|
-
onclick="toggleCode('
|
295
|
-
<div class="method-source-code" id="
|
362
|
+
onclick="toggleCode('M000019-source');return false;">[Source]</a></p>
|
363
|
+
<div class="method-source-code" id="M000019-source">
|
296
364
|
<pre>
|
297
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
365
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 344</span>
|
366
|
+
344: <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>={})
|
367
|
+
345: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'iiprop'</span>] = <span class="ruby-value str">'url'</span>
|
368
|
+
346:
|
369
|
+
347: <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>)
|
370
|
+
348: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attributes</span>
|
371
|
+
349: <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>]
|
372
|
+
350: <span class="ruby-keyword kw">else</span>
|
373
|
+
351: <span class="ruby-keyword kw">nil</span>
|
374
|
+
352: <span class="ruby-keyword kw">end</span>
|
375
|
+
353: <span class="ruby-keyword kw">end</span>
|
308
376
|
</pre>
|
309
377
|
</div>
|
310
378
|
</div>
|
311
379
|
</div>
|
312
380
|
|
313
|
-
<div id="method-
|
314
|
-
<a name="
|
381
|
+
<div id="method-M000021" class="method-detail">
|
382
|
+
<a name="M000021"></a>
|
315
383
|
|
316
384
|
<div class="method-heading">
|
317
|
-
<a href="#
|
385
|
+
<a href="#M000021" class="method-signature">
|
318
386
|
<span class="method-name">export</span><span class="method-args">(page_titles)</span>
|
319
387
|
</a>
|
320
388
|
</div>
|
@@ -332,61 +400,61 @@ Exports a page or set of pages
|
|
332
400
|
Returns <a href="../MediaWiki.html">MediaWiki</a> XML dump
|
333
401
|
</p>
|
334
402
|
<p><a class="source-toggle" href="#"
|
335
|
-
onclick="toggleCode('
|
336
|
-
<div class="method-source-code" id="
|
403
|
+
onclick="toggleCode('M000021-source');return false;">[Source]</a></p>
|
404
|
+
<div class="method-source-code" id="M000021-source">
|
337
405
|
<pre>
|
338
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
406
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 375</span>
|
407
|
+
375: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">export</span>(<span class="ruby-identifier">page_titles</span>)
|
408
|
+
376: <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>}
|
409
|
+
377: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
410
|
+
378: <span class="ruby-keyword kw">end</span>
|
343
411
|
</pre>
|
344
412
|
</div>
|
345
413
|
</div>
|
346
414
|
</div>
|
347
415
|
|
348
|
-
<div id="method-
|
349
|
-
<a name="
|
416
|
+
<div id="method-M000023" class="method-detail">
|
417
|
+
<a name="M000023"></a>
|
350
418
|
|
351
419
|
<div class="method-heading">
|
352
|
-
<a href="#
|
420
|
+
<a href="#M000023" class="method-signature">
|
353
421
|
<span class="method-name">extensions</span><span class="method-args">()</span>
|
354
422
|
</a>
|
355
423
|
</div>
|
356
424
|
|
357
425
|
<div class="method-description">
|
358
426
|
<p>
|
359
|
-
Get a <a href="Gateway.html#
|
360
|
-
registered) <a href="Gateway.html#
|
427
|
+
Get a <a href="Gateway.html#M000014">list</a> of all installed (and
|
428
|
+
registered) <a href="Gateway.html#M000023">extensions</a>
|
361
429
|
</p>
|
362
430
|
<p>
|
363
|
-
Returns array of <a href="Gateway.html#
|
431
|
+
Returns array of <a href="Gateway.html#M000023">extensions</a> (name =>
|
364
432
|
version)
|
365
433
|
</p>
|
366
434
|
<p><a class="source-toggle" href="#"
|
367
|
-
onclick="toggleCode('
|
368
|
-
<div class="method-source-code" id="
|
435
|
+
onclick="toggleCode('M000023-source');return false;">[Source]</a></p>
|
436
|
+
<div class="method-source-code" id="M000023-source">
|
369
437
|
<pre>
|
370
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
438
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 396</span>
|
439
|
+
396: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">extensions</span>
|
440
|
+
397: <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> }
|
441
|
+
398: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
442
|
+
399: <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>
|
443
|
+
400: <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>
|
444
|
+
401: <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>]
|
445
|
+
402: <span class="ruby-identifier">extensions</span>
|
446
|
+
403: <span class="ruby-keyword kw">end</span>
|
447
|
+
404: <span class="ruby-keyword kw">end</span>
|
380
448
|
</pre>
|
381
449
|
</div>
|
382
450
|
</div>
|
383
451
|
</div>
|
384
452
|
|
385
|
-
<div id="method-
|
386
|
-
<a name="
|
453
|
+
<div id="method-M000008" class="method-detail">
|
454
|
+
<a name="M000008"></a>
|
387
455
|
|
388
456
|
<div class="method-heading">
|
389
|
-
<a href="#
|
457
|
+
<a href="#M000008" class="method-signature">
|
390
458
|
<span class="method-name">get</span><span class="method-args">(page_title)</span>
|
391
459
|
</a>
|
392
460
|
</div>
|
@@ -402,32 +470,32 @@ href="../MediaWiki.html">MediaWiki</a> format
|
|
402
470
|
</dd>
|
403
471
|
</dl>
|
404
472
|
<p>
|
405
|
-
Returns nil if the page does not exist
|
473
|
+
Returns content of page as string, nil if the page does not exist
|
406
474
|
</p>
|
407
475
|
<p><a class="source-toggle" href="#"
|
408
|
-
onclick="toggleCode('
|
409
|
-
<div class="method-source-code" id="
|
476
|
+
onclick="toggleCode('M000008-source');return false;">[Source]</a></p>
|
477
|
+
<div class="method-source-code" id="M000008-source">
|
410
478
|
<pre>
|
411
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
479
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 45</span>
|
480
|
+
45: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get</span>(<span class="ruby-identifier">page_title</span>)
|
481
|
+
46: <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">'revisions'</span>, <span class="ruby-value str">'rvprop'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'content'</span>, <span class="ruby-value str">'titles'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">page_title</span>}
|
482
|
+
47: <span class="ruby-identifier">page</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">"query/pages/page"</span>]
|
483
|
+
48: <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>]
|
484
|
+
49: <span class="ruby-keyword kw">nil</span>
|
485
|
+
50: <span class="ruby-keyword kw">else</span>
|
486
|
+
51: <span class="ruby-identifier">page</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">"revisions/rev"</span>].<span class="ruby-identifier">text</span> <span class="ruby-operator">||</span> <span class="ruby-value str">""</span>
|
487
|
+
52: <span class="ruby-keyword kw">end</span>
|
488
|
+
53: <span class="ruby-keyword kw">end</span>
|
421
489
|
</pre>
|
422
490
|
</div>
|
423
491
|
</div>
|
424
492
|
</div>
|
425
493
|
|
426
|
-
<div id="method-
|
427
|
-
<a name="
|
494
|
+
<div id="method-M000018" class="method-detail">
|
495
|
+
<a name="M000018"></a>
|
428
496
|
|
429
497
|
<div class="method-heading">
|
430
|
-
<a href="#
|
498
|
+
<a href="#M000018" class="method-signature">
|
431
499
|
<span class="method-name">image_info</span><span class="method-args">(file_name_or_page_id, options={})</span>
|
432
500
|
</a>
|
433
501
|
</div>
|
@@ -479,47 +547,47 @@ Output:
|
|
479
547
|
"user" => "Valdas"
|
480
548
|
</pre>
|
481
549
|
<p><a class="source-toggle" href="#"
|
482
|
-
onclick="toggleCode('
|
483
|
-
<div class="method-source-code" id="
|
550
|
+
onclick="toggleCode('M000018-source');return false;">[Source]</a></p>
|
551
|
+
<div class="method-source-code" id="M000018-source">
|
484
552
|
<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
|
-
|
553
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 313</span>
|
554
|
+
313: <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>={})
|
555
|
+
314: <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>) \
|
556
|
+
315: <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>)
|
557
|
+
316: <span class="ruby-identifier">form_data</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">merge</span>(
|
558
|
+
317: <span class="ruby-value str">'action'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'query'</span>,
|
559
|
+
318: <span class="ruby-value str">'prop'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'imageinfo'</span>,
|
560
|
+
319: <span class="ruby-value str">'redirects'</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">true</span>
|
561
|
+
320: )
|
562
|
+
321:
|
563
|
+
322: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">file_name_or_page_id</span>
|
564
|
+
323: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Fixnum</span>
|
565
|
+
324: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'pageids'</span>] = <span class="ruby-identifier">file_name_or_page_id</span>
|
566
|
+
325: <span class="ruby-keyword kw">else</span>
|
567
|
+
326: <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>
|
568
|
+
327: <span class="ruby-keyword kw">end</span>
|
569
|
+
328:
|
570
|
+
329: <span class="ruby-identifier">xml</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
571
|
+
330: <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>]
|
572
|
+
331: <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>]
|
573
|
+
332: <span class="ruby-keyword kw">nil</span>
|
574
|
+
333: <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>]
|
575
|
+
334: <span class="ruby-comment cmt"># We're dealing with redirect here.</span>
|
576
|
+
335: <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>)
|
577
|
+
336: <span class="ruby-keyword kw">else</span>
|
578
|
+
337: <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>
|
579
|
+
338: <span class="ruby-keyword kw">end</span>
|
580
|
+
339: <span class="ruby-keyword kw">end</span>
|
513
581
|
</pre>
|
514
582
|
</div>
|
515
583
|
</div>
|
516
584
|
</div>
|
517
585
|
|
518
|
-
<div id="method-
|
519
|
-
<a name="
|
586
|
+
<div id="method-M000020" class="method-detail">
|
587
|
+
<a name="M000020"></a>
|
520
588
|
|
521
589
|
<div class="method-heading">
|
522
|
-
<a href="#
|
590
|
+
<a href="#M000020" class="method-signature">
|
523
591
|
<span class="method-name">import</span><span class="method-args">(xmlfile)</span>
|
524
592
|
</a>
|
525
593
|
</div>
|
@@ -535,42 +603,44 @@ Imports a <a href="../MediaWiki.html">MediaWiki</a> XML dump
|
|
535
603
|
</dl>
|
536
604
|
<p>
|
537
605
|
Returns XML array <api><<a
|
538
|
-
href="Gateway.html#
|
606
|
+
href="Gateway.html#M000020">import</a>><page/><page/>…
|
539
607
|
<page revisions="1"> (or more) means successfully imported
|
540
608
|
<page revisions="0"> means duplicate, not imported
|
541
609
|
</p>
|
542
610
|
<p><a class="source-toggle" href="#"
|
543
|
-
onclick="toggleCode('
|
544
|
-
<div class="method-source-code" id="
|
611
|
+
onclick="toggleCode('M000020-source');return false;">[Source]</a></p>
|
612
|
+
<div class="method-source-code" id="M000020-source">
|
545
613
|
<pre>
|
546
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
547
|
-
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
|
553
|
-
|
614
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 362</span>
|
615
|
+
362: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">import</span>(<span class="ruby-identifier">xmlfile</span>)
|
616
|
+
363: <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>,
|
617
|
+
364: <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>),
|
618
|
+
365: <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>
|
619
|
+
366: <span class="ruby-value str">"format"</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'xml'</span> }
|
620
|
+
367: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
621
|
+
368: <span class="ruby-keyword kw">end</span>
|
554
622
|
</pre>
|
555
623
|
</div>
|
556
624
|
</div>
|
557
625
|
</div>
|
558
626
|
|
559
|
-
<div id="method-
|
560
|
-
<a name="
|
627
|
+
<div id="method-M000014" class="method-detail">
|
628
|
+
<a name="M000014"></a>
|
561
629
|
|
562
630
|
<div class="method-heading">
|
563
|
-
<a href="#
|
631
|
+
<a href="#M000014" class="method-signature">
|
564
632
|
<span class="method-name">list</span><span class="method-args">(key)</span>
|
565
633
|
</a>
|
566
634
|
</div>
|
567
635
|
|
568
636
|
<div class="method-description">
|
569
637
|
<p>
|
570
|
-
Get a <a href="Gateway.html#
|
638
|
+
Get a <a href="Gateway.html#M000014">list</a> of matching page titles in a
|
639
|
+
namespace
|
571
640
|
</p>
|
572
641
|
<dl>
|
573
|
-
<dt>key</dt><dd>Search key, matched as a prefix (^key.*). May contain or equal a namespace
|
642
|
+
<dt>key</dt><dd>Search key, matched as a prefix (^key.*). May contain or equal a namespace,
|
643
|
+
defaults to main (namespace 0) if none given.
|
574
644
|
|
575
645
|
</dd>
|
576
646
|
</dl>
|
@@ -578,39 +648,39 @@ Get a <a href="Gateway.html#M000011">list</a> of matching page titles
|
|
578
648
|
Returns array of page titles (empty if no matches)
|
579
649
|
</p>
|
580
650
|
<p><a class="source-toggle" href="#"
|
581
|
-
onclick="toggleCode('
|
582
|
-
<div class="method-source-code" id="
|
651
|
+
onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
|
652
|
+
<div class="method-source-code" id="M000014-source">
|
583
653
|
<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
|
-
|
654
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 154</span>
|
655
|
+
154: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">list</span>(<span class="ruby-identifier">key</span>)
|
656
|
+
155: <span class="ruby-identifier">titles</span> = []
|
657
|
+
156: <span class="ruby-identifier">apfrom</span> = <span class="ruby-keyword kw">nil</span>
|
658
|
+
157: <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>
|
659
|
+
158: <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>
|
660
|
+
159: <span class="ruby-keyword kw">begin</span>
|
661
|
+
160: <span class="ruby-identifier">form_data</span> =
|
662
|
+
161: {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'query'</span>,
|
663
|
+
162: <span class="ruby-value str">'list'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'allpages'</span>,
|
664
|
+
163: <span class="ruby-value str">'apfrom'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">apfrom</span>,
|
665
|
+
164: <span class="ruby-value str">'apprefix'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">key</span>,
|
666
|
+
165: <span class="ruby-value str">'aplimit'</span> =<span class="ruby-operator">></span> <span class="ruby-constant">API_MAX_LIMIT</span>,
|
667
|
+
166: <span class="ruby-value str">'apnamespace'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">namespace</span>}
|
668
|
+
167: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
669
|
+
168: <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>
|
670
|
+
169: <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>] }
|
671
|
+
170: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">apfrom</span>
|
672
|
+
171: <span class="ruby-identifier">titles</span>
|
673
|
+
172: <span class="ruby-keyword kw">end</span>
|
604
674
|
</pre>
|
605
675
|
</div>
|
606
676
|
</div>
|
607
677
|
</div>
|
608
678
|
|
609
|
-
<div id="method-
|
610
|
-
<a name="
|
679
|
+
<div id="method-M000007" class="method-detail">
|
680
|
+
<a name="M000007"></a>
|
611
681
|
|
612
682
|
<div class="method-heading">
|
613
|
-
<a href="#
|
683
|
+
<a href="#M000007" class="method-signature">
|
614
684
|
<span class="method-name">login</span><span class="method-args">(username, password, domain = 'local')</span>
|
615
685
|
</a>
|
616
686
|
</div>
|
@@ -632,64 +702,116 @@ defaults to ‘local’ if not given
|
|
632
702
|
</dd>
|
633
703
|
</dl>
|
634
704
|
<p>
|
635
|
-
Throws error if <a href="Gateway.html#
|
705
|
+
Throws error if <a href="Gateway.html#M000007">login</a> fails
|
636
706
|
</p>
|
637
707
|
<p><a class="source-toggle" href="#"
|
638
|
-
onclick="toggleCode('
|
639
|
-
<div class="method-source-code" id="
|
708
|
+
onclick="toggleCode('M000007-source');return false;">[Source]</a></p>
|
709
|
+
<div class="method-source-code" id="M000007-source">
|
640
710
|
<pre>
|
641
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
642
|
-
|
643
|
-
|
644
|
-
|
645
|
-
|
646
|
-
|
647
|
-
|
711
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 33</span>
|
712
|
+
33: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">login</span>(<span class="ruby-identifier">username</span>, <span class="ruby-identifier">password</span>, <span class="ruby-identifier">domain</span> = <span class="ruby-value str">'local'</span>)
|
713
|
+
34: <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>, <span class="ruby-value str">'lgname'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">username</span>, <span class="ruby-value str">'lgpassword'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">password</span>, <span class="ruby-value str">'lgdomain'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">domain</span>}
|
714
|
+
35: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
715
|
+
36: <span class="ruby-ivar">@password</span> = <span class="ruby-identifier">password</span>
|
716
|
+
37: <span class="ruby-ivar">@username</span> = <span class="ruby-identifier">username</span>
|
717
|
+
38: <span class="ruby-keyword kw">end</span>
|
648
718
|
</pre>
|
649
719
|
</div>
|
650
720
|
</div>
|
651
721
|
</div>
|
652
722
|
|
653
|
-
<div id="method-
|
654
|
-
<a name="
|
723
|
+
<div id="method-M000011" class="method-detail">
|
724
|
+
<a name="M000011"></a>
|
655
725
|
|
656
726
|
<div class="method-heading">
|
657
|
-
<a href="#
|
727
|
+
<a href="#M000011" class="method-signature">
|
728
|
+
<span class="method-name">move</span><span class="method-args">(from, to, options={})</span>
|
729
|
+
</a>
|
730
|
+
</div>
|
731
|
+
|
732
|
+
<div class="method-description">
|
733
|
+
<p>
|
734
|
+
Move a page to a <a href="Gateway.html#M000006">new</a> title
|
735
|
+
</p>
|
736
|
+
<dl>
|
737
|
+
<dt>from</dt><dd>Old page name
|
738
|
+
|
739
|
+
</dd>
|
740
|
+
<dt>to</dt><dd>New page name
|
741
|
+
|
742
|
+
</dd>
|
743
|
+
<dt>options</dt><dd>Hash of additional options
|
744
|
+
|
745
|
+
</dd>
|
746
|
+
</dl>
|
747
|
+
<p>
|
748
|
+
Options:
|
749
|
+
</p>
|
750
|
+
<ul>
|
751
|
+
<li>[movesubpages] Move associated subpages
|
752
|
+
|
753
|
+
</li>
|
754
|
+
<li>[movetalk] Move associated talkpages
|
755
|
+
|
756
|
+
</li>
|
757
|
+
</ul>
|
758
|
+
<p><a class="source-toggle" href="#"
|
759
|
+
onclick="toggleCode('M000011-source');return false;">[Source]</a></p>
|
760
|
+
<div class="method-source-code" id="M000011-source">
|
761
|
+
<pre>
|
762
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 117</span>
|
763
|
+
117: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">move</span>(<span class="ruby-identifier">from</span>, <span class="ruby-identifier">to</span>, <span class="ruby-identifier">options</span>={})
|
764
|
+
118: <span class="ruby-identifier">valid_options</span> = <span class="ruby-node">%w(movesubpages movetalk)</span>
|
765
|
+
119: <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>)}
|
766
|
+
120:
|
767
|
+
121: <span class="ruby-identifier">form_data</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">merge</span>({<span class="ruby-value str">'action'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'move'</span>, <span class="ruby-value str">'from'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">from</span>, <span class="ruby-value str">'to'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">to</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">from</span>)})
|
768
|
+
122: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
769
|
+
123: <span class="ruby-keyword kw">end</span>
|
770
|
+
</pre>
|
771
|
+
</div>
|
772
|
+
</div>
|
773
|
+
</div>
|
774
|
+
|
775
|
+
<div id="method-M000022" class="method-detail">
|
776
|
+
<a name="M000022"></a>
|
777
|
+
|
778
|
+
<div class="method-heading">
|
779
|
+
<a href="#M000022" class="method-signature">
|
658
780
|
<span class="method-name">namespaces_by_prefix</span><span class="method-args">()</span>
|
659
781
|
</a>
|
660
782
|
</div>
|
661
783
|
|
662
784
|
<div class="method-description">
|
663
785
|
<p>
|
664
|
-
Get a <a href="Gateway.html#
|
786
|
+
Get a <a href="Gateway.html#M000014">list</a> of all known namespaces
|
665
787
|
</p>
|
666
788
|
<p>
|
667
789
|
Returns array of namespaces (name => id)
|
668
790
|
</p>
|
669
791
|
<p><a class="source-toggle" href="#"
|
670
|
-
onclick="toggleCode('
|
671
|
-
<div class="method-source-code" id="
|
792
|
+
onclick="toggleCode('M000022-source');return false;">[Source]</a></p>
|
793
|
+
<div class="method-source-code" id="M000022-source">
|
672
794
|
<pre>
|
673
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
674
|
-
|
675
|
-
|
676
|
-
|
677
|
-
|
678
|
-
|
679
|
-
|
680
|
-
|
681
|
-
|
682
|
-
|
795
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 383</span>
|
796
|
+
383: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">namespaces_by_prefix</span>
|
797
|
+
384: <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> }
|
798
|
+
385: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
799
|
+
386: <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>
|
800
|
+
387: <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>
|
801
|
+
388: <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>
|
802
|
+
389: <span class="ruby-identifier">namespaces</span>
|
803
|
+
390: <span class="ruby-keyword kw">end</span>
|
804
|
+
391: <span class="ruby-keyword kw">end</span>
|
683
805
|
</pre>
|
684
806
|
</div>
|
685
807
|
</div>
|
686
808
|
</div>
|
687
809
|
|
688
|
-
<div id="method-
|
689
|
-
<a name="
|
810
|
+
<div id="method-M000009" class="method-detail">
|
811
|
+
<a name="M000009"></a>
|
690
812
|
|
691
813
|
<div class="method-heading">
|
692
|
-
<a href="#
|
814
|
+
<a href="#M000009" class="method-signature">
|
693
815
|
<span class="method-name">render</span><span class="method-args">(page_title, options = {})</span>
|
694
816
|
</a>
|
695
817
|
</div>
|
@@ -723,62 +845,62 @@ Options:
|
|
723
845
|
</li>
|
724
846
|
</ul>
|
725
847
|
<p>
|
726
|
-
Returns nil if the page does not exist
|
848
|
+
Returns rendered page as string, or nil if the page does not exist
|
727
849
|
</p>
|
728
850
|
<p><a class="source-toggle" href="#"
|
729
|
-
onclick="toggleCode('
|
730
|
-
<div class="method-source-code" id="
|
851
|
+
onclick="toggleCode('M000009-source');return false;">[Source]</a></p>
|
852
|
+
<div class="method-source-code" id="M000009-source">
|
731
853
|
<pre>
|
732
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
733
|
-
|
734
|
-
|
735
|
-
|
736
|
-
|
737
|
-
|
738
|
-
|
739
|
-
|
740
|
-
|
741
|
-
|
742
|
-
|
743
|
-
|
744
|
-
|
745
|
-
|
746
|
-
|
747
|
-
|
748
|
-
|
749
|
-
|
750
|
-
|
751
|
-
|
752
|
-
|
753
|
-
|
754
|
-
|
755
|
-
|
756
|
-
|
757
|
-
|
854
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 66</span>
|
855
|
+
66: <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> = {})
|
856
|
+
67: <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>}
|
857
|
+
68:
|
858
|
+
69: <span class="ruby-identifier">valid_options</span> = <span class="ruby-node">%w(linkbase noeditsections noimages)</span>
|
859
|
+
70: <span class="ruby-comment cmt"># Check options</span>
|
860
|
+
71: <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>)}
|
861
|
+
72:
|
862
|
+
73: <span class="ruby-identifier">rendered</span> = <span class="ruby-keyword kw">nil</span>
|
863
|
+
74: <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>]
|
864
|
+
75: <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>
|
865
|
+
76: <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>)
|
866
|
+
77: <span class="ruby-comment cmt"># OPTIMIZE: unifiy the keys in +options+ like symbolize_keys! but w/o</span>
|
867
|
+
78: <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>]
|
868
|
+
79: <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>]
|
869
|
+
80: <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\/([\w\(\)_\-\.%\d:,]*)"/</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>)
|
870
|
+
81: <span class="ruby-keyword kw">end</span>
|
871
|
+
82: <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>]
|
872
|
+
83: <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>)
|
873
|
+
84: <span class="ruby-keyword kw">end</span>
|
874
|
+
85: <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>]
|
875
|
+
86: <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>)
|
876
|
+
87: <span class="ruby-keyword kw">end</span>
|
877
|
+
88: <span class="ruby-keyword kw">end</span>
|
878
|
+
89: <span class="ruby-identifier">rendered</span>
|
879
|
+
90: <span class="ruby-keyword kw">end</span>
|
758
880
|
</pre>
|
759
881
|
</div>
|
760
882
|
</div>
|
761
883
|
</div>
|
762
884
|
|
763
|
-
<div id="method-
|
764
|
-
<a name="
|
885
|
+
<div id="method-M000016" class="method-detail">
|
886
|
+
<a name="M000016"></a>
|
765
887
|
|
766
888
|
<div class="method-heading">
|
767
|
-
<a href="#
|
889
|
+
<a href="#M000016" class="method-signature">
|
768
890
|
<span class="method-name">search</span><span class="method-args">(key, namespaces=nil, limit=10)</span>
|
769
891
|
</a>
|
770
892
|
</div>
|
771
893
|
|
772
894
|
<div class="method-description">
|
773
895
|
<p>
|
774
|
-
Get a <a href="Gateway.html#
|
896
|
+
Get a <a href="Gateway.html#M000014">list</a> of pages with matching
|
775
897
|
content in given namespaces
|
776
898
|
</p>
|
777
899
|
<dl>
|
778
900
|
<dt>key</dt><dd>Search key
|
779
901
|
|
780
902
|
</dd>
|
781
|
-
<dt>namespaces</dt><dd>Array of namespace names to <a href="Gateway.html#
|
903
|
+
<dt>namespaces</dt><dd>Array of namespace names to <a href="Gateway.html#M000016">search</a>
|
782
904
|
(defaults to NS_MAIN only)
|
783
905
|
|
784
906
|
</dd>
|
@@ -790,33 +912,33 @@ content in given namespaces
|
|
790
912
|
Returns array of page titles (empty if no matches)
|
791
913
|
</p>
|
792
914
|
<p><a class="source-toggle" href="#"
|
793
|
-
onclick="toggleCode('
|
794
|
-
<div class="method-source-code" id="
|
915
|
+
onclick="toggleCode('M000016-source');return false;">[Source]</a></p>
|
916
|
+
<div class="method-source-code" id="M000016-source">
|
795
917
|
<pre>
|
796
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
797
|
-
|
798
|
-
|
799
|
-
|
800
|
-
|
801
|
-
|
802
|
-
|
803
|
-
|
804
|
-
|
805
|
-
|
806
|
-
|
807
|
-
|
808
|
-
|
809
|
-
|
918
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 205</span>
|
919
|
+
205: <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>)
|
920
|
+
206: <span class="ruby-identifier">titles</span> = []
|
921
|
+
207: <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>,
|
922
|
+
208: <span class="ruby-value str">'list'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'search'</span>,
|
923
|
+
209: <span class="ruby-value str">'srwhat'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'text'</span>,
|
924
|
+
210: <span class="ruby-value str">'srsearch'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">key</span>,
|
925
|
+
211: <span class="ruby-value str">'srlimit'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">limit</span>}
|
926
|
+
212: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">namespaces</span>
|
927
|
+
213: <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>
|
928
|
+
214: <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>)
|
929
|
+
215: <span class="ruby-keyword kw">end</span>
|
930
|
+
216: <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>] }
|
931
|
+
217: <span class="ruby-keyword kw">end</span>
|
810
932
|
</pre>
|
811
933
|
</div>
|
812
934
|
</div>
|
813
935
|
</div>
|
814
936
|
|
815
|
-
<div id="method-
|
816
|
-
<a name="
|
937
|
+
<div id="method-M000024" class="method-detail">
|
938
|
+
<a name="M000024"></a>
|
817
939
|
|
818
940
|
<div class="method-heading">
|
819
|
-
<a href="#
|
941
|
+
<a href="#M000024" class="method-signature">
|
820
942
|
<span class="method-name">semantic_query</span><span class="method-args">(query, params = [])</span>
|
821
943
|
</a>
|
822
944
|
</div>
|
@@ -838,26 +960,26 @@ Execute Semantic Mediawiki query
|
|
838
960
|
Returns result as an HTML string
|
839
961
|
</p>
|
840
962
|
<p><a class="source-toggle" href="#"
|
841
|
-
onclick="toggleCode('
|
842
|
-
<div class="method-source-code" id="
|
963
|
+
onclick="toggleCode('M000024-source');return false;">[Source]</a></p>
|
964
|
+
<div class="method-source-code" id="M000024-source">
|
843
965
|
<pre>
|
844
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
845
|
-
|
846
|
-
|
847
|
-
|
848
|
-
|
849
|
-
|
850
|
-
|
966
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 412</span>
|
967
|
+
412: <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> = [])
|
968
|
+
413: <span class="ruby-identifier">params</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"format=list"</span>
|
969
|
+
414: <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> }
|
970
|
+
415: <span class="ruby-identifier">xml</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
971
|
+
416: <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>
|
972
|
+
417: <span class="ruby-keyword kw">end</span>
|
851
973
|
</pre>
|
852
974
|
</div>
|
853
975
|
</div>
|
854
976
|
</div>
|
855
977
|
|
856
|
-
<div id="method-
|
857
|
-
<a name="
|
978
|
+
<div id="method-M000013" class="method-detail">
|
979
|
+
<a name="M000013"></a>
|
858
980
|
|
859
981
|
<div class="method-heading">
|
860
|
-
<a href="#
|
982
|
+
<a href="#M000013" class="method-signature">
|
861
983
|
<span class="method-name">undelete</span><span class="method-args">(title)</span>
|
862
984
|
</a>
|
863
985
|
</div>
|
@@ -867,45 +989,46 @@ Returns result as an HTML string
|
|
867
989
|
Undelete all revisions of one page.
|
868
990
|
</p>
|
869
991
|
<dl>
|
870
|
-
<dt>title</dt><dd>Title of page to <a href="Gateway.html#
|
992
|
+
<dt>title</dt><dd>Title of page to <a href="Gateway.html#M000013">undelete</a>
|
871
993
|
|
872
994
|
</dd>
|
873
995
|
</dl>
|
874
996
|
<p>
|
875
|
-
Returns number of revisions undeleted
|
997
|
+
Returns number of revisions undeleted, or zero if nothing to <a
|
998
|
+
href="Gateway.html#M000013">undelete</a>
|
876
999
|
</p>
|
877
1000
|
<p><a class="source-toggle" href="#"
|
878
|
-
onclick="toggleCode('
|
879
|
-
<div class="method-source-code" id="
|
1001
|
+
onclick="toggleCode('M000013-source');return false;">[Source]</a></p>
|
1002
|
+
<div class="method-source-code" id="M000013-source">
|
880
1003
|
<pre>
|
881
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
882
|
-
|
883
|
-
|
884
|
-
|
885
|
-
|
886
|
-
|
887
|
-
|
888
|
-
|
889
|
-
|
890
|
-
|
891
|
-
|
1004
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 138</span>
|
1005
|
+
138: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">undelete</span>(<span class="ruby-identifier">title</span>)
|
1006
|
+
139: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">get_undelete_token</span>(<span class="ruby-identifier">title</span>)
|
1007
|
+
140: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">token</span>
|
1008
|
+
141: <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> }
|
1009
|
+
142: <span class="ruby-identifier">xml</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
1010
|
+
143: <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>
|
1011
|
+
144: <span class="ruby-keyword kw">else</span>
|
1012
|
+
145: <span class="ruby-value">0</span> <span class="ruby-comment cmt"># No revisions to undelete</span>
|
1013
|
+
146: <span class="ruby-keyword kw">end</span>
|
1014
|
+
147: <span class="ruby-keyword kw">end</span>
|
892
1015
|
</pre>
|
893
1016
|
</div>
|
894
1017
|
</div>
|
895
1018
|
</div>
|
896
1019
|
|
897
|
-
<div id="method-
|
898
|
-
<a name="
|
1020
|
+
<div id="method-M000017" class="method-detail">
|
1021
|
+
<a name="M000017"></a>
|
899
1022
|
|
900
1023
|
<div class="method-heading">
|
901
|
-
<a href="#
|
1024
|
+
<a href="#M000017" class="method-signature">
|
902
1025
|
<span class="method-name">upload</span><span class="method-args">(path, options={})</span>
|
903
1026
|
</a>
|
904
1027
|
</div>
|
905
1028
|
|
906
1029
|
<div class="method-description">
|
907
1030
|
<p>
|
908
|
-
Upload a file, or <a href="Gateway.html#
|
1031
|
+
Upload a file, or <a href="Gateway.html#M000008">get</a> the status of
|
909
1032
|
pending uploads. Several methods are available:
|
910
1033
|
</p>
|
911
1034
|
<ul>
|
@@ -924,7 +1047,7 @@ Requires Mediawiki 1.16+
|
|
924
1047
|
Arguments:
|
925
1048
|
</p>
|
926
1049
|
<ul>
|
927
|
-
<li>[path] Path to file to <a href="Gateway.html#
|
1050
|
+
<li>[path] Path to file to <a href="Gateway.html#M000017">upload</a>. Set to
|
928
1051
|
nil if uploading from URL.
|
929
1052
|
|
930
1053
|
</li>
|
@@ -934,7 +1057,7 @@ nil if uploading from URL.
|
|
934
1057
|
</ul>
|
935
1058
|
<p>
|
936
1059
|
Note that queries using session keys must be done in the same <a
|
937
|
-
href="Gateway.html#
|
1060
|
+
href="Gateway.html#M000007">login</a> session as the query that originally
|
938
1061
|
returned the key (i.e. do not log out and then log back in).
|
939
1062
|
</p>
|
940
1063
|
<p>
|
@@ -946,12 +1069,12 @@ given), options[:target] is alias for this.
|
|
946
1069
|
|
947
1070
|
</li>
|
948
1071
|
<li>‘comment’ - Upload comment. Also used as the initial page text
|
949
|
-
for <a href="Gateway.html#
|
1072
|
+
for <a href="Gateway.html#M000006">new</a> files if "text" is not
|
950
1073
|
specified.
|
951
1074
|
|
952
1075
|
</li>
|
953
1076
|
<li>‘text’ - Initial page text for <a
|
954
|
-
href="Gateway.html#
|
1077
|
+
href="Gateway.html#M000006">new</a> files
|
955
1078
|
|
956
1079
|
</li>
|
957
1080
|
<li>‘watch’ - Watch the page
|
@@ -988,43 +1111,43 @@ Examples:
|
|
988
1111
|
mw.upload(nil, 'filename' => "RemoteFile2.jpg", 'url' => 'http://remote.com/server/file.jpg')
|
989
1112
|
</pre>
|
990
1113
|
<p><a class="source-toggle" href="#"
|
991
|
-
onclick="toggleCode('
|
992
|
-
<div class="method-source-code" id="
|
1114
|
+
onclick="toggleCode('M000017-source');return false;">[Source]</a></p>
|
1115
|
+
<div class="method-source-code" id="M000017-source">
|
993
1116
|
<pre>
|
994
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
995
|
-
|
996
|
-
|
997
|
-
|
998
|
-
|
999
|
-
|
1000
|
-
|
1001
|
-
|
1002
|
-
|
1003
|
-
|
1004
|
-
|
1005
|
-
|
1006
|
-
|
1007
|
-
|
1008
|
-
|
1009
|
-
|
1010
|
-
|
1011
|
-
|
1012
|
-
|
1013
|
-
|
1014
|
-
|
1015
|
-
|
1016
|
-
|
1017
|
-
|
1018
|
-
|
1019
|
-
|
1020
|
-
|
1021
|
-
|
1022
|
-
|
1023
|
-
|
1024
|
-
|
1025
|
-
|
1026
|
-
|
1027
|
-
|
1117
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 253</span>
|
1118
|
+
253: <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>={})
|
1119
|
+
254: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:description</span>]
|
1120
|
+
255: <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>]
|
1121
|
+
256: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:description</span>)
|
1122
|
+
257: <span class="ruby-keyword kw">end</span>
|
1123
|
+
258:
|
1124
|
+
259: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:target</span>]
|
1125
|
+
260: <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>]
|
1126
|
+
261: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:target</span>)
|
1127
|
+
262: <span class="ruby-keyword kw">end</span>
|
1128
|
+
263:
|
1129
|
+
264: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:summary</span>]
|
1130
|
+
265: <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>]
|
1131
|
+
266: <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>]
|
1132
|
+
267: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:summary</span>)
|
1133
|
+
268: <span class="ruby-keyword kw">end</span>
|
1134
|
+
269:
|
1135
|
+
270: <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>
|
1136
|
+
271: <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>
|
1137
|
+
272: <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>]
|
1138
|
+
273: <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>
|
1139
|
+
274:
|
1140
|
+
275: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>.<span class="ruby-identifier">new</span>(
|
1141
|
+
276: <span class="ruby-value str">"One of the 'file', 'url' or 'sessionkey' options must be specified!"</span>
|
1142
|
+
277: ) <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>]
|
1143
|
+
278:
|
1144
|
+
279: <span class="ruby-identifier">form_data</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">merge</span>(
|
1145
|
+
280: <span class="ruby-value str">'action'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'upload'</span>,
|
1146
|
+
281: <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>])
|
1147
|
+
282: )
|
1148
|
+
283:
|
1149
|
+
284: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
1150
|
+
285: <span class="ruby-keyword kw">end</span>
|
1028
1151
|
</pre>
|
1029
1152
|
</div>
|
1030
1153
|
</div>
|
@@ -1032,11 +1155,11 @@ Examples:
|
|
1032
1155
|
|
1033
1156
|
<h3 class="section-bar">Private Instance methods</h3>
|
1034
1157
|
|
1035
|
-
<div id="method-
|
1036
|
-
<a name="
|
1158
|
+
<div id="method-M000028" class="method-detail">
|
1159
|
+
<a name="M000028"></a>
|
1037
1160
|
|
1038
1161
|
<div class="method-heading">
|
1039
|
-
<a href="#
|
1162
|
+
<a href="#M000028" class="method-signature">
|
1040
1163
|
<span class="method-name">get_response</span><span class="method-args">(res)</span>
|
1041
1164
|
</a>
|
1042
1165
|
</div>
|
@@ -1047,98 +1170,98 @@ Get API XML response If there are errors, raise exception Otherwise return
|
|
1047
1170
|
XML root
|
1048
1171
|
</p>
|
1049
1172
|
<p><a class="source-toggle" href="#"
|
1050
|
-
onclick="toggleCode('
|
1051
|
-
<div class="method-source-code" id="
|
1173
|
+
onclick="toggleCode('M000028-source');return false;">[Source]</a></p>
|
1174
|
+
<div class="method-source-code" id="M000028-source">
|
1052
1175
|
<pre>
|
1053
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
1054
|
-
|
1055
|
-
|
1056
|
-
|
1057
|
-
|
1058
|
-
|
1059
|
-
|
1060
|
-
|
1061
|
-
|
1062
|
-
|
1063
|
-
|
1064
|
-
|
1065
|
-
|
1066
|
-
|
1067
|
-
|
1068
|
-
|
1176
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 471</span>
|
1177
|
+
471: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_response</span>(<span class="ruby-identifier">res</span>)
|
1178
|
+
472: <span class="ruby-keyword kw">begin</span>
|
1179
|
+
473: <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>
|
1180
|
+
474: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">ParseException</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">e</span>
|
1181
|
+
475: <span class="ruby-identifier">raise</span> <span class="ruby-value str">"Response is not XML. Are you sure you are pointing to api.php?"</span>
|
1182
|
+
476: <span class="ruby-keyword kw">end</span>
|
1183
|
+
477: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">"RES: #{doc}"</span>)
|
1184
|
+
478: <span class="ruby-identifier">raise</span> <span class="ruby-node">"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>
|
1185
|
+
479: <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>]
|
1186
|
+
480: <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>]
|
1187
|
+
481: <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>]
|
1188
|
+
482: <span class="ruby-identifier">raise</span> <span class="ruby-node">"API error: code '#{code}', info '#{info}'"</span>
|
1189
|
+
483: <span class="ruby-keyword kw">end</span>
|
1190
|
+
484: <span class="ruby-identifier">doc</span>
|
1191
|
+
485: <span class="ruby-keyword kw">end</span>
|
1069
1192
|
</pre>
|
1070
1193
|
</div>
|
1071
1194
|
</div>
|
1072
1195
|
</div>
|
1073
1196
|
|
1074
|
-
<div id="method-
|
1075
|
-
<a name="
|
1197
|
+
<div id="method-M000025" class="method-detail">
|
1198
|
+
<a name="M000025"></a>
|
1076
1199
|
|
1077
1200
|
<div class="method-heading">
|
1078
|
-
<a href="#
|
1201
|
+
<a href="#M000025" class="method-signature">
|
1079
1202
|
<span class="method-name">get_token</span><span class="method-args">(type, page_titles)</span>
|
1080
1203
|
</a>
|
1081
1204
|
</div>
|
1082
1205
|
|
1083
1206
|
<div class="method-description">
|
1084
1207
|
<p>
|
1085
|
-
Fetch token (type ‘<a href="Gateway.html#
|
1208
|
+
Fetch token (type ‘<a href="Gateway.html#M000012">delete</a>’,
|
1086
1209
|
‘edit’, ‘<a
|
1087
|
-
href="Gateway.html#
|
1210
|
+
href="Gateway.html#M000020">import</a>’)
|
1088
1211
|
</p>
|
1089
1212
|
<p><a class="source-toggle" href="#"
|
1090
|
-
onclick="toggleCode('
|
1091
|
-
<div class="method-source-code" id="
|
1213
|
+
onclick="toggleCode('M000025-source');return false;">[Source]</a></p>
|
1214
|
+
<div class="method-source-code" id="M000025-source">
|
1092
1215
|
<pre>
|
1093
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
1094
|
-
|
1095
|
-
|
1096
|
-
|
1097
|
-
|
1098
|
-
|
1099
|
-
|
1100
|
-
|
1216
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 422</span>
|
1217
|
+
422: <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>)
|
1218
|
+
423: <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>}
|
1219
|
+
424: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
1220
|
+
425: <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>]
|
1221
|
+
426: <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>
|
1222
|
+
427: <span class="ruby-identifier">token</span>
|
1223
|
+
428: <span class="ruby-keyword kw">end</span>
|
1101
1224
|
</pre>
|
1102
1225
|
</div>
|
1103
1226
|
</div>
|
1104
1227
|
</div>
|
1105
1228
|
|
1106
|
-
<div id="method-
|
1107
|
-
<a name="
|
1229
|
+
<div id="method-M000026" class="method-detail">
|
1230
|
+
<a name="M000026"></a>
|
1108
1231
|
|
1109
1232
|
<div class="method-heading">
|
1110
|
-
<a href="#
|
1233
|
+
<a href="#M000026" class="method-signature">
|
1111
1234
|
<span class="method-name">get_undelete_token</span><span class="method-args">(page_titles)</span>
|
1112
1235
|
</a>
|
1113
1236
|
</div>
|
1114
1237
|
|
1115
1238
|
<div class="method-description">
|
1116
1239
|
<p><a class="source-toggle" href="#"
|
1117
|
-
onclick="toggleCode('
|
1118
|
-
<div class="method-source-code" id="
|
1240
|
+
onclick="toggleCode('M000026-source');return false;">[Source]</a></p>
|
1241
|
+
<div class="method-source-code" id="M000026-source">
|
1119
1242
|
<pre>
|
1120
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
1121
|
-
|
1122
|
-
|
1123
|
-
|
1124
|
-
|
1125
|
-
|
1126
|
-
|
1127
|
-
|
1128
|
-
|
1129
|
-
|
1130
|
-
|
1131
|
-
|
1243
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 430</span>
|
1244
|
+
430: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_undelete_token</span>(<span class="ruby-identifier">page_titles</span>)
|
1245
|
+
431: <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>}
|
1246
|
+
432: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
1247
|
+
433: <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>]
|
1248
|
+
434: <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>]
|
1249
|
+
435: <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>
|
1250
|
+
436: <span class="ruby-identifier">token</span>
|
1251
|
+
437: <span class="ruby-keyword kw">else</span>
|
1252
|
+
438: <span class="ruby-keyword kw">nil</span>
|
1253
|
+
439: <span class="ruby-keyword kw">end</span>
|
1254
|
+
440: <span class="ruby-keyword kw">end</span>
|
1132
1255
|
</pre>
|
1133
1256
|
</div>
|
1134
1257
|
</div>
|
1135
1258
|
</div>
|
1136
1259
|
|
1137
|
-
<div id="method-
|
1138
|
-
<a name="
|
1260
|
+
<div id="method-M000027" class="method-detail">
|
1261
|
+
<a name="M000027"></a>
|
1139
1262
|
|
1140
1263
|
<div class="method-heading">
|
1141
|
-
<a href="#
|
1264
|
+
<a href="#M000027" class="method-signature">
|
1142
1265
|
<span class="method-name">make_api_request</span><span class="method-args">(form_data)</span>
|
1143
1266
|
</a>
|
1144
1267
|
</div>
|
@@ -1156,30 +1279,30 @@ Make generic request to API
|
|
1156
1279
|
Returns XML document
|
1157
1280
|
</p>
|
1158
1281
|
<p><a class="source-toggle" href="#"
|
1159
|
-
onclick="toggleCode('
|
1160
|
-
<div class="method-source-code" id="
|
1282
|
+
onclick="toggleCode('M000027-source');return false;">[Source]</a></p>
|
1283
|
+
<div class="method-source-code" id="M000027-source">
|
1161
1284
|
<pre>
|
1162
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
1163
|
-
|
1164
|
-
|
1165
|
-
|
1166
|
-
|
1167
|
-
|
1168
|
-
|
1169
|
-
|
1170
|
-
|
1171
|
-
|
1172
|
-
|
1173
|
-
|
1174
|
-
|
1175
|
-
|
1176
|
-
|
1177
|
-
|
1178
|
-
|
1179
|
-
|
1180
|
-
|
1181
|
-
|
1182
|
-
|
1285
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 447</span>
|
1286
|
+
447: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
1287
|
+
448: <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>
|
1288
|
+
449: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">"REQ: #{form_data.inspect}, #{@cookies.inspect}"</span>)
|
1289
|
+
450: <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>
|
1290
|
+
451: <span class="ruby-comment cmt"># Check response for errors and return XML</span>
|
1291
|
+
452: <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>
|
1292
|
+
453: <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>)
|
1293
|
+
454: <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>)
|
1294
|
+
455: <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>]
|
1295
|
+
456: <span class="ruby-ivar">@cookies</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-identifier">response</span>.<span class="ruby-identifier">cookies</span>)
|
1296
|
+
457: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">login_result</span>
|
1297
|
+
458: <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>
|
1298
|
+
459: <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>]))
|
1299
|
+
460: <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>
|
1300
|
+
461: <span class="ruby-keyword kw">end</span>
|
1301
|
+
462: <span class="ruby-keyword kw">end</span>
|
1302
|
+
463: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">doc</span>
|
1303
|
+
464: <span class="ruby-keyword kw">end</span>
|
1304
|
+
465:
|
1305
|
+
466: <span class="ruby-keyword kw">end</span>
|
1183
1306
|
</pre>
|
1184
1307
|
</div>
|
1185
1308
|
</div>
|