cogbot 0.1.7 → 0.1.9

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b5ae52fdd776cd21ec8570590a71f01bb92f36d6
4
- data.tar.gz: d5b3d9640ae94f588d606bbc430b573322844a35
3
+ metadata.gz: e37f9c0fe6f36887ea2144035045663c66b64d04
4
+ data.tar.gz: f2071dfc2e77590f88dee1d7a6e0cf54d61c8730
5
5
  SHA512:
6
- metadata.gz: c08a53c8c456713a63fd5bcdd983ce4526df85aac0fdc133d247c679ce955b8610424c13466279cb6de550ea498d9545af2c49b729c5ac3e0d88da19ddec2ce9
7
- data.tar.gz: dbf4bf727d158107d2be53cf88b882c72efb825165919b4278db0f786fd39e01a6f462faa8c4e4ff5ffda3d098c271411bffc721377bf3da12b221d18a1d39bc
6
+ metadata.gz: 1a4f4461bea0be58dd774d7c2bdc0aabea8f56c1da96a12d1192f7f72d6976c6a95df7b1c3a83a421ab322715ef118414aea22e6db6ea22cdead0f8265be34eb
7
+ data.tar.gz: d5f8993d643ef716c2b33fdec5d19575d0dd3320e6bf49b8e79be1fe07f0db93c8a57432446b27c19e8d399680f0d6e8faff61d34bea17fa1e845fee56c87888
data/CHANGELOG.md CHANGED
@@ -1,6 +1,12 @@
1
1
  Cogbot Changelog
2
2
  ===================
3
3
 
4
+ ### v0.1.9 - 2016-06-01
5
+ - use title rather than url for rss caching
6
+
7
+ ### v0.1.8 - 2016-04-07
8
+ - add a transform config for rss output
9
+
4
10
  ### v0.1.7 - 2016-03-28
5
11
  - fix rss plugin polling configurable period
6
12
 
data/Gemfile.lock CHANGED
@@ -1,16 +1,16 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cogbot (0.1.7)
4
+ cogbot (0.1.9)
5
5
  cinch (= 2.3.1)
6
6
  daemons (~> 1.2.3)
7
- eventmachine (= 1.0.9.1)
7
+ eventmachine (~> 1.2.0.1)
8
8
  eventmachine_httpserver (~> 0.2.1)
9
9
  fortune_gem (~> 0.0.8)
10
10
  json (~> 1.8.3)
11
11
  nokogiri (~> 1.6.7.1)
12
12
  thor (~> 0.19.1)
13
- twitter (~> 5.15.0)
13
+ twitter (~> 5.16.0)
14
14
  yajl-ruby (~> 1.2.1)
15
15
 
16
16
  GEM
@@ -23,10 +23,10 @@ GEM
23
23
  coderay (1.1.1)
24
24
  daemons (1.2.3)
25
25
  docile (1.1.5)
26
- domain_name (0.5.20160309)
26
+ domain_name (0.5.20160310)
27
27
  unf (>= 0.0.5, < 1.0.0)
28
28
  equalizer (0.0.10)
29
- eventmachine (1.0.9.1)
29
+ eventmachine (1.2.0.1)
30
30
  eventmachine_httpserver (0.2.1)
31
31
  faraday (0.9.2)
32
32
  multipart-post (>= 1.2, < 3)
@@ -34,7 +34,7 @@ GEM
34
34
  ruby_parser (~> 3.1, > 3.1.0)
35
35
  sexp_processor (~> 4.4)
36
36
  fortune_gem (0.0.8)
37
- http (0.9.8)
37
+ http (1.0.4)
38
38
  addressable (~> 2.3)
39
39
  http-cookie (~> 1.0)
40
40
  http-form_data (~> 1.0.1)
@@ -59,7 +59,7 @@ GEM
59
59
  coderay (~> 1.1.0)
60
60
  method_source (~> 0.8.1)
61
61
  slop (~> 3.4)
62
- rake (11.1.0)
62
+ rake (11.1.2)
63
63
  ruby_parser (3.8.1)
64
64
  sexp_processor (~> 4.1)
65
65
  sexp_processor (4.7.0)
@@ -74,12 +74,12 @@ GEM
74
74
  slop (3.6.0)
75
75
  thor (0.19.1)
76
76
  thread_safe (0.3.5)
77
- twitter (5.15.0)
77
+ twitter (5.16.0)
78
78
  addressable (~> 2.3)
79
79
  buftok (~> 0.2.0)
80
80
  equalizer (= 0.0.10)
81
81
  faraday (~> 0.9.0)
82
- http (>= 0.4, < 0.10)
82
+ http (~> 1.0)
83
83
  http_parser.rb (~> 0.6.0)
84
84
  json (~> 1.8)
85
85
  memoizable (~> 0.4.0)
data/PLUGINS.md ADDED
@@ -0,0 +1,65 @@
1
+ Cogbot plugins list
2
+ =======================
3
+
4
+ ```
5
+ Plugin Command / Output
6
+ ---------- -----------------------------------------------------------------
7
+ dice .roll
8
+ outputs "<user> rolls <x>" where x is between 1 and 100
9
+
10
+ exec .do <command>
11
+ exec <command> on the bot host
12
+ <command is restricted to the list:
13
+ - psaux
14
+ - df
15
+ - last
16
+ - free
17
+ - who
18
+ - uptime
19
+ - f (for fortune)
20
+
21
+ fortune .f
22
+ output a random fortune
23
+
24
+
25
+ google .g <searchterm>
26
+ output first result for a google search
27
+
28
+ manager .m list
29
+ lists loaded plugins
30
+ .m load <plugin>
31
+ load plugin <plugin>
32
+ .m unload <plugin>
33
+ unload plugin <plugin>
34
+ .m reload <plugin>
35
+ reload plugin <plugin>
36
+ uselful when changing plugin code
37
+ .m set <plugin> <option> <value>
38
+ makes possible to change option values for <plugin>
39
+
40
+ rubygems .r <searchterm>
41
+ searches on Rubygems API and returns the first 4 matches
42
+
43
+ shorturl .short <url>
44
+ returns a short url for <url> using tinyurl.com
45
+
46
+ stack .s <term>
47
+ overflow returns result of a search on <term> from stack overflow
48
+
49
+ tweet .t search <term>
50
+ returns the 3 first matching tweets matching <term>
51
+
52
+ urban .u <term>
53
+ finds the definition of <term> according to the Urban Dictionary
54
+
55
+
56
+ Listeners Action
57
+ -------------- --------------------------------------------------------------
58
+ gitlistener for github webhooks, advertises the aggregate addition,
59
+ modification and deletion from commits
60
+
61
+ trellolistener listens to Trello webhooks and announces any kind of change
62
+
63
+ rss polls multiple RSS feeds and announces new items
64
+ to multiple channels
65
+ ```
data/README.md CHANGED
@@ -70,6 +70,18 @@ Trello plugin has some config too, for knowing where to announce the trello chan
70
70
 
71
71
  Then in Trello, using the API, you can set a hook to send events to http://ip:port/trellolistener
72
72
 
73
+ For RSS plugin you can specify multiple listener for multiple channels:
74
+
75
+ rss:
76
+ polling: 300
77
+ channels:
78
+ -
79
+ prefix: '[example]'
80
+ url: http://example.com/feed/
81
+ announce:
82
+ - "#cogbot-rss"
83
+
84
+
73
85
  ## Todo
74
86
 
75
87
  - document each plugin
data/cogbot.gemspec CHANGED
@@ -17,12 +17,12 @@ Gem::Specification.new do |gem|
17
17
 
18
18
  gem.add_dependency 'cinch', '2.3.1'
19
19
  gem.add_dependency "thor", '~> 0.19.1'
20
- gem.add_dependency "eventmachine", '1.0.9.1'
20
+ gem.add_dependency "eventmachine", '~> 1.2.0.1'
21
21
  gem.add_dependency "eventmachine_httpserver", '~> 0.2.1'
22
22
  gem.add_dependency 'nokogiri', '~> 1.6.7.1'
23
23
  gem.add_dependency "daemons", '~> 1.2.3'
24
24
 
25
- gem.add_dependency 'twitter', '~> 5.15.0' # twitter plugin
25
+ gem.add_dependency 'twitter', '~> 5.16.0' # twitter plugin
26
26
  gem.add_dependency 'json', '~> 1.8.3' # stackoverflow plugin
27
27
  gem.add_dependency 'yajl-ruby', '~> 1.2.1' # rubygems plugin
28
28
  gem.add_dependency 'fortune_gem', '~> 0.0.8' # fortune plugin
@@ -41,5 +41,8 @@ rss:
41
41
  -
42
42
  prefix: '[example]'
43
43
  url: http://example.com/feed/
44
+ transform:
45
+ regexp: "http://"
46
+ replace: "https://"
44
47
  announce:
45
48
  - "#cogbot-rss"
data/lib/cogbot.rb CHANGED
@@ -6,8 +6,8 @@ require 'net/http'
6
6
  require 'daemons'
7
7
  require 'thor'
8
8
  require 'yajl'
9
- require "lib/cogbot/utils"
10
- require "lib/cogbot/server"
9
+ require 'lib/cogbot/utils'
10
+ require 'lib/cogbot/server'
11
11
 
12
12
  # main cogbot module
13
13
  module Cogbot
@@ -15,7 +15,7 @@ module Cogbot
15
15
  # cogbot cli parser and launcher
16
16
  class Bot < Thor
17
17
 
18
- desc "start", "start cogbot"
18
+ desc 'start', 'start cogbot'
19
19
  # manages the start cli command
20
20
  def start
21
21
 
@@ -24,7 +24,7 @@ module Cogbot
24
24
  begin
25
25
  config = YAML::load_file(CONFIG_FILE)
26
26
  rescue Exception => e
27
- load "lib/cogbot/setup.rb"
27
+ load 'lib/cogbot/setup.rb'
28
28
  config['main'] = Cogbot::Setup.init
29
29
  end
30
30
 
@@ -61,7 +61,7 @@ module Cogbot
61
61
  c.plugins.prefix = config['main']['prefix']
62
62
  c.plugins.plugins = plugins
63
63
  end
64
- on :message, "hi" do |m|
64
+ on :message, 'hi' do |m|
65
65
  m.reply "Hello, #{m.user.nick}"
66
66
  end
67
67
  end
@@ -86,7 +86,7 @@ module Cogbot
86
86
  bot.quit
87
87
  end
88
88
 
89
- desc "stop", "stop cogbot"
89
+ desc 'stop', 'stop cogbot'
90
90
  # manages the stop cli command
91
91
  def stop
92
92
  pid_file = File.join(CONFIG_DIR, 'cogbot.pid')
@@ -94,7 +94,7 @@ module Cogbot
94
94
  Process.kill('TERM', pid)
95
95
  end
96
96
 
97
- desc "restart", "restart cogbot"
97
+ desc 'restart', 'restart cogbot'
98
98
  # manages the restart cli command, just stopping and startinbg in sequence
99
99
  def restart
100
100
  stop
data/plugins/dice.rb CHANGED
@@ -3,7 +3,7 @@ module Cinch
3
3
  class Dice
4
4
  include Cinch::Plugin
5
5
 
6
- match "roll"
6
+ match 'roll'
7
7
 
8
8
  set :plugin_name, 'dice'
9
9
  set :help, <<EOT
data/plugins/rss.rb CHANGED
@@ -28,18 +28,22 @@ EOT
28
28
  feed = RSS::Parser.parse(rss)
29
29
  @feeds[prefix] ||= []
30
30
  feed.items.reverse.each do |item|
31
- unless @feeds[prefix].include? item.link
32
- @feeds[prefix] << item.link
31
+ unless @feeds[prefix].include? item.title
32
+ @feeds[prefix] << item.title
33
33
  # to prevent the first run displays all the items
34
34
  if @feeds[prefix].length > feed.items.length
35
35
  chan['announce'].each do |announce|
36
- Channel(announce).send "#{prefix} #{item.title} (#{item.link})"
36
+ msg = "#{prefix} #{item.title} (#{item.link})"
37
+ if chan['transform']
38
+ msg.gsub! Regexp.new(chan['transform']['regexp']), chan['transform']['replace']
39
+ end
40
+ Channel(announce).send msg
37
41
  end
38
42
  end
39
43
  end
40
44
  end
41
- if @feeds[prefix].length > feed.items.length
42
- @feeds[prefix] = @feeds[prefix][-feed.items.length, feed.items.length]
45
+ if @feeds[prefix].length > (feed.items.length * 3)
46
+ @feeds[prefix] = @feeds[prefix][-(feed.items.length * 3), (feed.items.length * 3)]
43
47
  end
44
48
  end
45
49
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cogbot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - mose
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-28 00:00:00.000000000 Z
11
+ date: 2016-06-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cinch
@@ -42,16 +42,16 @@ dependencies:
42
42
  name: eventmachine
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '='
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 1.0.9.1
47
+ version: 1.2.0.1
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '='
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 1.0.9.1
54
+ version: 1.2.0.1
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: eventmachine_httpserver
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 5.15.0
103
+ version: 5.16.0
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 5.15.0
110
+ version: 5.16.0
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: json
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -276,6 +276,7 @@ files:
276
276
  - Gemfile
277
277
  - Gemfile.lock
278
278
  - LICENSE
279
+ - PLUGINS.md
279
280
  - README.md
280
281
  - Rakefile
281
282
  - bin/cogbot