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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 674c2e151a57a9cea4b27316703c229b894a226e
4
- data.tar.gz: c689843d6ef507099874ea41db4e31344d70b474
3
+ metadata.gz: 3b9a662b6ba579923bf89ac5ebca9a0d70954031
4
+ data.tar.gz: c43616c429a4a25ebfa1057e8dc52ff81689d263
5
5
  SHA512:
6
- metadata.gz: e00df28bde6f6cbe77fc2e6138e4759ffdd01f69f1e997b6c613c44e3658cc0d642f2789876af722c2d657f2f472bf5d9da0ccb34f04292ba25a926a1726c8cd
7
- data.tar.gz: 0d6e175f189e7c853055e00972a567a20a482b10edf0537f1352c92179865ed54bc552f7ee8a695680b52741d436d287c51c21b6eca221a52e1e1d7cafd52e02
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
@@ -1,5 +1,5 @@
1
1
  module Ruboty
2
2
  module Feed
3
- VERSION = '0.0.2'
3
+ VERSION = '0.0.3'
4
4
  end
5
5
  end
data/lib/ruboty/feed.rb CHANGED
@@ -1,2 +1,3 @@
1
- require "ruboty/handlers/feed"
2
1
  require "ruboty/feed/version"
2
+ require "ruboty/feed/entry"
3
+ require "ruboty/handlers/feed"
@@ -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 |entry|
21
- next if stored?(entry.url)
22
- message.reply(entry.url)
23
- store_entry_url(entry.url)
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.2
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-05-06 00:00:00.000000000 Z
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.1
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.