ruboty-feed 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/ruboty/feed/entry.rb +40 -0
- data/lib/ruboty/feed/version.rb +1 -1
- data/lib/ruboty/feed.rb +2 -1
- data/lib/ruboty/handlers/feed.rb +6 -20
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3b9a662b6ba579923bf89ac5ebca9a0d70954031
|
4
|
+
data.tar.gz: c43616c429a4a25ebfa1057e8dc52ff81689d263
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3b6403a5166695d01d977468e7213954385feb629f9985e8ec0d65c88bfbef4ab98269713122219e86cae654251e03a85c45ee172ed6ab42a019f884313246fb
|
7
|
+
data.tar.gz: a80fa8f6429a1455540e91472507a51710a27e3731df070fec657b8b6ba572fced83696c5e830640a34a32f7dbc670671813dc0758b11f10d4713ac2964fa62b
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module Ruboty
|
2
|
+
module Feed
|
3
|
+
class Entry
|
4
|
+
NAMESPACE = -'entry'
|
5
|
+
|
6
|
+
attr_reader :url
|
7
|
+
|
8
|
+
def initialize(e, robot)
|
9
|
+
p e
|
10
|
+
@url = e.url
|
11
|
+
@id = e.entry_id
|
12
|
+
@published = e.published
|
13
|
+
@updated = e.updated
|
14
|
+
@title = e.title
|
15
|
+
@author = e.author
|
16
|
+
@content = e.content
|
17
|
+
@robot = robot
|
18
|
+
end
|
19
|
+
|
20
|
+
def stored?
|
21
|
+
store[@id] ? true : false
|
22
|
+
end
|
23
|
+
|
24
|
+
def store!
|
25
|
+
store[@id] = true
|
26
|
+
end
|
27
|
+
|
28
|
+
def store
|
29
|
+
@robot.brain.data[NAMESPACE] ||= {}
|
30
|
+
end
|
31
|
+
|
32
|
+
def format
|
33
|
+
<<-EOS
|
34
|
+
*#{@title}* (#{@published.strftime('%Y-%m-%d %H:%M:%S %Z')})
|
35
|
+
#{@url}
|
36
|
+
EOS
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
data/lib/ruboty/feed/version.rb
CHANGED
data/lib/ruboty/feed.rb
CHANGED
data/lib/ruboty/handlers/feed.rb
CHANGED
@@ -5,8 +5,6 @@ require 'feedjira'
|
|
5
5
|
module Ruboty
|
6
6
|
module Handlers
|
7
7
|
class Feed < Base
|
8
|
-
NAMESPACE = 'feed'
|
9
|
-
|
10
8
|
on(
|
11
9
|
/subscribe (?<feed_url>.+)/,
|
12
10
|
description: 'Subscribe a feed',
|
@@ -17,26 +15,14 @@ module Ruboty
|
|
17
15
|
feed_url = message[:feed_url].strip
|
18
16
|
feed = Feedjira::Feed.fetch_and_parse(feed_url)
|
19
17
|
|
20
|
-
feed.entries.each do |
|
21
|
-
|
22
|
-
|
23
|
-
|
18
|
+
feed.entries.each do |e|
|
19
|
+
entry = Ruboty::Feed::Entry.new(e, robot)
|
20
|
+
next if entry.stored?.tap
|
21
|
+
message.reply(entry.format)
|
22
|
+
entry.store!
|
23
|
+
sleep 0.5
|
24
24
|
end
|
25
25
|
end
|
26
|
-
|
27
|
-
private
|
28
|
-
|
29
|
-
def store
|
30
|
-
robot.brain.data[NAMESPACE] ||= {}
|
31
|
-
end
|
32
|
-
|
33
|
-
def store_entry_url(entry_url)
|
34
|
-
store[entry_url] = true
|
35
|
-
end
|
36
|
-
|
37
|
-
def stored?(entry_url)
|
38
|
-
store[entry_url] ? true : false
|
39
|
-
end
|
40
26
|
end
|
41
27
|
end
|
42
28
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruboty-feed
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hirofumi Wakasugi
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-12-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ruboty
|
@@ -93,6 +93,7 @@ files:
|
|
93
93
|
- README.md
|
94
94
|
- Rakefile
|
95
95
|
- lib/ruboty/feed.rb
|
96
|
+
- lib/ruboty/feed/entry.rb
|
96
97
|
- lib/ruboty/feed/version.rb
|
97
98
|
- lib/ruboty/handlers/feed.rb
|
98
99
|
- ruboty-feed.gemspec
|
@@ -116,7 +117,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
116
117
|
version: '0'
|
117
118
|
requirements: []
|
118
119
|
rubyforge_project:
|
119
|
-
rubygems_version: 2.5.
|
120
|
+
rubygems_version: 2.5.2
|
120
121
|
signing_key:
|
121
122
|
specification_version: 4
|
122
123
|
summary: Ruboty plug-in to subscribe RSS/Atom feed.
|