🚀API — friday.daurge.ru
#API для доступа к базе F.R.I.D.A.Y. {🚀}. Доступ посредством GET/POST-запросов.
Получение основной информации (GET)
http://quotes.daurge.ru:8000/friday/{key}/{you_id}/{id}/{opt}
Передаваемые параметры:
• key - ключ доступа, полученный от разработчика;
• you_id - telegram id твоего аккаунта;
• id - telegram id аккаунта, доступ к чьему профилю нужен;
• opt -
• info - для получения всей информации о пользователе;
• ach - для получения всех существующих ачивок (здесь id можно указать любой);
• otrs_name - для получения списка отрядов и его членов при запросе на id CEO;
• penis_[ get | integer ] - для получения текущего значения | изменения на любое отрицательное или положительное;
• smoothie - для увеличения счетчика рейтинга смузиваров на единицу в @StarkIndBot.
1. Получение информации о юзере
> __info = requests.get('http://quotes.daurge.ru:8000/friday/{key}/{you_id}/775202338/info').json() > print(__info) < {"status":True,"msg":"Success.","user":{"id":"775202338","status":true,"tg_name":"Ведьма🐝","first_name":"Starvy","username":"zawwarudo","game_name":"⚡️[SE] ксуальный SEкс ","last_update":1628187611,"game_lvl":49,"rr":72,"otr":"-1001560275794","sum_stats":950,"books":520,"bolts":61,"gears":149,"admin":"user","achievements":"2 4 5"}}
• status - true/false - отображение статуса ошибок;
• msg - текст статуса;
• user -
• id - стандартный идентификатор telegram;
• status - зарегистрирован ли пользователь в системе F.R.I.D.A.Y.;
• tg_name - имя пользователя в telegram;
• first_name - последнее сохраненное имя в Telegram;
• username - юзернейм пользователя в Telegram/None;
• game_name - игровой никнейм;
• last_update - последнее обновление профиля (Timestamp);
• game_lvl - игровой уровень пользователя;
• rr - кол-во внутренней валюты системы F.R.I.D.A.Y.;
• otr - id отряда пользователя/NULL;
• sum_stats - сумма игровых статов пользователя;
• books - количество книг у пользователя;
• bolts - количество болтов у пользователя;
• gears - количество шестеренок у пользователя;
• admin - уровень привилегий пользователя (user, moder, admin, kom, crafter, leader, ceo, owner);
• inv - инвентарь пользователя/NULL (у CEO по умолчанию NULL);
• achievements - достижения пользователя (2 4 11)/NULL.
2. Получение и изменение пениса, смузи счетчика
> __info = requests.get('http://quotes.daurge.ru:8000/friday/{key}/{you_id}/775202338/penis_11').json() > print(__info) < {'status': True, 'user': {'len': '11', 'time': '1676046664'}}
> __info = requests.get('http://quotes.daurge.ru:8000/friday/{key}/{you_id}/775202338/smoothie').json() > print(__info) < {'status': True, 'user': {'count': '24', 'time': '1676046664'}
• status - true/false - отображение статуса ошибок;
• user -
• penis_get - получение текущего значения;
• penis_int - изменение значения, где int - любое число;
• smoothie - прибавить единицу к счетчику приготовленных смузи;
• time - последнее изменение параметра в timestamp.
3. Получение списка существующих достижений
> __ach = requests.get('http://quotes.daurge.ru:8000/friday/{key}/{you_id}/{you_id}/ach').json() > print(__ach) < {"status":True,"msg":{"1":{"name":"🧠Великий Прогер","description":"Выдается айтишникам, отличившимся во благо Stark Ind."},"2":{"name":"🧑💻Мамкин Тестер","description":"Выдается за успешную поимку бага."},"3":{"name":"🌈Генератор идей","description":"Выдаётся за крутые идеи развития пространства @StarkIndBot."}}
• status - true/false - отображение статуса ошибок;
• msg -
• id достижения -
• name - название ачивки с уникальным эмодзи на первом месте;
• description - описание достижения.
> params = {'skey': '618f91ea32c09ceefd8658c6'} > __rr = requests.post('http://quotes.daurge.ru:8000/friday/phrases_get', data=params) > print(__rr.json()) < {'status': True, 'msg': 'Success.', 'info': {'id': 12345, 'text': 'Тестовая фраза на финалОчку', 'admin_id': 12345, 'time1': 123456, 'time2': 1636798954, 'key': '618f91ea32c09ceefd8658c6'}}
• skey (str/ObjectId) - получение информации о фразе по уникальному ключу.
• id - id пользователя, от которого принята фраза;
• text - фраза пользователя;
• admin_id - id администратора, принявшего фразу;
• time1 - время отправки фразы пользователем в таймштампе;
• time2 - время принятия фразы от пользователя в таймштампе.
5. Получение полного списка фраз (POST)
> params = {'key': key, 'you_id': you_id, 'id': id} > __rr = requests.post('http://quotes.daurge.ru:8000/friday/phrases_full', data=params) > print(__rr.json()) < {"status":True,"msg":"Success.","info":{"id": 12345, "phrases":["618f9a337e9a943fc1fa4a34"]}}
• key - ключ доступа, полученный от разработчика;
• you_id - telegram id твоего аккаунта;
• info - формирует список ключей всех фраз пользователя, чей id был передан (id) 'phrases'.
6. Капча: генерация, получение, проверка (GET)
Принимаемые параметры:
- id: целое число, представляющее Telegram ID пользователя.
- type: строка, представляющая тип captcha (либо "audio", либо "image").
- status: строка, представляющая статус капчи (либо "True", либо "False"). Значение по умолчанию - "False".
- var: строка, представляющая текст капчи. Значение по умолчанию - "False".
Возвращаемые параметры:
- Если type - "audio":
- status: логическое значение, указывающее, была ли генерация captcha успешной.
- file: строка, представляющая имя файла сгенерированной звуковой капчи.
- caption: строка, содержащая текст отображения для пользователя.
- buttons: список целых чисел, представляющих возможные варианты ввода капчи.
- Если type - "image":
- status: логическое значение, указывающее, была ли генерация captcha успешной.
- file: строка, представляющая имя файла сгенерированной капчи изображения.
- caption: строка, содержащая текст отображения для пользователя.
- buttons: список целых чисел, представляющих возможные варианты ввода капчи.
- Если статус равен "False", а var не является "False":
- status: логическое значение, указывающее, является ли решение captcha правильным.
- text: строка, предоставляющая обратную связь пользователю.
- Если возникает исключение:
- status: логическое значение, указывающее, была ли генерация или проверка captcha успешной.
- msg: строка, содержащая подробную информацию об исключении.
- Если ни одно из вышеперечисленных условий не выполнено:
- status: логическое значение, указывающее, была ли генерация или проверка captcha успешной.
- text: словарь, содержащий подробную информацию о капче.
6.1 Генерация изображения | аудио
> __info = requests.get('http://quotes.daurge.ru:8000/captcha/{id}/{type}/{status=True}/{var=False}').json() > print(__info) < { "status": True, "file": "seobot_captcha_images_1198.png", "caption": "Выбери кнопку с верным числом для верификации:", "buttons": [1002, 8521, 8458, 1198, 8931] }
• id - ID пользователя Telegram;
• type - тип генерируемой капчи (image | audio);
• status - True, указывается при необходимости генерации;
• var - False, указывается при отсутствии проверки введенного варианта;
• status - отображение статуса запроса;
• file - параметр ссылки для получения изображения;
• caption - возвращает строку для отображения пользователю;
• buttons - формирует список вариантов, среди которых гарантируется один верный.
6.2 Получение изображения | аудио
> img = requests.get('http://quotes.daurge.ru:8000/captcha/{file_link}') > with open(f'images/{file_link}.{opt}', 'wb') as img_file: img_file.write(img.content)
• file_link - параметр ссылки, полученный после генерации в 6.1 в "file";
• opt - png | ogg.
Пояснение: на примере выполняется запрос получения изображения | аудио по параметру ссылки, полученному в 6.1. После получения сохраняется в директорию images под именем равным параметру ссылки и с расширением .png | .ogg в зависимости от типа капчи.
6.3 Проверка на переданный параметр
> __info = requests.get('http://quotes.daurge.ru:8000/captcha/{id}/{type=False}/{status=False}/{var}').json() > print(__info) < { "status": False, "text": "Попробуй еще раз." } < { "status": True, "text": "⚡️Отлично! Капча решена верно." } < { "status": False, "text": "🤖Увы и ах, ты ответил неверно. Пока, бот." }
• id - ID пользователя Telegram;
• type - тип генерируемой капчи. При валидации отсутствует необходимость передачи конкретного параметра и по умолчанию принимает любое значение;
• status - False, указывается при отсутствии необходимости генерации;
• var - число, вариант, выбранный пользователем;
• status - отображение статуса запроса;
• text - возвращает строку для отображения пользователю.
Изменение параметров (GET | POST)
Существует два основных метода изменения следующих данных:
1. Выдача и удаление достижений
> __ach = requests.get('http://quotes.daurge.ru:8000/friday/{key}/{you_id}/{id}/ach/do/2').json() > print(__ach) < {"status":True,"msg":"Success."}
• opt - do/undo - забрать/выдать достижение по его id.
> __rr = requests.get('http://quotes.daurge.ru:8000/friday/{key}/{you_id}/{id}/rr_10').json() > print(__rr) < {"status":True,"msg":"Success. Change = 1. Current balance = 268"}
• id - id пользователя, у которого списывается валюта; • rr_1 - списываемое кол-во валюты (указывается после нижнего подчеркивания).
> params = {'key': key, 'you_id': you_id, 'id': int(id), "text": text, 'admin_id': int(admin_id), 'time1': int(time1)} > __rr = requests.post('http://quotes.daurge.ru:8000/friday/phrases', data=params) > print(__rr.json()) < {"status":True,"msg":"Success.","info":{"id":12345,"text":"Тестовая фраза на финалОчку","key":"618f9a337e9a943fc1fa4a34"}}
• id - id пользователя, от которого принимается фраза;
• text - сама фраза пользователя;
• admin_id - id администратора, принявшего фразу;
• time1 - время отправки(!) фразы пользователем в таймштампе;
• < key - уникальный ключ для получения информации о фразе.
Ошибки и их описания
В подавляющем большинстве status = True возвращает msg = Success. В случае status = False, предусмотрены следующие ошибки:
1. - {'status': False, 'msg': 'Insufficient funds.'} 2. - {'status': False, 'msg': 'No options are specified.'}
1. - {'status': False, 'msg': 'This key is not yours.'} 2. - {'status': False, 'msg': "You don't have access."}
1. - {'status': False, 'msg': 'Error.'}
1. - {'status': False, 'msg': 'This phrase is already in use.'} 2. - {'status': False, 'msg': 'This phrase dont create.'}
1. - {'status': True, 'user': {'len': '0', 'time': '0', 'msg': 'User is banned.'}} 2. - {'status': False, 'user': {'len': 0, 'time': 0, 'msg': 'User isn`t registered.'}}
В случае отсутствия регистрации пользователя в системе F.R.I.D.A.Y., API вернет:
{'status': True, 'msg': 'Success.', 'user': {'id': id, 'status': False, 'name': 'NULL'}}