Цикл до определенного времени, затем цикл следующего бита кода - PullRequest
0 голосов
/ 23 мая 2019

У меня есть бот, которому нравятся фотографии Instagram на основе Hashtag.Код, которому нравится определенный набор хэштегов, содержащийся в цикле.Мне бы хотелось, чтобы определенный набор хэштегов с 7:00 до 23:30, а затем с 23:30 до 7:00 напоминал другой набор хэштегов, использующих другой бит кода в другом цикле.Бот будет работать 24 часа в сутки.

Код для бота пока такой. Ему нравится только один конкретный набор хэштегов, мне нужно добавить второй бит кода:

    import os
        import time
        import random
        from instapy import InstaPy
        from instapy import smart_run

    like_tag_list = ['hashtag1','hashtag2','hashtag3']

    insta_username = '########'
    insta_password = '########'

session = InstaPy(username=insta_username,
password=insta_password,
headless_browser=True)
#multi_logs=True)


session.login()

            try:
                while True:

            # actions

                    session.like_by_tags(like_tag_list, amount=9, interact=True)
                    session.unfollow_users(amount=random.randint(75, 100),
                                       InstapyFollowed=(True, "nonfollowers"),
                                       style="FIFO",
                                       unfollow_after=8 * 60 * 60, sleep_delay=600)
                    #session.unfollow_users(amount=random.randint(75, 150),
                                       #InstapyFollowed=(True, "all"), style="FIFO",
                                       #unfollow_after=24 * 60 * 60, sleep_delay=501)

            finally:

Может кто-нибудь помочь мне сЗаставить бота зациклить первую часть кода с 7:00 до 23:30, а затем дать мне знать, где добавить второй набор хэштегов для второго цикла.Я был бы очень признателен.

Массивная реклама, надеюсь, все имеет смысл.

1 Ответ

1 голос
/ 23 мая 2019

Я немного отредактировал ваш основной цикл, и он должен работать. Определите два списка, один с хэштегами для одного периода времени, а другой для хэштегов в другой период времени. На каждой итерации цикла while получите текущую дату и время, прежде чем извлекать из нее час и проверять, правильно ли установлены часовые метки на основе этого текущего времени в списке tags_to_use, который затем используется. Одна небольшая проблема заключается в том, что я верю сейчас. Час - это int, поэтому он не поддерживает время 23:30, я установил его на 24, так что это будет с 7:00 до полуночи.

import datetime
like_tag_list1 = ['hashtag1','hashtag2','hashtag3']
like_tag_list2 = ['hashtag3','hashtag4','hashtag5']
while True:
    now = datetime.datetime.now()
    if now.hour >= 7 and now.hour < 24:
        tags_to_use = like_tag_list1
    else:
        tags_to_use = like_tag_list2
    session.like_by_tags(tags_to_use, amount=9, interact=True)
    session.unfollow_users(amount=random.randint(75, 100),
             InstapyFollowed=(True, "nonfollowers"),
             style="FIFO",
              unfollow_after=8 * 60 * 60, sleep_delay=600)
...