Загрузка...

Free (software for catching TG gifts at a price below the flora (from the resale of cart tabs))

Thread in Your projects created by chewinggum Jul 18, 2025. 985 views

  1. chewinggum
    chewinggum Topic starter Jul 18, 2025 Banned 4 Jul 17, 2025
    кароче - тип продаёт за целых 5к рублей софт ( его тема: )
    я написал почти такой же код, с доработанными функциями и Бесплатно :am_shock:

    Замените и на реальные URL сайта
    Добавьте свои учетные данные в список accounts
    Настройте целевые цены в словаре target_prices
    Расширенные функции:
    Для фильтрации по номеру подарка добавьте проверку в метод buy_gift()
    Для использования разных цен в зависимости от фона/модели модифицируйте словарь target_prices
    Happy My Song GIF by Justin

    python как вы назовёте
    код:

    import time
    import requests
    from bs4 import BeautifulSoup
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC

    class SnatchGiftsBot:
    def __init__(self, accounts, target_prices, recipient=None):
    """
    Инициализация бота

    :param accounts: список словарей с учетными данными ({'username': '', 'password': ''})
    :param target_prices: словарь целевых цен для подарков ({'Desk Calendar': 150, ...})
    :param recipient: юзернейм получателя подарков (None если себе)
    """
    self.accounts = accounts
    self.target_prices = target_prices
    self.recipient = recipient
    self.drivers = []
    self.session = requests.Session()

    def login(self, account):
    """Авторизация одного аккаунта"""
    driver = webdriver.Chrome()
    driver.get(" ) # Замените на реальный URL

    username_field = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located(( , "username"))
    password_field = driver.find_element( , "password")

    username_field.send_keys(account['username'])
    password_field.send_keys(account['password'])
    driver.find_element(By.XPATH, "//button[@type='submit']").click()

    WebDriverWait(driver, 10).until(
    EC.presence_of_element_located(( , "main_page")))

    return driver

    def setup_accounts(self):
    """Авторизация всех аккаунтов"""
    for account in self.accounts:
    try:
    driver = self.login(account)
    self.drivers.append(driver)
    print(f"Успешный вход для {account['username']}")
    except Exception as e:
    print(f"Ошибка входа для {account['username']}: {str(e)}")

    def scan_gifts(self):
    """Сканирование подарков на предмет выгодных предложений"""
    while True:
    for driver in self.drivers:
    try:
    driver.get(" ) # Замените на URL перепродажи

    # Ожидание загрузки списка подарков
    WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.CLASS_NAME, "gift-item")))

    # Парсинг списка подарков
    gifts = driver.find_elements(By.CLASS_NAME, "gift-item")
    for gift in gifts:
    name = gift.find_element(By.CLASS_NAME, "gift-name").text
    price = int(gift.find_element(By.CLASS_NAME, "gift-price").text)

    # Проверка, соответствует ли подарок нашим критериям
    if name in self.target_prices and price <= self.target_prices[name]:
    self.buy_gift(driver, gift)
    break

    except Exception as e:
    print(f"Ошибка сканирования: {str(e)}")
    continue

    # Пауза между сканированиями
    time.sleep(1)

    def buy_gift(self, driver, gift_element):
    """Покупка подарка"""
    try:
    # Клик по подарку для открытия деталей
    gift_ ()

    # Ожидание кнопки покупки
    buy_button = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.XPATH, "//button[contains(text(), 'Купить')]")))

    # Если указан получатель
    if self.recipient:
    recipient_field = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located(( , "recipient")))
    recipient_field.send_keys(self.recipient)

    # Подтверждение покупки
    buy_ ()

    # Подтверждение в модальном окне
    confirm_button = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.XPATH, "//button[contains(text(), 'Подтвердить')]")))
    confirm_ ()

    print(f"Успешно куплен подарок по выгодной цене!")

    except Exception as e:
    print(f"Ошибка при покупке подарка: {str(e)}")

    def run(self):
    """Запуск бота"""
    self.setup_accounts()
    if not self.drivers:
    print("Нет активных аккаунтов для работы")
    return

    print("Бот запущен и начал сканирование...")
    self.scan_gifts()

    # Пример использования
    if __name__ == "__main__":
    # Настройки аккаунтов
    accounts = [
    {'username': 'user1', 'password': 'pass1'},
    {'username': 'user2', 'password': 'pass2'}
    ]

    # Целевые цены (из вашего примера)
    target_prices = {
    'Desk Calendar': 150,
    'B-Day Candle': 325,
    'Xmas Stocking': 330,
    'Lol Pop': 370,
    'Lunar Snake': 375,
    'Candy Cane': 390,
    'Homemade Cake': 425,
    'Snake Box': 438
    }

    # Создание и запуск бота
    bot = SnatchGiftsBot(
    accounts=accounts,
    target_prices=target_prices,
    recipient="target_user" # None если покупать себе
    )
    ()
     
  2. Нинтендо
    Нинтендо Jul 18, 2025 контакты - неактуальны. связь только лс форума 9,130 Sep 12, 2021
    пиздить у других работу это хорошо
    [IMG]
     
  3. walqed
    walqed Jul 18, 2025 Окак:owodance::owodance: 720 Dec 5, 2018
    А если чел полный 0 в кодинге,как ему это понять :dancing:
     
    1. chewinggum Topic starter
      avatarwalqed, скоро перепиши и просто выложу как exe
    2. sleep
  4. reloadqq
    reloadqq Jul 19, 2025 0 Jul 18, 2025
    Тема топ :finger_up: Если кому не сложно помогите с и . Где их брать?
     
    1. portal_inactive9462515
      avatarreloadqq, в документации тг было вроде
    2. reloadqq
      avatarportal_inactive9462515, я не нашел ссылку, лазил по апи и другим источнмкам
Loading...