Загрузка...

Скрипт PlayerokAPI - Удобный API для работы с торговой площадкой Playerok на ЯП Python на запросах.

Тема в разделе Python создана пользователем extractorgg 11 июн 2025. 624 просмотра

  1. extractorgg
    extractorgg Автор темы 11 июн 2025 20 14 апр 2021
    PlayerokAPI
    Неофициальный API для работы с торговой площадкой Playerok на ЯП python, основанный на запросах.

    [B][SIZE=5]Playerok Universal - Первый бесплатный бот для Playerok (тык)[/SIZE][/B]


    Увидел, что в интернете нету ни одного +- юзабельного API для взаимодействия с площадкой Playerok, поэтому решил разработать собственное .
    Апишка работает на запросах и достаточно проста в использовании. Есть функционал слушателя событий, который будет получать новые события с сайта (будь то новое сообщение или новый заказ), а после сами сможете его обработать.

    Функционал почти весь, который есть в самом Playerok:
    - получение сделок, предметов, игр, категорий, чатов, сообщений чатов, профилей пользователей и т.п
    - выставление, создание, обновление предметов, отправка сообщений
    и многое другое...

    Быстрый старт
    Пример простого бота, который будет отвечать на несложные команды
    python
    from playerokapi.account import Account
    from playerokapi.types import *
    from playerokapi.enums import *
    from playerokapi.listener.listener import EventListener

    # --- инициализация аккаунта ---
    acc = Account(token="l0eSI6IjFlZTEzODQ2LWVlNGUtNjcxMC1kZDNjLTNiMmVhODIxMT...",
    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(requests_delay=2): # - указываем периодичность запросов в 2 сек, меньше не рекомендую

    if event.type is EventTypes.NEW_MESSAGE: # ловим тип ивента "Новое сообщение"
    if event.message.user.id != acc.id: # проверяем, если это сообщение было отправлено не от своего же лица
    chat = acc.get_chat_by_username(event.message.user.username) # получаем чат с собеседником

    if event.message.text == "!команды": # проверяем, если текст сообщение - нужная наша команда
    acc.send_message(chat.id, " Доступные команды: \n┗ !что-то там - показывает что-то\n┗ !где-то там - показывает где-то", True) # отправляем пользователю сообщение
    if event.message.text == "!привет":
    acc.send_message(chat.id, " Привет, я бот для Playerok!\n┗ Узнать команды - !команды", True)
    if event.message.text == "!дата":
    acc.send_message(chat.id, f" Текущая дата: {datetime.now ().strftime("%d/%m/%Y, %H:%M:%S")}", True)


    Создание и публикация предмета
    Пример кода, который создаст и опубликует предмет в приложении «Telegram», категории «Подарки (NFT)»
    python
    from playerokapi.account import Account
    from playerokapi.types import *
    from playerokapi.enums import *

    # --- инициализация аккаунта ---
    acc = Account(token="l0eSI6IjFlZTEzODQ2LWVlNGUtNjcxMC1kZDNjLTNiMmVhODIxMT...",
    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") # получаем нужную игру
    game_category = acc.get_game_category([category for category in game.categories if category.name == "Подарки (NFT)"][0].id) # получаем категорию этой игры
    obtaining_type_list = acc.get_game_category_obtaining_types(game_category.id) # получаем типы получения предмета в этой категории
    gift_obtaining_type = [obtaining_type for obtaining_type in obtaining_type_list.obtaining_types if obtaining_type.name == "Подарок"][0] # берём тип выдачи подарком

    gift_type_option = [gift_type for gift_type in game_category.options if gift_type.value == "heart"][0] # берём тип подарка "Сердце"
    # тут могут быть прочие опции...

    data_field_list = acc.get_game_category_data_fields(game_category.id, gift_obtaining_type.id) # получаем поля с данными категории определённого типа выдачи
    commentary_data_field = [data_field for data_field in data_field_list.data_fields if data_field.label == "Комментарий"][0] # берём поле с данным о комментарие (в этом случае только одно, чаще всего несколько необходимых)
    commentary_data_field.value = "Напишу вам в ТГ после оформления заказа" # задаём значение этому полю, так как оно обязательное

    banner_attachment = "banner.png" # описываем пути к файлам-приложениям предмета

    item = acc.create_item( # вызываем метод создания предмета
    game_category_id=game_category.id, # - указываем id категории игры
    obtaining_type_id=gift_obtaining_type.id, # указываем id типа получения предмета
    name="Подарок \"Сердце\"", # - указываем название предмета
    price=500, # - указываем цену предмета
    description="Выдача осуществляется без захода на ваш аккаунт", # - указываем описание предмета
    options=[gift_type_option], # - указываем опции предмета (в данном случае одна, но может быть несколько, поэтому указываются в массиве)
    data_fields=[commentary_data_field], # - указываем поля с данными предмета
    attachments=[banner_attachment] # - указываем файлы-приложения предмета (баннер и прочие изображения)
    )

    # --- публикация предмета ---
    statuses = acc.get_item_priority_statuses(item.id, item.price) # получаем статусы приоритета предмета
    free_status = statuses[1].id # получаем бесплатный статус, чтобы не платить за премиум выставление
    new_item = acc.publish_item(item.id, free_status) # выставляем предмет на продажу


    Получение предметов пользователя
    Пример простого кода, который получит последние 24 предмета пользователя «LexeyLex» и выведет в консоль их названия
    python
    user = acc.get_user(username="LexeyLex")
    item_list = user.get_items()
    for item in item_list.items:
    print(item.name)


    Получение сообщений чата
    Пример простого кода, который получит последние 24 сообщения в чате с пользователем «LexeyLex» и выведет в их в консоль
    python
    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)


    Разумеется это не всё, полный функционал ещё больше, можете ознакомиться с ним в документации.
    Хотел залить библиотеку на PyPi, но возникают какие-то траблы, поэтому пока что без него. Скачать пока что можно с GitHub (ссылки в самом низу).
    Кстати, это мой первый пост на сайте за 4 года :roflanebalo:

    PlayerokAPI (GitHub)
    Документация

    Связь со мной:
    TG разработчика
    Мой TG канал - там кстати есть разработанный мною крутой бот для Funpay, а так-же готовый модуль AutoBooster, автоматизирующий продажу SMM услуг (в неделю выходит около 2-3к рублей чистыми :da:).
    Мой TG бот
     
    11 июн 2025 Изменено
  2. Nekro3
    Nekro3 11 июн 2025 Закажи разработку тут - lolz.live/threads/7578402/
    хоть кто то додумался написать, молодес
     
  3. Локет
    Локет 11 июн 2025 4355 6 ноя 2020
    ебнутый, долго делал?
     
    1. extractorgg Автор темы
      Локет, недели 2, но это я ленился просто. так бы быстрее было
  4. feraxg
    feraxg 12 июн 2025 0 11 июн 2025
    как указать подкатегорию. и можно ли указывать не визуал. имя?
     
    1. extractorgg Автор темы
      feraxg, для получения категории можно указать её id или slug. slug - имя страницы этой категории в браузере, например у telegram подарков это nft. по слугу может находить не ту категорию, так как часто бывают одинаковыми, в следующей версии сделаю, чтобы можно было также дополнительно указывать id игры категории, чтобы уж точно находилось
  5. extractorgg
    extractorgg Автор темы 12 июн 2025 20 14 апр 2021
    feraxg, только что обновил репозиторий на git, теперь для получения категории можешь делать так:
    python
    game = acc.get_game(slug="telegram")
    cat = acc.get_game_category(game_id=game.id, slug="nft")
     
    12 июн 2025 Изменено
    1. extractorgg Автор темы
      extractorgg, покажу также, что такое slug. это имя в поисковой строке на странице категории[IMG]
  6. sdsddsdsdsdsd
    жду когда сделаешь бота руки расцелую)
     
    1. extractorgg Автор темы
    2. extractorgg Автор темы
Top
Загрузка...