Merge pull request #2 from MarkEEaton/master

run black on ephemetoot.py to improve code readability
This commit is contained in:
Hugh Rundle 2019-02-15 10:24:32 +11:00 committed by GitHub
commit 6b39f5b8e6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 51 additions and 42 deletions

View File

@ -1,7 +1,7 @@
# #####################################################################
# Ephemetoot - A script to delete your old toots
# Copyright (C) 2018 Hugh Rundle
# Based partially on tweet-deleting script by @flesueur
# Based partially on tweet-deleting script by @flesueur
# (https://gist.github.com/flesueur/bcb2d9185b64c5191915d860ad19f23f)
#
# This program is free software: you can redistribute it and/or modify
@ -18,7 +18,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# You can contact Hugh on Mastodon @hugh@ausglam.space
# or on Twitter @hughrundle
# or on Twitter @hughrundle
# or email hugh [at] hughrundle [dot] net
# #####################################################################
@ -27,52 +27,61 @@ import json
from mastodon import Mastodon
from datetime import datetime, timedelta, timezone
print('Fetching account details...')
print("Fetching account details...")
mastodon = Mastodon(
access_token = config.access_token,
api_base_url = config.base_url
)
mastodon = Mastodon(access_token=config.access_token, api_base_url=config.base_url)
cutoff_date = datetime.now(timezone.utc) - timedelta(days=config.days_to_keep)
user_id = mastodon.account_verify_credentials().id
timeline = mastodon.account_statuses(user_id, limit=40)
def checkToots(timeline, deleted_count=0):
for toot in timeline:
try:
if (config.save_pinned and hasattr(toot, 'pinned') and toot.pinned):
print('📌 skipping pinned toot - ' + str(toot.id))
elif toot.id in config.toots_to_save:
print('💾 skipping saved toot - ' + str(toot.id))
elif (cutoff_date > toot.created_at):
if hasattr(toot, 'reblog') and toot.reblog:
print('👎 unboosting toot ' + str(toot.id) + ' boosted ' + toot.created_at.strftime("%d %b %Y"))
deleted_count += 1
# unreblog the original toot (their toot), not the toot created by boosting (your toot)
mastodon.status_unreblog(toot.reblog)
else:
print('❌ deleting toot ' + str(toot.id) + ' tooted ' + toot.created_at.strftime("%d %b %Y"))
deleted_count += 1
mastodon.status_delete(toot)
except:
print('🛑 **error** with toot - ' + str(toot.id))
# the account_statuses call is paginated with a 40-toot limit
# get the id of the last toot to include as 'max_id' in the next API call.
# then keep triggering new rounds of checkToots() until there are no more toots to check
try:
max_id = timeline[-1:][0].id
next_batch = mastodon.account_statuses(user_id, limit=40, max_id=max_id)
if len(next_batch) > 0:
checkToots(next_batch, deleted_count)
else:
print('Removed ' + str(deleted_count) + ' toots.')
except IndexError:
print('No toots found!')
def checkToots(timeline, deleted_count=0):
for toot in timeline:
try:
if config.save_pinned and hasattr(toot, "pinned") and toot.pinned:
print("📌 skipping pinned toot - " + str(toot.id))
elif toot.id in config.toots_to_save:
print("💾 skipping saved toot - " + str(toot.id))
elif cutoff_date > toot.created_at:
if hasattr(toot, "reblog") and toot.reblog:
print(
"👎 unboosting toot "
+ str(toot.id)
+ " boosted "
+ toot.created_at.strftime("%d %b %Y")
)
deleted_count += 1
# unreblog the original toot (their toot), not the toot created by boosting (your toot)
mastodon.status_unreblog(toot.reblog)
else:
print(
"❌ deleting toot "
+ str(toot.id)
+ " tooted "
+ toot.created_at.strftime("%d %b %Y")
)
deleted_count += 1
mastodon.status_delete(toot)
except:
print("🛑 **error** with toot - " + str(toot.id))
# the account_statuses call is paginated with a 40-toot limit
# get the id of the last toot to include as 'max_id' in the next API call.
# then keep triggering new rounds of checkToots() until there are no more toots to check
try:
max_id = timeline[-1:][0].id
next_batch = mastodon.account_statuses(user_id, limit=40, max_id=max_id)
if len(next_batch) > 0:
checkToots(next_batch, deleted_count)
else:
print("Removed " + str(deleted_count) + " toots.")
except IndexError:
print("No toots found!")
# trigger from here
if __name__ == '__main__':
account = mastodon.account(user_id)
print('Checking ' + str(account.statuses_count) + ' toots...')
checkToots(timeline)
if __name__ == "__main__":
account = mastodon.account(user_id)
print("Checking " + str(account.statuses_count) + " toots...")
checkToots(timeline)