Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/alkorgun/blacksmith-2.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAl Korgun <alkorgun@gmail.com>2012-11-13 00:59:21 +0400
committerAl Korgun <alkorgun@gmail.com>2012-11-13 00:59:21 +0400
commit4683b672e25f41c78f7457fdf56e165eddb260f7 (patch)
treec335acafb38dcb2325c7afa61b89f7ff72b948e8
parente1719d7fdebdc28322a1d442172f224f84915038 (diff)
added 2 commands: download, shorten (url shortener); sheriff optimized; converter's help fixed; added silent shutdown/reload
-rw-r--r--BlackSmith.py24
-rw-r--r--expansions/access/insc.py2
-rw-r--r--expansions/allweb/code.py85
-rw-r--r--expansions/allweb/download.en8
-rw-r--r--expansions/allweb/download.name4
-rw-r--r--expansions/allweb/download.ru8
-rw-r--r--expansions/allweb/google.en2
-rw-r--r--expansions/allweb/shorten.en4
-rw-r--r--expansions/allweb/shorten.name4
-rw-r--r--expansions/allweb/shorten.ru4
-rw-r--r--expansions/basic_control/code.py24
-rw-r--r--expansions/basic_control/exit.en4
-rw-r--r--expansions/basic_control/exit.ru4
-rw-r--r--expansions/basic_control/insc.py4
-rw-r--r--expansions/basic_control/reload.en4
-rw-r--r--expansions/basic_control/reload.ru4
-rw-r--r--expansions/books/books.en2
-rw-r--r--expansions/books/library.en2
-rw-r--r--expansions/converter/code.py4
-rw-r--r--expansions/interpreter/eval.en2
-rw-r--r--expansions/sheriff/code.py25
-rw-r--r--expansions/sheriff/insc.py42
-rw-r--r--librarys.zipbin98976 -> 98976 bytes
23 files changed, 202 insertions, 64 deletions
diff --git a/BlackSmith.py b/BlackSmith.py
index 0728523..a6f7ac5 100644
--- a/BlackSmith.py
+++ b/BlackSmith.py
@@ -264,7 +264,7 @@ GenConFile = static % ("config.ini")
ConDispFile = static % ("clients.ini")
ChatsFile = dynamic % ("chats.db")
-(BsMark, BsVer, BsRev) = (2, 32, 0)
+(BsMark, BsVer, BsRev) = (2, 33, 0)
if os.access(SvnCache, os.R_OK):
Cache = open(SvnCache).readlines()
@@ -1080,7 +1080,7 @@ def get_pipe(command):
data = "(...)"
return data
-class Web(object):
+class Web:
import urllib as One, urllib2 as Two
@@ -1109,9 +1109,14 @@ class Web(object):
dest.add_header(header, desc)
return self.Opener.open(dest)
- def download(self, filename = None, feedback = None, header = ()):
+ def download(self, filename = None, folder = None, feedback = None, header = ()):
fp = self.open(header)
info = fp.info()
+ size = info.get("Content-Length", -1)
+ if isNumber(size):
+ size = int(size)
+ else:
+ raise SelfExc("server gives no info about file size")
if not filename:
if info.has_key("Content-Disposition"):
disp = info.get("Content-Disposition")
@@ -1123,16 +1128,17 @@ class Web(object):
filename = self.One.unquote_plus(fp.url.split("/")[-1].split("?")[0].replace("%25", "%"))
if not filename:
raise SelfExc("can't get filename")
+ if folder:
+ filename = os.path.join(folder, filename)
+ if AsciiSys:
+ filename = filename.encode("utf-8")
blockSize = 8192
blockNumb = 0
read = 0
- size = info.get("Content-Length", -1)
- if isNumber(size):
- size = int(size)
- with open(filename.encode("utf-8"), "wb") as dfp:
+ with open(filename, "wb") as dfp:
while VarCache["alive"]:
if feedback:
- exec_(feedback, (blockNumb, blockSize, size))
+ exec_(feedback, (info, blockNumb, blockSize, size))
data = fp.read(blockSize)
if not data:
break
@@ -1141,6 +1147,8 @@ class Web(object):
read += len(data)
if size >= 0 and read < size:
raise SelfExc("file is corrupt, lost %d bytes" % (size - read))
+ if AsciiSys:
+ filename = filename.decode("utf-8")
return (filename, info, size)
get_page = lambda self, header = (): self.open(header).read()
diff --git a/expansions/access/insc.py b/expansions/access/insc.py
index f4a4dd5..4a9b9ca 100644
--- a/expansions/access/insc.py
+++ b/expansions/access/insc.py
@@ -18,7 +18,7 @@ else:
AnsBase_temp = (
"Your access = %s", # 0
"%s's access = %s", # 1
- "I have no information about '%s'.", # 2
+ "I have no info about '%s'.", # 2
"No global accesses.", # 3
"No local accesses.", # 4
"Access list:\n", # 5
diff --git a/expansions/allweb/code.py b/expansions/allweb/code.py
index e21f371..583c49e 100644
--- a/expansions/allweb/code.py
+++ b/expansions/allweb/code.py
@@ -1,8 +1,8 @@
# coding: utf-8
# BlackSmith mark.2
-exp_name = "allweb" # /code.py v.x15
-# Id: 25~15b
+exp_name = "allweb" # /code.py v.x17
+# Id: 25~17b
# Code © (2011-2012) by WitcherGeralt [alkorgun@gmail.com]
expansion_register(exp_name)
@@ -514,6 +514,83 @@ class expansion_temp(expansion):
answer = self.AnsBase[1]
Answer(answer, ltype, source, disp)
+ def command_url_shorten(self, ltype, source, body, disp):
+ if body:
+ Req = Web("http://is.gd/create.php?", [("format", "json"), ("url", body.encode("utf-8"))])
+ try:
+ data = Req.get_page(self.UserAgent)
+ except Web.Two.HTTPError, exc:
+ answer = str(exc)
+ except:
+ answer = self.AnsBase[0]
+ else:
+ try:
+ data = self.json.loads(data)
+ except:
+ answer = self.AnsBase[1]
+ else:
+ try:
+ answer = data["shorturl"]
+ except KeyError:
+ try:
+ answer = data["errormessage"]
+ except KeyError:
+ answer = self.AnsBase[5]
+ else:
+ answer = AnsBase[1]
+ Answer(answer, ltype, source, disp)
+
+ def download_process(self, info, blockNumb, blockSize, size):
+ if not blockNumb:
+ Print("\n")
+ Print(info, color4)
+ else:
+ done = (blockNumb * blockSize)
+ if done >= size:
+ Print("Done.", color3)
+ else:
+ Print("loaded - %.2f%s" % ((done / (float(size) / 100)), chr(37)), color4)
+
+ def command_download(self, ltype, source, body, disp):
+ if body:
+ body = body.split()
+ if len(body) == 1:
+ link = body.pop()
+ folder = None
+ filename = None
+ elif len(body) == 2:
+ link, folder = body
+ filename = None
+ else:
+ link, folder, filename = body[:3]
+ if folder:
+ if AsciiSys:
+ folder = folder.encode("utf-8")
+ if not os.path.isdir(folder):
+ try:
+ os.makedirs(folder)
+ except:
+ link = None
+ if AsciiSys:
+ folder = folder.decode("utf-8")
+ if link:
+ Req = Web(link)
+ try:
+ data = Req.download(filename, folder, self.download_process, self.UserAgent)
+ except Web.Two.HTTPError, exc:
+ answer = str(exc)
+ except SelfExc:
+ answer = exc_info()[1]
+ except:
+ answer = self.AnsBase[0]
+ else:
+ answer = "Done.\nPath: %s\nSize: %s" % (data[0], Size2Text(data[2]))
+ else:
+ answer = AnsBase[2]
+ else:
+ answer = AnsBase[1]
+ Answer(answer, ltype, source, disp)
+
if DefLANG in ("RU", "UA"):
def command_chuck(self, ltype, source, body, disp):
@@ -532,7 +609,7 @@ class expansion_temp(expansion):
comp = compile__("<a href=/quote/(\d+?)>.+?<blockquote>(.+?)</blockquote>", 16)
data = comp.search(data)
if data:
- answer = self.decodeHTML("Fact: #%s\n%s" % data.groups())
+ answer = self.decodeHTML("#%s\n%s" % data.groups())
else:
answer = self.AnsBase[1]
Answer(answer, ltype, source, disp)
@@ -874,6 +951,8 @@ class expansion_temp(expansion):
(command_google_translate, "tr", 2,),
(command_imdb, "imdb", 2,),
(command_python, "python", 2,),
+ (command_url_shorten, "shorten", 2,),
+ (command_download, "download", 2,),
(command_chuck, "chuck", 2,),
(command_bash, "bash", 2,)
)
diff --git a/expansions/allweb/download.en b/expansions/allweb/download.en
new file mode 100644
index 0000000..db2bf4f
--- /dev/null
+++ b/expansions/allweb/download.en
@@ -0,0 +1,8 @@
+file downloader
+download [url] (folder) (filename)
+*/download http://blacksmith-2.googlecode.com/files/Black-2.30.r71.zip
+bot would download Black-2.30.r71.zip
+*/download http://blacksmith-2.googlecode.com/files/Black-2.30.r71.zip Downloads
+bot would put file into "Downloads"
+*/download http://blacksmith-2.googlecode.com/files/Black-2.30.r71.zip Downloads Black-2.zip
+bot would put file into "Downloads" with name "Black-2.zip" \ No newline at end of file
diff --git a/expansions/allweb/download.name b/expansions/allweb/download.name
new file mode 100644
index 0000000..b8512bf
--- /dev/null
+++ b/expansions/allweb/download.name
@@ -0,0 +1,4 @@
+{
+ "RU": "скачать",
+ "UA": "скачать"
+} \ No newline at end of file
diff --git a/expansions/allweb/download.ru b/expansions/allweb/download.ru
new file mode 100644
index 0000000..6d465c2
--- /dev/null
+++ b/expansions/allweb/download.ru
@@ -0,0 +1,8 @@
+загрузка файлов
+скачать [ссылка] (папка) (имя_файла)
+*/скачать http://blacksmith-2.googlecode.com/files/Black-2.30.r71.zip
+бот скачает Black-2.30.r71.zip
+*/скачать http://blacksmith-2.googlecode.com/files/Black-2.30.r71.zip Downloads
+бот скачает файл с папку "Downloads"
+*/скачать http://blacksmith-2.googlecode.com/files/Black-2.30.r71.zip Downloads Black-2.zip
+бот скачает файл с папку "Downloads" с именем "Black-2.zip" \ No newline at end of file
diff --git a/expansions/allweb/google.en b/expansions/allweb/google.en
index 6d4bf49..12bbf84 100644
--- a/expansions/allweb/google.en
+++ b/expansions/allweb/google.en
@@ -1,6 +1,6 @@
google search
google [text/*]
-*/google
+*/google blah blah
bot would show 1st search result
*/google *
bot would show next result \ No newline at end of file
diff --git a/expansions/allweb/shorten.en b/expansions/allweb/shorten.en
new file mode 100644
index 0000000..a99678d
--- /dev/null
+++ b/expansions/allweb/shorten.en
@@ -0,0 +1,4 @@
+url shortener (powered by is.gd)
+shorten [url]
+*/shorten http://code.google.com/p/blacksmith-2/
+bot would shorten url to http://is.gd/FntYVl \ No newline at end of file
diff --git a/expansions/allweb/shorten.name b/expansions/allweb/shorten.name
new file mode 100644
index 0000000..46b91c1
--- /dev/null
+++ b/expansions/allweb/shorten.name
@@ -0,0 +1,4 @@
+{
+ "RU": "сократи",
+ "UA": "сократи"
+} \ No newline at end of file
diff --git a/expansions/allweb/shorten.ru b/expansions/allweb/shorten.ru
new file mode 100644
index 0000000..fc069a6
--- /dev/null
+++ b/expansions/allweb/shorten.ru
@@ -0,0 +1,4 @@
+сокращение ссылкок (при помощи is.gd)
+сократи [ссылка]
+*/сократи http://code.google.com/p/blacksmith-2/
+сократит ссылку до http://is.gd/FntYVl \ No newline at end of file
diff --git a/expansions/basic_control/code.py b/expansions/basic_control/code.py
index 53e96d1..31bf81b 100644
--- a/expansions/basic_control/code.py
+++ b/expansions/basic_control/code.py
@@ -1,8 +1,8 @@
# coding: utf-8
# BlackSmith mark.2
-exp_name = "basic_control" # /code.py v.x9
-# Id: 06~3b
+exp_name = "basic_control" # /code.py v.x10
+# Id: 06~4b
# Code © (2009-2011) by WitcherGeralt [alkorgun@gmail.com]
expansion_register(exp_name)
@@ -166,10 +166,11 @@ class expansion_temp(expansion):
def command_reload(self, ltype, source, body, disp):
exit_desclr = self.AnsBase[11] % (source[2])
- if body:
- exit_desclr += self.AnsBase[1] % (body)
- for conf in Chats.keys():
- Message(conf, exit_desclr, Chats[conf].disp)
+ if body not in ("silent", "тихо".decode("utf-8")):
+ if body:
+ exit_desclr += self.AnsBase[1] % (body)
+ for conf in Chats.keys():
+ Message(conf, exit_desclr, Chats[conf].disp)
time.sleep(6)
VarCache["alive"] = False
iThr.Threads_kill()
@@ -180,11 +181,12 @@ class expansion_temp(expansion):
Exit("\n\nRestart command...", 0, 15)
def command_exit(self, ltype, source, body, disp):
- exit_desclr = self.AnsBase[12] % (source[2])
- if body:
- exit_desclr += self.AnsBase[1] % (body)
- for conf in Chats.keys():
- Message(conf, exit_desclr, Chats[conf].disp)
+ exit_desclr = self.AnsBase[11] % (source[2])
+ if body not in ("silent", "тихо".decode("utf-8")):
+ if body:
+ exit_desclr += self.AnsBase[1] % (body)
+ for conf in Chats.keys():
+ Message(conf, exit_desclr, Chats[conf].disp)
time.sleep(6)
VarCache["alive"] = False
iThr.Threads_kill()
diff --git a/expansions/basic_control/exit.en b/expansions/basic_control/exit.en
index 22f6f40..44e888e 100644
--- a/expansions/basic_control/exit.en
+++ b/expansions/basic_control/exit.en
@@ -1,6 +1,8 @@
bot's shutdown
-exit (reason)
+exit (reason/silent)
*/exit
bot would shutdown
+*/exit silent
+bot would shutdown silently
*/exit update
bot would shutdown with status "update" \ No newline at end of file
diff --git a/expansions/basic_control/exit.ru b/expansions/basic_control/exit.ru
index 6c8a3aa..c180255 100644
--- a/expansions/basic_control/exit.ru
+++ b/expansions/basic_control/exit.ru
@@ -1,6 +1,8 @@
выключение бота
-выкл (причина)
+выкл (причина/тихо)
*/выкл
бот вырубится
+*/выкл тихо
+бот вырубится тихо
*/выкл обновление
бот выключится со статусом "обновление" \ No newline at end of file
diff --git a/expansions/basic_control/insc.py b/expansions/basic_control/insc.py
index 3cf4537..41205cb 100644
--- a/expansions/basic_control/insc.py
+++ b/expansions/basic_control/insc.py
@@ -3,7 +3,7 @@
if DefLANG in ("RU", "UA"):
AnsBase_temp = tuple([line.decode("utf-8") for line in (
"Внимание! %s (%s) загнал меня в -» '%s'", # 0
- "\nПричина: %s", # 1
+ "\n\tПричина: %s", # 1
"Ага я зашел в -» '%s'", # 2
"Не смог зайти в -» '%s'", # 3
"АХТУНГ! %s (%s) выгнал меня из -» '%s'", # 4
@@ -24,7 +24,7 @@ if DefLANG in ("RU", "UA"):
else:
AnsBase_temp = (
"Attention! %s (%s) sent me in to -> '%s'", # 0
- "\nReason: %s", # 1
+ "\n\tReason: %s", # 1
"I have joined -> '%s'", # 2
"I can't join -> '%s'", # 3
"Attention! %s (%s) ordered me to leave -> '%s'", # 4
diff --git a/expansions/basic_control/reload.en b/expansions/basic_control/reload.en
index a50ec6d..b78fe35 100644
--- a/expansions/basic_control/reload.en
+++ b/expansions/basic_control/reload.en
@@ -1,6 +1,8 @@
bot reloads
-reload (reason)
+reload (reason/silent)
*/reload
bot would reload
+*/reload silent
+bot would reload silently
*/reload diagnostics
bot would reload with status "diagnostics" \ No newline at end of file
diff --git a/expansions/basic_control/reload.ru b/expansions/basic_control/reload.ru
index dddf20c..77f1b69 100644
--- a/expansions/basic_control/reload.ru
+++ b/expansions/basic_control/reload.ru
@@ -1,6 +1,8 @@
бот перезагружается
-рестарт (причина)
+рестарт (причина/тихо)
*/рестарт
бот перезагрузится
+*/рестарт тихо
+бот перезагрузится тихо
*/рестарт диагностика
бот перезагрузится со статусом "диагностика" \ No newline at end of file
diff --git a/expansions/books/books.en b/expansions/books/books.en
index 7df3619..847f293 100644
--- a/expansions/books/books.en
+++ b/expansions/books/books.en
@@ -13,7 +13,7 @@ bot would show the list of sf_fantasy books
*/books show cycle The Black Company
bot would show the list of books of "The Black Company" cycle
*/books info A Dance With Dragons
-bot would show information about "A Dance With Dragons"
+bot would show info about "A Dance With Dragons"
*/books read
bot would send you the last page of the last book, which you read
*/books read Call of Cthulhu
diff --git a/expansions/books/library.en b/expansions/books/library.en
index e8936e5..07ad927 100644
--- a/expansions/books/library.en
+++ b/expansions/books/library.en
@@ -7,7 +7,7 @@ bot would import "The Hobbit" from .fb2
*/library edit The_Two_Towers info number 2
bot would set the book's number in cycle
*/library edit The_Two_Towers info link http://example.com/book.html
-bot would add the link to the book's information
+bot would add the link to the book's info
*/library edit Star_Wars page add A long time ago, in a galaxy far far away...
bot would create the new page with the specified text
*/library edit Star_Wars page delete before 10
diff --git a/expansions/converter/code.py b/expansions/converter/code.py
index c1de82f..c677dce 100644
--- a/expansions/converter/code.py
+++ b/expansions/converter/code.py
@@ -22,7 +22,7 @@ class expansion_temp(expansion):
"minute": 525960.0, # Минута
"second": 31557600.0, # Секунда
},
- "information": { # Информация
+ "info": { # Информация
"bit": 1.0, # Бит !# Base
"kbit": 9.765625e-04, # 2^10
"mbit": 9.53674316406e-07, # 2^20
@@ -217,7 +217,7 @@ class expansion_temp(expansion):
data = get_text(data, '\t\t"%s"\:\s\{' % (Desc), '\},')
if data:
comp = compile__('\t\t\t"(.+?)"\:.+?,\s+?\#\s(.+?)\n', 16)
- list = comp.findall(data)
+ list = comp.findall("\n%s\n" % data)
if list:
ls = [Desc + ":"]
for data in list:
diff --git a/expansions/interpreter/eval.en b/expansions/interpreter/eval.en
index 223bd4f..1a36009 100644
--- a/expansions/interpreter/eval.en
+++ b/expansions/interpreter/eval.en
@@ -3,4 +3,4 @@ eval [code]
*/eval get_file(PidFile)
bot would read PID.txt and show it's content
*/eval ["1", "2"]*3
-answer would be - ['1', '2', '1', '2', '1', '2'] \ No newline at end of file
+answer would be -> ['1', '2', '1', '2', '1', '2'] \ No newline at end of file
diff --git a/expansions/sheriff/code.py b/expansions/sheriff/code.py
index fe6a716..cce0092 100644
--- a/expansions/sheriff/code.py
+++ b/expansions/sheriff/code.py
@@ -1,8 +1,8 @@
# coding: utf-8
# BlackSmith mark.2
-exp_name = "sheriff" # /code.py v.x6
-# Id: 15~4a
+exp_name = "sheriff" # /code.py v.x7
+# Id: 15~5a
# Code © (2011) by WitcherGeralt [alkorgun@gmail.com]
expansion_register(exp_name)
@@ -201,9 +201,13 @@ class expansion_temp(expansion):
return True
return False
+ Obscene = None
+
def obscene_checker(self, body):
+ if not self.Obscene:
+ self.Obscene = self.AnsBase[33].split(chr(47))
body = " %s " % body.lower()
- for dkey in self.AnsBase[33].split(chr(47)):
+ for dkey in self.Obscene:
if body.count(dkey):
return True
return False
@@ -391,6 +395,8 @@ class expansion_temp(expansion):
Chats[conf].outcast(inst, self.AnsBase[12] % (BsNick))
raise iThr.ThrKill("exit")
+ Questions = []
+
def Security_04eh(self, conf, nick, source_, role, stanza, disp):
if source_ and nick != get_self_nick(conf):
access = get_access(conf, nick)
@@ -414,11 +420,14 @@ class expansion_temp(expansion):
if ChatsAttrs[conf]["laws"]["verif"] and access < 2 and AflRoles[2] == role[0]:
if not prisoner.verif and not prisoner.devoice:
Chats[conf].visitor(nick, self.AnsBase[17] % get_self_nick(conf))
- ques = choice(self.AnsBase[19].splitlines())
- ques = ques.split(chr(124), 1)
- prisoner.vakey = (ques[1].strip()).lower()
- Message("%s/%s" % (conf, nick), self.AnsBase[18] % (ques[0].strip()), disp)
- del ques
+ if not self.Questions:
+ for qu in self.AnsBase[19].splitlines():
+ qu, an = qu.split(chr(124), 1)
+ self.Questions.append((qu.strip(), an.strip().lower()))
+ qu, an = choice(self.Questions)
+ prisoner.vakey = an
+ Message("%s/%s" % (conf, nick), self.AnsBase[18] % (qu), disp)
+ del qu, an
list = getattr(prisoner, "prdates")
if len(list) >= 4:
if (list[-1] - list[0]) <= 10:
diff --git a/expansions/sheriff/insc.py b/expansions/sheriff/insc.py
index f0f0aeb..38e6dec 100644
--- a/expansions/sheriff/insc.py
+++ b/expansions/sheriff/insc.py
@@ -21,16 +21,16 @@ if DefLANG in ("RU", "UA"):
"%s лишение голоса на %d секунд.", # 16
"%s авторизация.", # 17
"Чтобы получить голос %s, у тебя три попытки.", # 18
- """ напиши: «сезам откройся» (без кавычек) | сезам откройся
- напиши: «я не бот» (без кавычек) | я не бот
- напиши: вторую букву русского алфавита | б
- напиши: шестую букву русского алфавита | е
- реши: семь + 121 = ? (ответ числом) | 128
- реши: три + 253 = ? (ответ числом) | 256
- напиши: столицу Испании | Мадрид
- напиши: столицу России | Москва
- напиши: столицу Франции | Париж
- напиши: столицу Италии | Рим """, # 19
+ "напиши: «сезам откройся» (без кавычек) | сезам откройся\n"
+ "напиши: «я не бот» (без кавычек) | я не бот\n"
+ "напиши: вторую букву русского алфавита | б\n"
+ "напиши: шестую букву русского алфавита | е\n"
+ "реши: семь + 121 = ? (ответ числом) | 128\n"
+ "реши: три + 253 = ? (ответ числом) | 256\n"
+ "напиши: столицу Испании | Мадрид\n"
+ "напиши: столицу России | Москва\n"
+ "напиши: столицу Франции | Париж\n"
+ "напиши: столицу Италии | Рим", # 19
"%s: авторизация пройдена.", # 20
"Тест пройден!", # 21
"%s: не прошел авторизацию.", # 22
@@ -70,16 +70,16 @@ else:
"%s devoice in to %d seconds.", # 16
"%s verification.", # 17
"To get the voice %s, you have three attempts.", # 18
- """ type: 'codename 47' (without quotes) | codename 47
- type: 'I am not a bot' (without quotes) | I am not a bot
- type: second symbol of English alphabet | б
- type: sixth symbol of English alphabet | е
- type answer: seven + 127 = ? (integer) | 128
- type answer: three + 253 = ? (integer) | 256
- type: capital of Enland | London
- type: capital of USA | Washington
- type: capital of France | Paris
- type: capital of Russia | Moscow """, # 19
+ "type: 'codename 47' (without quotes) | codename 47\n"
+ "type: 'I am not a bot' (without quotes) | I am not a bot\n"
+ "type: second symbol of English alphabet | б\n"
+ "type: sixth symbol of English alphabet | е\n"
+ "type answer: seven + 127 = ? (integer) | 128\n"
+ "type answer: three + 253 = ? (integer) | 256\n"
+ "type: capital of Enland | London\n"
+ "type: capital of USA | Washington\n"
+ "type: capital of France | Paris\n"
+ "type: capital of Russia | Moscow", # 19
"%s: verification passed.", # 20
"Test passed!", # 21
"%s: verification missed.", # 22
@@ -93,7 +93,7 @@ else:
"\nDevoice-time (seconds): %d\nAntiobscene: ", # 30
"\nMaximum length of message: %d\nAnticaps: ", # 31
"\nMaximum length of presence: %d\nSparta mode: ", # 32
- " fuck / shit /motherfucker/unclefucker/ bitch / faggot / cock / cunt ", # 33
+ " fuck / shit / bitch / faggot / cock / cunt ", # 33
"Server already in the white list.", # 34
"Server not in extra white list.", # 35
"This is not a server." # 36
diff --git a/librarys.zip b/librarys.zip
index fc0c2bf..f1b5bf5 100644
--- a/librarys.zip
+++ b/librarys.zip
Binary files differ