Zum Hauptinhalt springen

Soziale Funktionen

Die sozialen APIs decken Folgebeziehungen, Folgeanfragen, Blockierungen und Stummschaltungen ab. Alle Operationen erfordern Authentifizierung.

Folgen (client.following)

Einem Benutzer folgen

final user = await client.following.create(userId: userId);

Wenn der Zielbenutzer eine Folgebestaetigung erfordert, wird eine Anfrage gesendet statt eines sofortigen Follows. Die Methode gibt den aktualisierten MisskeyUser zurueck.

Uebergeben Sie withReplies: true, um Antworten des gefolgten Benutzers in Ihrer Timeline einzuschliessen:

await client.following.create(userId: userId, withReplies: true);

Entfolgen

await client.following.delete(userId: userId);

Folgeeinstellungen aktualisieren

Benachrichtigungs- und Antwortanzeigeeinstellungen fuer eine einzelne Folgebeziehung aendern.

await client.following.update(
userId: userId,
notify: 'normal', // 'normal' oder 'none'
withReplies: true,
);

Alle Follows gleichzeitig aktualisieren

Dieselben Einstellungen auf jedes Konto anwenden, dem Sie folgen. Anfragelimit: 10 Anfragen/Stunde.

await client.following.updateAll(notify: 'none', withReplies: false);

Einen Follower entfernen

Entfernt jemanden zwangsweise, der Ihnen folgt.

await client.following.invalidate(userId: userId);

Folgeanfragen (client.following.requests)

Eingehende Anfragen

// Ausstehende an Sie gesendete Anfragen auflisten
final incoming = await client.following.requests.list(limit: 20);
for (final req in incoming) {
print(req.follower.username);
}

// Eine Anfrage annehmen
await client.following.requests.accept(userId: userId);

// Eine Anfrage ablehnen
await client.following.requests.reject(userId: userId);

Ausgehende Anfragen

// Von Ihnen gesendete Anfragen auflisten
final sent = await client.following.requests.sent(limit: 20);

// Eine von Ihnen gesendete Anfrage abbrechen
await client.following.requests.cancel(userId: userId);

Alle Listen-Methoden akzeptieren sinceId / untilId und sinceDate / untilDate fuer die Seitennavigation.

Blockieren (client.blocking)

Blockieren entfernt die gegenseitige Folgebeziehung zwischen Ihnen und dem Zielbenutzer. Ein blockierter Benutzer kann Ihnen nicht folgen, und Sie werden seinen Inhalt nicht sehen.

Einen Benutzer blockieren

await client.blocking.create(userId: userId);

Blockierung aufheben

await client.blocking.delete(userId: userId);

Blockierte Benutzer auflisten

final blocked = await client.blocking.list(limit: 20);
for (final b in blocked) {
print(b.blockee.username);
}

Seitennavigation mit sinceId / untilId oder sinceDate / untilDate.

Stummschalten (client.mute)

Stummschalten blendet die Notizen, Renotes und Reaktionen eines Benutzers aus Ihrer Timeline aus. Anders als beim Blockieren weiss der Zielbenutzer nicht, dass er stummgeschaltet wurde.

Einen Benutzer stummschalten

// Dauerhafte Stummschaltung
await client.mute.create(userId: userId);

Zeitlich begrenzte Stummschaltung

Uebergeben Sie einen Unix-Zeitstempel in Millisekunden, um die Stummschaltung automatisch ablaufen zu lassen.

// 24 Stunden stummschalten
final expiresAt = DateTime.now()
.add(const Duration(hours: 24))
.millisecondsSinceEpoch;

await client.mute.create(userId: userId, expiresAt: expiresAt);

Stummschaltung aufheben

await client.mute.delete(userId: userId);

Stummgeschaltete Benutzer auflisten

final muted = await client.mute.list(limit: 20);
for (final m in muted) {
print(m.mutee.username);
}

Renote-Stummschaltung (client.renoteMute)

Die Renote-Stummschaltung unterdrueckt nur die Renotes eines Benutzers aus Ihrer Timeline. Dessen urspruengliche Notizen bleiben sichtbar. Dies ist nuetzlich, wenn Sie dem originalen Inhalt einer Person folgen moechten, nicht jedoch dem weitergeleiteten Inhalt.

Einen Benutzer fuer Renotes stummschalten

await client.renoteMute.create(userId: userId);

Renote-Stummschaltung entfernen

await client.renoteMute.delete(userId: userId);

Renote-stummgeschaltete Benutzer auflisten

final renoteMuted = await client.renoteMute.list(limit: 20);
for (final rm in renoteMuted) {
print(rm.mutee.username);
}

Seitennavigation mit sinceId / untilId oder sinceDate / untilDate.

Vergleich: Stummschalten vs. Renote-Stummschalten

Normale StummschaltungRenote-Stummschaltung
Urspruengliche Notizen ausgeblendetJaNein
Renotes ausgeblendetJaJa
Zielbenutzer benachrichtigtNeinNein
Zeitlich begrenzte AblaufzeitJaNein