Skip to content

alleexxeeyy/PlayerokAPI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

193 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

alt text

telegram bot python stars forks

Неофициальный API для работы с торговой площадкой Playerok на ЯП python, основанный на запросах.

Навигация

Установка

С помощью pip

Откройте командную строку и отправьте в неё команду pip install git+https://github.com/alleexxeeyy/PlayerokAPI.git

Напрямую с github

  1. Скачайте репозиторий https://github.com/alleexxeeyy/PlayerokAPI
  2. Убедитесь, что у вас установлен Python версии 3.11+. Если не установлен, сделайте это, перейдя по ссылке https://www.python.org/downloads (при установке нажмите на пункт Add to PATH)
  3. Для установки зависимостей, напишите в командной строке pip install -r requirements.txt

Примеры использования

Быстрый старт

Пример простого бота, который будет отвечать на несложные команды

from datetime import datetime

from playerokapi.account import Account
from playerokapi.types import *
from playerokapi.enums import *
from playerokapi.listener.listener import EventListener

# ----- ИНИЦИАЛИЗАЦИЯ АККАУНТА -----
acc = Account(
    cookies="__ddg3=4L7yBmrBwMwKm15X;token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
    user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36"
).get()

# ----- ЗАПУСК СЛУШАТЕЛЯ СОБЫТИЙ -----
listener = EventListener(acc)

for event in listener.listen():
    if event.type is EventTypes.NEW_MESSAGE: # ловим тип ивента "Новое сообщение"
        if event.message.user.id != acc.id: # проверяем, если это сообщение было отправлено не от своего же лица
            if event.message.text == "!команды": # проверяем, если текст сообщение - нужная наша команда
                acc.send_message(
                    chat_id=event.chat.id, 
                    text="🤖 Доступные команды:\n- !привет - отправляет приветствие\n- !дата - показывает текущую дату и время"
                ) # отправляем сообщение
            if event.message.text == "!привет":
                acc.send_message(
                    chat_id=event.chat.id, 
                    text="👋 Привет, я бот для Playerok!\n- Узнать команды - !команды"
                )
            if event.message.text == "!дата":
                acc.send_message(
                    chat_id=event.chat.id, 
                    text=f"📅 Текущая дата: {datetime.now().strftime("%d/%m/%Y, %H:%M:%S")}"
                )

Получение предметов пользователя

Пример простого кода, который получит последние 24 предмета пользователя «LexeyLex» и выведет в консоль их названия

user = acc.get_user(username="LexeyLex")
item_list = user.get_items()

for item in item_list.items:
    print(item.name)

Получение сообщений чата

Пример простого кода, который получит последние 24 сообщения в чате с пользователем «LexeyLex» и выведет в их в консоль

chat = acc.get_chat_by_username("LexeyLex")
chat_message_list = acc.get_chat_messages(chat.id)

for message in chat_message_list.messages:
    print(message.text)

Создание и публикация предмета

Пример кода, который создаст и опубликует предмет в приложении «Telegram», категории «Подарки (NFT)»

from playerokapi.account import Account
from playerokapi.types import *
from playerokapi.enums import *


# ----- ИНИЦИАЛИЗАЦИЯ АККАУНТА -----
acc = Account(
    cookies="__ddg3=4L7yBmrBwMwKm15X;token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
    user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36"
).get()

# ----- ПОЛУЧЕНИЕ ДАННЫХ О ТОВАРЕ -----
game = acc.get_game(slug="telegram") # получаем нужную игру

_category = next((cat for cat in game.categories if cat.name == "Подарки (NFT)"), None) 
category = acc.get_game_category(_category.id) # получаем полные даные о категории

obt_list = acc.get_game_category_obtaining_types(category.id)
obt_type = next((obt for obt in obt_list.obtaining_types if obt.name == "Подарок"), None)

option = next((opt for opt in category.options if opt.value == "heart"), None)
# тут могут быть прочие опции...

df_list = acc.get_game_category_data_fields(category.id, obt_type.id)
data_field = next((df for df in df_list.data_fields if df.label == "Комментарий"), None) # берём поле с обязательным данным (в этом случае только одно, чаще всего несколько необходимых)
data_field.value = "Напишу вам в ТГ после оформления заказа" # задаём значение этому полю, так как оно обязательное
# тут могут быть прочие обязательные поля с данными...

banner = "banner.png"

# ----- СОЗДАНИЕ ПРЕДМЕТА -----
item = acc.create_item(
    game_category_id=category.id,                                    # указываем id категории игры
    obtaining_type_id=obt_type.id,                                   # указываем id типа получения предмета
    name='Подарок "❤️ Сердце" (13 ⭐) / Авто-Выдача 🤖',            # указываем название предмета
    price=90,                                                        # указываем цену предмета
    description="Выдача осуществляется без захода на ваш аккаунт.",  # указываем описание предмета
    options=[option],                                                # указываем опции предмета
    data_fields=[data_field],                                        # указываем поля с данными предмета
    attachments=[banner]                                             # указываем файлы-приложения предмета (баннер и прочие изображения)
)

# ----- ПУБЛИКАЦИЯ ПРЕДМЕТА -----
statuses = acc.get_item_priority_statuses(item.id, item.price)
free_status = next((status for status in statuses if status.price == 0), None)
new_item = acc.publish_item(item.id, free_status.id)

Полезные ссылки

About

Неофициальный API для работы с торговой площадкой Playerok на ЯП python, основанный на запросах.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages