mirror of
https://gitlab.com/jeancf/twoot.git
synced 2025-05-03 10:03:34 +00:00
replaced twit_account and tweets_and_replies
This commit is contained in:
parent
c8986ad5fb
commit
aa75146580
26
twoot.py
26
twoot.py
@ -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.')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user