mediawiki-gateway 0.3.3 → 0.3.4
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/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
|