Zum Hauptinhalt springen

Social

Diese Seite behandelt die sozialen Graph-APIs über einfache Follows hinaus: Follower-Anfragen, gefolgten Tags, Follow-Vorschläge, Empfehlungen, hervorgehobene Tags, Tag-Operationen, Favoriten und Lesezeichen.

Follower-Anfragen

Wenn ein Account gesperrt ist, müssen eingehende Follower-Anfragen über client.followRequests explizit angenommen oder abgelehnt werden.

Ausstehende Anfragen auflisten

final page = await client.followRequests.fetch(limit: 40);
for (final account in page.items) {
print('${account.acct} wants to follow you');
}

// Paginate
if (page.nextMaxId != null) {
final next = await client.followRequests.fetch(maxId: page.nextMaxId);
}

fetch gibt MastodonPage<MastodonAccount> zurück. Paginierungs-Cursor kommen aus dem Link-Antwort-Header. Das Standardlimit ist 40, das Maximum 80.

Anfrage annehmen

final relationship = await client.followRequests.authorize('12345');
print(relationship.followedBy); // true

Anfrage ablehnen

final relationship = await client.followRequests.reject('12345');

Beide Methoden, authorize und reject, geben eine MastodonRelationship zurück, die den aktualisierten Beziehungsstatus widerspiegelt.

Gefolgte Tags

client.followedTags listet die Hashtags auf, denen der authentifizierte Benutzer folgt. Beiträge mit gefolgten Tags erscheinen in der Home-Timeline.

final page = await client.followedTags.fetch(limit: 100);
for (final tag in page.items) {
print('#${tag.name}');
}

Das Standardlimit ist 100, das Maximum 200. Paginierung verwendet maxId, sinceId und minId. Cursor-IDs sind interne Follow-Beziehungs-Datensatz-IDs, keine Tag-IDs.

Zum Folgen oder Entfolgen eines bestimmten Tags client.tags verwenden (siehe unten).

Follow-Vorschläge

client.suggestions gibt Accounts zurück, die der Server zum Folgen empfiehlt — vom Staff kuratierte Auswahlen oder Accounts, mit denen positive Interaktionen stattgefunden haben, aber noch nicht gefolgt wird.

final suggestions = await client.suggestions.fetch(limit: 20);
for (final suggestion in suggestions) {
print('${suggestion.account.acct} — reason: ${suggestion.source}');
}

Gibt List<MastodonSuggestion> zurück. Das Standardlimit ist 40, das Maximum 80.

Einen Account aus der Vorschlagsliste entfernen:

await client.suggestions.remove('12345');

Dies ist erfolgreich, auch wenn der Account gerade nicht in den Vorschlägen ist.

Empfehlungen

Empfehlungen sind Accounts, die ein Benutzer auf seinem Profil hervorheben möchte. client.endorsements zur Abfrage verwenden.

final page = await client.endorsements.fetch(limit: 40);
for (final account in page.items) {
print(account.displayName);
}

Gibt MastodonPage<MastodonAccount> zurück. Das Standardlimit ist 40, das Maximum 80. Zum Empfehlen oder Zurückziehen einer Empfehlung client.accounts.endorse und client.accounts.unendorse verwenden.

Hervorgehobene Tags

Hervorgehobene Tags sind Hashtags, die prominent auf dem Benutzerprofil angezeigt werden. client.featuredTags zur Verwaltung verwenden.

Hervorgehobene Tags auflisten

final tags = await client.featuredTags.fetch();
for (final tag in tags) {
print('#${tag.name}${tag.statusesCount} statuses');
}

Hervorgehobenen Tag hinzufügen

final tag = await client.featuredTags.create('dart');
print(tag.id);

Tag-Namen ohne das #-Präfix angeben.

Hervorgehobenen Tag entfernen

await client.featuredTags.delete(tag.id);

Vorschläge für hervorgehobene Tags

Der Server gibt bis zu 10 zuletzt verwendete Hashtags als Kandidaten zurück:

final suggestions = await client.featuredTags.fetchSuggestions();

Gibt List<MastodonTag> zurück.

Tags

client.tags bietet Tag-Informationen, Folgen- und Hervorhebungsoperationen.

Tag-Informationen abrufen

final tag = await client.tags.fetch('dart');
print(tag.name);
print(tag.following); // null if unauthenticated

Die Namenssuche ist Groß-/Kleinschreibungsunabhängig. Wenn authentifiziert, wird das Feld following einbezogen.

Tag folgen und entfolgen

final tag = await client.tags.follow('dart');
print(tag.following); // true

final unfollowed = await client.tags.unfollow('dart');
print(unfollowed.following); // false

Tag hervorheben und zurückziehen (Mastodon 4.4.0+)

await client.tags.feature('dart');
await client.tags.unfeature('dart');

Beide geben MastodonTag zurück und spiegeln den aktualisierten Status wider.

Favoriten

client.favourites listet alle Status auf, die der authentifizierte Benutzer favorisiert hat.

final page = await client.favourites.fetch(limit: 20);
for (final status in page.items) {
print(status.content);
}

// Older results
if (page.nextMaxId != null) {
final older = await client.favourites.fetch(maxId: page.nextMaxId);
}

Gibt MastodonPage<MastodonStatus> zurück. Das Standardlimit ist 20, das Maximum 40. Paginierung verwendet maxId, sinceId und minId.

Zum Favorisieren oder Entfernen aus den Favoriten eines Status client.statuses.favourite und client.statuses.unfavourite verwenden.

Lesezeichen

client.bookmarks listet alle Status auf, die der authentifizierte Benutzer mit einem Lesezeichen versehen hat.

final page = await client.bookmarks.fetch(limit: 20);
for (final status in page.items) {
print(status.id);
}

Gibt MastodonPage<MastodonStatus> zurück. Das Standardlimit ist 20, das Maximum 40. Paginierung verwendet maxId, sinceId und minId.

Zum Hinzufügen oder Entfernen eines Lesezeichens client.statuses.bookmark und client.statuses.unbookmark verwenden.