apollo-crawler 0.0.34 → 0.0.35

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.
@@ -0,0 +1,40 @@
1
+ require 'iconv'
2
+
3
+ require File.join(File.dirname(__FILE__), '..', '..', 'plugin')
4
+
5
+ module Apollo
6
+ module Crawler
7
+ module Plugins
8
+ # PARAMATRIZE: Plugin class name
9
+ class Xkcd < Plugin
10
+ @@URL = "http://xkcd.com/"
11
+
12
+ @@MATCHER_ITEM = "//div[@id = 'comic']/img"
13
+
14
+ def name()
15
+ return "Xkcd"
16
+ end
17
+
18
+ def run()
19
+ ic = Iconv.new("UTF-8//IGNORE", "UTF-8")
20
+
21
+ # TODO: Encapsulate and make more robust => invalid hostname, timeouts and so
22
+ doc = Nokogiri::HTML(ic.iconv(open(@@URL).read))
23
+
24
+ res = doc.xpath(@@MATCHER_ITEM).map { |node|
25
+ {
26
+ :text => node['title'],
27
+ :link => URI.join(@@URL, node['src'])
28
+ }
29
+ }
30
+
31
+ return {
32
+ :plugin => self.class.name,
33
+ :title => doc.title,
34
+ :res => res
35
+ }
36
+ end
37
+ end
38
+ end # Plugins
39
+ end # Crawler
40
+ end # Apollo
@@ -1,5 +1,5 @@
1
1
  module Apollo
2
2
  module Crawler
3
- VERSION = '0.0.34'
3
+ VERSION = '0.0.35'
4
4
  end # Crawler
5
5
  end # Apollo
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: apollo-crawler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.34
4
+ version: 0.0.35
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -59,6 +59,22 @@ dependencies:
59
59
  - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: mime-types
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
62
78
  - !ruby/object:Gem::Dependency
63
79
  name: nokogiri
64
80
  requirement: !ruby/object:Gem::Requirement
@@ -75,6 +91,38 @@ dependencies:
75
91
  - - ! '>='
76
92
  - !ruby/object:Gem::Version
77
93
  version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: openurl
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ type: :runtime
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: parallel
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
78
126
  - !ruby/object:Gem::Dependency
79
127
  name: thor
80
128
  requirement: !ruby/object:Gem::Requirement
@@ -101,6 +149,7 @@ files:
101
149
  - ./lib/apollo_crawler/version.rb
102
150
  - ./lib/apollo_crawler/crawler.rb
103
151
  - ./lib/apollo_crawler/plugin_template.rb
152
+ - ./lib/apollo_crawler/plugins/xkcd_com/xkcd.rb
104
153
  - ./lib/apollo_crawler/plugins/slashdot_org/slashdot.rb
105
154
  - ./lib/apollo_crawler/plugins/firmy_cz/firmy.rb
106
155
  - ./lib/apollo_crawler/plugins/alexa_com/alexa.rb