replaced twit_account and tweets_and_replies

This commit is contained in:
jeancf 2022-11-18 16:54:31 +01:00
parent c8986ad5fb
commit aa75146580

View File

@ -398,11 +398,9 @@ def main(argv):
print('Missing Mastodon user') print('Missing Mastodon user')
exit(-1) exit(-1)
# twit_account = args['t']
# mast_instance = args['i'] # mast_instance = args['i']
# mast_account = args['m'] # mast_account = args['m']
# mast_password = args['p'] # mast_password = args['p']
# tweets_and_replies = args['r']
# suppress_retweets = args['s'] # suppress_retweets = args['s']
# get_vids = args['v'] # get_vids = args['v']
# remove_trackers = args['u'] # remove_trackers = args['u']
@ -439,7 +437,7 @@ def main(argv):
print(toml) print(toml)
# DEBUG CONFIG # DEBUG CONFIG
exit(1) # exit(1)
# Try to open database. If it does not exist, create it # Try to open database. If it does not exist, create it
sql = sqlite3.connect('twoot.db') sql = sqlite3.connect('twoot.db')
@ -473,9 +471,9 @@ def main(argv):
} }
) )
url = nitter_url + '/' + twit_account url = nitter_url + '/' + toml['config']['twitter_account']
# Use different page if we need to handle replies # Use different page if we need to handle replies
if tweets_and_replies: if toml['options']['post_reply_to']:
url += '/with_replies' url += '/with_replies'
# Download twitter page of user. # Download twitter page of user.
@ -497,7 +495,7 @@ def main(argv):
logging.info('Nitter page downloaded successfully from ' + url) logging.info('Nitter page downloaded successfully from ' + url)
# DEBUG: Save page to file # DEBUG: Save page to file
# of = open(twit_account + '.html', 'w') # of = open(toml['config']['twitter_account'] + '.html', 'w')
# of.write(twit_account_page.text) # of.write(twit_account_page.text)
# of.close() # of.close()
@ -508,7 +506,7 @@ def main(argv):
ta = soup.find('meta', property='og:title').get('content') ta = soup.find('meta', property='og:title').get('content')
ta_match = re.search(r'\(@(.+)\)', ta) ta_match = re.search(r'\(@(.+)\)', ta)
if ta_match is not None: if ta_match is not None:
twit_account = ta_match.group(1) toml['config']['twitter_account'] = ta_match.group(1)
# Extract twitter timeline # Extract twitter timeline
timeline = soup.find_all('div', class_='timeline-item') timeline = soup.find_all('div', class_='timeline-item')
@ -552,7 +550,7 @@ def main(argv):
# Check in database if tweet has already been posted # Check in database if tweet has already been posted
db.execute( db.execute(
"SELECT * FROM toots WHERE twitter_account=? AND mastodon_instance=? AND mastodon_account=? AND tweet_id=?", "SELECT * FROM toots WHERE twitter_account=? AND mastodon_instance=? AND mastodon_account=? AND tweet_id=?",
(twit_account, mast_instance, mast_account, tweet_id)) (toml['config']['twitter_account'], mast_instance, mast_account, tweet_id))
tweet_in_db = db.fetchone() tweet_in_db = db.fetchone()
if tweet_in_db is not None: if tweet_in_db is not None:
@ -606,7 +604,7 @@ def main(argv):
# Process attachment: capture image or .mp4 url or download twitter video # Process attachment: capture image or .mp4 url or download twitter video
attachments_class = status.find('div', class_='attachments') attachments_class = status.find('div', class_='attachments')
if attachments_class is not None: if attachments_class is not None:
pics, vid_in_tweet = process_attachments(nitter_url, attachments_class, get_vids, twit_account, status_id, pics, vid_in_tweet = process_attachments(nitter_url, attachments_class, get_vids, toml['config']['twitter_account'], status_id,
author_account) author_account)
photos.extend(pics) photos.extend(pics)
if vid_in_tweet: if vid_in_tweet:
@ -643,7 +641,7 @@ def main(argv):
# Check if video was downloaded # Check if video was downloaded
video_file = None video_file = None
video_path = Path('./output') / twit_account / status_id video_path = Path('./output') / toml['config']['twitter_account'] / status_id
if video_path.exists(): if video_path.exists():
# list video files # list video files
video_file_list = list(video_path.glob('*.mp4')) video_file_list = list(video_path.glob('*.mp4'))
@ -750,21 +748,21 @@ def main(argv):
# Insert toot id into database # Insert toot id into database
if 'id' in toot: if 'id' in toot:
db.execute("INSERT INTO toots VALUES ( ? , ? , ? , ? , ? )", db.execute("INSERT INTO toots VALUES ( ? , ? , ? , ? , ? )",
(twit_account, mast_instance, mast_account, tweet['tweet_id'], toot['id'])) (toml['config']['twitter_account'], mast_instance, mast_account, tweet['tweet_id'], toot['id']))
sql.commit() sql.commit()
logging.info(str(posted_cnt) + ' tweets posted to Mastodon') logging.info(str(posted_cnt) + ' tweets posted to Mastodon')
# Cleanup downloaded video files # Cleanup downloaded video files
try: try:
shutil.rmtree('./output/' + twit_account) shutil.rmtree('./output/' + toml['config']['twitter_account'])
except FileNotFoundError: # The directory does not exist except FileNotFoundError: # The directory does not exist
pass pass
# Evaluate excess records in database # Evaluate excess records in database
excess_count = 0 excess_count = 0
db.execute('SELECT count(*) FROM toots WHERE twitter_account=?', (twit_account,)) db.execute('SELECT count(*) FROM toots WHERE twitter_account=?', (toml['config']['twitter_account'],))
db_count = db.fetchone() db_count = db.fetchone()
if db_count is not None: if db_count is not None:
excess_count = db_count[0] - MAX_REC_COUNT excess_count = db_count[0] - MAX_REC_COUNT
@ -780,7 +778,7 @@ def main(argv):
LIMIT ? LIMIT ?
) )
DELETE from toots DELETE from toots
WHERE tweet_id IN excess''', (twit_account, excess_count)) WHERE tweet_id IN excess''', (toml['config']['twitter_account'], excess_count))
sql.commit() sql.commit()
logging.info('Deleted ' + str(excess_count) + ' old records from database.') logging.info('Deleted ' + str(excess_count) + ' old records from database.')