Jump to content
Korean Random
avsv

Мод списка контактов - выделение афк другим цветом

Recommended Posts

Состою в клане и у нас происходят регулярные срачи из-за того, что игрок не принимает приглосы в КБ.

Накатал скриптик, для получения даты последнего боя через API, чтобы знать что игрок афк достаточно сравнить даты - боя и текущую.

 

Как можно это прикрутить к списку контактов, допустим, АФК выделять оранжевым цветом.

# -*- coding: utf-8 -*-

import urllib2, sys, json, datetime
application_id = 'ca0d128d10cd4bf5e1e86c8b83a08f03'

# Функция для запроса к API и парсинга ответа
# api_url - урл для запроса
# fields - какие поля вернуть
	# ['поле1', 'поле2', 'поле3']
# addon - дополнительные параметры 
	# ---  список вида
	# [
	#   [параметр1, значение1],
	#   [параметр2, значение2]
	# ]
def api_request(api_url, fields, addon):
	url_request = api_url + '?application_id=' + application_id
	# есть поля? добавим
	if len(fields):
		url_request += '&fields='
		for i in fields:
			url_request += i + ','
		url_request = url_request[:-1]
	# есть параметры? добавим
	if len(addon):
		for i in addon:
			url_request += '&' + i[0] + '=' + i[1]
	try:
		# посылаем запрос
		request = urllib2.urlopen(url_request).read()
	except:
		print "Urllib error!"
	try:
		# парсим json ответ
		ret = json.loads(request)
	except:
		print "Json parsing error!"
	return ret

nick='avsv'
# найдём игрока по нику (type=exact - строгое соответствие)
wot = api_request('http://api.worldoftanks.ru/wot/account/list/', ['account_id'], [['type', 'exact'], ['search', nick]])
# получаем id игрока
account_id = str(wot['data'][0]['account_id'])
# запросим информацию по аккаунту
wot = api_request('http://api.worldoftanks.ru/wot/account/info/', ['updated_at', 'last_battle_time', 'logout_at'], [['account_id', account_id]])
# последний раз был в бою
last_battle_time = wot['data'][account_id]['last_battle_time']
# время последней сессии
logout_at = wot['data'][account_id]['logout_at']
# время обновления информации
updated_at = wot['data'][account_id]['updated_at']
# переводим время из timestamp в человеческое
last_battle_time = datetime.datetime.fromtimestamp(last_battle_time)
logout_at = datetime.datetime.fromtimestamp(logout_at)
updated_at = datetime.datetime.fromtimestamp(updated_at)

print 'last_battle_time = ' + str(last_battle_time)
print 'logout_at = ' + str(logout_at)
print 'updated_at = ' + str(updated_at)

raw_input()
sys.exit(0)

Скрипт работает на обычном питоне и с танками пока никак не связан. Буду благодарен за ваши советы  :hp: 

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...