wikifari 0.2.2 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/wikifari.rb +5 -6
- data/lib/wikifari/helper.rb +0 -14
- data/lib/wikifari/page.rb +2 -2
- data/lib/wikifari/request.rb +10 -20
- metadata +6 -7
- data/lib/wikifari/custom.rb +0 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5eaf41bae5e5fb6453179ba9e6b2c8f1e9cd5ad8
|
4
|
+
data.tar.gz: 348d8cc42436b226f19fa68f9e67f6a6f96c2d84
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a4729a858b002b30b600edd9b94d2ab864f192aea7e3bd8c4ff7eea565e7d77f09b27ef0a5085847f8fc8ded552d2c73a564f3f7b3c8b11713b52a9c8eeff9ef
|
7
|
+
data.tar.gz: 9c8db822004edbb796168a12fb5da448a68c70833abceb8ce7b75fd3f02d59f2463da5bfc1a0eccd2de73a5e1ba88582c0833c2a489cb4473667d90789e960b9
|
data/lib/wikifari.rb
CHANGED
@@ -1,25 +1,24 @@
|
|
1
|
-
|
2
|
-
$:.unshift(
|
1
|
+
WF_LIB = File.expand_path(File.dirname(__FILE__))
|
2
|
+
$:.unshift(WF_LIB) unless $:.include?(WF_LIB)
|
3
3
|
|
4
4
|
require "json"
|
5
5
|
require "open-uri"
|
6
6
|
|
7
|
-
require "wikifari/custom"
|
8
7
|
require "wikifari/helper"
|
9
8
|
require "wikifari/page"
|
10
9
|
require "wikifari/request"
|
11
10
|
require "wikifari/search"
|
12
11
|
|
13
12
|
module WikiFari
|
14
|
-
|
13
|
+
OPTIONS = {
|
15
14
|
:site => "http://en.wikipedia.org/w/api.php"
|
16
15
|
}
|
17
16
|
|
18
|
-
|
17
|
+
VERSION = "0.3.0"
|
19
18
|
|
20
19
|
class Config < Request
|
21
20
|
def initialize(site = nil)
|
22
|
-
|
21
|
+
OPTIONS[:site] = site if site
|
23
22
|
end
|
24
23
|
end
|
25
24
|
end
|
data/lib/wikifari/helper.rb
CHANGED
@@ -1,18 +1,4 @@
|
|
1
1
|
module WikiFari
|
2
2
|
class Helper
|
3
|
-
# Thanks, CGI!
|
4
|
-
def encode(string)
|
5
|
-
string.gsub(/([^\sa-zA-Z0-9\_\.\-\+]+)/) do
|
6
|
-
"%" + $1.unpack("H2" * $1.bytesize).join("%").upcase
|
7
|
-
end.tr(" ", "+").gsub(/\%25/, "%")
|
8
|
-
end
|
9
|
-
|
10
|
-
def query(hash)
|
11
|
-
string = ""
|
12
|
-
|
13
|
-
hash.each { |key, val| string << "#{key.to_s}=#{val}&" }
|
14
|
-
|
15
|
-
string.sub /\&$/, ""
|
16
|
-
end
|
17
3
|
end
|
18
4
|
end
|
data/lib/wikifari/page.rb
CHANGED
@@ -22,11 +22,11 @@ module WikiFari
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def redirect?
|
25
|
-
self.content && self.content.match(/\#
|
25
|
+
self.content && self.content.match(/\#redirect\s*\[\[(.*?)\]\]/i)
|
26
26
|
end
|
27
27
|
|
28
28
|
def redirect
|
29
|
-
self.content.match(/\#
|
29
|
+
self.content.match(/\#redirect\s*\[\[(.*?)\]\]/i)[1]
|
30
30
|
end
|
31
31
|
|
32
32
|
def title
|
data/lib/wikifari/request.rb
CHANGED
@@ -1,35 +1,25 @@
|
|
1
1
|
module WikiFari
|
2
2
|
class Request < Helper
|
3
|
-
|
4
|
-
|
5
|
-
query = self.query options
|
3
|
+
READ_QUERY = "action=query&prop=revisions&rvlimit=1&rvprop=content&titles"
|
4
|
+
SEARCH_QUERY = "action=opensearch&limit=25&search"
|
6
5
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
def custom(options = {})
|
11
|
-
data = self.api_request options
|
6
|
+
def api_request(query, title)
|
7
|
+
site = OPTIONS[:site]
|
8
|
+
title = URI.escape title
|
12
9
|
|
13
|
-
|
10
|
+
URI.parse("#{site}?format=json&#{query}=#{title}").read
|
14
11
|
end
|
15
12
|
|
16
|
-
def read(title, redirect =
|
17
|
-
data = self.api_request
|
18
|
-
:prop => "revisions",
|
19
|
-
:rvprop => "content",
|
20
|
-
:titles => self.encode(title)
|
13
|
+
def read(title, redirect = true)
|
14
|
+
data = self.api_request READ_QUERY, title
|
21
15
|
|
22
16
|
page = Page.new data
|
23
17
|
|
24
|
-
|
25
|
-
|
26
|
-
page
|
18
|
+
page.redirect? && redirect ? self.read(page.redirect) : page
|
27
19
|
end
|
28
20
|
|
29
21
|
def search(title)
|
30
|
-
data = self.api_request
|
31
|
-
:limit => "10",
|
32
|
-
:search => self.encode(title)
|
22
|
+
data = self.api_request SEARCH_QUERY, title
|
33
23
|
|
34
24
|
Search.new data
|
35
25
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wikifari
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Oscar Palmér
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-09-09 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Read and search for content on MediaWiki-powered sites.
|
14
14
|
email: opalmer@me.com
|
@@ -16,12 +16,11 @@ executables: []
|
|
16
16
|
extensions: []
|
17
17
|
extra_rdoc_files: []
|
18
18
|
files:
|
19
|
-
- lib/wikifari
|
19
|
+
- lib/wikifari.rb
|
20
20
|
- lib/wikifari/helper.rb
|
21
21
|
- lib/wikifari/page.rb
|
22
22
|
- lib/wikifari/request.rb
|
23
23
|
- lib/wikifari/search.rb
|
24
|
-
- lib/wikifari.rb
|
25
24
|
homepage: http://git.io/wf
|
26
25
|
licenses:
|
27
26
|
- MIT
|
@@ -32,17 +31,17 @@ require_paths:
|
|
32
31
|
- lib
|
33
32
|
required_ruby_version: !ruby/object:Gem::Requirement
|
34
33
|
requirements:
|
35
|
-
- -
|
34
|
+
- - ">="
|
36
35
|
- !ruby/object:Gem::Version
|
37
36
|
version: '0'
|
38
37
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
39
38
|
requirements:
|
40
|
-
- -
|
39
|
+
- - ">="
|
41
40
|
- !ruby/object:Gem::Version
|
42
41
|
version: '0'
|
43
42
|
requirements: []
|
44
43
|
rubyforge_project:
|
45
|
-
rubygems_version: 2.
|
44
|
+
rubygems_version: 2.2.2
|
46
45
|
signing_key:
|
47
46
|
specification_version: 4
|
48
47
|
summary: WikiFari!
|