Когда я запускаю скрипт tweepy python, на соответствующей учетной записи Twitter ничего не происходит - PullRequest
0 голосов
/ 07 февраля 2019

Я создал скрипт на python с tweepy, который отвечает на твиты-самоубийцы со ссылкой на сайт поддержки.Однако ничего не происходит, когда я запускаю код и чирикаю с любым из кодовых слов в другой учетной записи.Я открываю и запускаю файл .py в командной строке.

Как я уже сказал, я пытался использовать конкретные слова, которые должны вызывать его, но он не отвечает.

import tweepy

#the following module is a file with the specific keys set in
#a dictionary to the given variable, don't want to show them due to 
#privacy/security 

from keys import keys

CONSUMER_KEY = keys['consumer_key']
CONSUMER_SECRET = keys['consumer_secret']
ACCESS_TOKEN = keys['access_token']
ACCESS_TOKEN_SECRET = keys['access_token_secret']

auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
api = tweepy.API(auth)    

twts = api.search(q="suicide")     

t = ['suicide',
    'kill myself',
    'hate myself',
    'Suicidal',
    'self-harm',
    'self harm']

for s in twts:
    for i in t:
        if i == s.text:
            sn = s.user.screen_name
            m = "@%s You are loved! For help, visit https://suicidepreventionlifeline.org/" % (sn)
            s = api.update_status(m, s.id)

Он должен ответить ссылкой на справку, но это не так, и я не знаю, что я сделал неправильно в своем коде.Любая помощь?

1 Ответ

0 голосов
/ 13 февраля 2019

Заменить:

if i == s.text:

на:

if i in s.text:

Или для соответствия слов чувствительны к регистру, лучше всего должно быть:

if i.lower() in s.text.lower():

Поскольку Suicidal(другие слова из массива t) не могут быть равны тексту твита.Я думаю, вы хотите проверить, содержит ли текст это слово.

...