Исходник Rest api для чита

Пользователь
Пользователь
Статус
Оффлайн
Регистрация
28 Фев 2019
Сообщения
684
Реакции
146
В общем накидал небольшое апи, оно сырое, да и я не супер пупе разработчик, просто попробовал сделать то что давно хотел и понял, что есть куда расти.
Это апи, которое нужно использовать в связке с тг ботом (его пока не делал, мб потом напишу и запощу). Писал на кварте (асинхронная версия фласка) и беание (орм (ака одм) для монгодб). Пока-что реализовал только интерфейсы создания юзеров и подписки (разморозка, заморозка, добавление), в планах написать клауд конфиги и сайт для телеграм бота, где они бы отображались, а так-же парочку паблик методов для работы с лоадером чита :)

Создание&Получение юзера:
Expand Collapse Copy
requests.get(
    "http://127.0.0.1:5000/user/get_or_create",
    headers={
        "Authorization": "Амин ключ в конфиге",
    },
    params={
        "telegram_id": айди из телеги
    }
).json()
# Вернет объект юзера

Смена токена авторизации:
Expand Collapse Copy
requests.get(
    "http://127.0.0.1:5000/user/change_token",
    headers={
        "Authorization": "Админ токен из конфига",
    },
    params={
        "telegram_id": айди из телеги
    }
).json()
# вернет объект юзера с новым токеном

Создание подписки:
Expand Collapse Copy
requests.post(
    "http://127.0.0.1:5000/user/create_subscription",
    headers={
        "Authorization": "Админ токен из конфига"
    },
    params={
        "telegram_id": айди из телеги
    },
    json={
        "product_id": айди продукта,
        "days": количество дней подписки, добавит если существует, создаст если не существует
    }
).json()
# вернет объект подписки на продукт

Заморозка разморозка подписки:
Expand Collapse Copy
requests.post(
    "http://127.0.0.1:5000/user/(un)freeze_subscription",
    headers={
        "Authorization": Админ токен из конфига,
    },
    params={
        "telegram_id": айди из телеги
    },
    json={
        "product_id": Айди продукта
    }
).json()
# вернет объекь подписки на продукт

как-то так, по мере обновления этой хуйни, буду писать в тему, если есть какие-то идеи, был бы рад увидеть их тут!
 

Вложения

1. фласк ГАВНА кварт тоже такое мы не уважаем ФАСТАПИ ФАСТАПИ ФАСТАПИ
Пожалуйста, авторизуйтесь для просмотра ссылки.
2. бини ГАВНО ГОВНА ГАВНО это КАЛ монгодб идет НАХУУУУУУЙ ТОРТОИЗОРМ ТОРТОИЗОРМ ТОРТОИЗОРМ
Пожалуйста, авторизуйтесь для просмотра ссылки.
синтаксис ОЧЕНЬ ОЧЕЕНЬ похож на джанго орм, но отличие в том что это не джанго орм
сапорт все большие дбшки - майскл/мариядб, постгрес, склайт и в целом любую дбшку у которой есть драйвер
3. реквестс ГАВНО ГОВНА ГАВНО гавнище ЕБАНОЕ идет НАХУЙ СИНХРОННАЯ ХУЙНЯ юзаем aiohttp aiohttp вперде сука о да о так
Пожалуйста, авторизуйтесь для просмотра ссылки.
если не хочешь аиохттп - есть httpx который сапортит асинкио и имеет ну ОЧЕНЬ похожее на реквестс апи

ну а теперь о концепции
1. лучше хранить информацию о читах в дбшке и сделать какую-то панельку/апишку чтобы её менять
2. разделяй по файликам нормальнее, как вариант -
Код:
Expand Collapse Copy
backend/
├─ database/
│  ├─ models/
│  │  ├─ user.py
│  │  ├─ subscription.py
│  │  ├─ cheat.py
│  ├─ initialize.py
├─ web/
│  ├─ routes (или blueprints если ты калоед)/
│  │  ├─ user.py
│  ├─ dependencies/
│  │  ├─ auth.py
│  │  ├─ params.py
├─ poetry.lock
├─ pyproject.toml
├─ main.py
├─ config.py
3. а я забыл что третье до вскорой встречи
 
1. фласк ГАВНА кварт тоже такое мы не уважаем ФАСТАПИ ФАСТАПИ ФАСТАПИ
Пожалуйста, авторизуйтесь для просмотра ссылки.
2. бини ГАВНО ГОВНА ГАВНО это КАЛ монгодб идет НАХУУУУУУЙ ТОРТОИЗОРМ ТОРТОИЗОРМ ТОРТОИЗОРМ
Пожалуйста, авторизуйтесь для просмотра ссылки.
синтаксис ОЧЕНЬ ОЧЕЕНЬ похож на джанго орм, но отличие в том что это не джанго орм
сапорт все большие дбшки - майскл/мариядб, постгрес, склайт и в целом любую дбшку у которой есть драйвер
3. реквестс ГАВНО ГОВНА ГАВНО гавнище ЕБАНОЕ идет НАХУЙ СИНХРОННАЯ ХУЙНЯ юзаем aiohttp aiohttp вперде сука о да о так
Пожалуйста, авторизуйтесь для просмотра ссылки.
если не хочешь аиохттп - есть httpx который сапортит асинкио и имеет ну ОЧЕНЬ похожее на реквестс апи

ну а теперь о концепции
1. лучше хранить информацию о читах в дбшке и сделать какую-то панельку/апишку чтобы её менять
2. разделяй по файликам нормальнее, как вариант -
Код:
Expand Collapse Copy
backend/
├─ database/
│  ├─ models/
│  │  ├─ user.py
│  │  ├─ subscription.py
│  │  ├─ cheat.py
│  ├─ initialize.py
├─ web/
│  ├─ routes (или blueprints если ты калоед)/
│  │  ├─ user.py
│  ├─ dependencies/
│  │  ├─ auth.py
│  │  ├─ params.py
├─ poetry.lock
├─ pyproject.toml
├─ main.py
├─ config.py
3. а я забыл что третье до вскорой встречи
1. Знаю что кварт экей фласк говно, просто я калоед который давным давно имел с этим дело
2. Я знаю что бини и монга в целом говно, просто меньше ебли и проще описывать модели (юзал тортойс изначально, не осилил линкинг таблиц)) )
3. Знаю что реквесты синхронное говнецо, но мне асинхронность тут и не нужна, у меня же не лоадер на питоне, а просто тест работоспособности


О концепции
1. Да, я знаю что лучше эту информацию в бд, до этого обязательно дойдет, но позже, пока-что этот массив cheats нужен чисто чтобы в голове было какое-то представление о том что нужно будет хранить
2. Меня +- устраивает текущая структура проекта
3. Что уж ты не доебался до конфига в питон файле, а не виртуальном окружении)

А вообще спасибо большое за критику, это просто первый, сырой вариант на быструю руку, обязательно прислушаюсь ко всему что ты написал и исправлю все в следующем апдейте
 
Последнее редактирование:
3. Что уж ты не доебался до конфига в питон файле, а не виртуальном окружении)
ну если уж так тогда не в виртуальном окружении а в переменных среды
а вообще я сам пишу конфиги в питон файлах, слишком удобно
 
ну если уж так тогда не в виртуальном окружении а в переменных среды
а вообще я сам пишу конфиги в питон файлах, слишком удобно
полностью согласен, нахую вертел все эти венвы, config.py - сила
 
что? у тебя get запрос создаёт пользователя? точно restful?



опять гет на изменение данных
Эта хуйня в целом умом и логикой не блещет. Спасибо за замечание, в будущем исправлю
 
Назад
Сверху Снизу