Zum Hauptinhalt springen

Listen

Die client.lists-API ermöglicht das Erstellen und Verwalten von Listen, das Hinzufügen und Entfernen von Accounts sowie das Lesen von Listen-Timelines.

Listen abrufen

Alle Listen

final lists = await client.lists.fetch();
for (final list in lists) {
print('${list.id}: ${list.title}');
}

Gibt List<MastodonList> mit allen Listen des authentifizierten Benutzers zurück.

Einzelne Liste

final list = await client.lists.fetchById('42');
print(list.title);
print(list.repliesPolicy); // "followed" | "list" | "none"
print(list.exclusive); // true if home timeline excludes list members

Liste erstellen

final list = await client.lists.create(
title: 'Developer friends',
repliesPolicy: 'list', // show replies between list members
exclusive: false,
);
print(list.id);

repliesPolicy akzeptiert:

  • followed — Antworten an Benutzer zeigen, denen der Betrachter folgt
  • list — Antworten an andere Listenmitglieder zeigen
  • none — Alle Antworten ausblenden

Wenn exclusive den Wert true hat, werden Beiträge von Listenmitgliedern aus der Home-Timeline ausgeschlossen.

Liste aktualisieren

final updated = await client.lists.update(
'42',
title: 'Close friends',
repliesPolicy: 'followed',
exclusive: true,
);

Liste löschen

await client.lists.delete('42');

Accounts verwalten

Accounts einer Liste abrufen

final page = await client.lists.fetchAccounts(
'42',
limit: 40,
);

for (final account in page.items) {
print(account.acct);
}

Gibt MastodonPage<MastodonAccount> zurück. Verwende nextMaxId und prevMinId zur Paginierung:

MastodonPage<MastodonAccount>? page = await client.lists.fetchAccounts('42');

while (page != null && page.nextMaxId != null) {
page = await client.lists.fetchAccounts(
'42',
maxId: page.nextMaxId,
);
for (final account in page.items) {
print(account.acct);
}
}

Paginierungsparameter:

ParameterBeschreibung
limitMaximale Ergebnisanzahl (Standard: 40, max: 80; 0 für alle)
maxIdErgebnisse älter als diese ID zurückgeben
sinceIdErgebnisse neuer als diese ID zurückgeben
minIdErgebnisse unmittelbar nach dieser ID zurückgeben (Vorwärts-Paginierung)

Accounts hinzufügen

Die Accounts müssen vom authentifizierten Benutzer gefolgt werden.

await client.lists.addAccounts(
'42',
accountIds: ['100', '101', '102'],
);

Accounts entfernen

await client.lists.removeAccounts(
'42',
accountIds: ['101'],
);

Das MastodonList-Modell

FeldTypBeschreibung
idStringInterne Listen-ID
titleStringTitel der Liste
repliesPolicyStringAntwort-Anzeigerichtlinie (followed / list / none)
exclusiveboolOb Listenmitglieder aus der Home-Timeline ausgeschlossen sind