-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
70 lines (48 loc) · 2.2 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# -*- coding: utf-8 -*-
import json
import vk_api
import vk_api.exceptions
import vk_api.tools
from mover import Mover
def captcha_handler(captcha):
""" При возникновении капчи вызывается эта функция и ей передается объект
капчи. Через метод get_url можно получить ссылку на изображение.
Через метод try_again можно попытаться отправить запрос с кодом капчи
"""
key = input("Enter captcha code {0}: ".format(captcha.get_url())).strip()
# Пробуем снова отправить запрос с капчей
return captcha.try_again(key)
def auth_handler():
""" При двухфакторной аутентификации вызывается эта функция."""
# Код двухфакторной аутентификации
key = input("Enter authentication code: ")
# Если: True - сохранить, False - не сохранять.
remember_device = True
return key, remember_device
def vk_auth(login, password, token):
vk = vk_api.VkApi(login, password,
token=token,
# функция для обработки двухфакторной аутентификации
auth_handler=auth_handler,
captcha_handler=captcha_handler)
try:
# Авторизируемся
vk.auth()
except vk_api.AuthError as e:
print(e) # В случае ошибки выведем сообщение
quit()
return vk
def main():
"""Основная логика работы скрипта"""
with open("config.json", "r", encoding="utf-8") as file:
config = json.load(file)
login = config['login']
password = config['password']
token = config['token']
group_id = config['group_id']
vk_session = vk_auth(login, password, token)
move = Mover(vk_session, group_id)
# logging.debug('Перенос завершен')
# if __name__ == '__main__':
main()
input('Нажмиты любую клавишу, чтобы выйти...')