nakiircbot 0.1.4 → 0.1.5

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