#!/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)