5SIM не хочет выбирать оператора случайным образом
Остальные строки кода не важны - самое важное только 5SIM. Он работает, но всегда бот выводит, что нет доступных номеров. Но на самом деле они есть, он просто не может их выбрать.
Код:
def get_price(i):
try:
conn = sqlite3.connect('db.db', check_same_thread = False)
cursor = conn.cursor()
info = i.split('|')
print(i)
service_id = info[0]
country_id = info[1]
site_api = info[2]
operator = info[3]
link = info[4]
if site_api == 'sim5':
info_number = requests.get(link).json()
service_data = info_number.get(country_id).get(service_id)
if operator == 'any':
operators = list(service_data.keys())
operator = random.choice(operators)
price = service_data.get('cost')
return site_api, price
if site_api == 'vak':
try:
info_number = requests.get(link).json()
price = info_number[country_id][service_id]['cost']
if info_number[country_id][service_id]['count'] == 0 and info_number[country_id][service_id].get('count') == None:
return site_api, 0
else:
return site_api, price
except:
if int(country_id) == 0:
VAK_SMS_TOKEN = cursor.execute('SELECT vak_sms FROM settings').fetchone()[0]
info_number = requests.get(f'https://vak-sms.com/api/getCountNumber/?apiKey={VAK_SMS_TOKEN}&service={service_id}&country=ru&operator=any&price').json()
if info_number.get(service_id) != 0 or info_number.get(service_id) != 'None':
return 'vak', info_number['price']
else:
info_number = requests.get(link).json()
price = info_number[country_id][service_id].get('cost')
if info_number[country_id][service_id].get('count') == 0:
return site_api, 0
else:
return site_api, price
except:
return site_api, 0
Пример ответа от 5sim:
{"ukraine":{"telegram":{"virtual21":{"cost":26,"count":0,"rate":0},"virtual23":{"cost":25.2,"count":1000,"rate":1.28},"virtual34":{"cost":110,"count":0,"rate":23.33},"virtual4":{"cost":13.4,"count":500,"rate":0}}}}