mediawiki-gateway 0.3.8 → 0.4.1
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/doc/classes/MediaWiki.html +8 -1
- data/doc/classes/MediaWiki/APIError.html +186 -0
- data/doc/classes/MediaWiki/Config.html +12 -12
- data/doc/classes/MediaWiki/Exception.html +122 -0
- data/doc/classes/MediaWiki/Gateway.html +740 -530
- data/doc/classes/MediaWiki/Unauthorized.html +120 -0
- data/doc/created.rid +1 -1
- data/doc/files/README.html +12 -3
- data/doc/files/lib/media_wiki/exception_rb.html +101 -0
- data/doc/files/lib/media_wiki/gateway_rb.html +2 -1
- data/doc/files/lib/media_wiki/utils_rb.html +1 -1
- data/doc/fr_class_index.html +3 -0
- data/doc/fr_file_index.html +1 -0
- data/doc/fr_method_index.html +32 -26
- data/lib/media_wiki.rb +2 -1
- data/lib/media_wiki/exception.rb +22 -0
- data/lib/media_wiki/gateway.rb +15 -14
- data/lib/media_wiki/utils.rb +1 -3
- data/mediawiki-gateway.gemspec +7 -2
- data/spec/gateway_spec.rb +11 -11
- data/spec/spec_helper.rb +4 -6
- data/spec/utils_spec.rb +4 -0
- metadata +10 -5
data/doc/classes/MediaWiki.html
CHANGED
@@ -58,6 +58,10 @@
|
|
58
58
|
<a href="../files/lib/media_wiki/config_rb.html">
|
59
59
|
lib/media_wiki/config.rb
|
60
60
|
</a>
|
61
|
+
<br />
|
62
|
+
<a href="../files/lib/media_wiki/exception_rb.html">
|
63
|
+
lib/media_wiki/exception.rb
|
64
|
+
</a>
|
61
65
|
<br />
|
62
66
|
<a href="../files/lib/media_wiki/utils_rb.html">
|
63
67
|
lib/media_wiki/utils.rb
|
@@ -108,8 +112,11 @@
|
|
108
112
|
<div id="class-list">
|
109
113
|
<h3 class="section-bar">Classes and Modules</h3>
|
110
114
|
|
111
|
-
Class <a href="MediaWiki/
|
115
|
+
Class <a href="MediaWiki/APIError.html" class="link">MediaWiki::APIError</a><br />
|
116
|
+
Class <a href="MediaWiki/Config.html" class="link">MediaWiki::Config</a><br />
|
117
|
+
Class <a href="MediaWiki/Exception.html" class="link">MediaWiki::Exception</a><br />
|
112
118
|
Class <a href="MediaWiki/Gateway.html" class="link">MediaWiki::Gateway</a><br />
|
119
|
+
Class <a href="MediaWiki/Unauthorized.html" class="link">MediaWiki::Unauthorized</a><br />
|
113
120
|
|
114
121
|
</div>
|
115
122
|
|
@@ -0,0 +1,186 @@
|
|
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::APIError</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::APIError</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
|
+
MediaWiki::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
|
+
Wrapper for errors returned by <a href="../MediaWiki.html">MediaWiki</a>
|
86
|
+
API. Possible codes are defined in <a
|
87
|
+
href="http://www.mediawiki.org/wiki/API:Errors_and_warnings">www.mediawiki.org/wiki/API:Errors_and_warnings</a>.
|
88
|
+
</p>
|
89
|
+
<p>
|
90
|
+
Warnings also throw errors with code ‘warning’, unless <a
|
91
|
+
href="Gateway.html#M000008">MediaWiki::Gateway#new</a> was called with
|
92
|
+
:ignorewarnings.
|
93
|
+
</p>
|
94
|
+
|
95
|
+
</div>
|
96
|
+
|
97
|
+
|
98
|
+
</div>
|
99
|
+
|
100
|
+
<div id="method-list">
|
101
|
+
<h3 class="section-bar">Methods</h3>
|
102
|
+
|
103
|
+
<div class="name-list">
|
104
|
+
<a href="#M000042">new</a>
|
105
|
+
</div>
|
106
|
+
</div>
|
107
|
+
|
108
|
+
</div>
|
109
|
+
|
110
|
+
|
111
|
+
<!-- if includes -->
|
112
|
+
|
113
|
+
<div id="section">
|
114
|
+
|
115
|
+
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
<div id="attribute-list">
|
120
|
+
<h3 class="section-bar">Attributes</h3>
|
121
|
+
|
122
|
+
<div class="name-list">
|
123
|
+
<table>
|
124
|
+
<tr class="top-aligned-row context-row">
|
125
|
+
<td class="context-item-name">code</td>
|
126
|
+
<td class="context-item-value"> [R] </td>
|
127
|
+
<td class="context-item-desc"></td>
|
128
|
+
</tr>
|
129
|
+
<tr class="top-aligned-row context-row">
|
130
|
+
<td class="context-item-name">info</td>
|
131
|
+
<td class="context-item-value"> [R] </td>
|
132
|
+
<td class="context-item-desc"></td>
|
133
|
+
</tr>
|
134
|
+
<tr class="top-aligned-row context-row">
|
135
|
+
<td class="context-item-name">message</td>
|
136
|
+
<td class="context-item-value"> [R] </td>
|
137
|
+
<td class="context-item-desc"></td>
|
138
|
+
</tr>
|
139
|
+
</table>
|
140
|
+
</div>
|
141
|
+
</div>
|
142
|
+
|
143
|
+
|
144
|
+
|
145
|
+
<!-- if method_list -->
|
146
|
+
<div id="methods">
|
147
|
+
<h3 class="section-bar">Public Class methods</h3>
|
148
|
+
|
149
|
+
<div id="method-M000042" class="method-detail">
|
150
|
+
<a name="M000042"></a>
|
151
|
+
|
152
|
+
<div class="method-heading">
|
153
|
+
<a href="#M000042" class="method-signature">
|
154
|
+
<span class="method-name">new</span><span class="method-args">(code, info)</span>
|
155
|
+
</a>
|
156
|
+
</div>
|
157
|
+
|
158
|
+
<div class="method-description">
|
159
|
+
<p><a class="source-toggle" href="#"
|
160
|
+
onclick="toggleCode('M000042-source');return false;">[Source]</a></p>
|
161
|
+
<div class="method-source-code" id="M000042-source">
|
162
|
+
<pre>
|
163
|
+
<span class="ruby-comment cmt"># File lib/media_wiki/exception.rb, line 12</span>
|
164
|
+
12: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">code</span>, <span class="ruby-identifier">info</span>)
|
165
|
+
13: <span class="ruby-ivar">@code</span> = <span class="ruby-identifier">code</span>
|
166
|
+
14: <span class="ruby-ivar">@info</span> = <span class="ruby-identifier">info</span>
|
167
|
+
15: <span class="ruby-ivar">@message</span> = <span class="ruby-node">"API error: code '#{code}', info '#{info}'"</span>
|
168
|
+
16: <span class="ruby-keyword kw">end</span>
|
169
|
+
</pre>
|
170
|
+
</div>
|
171
|
+
</div>
|
172
|
+
</div>
|
173
|
+
|
174
|
+
|
175
|
+
</div>
|
176
|
+
|
177
|
+
|
178
|
+
</div>
|
179
|
+
|
180
|
+
|
181
|
+
<div id="validator-badges">
|
182
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
183
|
+
</div>
|
184
|
+
|
185
|
+
</body>
|
186
|
+
</html>
|
@@ -86,8 +86,8 @@
|
|
86
86
|
<h3 class="section-bar">Methods</h3>
|
87
87
|
|
88
88
|
<div class="name-list">
|
89
|
-
<a href="#
|
90
|
-
<a href="#
|
89
|
+
<a href="#M000041">abort</a>
|
90
|
+
<a href="#M000040">new</a>
|
91
91
|
</div>
|
92
92
|
</div>
|
93
93
|
|
@@ -157,19 +157,19 @@
|
|
157
157
|
<div id="methods">
|
158
158
|
<h3 class="section-bar">Public Class methods</h3>
|
159
159
|
|
160
|
-
<div id="method-
|
161
|
-
<a name="
|
160
|
+
<div id="method-M000040" class="method-detail">
|
161
|
+
<a name="M000040"></a>
|
162
162
|
|
163
163
|
<div class="method-heading">
|
164
|
-
<a href="#
|
164
|
+
<a href="#M000040" class="method-signature">
|
165
165
|
<span class="method-name">new</span><span class="method-args">(args, type = "read")</span>
|
166
166
|
</a>
|
167
167
|
</div>
|
168
168
|
|
169
169
|
<div class="method-description">
|
170
170
|
<p><a class="source-toggle" href="#"
|
171
|
-
onclick="toggleCode('
|
172
|
-
<div class="method-source-code" id="
|
171
|
+
onclick="toggleCode('M000040-source');return false;">[Source]</a></p>
|
172
|
+
<div class="method-source-code" id="M000040-source">
|
173
173
|
<pre>
|
174
174
|
<span class="ruby-comment cmt"># File lib/media_wiki/config.rb, line 10</span>
|
175
175
|
10: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">args</span>, <span class="ruby-identifier">type</span> = <span class="ruby-value str">"read"</span>)
|
@@ -230,19 +230,19 @@
|
|
230
230
|
|
231
231
|
<h3 class="section-bar">Public Instance methods</h3>
|
232
232
|
|
233
|
-
<div id="method-
|
234
|
-
<a name="
|
233
|
+
<div id="method-M000041" class="method-detail">
|
234
|
+
<a name="M000041"></a>
|
235
235
|
|
236
236
|
<div class="method-heading">
|
237
|
-
<a href="#
|
237
|
+
<a href="#M000041" class="method-signature">
|
238
238
|
<span class="method-name">abort</span><span class="method-args">(error)</span>
|
239
239
|
</a>
|
240
240
|
</div>
|
241
241
|
|
242
242
|
<div class="method-description">
|
243
243
|
<p><a class="source-toggle" href="#"
|
244
|
-
onclick="toggleCode('
|
245
|
-
<div class="method-source-code" id="
|
244
|
+
onclick="toggleCode('M000041-source');return false;">[Source]</a></p>
|
245
|
+
<div class="method-source-code" id="M000041-source">
|
246
246
|
<pre>
|
247
247
|
<span class="ruby-comment cmt"># File lib/media_wiki/config.rb, line 62</span>
|
248
248
|
62: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">abort</span>(<span class="ruby-identifier">error</span>)
|
@@ -0,0 +1,122 @@
|
|
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>
|
@@ -86,33 +86,38 @@
|
|
86
86
|
<h3 class="section-bar">Methods</h3>
|
87
87
|
|
88
88
|
<div class="name-list">
|
89
|
-
<a href="#
|
90
|
-
<a href="#
|
91
|
-
<a href="#
|
92
|
-
<a href="#
|
93
|
-
<a href="#
|
94
|
-
<a href="#
|
95
|
-
<a href="#
|
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
96
|
<a href="#M000010">get</a>
|
97
|
-
<a href="#
|
98
|
-
<a href="#
|
99
|
-
<a href="#
|
100
|
-
<a href="#
|
101
|
-
<a href="#
|
102
|
-
<a href="#
|
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>
|
103
104
|
<a href="#M000009">login</a>
|
104
|
-
<a href="#
|
105
|
-
<a href="#
|
106
|
-
<a href="#
|
105
|
+
<a href="#M000036">make_api_request</a>
|
106
|
+
<a href="#M000015">move</a>
|
107
|
+
<a href="#M000027">namespaces_by_prefix</a>
|
107
108
|
<a href="#M000008">new</a>
|
108
|
-
<a href="#
|
109
|
-
<a href="#
|
110
|
-
<a href="#
|
111
|
-
<a href="#
|
112
|
-
<a href="#
|
113
|
-
<a href="#
|
114
|
-
<a href="#
|
115
|
-
<a href="#
|
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>
|
116
121
|
</div>
|
117
122
|
</div>
|
118
123
|
|
@@ -137,6 +142,11 @@
|
|
137
142
|
<td class="context-item-value"> [R] </td>
|
138
143
|
<td class="context-item-desc"></td>
|
139
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>
|
140
150
|
<tr class="top-aligned-row context-row">
|
141
151
|
<td class="context-item-name">log</td>
|
142
152
|
<td class="context-item-value"> [R] </td>
|
@@ -180,12 +190,12 @@ href="http://en.wikipedia.org/w/api.php">en.wikipedia.org/w/api.php</a>")
|
|
180
190
|
Options:
|
181
191
|
</p>
|
182
192
|
<dl>
|
183
|
-
<dt>:ignorewarnings</dt><dd>Log API warnings and invalid page titles, instead
|
184
|
-
|
193
|
+
<dt>:ignorewarnings</dt><dd>Log API warnings and invalid page titles, instead throwing <a
|
194
|
+
href="APIError.html">MediaWiki::APIError</a>
|
185
195
|
|
186
196
|
</dd>
|
187
197
|
<dt>:limit</dt><dd>Maximum number of results returned per <a
|
188
|
-
href="Gateway.html#
|
198
|
+
href="Gateway.html#M000020">search</a> (see <a
|
189
199
|
href="http://www.mediawiki.org/wiki/API:Query_-_Lists#Limits">www.mediawiki.org/wiki/API:Query_-_Lists#Limits</a>),
|
190
200
|
defaults to the <a href="../MediaWiki.html">MediaWiki</a> default of 500.
|
191
201
|
|
@@ -213,22 +223,22 @@ returns 503 Service Unavailable, defaults to 10 seconds.
|
|
213
223
|
onclick="toggleCode('M000008-source');return false;">[Source]</a></p>
|
214
224
|
<div class="method-source-code" id="M000008-source">
|
215
225
|
<pre>
|
216
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
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>
|
232
242
|
</pre>
|
233
243
|
</div>
|
234
244
|
</div>
|
@@ -236,18 +246,18 @@ returns 503 Service Unavailable, defaults to 10 seconds.
|
|
236
246
|
|
237
247
|
<h3 class="section-bar">Public Instance methods</h3>
|
238
248
|
|
239
|
-
<div id="method-
|
240
|
-
<a name="
|
249
|
+
<div id="method-M000019" class="method-detail">
|
250
|
+
<a name="M000019"></a>
|
241
251
|
|
242
252
|
<div class="method-heading">
|
243
|
-
<a href="#
|
253
|
+
<a href="#M000019" class="method-signature">
|
244
254
|
<span class="method-name">backlinks</span><span class="method-args">(title, filter = "all")</span>
|
245
255
|
</a>
|
246
256
|
</div>
|
247
257
|
|
248
258
|
<div class="method-description">
|
249
259
|
<p>
|
250
|
-
Get a <a href="Gateway.html#
|
260
|
+
Get a <a href="Gateway.html#M000018">list</a> of pages that link to a
|
251
261
|
target page
|
252
262
|
</p>
|
253
263
|
<dl>
|
@@ -263,36 +273,36 @@ target page
|
|
263
273
|
Returns array of page titles (empty if no matches)
|
264
274
|
</p>
|
265
275
|
<p><a class="source-toggle" href="#"
|
266
|
-
onclick="toggleCode('
|
267
|
-
<div class="method-source-code" id="
|
276
|
+
onclick="toggleCode('M000019-source');return false;">[Source]</a></p>
|
277
|
+
<div class="method-source-code" id="M000019-source">
|
268
278
|
<pre>
|
269
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
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>
|
286
296
|
</pre>
|
287
297
|
</div>
|
288
298
|
</div>
|
289
299
|
</div>
|
290
300
|
|
291
|
-
<div id="method-
|
292
|
-
<a name="
|
301
|
+
<div id="method-M000013" class="method-detail">
|
302
|
+
<a name="M000013"></a>
|
293
303
|
|
294
304
|
<div class="method-heading">
|
295
|
-
<a href="#
|
305
|
+
<a href="#M000013" class="method-signature">
|
296
306
|
<span class="method-name">create</span><span class="method-args">(title, content, options={})</span>
|
297
307
|
</a>
|
298
308
|
</div>
|
@@ -303,7 +313,7 @@ Create a <a href="Gateway.html#M000008">new</a> page, or overwrite an
|
|
303
313
|
existing one
|
304
314
|
</p>
|
305
315
|
<dl>
|
306
|
-
<dt>title</dt><dd>Page title to <a href="Gateway.html#
|
316
|
+
<dt>title</dt><dd>Page title to <a href="Gateway.html#M000013">create</a> or overwrite,
|
307
317
|
string
|
308
318
|
|
309
319
|
</dd>
|
@@ -324,32 +334,32 @@ Options:
|
|
324
334
|
<li>[:summary] Edit summary for history, string
|
325
335
|
|
326
336
|
</li>
|
327
|
-
<li>[:token] Use this existing <a href="Gateway.html#
|
337
|
+
<li>[:token] Use this existing <a href="Gateway.html#M000014">edit</a> token
|
328
338
|
instead requesting a <a href="Gateway.html#M000008">new</a> one (useful for
|
329
339
|
bulk loads)
|
330
340
|
|
331
341
|
</li>
|
332
342
|
</ul>
|
333
343
|
<p><a class="source-toggle" href="#"
|
334
|
-
onclick="toggleCode('
|
335
|
-
<div class="method-source-code" id="
|
344
|
+
onclick="toggleCode('M000013-source');return false;">[Source]</a></p>
|
345
|
+
<div class="method-source-code" id="M000013-source">
|
336
346
|
<pre>
|
337
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
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>
|
343
353
|
</pre>
|
344
354
|
</div>
|
345
355
|
</div>
|
346
356
|
</div>
|
347
357
|
|
348
|
-
<div id="method-
|
349
|
-
<a name="
|
358
|
+
<div id="method-M000016" class="method-detail">
|
359
|
+
<a name="M000016"></a>
|
350
360
|
|
351
361
|
<div class="method-heading">
|
352
|
-
<a href="#
|
362
|
+
<a href="#M000016" class="method-signature">
|
353
363
|
<span class="method-name">delete</span><span class="method-args">(title)</span>
|
354
364
|
</a>
|
355
365
|
</div>
|
@@ -360,29 +370,29 @@ Delete one page. (<a href="../MediaWiki.html">MediaWiki</a> API does not
|
|
360
370
|
support deleting multiple pages at a time.)
|
361
371
|
</p>
|
362
372
|
<dl>
|
363
|
-
<dt>title</dt><dd>Title of page to <a href="Gateway.html#
|
373
|
+
<dt>title</dt><dd>Title of page to <a href="Gateway.html#M000016">delete</a>
|
364
374
|
|
365
375
|
</dd>
|
366
376
|
</dl>
|
367
377
|
<p><a class="source-toggle" href="#"
|
368
|
-
onclick="toggleCode('
|
369
|
-
<div class="method-source-code" id="
|
378
|
+
onclick="toggleCode('M000016-source');return false;">[Source]</a></p>
|
379
|
+
<div class="method-source-code" id="M000016-source">
|
370
380
|
<pre>
|
371
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
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>
|
376
386
|
</pre>
|
377
387
|
</div>
|
378
388
|
</div>
|
379
389
|
</div>
|
380
390
|
|
381
|
-
<div id="method-
|
382
|
-
<a name="
|
391
|
+
<div id="method-M000024" class="method-detail">
|
392
|
+
<a name="M000024"></a>
|
383
393
|
|
384
394
|
<div class="method-heading">
|
385
|
-
<a href="#
|
395
|
+
<a href="#M000024" class="method-signature">
|
386
396
|
<span class="method-name">download</span><span class="method-args">(file_name, options={})</span>
|
387
397
|
</a>
|
388
398
|
</div>
|
@@ -390,36 +400,36 @@ support deleting multiple pages at a time.)
|
|
390
400
|
<div class="method-description">
|
391
401
|
<p>
|
392
402
|
Download <em>file_name</em>. Returns file contents. All options are passed
|
393
|
-
to <a href="Gateway.html#
|
403
|
+
to <a href="Gateway.html#M000023">image_info</a> however
|
394
404
|
options[‘iiprop’] is forced to url. You can still set other
|
395
405
|
options to control what file you want to <a
|
396
|
-
href="Gateway.html#
|
406
|
+
href="Gateway.html#M000024">download</a>.
|
397
407
|
</p>
|
398
408
|
<p><a class="source-toggle" href="#"
|
399
|
-
onclick="toggleCode('
|
400
|
-
<div class="method-source-code" id="
|
409
|
+
onclick="toggleCode('M000024-source');return false;">[Source]</a></p>
|
410
|
+
<div class="method-source-code" id="M000024-source">
|
401
411
|
<pre>
|
402
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
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>
|
413
423
|
</pre>
|
414
424
|
</div>
|
415
425
|
</div>
|
416
426
|
</div>
|
417
427
|
|
418
|
-
<div id="method-
|
419
|
-
<a name="
|
428
|
+
<div id="method-M000014" class="method-detail">
|
429
|
+
<a name="M000014"></a>
|
420
430
|
|
421
431
|
<div class="method-heading">
|
422
|
-
<a href="#
|
432
|
+
<a href="#M000014" class="method-signature">
|
423
433
|
<span class="method-name">edit</span><span class="method-args">(title, content, options={})</span>
|
424
434
|
</a>
|
425
435
|
</div>
|
@@ -429,28 +439,28 @@ href="Gateway.html#M000023">download</a>.
|
|
429
439
|
Edit page
|
430
440
|
</p>
|
431
441
|
<p>
|
432
|
-
Same options as <a href="Gateway.html#
|
442
|
+
Same options as <a href="Gateway.html#M000013">create</a>, but always
|
433
443
|
overwrites existing pages (and creates them if they don‘t exist
|
434
444
|
already).
|
435
445
|
</p>
|
436
446
|
<p><a class="source-toggle" href="#"
|
437
|
-
onclick="toggleCode('
|
438
|
-
<div class="method-source-code" id="
|
447
|
+
onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
|
448
|
+
<div class="method-source-code" id="M000014-source">
|
439
449
|
<pre>
|
440
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
441
|
-
|
442
|
-
|
443
|
-
|
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>
|
444
454
|
</pre>
|
445
455
|
</div>
|
446
456
|
</div>
|
447
457
|
</div>
|
448
458
|
|
449
|
-
<div id="method-
|
450
|
-
<a name="
|
459
|
+
<div id="method-M000026" class="method-detail">
|
460
|
+
<a name="M000026"></a>
|
451
461
|
|
452
462
|
<div class="method-heading">
|
453
|
-
<a href="#
|
463
|
+
<a href="#M000026" class="method-signature">
|
454
464
|
<span class="method-name">export</span><span class="method-args">(page_titles)</span>
|
455
465
|
</a>
|
456
466
|
</div>
|
@@ -468,51 +478,51 @@ Exports a page or set of pages
|
|
468
478
|
Returns <a href="../MediaWiki.html">MediaWiki</a> XML dump
|
469
479
|
</p>
|
470
480
|
<p><a class="source-toggle" href="#"
|
471
|
-
onclick="toggleCode('
|
472
|
-
<div class="method-source-code" id="
|
481
|
+
onclick="toggleCode('M000026-source');return false;">[Source]</a></p>
|
482
|
+
<div class="method-source-code" id="M000026-source">
|
473
483
|
<pre>
|
474
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
|
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>
|
479
489
|
</pre>
|
480
490
|
</div>
|
481
491
|
</div>
|
482
492
|
</div>
|
483
493
|
|
484
|
-
<div id="method-
|
485
|
-
<a name="
|
494
|
+
<div id="method-M000028" class="method-detail">
|
495
|
+
<a name="M000028"></a>
|
486
496
|
|
487
497
|
<div class="method-heading">
|
488
|
-
<a href="#
|
498
|
+
<a href="#M000028" class="method-signature">
|
489
499
|
<span class="method-name">extensions</span><span class="method-args">()</span>
|
490
500
|
</a>
|
491
501
|
</div>
|
492
502
|
|
493
503
|
<div class="method-description">
|
494
504
|
<p>
|
495
|
-
Get a <a href="Gateway.html#
|
496
|
-
registered) <a href="Gateway.html#
|
505
|
+
Get a <a href="Gateway.html#M000018">list</a> of all installed (and
|
506
|
+
registered) <a href="Gateway.html#M000028">extensions</a>
|
497
507
|
</p>
|
498
508
|
<p>
|
499
|
-
Returns array of <a href="Gateway.html#
|
509
|
+
Returns array of <a href="Gateway.html#M000028">extensions</a> (name =>
|
500
510
|
version)
|
501
511
|
</p>
|
502
512
|
<p><a class="source-toggle" href="#"
|
503
|
-
onclick="toggleCode('
|
504
|
-
<div class="method-source-code" id="
|
513
|
+
onclick="toggleCode('M000028-source');return false;">[Source]</a></p>
|
514
|
+
<div class="method-source-code" id="M000028-source">
|
505
515
|
<pre>
|
506
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
511
|
-
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
|
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>
|
516
526
|
</pre>
|
517
527
|
</div>
|
518
528
|
</div>
|
@@ -544,24 +554,24 @@ Returns content of page as string, nil if the page does not exist.
|
|
544
554
|
onclick="toggleCode('M000010-source');return false;">[Source]</a></p>
|
545
555
|
<div class="method-source-code" id="M000010-source">
|
546
556
|
<pre>
|
547
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
|
553
|
-
|
554
|
-
|
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>
|
555
565
|
</pre>
|
556
566
|
</div>
|
557
567
|
</div>
|
558
568
|
</div>
|
559
569
|
|
560
|
-
<div id="method-
|
561
|
-
<a name="
|
570
|
+
<div id="method-M000023" class="method-detail">
|
571
|
+
<a name="M000023"></a>
|
562
572
|
|
563
573
|
<div class="method-heading">
|
564
|
-
<a href="#
|
574
|
+
<a href="#M000023" class="method-signature">
|
565
575
|
<span class="method-name">image_info</span><span class="method-args">(file_name_or_page_id, options={})</span>
|
566
576
|
</a>
|
567
577
|
</div>
|
@@ -613,49 +623,49 @@ Output:
|
|
613
623
|
"user" => "Valdas"
|
614
624
|
</pre>
|
615
625
|
<p><a class="source-toggle" href="#"
|
616
|
-
onclick="toggleCode('
|
617
|
-
<div class="method-source-code" id="
|
626
|
+
onclick="toggleCode('M000023-source');return false;">[Source]</a></p>
|
627
|
+
<div class="method-source-code" id="M000023-source">
|
618
628
|
<pre>
|
619
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
620
|
-
|
621
|
-
|
622
|
-
|
623
|
-
|
624
|
-
|
625
|
-
|
626
|
-
|
627
|
-
|
628
|
-
|
629
|
-
|
630
|
-
|
631
|
-
|
632
|
-
|
633
|
-
|
634
|
-
|
635
|
-
|
636
|
-
|
637
|
-
|
638
|
-
|
639
|
-
|
640
|
-
|
641
|
-
|
642
|
-
|
643
|
-
|
644
|
-
|
645
|
-
|
646
|
-
|
647
|
-
|
648
|
-
|
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>
|
649
659
|
</pre>
|
650
660
|
</div>
|
651
661
|
</div>
|
652
662
|
</div>
|
653
663
|
|
654
|
-
<div id="method-
|
655
|
-
<a name="
|
664
|
+
<div id="method-M000025" class="method-detail">
|
665
|
+
<a name="M000025"></a>
|
656
666
|
|
657
667
|
<div class="method-heading">
|
658
|
-
<a href="#
|
668
|
+
<a href="#M000025" class="method-signature">
|
659
669
|
<span class="method-name">import</span><span class="method-args">(xmlfile)</span>
|
660
670
|
</a>
|
661
671
|
</div>
|
@@ -671,39 +681,39 @@ Imports a <a href="../MediaWiki.html">MediaWiki</a> XML dump
|
|
671
681
|
</dl>
|
672
682
|
<p>
|
673
683
|
Returns XML array <api><<a
|
674
|
-
href="Gateway.html#
|
684
|
+
href="Gateway.html#M000025">import</a>><page/><page/>…
|
675
685
|
<page revisions="1"> (or more) means successfully imported
|
676
686
|
<page revisions="0"> means duplicate, not imported
|
677
687
|
</p>
|
678
688
|
<p><a class="source-toggle" href="#"
|
679
|
-
onclick="toggleCode('
|
680
|
-
<div class="method-source-code" id="
|
689
|
+
onclick="toggleCode('M000025-source');return false;">[Source]</a></p>
|
690
|
+
<div class="method-source-code" id="M000025-source">
|
681
691
|
<pre>
|
682
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
683
|
-
|
684
|
-
|
685
|
-
|
686
|
-
|
687
|
-
|
688
|
-
|
689
|
-
|
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>
|
690
700
|
</pre>
|
691
701
|
</div>
|
692
702
|
</div>
|
693
703
|
</div>
|
694
704
|
|
695
|
-
<div id="method-
|
696
|
-
<a name="
|
705
|
+
<div id="method-M000018" class="method-detail">
|
706
|
+
<a name="M000018"></a>
|
697
707
|
|
698
708
|
<div class="method-heading">
|
699
|
-
<a href="#
|
709
|
+
<a href="#M000018" class="method-signature">
|
700
710
|
<span class="method-name">list</span><span class="method-args">(key)</span>
|
701
711
|
</a>
|
702
712
|
</div>
|
703
713
|
|
704
714
|
<div class="method-description">
|
705
715
|
<p>
|
706
|
-
Get a <a href="Gateway.html#
|
716
|
+
Get a <a href="Gateway.html#M000018">list</a> of matching page titles in a
|
707
717
|
namespace
|
708
718
|
</p>
|
709
719
|
<dl>
|
@@ -716,28 +726,28 @@ defaults to main (namespace 0) if none given.
|
|
716
726
|
Returns array of page titles (empty if no matches)
|
717
727
|
</p>
|
718
728
|
<p><a class="source-toggle" href="#"
|
719
|
-
onclick="toggleCode('
|
720
|
-
<div class="method-source-code" id="
|
729
|
+
onclick="toggleCode('M000018-source');return false;">[Source]</a></p>
|
730
|
+
<div class="method-source-code" id="M000018-source">
|
721
731
|
<pre>
|
722
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
723
|
-
|
724
|
-
|
725
|
-
|
726
|
-
|
727
|
-
|
728
|
-
|
729
|
-
|
730
|
-
|
731
|
-
|
732
|
-
|
733
|
-
|
734
|
-
|
735
|
-
|
736
|
-
|
737
|
-
|
738
|
-
|
739
|
-
|
740
|
-
|
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>
|
741
751
|
</pre>
|
742
752
|
</div>
|
743
753
|
</div>
|
@@ -769,29 +779,30 @@ defaults to ‘local’ if not given
|
|
769
779
|
</dd>
|
770
780
|
</dl>
|
771
781
|
<p>
|
772
|
-
Throws
|
782
|
+
Throws <a href="Unauthorized.html">MediaWiki::Unauthorized</a> if <a
|
783
|
+
href="Gateway.html#M000009">login</a> fails
|
773
784
|
</p>
|
774
785
|
<p><a class="source-toggle" href="#"
|
775
786
|
onclick="toggleCode('M000009-source');return false;">[Source]</a></p>
|
776
787
|
<div class="method-source-code" id="M000009-source">
|
777
788
|
<pre>
|
778
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
779
|
-
|
780
|
-
|
781
|
-
|
782
|
-
|
783
|
-
|
784
|
-
|
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>
|
785
796
|
</pre>
|
786
797
|
</div>
|
787
798
|
</div>
|
788
799
|
</div>
|
789
800
|
|
790
|
-
<div id="method-
|
791
|
-
<a name="
|
801
|
+
<div id="method-M000015" class="method-detail">
|
802
|
+
<a name="M000015"></a>
|
792
803
|
|
793
804
|
<div class="method-heading">
|
794
|
-
<a href="#
|
805
|
+
<a href="#M000015" class="method-signature">
|
795
806
|
<span class="method-name">move</span><span class="method-args">(from, to, options={})</span>
|
796
807
|
</a>
|
797
808
|
</div>
|
@@ -821,13 +832,13 @@ Options:
|
|
821
832
|
<li>[:movetalk] Move associated talkpages
|
822
833
|
|
823
834
|
</li>
|
824
|
-
<li>[:noredirect] Do not <a href="Gateway.html#
|
835
|
+
<li>[:noredirect] Do not <a href="Gateway.html#M000013">create</a> a redirect
|
825
836
|
page from old name. Requires the ‘suppressredirect’ user right,
|
826
837
|
otherwise MW will silently ignore the option and <a
|
827
|
-
href="Gateway.html#
|
838
|
+
href="Gateway.html#M000013">create</a> the redirect anyway.
|
828
839
|
|
829
840
|
</li>
|
830
|
-
<li>[:reason] Reason for <a href="Gateway.html#
|
841
|
+
<li>[:reason] Reason for <a href="Gateway.html#M000015">move</a>
|
831
842
|
|
832
843
|
</li>
|
833
844
|
<li>[:watch] Add page and any redirect to watchlist
|
@@ -838,62 +849,62 @@ href="Gateway.html#M000012">create</a> the redirect anyway.
|
|
838
849
|
</li>
|
839
850
|
</ul>
|
840
851
|
<p><a class="source-toggle" href="#"
|
841
|
-
onclick="toggleCode('
|
842
|
-
<div class="method-source-code" id="
|
852
|
+
onclick="toggleCode('M000015-source');return false;">[Source]</a></p>
|
853
|
+
<div class="method-source-code" id="M000015-source">
|
843
854
|
<pre>
|
844
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
845
|
-
|
846
|
-
|
847
|
-
|
848
|
-
|
849
|
-
|
850
|
-
|
851
|
-
|
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>
|
852
863
|
</pre>
|
853
864
|
</div>
|
854
865
|
</div>
|
855
866
|
</div>
|
856
867
|
|
857
|
-
<div id="method-
|
858
|
-
<a name="
|
868
|
+
<div id="method-M000027" class="method-detail">
|
869
|
+
<a name="M000027"></a>
|
859
870
|
|
860
871
|
<div class="method-heading">
|
861
|
-
<a href="#
|
872
|
+
<a href="#M000027" class="method-signature">
|
862
873
|
<span class="method-name">namespaces_by_prefix</span><span class="method-args">()</span>
|
863
874
|
</a>
|
864
875
|
</div>
|
865
876
|
|
866
877
|
<div class="method-description">
|
867
878
|
<p>
|
868
|
-
Get a <a href="Gateway.html#
|
879
|
+
Get a <a href="Gateway.html#M000018">list</a> of all known namespaces
|
869
880
|
</p>
|
870
881
|
<p>
|
871
882
|
Returns array of namespaces (name => id)
|
872
883
|
</p>
|
873
884
|
<p><a class="source-toggle" href="#"
|
874
|
-
onclick="toggleCode('
|
875
|
-
<div class="method-source-code" id="
|
885
|
+
onclick="toggleCode('M000027-source');return false;">[Source]</a></p>
|
886
|
+
<div class="method-source-code" id="M000027-source">
|
876
887
|
<pre>
|
877
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
878
|
-
|
879
|
-
|
880
|
-
|
881
|
-
|
882
|
-
|
883
|
-
|
884
|
-
|
885
|
-
|
886
|
-
|
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>
|
887
898
|
</pre>
|
888
899
|
</div>
|
889
900
|
</div>
|
890
901
|
</div>
|
891
902
|
|
892
|
-
<div id="method-
|
893
|
-
<a name="
|
903
|
+
<div id="method-M000022" class="method-detail">
|
904
|
+
<a name="M000022"></a>
|
894
905
|
|
895
906
|
<div class="method-heading">
|
896
|
-
<a href="#
|
907
|
+
<a href="#M000022" class="method-signature">
|
897
908
|
<span class="method-name">redirect?</span><span class="method-args">(page_title)</span>
|
898
909
|
</a>
|
899
910
|
</div>
|
@@ -912,25 +923,25 @@ Returns true if the page is a redirect, false if it is not or the page does
|
|
912
923
|
not exist.
|
913
924
|
</p>
|
914
925
|
<p><a class="source-toggle" href="#"
|
915
|
-
onclick="toggleCode('
|
916
|
-
<div class="method-source-code" id="
|
926
|
+
onclick="toggleCode('M000022-source');return false;">[Source]</a></p>
|
927
|
+
<div class="method-source-code" id="M000022-source">
|
917
928
|
<pre>
|
918
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
919
|
-
|
920
|
-
|
921
|
-
|
922
|
-
|
923
|
-
|
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>
|
924
935
|
</pre>
|
925
936
|
</div>
|
926
937
|
</div>
|
927
938
|
</div>
|
928
939
|
|
929
|
-
<div id="method-
|
930
|
-
<a name="
|
940
|
+
<div id="method-M000012" class="method-detail">
|
941
|
+
<a name="M000012"></a>
|
931
942
|
|
932
943
|
<div class="method-heading">
|
933
|
-
<a href="#
|
944
|
+
<a href="#M000012" class="method-signature">
|
934
945
|
<span class="method-name">render</span><span class="method-args">(page_title, options = {})</span>
|
935
946
|
</a>
|
936
947
|
</div>
|
@@ -955,7 +966,7 @@ Options:
|
|
955
966
|
’/wiki/’ is assumed to be the base of a relative link
|
956
967
|
|
957
968
|
</li>
|
958
|
-
<li>[:noeditsections] strips all <a href="Gateway.html#
|
969
|
+
<li>[:noeditsections] strips all <a href="Gateway.html#M000014">edit</a>-links
|
959
970
|
if set to <tt>true</tt>
|
960
971
|
|
961
972
|
</li>
|
@@ -966,61 +977,145 @@ if set to <tt>true</tt>
|
|
966
977
|
</ul>
|
967
978
|
<p>
|
968
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.
|
969
1082
|
</p>
|
970
1083
|
<p><a class="source-toggle" href="#"
|
971
1084
|
onclick="toggleCode('M000011-source');return false;">[Source]</a></p>
|
972
1085
|
<div class="method-source-code" id="M000011-source">
|
973
1086
|
<pre>
|
974
|
-
|
975
|
-
|
976
|
-
|
977
|
-
|
978
|
-
|
979
|
-
|
980
|
-
|
981
|
-
|
982
|
-
87: <span class="ruby-identifier">rendered</span> = <span class="ruby-keyword kw">nil</span>
|
983
|
-
88: <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>]
|
984
|
-
89: <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>
|
985
|
-
90: <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>)
|
986
|
-
91: <span class="ruby-comment cmt"># OPTIMIZE: unifiy the keys in +options+ like symbolize_keys! but w/o</span>
|
987
|
-
92: <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>]
|
988
|
-
93: <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>]
|
989
|
-
94: <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>)
|
990
|
-
95: <span class="ruby-keyword kw">end</span>
|
991
|
-
96: <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>]
|
992
|
-
97: <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>)
|
993
|
-
98: <span class="ruby-keyword kw">end</span>
|
994
|
-
99: <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>]
|
995
|
-
100: <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>)
|
996
|
-
101: <span class="ruby-keyword kw">end</span>
|
997
|
-
102: <span class="ruby-keyword kw">end</span>
|
998
|
-
103: <span class="ruby-identifier">rendered</span>
|
999
|
-
104: <span class="ruby-keyword kw">end</span>
|
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>
|
1000
1095
|
</pre>
|
1001
1096
|
</div>
|
1002
1097
|
</div>
|
1003
1098
|
</div>
|
1004
1099
|
|
1005
|
-
<div id="method-
|
1006
|
-
<a name="
|
1100
|
+
<div id="method-M000020" class="method-detail">
|
1101
|
+
<a name="M000020"></a>
|
1007
1102
|
|
1008
1103
|
<div class="method-heading">
|
1009
|
-
<a href="#
|
1104
|
+
<a href="#M000020" class="method-signature">
|
1010
1105
|
<span class="method-name">search</span><span class="method-args">(key, namespaces=nil, limit=@options[:limit])</span>
|
1011
1106
|
</a>
|
1012
1107
|
</div>
|
1013
1108
|
|
1014
1109
|
<div class="method-description">
|
1015
1110
|
<p>
|
1016
|
-
Get a <a href="Gateway.html#
|
1111
|
+
Get a <a href="Gateway.html#M000018">list</a> of pages with matching
|
1017
1112
|
content in given namespaces
|
1018
1113
|
</p>
|
1019
1114
|
<dl>
|
1020
1115
|
<dt>key</dt><dd>Search key
|
1021
1116
|
|
1022
1117
|
</dd>
|
1023
|
-
<dt>namespaces</dt><dd>Array of namespace names to <a href="Gateway.html#
|
1118
|
+
<dt>namespaces</dt><dd>Array of namespace names to <a href="Gateway.html#M000020">search</a>
|
1024
1119
|
(defaults to main only)
|
1025
1120
|
|
1026
1121
|
</dd>
|
@@ -1033,42 +1128,42 @@ Foundation wikis allow only 50 for normal users)
|
|
1033
1128
|
Returns array of page titles (empty if no matches)
|
1034
1129
|
</p>
|
1035
1130
|
<p><a class="source-toggle" href="#"
|
1036
|
-
onclick="toggleCode('
|
1037
|
-
<div class="method-source-code" id="
|
1131
|
+
onclick="toggleCode('M000020-source');return false;">[Source]</a></p>
|
1132
|
+
<div class="method-source-code" id="M000020-source">
|
1038
1133
|
<pre>
|
1039
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
1040
|
-
|
1041
|
-
|
1042
|
-
|
1043
|
-
|
1044
|
-
|
1045
|
-
|
1046
|
-
|
1047
|
-
|
1048
|
-
|
1049
|
-
|
1050
|
-
|
1051
|
-
|
1052
|
-
|
1053
|
-
|
1054
|
-
|
1055
|
-
|
1056
|
-
|
1057
|
-
|
1058
|
-
|
1059
|
-
|
1060
|
-
|
1061
|
-
|
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>
|
1062
1157
|
</pre>
|
1063
1158
|
</div>
|
1064
1159
|
</div>
|
1065
1160
|
</div>
|
1066
1161
|
|
1067
|
-
<div id="method-
|
1068
|
-
<a name="
|
1162
|
+
<div id="method-M000029" class="method-detail">
|
1163
|
+
<a name="M000029"></a>
|
1069
1164
|
|
1070
1165
|
<div class="method-heading">
|
1071
|
-
<a href="#
|
1166
|
+
<a href="#M000029" class="method-signature">
|
1072
1167
|
<span class="method-name">semantic_query</span><span class="method-args">(query, params = [])</span>
|
1073
1168
|
</a>
|
1074
1169
|
</div>
|
@@ -1090,26 +1185,65 @@ Execute Semantic Mediawiki query
|
|
1090
1185
|
Returns result as an HTML string
|
1091
1186
|
</p>
|
1092
1187
|
<p><a class="source-toggle" href="#"
|
1093
|
-
onclick="toggleCode('
|
1094
|
-
<div class="method-source-code" id="
|
1188
|
+
onclick="toggleCode('M000029-source');return false;">[Source]</a></p>
|
1189
|
+
<div class="method-source-code" id="M000029-source">
|
1095
1190
|
<pre>
|
1096
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
1097
|
-
|
1098
|
-
|
1099
|
-
|
1100
|
-
|
1101
|
-
|
1102
|
-
|
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>
|
1103
1198
|
</pre>
|
1104
1199
|
</div>
|
1105
1200
|
</div>
|
1106
1201
|
</div>
|
1107
1202
|
|
1108
|
-
<div id="method-
|
1109
|
-
<a name="
|
1203
|
+
<div id="method-M000030" class="method-detail">
|
1204
|
+
<a name="M000030"></a>
|
1110
1205
|
|
1111
1206
|
<div class="method-heading">
|
1112
|
-
<a href="#
|
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">
|
1113
1247
|
<span class="method-name">undelete</span><span class="method-args">(title)</span>
|
1114
1248
|
</a>
|
1115
1249
|
</div>
|
@@ -1119,38 +1253,38 @@ Returns result as an HTML string
|
|
1119
1253
|
Undelete all revisions of one page.
|
1120
1254
|
</p>
|
1121
1255
|
<dl>
|
1122
|
-
<dt>title</dt><dd>Title of page to <a href="Gateway.html#
|
1256
|
+
<dt>title</dt><dd>Title of page to <a href="Gateway.html#M000017">undelete</a>
|
1123
1257
|
|
1124
1258
|
</dd>
|
1125
1259
|
</dl>
|
1126
1260
|
<p>
|
1127
1261
|
Returns number of revisions undeleted, or zero if nothing to <a
|
1128
|
-
href="Gateway.html#
|
1262
|
+
href="Gateway.html#M000017">undelete</a>
|
1129
1263
|
</p>
|
1130
1264
|
<p><a class="source-toggle" href="#"
|
1131
|
-
onclick="toggleCode('
|
1132
|
-
<div class="method-source-code" id="
|
1265
|
+
onclick="toggleCode('M000017-source');return false;">[Source]</a></p>
|
1266
|
+
<div class="method-source-code" id="M000017-source">
|
1133
1267
|
<pre>
|
1134
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
1135
|
-
|
1136
|
-
|
1137
|
-
|
1138
|
-
|
1139
|
-
|
1140
|
-
|
1141
|
-
|
1142
|
-
|
1143
|
-
|
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>
|
1144
1278
|
</pre>
|
1145
1279
|
</div>
|
1146
1280
|
</div>
|
1147
1281
|
</div>
|
1148
1282
|
|
1149
|
-
<div id="method-
|
1150
|
-
<a name="
|
1283
|
+
<div id="method-M000021" class="method-detail">
|
1284
|
+
<a name="M000021"></a>
|
1151
1285
|
|
1152
1286
|
<div class="method-heading">
|
1153
|
-
<a href="#
|
1287
|
+
<a href="#M000021" class="method-signature">
|
1154
1288
|
<span class="method-name">upload</span><span class="method-args">(path, options={})</span>
|
1155
1289
|
</a>
|
1156
1290
|
</div>
|
@@ -1176,7 +1310,7 @@ Requires Mediawiki 1.16+
|
|
1176
1310
|
Arguments:
|
1177
1311
|
</p>
|
1178
1312
|
<ul>
|
1179
|
-
<li>[path] Path to file to <a href="Gateway.html#
|
1313
|
+
<li>[path] Path to file to <a href="Gateway.html#M000021">upload</a>. Set to
|
1180
1314
|
nil if uploading from URL.
|
1181
1315
|
|
1182
1316
|
</li>
|
@@ -1240,43 +1374,43 @@ Examples:
|
|
1240
1374
|
mw.upload(nil, 'filename' => "RemoteFile2.jpg", 'url' => 'http://remote.com/server/file.jpg')
|
1241
1375
|
</pre>
|
1242
1376
|
<p><a class="source-toggle" href="#"
|
1243
|
-
onclick="toggleCode('
|
1244
|
-
<div class="method-source-code" id="
|
1377
|
+
onclick="toggleCode('M000021-source');return false;">[Source]</a></p>
|
1378
|
+
<div class="method-source-code" id="M000021-source">
|
1245
1379
|
<pre>
|
1246
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
1247
|
-
|
1248
|
-
|
1249
|
-
|
1250
|
-
|
1251
|
-
|
1252
|
-
|
1253
|
-
|
1254
|
-
|
1255
|
-
|
1256
|
-
|
1257
|
-
|
1258
|
-
|
1259
|
-
|
1260
|
-
|
1261
|
-
|
1262
|
-
|
1263
|
-
300:
|
1264
|
-
301: <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>
|
1265
|
-
302: <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>
|
1266
|
-
303: <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>]
|
1267
|
-
304: <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>
|
1268
|
-
305:
|
1269
|
-
306: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>.<span class="ruby-identifier">new</span>(
|
1270
|
-
307: <span class="ruby-value str">"One of the 'file', 'url' or 'sessionkey' options must be specified!"</span>
|
1271
|
-
308: ) <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>]
|
1272
|
-
309:
|
1273
|
-
310: <span class="ruby-identifier">form_data</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">merge</span>(
|
1274
|
-
311: <span class="ruby-value str">'action'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'upload'</span>,
|
1275
|
-
312: <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>])
|
1276
|
-
313: )
|
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>
|
1277
1397
|
314:
|
1278
|
-
315: <span class="ruby-identifier">
|
1279
|
-
316:
|
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>
|
1280
1414
|
</pre>
|
1281
1415
|
</div>
|
1282
1416
|
</div>
|
@@ -1284,117 +1418,156 @@ Examples:
|
|
1284
1418
|
|
1285
1419
|
<h3 class="section-bar">Private Instance methods</h3>
|
1286
1420
|
|
1287
|
-
<div id="method-
|
1288
|
-
<a name="
|
1421
|
+
<div id="method-M000037" class="method-detail">
|
1422
|
+
<a name="M000037"></a>
|
1289
1423
|
|
1290
1424
|
<div class="method-heading">
|
1291
|
-
<a href="#
|
1425
|
+
<a href="#M000037" class="method-signature">
|
1292
1426
|
<span class="method-name">get_response</span><span class="method-args">(res)</span>
|
1293
1427
|
</a>
|
1294
1428
|
</div>
|
1295
1429
|
|
1296
1430
|
<div class="method-description">
|
1297
1431
|
<p>
|
1298
|
-
Get API XML response If there are errors or warnings, raise
|
1299
|
-
Otherwise return XML root
|
1432
|
+
Get API XML response If there are errors or warnings, raise <a
|
1433
|
+
href="APIError.html">APIError</a> Otherwise return XML root
|
1300
1434
|
</p>
|
1301
1435
|
<p><a class="source-toggle" href="#"
|
1302
|
-
onclick="toggleCode('
|
1303
|
-
<div class="method-source-code" id="
|
1436
|
+
onclick="toggleCode('M000037-source');return false;">[Source]</a></p>
|
1437
|
+
<div class="method-source-code" id="M000037-source">
|
1304
1438
|
<pre>
|
1305
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
1306
|
-
|
1307
|
-
|
1308
|
-
|
1309
|
-
|
1310
|
-
|
1311
|
-
|
1312
|
-
|
1313
|
-
|
1314
|
-
|
1315
|
-
|
1316
|
-
|
1317
|
-
|
1318
|
-
|
1319
|
-
|
1320
|
-
|
1321
|
-
|
1322
|
-
|
1323
|
-
|
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>
|
1324
1458
|
</pre>
|
1325
1459
|
</div>
|
1326
1460
|
</div>
|
1327
1461
|
</div>
|
1328
1462
|
|
1329
|
-
<div id="method-
|
1330
|
-
<a name="
|
1463
|
+
<div id="method-M000032" class="method-detail">
|
1464
|
+
<a name="M000032"></a>
|
1331
1465
|
|
1332
1466
|
<div class="method-heading">
|
1333
|
-
<a href="#
|
1467
|
+
<a href="#M000032" class="method-signature">
|
1334
1468
|
<span class="method-name">get_token</span><span class="method-args">(type, page_titles)</span>
|
1335
1469
|
</a>
|
1336
1470
|
</div>
|
1337
1471
|
|
1338
1472
|
<div class="method-description">
|
1339
1473
|
<p>
|
1340
|
-
Fetch token (type ‘<a href="Gateway.html#
|
1341
|
-
‘<a href="Gateway.html#
|
1342
|
-
href="Gateway.html#
|
1343
|
-
href="Gateway.html#
|
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>’)
|
1344
1478
|
</p>
|
1345
1479
|
<p><a class="source-toggle" href="#"
|
1346
|
-
onclick="toggleCode('
|
1347
|
-
<div class="method-source-code" id="
|
1480
|
+
onclick="toggleCode('M000032-source');return false;">[Source]</a></p>
|
1481
|
+
<div class="method-source-code" id="M000032-source">
|
1348
1482
|
<pre>
|
1349
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
1350
|
-
|
1351
|
-
|
1352
|
-
|
1353
|
-
|
1354
|
-
|
1355
|
-
|
1356
|
-
|
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>
|
1357
1491
|
</pre>
|
1358
1492
|
</div>
|
1359
1493
|
</div>
|
1360
1494
|
</div>
|
1361
1495
|
|
1362
|
-
<div id="method-
|
1363
|
-
<a name="
|
1496
|
+
<div id="method-M000033" class="method-detail">
|
1497
|
+
<a name="M000033"></a>
|
1364
1498
|
|
1365
1499
|
<div class="method-heading">
|
1366
|
-
<a href="#
|
1500
|
+
<a href="#M000033" class="method-signature">
|
1367
1501
|
<span class="method-name">get_undelete_token</span><span class="method-args">(page_titles)</span>
|
1368
1502
|
</a>
|
1369
1503
|
</div>
|
1370
1504
|
|
1371
1505
|
<div class="method-description">
|
1372
1506
|
<p><a class="source-toggle" href="#"
|
1373
|
-
onclick="toggleCode('
|
1374
|
-
<div class="method-source-code" id="
|
1507
|
+
onclick="toggleCode('M000033-source');return false;">[Source]</a></p>
|
1508
|
+
<div class="method-source-code" id="M000033-source">
|
1375
1509
|
<pre>
|
1376
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
1377
|
-
|
1378
|
-
|
1379
|
-
|
1380
|
-
|
1381
|
-
|
1382
|
-
|
1383
|
-
|
1384
|
-
|
1385
|
-
|
1386
|
-
|
1387
|
-
|
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>
|
1388
1522
|
</pre>
|
1389
1523
|
</div>
|
1390
1524
|
</div>
|
1391
1525
|
</div>
|
1392
1526
|
|
1393
|
-
<div id="method-
|
1394
|
-
<a name="
|
1527
|
+
<div id="method-M000034" class="method-detail">
|
1528
|
+
<a name="M000034"></a>
|
1395
1529
|
|
1396
1530
|
<div class="method-heading">
|
1397
|
-
<a href="#
|
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">
|
1398
1571
|
<span class="method-name">make_api_request</span><span class="method-args">(form_data, continue_xpath=nil, retry_count=1)</span>
|
1399
1572
|
</a>
|
1400
1573
|
</div>
|
@@ -1418,95 +1591,132 @@ Make generic request to API
|
|
1418
1591
|
Returns XML document
|
1419
1592
|
</p>
|
1420
1593
|
<p><a class="source-toggle" href="#"
|
1421
|
-
onclick="toggleCode('
|
1422
|
-
<div class="method-source-code" id="
|
1594
|
+
onclick="toggleCode('M000036-source');return false;">[Source]</a></p>
|
1595
|
+
<div class="method-source-code" id="M000036-source">
|
1423
1596
|
<pre>
|
1424
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
1425
|
-
|
1426
|
-
|
1427
|
-
|
1428
|
-
|
1429
|
-
|
1430
|
-
|
1431
|
-
|
1432
|
-
|
1433
|
-
|
1434
|
-
|
1435
|
-
|
1436
|
-
|
1437
|
-
|
1438
|
-
|
1439
|
-
|
1440
|
-
|
1441
|
-
|
1442
|
-
|
1443
|
-
|
1444
|
-
|
1445
|
-
|
1446
|
-
|
1447
|
-
|
1448
|
-
|
1449
|
-
|
1450
|
-
|
1451
|
-
|
1452
|
-
|
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>
|
1453
1626
|
</pre>
|
1454
1627
|
</div>
|
1455
1628
|
</div>
|
1456
1629
|
</div>
|
1457
1630
|
|
1458
|
-
<div id="method-
|
1459
|
-
<a name="
|
1631
|
+
<div id="method-M000035" class="method-detail">
|
1632
|
+
<a name="M000035"></a>
|
1460
1633
|
|
1461
1634
|
<div class="method-heading">
|
1462
|
-
<a href="#
|
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">
|
1463
1673
|
<span class="method-name">valid_page?</span><span class="method-args">(page)</span>
|
1464
1674
|
</a>
|
1465
1675
|
</div>
|
1466
1676
|
|
1467
1677
|
<div class="method-description">
|
1468
1678
|
<p><a class="source-toggle" href="#"
|
1469
|
-
onclick="toggleCode('
|
1470
|
-
<div class="method-source-code" id="
|
1679
|
+
onclick="toggleCode('M000038-source');return false;">[Source]</a></p>
|
1680
|
+
<div class="method-source-code" id="M000038-source">
|
1471
1681
|
<pre>
|
1472
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
1473
|
-
|
1474
|
-
|
1475
|
-
|
1476
|
-
|
1477
|
-
|
1478
|
-
|
1479
|
-
|
1480
|
-
|
1481
|
-
|
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>
|
1482
1692
|
</pre>
|
1483
1693
|
</div>
|
1484
1694
|
</div>
|
1485
1695
|
</div>
|
1486
1696
|
|
1487
|
-
<div id="method-
|
1488
|
-
<a name="
|
1697
|
+
<div id="method-M000039" class="method-detail">
|
1698
|
+
<a name="M000039"></a>
|
1489
1699
|
|
1490
1700
|
<div class="method-heading">
|
1491
|
-
<a href="#
|
1701
|
+
<a href="#M000039" class="method-signature">
|
1492
1702
|
<span class="method-name">warning</span><span class="method-args">(msg)</span>
|
1493
1703
|
</a>
|
1494
1704
|
</div>
|
1495
1705
|
|
1496
1706
|
<div class="method-description">
|
1497
1707
|
<p><a class="source-toggle" href="#"
|
1498
|
-
onclick="toggleCode('
|
1499
|
-
<div class="method-source-code" id="
|
1708
|
+
onclick="toggleCode('M000039-source');return false;">[Source]</a></p>
|
1709
|
+
<div class="method-source-code" id="M000039-source">
|
1500
1710
|
<pre>
|
1501
|
-
<span class="ruby-comment cmt"># File lib/media_wiki/gateway.rb, line
|
1502
|
-
|
1503
|
-
|
1504
|
-
|
1505
|
-
|
1506
|
-
|
1507
|
-
|
1508
|
-
|
1509
|
-
|
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>
|
1510
1720
|
</pre>
|
1511
1721
|
</div>
|
1512
1722
|
</div>
|