Вторая тема: Автоподнятие аккаунтов маркета LZT на Python + авто-получение аккаунтов + уведомления в Telegram from random import shuffle, randint from apscheduler.schedulers.blocking import BlockingScheduler from requests import Session from json import dumps from time import sleep threads = [5360381, 5344245, 5332537, 5331730] times = ['0:30', '2:55', '10:00', '12:25', '14:50', '17:15', '19:40', '22:05'] tg_bot_token = '12345:ggfgdfgd' tg_chat_id = 1234667 lolzteam_token = 'lolzteam' shuffle(threads) upped_threads = [] scheduler = BlockingScheduler(timezone="Europe/Moscow", job_defaults={'misfire_grace_time': None}) s, tg = Session(), Session() s.headers.update({'Authorization': f'Bearer {lolzteam_token}'}) def upper(): global threads, upped_threads if len(threads) == len(upped_threads): upped_threads = [] for i in threads: if not i in upped_threads: sleep(randint(1, 60)) try: up = s.post(f'https://api.lolz.live/threads/{i}/bump').json() except Exception as e: print('Не удалось поднять тему https://lolz.live/threads/{i}\nОшибка интернета! '+str(e)) tg.get(f'https://api.telegram.org/bot{tg_bot_token}/sendMessage?chat_id={tg_chat_id}&text=Не удалось поднять тему https://lolz.live/threads/{i}\nОшибка интернета! '+str(e)) if 'status' in up and up['status'] == 'ok': print('Поднял тему https://lolz.live/threads/'+str(i)) upped_threads.append(i) elif 'errors' in up and up['errors'][0].startswith('Согласно вашим правам'): print(f'Не удалось поднять тему https://lolz.live/threads/{i}\nЛимит на поднятие') tg.get(f'https://api.telegram.org/bot{tg_bot_token}/sendMessage?chat_id={tg_chat_id}&text=Не удалось поднять тему https://lolz.live/threads/{i}\nЛимит на поднятие') elif 'errors' in up and up['errors'][0].startswith('У Вас нет прав'): print(f'Не удалось поднять тему https://lolz.live/threads/{i}\nТема закрыта! Откройте тему!') tg.get(f'https://api.telegram.org/bot{tg_bot_token}/sendMessage?chat_id={tg_chat_id}&text=Не удалось поднять тему https://lolz.live/threads/{i}\nТема закрыта! Откройте тему!') else: print(f'Не удалось поднять тему https://lolz.live/threads/{i}\n', up) tg.get(f'https://api.telegram.org/bot{tg_bot_token}/sendMessage?chat_id={tg_chat_id}&text=Не удалось поднять тему https://lolz.live/threads/{i}\n'+dumps(up)) return upper() for hour, minute in [time.split(':') for time in times]: scheduler.add_job(upper, trigger='cron', hour=hour, minute=minute) scheduler.start() Python from random import shuffle, randint from apscheduler.schedulers.blocking import BlockingScheduler from requests import Session from json import dumps from time import sleep threads = [5360381, 5344245, 5332537, 5331730] times = ['0:30', '2:55', '10:00', '12:25', '14:50', '17:15', '19:40', '22:05'] tg_bot_token = '12345:ggfgdfgd' tg_chat_id = 1234667 lolzteam_token = 'lolzteam' shuffle(threads) upped_threads = [] scheduler = BlockingScheduler(timezone="Europe/Moscow", job_defaults={'misfire_grace_time': None}) s, tg = Session(), Session() s.headers.update({'Authorization': f'Bearer {lolzteam_token}'}) def upper(): global threads, upped_threads if len(threads) == len(upped_threads): upped_threads = [] for i in threads: if not i in upped_threads: sleep(randint(1, 60)) try: up = s.post(f'https://api.lolz.live/threads/{i}/bump').json() except Exception as e: print('Не удалось поднять тему https://lolz.live/threads/{i}\nОшибка интернета! '+str(e)) tg.get(f'https://api.telegram.org/bot{tg_bot_token}/sendMessage?chat_id={tg_chat_id}&text=Не удалось поднять тему https://lolz.live/threads/{i}\nОшибка интернета! '+str(e)) if 'status' in up and up['status'] == 'ok': print('Поднял тему https://lolz.live/threads/'+str(i)) upped_threads.append(i) elif 'errors' in up and up['errors'][0].startswith('Согласно вашим правам'): print(f'Не удалось поднять тему https://lolz.live/threads/{i}\nЛимит на поднятие') tg.get(f'https://api.telegram.org/bot{tg_bot_token}/sendMessage?chat_id={tg_chat_id}&text=Не удалось поднять тему https://lolz.live/threads/{i}\nЛимит на поднятие') elif 'errors' in up and up['errors'][0].startswith('У Вас нет прав'): print(f'Не удалось поднять тему https://lolz.live/threads/{i}\nТема закрыта! Откройте тему!') tg.get(f'https://api.telegram.org/bot{tg_bot_token}/sendMessage?chat_id={tg_chat_id}&text=Не удалось поднять тему https://lolz.live/threads/{i}\nТема закрыта! Откройте тему!') else: print(f'Не удалось поднять тему https://lolz.live/threads/{i}\n', up) tg.get(f'https://api.telegram.org/bot{tg_bot_token}/sendMessage?chat_id={tg_chat_id}&text=Не удалось поднять тему https://lolz.live/threads/{i}\n'+dumps(up)) return upper() for hour, minute in [time.split(':') for time in times]: scheduler.add_job(upper, trigger='cron', hour=hour, minute=minute) scheduler.start() Заполняем конфиг threads - список тем, которые будут в рандомном порядке подниматься. Пример: threads = [5360381, 5344245, 5332537, 5331730] times - список из строк-моментов времени по МСК, когда будут подниматься темы. Как их рассчитать, расскажу ниже. Пример: times = ['0:30', '2:55', '10:00', '12:25', '14:50', '17:15', '19:40', '22:05'] tg_bot_token - токен бота Telegram https://t.me/BotFather Пример: tg_bot_token = '12345:ggfgdfgd' tg_chat_id - ваш ID в Telegram, чтобы бот отправлял вам уведомления. Уведомлять бот будет только об ошибках при поднятии тем. https://t.me/myidbot Пример: tg_chat_id = 1234667 lolzteam_token - токен API LOLZTEAM. О получении расскажу ниже. Пример: lolzteam_token = 'lolzteam' Как получить токен LOLZTEAM Просто переходим по ссылке: https://api.zelenka.guru/oauth/authorize?response_type=token&client_id=dy81dwjd0d&scope=read+post Нажимаем Разрешить доступ, дальнейшие инструкции вы увидите на странице после разрешения. Поместите токен в переменную lolzteam_token Как рассчитать моменты времени, когда поднимать темы Для начала нужно узнать, сколько тем вы можете поднимать и за какой период. Это количество зависит от вашей группы и от наличия Уника. Новичок (0 симпатий) может поднимать 5 тем за 72 часа Местный (20 симпатий) может поднимать 5 тем за 48 часов Постоялец (200 симпатий) может поднимать 5 тем за 36 часов Эксперт (1000 симпатий) может поднимать 5 тем за 18 часов Гуру (4000 симпатий) может поднимать 8 тем за 18 часов Искусственный интеллект (10 000 симпатий) может поднимать 10 тем за 12 часов Уник или легенда может поднимать темы за 12 часов (количество тем зависит от группы, выше) Определились с цифрами? Теперь определитесь, в какое время темы будут подниматься. Есть ли смысл поднимать темы ночью, например в 4:00? Я думаю, нет. Я для себя выбрал промежуток от 10:00. Промежуток этот каждый решит сам. А теперь: делим количество часов на количество тем, затем от начала промежутка времени прибавляем получившееся число, пока количество времён не будет = количеству тем, которые мы можем поднять. На примере: у меня есть Уник и моя группа - Гуру. Я могу поднимать 8 тем за 12 часов. Моё начало промежутка - 10:00. Начинаю прибавлять 1,5 часов (это 1 час 30 минут) к 10:00, используя калькулятор времени Получается: 10:00, 11:30, 13:00, 14:30, 16:00, 17:30, 19:00, 20:30 8 времён, 8 тем, на этом останавливаюсь. Надеюсь, я понятно все объяснил, удачи!
КрИпКрИпОчЕк, скрипт в теме никак не отличается от того, что я использую. у меня такой ошибки нет. но у тебя на 27 строке if 'status' in up, а у меня на 30...