2022-09-24 17:56:58 -07:00
|
|
|
## Shared utility functions.
|
|
|
|
|
|
|
|
|
|
import os
|
2022-09-25 03:39:15 -07:00
|
|
|
|
|
|
|
|
import twint
|
|
|
|
|
from tweetcapture import TweetCapture
|
|
|
|
|
|
2022-09-25 18:31:50 -07:00
|
|
|
import talent_lists
|
2022-09-24 17:56:58 -07:00
|
|
|
import talenttweet as tt
|
|
|
|
|
|
|
|
|
|
# returns system path to this project, which is
|
2022-09-25 18:31:50 -07:00
|
|
|
# up one level from this file's directory (effective path: ..../src/../).
|
2022-09-24 17:56:58 -07:00
|
|
|
def get_project_dir():
|
|
|
|
|
return os.path.join(os.path.dirname(__file__), os.pardir)
|
|
|
|
|
|
|
|
|
|
def clamp(n, smallest, largest):
|
2022-09-25 03:39:15 -07:00
|
|
|
return max(smallest, min(n, largest))
|
|
|
|
|
|
|
|
|
|
async def create_ttweet_image(ttweet):
|
|
|
|
|
tc = TweetCapture()
|
|
|
|
|
filename = 'img.png'
|
|
|
|
|
url = ttweet_to_url(ttweet)
|
|
|
|
|
img = None
|
|
|
|
|
|
|
|
|
|
try: os.remove(filename)
|
|
|
|
|
except: pass
|
|
|
|
|
try:
|
|
|
|
|
img = await tc.screenshot(
|
|
|
|
|
url=url,
|
|
|
|
|
path=filename,
|
|
|
|
|
mode=4,
|
|
|
|
|
night_mode=1
|
|
|
|
|
)
|
|
|
|
|
except:
|
|
|
|
|
print('unable to create tweet image')
|
|
|
|
|
return None
|
|
|
|
|
else:
|
|
|
|
|
print(f'successfully saved {img}')
|
|
|
|
|
return img
|
|
|
|
|
|
|
|
|
|
def ttweet_to_url(ttweet):
|
|
|
|
|
username = get_username(ttweet.author_id)
|
|
|
|
|
return f'https://twitter.com/{username}/status/{ttweet.tweet_id}'
|
|
|
|
|
|
|
|
|
|
def get_username(user_id):
|
2022-09-25 18:31:50 -07:00
|
|
|
return talent_lists.talents.get(user_id, f'#{id}')
|
|
|
|
|
|
|
|
|
|
def get_username_online(user_id):
|
2022-09-25 03:39:15 -07:00
|
|
|
c = twint.Config()
|
|
|
|
|
c.User_id = user_id
|
|
|
|
|
c.Store_object = True
|
|
|
|
|
c.Hide_output = True
|
|
|
|
|
try:
|
|
|
|
|
twint.run.Lookup(c)
|
|
|
|
|
user = twint.output.users_list[0]
|
2022-09-25 18:31:50 -07:00
|
|
|
twint.output.users_list.clear()
|
2022-09-25 03:39:15 -07:00
|
|
|
return user.username
|
|
|
|
|
except:
|
2022-09-25 18:31:50 -07:00
|
|
|
return f'#{user_id}'
|