Modify utils so those will take into account that entities might be not present in tweet objects

This commit is contained in:
Manuel Cortez 2021-06-25 13:14:01 -05:00
parent 4ad01d7833
commit 49505fabcd

View File

@ -27,22 +27,16 @@ def find_urls (tweet):
if hasattr(tweet, "message_create"): if hasattr(tweet, "message_create"):
entities = tweet.message_create["message_data"]["entities"] entities = tweet.message_create["message_data"]["entities"]
else: else:
if hasattr(tweet, "entities") == True:
entities = tweet.entities entities = tweet.entities
if entities.get("urls") != None:
for i in entities["urls"]: for i in entities["urls"]:
if i["expanded_url"] not in urls: if i["expanded_url"] not in urls:
urls.append(i["expanded_url"]) urls.append(i["expanded_url"])
if hasattr(tweet, "quoted_status"): if hasattr(tweet, "quoted_status"):
for i in tweet.quoted_status.entities["urls"]: urls.extend(find_urls(tweet.quoted_status))
if i["expanded_url"] not in urls:
urls.append(i["expanded_url"])
if hasattr(tweet, "retweeted_status"): if hasattr(tweet, "retweeted_status"):
for i in tweet.retweeted_status.entities["urls"]: urls.extend(find_urls(tweet.retweeted_status))
if i["expanded_url"] not in urls:
urls.append(i["expanded_url"])
if hasattr(tweet["retweeted_status"], "quoted_status"):
for i in tweet.retweeted_status.quoted_status.entities["urls"]:
if i["expanded_url"] not in urls:
urls.append(i["expanded_url"])
if hasattr(tweet, "message"): if hasattr(tweet, "message"):
i = "message" i = "message"
elif hasattr(tweet, "full_text"): elif hasattr(tweet, "full_text"):
@ -109,22 +103,22 @@ def get_all_mentioned(tweet, conf, field="screen_name"):
results.append(i.get(field)) results.append(i.get(field))
return results return results
def get_all_users(tweet, conf): def get_all_users(tweet, session):
string = [] string = []
user = session.get_user(tweet.user)
if hasattr(tweet, "retweeted_status"): if hasattr(tweet, "retweeted_status"):
string.append(tweet.user.screen_name) string.append(user.screen_name)
tweet = tweet.retweeted_status tweet = tweet.retweeted_status
if hasattr(tweet, "sender"):
string.append(tweet.sender.screen_name)
else: else:
if tweet.user.screen_name != conf["user_name"]: if user.screen_name != session.db["user_name"]:
string.append(tweet.user.screen_name) string.append(user.screen_name)
if tweet.get("entities") != None and tweet["entities"].get("user_mentions") != None:
for i in tweet.entities["user_mentions"]: for i in tweet.entities["user_mentions"]:
if i["screen_name"] != conf["user_name"] and i["screen_name"] != tweet.user.screen_name: if i["screen_name"] != session.db["user_name"] and i["screen_name"] != user.screen_name:
if i["screen_name"] not in string: if i["screen_name"] not in string:
string.append(i["screen_name"]) string.append(i["screen_name"])
if len(string) == 0: if len(string) == 0:
string.append(tweet.user.screen_name) string.append(user.screen_name)
return string return string
def if_user_exists(twitter, user): def if_user_exists(twitter, user):