Загрузка...

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

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

Загрузка...
  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 сама закрывалась
  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 йоу 107 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. Посмотреть предыдущие комментарии (3)
    2. Pooh81
      molant, да если честно, я не сразу понял что надо через БОТФазера создавать бота, из-за этого и ошибки я думаю
      напиши инструкцию, если не сложно, что и как


      я вот, взял код автора статьи и чуть переделал его тоже немного
      завернул его в ехешник
      и пользуюсь 2 недели+
      долго мучал ChatGPT ))))
      22 июл 2024 Изменено
    3. molant
      Pooh81, красава всё равно!статью напишу тоже
      23 июл 2024 Изменено
    4. clownery Автор темы
      molant,
      привет, давно не заходил в свой тред, и удивился когда увидел твой код, очень похвально +rep
      я очень рад что мой скрипт вдохновил тебя на творчество и усовершенствования, это всегда приветствуется :))

      жду от тебя отдельной статьи ;D
      25 июл 2024 Изменено
  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"}
    что делать?
     
  20. no_cheat
    no_cheat 13 сен 2024 УНИК АРХИВЫ https://lolz.live/threads/7583834/ 572 31 июл 2021
    давно зарегался но нету симп - новокек
    недавно зарегался - новорег
     
Top