[mastodon] Dismiss old notifications in the migration script, so they aren't reposted by ticketfrei3
This commit is contained in:
parent
e9eb98dba8
commit
061d29325f
|
@ -5,6 +5,7 @@ from os import urandom
|
||||||
from tortoise import Tortoise
|
from tortoise import Tortoise
|
||||||
from tortoise.exceptions import DoesNotExist
|
from tortoise.exceptions import DoesNotExist
|
||||||
import asyncio
|
import asyncio
|
||||||
|
from mastodon import Mastodon
|
||||||
|
|
||||||
from kibicara.model import Admin, Hood, IncludePattern, ExcludePattern
|
from kibicara.model import Admin, Hood, IncludePattern, ExcludePattern
|
||||||
from kibicara.platforms.mastodon.model import MastodonInstance, MastodonAccount
|
from kibicara.platforms.mastodon.model import MastodonInstance, MastodonAccount
|
||||||
|
@ -115,7 +116,7 @@ class Main:
|
||||||
|
|
||||||
print()
|
print()
|
||||||
print(
|
print(
|
||||||
"Migrated user %s with email %s for the city %s"
|
"Migrated user %s with email %s for the city %s "
|
||||||
"with the following accounts:" % (user_id, email, city_name)
|
"with the following accounts:" % (user_id, email, city_name)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -148,6 +149,7 @@ class Main:
|
||||||
access_token=access_token,
|
access_token=access_token,
|
||||||
enabled=mastodon_enabled,
|
enabled=mastodon_enabled,
|
||||||
)
|
)
|
||||||
|
await dismiss_notifications(hood)
|
||||||
print(f"Mastodon: {instance_url}, {access_token}")
|
print(f"Mastodon: {instance_url}, {access_token}")
|
||||||
|
|
||||||
telegram_account = self.old_db.execute(
|
telegram_account = self.old_db.execute(
|
||||||
|
@ -206,3 +208,18 @@ class Main:
|
||||||
)
|
)
|
||||||
print(f"Twitter: last ID: {seen_tweet}")
|
print(f"Twitter: last ID: {seen_tweet}")
|
||||||
await Tortoise.close_connections()
|
await Tortoise.close_connections()
|
||||||
|
|
||||||
|
|
||||||
|
async def dismiss_notifications(hood):
|
||||||
|
model = await MastodonAccount.get(hood=hood)
|
||||||
|
await model.fetch_related("instance")
|
||||||
|
account = Mastodon(
|
||||||
|
client_id=model.instance.client_id,
|
||||||
|
client_secret=model.instance.client_secret,
|
||||||
|
api_base_url=model.instance.name,
|
||||||
|
access_token=model.access_token,
|
||||||
|
)
|
||||||
|
notifications = account.notifications()
|
||||||
|
for status in notifications:
|
||||||
|
account.notifications_dismiss(status["id"])
|
||||||
|
print(f"Dismissed {len(notifications)} notifications on Mastodon.")
|
||||||
|
|
Loading…
Reference in a new issue