# encoding: utf-8
require 'xmpp4r'
require 'xmpp4r/muc'
require 'xmpp4r/roster'
require 'xmpp4r/client'
class Object
def да
true
end
def нет
false
end
end
module Dzabber
class Pacan
def initialize(options)
options.keys.each do |key|
self.class.send(:define_method, key) do
options[key]
end
end
end
def спрашивать_за_слова?(bool)
@filter = bool
end
def запас_слов(bazar)
@bazar = bazar
end
def погоняло(klikucha)
@nickname = klikucha || 'просто чёткий пацан'
end
def начать_базар!
@client = Jabber::Client.new(Jabber::JID.new(user))
@client.connect
@client.auth(password)
@room = Jabber::MUC::MUCClient.new(@client)
@room.join Jabber::JID.new("#{conference}/#{@nickname}")
@room.add_message_callback do |m|
if новае? m
lap = @bazar.sample
msg = m.body
whom = m.from.resource
if msg.include?(@nickname + ":")
спросить_за_базар("#{whom}: #{lap}")
else
if @filter
спросить_за_базар(lap)
end
end
end
end
end
def давай_досвидание
@client.disconnect
end
private
def спросить_за_базар(that)
msg = Jabber::Message.new()
msg.body = that
@room.send(msg)
end
def новае?(msg)
!msg.first_element('delay') &&
!msg.from.resource.nil? &&
msg.from.resource != @nickname
end
end
end
слова = ["эээ, мужык бля!",
"слух тут это типа такое бля дело ",
"ну ёпт где ну ты поэл",
"данепесди",
"ты с тута? ",
"а не съебусь с этой бурды?",
"мужик, а это, до того, ну, туда, где … ?",
"тыбля щяогребёшь гнида!",
"падём-выдем?",
"здарова чуваки!",
"узналбля? ",
"ну чо, хуила, допезделса ",
"я срать, ебошь жрать нахуй!",
"хуяк и обанааа",
"нуёптыбля",
"эээээээ",
"эйтыбля",
"нубля как туданах, где это? нутыпоэл!",
"чоооо?"
]
conf = 'foo@conf.bar'
user, password = 'foo@bar.com', 'password'
парниша = Dzabber::Pacan.new({
:conference => conf,
:user => user,
:password => password
})
парниша.погоняло 'реальный пацан'
парниша.запас_слов слова
парниша.спрашивать_за_слова? да
парниша.начать_базар!
IyBlbmNvZGluZzogdXRmLTgKcmVxdWlyZSAneG1wcDRyJwpyZXF1aXJlICd4bXBwNHIvbXVjJwpyZXF1aXJlICd4bXBwNHIvcm9zdGVyJwpyZXF1aXJlICd4bXBwNHIvY2xpZW50JwoKY2xhc3MgT2JqZWN0CiAgZGVmINC00LAKICAgIHRydWUKICBlbmQKICBkZWYg0L3QtdGCCiAgICBmYWxzZQogIGVuZAplbmQKCm1vZHVsZSBEemFiYmVyCgogIGNsYXNzIFBhY2FuCgogICAgZGVmIGluaXRpYWxpemUob3B0aW9ucykgCiAgICAgIG9wdGlvbnMua2V5cy5lYWNoIGRvIHxrZXl8CiAgICAgICAgc2VsZi5jbGFzcy5zZW5kKDpkZWZpbmVfbWV0aG9kLCBrZXkpIGRvCiAgICAgICAgICBvcHRpb25zW2tleV0KICAgICAgICBlbmQKICAgICAgZW5kIAogICAgZW5kCiAgICAKICAgIGRlZiDRgdC/0YDQsNGI0LjQstCw0YLRjF/Qt9CwX9GB0LvQvtCy0LA/KGJvb2wpCiAgICAgIEBmaWx0ZXIgPSBib29sCiAgICBlbmQKCiAgICBkZWYg0LfQsNC/0LDRgV/RgdC70L7QsihiYXphcikKICAgICAgQGJhemFyID0gYmF6YXIKICAgIGVuZAogICAgCiAgICBkZWYg0L/QvtCz0L7QvdGP0LvQvihrbGlrdWNoYSkKICAgICAgQG5pY2tuYW1lID0ga2xpa3VjaGEgfHwgJ9C/0YDQvtGB0YLQviDRh9GR0YLQutC40Lkg0L/QsNGG0LDQvScKICAgIGVuZAoKICAgIGRlZiDQvdCw0YfQsNGC0Yxf0LHQsNC30LDRgCEKICAgICAgQGNsaWVudCA9IEphYmJlcjo6Q2xpZW50Lm5ldyhKYWJiZXI6OkpJRC5uZXcodXNlcikpCiAgICAgIEBjbGllbnQuY29ubmVjdAogICAgICBAY2xpZW50LmF1dGgocGFzc3dvcmQpCiAgICAgIAogICAgICBAcm9vbSA9IEphYmJlcjo6TVVDOjpNVUNDbGllbnQubmV3KEBjbGllbnQpCiAgICAgIEByb29tLmpvaW4gSmFiYmVyOjpKSUQubmV3KCIje2NvbmZlcmVuY2V9LyN7QG5pY2tuYW1lfSIpCiAgICAgIAogICAgICBAcm9vbS5hZGRfbWVzc2FnZV9jYWxsYmFjayBkbyB8bXwKICAgICAgICBpZiDQvdC+0LLQsNC1PyBtCiAgICAgICAgICBsYXAgPSBAYmF6YXIuc2FtcGxlCiAgICAgICAgICBtc2cgID0gbS5ib2R5CiAgICAgICAgICB3aG9tID0gbS5mcm9tLnJlc291cmNlIAogICAgICAgICAgaWYgbXNnLmluY2x1ZGU/KEBuaWNrbmFtZSArICI6IikKICAgICAgICAgICAg0YHQv9GA0L7RgdC40YLRjF/Qt9CwX9Cx0LDQt9Cw0YAoIiN7d2hvbX06ICN7bGFwfSIpCiAgICAgICAgICBlbHNlCiAgICAgICAgICAgIGlmIEBmaWx0ZXIgCiAgICAgICAgICAgICAg0YHQv9GA0L7RgdC40YLRjF/Qt9CwX9Cx0LDQt9Cw0YAobGFwKQogICAgICAgICAgICBlbmQgIAogICAgICAgICAgZW5kCiAgICAgICAgZW5kCiAgICAgIGVuZAoKICAgIGVuZAogICAgCiAgICBkZWYg0LTQsNCy0LDQuV/QtNC+0YHQstC40LTQsNC90LjQtSAKICAgICAgQGNsaWVudC5kaXNjb25uZWN0CiAgICBlbmQKICAgIAogICAgcHJpdmF0ZQogICAgICAKICAgICAgZGVmINGB0L/RgNC+0YHQuNGC0Yxf0LfQsF/QsdCw0LfQsNGAKHRoYXQpCiAgICAgICAgbXNnID0gSmFiYmVyOjpNZXNzYWdlLm5ldygpCiAgICAgICAgbXNnLmJvZHkgPSB0aGF0CiAgICAgICAgQHJvb20uc2VuZChtc2cpCiAgICAgIGVuZAoKICAgICAgZGVmINC90L7QstCw0LU/KG1zZykKICAgICAgICAhbXNnLmZpcnN0X2VsZW1lbnQoJ2RlbGF5JykgJiYKICAgICAgICAhbXNnLmZyb20ucmVzb3VyY2UubmlsPyAgICAgJiYgCiAgICAgICAgbXNnLmZyb20ucmVzb3VyY2UgIT0gQG5pY2tuYW1lICAgCiAgICAgIGVuZAoKICBlbmQKZW5kCgrRgdC70L7QstCwID0gWyLRjdGN0Y0sINC80YPQttGL0Log0LHQu9GPISIsIAogICAgICAgICAgICAgICAgICLRgdC70YPRhSDRgtGD0YIg0Y3RgtC+INGC0LjQv9CwINGC0LDQutC+0LUg0LHQu9GPINC00LXQu9C+ICIsCiAgICAgICAgICAgICAgICAgItC90YMg0ZHQv9GCINCz0LTQtSDQvdGDINGC0Ysg0L/QvtGN0LsiLCAKICAgICAgICAgICAgICAgICAi0LTQsNC90LXQv9C10YHQtNC4IiwKICAgICAgICAgICAgICAgICAi0YLRiyDRgSDRgtGD0YLQsD8gIiwKICAgICAgICAgICAgICAgICAi0LAg0L3QtSDRgdGK0LXQsdGD0YHRjCDRgSDRjdGC0L7QuSDQsdGD0YDQtNGLPyIsCiAgICAgICAgICAgICAgICAgItC80YPQttC40LosINCwINGN0YLQviwg0LTQviDRgtC+0LPQviwg0L3Rgywg0YLRg9C00LAsINCz0LTQtSDigKYgPyIsCiAgICAgICAgICAgICAgICAgItGC0YvQsdC70Y8g0YnRj9C+0LPRgNC10LHRkdGI0Ywg0LPQvdC40LTQsCEiLAogICAgICAgICAgICAgICAgICLQv9Cw0LTRkdC8LdCy0YvQtNC10Lw/IiwKICAgICAgICAgICAgICAgICAi0LfQtNCw0YDQvtCy0LAg0YfRg9Cy0LDQutC4ISIsCiAgICAgICAgICAgICAgICAgItGD0LfQvdCw0LvQsdC70Y8/ICIsCiAgICAgICAgICAgICAgICAgItC90YMg0YfQviwg0YXRg9C40LvQsCwg0LTQvtC/0LXQt9C00LXQu9GB0LAgIiwKICAgICAgICAgICAgICAgICAi0Y8g0YHRgNCw0YLRjCwg0LXQsdC+0YjRjCDQttGA0LDRgtGMINC90LDRhdGD0LkhIiwKICAgICAgICAgICAgICAgICAi0YXRg9GP0Log0Lgg0L7QsdCw0L3QsNCw0LAiLAogICAgICAgICAgICAgICAgICLQvdGD0ZHQv9GC0YvQsdC70Y8iLAogICAgICAgICAgICAgICAgICLRjdGN0Y3RjdGN0Y3RjSIsCiAgICAgICAgICAgICAgICAgItGN0LnRgtGL0LHQu9GPIiwKICAgICAgICAgICAgICAgICAi0L3Rg9Cx0LvRjyDQutCw0Log0YLRg9C00LDQvdCw0YUsINCz0LTQtSDRjdGC0L4/INC90YPRgtGL0L/QvtGN0LshIiwKICAgICAgICAgICAgICAgICAi0YfQvtC+0L7Qvj8iCiAgICAgICAgICAgICAgIF0KY29uZiA9ICdmb29AY29uZi5iYXInCnVzZXIsIHBhc3N3b3JkID0gJ2Zvb0BiYXIuY29tJywgJ3Bhc3N3b3JkJyAKCtC/0LDRgNC90LjRiNCwID0gRHphYmJlcjo6UGFjYW4ubmV3KHsKICAgICAgICAgICAgICAgICAgICAgIDpjb25mZXJlbmNlID0+IGNvbmYsIAogICAgICAgICAgICAgICAgICAgICAgOnVzZXIgPT4gdXNlciwgCiAgICAgICAgICAgICAgICAgICAgICA6cGFzc3dvcmQgPT4gcGFzc3dvcmQKICAgICAgICAgICAgICAgICAgICAgIH0pCgrQv9Cw0YDQvdC40YjQsC7Qv9C+0LPQvtC90Y/Qu9C+ICfRgNC10LDQu9GM0L3Ri9C5INC/0LDRhtCw0L0nCtC/0LDRgNC90LjRiNCwLtC30LDQv9Cw0YFf0YHQu9C+0LIg0YHQu9C+0LLQsArQv9Cw0YDQvdC40YjQsC7RgdC/0YDQsNGI0LjQstCw0YLRjF/Qt9CwX9GB0LvQvtCy0LA/INC00LAK0L/QsNGA0L3QuNGI0LAu0L3QsNGH0LDRgtGMX9Cx0LDQt9Cw0YAhCgo=