cogbot 0.1.7 → 0.1.9

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: 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