39 lines
905 B
Python
39 lines
905 B
Python
|
#!/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)
|