cinch 2.0.7 → 2.0.8
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.
- data/lib/cinch/bot.rb +0 -8
- data/lib/cinch/configuration/bot.rb +0 -1
- data/lib/cinch/irc.rb +1 -1
- data/lib/cinch/plugin.rb +0 -4
- data/lib/cinch/version.rb +1 -1
- metadata +2 -7
- data/examples/plugins/memo.rb +0 -56
- data/lib/cinch/configuration/storage.rb +0 -31
- data/lib/cinch/storage.rb +0 -63
- data/lib/cinch/storage/null.rb +0 -12
- data/lib/cinch/storage/yaml.rb +0 -96
data/lib/cinch/bot.rb
CHANGED
@@ -47,7 +47,6 @@ require "cinch/configuration/bot"
|
|
47
47
|
require "cinch/configuration/plugins"
|
48
48
|
require "cinch/configuration/ssl"
|
49
49
|
require "cinch/configuration/timeouts"
|
50
|
-
# require "cinch/configuration/storage"
|
51
50
|
require "cinch/configuration/dcc"
|
52
51
|
require "cinch/configuration/sasl"
|
53
52
|
|
@@ -292,13 +291,6 @@ module Cinch
|
|
292
291
|
end while @config.reconnect and not @quitting
|
293
292
|
end
|
294
293
|
|
295
|
-
def stop
|
296
|
-
# @plugins.each do |plugin|
|
297
|
-
# plugin.storage.save
|
298
|
-
# plugin.storage.unload
|
299
|
-
# end
|
300
|
-
end
|
301
|
-
|
302
294
|
# @endgroup
|
303
295
|
# @group Channel Control
|
304
296
|
|
data/lib/cinch/irc.rb
CHANGED
data/lib/cinch/plugin.rb
CHANGED
@@ -432,15 +432,11 @@ module Cinch
|
|
432
432
|
# @return [Array<Cinch::Timer>]
|
433
433
|
attr_reader :timers
|
434
434
|
|
435
|
-
# @return [Storage] The per-plugin persistent storage
|
436
|
-
# attr_reader :storage
|
437
|
-
|
438
435
|
# @api private
|
439
436
|
def initialize(bot)
|
440
437
|
@bot = bot
|
441
438
|
@handlers = []
|
442
439
|
@timers = []
|
443
|
-
# @storage = bot.config.storage.backend.new(@bot.config.storage, self)
|
444
440
|
__register
|
445
441
|
end
|
446
442
|
|
data/lib/cinch/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cinch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.8
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-09-02 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: A simple, friendly DSL for creating IRC bots
|
15
15
|
email:
|
@@ -43,7 +43,6 @@ files:
|
|
43
43
|
- lib/cinch/sasl.rb
|
44
44
|
- lib/cinch/cached_list.rb
|
45
45
|
- lib/cinch/bot.rb
|
46
|
-
- lib/cinch/storage.rb
|
47
46
|
- lib/cinch/isupport.rb
|
48
47
|
- lib/cinch/helpers.rb
|
49
48
|
- lib/cinch/handler.rb
|
@@ -58,7 +57,6 @@ files:
|
|
58
57
|
- lib/cinch/mask.rb
|
59
58
|
- lib/cinch/configuration/sasl.rb
|
60
59
|
- lib/cinch/configuration/bot.rb
|
61
|
-
- lib/cinch/configuration/storage.rb
|
62
60
|
- lib/cinch/configuration/plugins.rb
|
63
61
|
- lib/cinch/configuration/ssl.rb
|
64
62
|
- lib/cinch/configuration/dcc.rb
|
@@ -76,8 +74,6 @@ files:
|
|
76
74
|
- lib/cinch/constants.rb
|
77
75
|
- lib/cinch/mode_parser.rb
|
78
76
|
- lib/cinch/user.rb
|
79
|
-
- lib/cinch/storage/yaml.rb
|
80
|
-
- lib/cinch/storage/null.rb
|
81
77
|
- lib/cinch/logger/formatted_logger.rb
|
82
78
|
- lib/cinch/logger/zcbot_logger.rb
|
83
79
|
- lib/cinch/exceptions.rb
|
@@ -104,7 +100,6 @@ files:
|
|
104
100
|
- examples/plugins/autovoice.rb
|
105
101
|
- examples/plugins/multiple_matches.rb
|
106
102
|
- examples/plugins/url_shorten.rb
|
107
|
-
- examples/plugins/memo.rb
|
108
103
|
- examples/plugins/own_events.rb
|
109
104
|
- examples/plugins/seen.rb
|
110
105
|
- examples/plugins/last_nick.rb
|
data/examples/plugins/memo.rb
DELETED
@@ -1,56 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require 'cinch'
|
4
|
-
require 'cinch/storage/yaml'
|
5
|
-
|
6
|
-
class Memo
|
7
|
-
class MemoStruct < Struct.new(:user, :channel, :text, :time)
|
8
|
-
def to_s
|
9
|
-
"[#{time.asctime}] <#{channel}/#{user}> #{text}"
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
include Cinch::Plugin
|
14
|
-
|
15
|
-
def initialize(*args)
|
16
|
-
super
|
17
|
-
storage[:memos] ||= {}
|
18
|
-
end
|
19
|
-
|
20
|
-
listen_to :message
|
21
|
-
match /memo (.+?) (.+)/
|
22
|
-
|
23
|
-
def listen(m)
|
24
|
-
if storage[:memos].has_key?(m.user.nick)
|
25
|
-
m.user.send storage[:memos].delete(m.user.nick).to_s
|
26
|
-
storage.save
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
def execute(m, nick, message)
|
31
|
-
if storage[:memos].key?(nick)
|
32
|
-
m.reply "There's already a memo for #{nick}. You can only store one right now"
|
33
|
-
elsif nick == m.user.nick
|
34
|
-
m.reply "You can't leave memos for yourself.."
|
35
|
-
elsif nick == bot.nick
|
36
|
-
m.reply "You can't leave memos for me.."
|
37
|
-
else
|
38
|
-
storage[:memos][nick] = MemoStruct.new(m.user.name, m.channel.name, message, Time.now)
|
39
|
-
storage.save
|
40
|
-
m.reply "Added memo for #{nick}"
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
bot = Cinch::Bot.new do
|
46
|
-
configure do |c|
|
47
|
-
c.server = "irc.freenode.org"
|
48
|
-
c.channels = ["#cinch-bots"]
|
49
|
-
c.plugins.plugins = [Memo]
|
50
|
-
c.storage.backend = Cinch::Storage::YAML
|
51
|
-
c.storage.basedir = "./yaml/"
|
52
|
-
c.storage.autosave = true
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
bot.start
|
@@ -1,31 +0,0 @@
|
|
1
|
-
require "cinch/configuration"
|
2
|
-
require "cinch/storage/null"
|
3
|
-
|
4
|
-
module Cinch
|
5
|
-
class Configuration
|
6
|
-
# @since 2.0.0
|
7
|
-
class Storage < Configuration
|
8
|
-
KnownOptions = [:backend]
|
9
|
-
|
10
|
-
def self.default_config
|
11
|
-
{
|
12
|
-
:backend => Cinch::Storage::Null
|
13
|
-
}
|
14
|
-
end
|
15
|
-
|
16
|
-
def load(new_config, from_default)
|
17
|
-
_new_config = {}
|
18
|
-
new_config.each do |option, value|
|
19
|
-
case option
|
20
|
-
when :backend
|
21
|
-
_new_config[option] = Cinch::Utilities::Kernel.string_to_const(value)
|
22
|
-
else
|
23
|
-
_new_config[option] = value
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
super(_new_config, from_default)
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
data/lib/cinch/storage.rb
DELETED
@@ -1,63 +0,0 @@
|
|
1
|
-
module Cinch
|
2
|
-
# @note The interface of this class isn't fixed yet. You shouldn't
|
3
|
-
# use it yet.
|
4
|
-
class Storage
|
5
|
-
include Enumerable
|
6
|
-
|
7
|
-
# @param [Hash] options
|
8
|
-
# @param [Plugin] plugin
|
9
|
-
def initialize(options, plugin)
|
10
|
-
end
|
11
|
-
|
12
|
-
# @param [Object] key
|
13
|
-
# @return [Object, nil]
|
14
|
-
def [](key)
|
15
|
-
end
|
16
|
-
|
17
|
-
# @param [Object] key
|
18
|
-
# @param [Object] value
|
19
|
-
# @return [value]
|
20
|
-
def []=(key, value)
|
21
|
-
end
|
22
|
-
|
23
|
-
# @return [self]
|
24
|
-
def each
|
25
|
-
self
|
26
|
-
end
|
27
|
-
|
28
|
-
# @return [self]
|
29
|
-
def each_key
|
30
|
-
self
|
31
|
-
end
|
32
|
-
|
33
|
-
# @return [self]
|
34
|
-
def each_value
|
35
|
-
self
|
36
|
-
end
|
37
|
-
|
38
|
-
# @param [Object] key
|
39
|
-
# @return [Boolean]
|
40
|
-
def has_key?(key)
|
41
|
-
false
|
42
|
-
end
|
43
|
-
alias_method :include?, :has_key?
|
44
|
-
alias_method :key?, :has_key?
|
45
|
-
alias_method :member?, :has_key?
|
46
|
-
|
47
|
-
# @param [Object] key
|
48
|
-
# @return [Object, nil] The deleted object
|
49
|
-
def delete(key)
|
50
|
-
end
|
51
|
-
|
52
|
-
# @return [self]
|
53
|
-
def delete_if
|
54
|
-
self
|
55
|
-
end
|
56
|
-
|
57
|
-
def save
|
58
|
-
end
|
59
|
-
|
60
|
-
def unload
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
data/lib/cinch/storage/null.rb
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
require "cinch/storage"
|
2
|
-
|
3
|
-
module Cinch
|
4
|
-
class Storage
|
5
|
-
# The Null storage is the default storage (used if the user didn't
|
6
|
-
# supply a different storage) and will simply ignore all requests.
|
7
|
-
# This way, plugins will continue to work if programmed properly,
|
8
|
-
# but no data will be preserved.
|
9
|
-
class Null < Storage
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
data/lib/cinch/storage/yaml.rb
DELETED
@@ -1,96 +0,0 @@
|
|
1
|
-
require "cinch/storage"
|
2
|
-
require "yaml"
|
3
|
-
|
4
|
-
module Cinch
|
5
|
-
class Storage
|
6
|
-
# A basic storage backed by YAML, using one file per plugin.
|
7
|
-
class YAML < Storage
|
8
|
-
# (see Storage#initialize)
|
9
|
-
def initialize(options, plugin)
|
10
|
-
# We are a basic example, so we load everything into memory. yey.
|
11
|
-
@file = options.basedir + plugin.class.plugin_name + ".yaml"
|
12
|
-
if File.exist?(@file)
|
13
|
-
@yaml = ::YAML.load_file(@file) || {}
|
14
|
-
else
|
15
|
-
@yaml = {}
|
16
|
-
end
|
17
|
-
@options = options
|
18
|
-
|
19
|
-
@mutex = Mutex.new
|
20
|
-
end
|
21
|
-
|
22
|
-
# (see Storage#[])
|
23
|
-
def [](key)
|
24
|
-
@yaml[key]
|
25
|
-
end
|
26
|
-
|
27
|
-
# (see Strage#[]=)
|
28
|
-
def []=(key, value)
|
29
|
-
@yaml[key] = value
|
30
|
-
end
|
31
|
-
|
32
|
-
# (see Storage#has_key?)
|
33
|
-
def has_key?(key)
|
34
|
-
@yaml.has_key?(key)
|
35
|
-
end
|
36
|
-
alias_method :include?, :has_key?
|
37
|
-
alias_method :key?, :has_key?
|
38
|
-
alias_method :member?, :has_key?
|
39
|
-
|
40
|
-
# (see Storage#each)
|
41
|
-
def each
|
42
|
-
@yaml.each {|e| yield(e)}
|
43
|
-
|
44
|
-
self
|
45
|
-
end
|
46
|
-
|
47
|
-
# (see Storage#each_key)
|
48
|
-
def each_key
|
49
|
-
@yaml.each_key {|e| yield(e)}
|
50
|
-
|
51
|
-
self
|
52
|
-
end
|
53
|
-
|
54
|
-
# (see Storage#each_value)
|
55
|
-
def each_value
|
56
|
-
@yaml.each_value {|e| yield(e)}
|
57
|
-
|
58
|
-
self
|
59
|
-
end
|
60
|
-
|
61
|
-
# (see Storage#delete)
|
62
|
-
def delete(key)
|
63
|
-
obj = @yaml.delete(key)
|
64
|
-
|
65
|
-
obj
|
66
|
-
end
|
67
|
-
|
68
|
-
# (see Storage#delete_if)
|
69
|
-
def delete_if
|
70
|
-
delete_keys = []
|
71
|
-
each do |key, value|
|
72
|
-
delete_keys << key if yield(key, value)
|
73
|
-
end
|
74
|
-
|
75
|
-
delete_keys.each do |key|
|
76
|
-
delete(key)
|
77
|
-
end
|
78
|
-
|
79
|
-
self
|
80
|
-
end
|
81
|
-
|
82
|
-
# (see Storage#save)
|
83
|
-
def save
|
84
|
-
@mutex.synchronize do
|
85
|
-
File.open(@file, "w") do |f|
|
86
|
-
f.write @yaml.to_yaml
|
87
|
-
end
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
|
-
# (see Storage#unload)
|
92
|
-
def unload
|
93
|
-
end
|
94
|
-
end
|
95
|
-
end
|
96
|
-
end
|