メインコンテンツまでスキップ

モデレーション

ブロック中のアカウント、ミュート中のアカウント、ドメインブロック、通報を管理する API を説明します。

リスト系のメソッドはすべて MastodonPage<T> を返します。Link レスポンスヘッダーから解析された nextMaxId と prevMinId カーソルが含まれます。詳細はページネーションのガイドを参照してください。


ブロック中のアカウント​

ブロック一覧の取得​

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

// 次のページ
if (page.nextMaxId != null) {
final next = await client.blocks.fetch(maxId: page.nextMaxId);
}

パラメーター:

パラメーターデフォルト最大値説明
limit4080取得件数
maxId——このID より古い結果を返す
sinceId——このID より新しい結果を返す
minId——このID の後から最古順に返す(逆方向ページネーション)

アカウントのブロック・ブロック解除は client.accounts.block() および client.accounts.unblock() を使用してください。


ミュート中のアカウント​

ミュート一覧の取得​

final page = await client.mutes.fetch(limit: 40);
for (final mutedAccount in page.items) {
print(mutedAccount.account.acct);
final expiresAt = mutedAccount.muteExpiresAt;
if (expiresAt != null) {
print('ミュート解除予定: $expiresAt');
}
}

// 次のページ
if (page.nextMaxId != null) {
final next = await client.mutes.fetch(maxId: page.nextMaxId);
}

各要素は MastodonMutedAccount です。account にミュート中のアカウント、 muteExpiresAt に時限ミュートの有効期限が入ります。無期限のミュートでは 有効期限は null です。

パラメーター:

パラメーターデフォルト最大値説明
limit4080取得件数
maxId——このID より古い結果を返す
sinceId——このID より新しい結果を返す

アカウントのミュート・ミュート解除は client.accounts.mute() および client.accounts.unmute() を使用してください。


ドメインブロック​

ユーザーレベルのドメインブロックは、指定ドメインからの投稿と通知をすべて非表示にします。インスタンスレベルのドメインブロック(client.instance.fetchDomainBlocks())とは別のものです。

ブロック中のドメイン一覧​

final page = await client.domainBlocks.fetch(limit: 100);
for (final domain in page.items) {
print(domain);
}

パラメーター:

パラメーターデフォルト最大値説明
limit100200取得件数
maxId——このID より古い結果を返す
sinceId——このID より新しい結果を返す
minId——このID の後から最古順に返す(逆方向ページネーション)

ドメインをブロックする​

await client.domainBlocks.block('spam.example.com');

ドメインをブロックすると、そのドメインのアカウントからの公開投稿と通知がすべて非表示になり、既存のフォロワーが削除され、そのドメインへの新規フォローもできなくなります。

ドメインブロックを解除する​

await client.domainBlocks.unblock('spam.example.com');

通報​

アカウントを通報する​

final report = await client.reports.create(
MastodonReportCreateRequest(
accountId: '12345',
comment: 'スパム投稿を繰り返しています。',
category: 'spam',
),
);
print(report.id);

特定の投稿を証拠として添付する​

final report = await client.reports.create(
MastodonReportCreateRequest(
accountId: '12345',
statusIds: ['111', '222'],
comment: 'これらの投稿はルールに違反しています。',
category: 'violation',
ruleIds: ['1', '3'],
),
);

リモート管理者への転送​

forward: true を設定すると、通報内容が報告対象アカウントのホームサーバーの管理者にも送信されます。

final report = await client.reports.create(
MastodonReportCreateRequest(
accountId: '67890',
comment: 'リモートアカウントからの嫌がらせです。',
forward: true,
),
);

リクエストフィールド一覧​

フィールド必須説明
accountIdYes通報対象アカウントの ID
statusIdsNo証拠として添付する投稿の ID リスト
commentNo通報理由(最大 1000 文字)
forwardNoリモートサーバーの管理者に転送する
categoryNospam・legal・violation・other のいずれか
ruleIdsNo違反したルールの ID(violation カテゴリーで使用)