python jabber MUC bot "dictionary"(worddict.py)

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
# -*- coding: utf-8 -*-
import re
from random import choice,seed
def wlist(arg,body,sender,self_nick):
seed()
def echoer(named=0):
if named:
return re.sub('(?i)'+self_nick.lower,sender,body)
else:
return (sender + ", " + body)
def regexper(st):
exprs = {
ur"^пивк?(о|а|у|ом|е)$" : u'beer',
ur"^.{0,2}(k|c)t?h?u(tu)?lh?.{1,3}$" : u'cthulhu',
ur"^.{0,2}(к|ц)т?у(ту)?лх?.{1,4}$" : u'cthulhu',
ur"^б(з|с)д.{0,3}?$" : u'freeBSD',
ur"^фр((е|ё|я)вый|яшный|.{1,3})$" : u'freeBSD',
ur"^.{0,5}bsd$" : u'freeBSD',
ur"^гент.{1,3}$" : u'gentoo',
ur"^генточк.{1,3}$" : u'gentoo',
ur"^слак.{1,3}$" : u'slackware',
ur"^слакт?вар.{1,3}$" : u'slackware',
ur"^8.?ball$" : u'8ball',
ur"^аськ.{1,3}$" : u'icq',
ur"^(питон|пайтон).{0,3}$" : u'python',
ur"^(war|jar|ear|яв(а|у|е|ой))$" : u'java'
}
for expr in exprs:
if re.search(expr,st):
return exprs.get(expr)
return 0
beer = [u"День без пива — почки на ветер.",
u"—Когда лучше пить пиво: до работы или после работы? \n—Вместо!",
u"Бутылка пива с утра, первый шаг в неизвестность.",
u"В пивной церемонии всё должно быть культурно:"+\
u"и долив после отстоя и отлив после допива.",
u"Вобла рождается, чтобы ее завялили.",
u"Господа, требуйте долива пива! "
]
java = [u"Java — тормознутое корявое говно",
u"Подать рулончик туалетной бумаги?",
u"Хватит матерится!",
u"Просто всё остальное слишком быстро работает",
u"Квакает жаба\n"+\
u"Пойду, познакомлюсь. Может…\n"+\
u"Надую. \n"+\
u"\t~ Дарт Херохито."
]
slackware = [u"Слака рулит",
u"Патрегбох!",
u"А вы, Патрикоугодны?",
u"Не даунгрейдь libc!!!",
u"Русские физики выбирают Slackware и ломают DNSы",
u"Отрицательные сентенции ВСЛ"
]
gentoo = [u"Gentoo рулит",
u"Красноглазики!",
u"Сказка о гентушнике и семи ебилдиках",
u"Пиши оверлеи!",
u"genkernel — говно",
u"rm -rf /var/db/pkg",
]
freeBSD = [u"кто бздун?",
u"в бзде из хорошего только лицензия",
u"No wai",
u"Бзди (англ. *BSD) — семейство сотонистских операционных" +\
u"систем, похожих на мегаось от Берклийского университета" +\
u"(Бздю) и названные так в честь неё",
u"Как поживает ваша паранойя?\n"+\
u"\t~ Свободная Бздя про Открытую Бздю",
u"Даешь FreeBDSM!",
u"Сетевая Бздя (англ. NetBSD) — ось для микроволновок" +\
u"и тостеров"
]
cthulhu = [u"(;,;)",
u"{:€",
u"оО,,Оо",
u"~^,,,^~",
u"Ph'nglui mglw'nafh C'thulhu R'lyeh wgah'nagl fhtagn",
u"In his house at R'lyeh dead C'thulhu waits dreaming.",
u"В своей обители в Р'льэх дремлет мёртвый Ктулу",
u"Ф'нглуи мглв'нафх Ктулху Р'лиех Вгах'нагл фхтагн.",
u"""В Жилище Своем в Р'лиех Мертвый Ктухлу ожидает во сне,\n""" + \
u"""но Он восстанет, и царство Его вновь наступит на Земле.""",
u"Ктулхо зохаваит всех!",
u"Ктулху фхтагн!",
u"Фхтагн!"
]
python = [u"Питон позволяет вам делать то, что вы и так смогли бы сделать"+\
u"но так, как вы никогда не смогли бы этого сделать",
u"Длина питона может достигать 6-8 метров.",
u"Должен существовать один — и, желательно, только один —" +\
u"очевидный способ. Хотя он может быть с первого взгляда" +\
u"неочевиден, если ты не употребляешь легкие наркотики"
]
icq = [u"Тук-тук, Нео!\n"+\
u"\t~ ICQ про Нео",
u"Big Brother is seeking you!\n"+\
u"\t~ Матрица про ICQ",
u"Купи пятизнак!\n"+\
u"\t~ Хакер про ICQ",
u"Ням-ням!\n"+\
u"\t~ Ктулху про пользователей ICQ",
u"Поменялся протокол? Тогда мы идём к вам!",
u"icq — не кошерно!",
u"icq — не православно",
u"jabber рулит"
]
eightBall = [u" As I see it, yes",
u"It is certain",
u"It is decidedly so",
U"mOST LIkely",
u"Outlook good",
u"Signs point to yes",
u"Without a doubt",
u"Yes",
u"Yes - definitely",
u"You may rely on it",
u"Reply hazy, try again",
u"Ask again later",
u"Better not tell you now",
u"Cannot predict now",
u"Concentrate and ask again",
u"Don't count on it",
u"My reply is no",
u"My sources say no",
u"Outlook not so good",
u"Very doubtful"
]
helper = u"\n"+\
u"'ping' — 'pong'\n"+\
u"'last [name]' — print last message [of user]\n"+\
u"'echo [text]' — 'echo [text]'\n"+\
u"'8ball' — получить ответ 8ball-a\n"+\
u"'/random Int' — случайное число от 0 до int\n"
switch = {
self_nick.lower: u'Я бот',
u'hello' : echoer(),
u"привет" : echoer(),
u"ку" : u'ку',
u'echo' : echoer(),
u'ping' : 'pong',
u'help' : helper,
u'beer' : choice(beer),
u'java' : choice(java),
u'gentoo' : choice(gentoo),
u'slackware' : choice(slackware),
u'slack' : choice(slackware),
u'8ball' : choice(eightBall),
u'cthulhu' : choice(cthulhu),
u'freeBSD' : choice(freeBSD),
u'python' : choice(python),
u'icq' : choice(icq)
}
try:
t = regexper(arg)
if t:
return switch[t]
else:
return switch[arg]
except Exception:
pass