Reddit в Twitter ошибка бота Python (используется python: praw & tweepy) - PullRequest
0 голосов
/ 11 ноября 2018

У меня проблема с этой частью моего кода:

timeline = tweepy.Cursor(api.user_timeline).items(1)
for submission in reddit.subreddit('StonerPhilosophy').top('hour' , limit=1):    
        if len(submission.title) <= 280:
            try:
                api.update_status(status = submission.title)
                sleep(120)
                for tweet in timeline:
                    api.update_status(status = 'Credits: Posted by /u/' + str(submission.author) + 'url: redd.it/' + str(submission.id) , in_reply_to_status_id = tweet.id)
            except:
                print('Fail')
        elif len(submission.title) <= 560:
            try:
                s = submission.title
                first_half  = s[0:len(s)//2]
                second_half = s[len(s)//2 if len(s)%2 == 0 else ((len(s)//2)+1):]

                api.update_status(status = first_half)
                for tweet in timeline:
                    api.update_status(status = second_half) , in_reply_to_status_id = tweet.id)

                sleep(120)

                for tweet in timeline:
                    api.update_status(status = 'Credits: Posted by /u/' + str(submission.author) + 'url: redd.it/' + str(submission.id)) , in_reply_to_status_id = tweet.id)
            except:
                print('Fail')

когда я пытаюсь запустить его, я получаю «Неверный синтаксис» как ошибку. Проблема с 'tweet.id' (но по какой-то причине второй и третий, нет проблем с первым ...: /)

То, что я делаю с 'tweet.id', в основном получает идентификатор моего последнего твита, так что я могу ответить на него либо с помощью кредитов, либо со второй частью твита (я должен разбить некоторый твит на две части если они длиннее 280 символов), а затем еще один ответ с кредитами. Я пытался исправить это в течение нескольких часов: /

1 Ответ

0 голосов
/ 11 ноября 2018

Не уверен, как должны выглядеть ваши вызовы API, но при условии, что api.update_status() принимает статус и tweetID; Вы только передаете ему статус. Если вы посмотрите на скобки на нем, api.update_status(status = second_half) - это все, что вы бы назвали, если бы он не вышел из строя во время выполнения из-за оставшейся части линии.

вам может повезти с:

api.update_status(status = second_half, in_reply_to_status_id = tweet.id)

Было бы полезно получить дополнительную информацию о вашем API / коде.

...