2022-08-26 05:22:51 +00:00
|
|
|
#!/usr/bin/env python3
|
|
|
|
|
|
|
|
import os
|
|
|
|
import sys
|
|
|
|
from typing import Tuple
|
|
|
|
import tweepy
|
|
|
|
from time import sleep
|
|
|
|
from random import shuffle
|
|
|
|
|
|
|
|
|
2022-08-26 06:52:09 +00:00
|
|
|
def get_arguments() -> Tuple[bytes, bytes, bytes, bytes]:
|
|
|
|
consumer_key = os.environ['CONSUMER_KEY'].encode('utf8')
|
|
|
|
consumer_secret = os.environ['CONSUMER_SECRET'].encode('utf8')
|
|
|
|
access_token = os.environ['ACCESS_TOKEN'].encode('utf8')
|
|
|
|
access_token_secret = os.environ['ACCESS_TOKEN_SECRET'].encode('utf8')
|
2022-08-26 05:22:51 +00:00
|
|
|
|
|
|
|
return consumer_key, consumer_secret, access_token, access_token_secret
|
|
|
|
|
|
|
|
|
|
|
|
def populate_array(file_lines) -> list:
|
|
|
|
length = len(file_lines)
|
|
|
|
|
|
|
|
array = []
|
|
|
|
|
|
|
|
for i in range(length):
|
|
|
|
array.append(i)
|
|
|
|
|
|
|
|
shuffle(array)
|
|
|
|
|
|
|
|
return array
|
|
|
|
|
|
|
|
|
|
|
|
def main() -> None:
|
|
|
|
# Access and authorize our Twitter credentials
|
|
|
|
consumer_key, consumer_secret, access_token, access_token_secret = get_arguments()
|
|
|
|
auth = tweepy.OAuth1UserHandler(consumer_key=consumer_key, consumer_secret=consumer_secret,
|
|
|
|
access_token=access_token, access_token_secret=access_token_secret)
|
|
|
|
api = tweepy.API(auth=auth)
|
|
|
|
|
|
|
|
my_file = open('./everybody.txt', 'r', encoding='utf-8')
|
|
|
|
|
|
|
|
# Read lines one by one from my_file and assign to file_lines variable
|
|
|
|
file_lines = [x.strip() for x in my_file.readlines()]
|
|
|
|
|
|
|
|
# Close file.
|
|
|
|
my_file.close()
|
|
|
|
|
|
|
|
array = populate_array(file_lines)
|
|
|
|
|
|
|
|
# Driving loop.
|
|
|
|
while True:
|
|
|
|
while array:
|
|
|
|
tweet = file_lines[array.pop()]
|
|
|
|
|
|
|
|
try:
|
|
|
|
print(tweet)
|
|
|
|
api.update_status(tweet)
|
|
|
|
sleep(1800)
|
|
|
|
except tweepy.Forbidden as fe:
|
|
|
|
print(f"{fe.api_errors}")
|
|
|
|
sleep(30)
|
|
|
|
except tweepy.BadRequest as be:
|
|
|
|
print(f"{be.api_errors}")
|
|
|
|
sys.exit(1)
|
|
|
|
except tweepy.TweepyException as te:
|
|
|
|
print(te)
|
|
|
|
sys.exit(1)
|
|
|
|
|
|
|
|
array = populate_array(file_lines)
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
main()
|