vk0nline/vk0nline.py

52 lines
2.0 KiB
Python

#!/usr/bin/env python3
import json
import requests
from datetime import datetime
__author__ = 'Alexander Popov'
__copyright__ = '2019 by iiiypuk'
__credits__ = ['Alexander Popov']
__license__ = 'Unlicense'
__version__ = '1.0.0'
__maintainer__ = 'Alexander Popov'
__email__ = 'iiiypuk@fastmail.fm'
__status__ = 'Production'
# EDIT IT
with open('./config.json', 'r', encoding='utf-8') as f:
_C = json.load(f)
def getStatus():
response = requests.get('https://api.vk.com/method/users.get?' + \
'fields=online,last_seen&v=5.95' + \
'&access_token={key}&user_ids={user}'.format(
key=_C['serviceKey'], user=_C['userIds']))
userLoginTime = json.loads(response.content.decode('utf-8'))['response'][0]['last_seen']['time']
userOnline = json.loads(response.content.decode('utf-8'))['response'][0]['online']
return([userOnline, userLoginTime])
def setOnline():
response = requests.get('https://api.vk.com/method/account.setOnline' + \
'?voip=0&v=5.95&access_token={key}'.format(key=_C['accessToken']) + \
'&user_ids={user}'.format(user=_C['userIds']))
content = json.loads(response.content.decode('utf-8'))
if 'error' in content:
if 5 == content['error']['error_code']: # User authorization failed
print('User authorization failed.\nOpen this link in browser, and copy access token.')
print('https://oauth.vk.com/authorize?client_id={appid}'.format(appid=_C['clientId']) + \
'&redirect_uri=vk.com&display=mobile&response_type=' + \
'token&v=5.95&revoke=1&state=01010&scope=offline')
else:
print('Error: {}.'.format(content['error']['error_code']))
elif 'response' in content:
if 1 == content['response']:
print('Ok!')
onlineStatus, lastSeen = getStatus()
print(onlineStatus, datetime.fromtimestamp(lastSeen).strftime('%Y-%m-%d %H:%M:%S'))
if __name__ == "__main__": setOnline()