mediawiki-gateway 0.3.3 → 0.3.4
Sign up to get free protection for your applications and to get access to all the features.
- data/doc/classes/MediaWiki/Config.html +12 -12
- data/doc/classes/MediaWiki/Gateway.html +397 -334
- data/doc/created.rid +1 -1
- data/doc/files/lib/media_wiki/gateway_rb.html +1 -1
- data/doc/fr_method_index.html +4 -2
- data/lib/media_wiki.rb +1 -1
- data/lib/media_wiki/gateway.rb +40 -13
- data/mediawiki-gateway.gemspec +3 -2
- data/spec/gateway_spec.rb +17 -0
- metadata +4 -4
data/doc/created.rid
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
Mon, 07 Feb 2011 12:14:29 +1100
|
data/doc/fr_method_index.html
CHANGED
@@ -20,7 +20,7 @@
|
|
20
20
|
<div id="index">
|
21
21
|
<h1 class="section-bar">Methods</h1>
|
22
22
|
<div id="index-entries">
|
23
|
-
<a href="classes/MediaWiki/Config.html#
|
23
|
+
<a href="classes/MediaWiki/Config.html#M000034">abort (MediaWiki::Config)</a><br />
|
24
24
|
<a href="classes/MediaWiki/Gateway.html#M000016">backlinks (MediaWiki::Gateway)</a><br />
|
25
25
|
<a href="classes/MediaWiki/Gateway.html#M000011">create (MediaWiki::Gateway)</a><br />
|
26
26
|
<a href="classes/MediaWiki/Gateway.html#M000013">delete (MediaWiki::Gateway)</a><br />
|
@@ -41,8 +41,8 @@
|
|
41
41
|
<a href="classes/MediaWiki/Gateway.html#M000029">make_api_request (MediaWiki::Gateway)</a><br />
|
42
42
|
<a href="classes/MediaWiki/Gateway.html#M000012">move (MediaWiki::Gateway)</a><br />
|
43
43
|
<a href="classes/MediaWiki/Gateway.html#M000024">namespaces_by_prefix (MediaWiki::Gateway)</a><br />
|
44
|
+
<a href="classes/MediaWiki/Config.html#M000033">new (MediaWiki::Config)</a><br />
|
44
45
|
<a href="classes/MediaWiki/Gateway.html#M000007">new (MediaWiki::Gateway)</a><br />
|
45
|
-
<a href="classes/MediaWiki/Config.html#M000031">new (MediaWiki::Config)</a><br />
|
46
46
|
<a href="classes/MediaWiki/Gateway.html#M000019">redirect? (MediaWiki::Gateway)</a><br />
|
47
47
|
<a href="classes/MediaWiki/Gateway.html#M000010">render (MediaWiki::Gateway)</a><br />
|
48
48
|
<a href="classes/MediaWiki/Gateway.html#M000017">search (MediaWiki::Gateway)</a><br />
|
@@ -50,7 +50,9 @@
|
|
50
50
|
<a href="classes/MediaWiki/Gateway.html#M000014">undelete (MediaWiki::Gateway)</a><br />
|
51
51
|
<a href="classes/MediaWiki/Gateway.html#M000018">upload (MediaWiki::Gateway)</a><br />
|
52
52
|
<a href="classes/MediaWiki.html#M000004">uri_to_wiki (MediaWiki)</a><br />
|
53
|
+
<a href="classes/MediaWiki/Gateway.html#M000031">valid_page? (MediaWiki::Gateway)</a><br />
|
53
54
|
<a href="classes/MediaWiki.html#M000006">version (MediaWiki)</a><br />
|
55
|
+
<a href="classes/MediaWiki/Gateway.html#M000032">warning (MediaWiki::Gateway)</a><br />
|
54
56
|
<a href="classes/MediaWiki.html#M000005">wiki_to_uri (MediaWiki)</a><br />
|
55
57
|
</div>
|
56
58
|
</div>
|
data/lib/media_wiki.rb
CHANGED
data/lib/media_wiki/gateway.rb
CHANGED
@@ -15,6 +15,7 @@ module MediaWiki
|
|
15
15
|
# [options] Hash of options
|
16
16
|
#
|
17
17
|
# Options:
|
18
|
+
# [:ignorewarnings] Log API warnings and invalid page titles, instead of aborting with an error.
|
18
19
|
# [:limit] Maximum number of results returned per search (see http://www.mediawiki.org/wiki/API:Query_-_Lists#Limits), defaults to the MediaWiki default of 500.
|
19
20
|
# [:loglevel] Log level to use, defaults to Logger::WARN. Set to Logger::DEBUG to dump every request and response to the log.
|
20
21
|
# [:maxlag] Maximum allowed server lag (see http://www.mediawiki.org/wiki/Manual:Maxlag_parameter), defaults to 5 seconds.
|
@@ -60,9 +61,7 @@ module MediaWiki
|
|
60
61
|
def get(page_title)
|
61
62
|
form_data = {'action' => 'query', 'prop' => 'revisions', 'rvprop' => 'content', 'titles' => page_title}
|
62
63
|
page = make_api_request(form_data).first.elements["query/pages/page"]
|
63
|
-
if
|
64
|
-
nil
|
65
|
-
else
|
64
|
+
if valid_page? page
|
66
65
|
page.elements["revisions/rev"].text || ""
|
67
66
|
end
|
68
67
|
end
|
@@ -119,7 +118,14 @@ module MediaWiki
|
|
119
118
|
form_data['createonly'] = "" unless options[:overwrite]
|
120
119
|
make_api_request(form_data)
|
121
120
|
end
|
122
|
-
|
121
|
+
|
122
|
+
# Edit page
|
123
|
+
#
|
124
|
+
# Same options as create, but always overwrites existing pages (and creates them if they don't exist already).
|
125
|
+
def edit(title, content, options)
|
126
|
+
create(title, content, {:overwrite => true}.merge(options))
|
127
|
+
end
|
128
|
+
|
123
129
|
# Move a page to a new title
|
124
130
|
#
|
125
131
|
# [from] Old page name
|
@@ -317,7 +323,7 @@ module MediaWiki
|
|
317
323
|
def redirect?(page_title)
|
318
324
|
form_data = {'action' => 'query', 'prop' => 'info', 'titles' => page_title}
|
319
325
|
page = make_api_request(form_data).first.elements["query/pages/page"]
|
320
|
-
!!(page and page.attributes["redirect"])
|
326
|
+
!!(valid_page?(page) and page.attributes["redirect"])
|
321
327
|
end
|
322
328
|
|
323
329
|
# Requests image info from MediaWiki. Follows redirects.
|
@@ -364,13 +370,15 @@ module MediaWiki
|
|
364
370
|
|
365
371
|
xml, dummy = make_api_request(form_data)
|
366
372
|
page = xml.elements["query/pages/page"]
|
367
|
-
if
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
373
|
+
if valid_page? page
|
374
|
+
if xml.elements["query/redirects/r"]
|
375
|
+
# We're dealing with redirect here.
|
376
|
+
image_info(page.attributes["pageid"].to_i, options)
|
377
|
+
else
|
378
|
+
page.elements["imageinfo/ii"].attributes
|
379
|
+
end
|
372
380
|
else
|
373
|
-
|
381
|
+
nil
|
374
382
|
end
|
375
383
|
end
|
376
384
|
|
@@ -527,10 +535,29 @@ module MediaWiki
|
|
527
535
|
info = doc.elements["error"].attributes["info"]
|
528
536
|
raise "API error: code '#{code}', info '#{info}'"
|
529
537
|
end
|
530
|
-
if doc.elements["warnings"]
|
531
|
-
|
538
|
+
if doc.elements["warnings"]
|
539
|
+
warning("API warning: #{doc.elements["warnings"].children.map {|e| e.text}.join(", ")}")
|
532
540
|
end
|
533
541
|
doc
|
534
542
|
end
|
543
|
+
|
544
|
+
def valid_page?(page)
|
545
|
+
return false unless page
|
546
|
+
return false if page.attributes["missing"]
|
547
|
+
if page.attributes["invalid"]
|
548
|
+
warning("Invalid title '#{page.attributes["title"]}'")
|
549
|
+
else
|
550
|
+
true
|
551
|
+
end
|
552
|
+
end
|
553
|
+
|
554
|
+
def warning(msg)
|
555
|
+
if @options[:ignorewarnings]
|
556
|
+
log.warn(msg)
|
557
|
+
return false
|
558
|
+
else
|
559
|
+
raise msg
|
560
|
+
end
|
561
|
+
end
|
535
562
|
end
|
536
563
|
end
|
data/mediawiki-gateway.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{mediawiki-gateway}
|
8
|
-
s.version = "0.3.
|
8
|
+
s.version = "0.3.4"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Jani Patokallio"]
|
12
|
-
s.date = %q{2011-
|
12
|
+
s.date = %q{2011-02-07}
|
13
13
|
s.description = %q{}
|
14
14
|
s.email = %q{jpatokal@iki.fi}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -33,6 +33,7 @@ Gem::Specification.new do |s|
|
|
33
33
|
"doc/files/script/get_page_rb.html",
|
34
34
|
"doc/files/script/import_xml_rb.html",
|
35
35
|
"doc/files/script/run_fake_media_wiki_rb.html",
|
36
|
+
"doc/files/script/search_content_rb.html",
|
36
37
|
"doc/files/script/upload_commons_rb.html",
|
37
38
|
"doc/files/script/upload_file_rb.html",
|
38
39
|
"doc/fr_class_index.html",
|
data/spec/gateway_spec.rb
CHANGED
@@ -359,6 +359,23 @@ describe MediaWiki::Gateway do
|
|
359
359
|
|
360
360
|
end
|
361
361
|
|
362
|
+
describe "#edit" do
|
363
|
+
before do
|
364
|
+
$fake_media_wiki.reset
|
365
|
+
@edit_page = @gateway.edit("Main Page", "Some new content", :summary => "The summary")
|
366
|
+
end
|
367
|
+
|
368
|
+
it "should overwrite the existing page" do
|
369
|
+
expected = <<-XML
|
370
|
+
<api>
|
371
|
+
<edit result='Success' pageid='8' title='Main Page' oldrevid='1' newrevid='8'/>
|
372
|
+
</api>
|
373
|
+
XML
|
374
|
+
Hash.from_xml(@edit_page.to_s).should == Hash.from_xml(expected)
|
375
|
+
end
|
376
|
+
|
377
|
+
end
|
378
|
+
|
362
379
|
describe "#upload" do
|
363
380
|
|
364
381
|
before do
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mediawiki-gateway
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 0.3.
|
9
|
+
- 4
|
10
|
+
version: 0.3.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jani Patokallio
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-02-07 00:00:00 +11:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|