1

fix: some fixes in ai parser and locale generator

This commit is contained in:
diSabler
2014-05-01 14:46:01 +04:00
parent e5295eb994
commit 8d4b92dde8
5 changed files with 31 additions and 16 deletions

View File

@@ -34,7 +34,7 @@ uptime {PAR} сколько|работает|аптайм|какой||мой|м
### Other commands ### ### Other commands ###
anek анекд|расска|? anek анекд|расска|?
calend {DATE} праздник|?|какой|что|сегодня calend праздник|?|какой|что|сегодня
calend {DATE+D1} праздник|?|какой|что|завтра calend {TOMORROW} праздник|?|какой|что|завтра
oboobs сиськи|сиську|титьки|титьку|покажи|покаж oboobs сиськи|сиську|титьки|титьку|покажи|покаж
obutts попу|попку|зад|жопу|покажи|покаж obutts попу|попку|зад|жопу|покажи|покаж

View File

@@ -1623,6 +1623,8 @@ Raw adblock muc filter is %s Блокировка скрытой рекламы:
Raw adblock filter Блокировка скрытой рекламы Raw adblock filter Блокировка скрытой рекламы
Repeat muc filter is %s Блокировка повтора сообщений: %s Repeat muc filter is %s Блокировка повтора сообщений: %s
Repeat same messages filter Фильтр повтора похожих сообщений Repeat same messages filter Фильтр повтора похожих сообщений
AI is %s Искусственный интеллект: %s
AI parser for messages Использовать искусственный интеллект при парсинге сообщений
Censor is %s Цензор: %s Censor is %s Цензор: %s
Censor Включение/выключение цензора Censor Включение/выключение цензора
Bomb. Time between random bombs %s Bomb. Время между случайными бомбами: %s Bomb. Time between random bombs %s Bomb. Время между случайными бомбами: %s
@@ -1830,5 +1832,5 @@ Youtube settings Настройки youtube
API settings Настройки API API settings Настройки API
# write locale file: ru.txt # write locale file: ru.txt
# total: 1478 # total: 1480
# regenarated without mistakes! # missed translations: 2

View File

@@ -1623,6 +1623,8 @@ Raw adblock muc filter is %s Блокування прихованої рекл
Raw adblock filter Блокування прихованої реклами Raw adblock filter Блокування прихованої реклами
Repeat muc filter is %s Повтор повідомлень: %s Repeat muc filter is %s Повтор повідомлень: %s
Repeat same messages filter Фільтр повторів схожих повідомлень Repeat same messages filter Фільтр повторів схожих повідомлень
AI is %s Штучний інтелект: %s
AI parser for messages Використовувати штучний інтелект при парсінгу повідомлень
Censor is %s Цензор: %s Censor is %s Цензор: %s
Censor Ввімкнення вимкнення цензора Censor Ввімкнення вимкнення цензора
Bomb. Time between random bombs %s Bomb. Час між випадковими бомбами: %s Bomb. Time between random bombs %s Bomb. Час між випадковими бомбами: %s
@@ -1830,5 +1832,5 @@ Youtube settings Налаштування Youtube
API settings Налаштування API API settings Налаштування API
# write locale file: ua.txt # write locale file: ua.txt
# total: 1478 # total: 1480
# regenarated without mistakes! # missed translations: 2

View File

@@ -156,6 +156,7 @@ loc_folder = data_folder % 'locales/%s.txt'
log_folder = data_folder % 'conflogs/%s' log_folder = data_folder % 'conflogs/%s'
public_log = log_folder % 'chatlogs/%s' public_log = log_folder % 'chatlogs/%s'
system_log = log_folder % 'syslogs/%s' system_log = log_folder % 'syslogs/%s'
gmessage = []
locale_mark = 'NO_TRANSLATE' locale_mark = 'NO_TRANSLATE'
file_mark = '# file: ' file_mark = '# file: '

View File

@@ -46,12 +46,12 @@ def AI_PARSE(room, jid, nick, type, text):
if CUR_SCORE > SCORE: SCORE, CMD = CUR_SCORE, [PHRASES] if CUR_SCORE > SCORE: SCORE, CMD = CUR_SCORE, [PHRASES]
elif CUR_SCORE == SCORE: CMD.append(PHRASES) elif CUR_SCORE == SCORE: CMD.append(PHRASES)
if not CMD: return if not CMD: return
nowname = getResourse(cur_execute_fetchone('select room from conference where room ilike %s',('%s/%%'%room,))[0])
if nowname == nick: return
pprint('AI score %s|%s|%s' % (SCORE, '|'.join([t[0] for t in CMD]), text),'cyan') pprint('AI score %s|%s|%s' % (SCORE, '|'.join([t[0] for t in CMD]), text),'cyan')
CMD = random.choice(CMD) CMD = random.choice(CMD)
CMD_RAW = CMD[0].split()[0] CMD_RAW = CMD[0].split()[0]
pprint('AI selected %s' % CMD_RAW,'cyan') pprint('AI selected %s' % CMD_RAW,'cyan')
nowname = getResourse(cur_execute_fetchone('select room from conference where room ilike %s',('%s/%%'%room,))[0])
access_mode = get_level(room,nick)[0] access_mode = get_level(room,nick)[0]
if cur_execute_fetchone('select * from commonoff where room=%s and cmd=%s',(room,CMD_RAW)): return if cur_execute_fetchone('select * from commonoff where room=%s and cmd=%s',(room,CMD_RAW)): return
ptype = '' ptype = ''
@@ -72,11 +72,17 @@ def AI_PARSE(room, jid, nick, type, text):
break break
if not PP: PRM.append(nick) if not PP: PRM.append(nick)
COMMAND = CMD[0]
COMMAND = COMMAND.replace('{TOMORROW}',time.strftime('%d.%m', time.localtime(time.time()+86400)))
WAS_PARAM = False
for PARAM in PRM: for PARAM in PRM:
if PARAM: if PARAM:
COMMAND = CMD[0].replace('{PAR}',PARAM) if time_nolimit: time.sleep(time_nolimit)
print COMMAND com_parser(access_mode, nowname, type, room, nick, COMMAND.replace('{PAR}',PARAM), jid)
com_parser(access_mode, nowname, type, room, nick, COMMAND, jid) WAS_PARAM = True
if not WAS_PARAM:
if time_nolimit: time.sleep(time_nolimit)
com_parser(access_mode, nowname, type, room, nick, COMMAND, jid)
def AI_RATING(s, text, room): def AI_RATING(s, text, room):
r,s = 0.0,s.split('|') r,s = 0.0,s.split('|')
@@ -86,23 +92,27 @@ def AI_RATING(s, text, room):
return r return r
def AI_PARAMETER(body, type, room): def AI_PARAMETER(body, type, room):
P_NICK, P_JID, P_SERVER = None, None, None P_NICK, P_JID, P_SERVER = [], [], []
if 'nick' in type: if 'nick' in type:
NICKS = [t[1] for t in megabase if t[0]==room] NICKS = [t[1] for t in megabase if t[0]==room]
for NICK in NICKS: for NICK in NICKS:
if NICK in body: if NICK in body:
P_NICK = NICK P_NICK.append(NICK)
break break
if 'jid' in type: if 'jid' in type:
JID = re.findall(u'[-a-z0-9а-яё_]+@[-0-9a-z\.]+',body,re.S|re.I|re.U) JID = re.findall(u'[-a-z0-9а-яё_]+@[-0-9a-z\.]+',body,re.S|re.I|re.U)
if JID: P_JID = JID[0] if JID: P_JID += JID
if 'server' in type: if 'server' in type:
SERVER = re.findall(u'[-0-9a-zа-яё\.]+\.[-a-zа-я]{2,}',body,re.S|re.I|re.U) SERVER = re.findall(u'[-0-9a-zа-яё\.]+\.[-a-zа-я]{2,}',body,re.S|re.I|re.U)
if SERVER: P_SERVER = SERVER[0] if SERVER: P_SERVER += SERVER
return [P_NICK, P_JID, P_SERVER] RESULT = []
for t in P_NICK + P_JID + P_SERVER:
if t not in RESULT: RESULT.append(t)
return RESULT
gmessage.append(AI_PARSE) gmessage.append(AI_PARSE)