-
Notifications
You must be signed in to change notification settings - Fork 0
/
accounts_pool.py
executable file
·52 lines (42 loc) · 1.83 KB
/
accounts_pool.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
from account import Account
import random
class Pool:
def __init__(self):
self._accounts = []
self._last_used = None
pass
# Добавить аккаунт в пул
# def add_account(self, user_login: str,
# user_passwd: str,
# app_id: int,
# scope: int):
# self._accounts.append(Account(user_login, user_passwd, app_id, scope))
# self._last_used = len(self._accounts) - 1
def add_account(self, account: Account):
self._accounts.append(account)
self._last_used = len(self._accounts) - 1
def show_all_accounts(self):
for account in self._accounts:
print(account.login)
def get_account(self, login: str):
for account in self._accounts:
if account._login == login:
return account
return None
# удалить аккаунт из пула
def del_account(self, login):
self._accounts.pop(login)
self._last_used = len(self._accounts) - 1
# Получение api для работы с функциями. В идеале пользователь будет получать один api для выполнения одного метода.
def get_random_api(self):
return random.choice(self._accounts)
def get_next_api(self):
index = (self._last_used 1) % len(self._accounts)
self._last_used = index
print("got vkapi from ", self._accounts[index].login)
return self._accounts[index].vkapi
# Проверка работоспособности всех аккаунтов и переподключение, если что-то не так
def check_api(self):
for account in self._accounts:
if not account.check_access():
account.get_access()