class SlackSmartBot
def poster(permanent, emoticon_text, emoticon_bg, string, minutes)
chars = { a: ["0000", "1111", "1001", "1111", "1001", "1001", "0000"],
b: ["0000", "1111", "1001", "1110", "1001", "1111", "0000"],
c: ["0000", "0111", "1000", "1000", "1000", "0111", "0000"],
d: ["0000", "1110", "1001", "1001", "1001", "1110", "0000"],
e: ["0000", "1111", "1000", "1110", "1000", "1111", "0000"],
f: ["0000", "1111", "1000", "1110", "1000", "1000", "0000"],
g: ["0000", "1111", "1000", "1011", "1001", "1111", "0000"],
h: ["0000", "1001", "1001", "1111", "1001", "1001", "0000"],
i: ["000", "111", "010", "010", "010", "111", "000"],
j: ["0000", "0111", "0010", "0010", "1010", "0110", "0000"],
k: ["0000", "1001", "1010", "1100", "1010", "1001", "0000"],
l: ["000", "100", "100", "100", "100", "111", "000"],
m: ["00000", "10001", "11011", "10101", "10001", "10001", "00000"],
n: ["00000", "10001", "11001", "10101", "10011", "10001", "00000"],
o: ["0000", "0110", "1001", "1001", "1001", "0110", "0000"],
p: ["0000", "1110", "1001", "1110", "1000", "1000", "0000"],
q: ["00000", "01100", "10010", "10010", "10010", "01111", "00000"],
r: ["0000", "1110", "1001", "1110", "1010", "1001", "0000"],
s: ["0000", "0111", "1000", "0110", "0001", "1110", "0000"],
t: ["00000", "11111", "00100", "00100", "00100", "00100", "00000"],
u: ["00000", "10001", "10001", "10001", "10001", "01110", "00000"],
v: ["00000", "10001", "10001", "10001", "01010", "00100", "00000"],
w: ["0000000", "1000001", "1000001", "1001001", "1010101", "0100010", "0000000"],
x: ["00000", "10001", "01010", "00100", "01010", "10001", "00000"],
y: ["00000", "10001", "01010", "00100", "00100", "00100", "00000"],
z: ["00000", "11111", "00010", "00100", "01000", "11111", "00000"],
'!': ["0", "1", "1", "1", "0", "1", "0"],
"'": ["0", "1", "0", "0", "0", "0", "0"],
".": ["0", "0", "0", "0", "0", "1", "0"],
"|": ["0", "1", "1", "1", "1", "1", "0"],
"%": ["1001", "1001", "0010", "0100", "1001", "1001", "0000"],
"$": ["0110", "1001", "0110", "0010", "1001", "0110", "0000"],
"*": ["000", "010", "111", "010", "000", "000", "000"],
"/": ["000000", "000010", "000100", "001000", "010000", "100000", "000000"],
"(": ["000", "001", "010", "010", "010", "001", "000"],
")": ["000", "100", "010", "010", "010", "100", "000"],
"<": ["000", "001", "010", "100", "010", "001", "000"],
">": ["000", "100", "010", "001", "010", "100", "000"],
"[": ["00", "11", "10", "10", "10", "11", "00"],
"]": ["00", "11", "01", "01", "01", "11", "00"],
"{": ["00", "01", "10", "01", "10", "01", "00"],
"}": ["00", "10", "01", "10", "01", "10", "00"],
"_": ["000", "000", "000", "000", "000", "000", "111"],
"°": ["0110", "1001", "1001", "0110", "0000", "0000", "0000"],
"º": ["0110", "1001", "1001", "0110", "0000", "0000", "0000"],
"ª": ["0110", "1001", "0110", "0000", "0000", "0000", "0000"],
"&": ["0000", "0110", "1000", "0101", "1010", "0101", "0000"],
"#": ["00000", "01010", "11111", "01010", "11111", "01010", "00000"],
"@": ["01110", "10001", "10101", "10111", "10000", "01110", "00000"],
'^': ["00100", "01010", "10001", "00000", "00000", "00000", "00000"],
'"': ["000", "101", "101", "000", "000", "000", "000"],
'+': ["000", "000", "010", "111", "010", "000", "000"],
'-': ["000", "000", "000", "111", "000", "000", "000"],
'=': ["000", "000", "111", "000", "111", "000", "000"],
'?': ["000", "111", "001", "010", "000", "010", "000"],
'0': ["000", "111", "101", "101", "101", "111", "000"],
'1': ["00", "01", "11", "01", "01", "01", "00"],
'2': ["000", "111", "001", "010", "100", "111", "000"],
'3': ["000", "111", "001", "111", "001", "111", "000"],
'4': ["000", "101", "101", "111", "001", "001", "000"],
'5': ["000", "111", "100", "111", "001", "111", "000"],
'6': ["000", "111", "100", "111", "101", "111", "000"],
'7': ["000", "111", "001", "010", "100", "100", "000"],
'8': ["000", "111", "101", "111", "101", "111", "000"],
'9': ["000", "111", "101", "111", "001", "111", "000"],
' ': ["0", "0", "0", "0", "0", "0", "0"] }
emoticon_bg = ":transparent_square:" if emoticon_bg.to_s == ""
emoticon_text = ":black_square:" if emoticon_text.to_s == ""
string.downcase!
messages = []
string = string.strip.split(" ").join(" ")
lines = [""]
string.split(" ").each do |t|
if ("#{lines[-1]}#{t}").size <= 6
lines[-1] = "#{lines[-1]}#{t} "
else
lines[-1].strip!
lines.pop if lines[-1] == ""
if t.size > 6
t.chars.each_slice(6).map(&:join).each do |tt|
lines << tt.strip
end
lines[-1] += " " if lines[-1].size < 6
else
lines << t.strip + " "
end
end
end
lines[-1].strip!
messages = []
lines.each do |line|
results = []
all_spaces = true
line.each_char do |char|
if chars.key?(char.to_sym)
results << chars[char.to_sym]
all_spaces = false
else
results << chars[:' ']
end
end
unless all_spaces
rtxt = ""
7.times do |n|
results.size.times do |i|
rtxt += "0#{results[i][n]}0"
end
rtxt += "\n"
end
rtxt.gsub!("1", emoticon_text)
rtxt.gsub!("0", emoticon_bg)
txt = ""
msgs = []
rtxt.split("\n").each do |m|
if (m + txt).size > 4000
msgs << txt unless txt == ""
txt = ""
end
txt += (m + "\n")
end
msgs << txt
msgs.flatten!
msgs.each do |msg|
messages << respond(msg, return_message: true)
end
end
end
unless permanent
react :heavy_check_mark
sleep (minutes.to_i * 60)
messages.delete(nil)
messages.each do |message|
delete(message.channel, message.ts)
end
react :heavy_minus_sign
end
end
end