mediawiki_api 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 4fe630268f2fdf52422e284a3e0b54fbdbb9467e
4
+ data.tar.gz: 532a1ac7ddc4ed87d16c3fc1847b21401129adb5
5
+ SHA512:
6
+ metadata.gz: 08d7501addc1a9b128229aad08f894042100fd2bfac693fe13a894af70ff65261397c5fca1859886e8b760ab06889b5387586eae9294dc4ffc9df9da5df33e53
7
+ data.tar.gz: a3a4b09267baea17ba859a3fbf20d900894fbc3d14efee4f8f047d2bbb97ddb652f137df08721b66cd5d66f3dca5dce2bc206585e93b51fa9b7c8ce81daff284
@@ -0,0 +1,6 @@
1
+ [gerrit]
2
+ host=gerrit.wikimedia.org
3
+ port=29418
4
+ project=mediawiki/ruby_api_client.git
5
+ defaultbranch=master
6
+ defaultrebase=0
data/CREDITS ADDED
@@ -0,0 +1,10 @@
1
+ mediawiki_ruby_api_client is a collaborative project released under the
2
+ GNU General Public License v2. We would like to recognize the
3
+ following names for their contribution to the product.
4
+
5
+ For further details on licensing, see the LICENSE file.
6
+
7
+ == Developers ==
8
+ * Chris McMahon
9
+ * Jeff Hall
10
+ * Željko Filipin
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ #ruby=ruby-2.1.0
2
+ #ruby-gemset=mediawiki_api
@@ -0,0 +1,380 @@
1
+ == License and copyright information ==
2
+
3
+ === License ===
4
+
5
+ MediaWiki is licensed under the terms of the GNU General Public License,
6
+ version 2 or later. Derivative works and later versions of the code must be
7
+ free software licensed under the same or a compatible license. This includes
8
+ "extensions" that use MediaWiki functions or variables; see
9
+ http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins for details.
10
+
11
+ For the full text of version 2 of the license, see
12
+ https://www.gnu.org/licenses/gpl-2.0.html or '''GNU General Public License'''
13
+ below.
14
+
15
+ === Copyright owners ===
16
+
17
+ MediaWiki contributors, including those listed in the CREDITS file, hold the
18
+ copyright to this work.
19
+
20
+ === Additional license information ===
21
+
22
+ Some components of MediaWiki imported from other projects may be under other
23
+ Free and Open Source, or Free Culture, licenses. Specific details of their
24
+ licensing information can be found in those components.
25
+
26
+ Sections of code written exclusively by Lee Crocker or Erik Moeller are also
27
+ released into the public domain, which does not impair the obligations of users
28
+ under the GPL for use of the whole code or other sections thereof.
29
+
30
+ MediaWiki uses the following Creative Commons icons to illustrate links to the
31
+ CC licenses:
32
+
33
+ * skins/common/images/cc-by-nc-sa.png
34
+ * skins/common/images/cc-by-sa.png
35
+
36
+ These icons are trademarked, and used subject to the CC trademark license,
37
+ available at http://creativecommons.org/policies#trademark
38
+
39
+ == GNU GENERAL PUBLIC LICENSE ==
40
+
41
+ Version 2, June 1991
42
+
43
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
44
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
45
+ Everyone is permitted to copy and distribute verbatim copies
46
+ of this license document, but changing it is not allowed.
47
+
48
+ === Preamble ===
49
+
50
+ The licenses for most software are designed to take away your
51
+ freedom to share and change it. By contrast, the GNU General Public
52
+ License is intended to guarantee your freedom to share and change free
53
+ software--to make sure the software is free for all its users. This
54
+ General Public License applies to most of the Free Software
55
+ Foundation's software and to any other program whose authors commit to
56
+ using it. (Some other Free Software Foundation software is covered by
57
+ the GNU Library General Public License instead.) You can apply it to
58
+ your programs, too.
59
+
60
+ When we speak of free software, we are referring to freedom, not
61
+ price. Our General Public Licenses are designed to make sure that you
62
+ have the freedom to distribute copies of free software (and charge for
63
+ this service if you wish), that you receive source code or can get it
64
+ if you want it, that you can change the software or use pieces of it
65
+ in new free programs; and that you know you can do these things.
66
+
67
+ To protect your rights, we need to make restrictions that forbid
68
+ anyone to deny you these rights or to ask you to surrender the rights.
69
+ These restrictions translate to certain responsibilities for you if you
70
+ distribute copies of the software, or if you modify it.
71
+
72
+ For example, if you distribute copies of such a program, whether
73
+ gratis or for a fee, you must give the recipients all the rights that
74
+ you have. You must make sure that they, too, receive or can get the
75
+ source code. And you must show them these terms so they know their
76
+ rights.
77
+
78
+ We protect your rights with two steps: (1) copyright the software, and
79
+ (2) offer you this license which gives you legal permission to copy,
80
+ distribute and/or modify the software.
81
+
82
+ Also, for each author's protection and ours, we want to make certain
83
+ that everyone understands that there is no warranty for this free
84
+ software. If the software is modified by someone else and passed on, we
85
+ want its recipients to know that what they have is not the original, so
86
+ that any problems introduced by others will not reflect on the original
87
+ authors' reputations.
88
+
89
+ Finally, any free program is threatened constantly by software
90
+ patents. We wish to avoid the danger that redistributors of a free
91
+ program will individually obtain patent licenses, in effect making the
92
+ program proprietary. To prevent this, we have made it clear that any
93
+ patent must be licensed for everyone's free use or not licensed at all.
94
+
95
+ The precise terms and conditions for copying, distribution and
96
+ modification follow.
97
+
98
+ == TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION ==
99
+
100
+ '''0.''' This License applies to any program or other work which contains
101
+ a notice placed by the copyright holder saying it may be distributed
102
+ under the terms of this General Public License. The "Program", below,
103
+ refers to any such program or work, and a "work based on the Program"
104
+ means either the Program or any derivative work under copyright law:
105
+ that is to say, a work containing the Program or a portion of it,
106
+ either verbatim or with modifications and/or translated into another
107
+ language. (Hereinafter, translation is included without limitation in
108
+ the term "modification".) Each licensee is addressed as "you".
109
+
110
+ Activities other than copying, distribution and modification are not
111
+ covered by this License; they are outside its scope. The act of
112
+ running the Program is not restricted, and the output from the Program
113
+ is covered only if its contents constitute a work based on the
114
+ Program (independent of having been made by running the Program).
115
+ Whether that is true depends on what the Program does.
116
+
117
+ '''1.''' You may copy and distribute verbatim copies of the Program's
118
+ source code as you receive it, in any medium, provided that you
119
+ conspicuously and appropriately publish on each copy an appropriate
120
+ copyright notice and disclaimer of warranty; keep intact all the
121
+ notices that refer to this License and to the absence of any warranty;
122
+ and give any other recipients of the Program a copy of this License
123
+ along with the Program.
124
+
125
+ You may charge a fee for the physical act of transferring a copy, and
126
+ you may at your option offer warranty protection in exchange for a fee.
127
+
128
+ '''2.''' You may modify your copy or copies of the Program or any portion
129
+ of it, thus forming a work based on the Program, and copy and
130
+ distribute such modifications or work under the terms of Section 1
131
+ above, provided that you also meet all of these conditions:
132
+
133
+ '''a)''' You must cause the modified files to carry prominent notices
134
+ stating that you changed the files and the date of any change.
135
+
136
+ '''b)''' You must cause any work that you distribute or publish, that in
137
+ whole or in part contains or is derived from the Program or any
138
+ part thereof, to be licensed as a whole at no charge to all third
139
+ parties under the terms of this License.
140
+
141
+ '''c)''' If the modified program normally reads commands interactively
142
+ when run, you must cause it, when started running for such
143
+ interactive use in the most ordinary way, to print or display an
144
+ announcement including an appropriate copyright notice and a
145
+ notice that there is no warranty (or else, saying that you provide
146
+ a warranty) and that users may redistribute the program under
147
+ these conditions, and telling the user how to view a copy of this
148
+ License. (Exception: if the Program itself is interactive but
149
+ does not normally print such an announcement, your work based on
150
+ the Program is not required to print an announcement.)
151
+
152
+ These requirements apply to the modified work as a whole. If
153
+ identifiable sections of that work are not derived from the Program,
154
+ and can be reasonably considered independent and separate works in
155
+ themselves, then this License, and its terms, do not apply to those
156
+ sections when you distribute them as separate works. But when you
157
+ distribute the same sections as part of a whole which is a work based
158
+ on the Program, the distribution of the whole must be on the terms of
159
+ this License, whose permissions for other licensees extend to the
160
+ entire whole, and thus to each and every part regardless of who wrote it.
161
+
162
+ Thus, it is not the intent of this section to claim rights or contest
163
+ your rights to work written entirely by you; rather, the intent is to
164
+ exercise the right to control the distribution of derivative or
165
+ collective works based on the Program.
166
+
167
+ In addition, mere aggregation of another work not based on the Program
168
+ with the Program (or with a work based on the Program) on a volume of
169
+ a storage or distribution medium does not bring the other work under
170
+ the scope of this License.
171
+
172
+ '''3.''' You may copy and distribute the Program (or a work based on it,
173
+ under Section 2) in object code or executable form under the terms of
174
+ Sections 1 and 2 above provided that you also do one of the following:
175
+
176
+ '''a)''' Accompany it with the complete corresponding machine-readable
177
+ source code, which must be distributed under the terms of Sections
178
+ 1 and 2 above on a medium customarily used for software interchange; or,
179
+
180
+ '''b)''' Accompany it with a written offer, valid for at least three
181
+ years, to give any third party, for a charge no more than your
182
+ cost of physically performing source distribution, a complete
183
+ machine-readable copy of the corresponding source code, to be
184
+ distributed under the terms of Sections 1 and 2 above on a medium
185
+ customarily used for software interchange; or,
186
+
187
+ '''c)''' Accompany it with the information you received as to the offer
188
+ to distribute corresponding source code. (This alternative is
189
+ allowed only for noncommercial distribution and only if you
190
+ received the program in object code or executable form with such
191
+ an offer, in accord with Subsection b above.)
192
+
193
+ The source code for a work means the preferred form of the work for
194
+ making modifications to it. For an executable work, complete source
195
+ code means all the source code for all modules it contains, plus any
196
+ associated interface definition files, plus the scripts used to
197
+ control compilation and installation of the executable. However, as a
198
+ special exception, the source code distributed need not include
199
+ anything that is normally distributed (in either source or binary
200
+ form) with the major components (compiler, kernel, and so on) of the
201
+ operating system on which the executable runs, unless that component
202
+ itself accompanies the executable.
203
+
204
+ If distribution of executable or object code is made by offering
205
+ access to copy from a designated place, then offering equivalent
206
+ access to copy the source code from the same place counts as
207
+ distribution of the source code, even though third parties are not
208
+ compelled to copy the source along with the object code.
209
+
210
+ '''4.''' You may not copy, modify, sublicense, or distribute the Program
211
+ except as expressly provided under this License. Any attempt
212
+ otherwise to copy, modify, sublicense or distribute the Program is
213
+ void, and will automatically terminate your rights under this License.
214
+ However, parties who have received copies, or rights, from you under
215
+ this License will not have their licenses terminated so long as such
216
+ parties remain in full compliance.
217
+
218
+ '''5.''' You are not required to accept this License, since you have not
219
+ signed it. However, nothing else grants you permission to modify or
220
+ distribute the Program or its derivative works. These actions are
221
+ prohibited by law if you do not accept this License. Therefore, by
222
+ modifying or distributing the Program (or any work based on the
223
+ Program), you indicate your acceptance of this License to do so, and
224
+ all its terms and conditions for copying, distributing or modifying
225
+ the Program or works based on it.
226
+
227
+ '''6.''' Each time you redistribute the Program (or any work based on the
228
+ Program), the recipient automatically receives a license from the
229
+ original licensor to copy, distribute or modify the Program subject to
230
+ these terms and conditions. You may not impose any further
231
+ restrictions on the recipients' exercise of the rights granted herein.
232
+ You are not responsible for enforcing compliance by third parties to
233
+ this License.
234
+
235
+ '''7.''' If, as a consequence of a court judgment or allegation of patent
236
+ infringement or for any other reason (not limited to patent issues),
237
+ conditions are imposed on you (whether by court order, agreement or
238
+ otherwise) that contradict the conditions of this License, they do not
239
+ excuse you from the conditions of this License. If you cannot
240
+ distribute so as to satisfy simultaneously your obligations under this
241
+ License and any other pertinent obligations, then as a consequence you
242
+ may not distribute the Program at all. For example, if a patent
243
+ license would not permit royalty-free redistribution of the Program by
244
+ all those who receive copies directly or indirectly through you, then
245
+ the only way you could satisfy both it and this License would be to
246
+ refrain entirely from distribution of the Program.
247
+
248
+ If any portion of this section is held invalid or unenforceable under
249
+ any particular circumstance, the balance of the section is intended to
250
+ apply and the section as a whole is intended to apply in other
251
+ circumstances.
252
+
253
+ It is not the purpose of this section to induce you to infringe any
254
+ patents or other property right claims or to contest validity of any
255
+ such claims; this section has the sole purpose of protecting the
256
+ integrity of the free software distribution system, which is
257
+ implemented by public license practices. Many people have made
258
+ generous contributions to the wide range of software distributed
259
+ through that system in reliance on consistent application of that
260
+ system; it is up to the author/donor to decide if he or she is willing
261
+ to distribute software through any other system and a licensee cannot
262
+ impose that choice.
263
+
264
+ This section is intended to make thoroughly clear what is believed to
265
+ be a consequence of the rest of this License.
266
+
267
+ '''8.''' If the distribution and/or use of the Program is restricted in
268
+ certain countries either by patents or by copyrighted interfaces, the
269
+ original copyright holder who places the Program under this License
270
+ may add an explicit geographical distribution limitation excluding
271
+ those countries, so that distribution is permitted only in or among
272
+ countries not thus excluded. In such case, this License incorporates
273
+ the limitation as if written in the body of this License.
274
+
275
+ '''9.''' The Free Software Foundation may publish revised and/or new versions
276
+ of the General Public License from time to time. Such new versions will
277
+ be similar in spirit to the present version, but may differ in detail to
278
+ address new problems or concerns.
279
+
280
+ Each version is given a distinguishing version number. If the Program
281
+ specifies a version number of this License which applies to it and "any
282
+ later version", you have the option of following the terms and conditions
283
+ either of that version or of any later version published by the Free
284
+ Software Foundation. If the Program does not specify a version number of
285
+ this License, you may choose any version ever published by the Free Software
286
+ Foundation.
287
+
288
+ '''10.''' If you wish to incorporate parts of the Program into other free
289
+ programs whose distribution conditions are different, write to the author
290
+ to ask for permission. For software which is copyrighted by the Free
291
+ Software Foundation, write to the Free Software Foundation; we sometimes
292
+ make exceptions for this. Our decision will be guided by the two goals
293
+ of preserving the free status of all derivatives of our free software and
294
+ of promoting the sharing and reuse of software generally.
295
+
296
+ === NO WARRANTY ===
297
+
298
+ '''11.''' BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
299
+ FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
300
+ OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
301
+ PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
302
+ OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
303
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
304
+ TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
305
+ PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
306
+ REPAIR OR CORRECTION.
307
+
308
+ '''12.''' IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
309
+ WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
310
+ REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
311
+ INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
312
+ OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
313
+ TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
314
+ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
315
+ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
316
+ POSSIBILITY OF SUCH DAMAGES.
317
+
318
+ '''END OF TERMS AND CONDITIONS'''
319
+
320
+ == How to Apply These Terms to Your New Programs ==
321
+
322
+ If you develop a new program, and you want it to be of the greatest
323
+ possible use to the public, the best way to achieve this is to make it
324
+ free software which everyone can redistribute and change under these terms.
325
+
326
+ To do so, attach the following notices to the program. It is safest
327
+ to attach them to the start of each source file to most effectively
328
+ convey the exclusion of warranty; and each file should have at least
329
+ the "copyright" line and a pointer to where the full notice is found.
330
+
331
+ <one line to give the program's name and a brief idea of what it does.>
332
+
333
+ Copyright (C) <year> <name of author>
334
+
335
+ This program is free software; you can redistribute it and/or modify
336
+ it under the terms of the GNU General Public License as published by
337
+ the Free Software Foundation; either version 2 of the License, or
338
+ (at your option) any later version.
339
+
340
+ This program is distributed in the hope that it will be useful,
341
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
342
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
343
+ GNU General Public License for more details.
344
+
345
+ You should have received a copy of the GNU General Public License
346
+ along with this program; if not, write to the Free Software
347
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
348
+
349
+
350
+ Also add information on how to contact you by electronic and paper mail.
351
+
352
+ If the program is interactive, make it output a short notice like this
353
+ when it starts in an interactive mode:
354
+
355
+ Gnomovision version 69, Copyright (C) year name of author
356
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
357
+ This is free software, and you are welcome to redistribute it
358
+ under certain conditions; type `show c' for details.
359
+
360
+ The hypothetical commands `show w' and `show c' should show the appropriate
361
+ parts of the General Public License. Of course, the commands you use may
362
+ be called something other than `show w' and `show c'; they could even be
363
+ mouse-clicks or menu items--whatever suits your program.
364
+
365
+ You should also get your employer (if you work as a programmer) or your
366
+ school, if any, to sign a "copyright disclaimer" for the program, if
367
+ necessary. Here is a sample; alter the names:
368
+
369
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
370
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
371
+
372
+ <signature of Ty Coon>, 1 April 1989
373
+
374
+ Ty Coon, President of Vice
375
+
376
+ This General Public License does not permit incorporating your program into
377
+ proprietary programs. If your program is a subroutine library, you may
378
+ consider it more useful to permit linking proprietary applications with the
379
+ library. If this is what you want to do, use the GNU Library General
380
+ Public License instead of this License.
@@ -0,0 +1,48 @@
1
+ # MediawikiApi
2
+
3
+ TODO: Write a gem description
4
+
5
+ An easy way to work with MediaWiki API from Ruby. Uses REST Client Ruby gem to communicate with MediaWiki API.
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application's Gemfile:
10
+
11
+ gem 'mediawiki_api'
12
+
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install mediawiki_api
20
+
21
+ ## Usage
22
+
23
+ TODO: Write usage instructions here
24
+
25
+ $ export API_URL=http://en.wikipedia.beta.wmflabs.org/w/api.php
26
+
27
+ $ irb
28
+
29
+ > require "mediawiki_api"
30
+ => true
31
+
32
+ > include MediawikiApi
33
+ => Object
34
+
35
+ > create_article "username", "password", "title", "content"
36
+ => nil
37
+
38
+ > create_user "username", "password"
39
+ eddfa276bcaabbaec3f813de78f052e3
40
+ => nil
41
+
42
+ ## Contributing
43
+
44
+ 1. Fork it ( http://github.com/<my-github-username>/mediawiki_api/fork )
45
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
46
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
47
+ 4. Push to the branch (`git push origin my-new-feature`)
48
+ 5. Create new Pull Request
@@ -0,0 +1,64 @@
1
+ require "mediawiki_api/version"
2
+ require "rest-client"
3
+
4
+ module MediawikiApi
5
+ def create_article username, password, title, content
6
+ # First request is solely to obtain a valid login token in the API response.
7
+ login_token_response = RestClient.post ENV["API_URL"], {:action => "login", :lgname => username, :lgpassword => password, :format => "json", :lgtoken => ""}
8
+
9
+ login_token_data = JSON.parse(login_token_response.body)
10
+ login_token = login_token_data["login"]["token"]
11
+ cookie = login_token_response.cookies
12
+
13
+ # Second request repeats the first request with the addition of the token (to complete the login).
14
+ complete_login_response = RestClient.post ENV["API_URL"], {:action => "login", :lgname => username, :lgpassword => password, :format => "json", :lgtoken => login_token}, {:cookies => cookie}
15
+
16
+ complete_login_data = JSON.parse(complete_login_response.body)
17
+ complete_login_status = complete_login_data["login"]["result"]
18
+ complete_login_cookie = complete_login_response.cookies
19
+ # Merge the two cookie hashes together into one big super-cookie
20
+ cookie = complete_login_cookie.merge(cookie)
21
+
22
+ if (complete_login_status != "Success")
23
+ $stderr.puts "There was a problem - login was NOT successful."
24
+ end
25
+
26
+ # First request is solely to obtain a valid edit token in the API response.
27
+ edit_token_response = RestClient.post ENV["API_URL"], {:action => "tokens", :type => "edit", :format => "json"}, {:cookies => cookie}
28
+
29
+ edit_token_data = JSON.parse(edit_token_response.body)
30
+ edit_token = edit_token_data["tokens"]["edittoken"]
31
+
32
+ # Second request repeats the first request with the addition of the token (to complete the article creation).
33
+ complete_edit_response = RestClient.post ENV["API_URL"], {:action => "edit", :title => title, :text => (content + "[[Category:Browsertest article]]"), :summary => "Article created via an API 'edit' call.", :format => "json", :token => edit_token}, {:cookies => cookie}
34
+
35
+ complete_edit_data = JSON.parse(complete_edit_response.body)
36
+ complete_edit_status = complete_edit_data["edit"]["result"]
37
+
38
+ if (complete_edit_status != "Success")
39
+ $stderr.puts "There was a problem - new article creation was NOT successful."
40
+ end
41
+ end
42
+ def create_user login, password
43
+ # First request is solely to obtain a valid token in the API response.
44
+ createaccount_token_response = RestClient.post ENV["API_URL"], {:action => "createaccount", :name => login, :password =>
45
+ password, :format => "json", :token => ""}
46
+
47
+ # Session cookie needs to be maintained for both API requests.
48
+ createaccount_token_data = JSON.parse(createaccount_token_response.body)
49
+ cookie = createaccount_token_response.cookies
50
+
51
+ createaccount_token = createaccount_token_data["createaccount"]["token"]
52
+ puts createaccount_token
53
+
54
+ # Second request repeats the first request with the addition of the token.
55
+ complete_createaccount_response = RestClient.post ENV["API_URL"], {:action => "createaccount", :name => login, :password => password, :format => "json", :token => createaccount_token}, {:cookies => cookie}
56
+
57
+ complete_createaccount_data = JSON.parse(complete_createaccount_response.body)
58
+ complete_createaccount_status = complete_createaccount_data["createaccount"]["result"]
59
+
60
+ if (complete_createaccount_status != "success")
61
+ $stderr.puts "There was a problem - new user account creation was NOT successful."
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,3 @@
1
+ module MediawikiApi
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,20 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path("../lib", __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require "mediawiki_api/version"
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "mediawiki_api"
8
+ spec.version = MediawikiApi::VERSION
9
+ spec.authors = ["Chris McMahon", "Jeff Hall", "Zeljko Filipin"]
10
+ spec.email = ["cmcmahon@wikimedia.org", "jhall@wikimedia.org", "zeljko.filipin@gmail.com"]
11
+ spec.summary = %q{An easy way to work with MediaWiki API from Ruby.}
12
+ spec.description = %q{Uses REST Client Ruby gem to communicate with MediaWiki API.}
13
+ spec.homepage = "https://github.com/zeljkofilipin/mediawiki_api"
14
+ spec.license = "GPL-2"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.require_paths = ["lib"]
18
+
19
+ spec.add_runtime_dependency "rest-client", "~> 1.6", ">= 1.6.7"
20
+ end
metadata ADDED
@@ -0,0 +1,76 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mediawiki_api
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Chris McMahon
8
+ - Jeff Hall
9
+ - Zeljko Filipin
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2014-02-07 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rest-client
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - "~>"
20
+ - !ruby/object:Gem::Version
21
+ version: '1.6'
22
+ - - ">="
23
+ - !ruby/object:Gem::Version
24
+ version: 1.6.7
25
+ type: :runtime
26
+ prerelease: false
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ requirements:
29
+ - - "~>"
30
+ - !ruby/object:Gem::Version
31
+ version: '1.6'
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: 1.6.7
35
+ description: Uses REST Client Ruby gem to communicate with MediaWiki API.
36
+ email:
37
+ - cmcmahon@wikimedia.org
38
+ - jhall@wikimedia.org
39
+ - zeljko.filipin@gmail.com
40
+ executables: []
41
+ extensions: []
42
+ extra_rdoc_files: []
43
+ files:
44
+ - ".gitreview"
45
+ - CREDITS
46
+ - Gemfile
47
+ - LICENSE.txt
48
+ - README.md
49
+ - lib/mediawiki_api.rb
50
+ - lib/mediawiki_api/version.rb
51
+ - mediawiki_api.gemspec
52
+ homepage: https://github.com/zeljkofilipin/mediawiki_api
53
+ licenses:
54
+ - GPL-2
55
+ metadata: {}
56
+ post_install_message:
57
+ rdoc_options: []
58
+ require_paths:
59
+ - lib
60
+ required_ruby_version: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: '0'
65
+ required_rubygems_version: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ requirements: []
71
+ rubyforge_project:
72
+ rubygems_version: 2.2.2
73
+ signing_key:
74
+ specification_version: 4
75
+ summary: An easy way to work with MediaWiki API from Ruby.
76
+ test_files: []