1

upd: wot.py - World of Tanks plugin

This commit is contained in:
VitaliyS
2014-10-26 22:44:18 +02:00
parent a9d0d5ef80
commit 6eb219da85
4 changed files with 27 additions and 17 deletions

View File

@@ -1375,7 +1375,7 @@ none отсутствует
2 class 2 степень 2 class 2 степень
1 class 1 степень 1 class 1 степень
master мастер master мастер
\n%s (%s/%s - %s%%), mastery: %s \n%s (%s/%s - %s%%), классность: %s \n%s: %s/%s (%s%%), avg.damage: %s, xp (avg/max): %s/%s, mastery: %s \n%s: %s/%s (%s%%), ср.урон: %s, опыт (ср/макс): %s/%s, классность: %s
not founded tank танк не найден not founded tank танк не найден
Impossible to get tanks' statistics Невозможно получить статистику танков Impossible to get tanks' statistics Невозможно получить статистику танков
\nUp to %s%% win left: %s battles \nДо %s%% побед осталось: %s битв \nUp to %s%% win left: %s battles \nДо %s%% побед осталось: %s битв
@@ -1393,6 +1393,7 @@ Impossible to get tanks' statistics Невозможно получить ста
- great player - превосходный игрок - great player - превосходный игрок
- unicum - уникум - unicum - уникум
\nWN6 rating: %s (XVM: %s) \nРейтинг WN6: %s (XVM: %s) \nWN6 rating: %s (XVM: %s) \nРейтинг WN6: %s (XVM: %s)
\nWG rating: %s \nРейтинг WG: %s
\nArmor-rating: %s \nРейтинг Бронесайта: %s \nArmor-rating: %s \nРейтинг Бронесайта: %s
- virtuoso - виртуоз - virtuoso - виртуоз
- master tanker - мастер-танкист - master tanker - мастер-танкист
@@ -1409,7 +1410,7 @@ Player not found Игрок не найден
Name: %s [%s] Название: %s [%s] Name: %s [%s] Название: %s [%s]
\nOwner: %s \nВладелец: %s \nOwner: %s \nВладелец: %s
\nCreated at: %s \nДата создания: %s \nCreated at: %s \nДата создания: %s
\nCount of members: %s \nКоличество учасников: %s \nCount of members: %s \nКоличество участников: %s
\nMotto: %s \nДевиз: %s \nMotto: %s \nДевиз: %s
Clan not found Клан не найден Clan not found Клан не найден
Impossible to get info Невозможно получить информацию Impossible to get info Невозможно получить информацию

View File

@@ -1364,7 +1364,7 @@ none відсутня
2 class 2 степінь 2 class 2 степінь
1 class 1 степінь 1 class 1 степінь
master майстер master майстер
\n%s (%s/%s - %s%%), mastery: %s \n%s (%s/%s - %s%%), класність: %s \n%s: %s/%s (%s%%), avg.damage: %s, xp (avg/max): %s/%s, mastery: %s \n%s: %s/%s (%s%%), сер.ушкодж.: %s, досвід (сер/макс): %s/%s, класність: %s
not founded tank танк не знайдено not founded tank танк не знайдено
Impossible to get tanks' statistics Неможливо отримати статистику танків Impossible to get tanks' statistics Неможливо отримати статистику танків
\nUp to %s%% win left: %s battles \nДо %s%% перемог залишилося: %s битв \nUp to %s%% win left: %s battles \nДо %s%% перемог залишилося: %s битв
@@ -1382,6 +1382,7 @@ Impossible to get tanks' statistics Неможливо отримати стат
- great player - чудовий гравець - great player - чудовий гравець
- unicum - унікум - unicum - унікум
\nWN6 rating: %s (XVM: %s) \nРейтинг WN6: %s (XVM: %s) \nWN6 rating: %s (XVM: %s) \nРейтинг WN6: %s (XVM: %s)
\nWG rating: %s \nРейтинг WG: %s
\nArmor-rating: %s \nРейтинг Бронесайту: %s \nArmor-rating: %s \nРейтинг Бронесайту: %s
- virtuoso - віртуоз - virtuoso - віртуоз
- master tanker - майстер-танкіст - master tanker - майстер-танкіст

View File

@@ -1854,7 +1854,11 @@ owner_prefs = {'syslogs_enable': ['Logger. Enable system logs','b',True],
'exclude_messages':['Kernel. Exclude symbols from bot\'s messages','m256e',u'([؀-ۿ])\n([ݐ-ݿ])\n([ﭐ-﷿])\n([ﹰ-])','message_exclude_update()'], 'exclude_messages':['Kernel. Exclude symbols from bot\'s messages','m256e',u'([؀-ۿ])\n([ݐ-ݿ])\n([ﭐ-﷿])\n([ﹰ-])','message_exclude_update()'],
'1st_april_joke':['Kernel. 1st April joke','b',True], '1st_april_joke':['Kernel. 1st April joke','b',True],
'soft_update_resend_hash':['Kernel. Send new hash into rooms after soft update','b',False], 'soft_update_resend_hash':['Kernel. Send new hash into rooms after soft update','b',False],
'notepad':['Notepad','m4096',''] 'notepad':['Notepad','m4096',''],
'wot_region':['Region of API Server', 'd', 'RU', ['RU','EU','COM', 'SEA', 'KR']],
'wot_appid':['World of Tanks. Application ID','t64','demo'],
'wot_delay':['World of Tanks. Time of delay','i',2],
'wot_retries':['World of Tanks. Count of retries','i',2]
} }
owner_group_mucfilter = ['Muc-filter settings','#owner-mucfilter', owner_group_mucfilter = ['Muc-filter settings','#owner-mucfilter',
@@ -1930,13 +1934,16 @@ owner_group_spy = ['Spy settings','#owner-spy',
owner_group_notepad = ['Notepad','#owner-notepad', owner_group_notepad = ['Notepad','#owner-notepad',
['notepad']] ['notepad']]
owner_group_wot = ['World of Tanks settings','#owner-wot',
['wot_region','wot_appid', 'wot_delay', 'wot_retries']]
owner_groups = [owner_group_amsg,owner_group_rss,owner_group_clear, owner_groups = [owner_group_amsg,owner_group_rss,owner_group_clear,
owner_group_kernel,owner_group_lastfm,owner_group_whereis, owner_group_kernel,owner_group_lastfm,owner_group_whereis,
owner_group_watcher,owner_group_troll,owner_group_www, owner_group_watcher,owner_group_troll,owner_group_www,
owner_group_karma,owner_group_sayto,owner_group_age, owner_group_karma,owner_group_sayto,owner_group_age,
owner_group_mucfilter,owner_group_iq,owner_group_juick, owner_group_mucfilter,owner_group_iq,owner_group_juick,
owner_group_logs,owner_group_youtube,owner_group_other, owner_group_logs,owner_group_youtube,owner_group_other,
owner_group_api,owner_group_notepad] owner_group_api,owner_group_notepad,owner_group_wot]
comms = [ comms = [
(0, 'help', helpme, 2, 'Help system. Helps without commands: about, donation, access'), (0, 'help', helpme, 2, 'Help system. Helps without commands: about, donation, access'),

View File

@@ -4,7 +4,7 @@
# --------------------------------------------------------------------------- # # --------------------------------------------------------------------------- #
# # # #
# Plugin for iSida Jabber Bot # # Plugin for iSida Jabber Bot #
# Copyright (C) 2013 Vit@liy <vitaliy@root.ua> # # Copyright (C) 2013 VitaliyS <hetleven@yandex.ua> #
# # # #
# This program is free software: you can redistribute it and/or modify # # This program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by # # it under the terms of the GNU General Public License as published by #
@@ -21,9 +21,8 @@
# # # #
# --------------------------------------------------------------------------- # # --------------------------------------------------------------------------- #
# RU API_ADDR = 'http://api.worldoftanks.%s' % {'RU': 'ru', 'EU': 'eu', 'COM': 'com', 'SEA': 'asia', 'KR': 'kr'}[GT('wot_region')]
API_ADDR = 'http://api.worldoftanks.ru'; APP_ID = GT('wot_appid')
APP_ID = '171745d21f7f98fd8878771da1000a31';
clantags = re.compile('(\(.*?\))|(\[.*?\])') clantags = re.compile('(\(.*?\))|(\[.*?\])')
@@ -34,10 +33,6 @@ def get_tanks_data():
for i in d['data']: for i in d['data']:
n18 = d['data'][i]['name_i18n'].rsplit(':', 1)[-1].replace('_', ' ') n18 = d['data'][i]['name_i18n'].rsplit(':', 1)[-1].replace('_', ' ')
n = d['data'][i]['name'].rsplit(':', 1)[-1].replace('_', ' ') n = d['data'][i]['name'].rsplit(':', 1)[-1].replace('_', ' ')
if n18[:2] == 'GB':
n18 = n18[5:]
if n[:2] == 'GB':
n = n[5:]
res[i] = {'name_i18n': n18, 'name': n, 'level': d['data'][i]['level']} res[i] = {'name_i18n': n18, 'name': n, 'level': d['data'][i]['level']}
return res return res
@@ -67,8 +62,6 @@ def wot(type, jid, nick, text):
vdata = json.loads(data) vdata = json.loads(data)
data = load_page('%s/2.0/account/tanks/?application_id=%s&account_id=%s&fields=mark_of_mastery,tank_id' % (API_ADDR, APP_ID, player_id)) data = load_page('%s/2.0/account/tanks/?application_id=%s&account_id=%s&fields=mark_of_mastery,tank_id' % (API_ADDR, APP_ID, player_id))
vdata_old = json.loads(data)
vdata_old = dict([[i['tank_id'], i['mark_of_mastery']] for i in vdata_old['data'][player_id]])
data = load_page('%s/2.0/account/info/?application_id=%s&account_id=%s&fields=nickname,statistics,global_rating' % (API_ADDR, APP_ID, player_id)) data = load_page('%s/2.0/account/info/?application_id=%s&account_id=%s&fields=nickname,statistics,global_rating' % (API_ADDR, APP_ID, player_id))
pdata = json.loads(data) pdata = json.loads(data)
@@ -101,9 +94,17 @@ def wot(type, jid, nick, text):
if str(t['tank_id']) in tids: if str(t['tank_id']) in tids:
tank_win = t['all']['wins'] tank_win = t['all']['wins']
tank_battle = t['all']['battles'] tank_battle = t['all']['battles']
mom = [L('none','%s/%s'%(jid,nick)), L('3 class','%s/%s'%(jid,nick)), L('2 class','%s/%s'%(jid,nick)), L('1 class','%s/%s'%(jid,nick)), L('master','%s/%s'%(jid,nick))][t['mark_of_mastery']]
if tank_battle: if tank_battle:
msg += L('\n%s (%s/%s - %s%%), mastery: %s','%s/%s'%(jid,nick)) % (tanks_data[str(t['tank_id'])]['name_i18n'], tank_win, tank_battle, round(100.0*tank_win/tank_battle, 2), mom) tank_avgxp = t['all']['battle_avg_xp']
tank_maxxp = t['max_xp']
mom = [ L('none','%s/%s'%(jid,nick)),
L('3 class','%s/%s'%(jid,nick)),
L('2 class','%s/%s'%(jid,nick)), L('1 class','%s/%s'%(jid,nick)),
L('master','%s/%s'%(jid,nick))][t['mark_of_mastery']]
tank_dmg = int(round(t['all']['damage_dealt'] / float(tank_battle), 0))
tank_name = tanks_data[str(t['tank_id'])]['name_i18n']
tank_wins = round(100.0*tank_win/tank_battle, 2)
msg += L('\n%s: %s/%s (%s%%), avg.damage: %s, xp (avg/max): %s/%s, mastery: %s','%s/%s'%(jid,nick)) % (tank_name, tank_win, tank_battle, tank_wins, tank_dmg, tank_avgxp, tank_maxxp, mom)
else: else:
msg += '\n%s (%s/%s)' % (tanks_data[str(t['tank_id'])]['name_i18n'], tank_win, tank_battle) msg += '\n%s (%s/%s)' % (tanks_data[str(t['tank_id'])]['name_i18n'], tank_win, tank_battle)
if not msg.count('\n'): if not msg.count('\n'):