tinyirc 0.1.1 → 0.1.2
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 +4 -4
- data/Gemfile.lock +12 -12
- data/lib/tinyirc/bot.rb +14 -14
- data/lib/tinyirc/plugins/admin-utils.rb +2 -2
- data/lib/tinyirc/plugins/core.rb +25 -0
- data/lib/tinyirc/version.rb +1 -1
- data/tinyirc.gemspec +2 -2
- data/tinyirc.sample.yaml +3 -1
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 55c4c917c7b9a797d5aa6b3e16b16c3e6bb1edcf5fa75a454f4108d0cd16fb7a
|
4
|
+
data.tar.gz: 95f9bb3151eafab505be84b61f17b8b1e8f453c66eb2ceac1a81dfaefbe466e4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: deb768c754471dfb04f0f17702f406a76c3ace59cd8e55ddc4030652a87154457b727418802b07347247611d0c8a26328e802e2267171a79d59c3a9eaaffa300
|
7
|
+
data.tar.gz: d095eb0fb43e58ec5d110288cbacfd930e008f72ed25a5f9281d04df3d84b47f0bcdbff5b6ca0280640f07fb291160d7d4fab7dcd3dddeb4c4222c1705f8bc9f
|
data/Gemfile.lock
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
tinyirc (0.1.
|
4
|
+
tinyirc (0.1.2)
|
5
5
|
particlecmd (~> 0.1)
|
6
6
|
particlelog (~> 0.1)
|
7
7
|
sinatra (~> 2.0)
|
8
8
|
sqlite3 (~> 1.3)
|
9
|
-
thin (~> 1.
|
9
|
+
thin (~> 1.7)
|
10
10
|
|
11
11
|
GEM
|
12
12
|
remote: https://rubygems.org/
|
13
13
|
specs:
|
14
14
|
daemons (1.2.6)
|
15
|
-
eventmachine (1.2.
|
16
|
-
mustermann (1.0.
|
17
|
-
particlecmd (0.1.
|
15
|
+
eventmachine (1.2.7)
|
16
|
+
mustermann (1.0.3)
|
17
|
+
particlecmd (0.1.5)
|
18
18
|
particlelog (0.1.1)
|
19
|
-
rack (2.0.
|
20
|
-
rack-protection (2.0.
|
19
|
+
rack (2.0.5)
|
20
|
+
rack-protection (2.0.3)
|
21
21
|
rack
|
22
|
-
rake (
|
23
|
-
sinatra (2.0.
|
22
|
+
rake (12.3.1)
|
23
|
+
sinatra (2.0.3)
|
24
24
|
mustermann (~> 1.0)
|
25
25
|
rack (~> 2.0)
|
26
|
-
rack-protection (= 2.0.
|
26
|
+
rack-protection (= 2.0.3)
|
27
27
|
tilt (~> 2.0)
|
28
28
|
sqlite3 (1.3.13)
|
29
29
|
thin (1.7.2)
|
@@ -37,8 +37,8 @@ PLATFORMS
|
|
37
37
|
|
38
38
|
DEPENDENCIES
|
39
39
|
bundler (~> 1.16)
|
40
|
-
rake (~>
|
40
|
+
rake (~> 12.3)
|
41
41
|
tinyirc!
|
42
42
|
|
43
43
|
BUNDLED WITH
|
44
|
-
1.16.
|
44
|
+
1.16.3
|
data/lib/tinyirc/bot.rb
CHANGED
@@ -293,15 +293,15 @@ class TinyIRC::Bot
|
|
293
293
|
def _read_line(socket)
|
294
294
|
res = IO.select([socket.sock], nil, nil, 0.001)
|
295
295
|
return nil unless res
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
296
|
+
begin
|
297
|
+
return socket.sock.readline("\r\n", chomp: true).force_encoding("UTF-8")
|
298
|
+
rescue => e
|
299
|
+
socket.log.error "#{e.class.name} - #{e.message}"
|
300
|
+
socket.mtx.synchronize do
|
301
301
|
socket.running = false
|
302
|
-
handle_event(type: :disconnect, socket: socket)
|
303
|
-
return nil
|
304
302
|
end
|
303
|
+
handle_event(type: :disconnect, socket: socket)
|
304
|
+
return nil
|
305
305
|
end
|
306
306
|
end
|
307
307
|
|
@@ -329,15 +329,15 @@ class TinyIRC::Bot
|
|
329
329
|
end
|
330
330
|
|
331
331
|
return unless msg
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
332
|
+
begin
|
333
|
+
socket.direct_write msg.force_encoding("UTF-8")
|
334
|
+
rescue => e
|
335
|
+
socket.log.error "#{e.class.name} - #{e.message}"
|
336
|
+
socket.mtx.synchronize do
|
337
337
|
socket.running = false
|
338
|
-
handle_event(type: :disconnect, socket: socket)
|
339
|
-
return nil
|
340
338
|
end
|
339
|
+
handle_event(type: :disconnect, socket: socket)
|
340
|
+
return nil
|
341
341
|
end
|
342
342
|
|
343
343
|
socket.last_write = current
|
@@ -122,7 +122,7 @@ cmd('kick').branch('kick', 'who --ban --reason=REASON') do |e, c|
|
|
122
122
|
to_ban = get_target(e, c, false)
|
123
123
|
s.mode(e[:reply_to], "+b #{to_ban}")
|
124
124
|
end
|
125
|
-
s.kick(e[:reply_to], c.positionals['who'])
|
125
|
+
s.kick(e[:reply_to], c.positionals['who'], (c.options['reason'] or 'Bye!'))
|
126
126
|
end.tap do |b|
|
127
127
|
b.description = 'Kicks the given user from the current channel'
|
128
128
|
b.definition.tap do |d|
|
@@ -142,7 +142,7 @@ cmd('remove').branch('remove', 'who --ban --reason=REASON') do |e, c|
|
|
142
142
|
to_ban = get_target(e, c, false)
|
143
143
|
s.mode(e[:reply_to], "+b #{to_ban}")
|
144
144
|
end
|
145
|
-
s.remove(e[:reply_to], c.positionals['who'])
|
145
|
+
s.remove(e[:reply_to], c.positionals['who'], (c.options['reason'] or 'Bye!'))
|
146
146
|
end.tap do |b|
|
147
147
|
b.description = 'Removes the given user from the current channel'
|
148
148
|
b.definition.tap do |d|
|
data/lib/tinyirc/plugins/core.rb
CHANGED
@@ -218,6 +218,10 @@ group('admin').tap do |g|
|
|
218
218
|
g.perm @name, 'flushq', 'targeted'
|
219
219
|
end
|
220
220
|
|
221
|
+
group('owner').tap do |g|
|
222
|
+
g.perm @name, 'eval', 'root'
|
223
|
+
end
|
224
|
+
|
221
225
|
#
|
222
226
|
# help command
|
223
227
|
#
|
@@ -426,4 +430,25 @@ flushq_cmd.branch('targeted', 'server') do |e, c|
|
|
426
430
|
end
|
427
431
|
end.tap do |b|
|
428
432
|
b.description = 'Flushes the queue of the given server'
|
433
|
+
end
|
434
|
+
|
435
|
+
#
|
436
|
+
# eval command
|
437
|
+
#
|
438
|
+
|
439
|
+
eval_cmd = cmd 'eval'
|
440
|
+
|
441
|
+
eval_cmd.branch('root', '...') do |e, c|
|
442
|
+
unless c.extra.empty?
|
443
|
+
begin
|
444
|
+
out = eval(c.extra.join(' ')).inspect
|
445
|
+
e.reply "%BOutput%N: #{out}"
|
446
|
+
rescue StandardError, SyntaxError => err
|
447
|
+
e.reply "E: #{err.class} => #{err.message}"
|
448
|
+
end
|
449
|
+
else
|
450
|
+
e.reply '%BOutput%N: nil'
|
451
|
+
end
|
452
|
+
end.tap do |b|
|
453
|
+
b.description = 'Evaluates given string'
|
429
454
|
end
|
data/lib/tinyirc/version.rb
CHANGED
data/tinyirc.gemspec
CHANGED
@@ -22,11 +22,11 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.require_paths = ['lib']
|
23
23
|
|
24
24
|
spec.add_development_dependency 'bundler', '~> 1.16'
|
25
|
-
spec.add_development_dependency 'rake', '~>
|
25
|
+
spec.add_development_dependency 'rake', '~> 12.3'
|
26
26
|
|
27
27
|
spec.add_dependency 'particlecmd', '~> 0.1'
|
28
28
|
spec.add_dependency 'particlelog', '~> 0.1'
|
29
29
|
spec.add_dependency 'sinatra', '~> 2.0'
|
30
|
-
spec.add_dependency 'thin', '~> 1.
|
30
|
+
spec.add_dependency 'thin', '~> 1.7'
|
31
31
|
spec.add_dependency 'sqlite3', '~> 1.3'
|
32
32
|
end
|
data/tinyirc.sample.yaml
CHANGED
@@ -7,16 +7,18 @@ plugins:
|
|
7
7
|
groups:
|
8
8
|
world: # All users belong to this group
|
9
9
|
include: # Includes permissions from listed groups into the current one
|
10
|
-
-
|
10
|
+
- core/world
|
11
11
|
perms:
|
12
12
|
- core/flushq
|
13
13
|
admin: # Admins have this group
|
14
14
|
include:
|
15
15
|
- world
|
16
|
+
- core/admin
|
16
17
|
- plugin/admin
|
17
18
|
owner: # Owners have this group
|
18
19
|
include:
|
19
20
|
- admin
|
21
|
+
- core/owner
|
20
22
|
- plugin/owner
|
21
23
|
|
22
24
|
cooldowns:
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tinyirc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nickolay Ilyushin
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-09-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '12.3'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '12.3'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: particlecmd
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -86,14 +86,14 @@ dependencies:
|
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '1.
|
89
|
+
version: '1.7'
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '1.
|
96
|
+
version: '1.7'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: sqlite3
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -165,7 +165,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
165
165
|
version: '0'
|
166
166
|
requirements: []
|
167
167
|
rubyforge_project:
|
168
|
-
rubygems_version: 2.7.
|
168
|
+
rubygems_version: 2.7.7
|
169
169
|
signing_key:
|
170
170
|
specification_version: 4
|
171
171
|
summary: A modular IRC bot framework
|