# HERE WE GO # -------- RUS --------- # ⚠️ Для тех, кто не понял ⚠️ # Именно здесь вы можете тыкать UserAPI. # Секция UserAPI - для вас. # # ⚠️ Если вы хотите с асинхрон ⚠️ # Перейдите в call2user_api.py # # Если вы не находитесь на сервере (а вы не находитесь), вам нужно поменять url_prefix. # Сделать формата 'https://vpc-api.del.pw' (если эта ссылка не устарела) # # Секция SystemAPI и call2api.py вам не нужен, но можете его изучить. # Эта часть кода взаимодействует с SystemAPI, который недоступен. # # Для использования просто импортировать этот файл и использовать функции: # ``` # from call2user_api_sync import * # ... # user = user_in_db(username, user_token) # ``` # Можете переносить файл куда хотите, но вместе с db.py (функция read() + авто-создание конфигурации) # ---------------------- # Загрузка префикса UserAPI # (МЕНЯЙТЕ URL!!! если нужно, в config.json) from db import read import requests from json import loads # Synchronous database read CONFIG = read() url_prefix = CONFIG['user_api_url'] def call(api_url, data, pre=True, fix=True): url = (url_prefix + api_url) if pre else api_url with requests.Session() as session: response = session.post(url, json=data) text = response.text try: json = loads(text) if 'detail' in json: return json['detail'] else: return json except: if fix: return text.replace('"', '') else: return text #------------------------------------------------------------ # UserAPI #------------------------------------------------------------ # Получение информации о токене def get_user_token_info(username, user_token): data = {'username': username, 'user_token': user_token} return call('api/get_user_token_info/', data) # Получение пользователя (ник, айди ТГ, ДС и т.п.) def user_in_db(username, user_token): data = {'username': username, 'user_token': user_token} return call('api/user_in_db/', data) # Перевод монет def transfer_coins(username, user_token, dst_username, amount): data = {'username': username, 'user_token': user_token, 'dst_username': dst_username, 'amount': amount} return call('api/transfer_coins/', data) # Получение глобальной статистики def get_stats(username, user_token): data = {'username': username, 'user_token': user_token} return call('api/get_stats/', data) # Создание счёта на оплату, чтобы проверить оплачен ли он # Использование в боте: /pay <ник> <сумма> def create_invoice(username, user_token, amount=None): data = {'username': username, 'user_token': user_token} if amount: data['amount'] = amount return call('api/create_invoice/', data) # Удаление счёта на оплату по invoice_id def delete_invoice(username, user_token, id): data = {'username': username, 'user_token': user_token, 'id': id} return call('api/delete_invoice/', data) # Получение информации о счёте на оплату: # конечный получатель, сумма, статус (оплачен/нет: True/False) def get_invoice(username, user_token, id): data = {'username': username, 'user_token': user_token, 'id': id} return call('api/get_invoice/', data) #------------------------- END ------------------------------