Загрузка...

Фармим максимум поинтов Blum через API

Тема в разделе Криптовалюты создана пользователем clownery 10 июн 2024. 14 987 просмотров

  1. dobrikchoo
    dobrikchoo 27 июн 2024 0 25 мар 2023
    [IMG]пофиксили?
     
    1. clownery Автор темы
      dobrikchoo,
      это при попытке получить токен?
  2. Mxm
    Mxm 30 июн 2024 0 30 июн 2024
    А какой в этом прикол? Я руками набиваю 175-220 за раз
     
    1. clownery Автор темы
      Mxm,
      много применений этому, автоматизация, до 300 поинтов можно за мини-игру получать и т.д
  3. rozovbl_zakat
    После ввода токена, при нажатие на enter, cmd просто закрывается, в чем проблема?

    До этого, работало гуд :smile_good:
     
    2 июл 2024 Изменено
    1. clownery Автор темы
      rozovbl_zakat,
      не может такого быть что бы cmd сама закрывалась
    2. rozovbl_zakat
  4. Pooh81
    Pooh81 3 июл 2024 4 3 июл 2024
    Привет!
    Использую скрипт пару недель, всё отлично :smine_nice:
    Есть пара несущественных моментов, например иногда , ак писали выше вылетает командная срока сразу после ввода токена, но это думаю из-за глюков системы, перезагрузка помогает, повторюсь, это происходит довольно редко.
    Иногда неверно прогружает баланс или неверно начисляет баллы, непонятно, отличаются показания в командной строке и в окне Блума, но тоже не особо критично.
    (скрины приложу)
    Есть предложение, сделать ожидание не ровно 35 секунд, а тоже рандомное время поставить от 32 до 40 секунд, мне кажется подозрительно, что каждый раз ровно в одно и тоже время отправляются очки на сервер (хотя может я ошибаюсь, в Питоне вообще полный ноль, только чат ГПТ помогает кое что подправить)

    Кстати сделал из скрипта EXEшник и теперь он работает без необходимости устанавливать Питон, запускать командную строку и прописывать в ней адрес к скрипту, после запуска EXEшника сразу открывается окно командной строки и просит ввести токен. Ещё иконку Блума к нему прикрутил ))))
    Так же я в скрипте уменьшил кол-во очков 146-216 поставил на всякий случай, я руками максимум 220 набивал при помощи специальных возможностей Apple )))))) , хоть для чего-то они пригодились.
     
    1. clownery Автор темы
      Pooh81,
      очень рад что мой скрипт вдохновил тебя на творчество и модификацию того что я написал, возможно для тебя это станет первым шагом в мир разработки :))

      такой вопрос, у тебя старая или новая версия скрипта? дело в том что я делал небольшой апдейт в котором вроде как пофиксил отображение баланса и добавил две константы с минимальным и максимальны количеством получаемых поинтов.

      абсолютно точной синхронизации с реальным балансом после игр и балансом который отображается в окне блюм добиться невозможно, потому что в самом блюме оно отображается через какое то время, и людей это настораживает что мини-игры прошли, поинты вроде как получились, а баланс в самом окне не отображается, хотя просто стоит чуть чуть подождать :))

      насчет экзешника, здорово что ты упростил себе задачу и создал экзешник под это дело! но я не стал так делать т.к многие люди не доверяют незнакомым файлам в интернете и это нормально. я бы сам не стал никогда запускать какой то левый исполняемый файл от человека которого я первый раз на формуе вижу. по этой причине и сделал скрипт что бы все было прозрачно и каждый мог убедиться что ничего страшного в программе не происходит.

      большое спасибо что поделился своим фидбеком о работе со скриптом :love2:
      3 июл 2024 Изменено
    2. Pooh81
      clownery, версия скрипта новая, да я знаю что поинты с задержкой приходят, но повторюсь - это не критично, главное под бритву не попасть )))) А что со временем в 35 секунд? поправишь или смысла нет?
    3. clownery Автор темы
      Pooh81,
      а насчет времени забыл упомянуть
      да на самом деле было бы неплохо, чуть позже добавлю еще две константы в скрипт которые влияют на задержку между слипом, это хорошая идея спасибо тебе за предложение
  5. Pooh81
    Pooh81 3 июл 2024 4 3 июл 2024
  6. Хазварыч
    Хазварыч 4 июл 2024 йоу 106 19 ноя 2022
    как путь указать? в последнем пункте
     
    1. clownery Автор темы
  7. kiberbylo4ka
    вот и закончилась история бота(
     
    1. Посмотреть предыдущие комментарии (1)
    2. Pooh81
      kiberbylo4ka, сейчас кручу, всё работает в лучшем виде и с рандомными секундами зачисления поинтов теперь! Шансов "побриться" стало ещё чуточку меньше ))))) Ещё вот этой командой pyinstaller --onefile "Ваше название".py можно сделать .EXEшник из скрипта и не нужно каждый раз запускать командную строку, она сама стартует и сразу просит ввести токен
      5 июл 2024 Изменено
    3. kiberbylo4ka
      clownery, так обнова же в блюме, как он работает
    4. clownery Автор темы
      kiberbylo4ka,
      ну обнова обновой, методы взаимодействия клиента с сервером не поменялись ведь, поменяли исключительно визаул :pog:
  8. clownery
    clownery Автор темы 5 июл 2024 bunnyhop 40 9 ноя 2019
    UPD 05.07.24:
    Немного обновил скрипт и добавил две константы MIN_SLEEP_TIME и MAX_SLEEP_TIME которые добавляют рандомизацию для задержки между играми
     
    1. Pooh81
      clownery, Круто! Всё работает как часы!!! Спасибо! Сделал EXEшник, прикрутил иконку - КАЙФ!!! :da:
      5 июл 2024 Изменено
  9. БИЛЛИНОГАМИ
    БИЛЛИНОГАМИ 5 июл 2024 Банки|Турция|Верификации|Биржи - lzt.lol/TUR :zerotwo:
    Неплохой софтик потратил 200 билетов и жирно слутал
     
    1. Pooh81
      БИЛЛИНОГАМИ, за раз 200 билетов? ничоси! Напиши потом пожалуйста сбрили или нет.
  10. Rededicated
    nice тема[IMG]
     
    8 июл 2024 Изменено
  11. kiberbylo4ka
    подскажите, а из за чего приложение блюма на компе не открывается? бесконечная загрузка и все
     
    9 июл 2024 Изменено
    1. Pooh81
      kiberbylo4ka, обновлять через три точки сверху пробовал?
    2. kiberbylo4ka
      kiberbylo4ka, *** помог, может кому пригодится
  12. infireal
    infireal 10 июл 2024 2 3 май 2023
    Список ожидания приостановлен
    Слишком много людей в очереди. Мы приостановили работу, чтобы обеспечить бесперебойную работу приложения. что делать тепер мне
     
  13. Grosseigor
    Grosseigor 11 июл 2024 0 11 июл 2024
    привет чкрипт то дайте а)
     
  14. molant
    molant 17 июл 2024 3 30 мар 2020
    все ку,доработал код что бы он был в виде бота для телеграмма
    1.для установки надо

    Python
    pip install requests pyTelegramBotAPI
    2.сам код
    Python
    import random
    import time
    import logging
    import requests
    import telebot
    from telebot import types

    # Telegram bot token
    TOKEN = "TOKEN_BOT"

    # Enable logging
    logging.basicConfig(
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO
    )
    logger = logging.getLogger(__name__)

    # API URLs
    URL_ME = "https://gateway.blum.codes/v1/user/me"
    URL_BALANCE = "https://game-domain.blum.codes/api/v1/user/balance"
    URL_PLAY_GAME = "https://game-domain.blum.codes/api/v1/game/play"
    URL_CLAIM_REWARD = "https://game-domain.blum.codes/api/v1/game/claim"

    # Constants
    MIN_POINTS = 152
    MAX_POINTS = 184

    MIN_SLEEP_TIME = 28
    MAX_SLEEP_TIME = 35

    # Initialize bot with your token
    bot = telebot.TeleBot(TOKEN)

    class InvalidToken(Exception):
    pass

    class BlumAPI:
    def __init__(self, authorization_token) -> None:
    self.headers = {
    'Authorization': authorization_token
    }

    def request(self, request_method, url, payload=None):
    response = getattr(requests, request_method)(url, headers=self.headers, data=payload)
    if response.status_code == 401:
    raise InvalidToken(response.text)
    return response

    def get_me(self):
    response = self.request('get', URL_ME)
    if not response.ok:
    raise Exception(f'Проблема при получении имени пользователя!\nТекст ошибки с сервера: {response.text}')
    return response.json()

    def get_balance(self):
    response = self.request('get', URL_BALANCE)
    if not response.ok:
    raise Exception(f'Проблема при получении баланса!\nТекст ошибки с сервера: {response.text}')
    return response.json()

    def play_game(self):
    response = self.request('post', URL_PLAY_GAME)
    if not response.ok:
    raise Exception(f'При попытке сыграть в игру произошла ошибка!\nТекст ошибки с сервера: {response.text}')
    return response.json()

    def claim_reward(self, game_id: str, points: int):
    payload = {'gameId': game_id, 'points': points}
    response = self.request('post', URL_CLAIM_REWARD, payload=payload)
    if not response.ok:
    raise Exception(f'При попытке собрать награду произошла ошибка!\nТекст ошибки с сервера: {response.text}')

    # User data storage
    user_data = {}

    @bot.message_handler(commands=['start'])
    def start(message):
    user_data[message.chat.id] = {}
    bot.send_message(message.chat.id, 'Введите токен авторизации Blum:')
    bot.register_next_step_handler(message, get_auth)

    def get_auth(message):
    user_data[message.chat.id]['token'] = message.text
    try:
    blum_api = BlumAPI(user_data[message.chat.id]['token'])
    username = blum_api.get_me().get('username')
    user_data[message.chat.id]['blum_api'] = blum_api
    user_data[message.chat.id]['username'] = username
    main_menu(message)
    except InvalidToken as e:
    bot.send_message(message.chat.id, f'Ошибка с токеном: {e}')
    bot.register_next_step_handler(message, get_auth)
    except Exception as e:
    bot.send_message(message.chat.id, f'Ошибка: {e}')
    bot.register_next_step_handler(message, get_auth)

    def main_menu(message):
    markup = types.ReplyKeyboardMarkup(one_time_keyboard=True, resize_keyboard=True)
    markup.add(types.KeyboardButton('Играть'))
    markup.add(types.KeyboardButton('Изменить настройки'))
    bot.send_message(message.chat.id, f'Привет, {user_data[message.chat.id]["username"]}! Что вы хотите сделать?', reply_markup=markup)
    bot.register_next_step_handler(message, handle_main_menu)

    def handle_main_menu(message):
    if message.text == 'Играть':
    play_game(message)
    elif message.text == 'Изменить настройки':
    settings_menu(message)
    else:
    bot.send_message(message.chat.id, 'Пожалуйста, выберите "Играть" или "Изменить настройки".')
    bot.register_next_step_handler(message, handle_main_menu)

    def settings_menu(message):
    markup = types.ReplyKeyboardMarkup(one_time_keyboard=True, resize_keyboard=True)
    markup.add(types.KeyboardButton('Количество поинтов'))
    markup.add(types.KeyboardButton('Время ожидания'))
    markup.add(types.KeyboardButton('Назад в меню'))
    bot.send_message(message.chat.id, 'Что вы хотите изменить?', reply_markup=markup)
    bot.register_next_step_handler(message, handle_settings_menu)

    def handle_settings_menu(message):
    if message.text == 'Количество поинтов':
    bot.send_message(message.chat.id, 'Введите минимальное и максимальное количество поинтов через пробел:')
    bot.register_next_step_handler(message, set_points_value)
    elif message.text == 'Время ожидания':
    bot.send_message(message.chat.id, 'Введите минимальное и максимальное время ожидания в секундах через пробел:')
    bot.register_next_step_handler(message, set_time_value)
    elif message.text == 'Назад в меню':
    main_menu(message)
    else:
    bot.send_message(message.chat.id, 'Пожалуйста, выберите "Количество поинтов" или "Время ожидания".')
    bot.register_next_step_handler(message, handle_settings_menu)

    def set_points_value(message):
    try:
    min_points, max_points = map(int, message.text.split())
    user_data[message.chat.id]['MIN_POINTS'] = min_points
    user_data[message.chat.id]['MAX_POINTS'] = max_points
    bot.send_message(message.chat.id, f'Минимальное и максимальное количество поинтов установлены на {min_points} и {max_points} соответственно.')
    except Exception as e:
    bot.send_message(message.chat.id, f'Ошибка: {e}')
    main_menu(message)

    def set_time_value(message):
    try:
    min_time, max_time = map(int, message.text.split())
    user_data[message.chat.id]['MIN_SLEEP_TIME'] = min_time
    user_data[message.chat.id]['MAX_SLEEP_TIME'] = max_time
    bot.send_message(message.chat.id, f'Минимальное и максимальное время ожидания установлены на {min_time} и {max_time} секунд соответственно.')
    except Exception as e:
    bot.send_message(message.chat.id, f'Ошибка: {e}')
    main_menu(message)

    def play_game(message):
    chat_id = message.chat.id
    blum_api = user_data[chat_id]['blum_api']
    username = user_data[chat_id]['username']
    bot.send_message(chat_id, f'Игры для {username} начинаются...')

    try:
    balance_data = blum_api.get_balance()
    available_balance, game_passes = float(balance_data.get('availableBalance')), balance_data.get('playPasses')
    bot.send_message(chat_id, f'Баланс: {available_balance}\nДоступные игры: {game_passes}')

    bot.send_message(chat_id, 'Введите количество игр, которые вы хотите сыграть:')
    bot.register_next_step_handler(message, process_games_count, available_balance, game_passes)
    except Exception as e:
    bot.send_message(chat_id, f'Ошибка: {e}')

    def process_games_count(message, available_balance, game_passes):
    chat_id = message.chat.id
    try:
    games_count = int(message.text)
    if 0 < games_count <= game_passes:
    for game_number in range(1, games_count + 1):
    bot.send_message(chat_id, f'Игра номер {game_number} начата.')
    response = user_data[chat_id]['blum_api'].play_game()
    game_id = response.get('gameId')

    min_points = user_data[chat_id].get('MIN_POINTS', MIN_POINTS)
    max_points = user_data[chat_id].get('MAX_POINTS', MAX_POINTS)
    points = random.randrange(min_points, max_points)

    min_sleep_time = user_data[chat_id].get('MIN_SLEEP_TIME', MIN_SLEEP_TIME)
    max_sleep_time = user_data[chat_id].get('MAX_SLEEP_TIME', MAX_SLEEP_TIME)
    sleep_time = random.randrange(min_sleep_time, max_sleep_time)

    time.sleep(sleep_time)
    user_data[chat_id]['blum_api'].claim_reward(game_id, points)
    available_balance += points

    bot.send_message(chat_id, f'Игра номер {game_number} завершена.\nID игры: {game_id}\nВы получили {points} поинтов.\nБаланс: {available_balance}')
    time.sleep(1)

    markup = types.ReplyKeyboardMarkup(one_time_keyboard=True, resize_keyboard=True)
    markup.add(types.KeyboardButton('Начать заново'))
    bot.send_message(chat_id, 'Все игры завершены.', reply_markup=markup)
    bot.register_next_step_handler(message, handle_restart)
    else:
    bot.send_message(chat_id, 'Введите допустимое количество игр.')
    bot.register_next_step_handler(message, process_games_count, available_balance, game_passes)
    except Exception as e:
    bot.send_message(chat_id, f'Ошибка: {e}')
    bot.register_next_step_handler(message, process_games_count, available_balance, game_passes)

    def handle_restart(message):
    if message.text == 'Начать заново':
    main_menu(message)
    else:
    bot.send_message(message.chat.id, 'Пожалуйста, выберите "Начать заново".')
    bot.register_next_step_handler(message, handle_restart)

    bot.polling(none_stop=True)
    Если будут вопросы,пишите!
     
    17 июл 2024 Изменено
    1. Посмотреть предыдущие комментарии (2)
    2. molant
      Pooh81, Привет!лучше ставь время между играми от 1 минуты,и что за ошибки у тебя?
    3. Pooh81
      molant, да если честно, я не сразу понял что надо через БОТФазера создавать бота, из-за этого и ошибки я думаю
      напиши инструкцию, если не сложно, что и как


      я вот, взял код автора статьи и чуть переделал его тоже немного
      завернул его в ехешник
      и пользуюсь 2 недели+
      долго мучал ChatGPT ))))
      22 июл 2024 Изменено
    4. molant
      Pooh81, красава всё равно!статью напишу тоже
      23 июл 2024 Изменено
    5. Посмотреть следующие комментарии (1)
  15. FixEEERKing
    Как сделать многопоточность?
     
    1. clownery Автор темы
      FixEEERKing,
      привет, ну с помощью multiprocessing можешь сам дописать что бы у тебя в несколько потоков шли запросы, но я не уверен что это хорошая затея, думаю могут забанить если одновременно много запросов на мини-игру посылать...
  16. farg32
    farg32 25 июл 2024 2 14 дек 2020
    Есть такая проблемка. Скрипт может открутить подряд и 100 игр и 10 и потом отваливается. Ошибка. Надо обновлять токен и всё по новой. Это у меня только так?
     
    1. clownery Автор темы
      farg32,
      Сессия не бесконечная, через какое то время токен меняется на новый, это вполне естественный процесс.
  17. BlackCCb
    BlackCCb 27 июл 2024 0 20 сен 2023
    Ошибка: При попытке собрать награду произошла ошибка!
    Текст ошибки с сервера: {"message":"game session not finished"}

    Это очень часто вылазит
     
    1. clownery Автор темы
      BlackCCb,
      Ты менял MIN_SLEEP_TIME и MAX_SLEEP_TIME?
  18. VeseliyGnom
    VeseliyGnom 27 авг 2024 0 27 авг 2024
    Blum что то поменял? перестало работать
    ERROR! HTTPSConnectionPool: Max retries exceeded with и тд
     
    27 авг 2024 Изменено
  19. kulin
    kulin 2 сен 2024 1 25 авг 2024
    ERROR! При попытке сыграть в игру произошла ошибка!
    Текст ошибки с сервера: {"message":"cannot start game"}
    что делать?
     
    1. farg32
      kulin, нашёл решение?
    2. kulin
      farg32, -,другую версию юзаю
    3. Pooh81
      kulin, поделишься?
  20. no_cheat
    no_cheat 13 сен 2024 УНИК АРХИВЫ https://lolz.live/threads/7583834/ 652 31 июл 2021
    давно зарегался но нету симп - новокек
    недавно зарегался - новорег
     
    1. clownery Автор темы
Загрузка...
Top