API Reference

このセクションではMi.pyのAPIについて説明します

Note

このライブラリではloggingを用いてdebug出力が可能です。標準設定では出ないため、起動時の引数として debug を渡すようにしてください

イベントリファレンス

mi.on_ready(ws)

botがwebsocketに接続し終えた時点で呼び出されます。

mi.on_message(note: Note)

ノートが接続しているチャンネル内に投稿された際に呼び出されます

mi.on_emoji_add(emoji: Emoji)

絵文字がインスタンスに追加された際に呼び出されます

mi.on_mention(mention: Note)

メンションが含まれたノートなどが投稿された際に呼び出されます

抽象基底クラス

abstract base class はメソッドなどの一覧を取得するために継承することが可能なクラスです。抽象基底クラスはインスタンス化することはできません。

AbstractBotBase

class mi.abc.AbstractChat[source]

AbstractChatContent

class mi.abc.AbstractChatContent[source]

Misskey モデル

Danger

下記のクラスは、 ユーザーによって作成されることを考慮していません 。 独自のインスタンスは作成するべきではなく、値を変更するべきではありません。

Note

class mi.Note[source]
id
Type

str

created_at
Type

str

user_id
Type

str

author
Type

User

content
Type

Optional[str]

cw
Type

Optional[str]

renote
Type

Renote

visibility
Type

str

renote_count
Type

int

replies_count
Type

int

reactions
Type

Dict[str, Any]

emojis
Type

List[Emoji]

file_ids
Type

Optional[List[str]]

files
Type

Optional[List[str]]

reply_id
Type

Optional[str]

renote_id
Type

Optional[str]

poll
Type

Optional[Poll]

await reply(content, cw=None, no_extract_mentions=False, no_extract_hashtags=False, no_extract_emojis=False, renote_id=None, channel_id=None, file_ids=None, poll=None)[source]

ノートに対して返信を送信します

Parameters
  • content (Optional[str]) – 返信内容

  • cw (Optional[str]) – 閲覧注意

  • no_extract_mentions (bool, optional) – メンションを展開するか, by default False

  • no_extract_hashtags (bool, optional) – ハッシュタグを展開するか, by default False

  • no_extract_emojis (bool, optional) – 絵文字を展開するか, by default False

  • renote_id (Optional[str], optional) – リノート先のid, by default None

  • channel_id (Optional[str], optional) – チャンネルid, by default None

  • file_ids ([type], optional) – 添付するファイルのid, by default None

  • poll (Optional[Poll], optional) – アンケート, by default None

emoji_count()[source]

ノートの本文にemojiが何個含まれているかを返します

Returns

含まれている絵文字の数

Return type

int

await add_reaction(reaction)[source]

ノートにリアクションを追加します

Parameters

reaction (str) – つけるリアクション

Returns

成功したかどうか

Return type

bool

await delete()[source]

ノートを削除します

Returns

成功したか否か

Return type

bool

await favorite()[source]

ノートをお気に入り登録します

Returns

成功したか否か

Return type

bool

await remove_favorite()[source]

お気に入りから解除します

Returns

お気に入りの解除に成功したかどうか

Return type

bool

await add_to_clips(clip_id)[source]

指定したクリップにノートを追加します

Returns

クリップに追加できたかどうか

Return type

bool

await create_renote()[source]

ノートをリノートします

Returns

作成したリノート

Return type

Note

await get_replies(since_id=None, until_id=None, limit=10)[source]

ノートに対する返信を取得します

Parameters
  • since_id (Optional[str], default=None) –

  • until_id (Optional[str], default=None) – 前回の最後のidから取得する場合

  • limit (int, default=10) – 取得する件数

Returns

ノートに対する返信一覧

Return type

List[Note]

await create_quote(content=None, visibility=None, visible_user_ids=None, cw=None, local_only=False, no_extract_mentions=False, no_extract_hashtags=False, no_extract_emojis=False, file_ids=None, poll=None)[source]

ノートを引用して新規にノートを投稿します

Parameters
  • content (Optional[str], default=None) – 引用に対するテキスト

  • visibility (str, default=None) – ノートの公開範囲

  • visible_user_ids (Optional[List[str]]) – ノートの公開対象になるユーザーid

  • cw (Optional[str]) – 閲覧注意の文字列

  • local_only (bool) – ローカルにのみ公開するかどうか

  • no_extract_mentions (bool) – メンションを展開するかどうか

  • no_extract_hashtags (bool) – ハッシュタグを展開するかどうか

  • no_extract_emojis (bool) – 絵文字を展開するかどうか

  • file_ids – 添付するファイルのid

  • poll (Optional[Poll]) – アンケート

Returns

作成した引用ノート

Return type

Note

User

class mi.User[source]
id

ユーザーのid

Type

str

name

ユーザーのニックネーム

Type

str

username

ユーザーのアカウント名

Type

str

host

ユーザーのホスト名

Type

Optional[str]

avatar_url

ユーザーのアバターのURL

Type

Optional[str]

admin

ユーザーが管理者かどうか

Type

bool

bot

ユーザーがbotかどうか

Type

bool

emojis

ユーザーが使用しているemoji

Type

list

online_status

ユーザーのオンライン状況

Type

Any

url

ユーザーのプロフィールへのURL

Type

str

uri

Type

str

created_at

アカウントの作成日

Type

str

updated_at

アカウントの更新日(ノートを投稿するなど)

Type

str

is_locked

アカウントがロックされているか

Type

bool

is_silenced

アカウントがミュートされているか

Type

bool

is_suspended

アカウントが凍結されているか

Type

bool

description

アカウントの概要

Type

str

location

ユーザーが住んでいる場所

Type

str

birthday

ユーザーの誕生日

Type

str

fields

プロフィールのリンクフィールド

Type

list

followers_count

フォロワーの数

Type

int

following_count

フォローしている人の数

Type

int

notes_count

投稿したノートの数

Type

int

pinned_note_ids

ピン留めされたノートのidリスト

Type

list

pinned_page_id

ピン留めされたページのid

Type

str

pinned_page

ピン留めされたページ

Type

str

ff_visibility

ノートの投稿範囲

Type

str

is_following

ユーザーがフォローしているかどうか

Type

bool

is_follow

ユーザーのことをフォローしているかどうか

Type

bool

is_blocking

ユーザーが自分のことをブロックしているかどうか

Type

bool

is_blocked

ユーザーのことをブロックしているかどうか

Type

bool

is_muted

ユーザーのことをミュートしているかどうか

Type

bool

instance

ユーザーのインスタンス

Type

Any

details

ユーザーの詳細な情報

Type

UserDetails

await follow()[source]

ユーザーをフォローします

Returns

  • bool – 成功ならTrue, 失敗ならFalse

  • str – 実行に失敗した際のエラーコード

await unfollow()[source]

ユーザーのフォローを解除します

Returns

成功ならTrue, 失敗ならFalse

Return type

bool

await get_profile()[source]

ユーザーのプロフィールを取得します

Returns

ユーザーのプロフィールオブジェクト

Return type

User

get_followers(until_id=None, limit=10, get_all=False)[source]

ユーザーのフォロワー一覧を取得します

Parameters
  • until_id (str, default=None) – 前回のフォロワーの続きを取得する場合の起点とするユーザーid

  • limit (int, default=10) – 最大何人取得するか, max=100

  • get_all (bool, default=False) – 全てのフォロワーを取得するか否か

Returns

ユーザーのフォロワー一覧

Return type

AsyncIterator[Follower]

UserDetails

class mi.UserDetails[source]

ユーザー情報だが、一般的に使うか怪しいもの

avatar_blurhash

ユーザーのアバターのblurhash

Type

Optional[str]

avatar_color

ユーザーのアバターの色

Type

str

lang

ユーザーの言語

Type

str

Methods
class mi.Chat[source]

チャットオブジェクト

await delete()[source]

チャットを削除します(チャットの作者である必要があります)

Returns

成功したか否か

Return type

bool

Drive

Methods
class mi.Drive[source]
await delete()[source]

ファイルを削除します。

Returns

削除に成功したかどうか

Return type

bool

Emoji

class mi.Emoji[source]

Renote

Methods
class mi.Renote[source]
emoji_count()[source]

ノートの本文にemojiが何個含まれているかを返します

Returns

含まれている絵文字の数

Return type

int

await delete()[source]

指定したIDのノートを削除します

Returns

  • is_success (bool) – 成功したか否か

  • status_code (int) – HTTP レスポンスステータスコード

Follow

Methods
class mi.Follow[source]
await follow()[source]

ユーザーをフォローします :returns: * bool – 成功ならTrue, 失敗ならFalse

  • str – 実行に失敗した際のエラーコード

await unfollow(user_id=None)[source]

与えられたIDのユーザーのフォローを解除します

Parameters

user_id (Optional[str] = None) – フォローを解除したいユーザーのID

Returns

成功ならTrue, 失敗ならFalse

Return type

status

データクラス

Properties

class mi.Properties[source]

File

class mi.Header[source]

Reaction

class mi.Reaction[source]

例外処理

NotFoundError

class mi.NotFoundError[source]

http アクセス時に404が帰ってきた際の例外

TaskNotRunningError

class mi.TaskNotRunningError[source]

タスクを停止しようとした際、タスクが起動していない場合に発生する例外

ImAi

class mi.ImAi[source]

私は藍です

InternalServerError

class mi.InternalServerError[source]

http アクセス時に500が帰ってきた際の例外

ClientError

class mi.ClientError[source]

http アクセス時に400が帰ってきた際の例外

AuthenticationError

class mi.AuthenticationError[source]

認証で問題が発生した際の例外

NotExistRequiredParameters

class mi.NotExistRequiredParameters[source]

必須のパラメーターが存在しない場合の例外

InvalidParameters

class mi.InvalidParameters[source]

パラメーターが無効

CredentialRequired

class mi.CredentialRequired[source]

認証情報が不足している

ContentRequired

class mi.ContentRequired[source]

送信するコンテンツが不足している

CogNameDuplicate

class mi.CogNameDuplicate[source]

cogの名前が重複している

ExtensionAlreadyLoaded

class mi.ExtensionAlreadyLoaded[source]

cogがすでに読み込まれている

ExtensionFailed

class mi.ExtensionFailed[source]

cog周りのエラー

NoEntryPointError

class mi.NoEntryPointError[source]

cogにsetup関数が無い場合の例外

ExtensionNotFound

class mi.ExtensionNotFound[source]

指定されたパスにcogが存在しない場合の例外

CommandRegistrationError

class mi.CommandRegistrationError[source]

コマンド登録時のエラー

CommandError

class mi.CommandError[source]

コマンドで問題が発生した際の例外

CommandInvokeError

class mi.CommandInvokeError[source]

コマンドの実行に問題が発生した際の例外

CheckFailure

class mi.CheckFailure[source]

コマンドの実行可能かのチェックに失敗した際の例外

InvalidCogPath

class mi.InvalidCogPath[source]

cogのパスが不正

NotExistRequiredData

class mi.NotExistRequiredData[source]

必要なデータが存在しない場合に発生する例外

Low-Level API

class mi.Route[source]
class mi.HTTPClient[source]
class mi.ConnectionState[source]
parse_channel(message)[source]

parse_channel is a function to parse channel event

チャンネルタイプのデータを解析後適切なパーサーに移動させます

Parameters

message (Dict[str, Any]) – Received message

parse_unfollow(message)[source]

フォローを解除した際のイベントを解析する関数

parse_receive_follow_request(message)[source]

フォローリクエストを受け取った際のイベントを解析する関数

parse_reply(message)[source]

リプライ

parse_follow(message)[source]

ユーザーをフォローした際のイベントを解析する関数

parse_followed(message)[source]

フォローイベントを解析する関数

parse_mention(message)[source]

メンションイベントを解析する関数

parse_messaging_message(message)[source]

チャットが来た際のデータを処理する関数

parse_unread_messaging_message(message)[source]

チャットが既読になっていない場合のデータを処理する関数

parse_notification(message)[source]

通知イベントを解析する関数

Parameters

message (Dict[str, Any]) – Received message

parse_unread_notification(message)[source]

未読の通知を解析する関数

Parameters

message (Dict[str, Any]) – Received message

parse_reaction(message)[source]

リアクションに関する情報を解析する関数

parse_note(message)[source]

ノートイベントを解析する関数

await follow_user(user_id)[source]

与えられたIDのユーザーをフォローします

Parameters

user_id (Optional[str] = None) – フォローしたいユーザーのID

Returns

status – 成功ならTrue, 失敗ならFalse

Return type

bool = False

await unfollow_user(user_id)[source]
Parameters

user_id – フォローを解除したいユーザーのID

Returns

成功したならTrue, 失敗したならFalse

Return type

bool

await add_reaction(reaction, note_id=None)[source]

指定したnoteに指定したリアクションを付与します(内部用

Parameters
  • reaction (Optional[str]) – 付与するリアクション名

  • note_id (Optional[str]) – 付与対象のノートID

Returns

成功したならTrue,失敗ならFalse

Return type

bool

await delete_note(note_id)[source]

指定したidのノートを削除します。

Parameters

note_id (str) – ノートid

Returns

成功したか否か

Return type

bool

await get_user(user_id=None, username=None, host=None)[source]

ユーザーのプロフィールを取得します。一度のみサーバーにアクセスしキャッシュをその後は使います。 fetch_userを使った場合はキャッシュが廃棄され再度サーバーにアクセスします。

Parameters
  • user_id (str) – 取得したいユーザーのユーザーID

  • username (str) – 取得したいユーザーのユーザー名

  • host (str, default=None) – 取得したいユーザーがいるインスタンスのhost

Returns

ユーザー情報

Return type

dict

await post_chat(content, *, user_id=None, group_id=None, file_id=None)[source]

チャットを送信します。

Parameters
  • content (str) – 送信する内容

  • user_id (str, optional) – ユーザーid, default=None

  • group_id (str, optional) – グループid, default=None

  • file_id (str, optional) – 添付するファイルid, efault=None

Returns

チャットの内容

Return type

Chat

await delete_chat(message_id)[source]

指定したidのメッセージを削除します。

Parameters

message_id (str) – メッセージid

Returns

成功したか否か

Return type

bool

async for ... in get_followers(user_id=None, username=None, host=None, since_id=None, until_id=None, limit=10, get_all=False)[source]

与えられたユーザーのフォロワーを取得します

Parameters
  • user_id (str, default=None) – ユーザーのid

  • username (str, default=None) – ユーザー名

  • host (str, default=None) – ユーザーがいるインスタンスのhost名

  • since_id (str, default=None) –

  • until_id (str, default=None) – 前回の最後の値を与える(既に実行し取得しきれない場合に使用)

  • limit (int, default=10) – 取得する情報の最大数 max: 100

  • get_all (bool, default=False) – 全てのフォロワーを取得する

Yields

dict – フォロワーの情報

Raises

InvalidParameters – limit引数が不正な場合

await get_announcements(limit, with_unreads, since_id, until_id)[source]
Parameters
  • limit (int) – 最大取得数

  • with_unreads (bool) – 既読済みか否か

  • since_id (str) –

  • until_id (str) – 前回の最後の値を与える(既に実行し取得しきれない場合に使用)

Low-Layer API

class mi.MisskeyClientWebSocketResponse[source]
class mi.MisskeyWebSocket[source]
class mi.InstanceIterator[source]
async for ... in get_users(limit=10, *, offset=0, sort=None, state='all', origin='local', username=None, hostname=None, get_all=False)[source]
Parameters
  • limit (int) –

  • offset (int) –

  • sort (str) –

  • state (str) –

  • origin (str) –

  • username (str) –

  • hostname (str) –

  • get_all (bool) –

Returns

Return type

Iterator[User]