nakiircbot 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/nakiircbot.rb +13 -13
  3. data/nakiircbot.gemspec +1 -1
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a672981dae3300506bc3d7579009d6bc2ada58a1b38ed0b4afbc39d471de2a03
4
- data.tar.gz: 72997bb910adc17459132b1deef79bec1015c8ea523e041931496d678594225c
3
+ metadata.gz: 58ddd0e5e6e4ba6390c88f5846cba690eef07e0d0797c20733a0513e191f8d45
4
+ data.tar.gz: ba40e4e00615a7c0c7c05b946606e54619eee7241c5c1f605bf5d0f56a9db416
5
5
  SHA512:
6
- metadata.gz: c6669d5ac757e78e7c0856722f36f132cb3d7a2bfa0efb30e0dab7711bbf89c9b6bea39d86bceca93268440449add073924749666960098833e31eed885efa03
7
- data.tar.gz: 69df584be01ac7a4e3077bed9e2699d605f250747ab5ee1fac041b0051ab3abadc92a95600107e0b27c813be9b707a89c4bf8a9029dc14c2e96ea546210294bf
6
+ metadata.gz: 4a37e9868f86c9d2e335cb51180a8c583bf9ce9b4f61e44e778cf472aacddb79f917e6f6adf75db7c55b7bc68b221239a24944998042450653cb6fc3818e8777
7
+ data.tar.gz: e27684b814fb88ff2708e52bbaacb771b454c6a8e093cea5eb7d81ac8b37c0d2f4892988d351d952b62939ada17e12eaa5b79cfe89f5d18933b1ebcfb44ea0fa
data/lib/nakiircbot.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  module NakiIRCBot
2
- # @@channels = []
3
- # class << self
4
- # attr_accessor :channels
5
- # end
2
+ class << self
3
+ attr_accessor :queue
4
+ end
5
+ self.queue = []
6
6
  def self.start server, port, bot_name, master_name, welcome001, *channels, identity: nil, password: nil, masterword: nil, processors: [], tags: false
7
7
  # @@channels.replace channels.dup
8
8
 
@@ -38,13 +38,13 @@ module NakiIRCBot
38
38
  socket_send.call "NICK #{bot_name}"
39
39
  socket_send.call "USER #{bot_name} #{bot_name} #{bot_name} #{bot_name}" #unless twitch
40
40
 
41
- queue = []
41
+ self.queue = []
42
42
  prev_socket_time = prev_privmsg_time = Time.now
43
43
  loop do
44
44
  begin
45
- addr, msg = queue.shift
45
+ addr, msg = self.queue.shift
46
46
  next unless addr && msg # TODO: how is it possible to have only one of them?
47
- addr = addr.codepoints.pack("U*")
47
+ addr = addr.codepoints.pack("U*").tr("\x00\x0A\x0D", "")
48
48
  fail "I should not PRIVMSG myself" if addr == bot_name
49
49
  msg = msg.to_s.codepoints.pack("U*").chomp[/^(\x01*)(.*)/m,2].gsub("\x00", "[NUL]").gsub("\x0A", "[LF]").gsub("\x0D", "[CR]")
50
50
  privmsg = "PRIVMSG #{addr} :#{msg}"
@@ -52,7 +52,7 @@ module NakiIRCBot
52
52
  prev_socket_time = prev_privmsg_time = Time.now
53
53
  socket_send.call privmsg
54
54
  break
55
- end until queue.empty? if prev_privmsg_time + 5 < Time.now || server == "localhost"
55
+ end until self.queue.empty? if prev_privmsg_time + 5 < Time.now || server == "localhost"
56
56
 
57
57
  unless _ = Kernel::select([socket], nil, nil, 1)
58
58
  break if Time.now - prev_socket_time > 300
@@ -112,20 +112,20 @@ module NakiIRCBot
112
112
  # socket_send.call "NOTICE",$1,"\001TIME 6:06:06, 6 Jun 06\001"
113
113
  when /\A#{'\S+ ' if tags}:(?<who>[^!]+)!\S+ PRIVMSG (?<where>\S+) :(?<what>.+)/
114
114
  next( if processors.empty?
115
- queue.push [master_name, "nothing to reload"]
115
+ self.queue.push [master_name, "nothing to reload"]
116
116
  else
117
117
  processors.each do |processor|
118
- queue.push [master_name, "reloading #{processor}"]
118
+ self.queue.push [master_name, "reloading #{processor}"]
119
119
  load File.absolute_path processor
120
120
  end
121
121
  end ) if $~.named_captures == {"who"=>master_name, "where"=>bot_name, "what"=>"#{masterword.strip} reload"}
122
122
  end
123
123
 
124
124
  begin
125
- yield str, ->(where, what){ queue.push [where, what] }
125
+ yield str, ->(where, what){ self.queue.push [where, what] }
126
126
  rescue => e
127
127
  puts e.full_message
128
- queue.push [master_name, "yield error: #{e}"]
128
+ self.queue.push [master_name, "yield error: #{e}"]
129
129
  end
130
130
 
131
131
  rescue => e
@@ -135,7 +135,7 @@ module NakiIRCBot
135
135
  sleep 5
136
136
  break
137
137
  else
138
- queue.push [master_name, "unhandled error: #{e}"]
138
+ self.queue.push [master_name, "unhandled error: #{e}"]
139
139
  sleep 5
140
140
  end
141
141
  end
data/nakiircbot.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "nakiircbot"
3
- spec.version = "0.1.4"
3
+ spec.version = "0.1.5"
4
4
  spec.summary = "IRC bot framework"
5
5
 
6
6
  spec.author = "Victor Maslov aka Nakilon"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nakiircbot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Victor Maslov aka Nakilon
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-12-13 00:00:00.000000000 Z
11
+ date: 2021-12-22 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email: nakilon@gmail.com