steamgifts-бот

steamgifts-бот

В этом гайде я роз беру по полочкам бота для сайта steamgifts.

Нашел я его на просторах github, во-первых, о функционале он довольно велик.

Автоматически входит в раздачи.

Необнаруживаемый.

Настраиваемый.

Спит, чтобы пополнить запас очков.

Может работать 24/7.

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

steamgifts-бот

Например, можно поменять раздели по важности. Объясняю, вот это стопка отвечает за важность. (фото ниже)

Wishlist переводиться как желаемое. Этот раздел, чтобы находить игры из вашего списка желаний в Steam (не забывайте синхронизировать аккаунты)

Recommended - рекомендации, этот раздел понятный.

Copies - раздачи не с одним ключом, а несколькими (шансы больше)

Group - раздача с подписанных групп.

All - все раздачи.

И що есть DLC и New, но я ими не пользуюсь поэтому объяснять не буду.

priorities Не трогаем!!!

steamgifts-бот

Теперь переходим к практике.
При первом запуске он попросить cookie (не бойтесь это не печенья, их можете оставить себе)

Чтобы получить cookie, нам понадобится расширения Cookie-Editor

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

steamgifts-бот

Теперь когда видим что бот нормально работает, заходим в конфиг.

steamgifts-бот

Так как я вам в начале объяснял ставим порядок как сами захотите, но у меня такой

priorities Не трогаем!!!

steamgifts-бот

Все запускаем бота и радуемся что у нас всьо работает. Можете его кинуть в авто загрузку если хотите.

А тем кто остался подарок, переделанный script для этого бота чтобы можно его оставить и комп не будет переходить в сон, чтобы он работал установите threaded.

import configparser import questionary import json from prompt_toolkit.document import Document from prompt_toolkit.validation import Validator, ValidationError from main import SteamGifts from common import log, Singleton from typing import Dict, Any from functools import cached_property import pyautogui import time class PointValidator(Validator): def validate(self, doc: Document) -> bool: value = doc.text try: value = int(value) except Exception: raise ValidationError( message="Value should be a number", cursor_position=len(doc.text), ) if value <= 0: raise ValidationError( message="Value should be greater than 0", cursor_position=len(doc.text), ) return True class ConfigReader(metaclass=Singleton): def __init__(self) -> None: self.config = configparser.ConfigParser() self.config.read("config/config.ini") def _save_config(self) -> None: with open("config/config.ini", "w") as configfile: self.config.write(configfile) def _ask_for_cookie(self) -> str: cookie = questionary.text( "Enter PHPSESSID cookie (Only needed to provide once):" ).ask() self.config["DEFAULT"]["cookie"] = cookie self._save_config() return cookie def _ask_for_pinned(self) -> bool: pinned_games = questionary.confirm( "'Should bot enter pinned games?'" ).ask() self.config["DEFAULT"]["enter_pinned_games"] = str(pinned_games) self._save_config() return pinned_games def _ask_for_min_points(self) -> int: min_points = questionary.text( message="Enter minimum points to start working (bot will try " "to enter giveaways until minimum value is reached):", validate=PointValidator, ).ask() self.config["DEFAULT"]["min_points"] = min_points self._save_config() return int(min_points) @cached_property def data(self) -> Dict[str, Any]: with open("config/config.json") as json_data_file: data = json.load(json_data_file) if not self.config["DEFAULT"].get("cookie"): data["cookie"] = self._ask_for_cookie() else: data["cookie"] = self.config["DEFAULT"].get("cookie") if not self.config["DEFAULT"].get("enter_pinned_games"): data["enter_pinned_games"] = self._ask_for_pinned() else: data["enter_pinned_games"] = self.config["DEFAULT"].getboolean( "enter_pinned_games" ) if not self.config["DEFAULT"].get("min_points"): data["min_points"] = self._ask_for_min_points() else: data["min_points"] = self.config["DEFAULT"].getint("min_points") return data def move_mouse(): while True: pyautogui.moveRel(1, 0) time.sleep(10) def run() -> None: log("SteamGifts Bot", color="blue", figlet=True) log("Welcome to SteamGifts Bot!", color="green") log("Created by: github.com/s-tyda", color="white") config = ConfigReader() s = SteamGifts(**config.data) import threading mouse_thread = threading.Thread(target=move_mouse) mouse_thread.daemon = True mouse_thread.start() s.start() if __name__ == "__main__": run()

Киньте этот код в файл cli.py ну а на этом я прощаюсь, всем удачи, до скорых встреч, пока.

44
Начать дискуссию