mediawiki-gateway 0.4.1 → 0.4.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/lib/media_wiki.rb +1 -1
- data/lib/media_wiki/gateway.rb +5 -4
- data/mediawiki-gateway.gemspec +4 -28
- data/script/README +14 -0
- data/script/download_batch.rb +15 -0
- metadata +6 -30
- data/doc/classes/MediaWiki.html +0 -381
- data/doc/classes/MediaWiki/APIError.html +0 -186
- data/doc/classes/MediaWiki/Config.html +0 -269
- data/doc/classes/MediaWiki/Exception.html +0 -122
- data/doc/classes/MediaWiki/Gateway.html +0 -1737
- data/doc/classes/MediaWiki/Unauthorized.html +0 -120
- data/doc/created.rid +0 -1
- data/doc/files/README.html +0 -164
- data/doc/files/lib/media_wiki/config_rb.html +0 -109
- data/doc/files/lib/media_wiki/exception_rb.html +0 -101
- data/doc/files/lib/media_wiki/gateway_rb.html +0 -113
- data/doc/files/lib/media_wiki/utils_rb.html +0 -101
- data/doc/files/script/create_page_rb.html +0 -114
- data/doc/files/script/delete_batch_rb.html +0 -108
- data/doc/files/script/export_xml_rb.html +0 -114
- data/doc/files/script/get_page_rb.html +0 -114
- data/doc/files/script/import_xml_rb.html +0 -114
- data/doc/files/script/run_fake_media_wiki_rb.html +0 -117
- data/doc/files/script/search_content_rb.html +0 -114
- data/doc/files/script/upload_commons_rb.html +0 -114
- data/doc/files/script/upload_file_rb.html +0 -114
- data/doc/fr_class_index.html +0 -32
- data/doc/fr_file_index.html +0 -40
- data/doc/fr_method_index.html +0 -68
- data/doc/index.html +0 -24
- data/doc/rdoc-style.css +0 -208
@@ -1,122 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
-
<!DOCTYPE html
|
3
|
-
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
-
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
-
|
6
|
-
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
7
|
-
<head>
|
8
|
-
<title>Class: MediaWiki::Exception</title>
|
9
|
-
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
-
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
11
|
-
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
12
|
-
<script type="text/javascript">
|
13
|
-
// <![CDATA[
|
14
|
-
|
15
|
-
function popupCode( url ) {
|
16
|
-
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
17
|
-
}
|
18
|
-
|
19
|
-
function toggleCode( id ) {
|
20
|
-
if ( document.getElementById )
|
21
|
-
elem = document.getElementById( id );
|
22
|
-
else if ( document.all )
|
23
|
-
elem = eval( "document.all." + id );
|
24
|
-
else
|
25
|
-
return false;
|
26
|
-
|
27
|
-
elemStyle = elem.style;
|
28
|
-
|
29
|
-
if ( elemStyle.display != "block" ) {
|
30
|
-
elemStyle.display = "block"
|
31
|
-
} else {
|
32
|
-
elemStyle.display = "none"
|
33
|
-
}
|
34
|
-
|
35
|
-
return true;
|
36
|
-
}
|
37
|
-
|
38
|
-
// Make codeblocks hidden by default
|
39
|
-
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
40
|
-
|
41
|
-
// ]]>
|
42
|
-
</script>
|
43
|
-
|
44
|
-
</head>
|
45
|
-
<body>
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
<div id="classHeader">
|
50
|
-
<table class="header-table">
|
51
|
-
<tr class="top-aligned-row">
|
52
|
-
<td><strong>Class</strong></td>
|
53
|
-
<td class="class-name-in-header">MediaWiki::Exception</td>
|
54
|
-
</tr>
|
55
|
-
<tr class="top-aligned-row">
|
56
|
-
<td><strong>In:</strong></td>
|
57
|
-
<td>
|
58
|
-
<a href="../../files/lib/media_wiki/exception_rb.html">
|
59
|
-
lib/media_wiki/exception.rb
|
60
|
-
</a>
|
61
|
-
<br />
|
62
|
-
</td>
|
63
|
-
</tr>
|
64
|
-
|
65
|
-
<tr class="top-aligned-row">
|
66
|
-
<td><strong>Parent:</strong></td>
|
67
|
-
<td>
|
68
|
-
<a href="Exception.html">
|
69
|
-
Exception
|
70
|
-
</a>
|
71
|
-
</td>
|
72
|
-
</tr>
|
73
|
-
</table>
|
74
|
-
</div>
|
75
|
-
<!-- banner header -->
|
76
|
-
|
77
|
-
<div id="bodyContent">
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
<div id="contextContent">
|
82
|
-
|
83
|
-
<div id="description">
|
84
|
-
<p>
|
85
|
-
General exception occurred within <a
|
86
|
-
href="Gateway.html">MediaWiki::Gateway</a>, and parent class for <a
|
87
|
-
href="APIError.html">MediaWiki::APIError</a>, <a
|
88
|
-
href="Unauthorized.html">MediaWiki::Unauthorized</a>.
|
89
|
-
</p>
|
90
|
-
|
91
|
-
</div>
|
92
|
-
|
93
|
-
|
94
|
-
</div>
|
95
|
-
|
96
|
-
|
97
|
-
</div>
|
98
|
-
|
99
|
-
|
100
|
-
<!-- if includes -->
|
101
|
-
|
102
|
-
<div id="section">
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
<!-- if method_list -->
|
112
|
-
|
113
|
-
|
114
|
-
</div>
|
115
|
-
|
116
|
-
|
117
|
-
<div id="validator-badges">
|
118
|
-
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
119
|
-
</div>
|
120
|
-
|
121
|
-
</body>
|
122
|
-
</html>
|
@@ -1,1737 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
-
<!DOCTYPE html
|
3
|
-
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
-
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
-
|
6
|
-
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
7
|
-
<head>
|
8
|
-
<title>Class: MediaWiki::Gateway</title>
|
9
|
-
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
-
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
11
|
-
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
12
|
-
<script type="text/javascript">
|
13
|
-
// <![CDATA[
|
14
|
-
|
15
|
-
function popupCode( url ) {
|
16
|
-
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
17
|
-
}
|
18
|
-
|
19
|
-
function toggleCode( id ) {
|
20
|
-
if ( document.getElementById )
|
21
|
-
elem = document.getElementById( id );
|
22
|
-
else if ( document.all )
|
23
|
-
elem = eval( "document.all." + id );
|
24
|
-
else
|
25
|
-
return false;
|
26
|
-
|
27
|
-
elemStyle = elem.style;
|
28
|
-
|
29
|
-
if ( elemStyle.display != "block" ) {
|
30
|
-
elemStyle.display = "block"
|
31
|
-
} else {
|
32
|
-
elemStyle.display = "none"
|
33
|
-
}
|
34
|
-
|
35
|
-
return true;
|
36
|
-
}
|
37
|
-
|
38
|
-
// Make codeblocks hidden by default
|
39
|
-
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
40
|
-
|
41
|
-
// ]]>
|
42
|
-
</script>
|
43
|
-
|
44
|
-
</head>
|
45
|
-
<body>
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
<div id="classHeader">
|
50
|
-
<table class="header-table">
|
51
|
-
<tr class="top-aligned-row">
|
52
|
-
<td><strong>Class</strong></td>
|
53
|
-
<td class="class-name-in-header">MediaWiki::Gateway</td>
|
54
|
-
</tr>
|
55
|
-
<tr class="top-aligned-row">
|
56
|
-
<td><strong>In:</strong></td>
|
57
|
-
<td>
|
58
|
-
<a href="../../files/lib/media_wiki/gateway_rb.html">
|
59
|
-
lib/media_wiki/gateway.rb
|
60
|
-
</a>
|
61
|
-
<br />
|
62
|
-
</td>
|
63
|
-
</tr>
|
64
|
-
|
65
|
-
<tr class="top-aligned-row">
|
66
|
-
<td><strong>Parent:</strong></td>
|
67
|
-
<td>
|
68
|
-
Object
|
69
|
-
</td>
|
70
|
-
</tr>
|
71
|
-
</table>
|
72
|
-
</div>
|
73
|
-
<!-- banner header -->
|
74
|
-
|
75
|
-
<div id="bodyContent">
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
<div id="contextContent">
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
</div>
|
84
|
-
|
85
|
-
<div id="method-list">
|
86
|
-
<h3 class="section-bar">Methods</h3>
|
87
|
-
|
88
|
-
<div class="name-list">
|
89
|
-
<a href="#M000019">backlinks</a>
|
90
|
-
<a href="#M000013">create</a>
|
91
|
-
<a href="#M000016">delete</a>
|
92
|
-
<a href="#M000024">download</a>
|
93
|
-
<a href="#M000014">edit</a>
|
94
|
-
<a href="#M000026">export</a>
|
95
|
-
<a href="#M000028">extensions</a>
|
96
|
-
<a href="#M000010">get</a>
|
97
|
-
<a href="#M000037">get_response</a>
|
98
|
-
<a href="#M000032">get_token</a>
|
99
|
-
<a href="#M000033">get_undelete_token</a>
|
100
|
-
<a href="#M000034">get_userrights_token</a>
|
101
|
-
<a href="#M000023">image_info</a>
|
102
|
-
<a href="#M000025">import</a>
|
103
|
-
<a href="#M000018">list</a>
|
104
|
-
<a href="#M000009">login</a>
|
105
|
-
<a href="#M000036">make_api_request</a>
|
106
|
-
<a href="#M000015">move</a>
|
107
|
-
<a href="#M000027">namespaces_by_prefix</a>
|
108
|
-
<a href="#M000008">new</a>
|
109
|
-
<a href="#M000022">redirect?</a>
|
110
|
-
<a href="#M000012">render</a>
|
111
|
-
<a href="#M000031">review</a>
|
112
|
-
<a href="#M000011">revision</a>
|
113
|
-
<a href="#M000020">search</a>
|
114
|
-
<a href="#M000029">semantic_query</a>
|
115
|
-
<a href="#M000030">set_groups</a>
|
116
|
-
<a href="#M000017">undelete</a>
|
117
|
-
<a href="#M000021">upload</a>
|
118
|
-
<a href="#M000035">userrights</a>
|
119
|
-
<a href="#M000038">valid_page?</a>
|
120
|
-
<a href="#M000039">warning</a>
|
121
|
-
</div>
|
122
|
-
</div>
|
123
|
-
|
124
|
-
</div>
|
125
|
-
|
126
|
-
|
127
|
-
<!-- if includes -->
|
128
|
-
|
129
|
-
<div id="section">
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
<div id="attribute-list">
|
136
|
-
<h3 class="section-bar">Attributes</h3>
|
137
|
-
|
138
|
-
<div class="name-list">
|
139
|
-
<table>
|
140
|
-
<tr class="top-aligned-row context-row">
|
141
|
-
<td class="context-item-name">base_url</td>
|
142
|
-
<td class="context-item-value"> [R] </td>
|
143
|
-
<td class="context-item-desc"></td>
|
144
|
-
</tr>
|
145
|
-
<tr class="top-aligned-row context-row">
|
146
|
-
<td class="context-item-name">cookies</td>
|
147
|
-
<td class="context-item-value"> [R] </td>
|
148
|
-
<td class="context-item-desc"></td>
|
149
|
-
</tr>
|
150
|
-
<tr class="top-aligned-row context-row">
|
151
|
-
<td class="context-item-name">log</td>
|
152
|
-
<td class="context-item-value"> [R] </td>
|
153
|
-
<td class="context-item-desc"></td>
|
154
|
-
</tr>
|
155
|
-
</table>
|
156
|
-
</div>
|
157
|
-
</div>
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
<!-- if method_list -->
|
162
|
-
<div id="methods">
|
163
|
-
<h3 class="section-bar">Public Class methods</h3>
|
164
|
-
|
165
|
-
<div id="method-M000008" class="method-detail">
|
166
|
-
<a name="M000008"></a>
|
167
|
-
|
168
|
-
<div class="method-heading">
|
169
|
-
<a href="#M000008" class="method-signature">
|
170
|
-
<span class="method-name">new</span><span class="method-args">(url, options={})</span>
|
171
|
-
</a>
|
172
|
-
</div>
|
173
|
-
|
174
|
-
<div class="method-description">
|
175
|
-
<p>
|
176
|
-
Set up a <a href="Gateway.html">MediaWiki::Gateway</a> for a given <a
|
177
|
-
href="../MediaWiki.html">MediaWiki</a> installation
|
178
|
-
</p>
|
179
|
-
<dl>
|
180
|
-
<dt>url</dt><dd>Path to API of target <a href="../MediaWiki.html">MediaWiki</a> (eg.
|
181
|
-
"<a
|
182
|
-
href="http://en.wikipedia.org/w/api.php">en.wikipedia.org/w/api.php</a>")
|
183
|
-
|
184
|
-
</dd>
|
185
|
-
<dt>options</dt><dd>Hash of options
|
186
|
-
|
187
|
-
</dd>
|
188
|
-
</dl>
|
189
|
-
<p>
|
190
|
-
Options:
|
191
|
-
</p>
|
192
|
-
<dl>
|
193
|
-
<dt>:ignorewarnings</dt><dd>Log API warnings and invalid page titles, instead throwing <a
|
194
|
-
href="APIError.html">MediaWiki::APIError</a>
|
195
|
-
|
196
|
-
</dd>
|
197
|
-
<dt>:limit</dt><dd>Maximum number of results returned per <a
|
198
|
-
href="Gateway.html#M000020">search</a> (see <a
|
199
|
-
href="http://www.mediawiki.org/wiki/API:Query_-_Lists#Limits">www.mediawiki.org/wiki/API:Query_-_Lists#Limits</a>),
|
200
|
-
defaults to the <a href="../MediaWiki.html">MediaWiki</a> default of 500.
|
201
|
-
|
202
|
-
</dd>
|
203
|
-
<dt>:loglevel</dt><dd>Log level to use, defaults to Logger::WARN. Set to Logger::DEBUG to dump
|
204
|
-
every request and response to the log.
|
205
|
-
|
206
|
-
</dd>
|
207
|
-
<dt>:maxlag</dt><dd>Maximum allowed server lag (see <a
|
208
|
-
href="http://www.mediawiki.org/wiki/Manual:Maxlag_parameter">www.mediawiki.org/wiki/Manual:Maxlag_parameter</a>),
|
209
|
-
defaults to 5 seconds.
|
210
|
-
|
211
|
-
</dd>
|
212
|
-
<dt>:retry_count</dt><dd>Number of times to try before giving up if <a
|
213
|
-
href="../MediaWiki.html">MediaWiki</a> returns 503 Service Unavailable,
|
214
|
-
defaults to 3 (original request plus two retries).
|
215
|
-
|
216
|
-
</dd>
|
217
|
-
<dt>:retry_delay</dt><dd>Seconds to wait before retry if <a href="../MediaWiki.html">MediaWiki</a>
|
218
|
-
returns 503 Service Unavailable, defaults to 10 seconds.
|
219
|
-
|
220
|
-
</dd>
|
221
|
-
</dl>
|
222
|
-
<p><a class="source-toggle" href="#"
|
223
|
-
onclick="toggleCode('M000008-source');return false;">[Source]</a></p>
|
224
|
-
<div class="method-source-code" id="M000008-source">
|
225
|
-
<pre>
|
226
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 25</span>
|
227
|
-
25: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">url</span>, <span class="ruby-identifier">options</span>={})
|
228
|
-
26: <span class="ruby-identifier">default_options</span> = {
|
229
|
-
27: <span class="ruby-identifier">:limit</span> =<span class="ruby-operator">></span> <span class="ruby-value">500</span>,
|
230
|
-
28: <span class="ruby-identifier">:loglevel</span> =<span class="ruby-operator">></span> <span class="ruby-constant">Logger</span><span class="ruby-operator">::</span><span class="ruby-constant">WARN</span>,
|
231
|
-
29: <span class="ruby-identifier">:maxlag</span> =<span class="ruby-operator">></span> <span class="ruby-value">5</span>,
|
232
|
-
30: <span class="ruby-identifier">:retry_count</span> =<span class="ruby-operator">></span> <span class="ruby-value">3</span>,
|
233
|
-
31: <span class="ruby-identifier">:retry_delay</span> =<span class="ruby-operator">></span> <span class="ruby-value">10</span>
|
234
|
-
32: }
|
235
|
-
33: <span class="ruby-ivar">@options</span> = <span class="ruby-identifier">default_options</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">options</span>)
|
236
|
-
34: <span class="ruby-ivar">@wiki_url</span> = <span class="ruby-identifier">url</span>
|
237
|
-
35: <span class="ruby-ivar">@log</span> = <span class="ruby-constant">Logger</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">STDERR</span>)
|
238
|
-
36: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">level</span> = <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:loglevel</span>]
|
239
|
-
37: <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> }
|
240
|
-
38: <span class="ruby-ivar">@cookies</span> = {}
|
241
|
-
39: <span class="ruby-keyword kw">end</span>
|
242
|
-
</pre>
|
243
|
-
</div>
|
244
|
-
</div>
|
245
|
-
</div>
|
246
|
-
|
247
|
-
<h3 class="section-bar">Public Instance methods</h3>
|
248
|
-
|
249
|
-
<div id="method-M000019" class="method-detail">
|
250
|
-
<a name="M000019"></a>
|
251
|
-
|
252
|
-
<div class="method-heading">
|
253
|
-
<a href="#M000019" class="method-signature">
|
254
|
-
<span class="method-name">backlinks</span><span class="method-args">(title, filter = "all")</span>
|
255
|
-
</a>
|
256
|
-
</div>
|
257
|
-
|
258
|
-
<div class="method-description">
|
259
|
-
<p>
|
260
|
-
Get a <a href="Gateway.html#M000018">list</a> of pages that link to a
|
261
|
-
target page
|
262
|
-
</p>
|
263
|
-
<dl>
|
264
|
-
<dt>title</dt><dd>Link target page
|
265
|
-
|
266
|
-
</dd>
|
267
|
-
<dt>filter</dt><dd>"all" links (default), "redirects" only, or
|
268
|
-
"nonredirects" (plain links only)
|
269
|
-
|
270
|
-
</dd>
|
271
|
-
</dl>
|
272
|
-
<p>
|
273
|
-
Returns array of page titles (empty if no matches)
|
274
|
-
</p>
|
275
|
-
<p><a class="source-toggle" href="#"
|
276
|
-
onclick="toggleCode('M000019-source');return false;">[Source]</a></p>
|
277
|
-
<div class="method-source-code" id="M000019-source">
|
278
|
-
<pre>
|
279
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 217</span>
|
280
|
-
217: <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>)
|
281
|
-
218: <span class="ruby-identifier">titles</span> = []
|
282
|
-
219: <span class="ruby-identifier">blcontinue</span> = <span class="ruby-keyword kw">nil</span>
|
283
|
-
220: <span class="ruby-keyword kw">begin</span>
|
284
|
-
221: <span class="ruby-identifier">form_data</span> =
|
285
|
-
222: {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'query'</span>,
|
286
|
-
223: <span class="ruby-value str">'list'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'backlinks'</span>,
|
287
|
-
224: <span class="ruby-value str">'bltitle'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">title</span>,
|
288
|
-
225: <span class="ruby-value str">'blfilterredir'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">filter</span>,
|
289
|
-
226: <span class="ruby-value str">'bllimit'</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:limit</span>] }
|
290
|
-
227: <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>
|
291
|
-
228: <span class="ruby-identifier">res</span>, <span class="ruby-identifier">blcontinue</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>, <span class="ruby-value str">'//query-continue/backlinks/@blcontinue'</span>)
|
292
|
-
229: <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>] }
|
293
|
-
230: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">blcontinue</span>
|
294
|
-
231: <span class="ruby-identifier">titles</span>
|
295
|
-
232: <span class="ruby-keyword kw">end</span>
|
296
|
-
</pre>
|
297
|
-
</div>
|
298
|
-
</div>
|
299
|
-
</div>
|
300
|
-
|
301
|
-
<div id="method-M000013" class="method-detail">
|
302
|
-
<a name="M000013"></a>
|
303
|
-
|
304
|
-
<div class="method-heading">
|
305
|
-
<a href="#M000013" class="method-signature">
|
306
|
-
<span class="method-name">create</span><span class="method-args">(title, content, options={})</span>
|
307
|
-
</a>
|
308
|
-
</div>
|
309
|
-
|
310
|
-
<div class="method-description">
|
311
|
-
<p>
|
312
|
-
Create a <a href="Gateway.html#M000008">new</a> page, or overwrite an
|
313
|
-
existing one
|
314
|
-
</p>
|
315
|
-
<dl>
|
316
|
-
<dt>title</dt><dd>Page title to <a href="Gateway.html#M000013">create</a> or overwrite,
|
317
|
-
string
|
318
|
-
|
319
|
-
</dd>
|
320
|
-
<dt>content</dt><dd>Content for the page, string
|
321
|
-
|
322
|
-
</dd>
|
323
|
-
<dt>options</dt><dd>Hash of additional options
|
324
|
-
|
325
|
-
</dd>
|
326
|
-
</dl>
|
327
|
-
<p>
|
328
|
-
Options:
|
329
|
-
</p>
|
330
|
-
<ul>
|
331
|
-
<li>[:overwrite] Allow overwriting existing pages
|
332
|
-
|
333
|
-
</li>
|
334
|
-
<li>[:summary] Edit summary for history, string
|
335
|
-
|
336
|
-
</li>
|
337
|
-
<li>[:token] Use this existing <a href="Gateway.html#M000014">edit</a> token
|
338
|
-
instead requesting a <a href="Gateway.html#M000008">new</a> one (useful for
|
339
|
-
bulk loads)
|
340
|
-
|
341
|
-
</li>
|
342
|
-
</ul>
|
343
|
-
<p><a class="source-toggle" href="#"
|
344
|
-
onclick="toggleCode('M000013-source');return false;">[Source]</a></p>
|
345
|
-
<div class="method-source-code" id="M000013-source">
|
346
|
-
<pre>
|
347
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 130</span>
|
348
|
-
130: <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>={})
|
349
|
-
131: <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>)}
|
350
|
-
132: <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>]
|
351
|
-
133: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
352
|
-
134: <span class="ruby-keyword kw">end</span>
|
353
|
-
</pre>
|
354
|
-
</div>
|
355
|
-
</div>
|
356
|
-
</div>
|
357
|
-
|
358
|
-
<div id="method-M000016" class="method-detail">
|
359
|
-
<a name="M000016"></a>
|
360
|
-
|
361
|
-
<div class="method-heading">
|
362
|
-
<a href="#M000016" class="method-signature">
|
363
|
-
<span class="method-name">delete</span><span class="method-args">(title)</span>
|
364
|
-
</a>
|
365
|
-
</div>
|
366
|
-
|
367
|
-
<div class="method-description">
|
368
|
-
<p>
|
369
|
-
Delete one page. (<a href="../MediaWiki.html">MediaWiki</a> API does not
|
370
|
-
support deleting multiple pages at a time.)
|
371
|
-
</p>
|
372
|
-
<dl>
|
373
|
-
<dt>title</dt><dd>Title of page to <a href="Gateway.html#M000016">delete</a>
|
374
|
-
|
375
|
-
</dd>
|
376
|
-
</dl>
|
377
|
-
<p><a class="source-toggle" href="#"
|
378
|
-
onclick="toggleCode('M000016-source');return false;">[Source]</a></p>
|
379
|
-
<div class="method-source-code" id="M000016-source">
|
380
|
-
<pre>
|
381
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 167</span>
|
382
|
-
167: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete</span>(<span class="ruby-identifier">title</span>)
|
383
|
-
168: <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>)}
|
384
|
-
169: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
385
|
-
170: <span class="ruby-keyword kw">end</span>
|
386
|
-
</pre>
|
387
|
-
</div>
|
388
|
-
</div>
|
389
|
-
</div>
|
390
|
-
|
391
|
-
<div id="method-M000024" class="method-detail">
|
392
|
-
<a name="M000024"></a>
|
393
|
-
|
394
|
-
<div class="method-heading">
|
395
|
-
<a href="#M000024" class="method-signature">
|
396
|
-
<span class="method-name">download</span><span class="method-args">(file_name, options={})</span>
|
397
|
-
</a>
|
398
|
-
</div>
|
399
|
-
|
400
|
-
<div class="method-description">
|
401
|
-
<p>
|
402
|
-
Download <em>file_name</em>. Returns file contents. All options are passed
|
403
|
-
to <a href="Gateway.html#M000023">image_info</a> however
|
404
|
-
options[‘iiprop’] is forced to url. You can still set other
|
405
|
-
options to control what file you want to <a
|
406
|
-
href="Gateway.html#M000024">download</a>.
|
407
|
-
</p>
|
408
|
-
<p><a class="source-toggle" href="#"
|
409
|
-
onclick="toggleCode('M000024-source');return false;">[Source]</a></p>
|
410
|
-
<div class="method-source-code" id="M000024-source">
|
411
|
-
<pre>
|
412
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 402</span>
|
413
|
-
402: <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>={})
|
414
|
-
403: <span class="ruby-identifier">options</span>[<span class="ruby-value str">'iiprop'</span>] = <span class="ruby-value str">'url'</span>
|
415
|
-
404:
|
416
|
-
405: <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>)
|
417
|
-
406: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attributes</span>
|
418
|
-
407: <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>]
|
419
|
-
408: <span class="ruby-keyword kw">else</span>
|
420
|
-
409: <span class="ruby-keyword kw">nil</span>
|
421
|
-
410: <span class="ruby-keyword kw">end</span>
|
422
|
-
411: <span class="ruby-keyword kw">end</span>
|
423
|
-
</pre>
|
424
|
-
</div>
|
425
|
-
</div>
|
426
|
-
</div>
|
427
|
-
|
428
|
-
<div id="method-M000014" class="method-detail">
|
429
|
-
<a name="M000014"></a>
|
430
|
-
|
431
|
-
<div class="method-heading">
|
432
|
-
<a href="#M000014" class="method-signature">
|
433
|
-
<span class="method-name">edit</span><span class="method-args">(title, content, options={})</span>
|
434
|
-
</a>
|
435
|
-
</div>
|
436
|
-
|
437
|
-
<div class="method-description">
|
438
|
-
<p>
|
439
|
-
Edit page
|
440
|
-
</p>
|
441
|
-
<p>
|
442
|
-
Same options as <a href="Gateway.html#M000013">create</a>, but always
|
443
|
-
overwrites existing pages (and creates them if they don‘t exist
|
444
|
-
already).
|
445
|
-
</p>
|
446
|
-
<p><a class="source-toggle" href="#"
|
447
|
-
onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
|
448
|
-
<div class="method-source-code" id="M000014-source">
|
449
|
-
<pre>
|
450
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 139</span>
|
451
|
-
139: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">edit</span>(<span class="ruby-identifier">title</span>, <span class="ruby-identifier">content</span>, <span class="ruby-identifier">options</span>={})
|
452
|
-
140: <span class="ruby-identifier">create</span>(<span class="ruby-identifier">title</span>, <span class="ruby-identifier">content</span>, {<span class="ruby-identifier">:overwrite</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">true</span>}.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">options</span>))
|
453
|
-
141: <span class="ruby-keyword kw">end</span>
|
454
|
-
</pre>
|
455
|
-
</div>
|
456
|
-
</div>
|
457
|
-
</div>
|
458
|
-
|
459
|
-
<div id="method-M000026" class="method-detail">
|
460
|
-
<a name="M000026"></a>
|
461
|
-
|
462
|
-
<div class="method-heading">
|
463
|
-
<a href="#M000026" class="method-signature">
|
464
|
-
<span class="method-name">export</span><span class="method-args">(page_titles)</span>
|
465
|
-
</a>
|
466
|
-
</div>
|
467
|
-
|
468
|
-
<div class="method-description">
|
469
|
-
<p>
|
470
|
-
Exports a page or set of pages
|
471
|
-
</p>
|
472
|
-
<dl>
|
473
|
-
<dt>page_titles</dt><dd>String or array of page titles to fetch
|
474
|
-
|
475
|
-
</dd>
|
476
|
-
</dl>
|
477
|
-
<p>
|
478
|
-
Returns <a href="../MediaWiki.html">MediaWiki</a> XML dump
|
479
|
-
</p>
|
480
|
-
<p><a class="source-toggle" href="#"
|
481
|
-
onclick="toggleCode('M000026-source');return false;">[Source]</a></p>
|
482
|
-
<div class="method-source-code" id="M000026-source">
|
483
|
-
<pre>
|
484
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 433</span>
|
485
|
-
433: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">export</span>(<span class="ruby-identifier">page_titles</span>)
|
486
|
-
434: <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>}
|
487
|
-
435: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
488
|
-
436: <span class="ruby-keyword kw">end</span>
|
489
|
-
</pre>
|
490
|
-
</div>
|
491
|
-
</div>
|
492
|
-
</div>
|
493
|
-
|
494
|
-
<div id="method-M000028" class="method-detail">
|
495
|
-
<a name="M000028"></a>
|
496
|
-
|
497
|
-
<div class="method-heading">
|
498
|
-
<a href="#M000028" class="method-signature">
|
499
|
-
<span class="method-name">extensions</span><span class="method-args">()</span>
|
500
|
-
</a>
|
501
|
-
</div>
|
502
|
-
|
503
|
-
<div class="method-description">
|
504
|
-
<p>
|
505
|
-
Get a <a href="Gateway.html#M000018">list</a> of all installed (and
|
506
|
-
registered) <a href="Gateway.html#M000028">extensions</a>
|
507
|
-
</p>
|
508
|
-
<p>
|
509
|
-
Returns array of <a href="Gateway.html#M000028">extensions</a> (name =>
|
510
|
-
version)
|
511
|
-
</p>
|
512
|
-
<p><a class="source-toggle" href="#"
|
513
|
-
onclick="toggleCode('M000028-source');return false;">[Source]</a></p>
|
514
|
-
<div class="method-source-code" id="M000028-source">
|
515
|
-
<pre>
|
516
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 454</span>
|
517
|
-
454: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">extensions</span>
|
518
|
-
455: <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> }
|
519
|
-
456: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
520
|
-
457: <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>
|
521
|
-
458: <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>
|
522
|
-
459: <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>]
|
523
|
-
460: <span class="ruby-identifier">extensions</span>
|
524
|
-
461: <span class="ruby-keyword kw">end</span>
|
525
|
-
462: <span class="ruby-keyword kw">end</span>
|
526
|
-
</pre>
|
527
|
-
</div>
|
528
|
-
</div>
|
529
|
-
</div>
|
530
|
-
|
531
|
-
<div id="method-M000010" class="method-detail">
|
532
|
-
<a name="M000010"></a>
|
533
|
-
|
534
|
-
<div class="method-heading">
|
535
|
-
<a href="#M000010" class="method-signature">
|
536
|
-
<span class="method-name">get</span><span class="method-args">(page_title)</span>
|
537
|
-
</a>
|
538
|
-
</div>
|
539
|
-
|
540
|
-
<div class="method-description">
|
541
|
-
<p>
|
542
|
-
Fetch <a href="../MediaWiki.html">MediaWiki</a> page in <a
|
543
|
-
href="../MediaWiki.html">MediaWiki</a> format. Does not follow redirects.
|
544
|
-
</p>
|
545
|
-
<dl>
|
546
|
-
<dt>page_title</dt><dd>Page title to fetch
|
547
|
-
|
548
|
-
</dd>
|
549
|
-
</dl>
|
550
|
-
<p>
|
551
|
-
Returns content of page as string, nil if the page does not exist.
|
552
|
-
</p>
|
553
|
-
<p><a class="source-toggle" href="#"
|
554
|
-
onclick="toggleCode('M000010-source');return false;">[Source]</a></p>
|
555
|
-
<div class="method-source-code" id="M000010-source">
|
556
|
-
<pre>
|
557
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 62</span>
|
558
|
-
62: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get</span>(<span class="ruby-identifier">page_title</span>)
|
559
|
-
63: <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>}
|
560
|
-
64: <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">first</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">"query/pages/page"</span>]
|
561
|
-
65: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">valid_page?</span> <span class="ruby-identifier">page</span>
|
562
|
-
66: <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>
|
563
|
-
67: <span class="ruby-keyword kw">end</span>
|
564
|
-
68: <span class="ruby-keyword kw">end</span>
|
565
|
-
</pre>
|
566
|
-
</div>
|
567
|
-
</div>
|
568
|
-
</div>
|
569
|
-
|
570
|
-
<div id="method-M000023" class="method-detail">
|
571
|
-
<a name="M000023"></a>
|
572
|
-
|
573
|
-
<div class="method-heading">
|
574
|
-
<a href="#M000023" class="method-signature">
|
575
|
-
<span class="method-name">image_info</span><span class="method-args">(file_name_or_page_id, options={})</span>
|
576
|
-
</a>
|
577
|
-
</div>
|
578
|
-
|
579
|
-
<div class="method-description">
|
580
|
-
<p>
|
581
|
-
Requests image info from <a href="../MediaWiki.html">MediaWiki</a>. Follows
|
582
|
-
redirects.
|
583
|
-
</p>
|
584
|
-
<p>
|
585
|
-
<em>file_name_or_page_id</em> should be either:
|
586
|
-
</p>
|
587
|
-
<ul>
|
588
|
-
<li>a file name (String) you want info about without File: prefix.
|
589
|
-
|
590
|
-
</li>
|
591
|
-
<li>or a Fixnum page id you of the file.
|
592
|
-
|
593
|
-
</li>
|
594
|
-
</ul>
|
595
|
-
<p>
|
596
|
-
<em>options</em> is <tt>Hash</tt> passed as query arguments. See <a
|
597
|
-
href="http://www.mediawiki.org/wiki/API:Query_-_Properties#imageinfo_.2F_ii">www.mediawiki.org/wiki/API:Query_-_Properties#imageinfo_.2F_ii</a>
|
598
|
-
for more information.
|
599
|
-
</p>
|
600
|
-
<p>
|
601
|
-
options[‘iiprop’] should be either a string of properties
|
602
|
-
joined by ’|’ or an <tt>Array</tt> (or more precisely something
|
603
|
-
that responds to join).
|
604
|
-
</p>
|
605
|
-
<p>
|
606
|
-
<tt>Hash</tt> like object is returned where keys are image properties.
|
607
|
-
</p>
|
608
|
-
<p>
|
609
|
-
Example:
|
610
|
-
</p>
|
611
|
-
<pre>
|
612
|
-
mw.image_info(
|
613
|
-
"Trooper.jpg", 'iiprop' => ['timestamp', 'user']
|
614
|
-
).each do |key, value|
|
615
|
-
puts "#{key.inspect} => #{value.inspect}"
|
616
|
-
end
|
617
|
-
</pre>
|
618
|
-
<p>
|
619
|
-
Output:
|
620
|
-
</p>
|
621
|
-
<pre>
|
622
|
-
"timestamp" => "2009-10-31T12:59:11Z"
|
623
|
-
"user" => "Valdas"
|
624
|
-
</pre>
|
625
|
-
<p><a class="source-toggle" href="#"
|
626
|
-
onclick="toggleCode('M000023-source');return false;">[Source]</a></p>
|
627
|
-
<div class="method-source-code" id="M000023-source">
|
628
|
-
<pre>
|
629
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 369</span>
|
630
|
-
369: <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>={})
|
631
|
-
370: <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>) \
|
632
|
-
371: <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>)
|
633
|
-
372: <span class="ruby-identifier">form_data</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">merge</span>(
|
634
|
-
373: <span class="ruby-value str">'action'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'query'</span>,
|
635
|
-
374: <span class="ruby-value str">'prop'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'imageinfo'</span>,
|
636
|
-
375: <span class="ruby-value str">'redirects'</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">true</span>
|
637
|
-
376: )
|
638
|
-
377:
|
639
|
-
378: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">file_name_or_page_id</span>
|
640
|
-
379: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Fixnum</span>
|
641
|
-
380: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'pageids'</span>] = <span class="ruby-identifier">file_name_or_page_id</span>
|
642
|
-
381: <span class="ruby-keyword kw">else</span>
|
643
|
-
382: <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>
|
644
|
-
383: <span class="ruby-keyword kw">end</span>
|
645
|
-
384:
|
646
|
-
385: <span class="ruby-identifier">xml</span>, <span class="ruby-identifier">dummy</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
647
|
-
386: <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>]
|
648
|
-
387: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">valid_page?</span> <span class="ruby-identifier">page</span>
|
649
|
-
388: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">xml</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">"query/redirects/r"</span>]
|
650
|
-
389: <span class="ruby-comment cmt"># We're dealing with redirect here.</span>
|
651
|
-
390: <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>)
|
652
|
-
391: <span class="ruby-keyword kw">else</span>
|
653
|
-
392: <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>
|
654
|
-
393: <span class="ruby-keyword kw">end</span>
|
655
|
-
394: <span class="ruby-keyword kw">else</span>
|
656
|
-
395: <span class="ruby-keyword kw">nil</span>
|
657
|
-
396: <span class="ruby-keyword kw">end</span>
|
658
|
-
397: <span class="ruby-keyword kw">end</span>
|
659
|
-
</pre>
|
660
|
-
</div>
|
661
|
-
</div>
|
662
|
-
</div>
|
663
|
-
|
664
|
-
<div id="method-M000025" class="method-detail">
|
665
|
-
<a name="M000025"></a>
|
666
|
-
|
667
|
-
<div class="method-heading">
|
668
|
-
<a href="#M000025" class="method-signature">
|
669
|
-
<span class="method-name">import</span><span class="method-args">(xmlfile)</span>
|
670
|
-
</a>
|
671
|
-
</div>
|
672
|
-
|
673
|
-
<div class="method-description">
|
674
|
-
<p>
|
675
|
-
Imports a <a href="../MediaWiki.html">MediaWiki</a> XML dump
|
676
|
-
</p>
|
677
|
-
<dl>
|
678
|
-
<dt>xml</dt><dd>String or array of page names to fetch
|
679
|
-
|
680
|
-
</dd>
|
681
|
-
</dl>
|
682
|
-
<p>
|
683
|
-
Returns XML array <api><<a
|
684
|
-
href="Gateway.html#M000025">import</a>><page/><page/>…
|
685
|
-
<page revisions="1"> (or more) means successfully imported
|
686
|
-
<page revisions="0"> means duplicate, not imported
|
687
|
-
</p>
|
688
|
-
<p><a class="source-toggle" href="#"
|
689
|
-
onclick="toggleCode('M000025-source');return false;">[Source]</a></p>
|
690
|
-
<div class="method-source-code" id="M000025-source">
|
691
|
-
<pre>
|
692
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 420</span>
|
693
|
-
420: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">import</span>(<span class="ruby-identifier">xmlfile</span>)
|
694
|
-
421: <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>,
|
695
|
-
422: <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>),
|
696
|
-
423: <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>
|
697
|
-
424: <span class="ruby-value str">"format"</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'xml'</span> }
|
698
|
-
425: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
699
|
-
426: <span class="ruby-keyword kw">end</span>
|
700
|
-
</pre>
|
701
|
-
</div>
|
702
|
-
</div>
|
703
|
-
</div>
|
704
|
-
|
705
|
-
<div id="method-M000018" class="method-detail">
|
706
|
-
<a name="M000018"></a>
|
707
|
-
|
708
|
-
<div class="method-heading">
|
709
|
-
<a href="#M000018" class="method-signature">
|
710
|
-
<span class="method-name">list</span><span class="method-args">(key)</span>
|
711
|
-
</a>
|
712
|
-
</div>
|
713
|
-
|
714
|
-
<div class="method-description">
|
715
|
-
<p>
|
716
|
-
Get a <a href="Gateway.html#M000018">list</a> of matching page titles in a
|
717
|
-
namespace
|
718
|
-
</p>
|
719
|
-
<dl>
|
720
|
-
<dt>key</dt><dd>Search key, matched as a prefix (^key.*). May contain or equal a namespace,
|
721
|
-
defaults to main (namespace 0) if none given.
|
722
|
-
|
723
|
-
</dd>
|
724
|
-
</dl>
|
725
|
-
<p>
|
726
|
-
Returns array of page titles (empty if no matches)
|
727
|
-
</p>
|
728
|
-
<p><a class="source-toggle" href="#"
|
729
|
-
onclick="toggleCode('M000018-source');return false;">[Source]</a></p>
|
730
|
-
<div class="method-source-code" id="M000018-source">
|
731
|
-
<pre>
|
732
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 192</span>
|
733
|
-
192: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">list</span>(<span class="ruby-identifier">key</span>)
|
734
|
-
193: <span class="ruby-identifier">titles</span> = []
|
735
|
-
194: <span class="ruby-identifier">apfrom</span> = <span class="ruby-keyword kw">nil</span>
|
736
|
-
195: <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>
|
737
|
-
196: <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>
|
738
|
-
197: <span class="ruby-keyword kw">begin</span>
|
739
|
-
198: <span class="ruby-identifier">form_data</span> =
|
740
|
-
199: {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'query'</span>,
|
741
|
-
200: <span class="ruby-value str">'list'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'allpages'</span>,
|
742
|
-
201: <span class="ruby-value str">'apfrom'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">apfrom</span>,
|
743
|
-
202: <span class="ruby-value str">'apprefix'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">key</span>,
|
744
|
-
203: <span class="ruby-value str">'aplimit'</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:limit</span>],
|
745
|
-
204: <span class="ruby-value str">'apnamespace'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">namespace</span>}
|
746
|
-
205: <span class="ruby-identifier">res</span>, <span class="ruby-identifier">apfrom</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>, <span class="ruby-value str">'//query-continue/allpages/@apfrom'</span>)
|
747
|
-
206: <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>] }
|
748
|
-
207: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">apfrom</span>
|
749
|
-
208: <span class="ruby-identifier">titles</span>
|
750
|
-
209: <span class="ruby-keyword kw">end</span>
|
751
|
-
</pre>
|
752
|
-
</div>
|
753
|
-
</div>
|
754
|
-
</div>
|
755
|
-
|
756
|
-
<div id="method-M000009" class="method-detail">
|
757
|
-
<a name="M000009"></a>
|
758
|
-
|
759
|
-
<div class="method-heading">
|
760
|
-
<a href="#M000009" class="method-signature">
|
761
|
-
<span class="method-name">login</span><span class="method-args">(username, password, domain = 'local')</span>
|
762
|
-
</a>
|
763
|
-
</div>
|
764
|
-
|
765
|
-
<div class="method-description">
|
766
|
-
<p>
|
767
|
-
Login to <a href="../MediaWiki.html">MediaWiki</a>
|
768
|
-
</p>
|
769
|
-
<dl>
|
770
|
-
<dt>username</dt><dd>Username
|
771
|
-
|
772
|
-
</dd>
|
773
|
-
<dt>password</dt><dd>Password
|
774
|
-
|
775
|
-
</dd>
|
776
|
-
<dt>domain</dt><dd>Domain for authentication plugin logins (eg. LDAP), optional —
|
777
|
-
defaults to ‘local’ if not given
|
778
|
-
|
779
|
-
</dd>
|
780
|
-
</dl>
|
781
|
-
<p>
|
782
|
-
Throws <a href="Unauthorized.html">MediaWiki::Unauthorized</a> if <a
|
783
|
-
href="Gateway.html#M000009">login</a> fails
|
784
|
-
</p>
|
785
|
-
<p><a class="source-toggle" href="#"
|
786
|
-
onclick="toggleCode('M000009-source');return false;">[Source]</a></p>
|
787
|
-
<div class="method-source-code" id="M000009-source">
|
788
|
-
<pre>
|
789
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 50</span>
|
790
|
-
50: <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>)
|
791
|
-
51: <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>}
|
792
|
-
52: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
793
|
-
53: <span class="ruby-ivar">@password</span> = <span class="ruby-identifier">password</span>
|
794
|
-
54: <span class="ruby-ivar">@username</span> = <span class="ruby-identifier">username</span>
|
795
|
-
55: <span class="ruby-keyword kw">end</span>
|
796
|
-
</pre>
|
797
|
-
</div>
|
798
|
-
</div>
|
799
|
-
</div>
|
800
|
-
|
801
|
-
<div id="method-M000015" class="method-detail">
|
802
|
-
<a name="M000015"></a>
|
803
|
-
|
804
|
-
<div class="method-heading">
|
805
|
-
<a href="#M000015" class="method-signature">
|
806
|
-
<span class="method-name">move</span><span class="method-args">(from, to, options={})</span>
|
807
|
-
</a>
|
808
|
-
</div>
|
809
|
-
|
810
|
-
<div class="method-description">
|
811
|
-
<p>
|
812
|
-
Move a page to a <a href="Gateway.html#M000008">new</a> title
|
813
|
-
</p>
|
814
|
-
<dl>
|
815
|
-
<dt>from</dt><dd>Old page name
|
816
|
-
|
817
|
-
</dd>
|
818
|
-
<dt>to</dt><dd>New page name
|
819
|
-
|
820
|
-
</dd>
|
821
|
-
<dt>options</dt><dd>Hash of additional options
|
822
|
-
|
823
|
-
</dd>
|
824
|
-
</dl>
|
825
|
-
<p>
|
826
|
-
Options:
|
827
|
-
</p>
|
828
|
-
<ul>
|
829
|
-
<li>[:movesubpages] Move associated subpages
|
830
|
-
|
831
|
-
</li>
|
832
|
-
<li>[:movetalk] Move associated talkpages
|
833
|
-
|
834
|
-
</li>
|
835
|
-
<li>[:noredirect] Do not <a href="Gateway.html#M000013">create</a> a redirect
|
836
|
-
page from old name. Requires the ‘suppressredirect’ user right,
|
837
|
-
otherwise MW will silently ignore the option and <a
|
838
|
-
href="Gateway.html#M000013">create</a> the redirect anyway.
|
839
|
-
|
840
|
-
</li>
|
841
|
-
<li>[:reason] Reason for <a href="Gateway.html#M000015">move</a>
|
842
|
-
|
843
|
-
</li>
|
844
|
-
<li>[:watch] Add page and any redirect to watchlist
|
845
|
-
|
846
|
-
</li>
|
847
|
-
<li>[:unwatch] Remove page and any redirect from watchlist
|
848
|
-
|
849
|
-
</li>
|
850
|
-
</ul>
|
851
|
-
<p><a class="source-toggle" href="#"
|
852
|
-
onclick="toggleCode('M000015-source');return false;">[Source]</a></p>
|
853
|
-
<div class="method-source-code" id="M000015-source">
|
854
|
-
<pre>
|
855
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 156</span>
|
856
|
-
156: <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>={})
|
857
|
-
157: <span class="ruby-identifier">valid_options</span> = <span class="ruby-node">%w(movesubpages movetalk noredirect reason watch unwatch)</span>
|
858
|
-
158: <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>)}
|
859
|
-
159:
|
860
|
-
160: <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">'move'</span>, <span class="ruby-identifier">from</span>)})
|
861
|
-
161: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
862
|
-
162: <span class="ruby-keyword kw">end</span>
|
863
|
-
</pre>
|
864
|
-
</div>
|
865
|
-
</div>
|
866
|
-
</div>
|
867
|
-
|
868
|
-
<div id="method-M000027" class="method-detail">
|
869
|
-
<a name="M000027"></a>
|
870
|
-
|
871
|
-
<div class="method-heading">
|
872
|
-
<a href="#M000027" class="method-signature">
|
873
|
-
<span class="method-name">namespaces_by_prefix</span><span class="method-args">()</span>
|
874
|
-
</a>
|
875
|
-
</div>
|
876
|
-
|
877
|
-
<div class="method-description">
|
878
|
-
<p>
|
879
|
-
Get a <a href="Gateway.html#M000018">list</a> of all known namespaces
|
880
|
-
</p>
|
881
|
-
<p>
|
882
|
-
Returns array of namespaces (name => id)
|
883
|
-
</p>
|
884
|
-
<p><a class="source-toggle" href="#"
|
885
|
-
onclick="toggleCode('M000027-source');return false;">[Source]</a></p>
|
886
|
-
<div class="method-source-code" id="M000027-source">
|
887
|
-
<pre>
|
888
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 441</span>
|
889
|
-
441: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">namespaces_by_prefix</span>
|
890
|
-
442: <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> }
|
891
|
-
443: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
892
|
-
444: <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>
|
893
|
-
445: <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>
|
894
|
-
446: <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>
|
895
|
-
447: <span class="ruby-identifier">namespaces</span>
|
896
|
-
448: <span class="ruby-keyword kw">end</span>
|
897
|
-
449: <span class="ruby-keyword kw">end</span>
|
898
|
-
</pre>
|
899
|
-
</div>
|
900
|
-
</div>
|
901
|
-
</div>
|
902
|
-
|
903
|
-
<div id="method-M000022" class="method-detail">
|
904
|
-
<a name="M000022"></a>
|
905
|
-
|
906
|
-
<div class="method-heading">
|
907
|
-
<a href="#M000022" class="method-signature">
|
908
|
-
<span class="method-name">redirect?</span><span class="method-args">(page_title)</span>
|
909
|
-
</a>
|
910
|
-
</div>
|
911
|
-
|
912
|
-
<div class="method-description">
|
913
|
-
<p>
|
914
|
-
Checks if page is a redirect.
|
915
|
-
</p>
|
916
|
-
<dl>
|
917
|
-
<dt>page_title</dt><dd>Page title to fetch
|
918
|
-
|
919
|
-
</dd>
|
920
|
-
</dl>
|
921
|
-
<p>
|
922
|
-
Returns true if the page is a redirect, false if it is not or the page does
|
923
|
-
not exist.
|
924
|
-
</p>
|
925
|
-
<p><a class="source-toggle" href="#"
|
926
|
-
onclick="toggleCode('M000022-source');return false;">[Source]</a></p>
|
927
|
-
<div class="method-source-code" id="M000022-source">
|
928
|
-
<pre>
|
929
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 337</span>
|
930
|
-
337: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">redirect?</span>(<span class="ruby-identifier">page_title</span>)
|
931
|
-
338: <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">'titles'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">page_title</span>}
|
932
|
-
339: <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">first</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">"query/pages/page"</span>]
|
933
|
-
340: <span class="ruby-operator">!</span><span class="ruby-operator">!</span>(<span class="ruby-identifier">valid_page?</span>(<span class="ruby-identifier">page</span>) <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">page</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">"redirect"</span>])
|
934
|
-
341: <span class="ruby-keyword kw">end</span>
|
935
|
-
</pre>
|
936
|
-
</div>
|
937
|
-
</div>
|
938
|
-
</div>
|
939
|
-
|
940
|
-
<div id="method-M000012" class="method-detail">
|
941
|
-
<a name="M000012"></a>
|
942
|
-
|
943
|
-
<div class="method-heading">
|
944
|
-
<a href="#M000012" class="method-signature">
|
945
|
-
<span class="method-name">render</span><span class="method-args">(page_title, options = {})</span>
|
946
|
-
</a>
|
947
|
-
</div>
|
948
|
-
|
949
|
-
<div class="method-description">
|
950
|
-
<p>
|
951
|
-
Render a <a href="../MediaWiki.html">MediaWiki</a> page as HTML
|
952
|
-
</p>
|
953
|
-
<dl>
|
954
|
-
<dt>page_title</dt><dd>Page title to fetch
|
955
|
-
|
956
|
-
</dd>
|
957
|
-
<dt>options</dt><dd>Hash of additional options
|
958
|
-
|
959
|
-
</dd>
|
960
|
-
</dl>
|
961
|
-
<p>
|
962
|
-
Options:
|
963
|
-
</p>
|
964
|
-
<ul>
|
965
|
-
<li>[:linkbase] supply a String to prefix all internal (relative) links with.
|
966
|
-
’/wiki/’ is assumed to be the base of a relative link
|
967
|
-
|
968
|
-
</li>
|
969
|
-
<li>[:noeditsections] strips all <a href="Gateway.html#M000014">edit</a>-links
|
970
|
-
if set to <tt>true</tt>
|
971
|
-
|
972
|
-
</li>
|
973
|
-
<li>[:noimages] strips all <tt>img</tt> tags from the rendered text if set to
|
974
|
-
<tt>true</tt>
|
975
|
-
|
976
|
-
</li>
|
977
|
-
</ul>
|
978
|
-
<p>
|
979
|
-
Returns rendered page as string, or nil if the page does not exist
|
980
|
-
</p>
|
981
|
-
<p><a class="source-toggle" href="#"
|
982
|
-
onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
|
983
|
-
<div class="method-source-code" id="M000012-source">
|
984
|
-
<pre>
|
985
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 94</span>
|
986
|
-
94: <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> = {})
|
987
|
-
95: <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>}
|
988
|
-
96:
|
989
|
-
97: <span class="ruby-identifier">valid_options</span> = <span class="ruby-node">%w(linkbase noeditsections noimages)</span>
|
990
|
-
98: <span class="ruby-comment cmt"># Check options</span>
|
991
|
-
99: <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>)}
|
992
|
-
100:
|
993
|
-
101: <span class="ruby-identifier">rendered</span> = <span class="ruby-keyword kw">nil</span>
|
994
|
-
102: <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">first</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">"parse"</span>]
|
995
|
-
103: <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>
|
996
|
-
104: <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>)
|
997
|
-
105: <span class="ruby-comment cmt"># OPTIMIZE: unifiy the keys in +options+ like symbolize_keys! but w/o</span>
|
998
|
-
106: <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>]
|
999
|
-
107: <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>]
|
1000
|
-
108: <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>)
|
1001
|
-
109: <span class="ruby-keyword kw">end</span>
|
1002
|
-
110: <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>]
|
1003
|
-
111: <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>)
|
1004
|
-
112: <span class="ruby-keyword kw">end</span>
|
1005
|
-
113: <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>]
|
1006
|
-
114: <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>)
|
1007
|
-
115: <span class="ruby-keyword kw">end</span>
|
1008
|
-
116: <span class="ruby-keyword kw">end</span>
|
1009
|
-
117: <span class="ruby-identifier">rendered</span>
|
1010
|
-
118: <span class="ruby-keyword kw">end</span>
|
1011
|
-
</pre>
|
1012
|
-
</div>
|
1013
|
-
</div>
|
1014
|
-
</div>
|
1015
|
-
|
1016
|
-
<div id="method-M000031" class="method-detail">
|
1017
|
-
<a name="M000031"></a>
|
1018
|
-
|
1019
|
-
<div class="method-heading">
|
1020
|
-
<a href="#M000031" class="method-signature">
|
1021
|
-
<span class="method-name">review</span><span class="method-args">(title, flags, comment = "Reviewed by MediaWiki::Gateway")</span>
|
1022
|
-
</a>
|
1023
|
-
</div>
|
1024
|
-
|
1025
|
-
<div class="method-description">
|
1026
|
-
<p>
|
1027
|
-
Review current <a href="Gateway.html#M000011">revision</a> of an article
|
1028
|
-
(requires FlaggedRevisions extension, see <a
|
1029
|
-
href="http://www.mediawiki.org/wiki/Extension:FlaggedRevs">www.mediawiki.org/wiki/Extension:FlaggedRevs</a>)
|
1030
|
-
</p>
|
1031
|
-
<dl>
|
1032
|
-
<dt>title</dt><dd>Title of article to <a href="Gateway.html#M000031">review</a>
|
1033
|
-
|
1034
|
-
</dd>
|
1035
|
-
<dt>flags</dt><dd>Hash of flags and values to set, eg. { "accuracy" =>
|
1036
|
-
"1", "depth" => "2" }
|
1037
|
-
|
1038
|
-
</dd>
|
1039
|
-
<dt>comment</dt><dd>Comment to add to <a href="Gateway.html#M000031">review</a> (optional)
|
1040
|
-
|
1041
|
-
</dd>
|
1042
|
-
</dl>
|
1043
|
-
<p><a class="source-toggle" href="#"
|
1044
|
-
onclick="toggleCode('M000031-source');return false;">[Source]</a></p>
|
1045
|
-
<div class="method-source-code" id="M000031-source">
|
1046
|
-
<pre>
|
1047
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 492</span>
|
1048
|
-
492: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">review</span>(<span class="ruby-identifier">title</span>, <span class="ruby-identifier">flags</span>, <span class="ruby-identifier">comment</span> = <span class="ruby-value str">"Reviewed by MediaWiki::Gateway"</span>)
|
1049
|
-
493: <span class="ruby-identifier">raise</span> <span class="ruby-constant">APIError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'missingtitle'</span>, <span class="ruby-node">"Article #{title} not found"</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">revid</span> = <span class="ruby-identifier">revision</span>(<span class="ruby-identifier">title</span>)
|
1050
|
-
494: <span class="ruby-identifier">form_data</span> = {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'review'</span>, <span class="ruby-value str">'revid'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">revid</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>), <span class="ruby-value str">'comment'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">comment</span>}
|
1051
|
-
495: <span class="ruby-identifier">form_data</span>.<span class="ruby-identifier">merge!</span>( <span class="ruby-constant">Hash</span>[<span class="ruby-identifier">flags</span>.<span class="ruby-identifier">map</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span> [<span class="ruby-node">"flag_#{k}"</span>, <span class="ruby-identifier">v</span>]}] )
|
1052
|
-
496: <span class="ruby-identifier">res</span>, <span class="ruby-identifier">dummy</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
1053
|
-
497: <span class="ruby-identifier">res</span>
|
1054
|
-
498: <span class="ruby-keyword kw">end</span>
|
1055
|
-
</pre>
|
1056
|
-
</div>
|
1057
|
-
</div>
|
1058
|
-
</div>
|
1059
|
-
|
1060
|
-
<div id="method-M000011" class="method-detail">
|
1061
|
-
<a name="M000011"></a>
|
1062
|
-
|
1063
|
-
<div class="method-heading">
|
1064
|
-
<a href="#M000011" class="method-signature">
|
1065
|
-
<span class="method-name">revision</span><span class="method-args">(page_title)</span>
|
1066
|
-
</a>
|
1067
|
-
</div>
|
1068
|
-
|
1069
|
-
<div class="method-description">
|
1070
|
-
<p>
|
1071
|
-
Fetch latest <a href="Gateway.html#M000011">revision</a> ID of a <a
|
1072
|
-
href="../MediaWiki.html">MediaWiki</a> page. Does not follow redirects.
|
1073
|
-
</p>
|
1074
|
-
<dl>
|
1075
|
-
<dt>page_title</dt><dd>Page title to fetch
|
1076
|
-
|
1077
|
-
</dd>
|
1078
|
-
</dl>
|
1079
|
-
<p>
|
1080
|
-
Returns <a href="Gateway.html#M000011">revision</a> ID as a string, nil if
|
1081
|
-
the page does not exist.
|
1082
|
-
</p>
|
1083
|
-
<p><a class="source-toggle" href="#"
|
1084
|
-
onclick="toggleCode('M000011-source');return false;">[Source]</a></p>
|
1085
|
-
<div class="method-source-code" id="M000011-source">
|
1086
|
-
<pre>
|
1087
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 75</span>
|
1088
|
-
75: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">revision</span>(<span class="ruby-identifier">page_title</span>)
|
1089
|
-
76: <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">'ids'</span>, <span class="ruby-value str">'rvlimit'</span> =<span class="ruby-operator">></span> <span class="ruby-value">1</span>, <span class="ruby-value str">'titles'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">page_title</span>}
|
1090
|
-
77: <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">first</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">"query/pages/page"</span>]
|
1091
|
-
78: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">valid_page?</span> <span class="ruby-identifier">page</span>
|
1092
|
-
79: <span class="ruby-identifier">page</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">"revisions/rev"</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">"revid"</span>]
|
1093
|
-
80: <span class="ruby-keyword kw">end</span>
|
1094
|
-
81: <span class="ruby-keyword kw">end</span>
|
1095
|
-
</pre>
|
1096
|
-
</div>
|
1097
|
-
</div>
|
1098
|
-
</div>
|
1099
|
-
|
1100
|
-
<div id="method-M000020" class="method-detail">
|
1101
|
-
<a name="M000020"></a>
|
1102
|
-
|
1103
|
-
<div class="method-heading">
|
1104
|
-
<a href="#M000020" class="method-signature">
|
1105
|
-
<span class="method-name">search</span><span class="method-args">(key, namespaces=nil, limit=@options[:limit])</span>
|
1106
|
-
</a>
|
1107
|
-
</div>
|
1108
|
-
|
1109
|
-
<div class="method-description">
|
1110
|
-
<p>
|
1111
|
-
Get a <a href="Gateway.html#M000018">list</a> of pages with matching
|
1112
|
-
content in given namespaces
|
1113
|
-
</p>
|
1114
|
-
<dl>
|
1115
|
-
<dt>key</dt><dd>Search key
|
1116
|
-
|
1117
|
-
</dd>
|
1118
|
-
<dt>namespaces</dt><dd>Array of namespace names to <a href="Gateway.html#M000020">search</a>
|
1119
|
-
(defaults to main only)
|
1120
|
-
|
1121
|
-
</dd>
|
1122
|
-
<dt>limit</dt><dd>Maximum number of hits to ask for (defaults to 500; note that Wikimedia
|
1123
|
-
Foundation wikis allow only 50 for normal users)
|
1124
|
-
|
1125
|
-
</dd>
|
1126
|
-
</dl>
|
1127
|
-
<p>
|
1128
|
-
Returns array of page titles (empty if no matches)
|
1129
|
-
</p>
|
1130
|
-
<p><a class="source-toggle" href="#"
|
1131
|
-
onclick="toggleCode('M000020-source');return false;">[Source]</a></p>
|
1132
|
-
<div class="method-source-code" id="M000020-source">
|
1133
|
-
<pre>
|
1134
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 241</span>
|
1135
|
-
241: <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-ivar">@options</span>[<span class="ruby-identifier">:limit</span>])
|
1136
|
-
242: <span class="ruby-identifier">titles</span> = []
|
1137
|
-
243: <span class="ruby-identifier">offset</span> = <span class="ruby-keyword kw">nil</span>
|
1138
|
-
244: <span class="ruby-identifier">in_progress</span> = <span class="ruby-keyword kw">true</span>
|
1139
|
-
245:
|
1140
|
-
246: <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>,
|
1141
|
-
247: <span class="ruby-value str">'list'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'search'</span>,
|
1142
|
-
248: <span class="ruby-value str">'srwhat'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'text'</span>,
|
1143
|
-
249: <span class="ruby-value str">'srsearch'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">key</span>,
|
1144
|
-
250: <span class="ruby-value str">'srlimit'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">limit</span>
|
1145
|
-
251: }
|
1146
|
-
252: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">namespaces</span>
|
1147
|
-
253: <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>
|
1148
|
-
254: <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>)
|
1149
|
-
255: <span class="ruby-keyword kw">end</span>
|
1150
|
-
256: <span class="ruby-keyword kw">begin</span>
|
1151
|
-
257: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'sroffset'</span>] = <span class="ruby-identifier">offset</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">offset</span>
|
1152
|
-
258: <span class="ruby-identifier">res</span>, <span class="ruby-identifier">offset</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>, <span class="ruby-value str">'//query-continue/search/@sroffset'</span>)
|
1153
|
-
259: <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>] }
|
1154
|
-
260: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">offset</span>
|
1155
|
-
261: <span class="ruby-identifier">titles</span>
|
1156
|
-
262: <span class="ruby-keyword kw">end</span>
|
1157
|
-
</pre>
|
1158
|
-
</div>
|
1159
|
-
</div>
|
1160
|
-
</div>
|
1161
|
-
|
1162
|
-
<div id="method-M000029" class="method-detail">
|
1163
|
-
<a name="M000029"></a>
|
1164
|
-
|
1165
|
-
<div class="method-heading">
|
1166
|
-
<a href="#M000029" class="method-signature">
|
1167
|
-
<span class="method-name">semantic_query</span><span class="method-args">(query, params = [])</span>
|
1168
|
-
</a>
|
1169
|
-
</div>
|
1170
|
-
|
1171
|
-
<div class="method-description">
|
1172
|
-
<p>
|
1173
|
-
Execute Semantic Mediawiki query
|
1174
|
-
</p>
|
1175
|
-
<dl>
|
1176
|
-
<dt>query</dt><dd>Semantic Mediawiki query
|
1177
|
-
|
1178
|
-
</dd>
|
1179
|
-
<dt>params</dt><dd>Array of additional parameters or options, eg. mainlabel=Foo or ?Place
|
1180
|
-
(optional)
|
1181
|
-
|
1182
|
-
</dd>
|
1183
|
-
</dl>
|
1184
|
-
<p>
|
1185
|
-
Returns result as an HTML string
|
1186
|
-
</p>
|
1187
|
-
<p><a class="source-toggle" href="#"
|
1188
|
-
onclick="toggleCode('M000029-source');return false;">[Source]</a></p>
|
1189
|
-
<div class="method-source-code" id="M000029-source">
|
1190
|
-
<pre>
|
1191
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 470</span>
|
1192
|
-
470: <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> = [])
|
1193
|
-
471: <span class="ruby-identifier">params</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"format=list"</span>
|
1194
|
-
472: <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> }
|
1195
|
-
473: <span class="ruby-identifier">xml</span>, <span class="ruby-identifier">dummy</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
1196
|
-
474: <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>
|
1197
|
-
475: <span class="ruby-keyword kw">end</span>
|
1198
|
-
</pre>
|
1199
|
-
</div>
|
1200
|
-
</div>
|
1201
|
-
</div>
|
1202
|
-
|
1203
|
-
<div id="method-M000030" class="method-detail">
|
1204
|
-
<a name="M000030"></a>
|
1205
|
-
|
1206
|
-
<div class="method-heading">
|
1207
|
-
<a href="#M000030" class="method-signature">
|
1208
|
-
<span class="method-name">set_groups</span><span class="method-args">(user, groups_to_add = [], groups_to_remove = [], comment = '')</span>
|
1209
|
-
</a>
|
1210
|
-
</div>
|
1211
|
-
|
1212
|
-
<div class="method-description">
|
1213
|
-
<p>
|
1214
|
-
Set groups for a user
|
1215
|
-
</p>
|
1216
|
-
<dl>
|
1217
|
-
<dt>user</dt><dd>Username of user to modify
|
1218
|
-
|
1219
|
-
</dd>
|
1220
|
-
<dt>groups_to_add</dt><dd>Groups to add user to, as an array or a string if a single group (optional)
|
1221
|
-
|
1222
|
-
</dd>
|
1223
|
-
<dt>groups_to_remove</dt><dd>Groups to remove user from, as an array or a string if a single group
|
1224
|
-
(optional)
|
1225
|
-
|
1226
|
-
</dd>
|
1227
|
-
</dl>
|
1228
|
-
<p><a class="source-toggle" href="#"
|
1229
|
-
onclick="toggleCode('M000030-source');return false;">[Source]</a></p>
|
1230
|
-
<div class="method-source-code" id="M000030-source">
|
1231
|
-
<pre>
|
1232
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 482</span>
|
1233
|
-
482: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_groups</span>(<span class="ruby-identifier">user</span>, <span class="ruby-identifier">groups_to_add</span> = [], <span class="ruby-identifier">groups_to_remove</span> = [], <span class="ruby-identifier">comment</span> = <span class="ruby-value str">''</span>)
|
1234
|
-
483: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">get_userrights_token</span>(<span class="ruby-identifier">user</span>)
|
1235
|
-
484: <span class="ruby-identifier">userrights</span>(<span class="ruby-identifier">user</span>, <span class="ruby-identifier">token</span>, <span class="ruby-identifier">groups_to_add</span>, <span class="ruby-identifier">groups_to_remove</span>, <span class="ruby-identifier">comment</span>)
|
1236
|
-
485: <span class="ruby-keyword kw">end</span>
|
1237
|
-
</pre>
|
1238
|
-
</div>
|
1239
|
-
</div>
|
1240
|
-
</div>
|
1241
|
-
|
1242
|
-
<div id="method-M000017" class="method-detail">
|
1243
|
-
<a name="M000017"></a>
|
1244
|
-
|
1245
|
-
<div class="method-heading">
|
1246
|
-
<a href="#M000017" class="method-signature">
|
1247
|
-
<span class="method-name">undelete</span><span class="method-args">(title)</span>
|
1248
|
-
</a>
|
1249
|
-
</div>
|
1250
|
-
|
1251
|
-
<div class="method-description">
|
1252
|
-
<p>
|
1253
|
-
Undelete all revisions of one page.
|
1254
|
-
</p>
|
1255
|
-
<dl>
|
1256
|
-
<dt>title</dt><dd>Title of page to <a href="Gateway.html#M000017">undelete</a>
|
1257
|
-
|
1258
|
-
</dd>
|
1259
|
-
</dl>
|
1260
|
-
<p>
|
1261
|
-
Returns number of revisions undeleted, or zero if nothing to <a
|
1262
|
-
href="Gateway.html#M000017">undelete</a>
|
1263
|
-
</p>
|
1264
|
-
<p><a class="source-toggle" href="#"
|
1265
|
-
onclick="toggleCode('M000017-source');return false;">[Source]</a></p>
|
1266
|
-
<div class="method-source-code" id="M000017-source">
|
1267
|
-
<pre>
|
1268
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 177</span>
|
1269
|
-
177: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">undelete</span>(<span class="ruby-identifier">title</span>)
|
1270
|
-
178: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">get_undelete_token</span>(<span class="ruby-identifier">title</span>)
|
1271
|
-
179: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">token</span>
|
1272
|
-
180: <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> }
|
1273
|
-
181: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>).<span class="ruby-identifier">first</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>
|
1274
|
-
182: <span class="ruby-keyword kw">else</span>
|
1275
|
-
183: <span class="ruby-value">0</span> <span class="ruby-comment cmt"># No revisions to undelete</span>
|
1276
|
-
184: <span class="ruby-keyword kw">end</span>
|
1277
|
-
185: <span class="ruby-keyword kw">end</span>
|
1278
|
-
</pre>
|
1279
|
-
</div>
|
1280
|
-
</div>
|
1281
|
-
</div>
|
1282
|
-
|
1283
|
-
<div id="method-M000021" class="method-detail">
|
1284
|
-
<a name="M000021"></a>
|
1285
|
-
|
1286
|
-
<div class="method-heading">
|
1287
|
-
<a href="#M000021" class="method-signature">
|
1288
|
-
<span class="method-name">upload</span><span class="method-args">(path, options={})</span>
|
1289
|
-
</a>
|
1290
|
-
</div>
|
1291
|
-
|
1292
|
-
<div class="method-description">
|
1293
|
-
<p>
|
1294
|
-
Upload a file, or <a href="Gateway.html#M000010">get</a> the status of
|
1295
|
-
pending uploads. Several methods are available:
|
1296
|
-
</p>
|
1297
|
-
<ul>
|
1298
|
-
<li>Upload file contents directly.
|
1299
|
-
|
1300
|
-
</li>
|
1301
|
-
<li>Have the <a href="../MediaWiki.html">MediaWiki</a> server fetch a file from
|
1302
|
-
a URL, using the "url" parameter
|
1303
|
-
|
1304
|
-
</li>
|
1305
|
-
</ul>
|
1306
|
-
<p>
|
1307
|
-
Requires Mediawiki 1.16+
|
1308
|
-
</p>
|
1309
|
-
<p>
|
1310
|
-
Arguments:
|
1311
|
-
</p>
|
1312
|
-
<ul>
|
1313
|
-
<li>[path] Path to file to <a href="Gateway.html#M000021">upload</a>. Set to
|
1314
|
-
nil if uploading from URL.
|
1315
|
-
|
1316
|
-
</li>
|
1317
|
-
<li>[options] Hash of additional options
|
1318
|
-
|
1319
|
-
</li>
|
1320
|
-
</ul>
|
1321
|
-
<p>
|
1322
|
-
Note that queries using session keys must be done in the same <a
|
1323
|
-
href="Gateway.html#M000009">login</a> session as the query that originally
|
1324
|
-
returned the key (i.e. do not log out and then log back in).
|
1325
|
-
</p>
|
1326
|
-
<p>
|
1327
|
-
Options:
|
1328
|
-
</p>
|
1329
|
-
<ul>
|
1330
|
-
<li>‘filename’ - Target filename (defaults to local name if not
|
1331
|
-
given), options[:target] is alias for this.
|
1332
|
-
|
1333
|
-
</li>
|
1334
|
-
<li>‘comment’ - Upload comment. Also used as the initial page text
|
1335
|
-
for <a href="Gateway.html#M000008">new</a> files if "text" is not
|
1336
|
-
specified.
|
1337
|
-
|
1338
|
-
</li>
|
1339
|
-
<li>‘text’ - Initial page text for <a
|
1340
|
-
href="Gateway.html#M000008">new</a> files
|
1341
|
-
|
1342
|
-
</li>
|
1343
|
-
<li>‘watch’ - Watch the page
|
1344
|
-
|
1345
|
-
</li>
|
1346
|
-
<li>‘ignorewarnings’ - Ignore any warnings
|
1347
|
-
|
1348
|
-
</li>
|
1349
|
-
<li>‘url’ - Url to fetch the file from. Set path to nil if you want
|
1350
|
-
to use this.
|
1351
|
-
|
1352
|
-
</li>
|
1353
|
-
</ul>
|
1354
|
-
<p>
|
1355
|
-
Deprecated but still supported options:
|
1356
|
-
</p>
|
1357
|
-
<ul>
|
1358
|
-
<li>:description - Description of this file. Used as ‘text’.
|
1359
|
-
|
1360
|
-
</li>
|
1361
|
-
<li>:target - Target filename, same as ‘filename’.
|
1362
|
-
|
1363
|
-
</li>
|
1364
|
-
<li>:summary - Edit summary for history. Used as ‘comment’. Also
|
1365
|
-
used as ‘text’ if neither it or :description is specified.
|
1366
|
-
|
1367
|
-
</li>
|
1368
|
-
</ul>
|
1369
|
-
<p>
|
1370
|
-
Examples:
|
1371
|
-
</p>
|
1372
|
-
<pre>
|
1373
|
-
mw.upload('/path/to/local/file.jpg', 'filename' => "RemoteFile.jpg")
|
1374
|
-
mw.upload(nil, 'filename' => "RemoteFile2.jpg", 'url' => 'http://remote.com/server/file.jpg')
|
1375
|
-
</pre>
|
1376
|
-
<p><a class="source-toggle" href="#"
|
1377
|
-
onclick="toggleCode('M000021-source');return false;">[Source]</a></p>
|
1378
|
-
<div class="method-source-code" id="M000021-source">
|
1379
|
-
<pre>
|
1380
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 298</span>
|
1381
|
-
298: <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>={})
|
1382
|
-
299: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:description</span>]
|
1383
|
-
300: <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>]
|
1384
|
-
301: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:description</span>)
|
1385
|
-
302: <span class="ruby-keyword kw">end</span>
|
1386
|
-
303:
|
1387
|
-
304: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:target</span>]
|
1388
|
-
305: <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>]
|
1389
|
-
306: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:target</span>)
|
1390
|
-
307: <span class="ruby-keyword kw">end</span>
|
1391
|
-
308:
|
1392
|
-
309: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:summary</span>]
|
1393
|
-
310: <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>]
|
1394
|
-
311: <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>]
|
1395
|
-
312: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:summary</span>)
|
1396
|
-
313: <span class="ruby-keyword kw">end</span>
|
1397
|
-
314:
|
1398
|
-
315: <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>
|
1399
|
-
316: <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>
|
1400
|
-
317: <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>]
|
1401
|
-
318: <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>
|
1402
|
-
319:
|
1403
|
-
320: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>.<span class="ruby-identifier">new</span>(
|
1404
|
-
321: <span class="ruby-value str">"One of the 'file', 'url' or 'sessionkey' options must be specified!"</span>
|
1405
|
-
322: ) <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>]
|
1406
|
-
323:
|
1407
|
-
324: <span class="ruby-identifier">form_data</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">merge</span>(
|
1408
|
-
325: <span class="ruby-value str">'action'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'upload'</span>,
|
1409
|
-
326: <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>])
|
1410
|
-
327: )
|
1411
|
-
328:
|
1412
|
-
329: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
1413
|
-
330: <span class="ruby-keyword kw">end</span>
|
1414
|
-
</pre>
|
1415
|
-
</div>
|
1416
|
-
</div>
|
1417
|
-
</div>
|
1418
|
-
|
1419
|
-
<h3 class="section-bar">Private Instance methods</h3>
|
1420
|
-
|
1421
|
-
<div id="method-M000037" class="method-detail">
|
1422
|
-
<a name="M000037"></a>
|
1423
|
-
|
1424
|
-
<div class="method-heading">
|
1425
|
-
<a href="#M000037" class="method-signature">
|
1426
|
-
<span class="method-name">get_response</span><span class="method-args">(res)</span>
|
1427
|
-
</a>
|
1428
|
-
</div>
|
1429
|
-
|
1430
|
-
<div class="method-description">
|
1431
|
-
<p>
|
1432
|
-
Get API XML response If there are errors or warnings, raise <a
|
1433
|
-
href="APIError.html">APIError</a> Otherwise return XML root
|
1434
|
-
</p>
|
1435
|
-
<p><a class="source-toggle" href="#"
|
1436
|
-
onclick="toggleCode('M000037-source');return false;">[Source]</a></p>
|
1437
|
-
<div class="method-source-code" id="M000037-source">
|
1438
|
-
<pre>
|
1439
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 598</span>
|
1440
|
-
598: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_response</span>(<span class="ruby-identifier">res</span>)
|
1441
|
-
599: <span class="ruby-keyword kw">begin</span>
|
1442
|
-
600: <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>
|
1443
|
-
601: <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>
|
1444
|
-
602: <span class="ruby-identifier">raise</span> <span class="ruby-constant">MediaWiki</span><span class="ruby-operator">::</span><span class="ruby-constant">Exception</span>.<span class="ruby-identifier">new</span> <span class="ruby-value str">"Response is not XML. Are you sure you are pointing to api.php?"</span>
|
1445
|
-
603: <span class="ruby-keyword kw">end</span>
|
1446
|
-
604: <span class="ruby-identifier">log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">"RES: #{doc}"</span>)
|
1447
|
-
605: <span class="ruby-identifier">raise</span> <span class="ruby-constant">MediaWiki</span><span class="ruby-operator">::</span><span class="ruby-constant">Exception</span>.<span class="ruby-identifier">new</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>
|
1448
|
-
606: <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>]
|
1449
|
-
607: <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>]
|
1450
|
-
608: <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>]
|
1451
|
-
609: <span class="ruby-identifier">raise</span> <span class="ruby-constant">APIError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">code</span>, <span class="ruby-identifier">info</span>)
|
1452
|
-
610: <span class="ruby-keyword kw">end</span>
|
1453
|
-
611: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">"warnings"</span>]
|
1454
|
-
612: <span class="ruby-identifier">warning</span>(<span class="ruby-node">"API warning: #{doc.elements["warnings"].children.map {|e| e.text}.join(", ")}"</span>)
|
1455
|
-
613: <span class="ruby-keyword kw">end</span>
|
1456
|
-
614: <span class="ruby-identifier">doc</span>
|
1457
|
-
615: <span class="ruby-keyword kw">end</span>
|
1458
|
-
</pre>
|
1459
|
-
</div>
|
1460
|
-
</div>
|
1461
|
-
</div>
|
1462
|
-
|
1463
|
-
<div id="method-M000032" class="method-detail">
|
1464
|
-
<a name="M000032"></a>
|
1465
|
-
|
1466
|
-
<div class="method-heading">
|
1467
|
-
<a href="#M000032" class="method-signature">
|
1468
|
-
<span class="method-name">get_token</span><span class="method-args">(type, page_titles)</span>
|
1469
|
-
</a>
|
1470
|
-
</div>
|
1471
|
-
|
1472
|
-
<div class="method-description">
|
1473
|
-
<p>
|
1474
|
-
Fetch token (type ‘<a href="Gateway.html#M000016">delete</a>’,
|
1475
|
-
‘<a href="Gateway.html#M000014">edit</a>’, ‘<a
|
1476
|
-
href="Gateway.html#M000025">import</a>’, ‘<a
|
1477
|
-
href="Gateway.html#M000015">move</a>’)
|
1478
|
-
</p>
|
1479
|
-
<p><a class="source-toggle" href="#"
|
1480
|
-
onclick="toggleCode('M000032-source');return false;">[Source]</a></p>
|
1481
|
-
<div class="method-source-code" id="M000032-source">
|
1482
|
-
<pre>
|
1483
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 503</span>
|
1484
|
-
503: <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>)
|
1485
|
-
504: <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>}
|
1486
|
-
505: <span class="ruby-identifier">res</span>, <span class="ruby-identifier">dummy</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
1487
|
-
506: <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>]
|
1488
|
-
507: <span class="ruby-identifier">raise</span> <span class="ruby-constant">Unauthorized</span>.<span class="ruby-identifier">new</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>
|
1489
|
-
508: <span class="ruby-identifier">token</span>
|
1490
|
-
509: <span class="ruby-keyword kw">end</span>
|
1491
|
-
</pre>
|
1492
|
-
</div>
|
1493
|
-
</div>
|
1494
|
-
</div>
|
1495
|
-
|
1496
|
-
<div id="method-M000033" class="method-detail">
|
1497
|
-
<a name="M000033"></a>
|
1498
|
-
|
1499
|
-
<div class="method-heading">
|
1500
|
-
<a href="#M000033" class="method-signature">
|
1501
|
-
<span class="method-name">get_undelete_token</span><span class="method-args">(page_titles)</span>
|
1502
|
-
</a>
|
1503
|
-
</div>
|
1504
|
-
|
1505
|
-
<div class="method-description">
|
1506
|
-
<p><a class="source-toggle" href="#"
|
1507
|
-
onclick="toggleCode('M000033-source');return false;">[Source]</a></p>
|
1508
|
-
<div class="method-source-code" id="M000033-source">
|
1509
|
-
<pre>
|
1510
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 511</span>
|
1511
|
-
511: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_undelete_token</span>(<span class="ruby-identifier">page_titles</span>)
|
1512
|
-
512: <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>}
|
1513
|
-
513: <span class="ruby-identifier">res</span>, <span class="ruby-identifier">dummy</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
1514
|
-
514: <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>]
|
1515
|
-
515: <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>]
|
1516
|
-
516: <span class="ruby-identifier">raise</span> <span class="ruby-constant">Unauthorized</span>.<span class="ruby-identifier">new</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>
|
1517
|
-
517: <span class="ruby-identifier">token</span>
|
1518
|
-
518: <span class="ruby-keyword kw">else</span>
|
1519
|
-
519: <span class="ruby-keyword kw">nil</span>
|
1520
|
-
520: <span class="ruby-keyword kw">end</span>
|
1521
|
-
521: <span class="ruby-keyword kw">end</span>
|
1522
|
-
</pre>
|
1523
|
-
</div>
|
1524
|
-
</div>
|
1525
|
-
</div>
|
1526
|
-
|
1527
|
-
<div id="method-M000034" class="method-detail">
|
1528
|
-
<a name="M000034"></a>
|
1529
|
-
|
1530
|
-
<div class="method-heading">
|
1531
|
-
<a href="#M000034" class="method-signature">
|
1532
|
-
<span class="method-name">get_userrights_token</span><span class="method-args">(user)</span>
|
1533
|
-
</a>
|
1534
|
-
</div>
|
1535
|
-
|
1536
|
-
<div class="method-description">
|
1537
|
-
<p>
|
1538
|
-
User rights management (aka group assignment)
|
1539
|
-
</p>
|
1540
|
-
<p><a class="source-toggle" href="#"
|
1541
|
-
onclick="toggleCode('M000034-source');return false;">[Source]</a></p>
|
1542
|
-
<div class="method-source-code" id="M000034-source">
|
1543
|
-
<pre>
|
1544
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 524</span>
|
1545
|
-
524: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_userrights_token</span>(<span class="ruby-identifier">user</span>)
|
1546
|
-
525: <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">'users'</span>, <span class="ruby-value str">'ustoken'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'userrights'</span>, <span class="ruby-value str">'ususers'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">user</span>}
|
1547
|
-
526: <span class="ruby-identifier">res</span>, <span class="ruby-identifier">dummy</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
1548
|
-
527: <span class="ruby-identifier">token</span> = <span class="ruby-identifier">res</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">"query/users/user"</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">"userrightstoken"</span>]
|
1549
|
-
528:
|
1550
|
-
529: <span class="ruby-ivar">@log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">"RESPONSE: #{res.to_s}"</span>)
|
1551
|
-
530: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">token</span>.<span class="ruby-identifier">nil?</span>
|
1552
|
-
531: <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/users/user"</span>].<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">"missing"</span>]
|
1553
|
-
532: <span class="ruby-identifier">raise</span> <span class="ruby-constant">APIError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'invaliduser'</span>, <span class="ruby-node">"User '#{user}' was not found (get_userrights_token)"</span>)
|
1554
|
-
533: <span class="ruby-keyword kw">else</span>
|
1555
|
-
534: <span class="ruby-identifier">raise</span> <span class="ruby-constant">Unauthorized</span>.<span class="ruby-identifier">new</span> <span class="ruby-node">"User '#{@username}' is not permitted to perform this operation: get_userrights_token"</span>
|
1556
|
-
535: <span class="ruby-keyword kw">end</span>
|
1557
|
-
536: <span class="ruby-keyword kw">end</span>
|
1558
|
-
537:
|
1559
|
-
538: <span class="ruby-identifier">token</span>
|
1560
|
-
539: <span class="ruby-keyword kw">end</span>
|
1561
|
-
</pre>
|
1562
|
-
</div>
|
1563
|
-
</div>
|
1564
|
-
</div>
|
1565
|
-
|
1566
|
-
<div id="method-M000036" class="method-detail">
|
1567
|
-
<a name="M000036"></a>
|
1568
|
-
|
1569
|
-
<div class="method-heading">
|
1570
|
-
<a href="#M000036" class="method-signature">
|
1571
|
-
<span class="method-name">make_api_request</span><span class="method-args">(form_data, continue_xpath=nil, retry_count=1)</span>
|
1572
|
-
</a>
|
1573
|
-
</div>
|
1574
|
-
|
1575
|
-
<div class="method-description">
|
1576
|
-
<p>
|
1577
|
-
Make generic request to API
|
1578
|
-
</p>
|
1579
|
-
<dl>
|
1580
|
-
<dt>form_data</dt><dd>hash or string of attributes to post
|
1581
|
-
|
1582
|
-
</dd>
|
1583
|
-
<dt>continue_xpath</dt><dd>XPath selector for query continue parameter
|
1584
|
-
|
1585
|
-
</dd>
|
1586
|
-
<dt>retry_count</dt><dd>Counter for retries
|
1587
|
-
|
1588
|
-
</dd>
|
1589
|
-
</dl>
|
1590
|
-
<p>
|
1591
|
-
Returns XML document
|
1592
|
-
</p>
|
1593
|
-
<p><a class="source-toggle" href="#"
|
1594
|
-
onclick="toggleCode('M000036-source');return false;">[Source]</a></p>
|
1595
|
-
<div class="method-source-code" id="M000036-source">
|
1596
|
-
<pre>
|
1597
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 566</span>
|
1598
|
-
566: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>, <span class="ruby-identifier">continue_xpath</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">retry_count</span>=<span class="ruby-value">1</span>)
|
1599
|
-
567: <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>
|
1600
|
-
568: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'format'</span>] = <span class="ruby-value str">'xml'</span>
|
1601
|
-
569: <span class="ruby-identifier">form_data</span>[<span class="ruby-value str">'maxlag'</span>] = <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:maxlag</span>]
|
1602
|
-
570: <span class="ruby-keyword kw">end</span>
|
1603
|
-
571: <span class="ruby-identifier">log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">"REQ: #{form_data.inspect}, #{@cookies.inspect}"</span>)
|
1604
|
-
572: <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>
|
1605
|
-
573: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">response</span>.<span class="ruby-identifier">code</span> <span class="ruby-operator">==</span> <span class="ruby-value">503</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">retry_count</span> <span class="ruby-operator"><</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:retry_count</span>]
|
1606
|
-
574: <span class="ruby-identifier">log</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-node">"503 Service Unavailable: #{response.body}. Retry in #{@options[:retry_delay]} seconds."</span>)
|
1607
|
-
575: <span class="ruby-identifier">sleep</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:retry_delay</span>]
|
1608
|
-
576: <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>, <span class="ruby-identifier">continue_xpath</span>, <span class="ruby-identifier">retry_count</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)
|
1609
|
-
577: <span class="ruby-keyword kw">end</span>
|
1610
|
-
578: <span class="ruby-comment cmt"># Check response for errors and return XML</span>
|
1611
|
-
579: <span class="ruby-identifier">raise</span> <span class="ruby-constant">MediaWiki</span><span class="ruby-operator">::</span><span class="ruby-constant">Exception</span>.<span class="ruby-identifier">new</span> <span class="ruby-node">"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>
|
1612
|
-
580: <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>)
|
1613
|
-
581: <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>)
|
1614
|
-
582: <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>]
|
1615
|
-
583: <span class="ruby-ivar">@cookies</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-identifier">response</span>.<span class="ruby-identifier">cookies</span>)
|
1616
|
-
584: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">login_result</span>
|
1617
|
-
585: <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>
|
1618
|
-
586: <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>]))
|
1619
|
-
587: <span class="ruby-keyword kw">else</span> <span class="ruby-identifier">raise</span> <span class="ruby-constant">Unauthorized</span>.<span class="ruby-identifier">new</span> <span class="ruby-value str">"Login failed: "</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">login_result</span>
|
1620
|
-
588: <span class="ruby-keyword kw">end</span>
|
1621
|
-
589: <span class="ruby-keyword kw">end</span>
|
1622
|
-
590: <span class="ruby-identifier">continue</span> = (<span class="ruby-identifier">continue_xpath</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">elements</span>[<span class="ruby-value str">'query-continue'</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">first</span>(<span class="ruby-identifier">doc</span>, <span class="ruby-identifier">continue_xpath</span>).<span class="ruby-identifier">value</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
|
1623
|
-
591: <span class="ruby-keyword kw">return</span> [<span class="ruby-identifier">doc</span>, <span class="ruby-identifier">continue</span>]
|
1624
|
-
592: <span class="ruby-keyword kw">end</span>
|
1625
|
-
593: <span class="ruby-keyword kw">end</span>
|
1626
|
-
</pre>
|
1627
|
-
</div>
|
1628
|
-
</div>
|
1629
|
-
</div>
|
1630
|
-
|
1631
|
-
<div id="method-M000035" class="method-detail">
|
1632
|
-
<a name="M000035"></a>
|
1633
|
-
|
1634
|
-
<div class="method-heading">
|
1635
|
-
<a href="#M000035" class="method-signature">
|
1636
|
-
<span class="method-name">userrights</span><span class="method-args">(user, token, groups_to_add, groups_to_remove, reason)</span>
|
1637
|
-
</a>
|
1638
|
-
</div>
|
1639
|
-
|
1640
|
-
<div class="method-description">
|
1641
|
-
<p><a class="source-toggle" href="#"
|
1642
|
-
onclick="toggleCode('M000035-source');return false;">[Source]</a></p>
|
1643
|
-
<div class="method-source-code" id="M000035-source">
|
1644
|
-
<pre>
|
1645
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 541</span>
|
1646
|
-
541: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">userrights</span>(<span class="ruby-identifier">user</span>, <span class="ruby-identifier">token</span>, <span class="ruby-identifier">groups_to_add</span>, <span class="ruby-identifier">groups_to_remove</span>, <span class="ruby-identifier">reason</span>)
|
1647
|
-
542: <span class="ruby-comment cmt"># groups_to_add and groups_to_remove can be a string or an array. Turn them into MediaWiki's pipe-delimited list format.</span>
|
1648
|
-
543: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">groups_to_add</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Array</span>
|
1649
|
-
544: <span class="ruby-identifier">groups_to_add</span> = <span class="ruby-identifier">groups_to_add</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">'|'</span>)
|
1650
|
-
545: <span class="ruby-keyword kw">end</span>
|
1651
|
-
546: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">groups_to_remove</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Array</span>
|
1652
|
-
547: <span class="ruby-identifier">groups_to_remove</span> = <span class="ruby-identifier">groups_to_remove</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">'|'</span>)
|
1653
|
-
548: <span class="ruby-keyword kw">end</span>
|
1654
|
-
549:
|
1655
|
-
550: <span class="ruby-identifier">form_data</span> = {<span class="ruby-value str">'action'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'userrights'</span>, <span class="ruby-value str">'user'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">user</span>, <span class="ruby-value str">'token'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">token</span>,
|
1656
|
-
551: <span class="ruby-value str">'add'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">groups_to_add</span>,
|
1657
|
-
552: <span class="ruby-value str">'remove'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">groups_to_remove</span>,
|
1658
|
-
553: <span class="ruby-value str">'reason'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">reason</span>
|
1659
|
-
554: }
|
1660
|
-
555: <span class="ruby-identifier">res</span>, <span class="ruby-identifier">dummy</span> = <span class="ruby-identifier">make_api_request</span>(<span class="ruby-identifier">form_data</span>)
|
1661
|
-
556: <span class="ruby-identifier">res</span>
|
1662
|
-
557: <span class="ruby-keyword kw">end</span>
|
1663
|
-
</pre>
|
1664
|
-
</div>
|
1665
|
-
</div>
|
1666
|
-
</div>
|
1667
|
-
|
1668
|
-
<div id="method-M000038" class="method-detail">
|
1669
|
-
<a name="M000038"></a>
|
1670
|
-
|
1671
|
-
<div class="method-heading">
|
1672
|
-
<a href="#M000038" class="method-signature">
|
1673
|
-
<span class="method-name">valid_page?</span><span class="method-args">(page)</span>
|
1674
|
-
</a>
|
1675
|
-
</div>
|
1676
|
-
|
1677
|
-
<div class="method-description">
|
1678
|
-
<p><a class="source-toggle" href="#"
|
1679
|
-
onclick="toggleCode('M000038-source');return false;">[Source]</a></p>
|
1680
|
-
<div class="method-source-code" id="M000038-source">
|
1681
|
-
<pre>
|
1682
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 617</span>
|
1683
|
-
617: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">valid_page?</span>(<span class="ruby-identifier">page</span>)
|
1684
|
-
618: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">page</span>
|
1685
|
-
619: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">page</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">"missing"</span>]
|
1686
|
-
620: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">page</span>.<span class="ruby-identifier">attributes</span>[<span class="ruby-value str">"invalid"</span>]
|
1687
|
-
621: <span class="ruby-identifier">warning</span>(<span class="ruby-node">"Invalid title '#{page.attributes["title"]}'"</span>)
|
1688
|
-
622: <span class="ruby-keyword kw">else</span>
|
1689
|
-
623: <span class="ruby-keyword kw">true</span>
|
1690
|
-
624: <span class="ruby-keyword kw">end</span>
|
1691
|
-
625: <span class="ruby-keyword kw">end</span>
|
1692
|
-
</pre>
|
1693
|
-
</div>
|
1694
|
-
</div>
|
1695
|
-
</div>
|
1696
|
-
|
1697
|
-
<div id="method-M000039" class="method-detail">
|
1698
|
-
<a name="M000039"></a>
|
1699
|
-
|
1700
|
-
<div class="method-heading">
|
1701
|
-
<a href="#M000039" class="method-signature">
|
1702
|
-
<span class="method-name">warning</span><span class="method-args">(msg)</span>
|
1703
|
-
</a>
|
1704
|
-
</div>
|
1705
|
-
|
1706
|
-
<div class="method-description">
|
1707
|
-
<p><a class="source-toggle" href="#"
|
1708
|
-
onclick="toggleCode('M000039-source');return false;">[Source]</a></p>
|
1709
|
-
<div class="method-source-code" id="M000039-source">
|
1710
|
-
<pre>
|
1711
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line 627</span>
|
1712
|
-
627: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">warning</span>(<span class="ruby-identifier">msg</span>)
|
1713
|
-
628: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@options</span>[<span class="ruby-identifier">:ignorewarnings</span>]
|
1714
|
-
629: <span class="ruby-identifier">log</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-identifier">msg</span>)
|
1715
|
-
630: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
|
1716
|
-
631: <span class="ruby-keyword kw">else</span>
|
1717
|
-
632: <span class="ruby-identifier">raise</span> <span class="ruby-constant">APIError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'warning'</span>, <span class="ruby-identifier">msg</span>)
|
1718
|
-
633: <span class="ruby-keyword kw">end</span>
|
1719
|
-
634: <span class="ruby-keyword kw">end</span>
|
1720
|
-
</pre>
|
1721
|
-
</div>
|
1722
|
-
</div>
|
1723
|
-
</div>
|
1724
|
-
|
1725
|
-
|
1726
|
-
</div>
|
1727
|
-
|
1728
|
-
|
1729
|
-
</div>
|
1730
|
-
|
1731
|
-
|
1732
|
-
<div id="validator-badges">
|
1733
|
-
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
1734
|
-
</div>
|
1735
|
-
|
1736
|
-
</body>
|
1737
|
-
</html>
|