Add twitterbot.py
This commit is contained in:
parent
635554c14c
commit
e1bf4e008a
2
.gitignore
vendored
2
.gitignore
vendored
@ -13,4 +13,4 @@
|
|||||||
tmp/*
|
tmp/*
|
||||||
!twitter_api.py
|
!twitter_api.py
|
||||||
!twitter_stream_answers.py
|
!twitter_stream_answers.py
|
||||||
!twitterbot
|
!twitterbot.py
|
57
twitterbot.py
Normal file
57
twitterbot.py
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
import subprocess
|
||||||
|
|
||||||
|
import os
|
||||||
|
import twitter_api
|
||||||
|
import sys
|
||||||
|
|
||||||
|
import config
|
||||||
|
|
||||||
|
def start_bot(default=True):
|
||||||
|
print('Twitter bot started.')
|
||||||
|
|
||||||
|
twitter = twitter_api.API()
|
||||||
|
first_tweet = "Answer to this tweet to get a list of your twitter friends on Mastodon. If you include your own Mastodon username in the reply that username will be included in a database so that others can find you."
|
||||||
|
|
||||||
|
if not default:
|
||||||
|
print('\nShould I post this as a first tweet and instructions? (y/n)\n', first_tweet, '\n')
|
||||||
|
|
||||||
|
if input('>>> ').lower() != 'y': # If custom first tweet.
|
||||||
|
print('Write your first post and instructions:\n')
|
||||||
|
first_tweet = input('>>> ')
|
||||||
|
while len(first_tweet) > 140:
|
||||||
|
print('Too long, max lenght 140. Try again:\n')
|
||||||
|
first_tweet = input('>>> ')
|
||||||
|
|
||||||
|
r_json = twitter.post_tweet(first_tweet).json()
|
||||||
|
|
||||||
|
# Save the ID of the first tweet in the config.json file.
|
||||||
|
first_tweet_id = r_json['data']['id']
|
||||||
|
config.update_config('first_tweet_id', first_tweet_id)
|
||||||
|
|
||||||
|
return first_tweet_id
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
if len(sys.argv) > 1:
|
||||||
|
if sys.argv[1].lower() == 'start':
|
||||||
|
if sys.argv[1].lower() == 'default':
|
||||||
|
default = True
|
||||||
|
else:
|
||||||
|
default = False
|
||||||
|
first_tweet_id = start_bot(default)
|
||||||
|
else:
|
||||||
|
if input('Start Twitter bot? (y/n) ') in ['yes', 'y']:
|
||||||
|
first_tweet_id = start_bot(default=False)
|
||||||
|
else:
|
||||||
|
print('Exiting...')
|
||||||
|
|
||||||
|
conf = config.get_config()
|
||||||
|
print(f'You have posted your first tweet: https://twitter.com/{conf["bot_username"]}/status/{first_tweet_id}')
|
||||||
|
|
||||||
|
# Start monitoring answers to the first tweet.
|
||||||
|
subprocess.Popen(['python', 'stream_answers.py', first_tweet_id], cwd=os.path.dirname(os.path.realpath(__file__)))
|
||||||
|
|
||||||
|
# Start the answering machine.
|
||||||
|
subprocess.run(['python', 'answering_machine.py'], cwd=os.path.dirname(os.path.realpath(__file__)))
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user