wikifari 0.2.2 → 0.3.0
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.
- 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!
|