API Reference

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

注釈

このライブラリでは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[ソース]

AbstractChatContent

class mi.abc.AbstractChatContent[ソース]

Misskey モデル

危険

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

Note

class mi.Note[ソース]
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)[ソース]

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

パラメータ
  • 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()[ソース]

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

戻り値

含まれている絵文字の数

戻り値の型

int

await add_reaction(reaction)[ソース]

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

パラメータ

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

戻り値

成功したかどうか

戻り値の型

bool

await delete()[ソース]

ノートを削除します

戻り値

成功したか否か

戻り値の型

bool

await favorite()[ソース]

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

戻り値

成功したか否か

戻り値の型

bool

await remove_favorite()[ソース]

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

戻り値

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

戻り値の型

bool

await add_to_clips(clip_id)[ソース]

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

戻り値

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

戻り値の型

bool

await create_renote()[ソース]

ノートをリノートします

戻り値

作成したリノート

戻り値の型

Note

await get_replies(since_id=None, until_id=None, limit=10)[ソース]

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

パラメータ
  • since_id (Optional[str], default=None) --

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

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

戻り値

ノートに対する返信一覧

戻り値の型

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)[ソース]

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

パラメータ
  • 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]) -- アンケート

戻り値

作成した引用ノート

戻り値の型

Note

User

class mi.User[ソース]
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()[ソース]

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

戻り値

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

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

await unfollow()[ソース]

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

戻り値

成功ならTrue, 失敗ならFalse

戻り値の型

bool

await get_profile()[ソース]

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

戻り値

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

戻り値の型

User

get_followers(until_id=None, limit=10, get_all=False)[ソース]

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

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

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

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

戻り値

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

戻り値の型

AsyncIterator[Follower]

UserDetails

class mi.UserDetails[ソース]

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

avatar_blurhash

ユーザーのアバターのblurhash

Type

Optional[str]

avatar_color

ユーザーのアバターの色

Type

str

lang

ユーザーの言語

Type

str

Methods
class mi.Chat[ソース]

チャットオブジェクト

await delete()[ソース]

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

戻り値

成功したか否か

戻り値の型

bool

Drive

Methods
class mi.Drive[ソース]
await delete()[ソース]

ファイルを削除します。

戻り値

削除に成功したかどうか

戻り値の型

bool

Emoji

class mi.Emoji[ソース]

Renote

Methods
class mi.Renote[ソース]
emoji_count()[ソース]

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

戻り値

含まれている絵文字の数

戻り値の型

int

await delete()[ソース]

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

戻り値

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

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

Follow

Methods
class mi.Follow[ソース]
await follow()[ソース]

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

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

await unfollow(user_id=None)[ソース]

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

パラメータ

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

戻り値

成功ならTrue, 失敗ならFalse

戻り値の型

status

データクラス

Properties

class mi.Properties[ソース]

File

class mi.Header[ソース]

Reaction

class mi.Reaction[ソース]

例外処理

NotFoundError

class mi.NotFoundError[ソース]

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

TaskNotRunningError

class mi.TaskNotRunningError[ソース]

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

ImAi

class mi.ImAi[ソース]

私は藍です

InternalServerError

class mi.InternalServerError[ソース]

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

ClientError

class mi.ClientError[ソース]

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

AuthenticationError

class mi.AuthenticationError[ソース]

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

NotExistRequiredParameters

class mi.NotExistRequiredParameters[ソース]

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

InvalidParameters

class mi.InvalidParameters[ソース]

パラメーターが無効

CredentialRequired

class mi.CredentialRequired[ソース]

認証情報が不足している

ContentRequired

class mi.ContentRequired[ソース]

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

CogNameDuplicate

class mi.CogNameDuplicate[ソース]

cogの名前が重複している

ExtensionAlreadyLoaded

class mi.ExtensionAlreadyLoaded[ソース]

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

ExtensionFailed

class mi.ExtensionFailed[ソース]

cog周りのエラー

NoEntryPointError

class mi.NoEntryPointError[ソース]

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

ExtensionNotFound

class mi.ExtensionNotFound[ソース]

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

CommandRegistrationError

class mi.CommandRegistrationError[ソース]

コマンド登録時のエラー

CommandError

class mi.CommandError[ソース]

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

CommandInvokeError

class mi.CommandInvokeError[ソース]

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

CheckFailure

class mi.CheckFailure[ソース]

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

InvalidCogPath

class mi.InvalidCogPath[ソース]

cogのパスが不正

NotExistRequiredData

class mi.NotExistRequiredData[ソース]

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

Low-Level API

class mi.Route[ソース]
class mi.HTTPClient[ソース]
class mi.ConnectionState[ソース]
parse_channel(message)[ソース]

parse_channel is a function to parse channel event

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

パラメータ

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

parse_unfollow(message)[ソース]

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

parse_receive_follow_request(message)[ソース]

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

parse_reply(message)[ソース]

リプライ

parse_follow(message)[ソース]

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

parse_followed(message)[ソース]

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

parse_mention(message)[ソース]

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

parse_messaging_message(message)[ソース]

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

parse_unread_messaging_message(message)[ソース]

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

parse_notification(message)[ソース]

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

パラメータ

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

parse_unread_notification(message)[ソース]

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

パラメータ

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

parse_reaction(message)[ソース]

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

parse_note(message)[ソース]

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

await follow_user(user_id)[ソース]

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

パラメータ

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

戻り値

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

戻り値の型

bool = False

await unfollow_user(user_id)[ソース]
パラメータ

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

戻り値

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

戻り値の型

bool

await add_reaction(reaction, note_id=None)[ソース]

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

パラメータ
  • reaction (Optional[str]) -- 付与するリアクション名

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

戻り値

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

戻り値の型

bool

await delete_note(note_id)[ソース]

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

パラメータ

note_id (str) -- ノートid

戻り値

成功したか否か

戻り値の型

bool

await get_user(user_id=None, username=None, host=None)[ソース]

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

パラメータ
  • user_id (str) -- 取得したいユーザーのユーザーID

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

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

戻り値

ユーザー情報

戻り値の型

dict

await post_chat(content, *, user_id=None, group_id=None, file_id=None)[ソース]

チャットを送信します。

パラメータ
  • content (str) -- 送信する内容

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

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

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

戻り値

チャットの内容

戻り値の型

Chat

await delete_chat(message_id)[ソース]

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

パラメータ

message_id (str) -- メッセージid

戻り値

成功したか否か

戻り値の型

bool

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

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

パラメータ
  • 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) -- 全てのフォロワーを取得する

列挙

dict -- フォロワーの情報

例外

InvalidParameters -- limit引数が不正な場合

await get_announcements(limit, with_unreads, since_id, until_id)[ソース]
パラメータ
  • limit (int) -- 最大取得数

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

  • since_id (str) --

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

Low-Layer API

class mi.MisskeyClientWebSocketResponse[ソース]
class mi.MisskeyWebSocket[ソース]
class mi.InstanceIterator[ソース]
async for ... in get_users(limit=10, *, offset=0, sort=None, state='all', origin='local', username=None, hostname=None, get_all=False)[ソース]
パラメータ
  • limit (int) --

  • offset (int) --

  • sort (str) --

  • state (str) --

  • origin (str) --

  • username (str) --

  • hostname (str) --

  • get_all (bool) --

戻り値

戻り値の型

Iterator[User]