131 lines
2.8 KiB
Ruby
131 lines
2.8 KiB
Ruby
require 'cinch'
|
||
require 'cinch-dicebag'
|
||
require_relative 'plugins/history'
|
||
require_relative 'plugins/link_info'
|
||
require_relative 'plugins/help'
|
||
require_relative 'plugins/seen'
|
||
|
||
def translit (text)
|
||
table = {
|
||
"a"=>["А","а"],
|
||
"aa"=>["А","а"],
|
||
"ah"=>["А","а"],
|
||
"au"=>["ой"],
|
||
"ae"=>["э", "е"],
|
||
"ai"=>["ай"],
|
||
"ay"=>["ай"],
|
||
"b"=>["Б","б"],
|
||
"ch"=>["Ч", "ч"],
|
||
"chh"=>["хх"],
|
||
"chs"=>["кс"],
|
||
"ck"=>["к"],
|
||
"d"=>["д"],
|
||
"dh"=>["д"],
|
||
"e"=>["е"],
|
||
"ee"=>["е", "э"],
|
||
"eh"=>["е", "э"],
|
||
"ei"=>["ай"],
|
||
"eu"=>["ой"],
|
||
"ey"=>["ай"],
|
||
"j" => ["й"],
|
||
"4"=>["ч"],
|
||
"f"=>["ф"],
|
||
"g"=>["г"],
|
||
"gk"=>["г", "гк"],
|
||
"h"=>["х"],
|
||
"i"=>["и"],
|
||
"ih"=>["и"],
|
||
"ie"=>["е"],
|
||
"ieh"=>["е"],
|
||
"ja"=>["я"],
|
||
"je"=>["е"],
|
||
"ji"=>["йи"],
|
||
"jo"=>["йо"],
|
||
"ju"=>["ю"],
|
||
"k"=>["к"],
|
||
"l"=>["л"],
|
||
"ll"=>["лл", "лль"],
|
||
"m"=>["м"],
|
||
"n"=>["н"],
|
||
"o"=>["о"],
|
||
"oo"=>["о"],
|
||
"oh"=>["о"],
|
||
"oe"=>["э", "ё"],
|
||
"oi"=>["ой"],
|
||
"oy"=>["ой"],
|
||
"p"=>["п"],
|
||
"ph"=>["ф"],
|
||
"qu"=>["кв"],
|
||
"r"=>["р"],
|
||
"rh"=>["р"],
|
||
"s"=>["з", "с"],
|
||
"sch"=>["ш"],
|
||
"schtsch"=>["щ"],
|
||
"sp"=>["шп", "сп"],
|
||
"st"=>["шn", "ст"],
|
||
"ss"=>["сс", "с"],
|
||
"t"=>["т"],
|
||
"th"=>["т", "тх"],
|
||
"tion"=>["цион"],
|
||
"tsch"=>["ч", "чш"],
|
||
"tz"=>["тц", 'ц'],
|
||
"u"=>["у"],
|
||
"uh"=>["у"],
|
||
"ue"=>["у", "ю"],
|
||
"ui"=>["у", "ю"],
|
||
"v"=>["ф"],
|
||
"w"=>["в"],
|
||
"x"=>["кс"],
|
||
"y"=>["и"],
|
||
"yh"=>["и"],
|
||
"z"=>["ж"],
|
||
"zh"=>["ж"],
|
||
"zsch"=>["ч"],
|
||
"tzsch"=>["цш"],
|
||
}
|
||
map = table.sort_by {|k,v| v.length <=> k.length}
|
||
map.each do |translit_key, translit_value|
|
||
text.gsub!(translit_key.capitalize, translit_value.first)
|
||
text.gsub!(translit_key, translit_value.last)
|
||
end
|
||
text
|
||
end
|
||
|
||
bot = Cinch::Bot.new do
|
||
configure do |c|
|
||
c.server = "irc.forestnet.org"
|
||
c.port = 6667
|
||
c.channels = ["#urq", "#instead", "#qsp", "#ifrus"]
|
||
c.nick = 'Дроид'
|
||
c.plugins.plugins = [
|
||
Cinch::Plugins::Dicebag,
|
||
Cinch::History,
|
||
Cinch::Help,
|
||
Cinch::LinkInfo,
|
||
Cinch::Seen
|
||
]
|
||
c.plugins.options[Cinch::History] = {
|
||
:mode => :max_messages,
|
||
:max_messages => 20,
|
||
# :max_age => 5,
|
||
:time_format => "%H:%M",
|
||
}
|
||
c.plugins.options[Cinch::Seen] = {
|
||
:file => "/home/znc/seenlog.dat"
|
||
}
|
||
c.plugins.options[Cinch::LinkInfo] = {
|
||
:blacklist => [/\.xz$/i, /\.zip$/i, /\.rar$/i],
|
||
:no_description => true,
|
||
}
|
||
end
|
||
|
||
on :message do |m|
|
||
if m.user.nick == 'MAlischka' or m.user.nick == 'MA' then
|
||
m.reply( translit(m.message) )
|
||
end
|
||
end
|
||
end
|
||
bot.loggers.level = :info
|
||
|
||
bot.start
|