fedi-tools/delete_posts.py

39 lines
905 B
Python
Executable File

#!/usr/bin/env python
from pleroma import Pleroma
class PostDeleter:
def __init__(self, *, access_token, api_base_url):
self._fedi = Pleroma(access_token=access_token, api_base_url=api_base_url)
async def __aenter__(self):
self._fedi = await self._fedi.__aenter__()
return self
async def __aexit__(self, *excinfo):
await self._fedi.__aexit__(*excinfo)
async def run(self):
print('Deleting...')
async for status in self._fedi.account_statuses_iter(
await self._fedi.me(),
exclude_repeats=False,
):
if status['reblog']:
await self._fedi.un_repeat(status['reblog'])
else:
await self._fedi.delete_status(status)
print('.', end='', flush=True)
print()
async def main():
import os, sys
async with PostDeleter(access_token=os.environ['ACCESS_TOKEN'], api_base_url=sys.argv[1]) as pd:
await pd.run()
if __name__ == '__main__':
import anyio
anyio.run(main)