markji package
- class markji.Markji(token: str)[源代码]
基类:
object客户端
- 参数:
token (str) -- 用户令牌
from markji import Markji from markji.auth import Auth auth = Auth("username", "password") token = await auth.login() client = Markji(token)
- async search_users(nickname: str, offset: int = 0, limit: int = 10) tuple[list[User], int][源代码]
搜索用户
昵称长度必须在 1 到 8000 个字符之间
offset 和 limit 必须大于等于 0
offset + limit 必须小于等于 10000
- 参数:
nickname (str) -- 用户昵称
- 返回:
用户列表, 总数
- 返回类型:
tuple[list[User], int]
- 抛出:
ValueError -- 昵称长度错误
ValueError -- offset 或 limit 错误
ValueError -- offset + limit 错误
aiohttp.ClientResponseError -- 搜索用户失败
- async search_collaborators(deck_id: DeckID | str, keyword: str | UserID | int) list[Collaborator][源代码]
搜索协作者
关键词长度必须在 1 到 8000 个字符之间
- 参数:
- 返回:
协作者列表
- 返回类型:
list[Collaborator]
- 抛出:
ValueError -- 关键词长度错误
aiohttp.ClientResponseError -- 搜索协作者失败
- async get_folder(folder_id: FolderID | str) Folder | RootFolder[源代码]
获取文件夹
- 参数:
folder_id (FolderID | str) -- 文件夹ID
- 返回:
文件夹
- 返回类型:
- 抛出:
aiohttp.ClientResponseError -- 获取文件夹失败
- async get_root_folder() RootFolder[源代码]
获取根文件夹
- 返回:
根文件夹
- 返回类型:
- 抛出:
aiohttp.ClientResponseError -- 获取根文件夹失败
FileNotFoundError -- 未找到根文件夹
- async list_folders() list[Folder][源代码]
获取用户的所有文件夹
不包含根文件夹
使用 get_root_folder 获取根文件夹
- 返回:
文件夹列表
- 返回类型:
list[Folder]
- 抛出:
aiohttp.ClientResponseError -- 获取文件夹列表失败
- async new_folder(name: str) Folder[源代码]
创建文件夹
文件名长度必须在 2 到 8 个字符之间
- 参数:
name (str) -- 文件夹名
- 返回:
创建的文件夹
- 返回类型:
- 抛出:
ValueError -- 文件夹名长度错误
aiohttp.ClientResponseError -- 创建文件夹失败
- async delete_folder(folder_id: FolderID | str) RootFolder[源代码]
删除文件夹
- 参数:
folder_id (FolderID | str) -- 文件夹ID
- 返回:
删除后的根文件
- 返回类型:
- 抛出:
aiohttp.ClientResponseError -- 删除文件夹失败
- async sort_folders(folder_ids: Iterable[FolderID | str]) RootFolder[源代码]
排序文件夹
- 参数:
folder_ids (Iterable[FolderID | str]) -- 排序后的文件夹ID列表
- 返回:
排序后的根文件夹
- 返回类型:
- 抛出:
aiohttp.ClientResponseError -- 排序文件夹失败
- async get_deck(deck_id: str) Deck[源代码]
获取卡组
- 参数:
deck_id (str) -- 卡组ID
- 返回:
卡组
- 返回类型:
- 抛出:
aiohttp.ClientResponseError -- 获取卡组失败
- async new_deck(folder_id: FolderID | str, name: str, description: str = '', is_private: bool = False) DeckBrief[源代码]
创建卡组
卡组名长度必须在 2 到 48 个字符之间
- async delete_deck(deck_id: DeckID | str)[源代码]
删除卡组
或取消收藏卡组
- 参数:
deck_id (DeckID | str) -- 卡组ID
- 抛出:
aiohttp.ClientResponseError -- 删除卡组失败
- async update_deck_info(deck_id: DeckID | str, name: str | None = None, description: str | None = None, is_private: bool | None = None, card_price: int | None = None) DeckBrief[源代码]
更新卡组信息
卡组名长度必须在 2 到 48 个字符之间
卡片价格必须大于等于 0,且只有可用马克量大于 10000 的用户才能设置为0
- async update_deck_name(deck_id: DeckID | str, name: str) DeckBrief[源代码]
重命名卡组
卡组名长度必须在 2 到 48 个字符之间
- async update_deck_card_price(deck_id: DeckID | str, card_price: int) DeckBrief[源代码]
更新卡组卡片价格
卡片价格必须大于等于 0,且只有可用马克量大于 10000 的用户才能设置为0
- async update_deck_access_setting(deck_id: DeckID | str, is_searchable: bool | None = None, validation_request_access: bool | None = None, validation_password: str | None = None) DeckAccessSettingBrief | DeckAccessSettingInfo | DeckAccessSetting[源代码]
更新卡组访问设置
密码必须为 4 ~ 12 位,,由数字字母组成
密码为空则取消密码
- 参数:
deck_id (DeckID | str) -- 卡组ID
is_searchable (bool | None) -- 是否可被搜索
validation_request_access (bool | None) -- 是否需要验证访问
validation_password (str | None) -- 验证密码
- 返回:
更新后的卡组
- 返回类型:
DeckAccessSettingBrief | DeckAccessSettingInfo | DeckAccessSetting
- 抛出:
ValueError -- 更新设置为空
ValueError -- 密码长度错误
ValueError -- 密码格式错误
aiohttp.ClientResponseError -- 更新卡组设置失败
- async update_deck_searchable(deck_id: DeckID | str, is_searchable: bool) DeckAccessSettingBrief | DeckAccessSettingInfo | DeckAccessSetting[源代码]
更新卡组是否可被搜索
- 参数:
deck_id (DeckID | str) -- 卡组ID
is_searchable (bool) -- 是否可被搜索
- 返回:
更新后的卡组
- 返回类型:
DeckAccessSettingBrief | DeckAccessSettingInfo | DeckAccessSetting
- async update_deck_validation_request_access(deck_id: DeckID | str, validation_request_access: bool) DeckAccessSettingBrief | DeckAccessSettingInfo | DeckAccessSetting[源代码]
更新卡组是否需要验证访问
- 参数:
deck_id (DeckID | str) -- 卡组ID
validation_request_access (bool) -- 是否需要验证访问
- 返回:
更新后的卡组
- 返回类型:
DeckAccessSettingBrief | DeckAccessSettingInfo | DeckAccessSetting
- async update_deck_validation_password(deck_id: DeckID | str, validation_password: str) DeckAccessSettingInfo | DeckAccessSetting[源代码]
更新卡组验证密码
密码必须为 4 ~ 12 位,,由数字字母组成
密码为空则取消密码
- 参数:
deck_id (DeckID | str) -- 卡组ID
validation_password (str) -- 验证密码
- 返回:
更新后的卡组
- 返回类型:
- 抛出:
ValueError -- 密码长度错误
ValueError -- 密码格式错误
- async move_decks(folder_id_from: FolderID | str, folder_id_to: FolderID | str, deck_ids: Iterable[DeckID | str], order: int | None = None) FolderDiff[源代码]
移动卡组
- 参数:
- 返回:
文件夹变化
- 返回类型:
- 抛出:
aiohttp.ClientResponseError -- 移动卡组失败
- async search_decks(keyword: str, offset: int = 0, limit: int = 10, self_only: bool = False) tuple[list[DeckBasic], int][源代码]
搜索卡组
关键词长度必须在 1 到 8000 个字符之间
offset 必须在 0 到 1000 之间
limit 必须在 1 到 100 之间
- 参数:
keyword (str) -- 关键词
offset (int) -- 偏移
limit (int) -- 限制
self_only (bool) -- 仅自己
- 返回:
卡组基本信息列表, 总数
- 返回类型:
tuple[list[DeckBasic], int]
- 抛出:
ValueError -- 关键词长度错误
ValueError -- offset 错误
ValueError -- limit 错误
aiohttp.ClientResponseError -- 搜索卡组失败
- async fork_deck(deck_id: DeckID | str) DeckForked[源代码]
收藏卡组
无法收藏自己的卡组
- 参数:
deck_id (DeckID | str) -- 卡组ID
- 返回:
复制的卡组
- 返回类型:
- 抛出:
aiohttp.ClientResponseError -- 复制卡组失败
- async get_deck_access_link(deck_id: DeckID | str) str[源代码]
获取卡组访问链接
- 参数:
deck_id (DeckID | str) -- 卡组ID
- 返回:
访问链接
- 返回类型:
str
- 抛出:
aiohttp.ClientResponseError -- 获取访问链接失败
- async get_chapter_set(deck_id: DeckID | str) ChapterSet[源代码]
获取章节集合
- 参数:
deck_id (DeckID | str) -- 卡组ID
- 返回:
章节集合
- 返回类型:
- 抛出:
aiohttp.ClientResponseError -- 获取章节集合失败
- async delete_chapter(deck_id: DeckID | str, chapter_id: ChapterID | str) ChapterSet[源代码]
删除章节
- 参数:
- 返回:
删除后的章节集
- 返回类型:
- 抛出:
aiohttp.ClientResponseError -- 删除章节失败
- async rename_chapter(deck_id: DeckID | str, chapter_id: ChapterID | str, name: str) Chapter[源代码]
重命名章节
章节名长度必须在 1 到 48 个字符之间
- async sort_chapters(deck_id: DeckID | str, chapter_ids: Iterable[ChapterID | str]) ChapterSet[源代码]
排序章节
- 参数:
- 返回:
排序后的章节集合
- 返回类型:
- 抛出:
aiohttp.ClientResponseError -- 排序章节失败
- async new_card(deck_id: DeckID | str, chapter_id: ChapterID | str, content: str, grammar_version: int = 3) Card[源代码]
创建卡片
卡片内容长度必须在 1 到 2500 个字符之间
- async delete_card(chapter_id: ChapterID | str, deck_id: DeckID | str, card_id: str) Chapter[源代码]
删除卡片
- async edit_card(deck_id: DeckID | str, card_id: str, content: str, grammar_version: int = 3) Card[源代码]
编辑卡片
卡片内容长度必须在 1 到 2500 个字符之间
- async sort_cards(deck_id: DeckID | str, chapter_id: ChapterID | str, card_ids: Iterable[CardID | str]) Chapter[源代码]
排序卡片
- async move_cards(deck_id: DeckID | str, chapter_id_from: ChapterID | str, chapter_id_to: ChapterID | str, card_ids: Iterable[CardID | str], order: int | None = None) ChapterDiff[源代码]
移动卡片
- 参数:
- 返回:
章节变化
- 返回类型:
- 抛出:
aiohttp.ClientResponseError -- 移动卡片失败
- async search_cards(keyword: str, offset: int = 0, limit: int = 10, self_only: bool = False, deck_id: DeckID | str | None = None) tuple[list[CardResult], int][源代码]
搜索卡片
关键词长度必须在 1 到 8000 个字符之间
offset 必须在 0 到 1000 之间
limit 必须在 10 到 100 之间
设置 deck_id 时,self_only 无效
- async tts(text: str, lang: LanguageCode | str) File[源代码]
语音合成
- 参数:
text (str) -- 文本
lang (LanguageCode | str) -- 语言代码
- 返回:
语音文件
- 返回类型:
- 抛出:
aiohttp.ClientResponseError -- 语音合成失败
aiohttp.ClientResponseError -- 获取语音文件失败
Subpackages
- markji.editor package
FontBuilderFontColorFontBackgroundColorFontScriptParagraphBuilderClozeBuilderChoiceBuilderChoiceItemFormulaBuilderReferenceBuilderImageBuilderAudioBuilderAnswerLine- Submodules
- markji.editor.choice module
- markji.editor.cloze module
- markji.editor.font module
- markji.editor.formula module
- markji.editor.media module
- markji.editor.paragraph module
- markji.editor.reference module
- markji.types package
PathUserIDFolderIDDeckIDChapterIDChapterSetIDCardIDCardRootIDFileIDAccessSettingIDUserGenderStatusItemObjectClassDeckSourceFileSourceLanguageCodeLanguageCode.AR_DZLanguageCode.AR_AELanguageCode.AR_EGLanguageCode.AR_BHLanguageCode.AR_QALanguageCode.AR_KWLanguageCode.AR_LYLanguageCode.AR_MALanguageCode.AR_SALanguageCode.AR_TNLanguageCode.AR_SYLanguageCode.AR_YELanguageCode.AR_IQLanguageCode.AR_JOLanguageCode.AM_ETLanguageCode.GA_IELanguageCode.ET_EELanguageCode.BG_BGLanguageCode.PL_PLLanguageCode.FA_IRLanguageCode.DA_DKLanguageCode.DE_ATLanguageCode.DE_DELanguageCode.DE_CHLanguageCode.RU_RULanguageCode.FR_BELanguageCode.FR_FRLanguageCode.FR_CALanguageCode.FR_CHLanguageCode.FIL_PHLanguageCode.FI_FILanguageCode.KM_KHLanguageCode.GU_INLanguageCode.KO_KRLanguageCode.NL_BELanguageCode.NL_NLLanguageCode.GL_ESLanguageCode.CA_ESLanguageCode.CS_CZLanguageCode.HR_HRLanguageCode.LV_LVLanguageCode.LT_LTLanguageCode.RO_ROLanguageCode.MT_MTLanguageCode.MR_INLanguageCode.MS_MYLanguageCode.BN_BDLanguageCode.MY_MMLanguageCode.AF_ZALanguageCode.NB_NOLanguageCode.PT_BRLanguageCode.PT_PTLanguageCode.JA_JPLanguageCode.SV_SELanguageCode.SK_SKLanguageCode.SL_SILanguageCode.SW_KELanguageCode.SW_TZLanguageCode.SO_SOLanguageCode.TE_INLanguageCode.TA_LKLanguageCode.TA_SGLanguageCode.TA_INLanguageCode.TH_THLanguageCode.TR_TRLanguageCode.CY_GBLanguageCode.UR_PKLanguageCode.UR_INLanguageCode.UK_UALanguageCode.UZ_UZLanguageCode.ES_NILanguageCode.ES_ARLanguageCode.ES_PYLanguageCode.ES_PALanguageCode.ES_PRLanguageCode.ES_BOLanguageCode.ES_GQLanguageCode.ES_DOLanguageCode.ES_ECLanguageCode.ES_COLanguageCode.ES_CRLanguageCode.ES_CULanguageCode.ES_HNLanguageCode.ES_USLanguageCode.ES_PELanguageCode.ES_MXLanguageCode.ES_SVLanguageCode.ES_GTLanguageCode.ES_VELanguageCode.ES_UYLanguageCode.ES_ESLanguageCode.ES_CLLanguageCode.HE_ILLanguageCode.EL_GRLanguageCode.HU_HULanguageCode.SU_IDLanguageCode.IT_ITLanguageCode.HI_INLanguageCode.ID_IDLanguageCode.EN_IELanguageCode.EN_AULanguageCode.EN_PHLanguageCode.EN_CALanguageCode.EN_KELanguageCode.EN_USLanguageCode.EN_ZALanguageCode.EN_NGLanguageCode.EN_TZLanguageCode.EN_HKLanguageCode.EN_SGLanguageCode.EN_NZLanguageCode.EN_INLanguageCode.EN_GBLanguageCode.VI_VNLanguageCode.JV_IDLanguageCode.ZH_CNLanguageCode.ZH_TWLanguageCode.ZH_HKLanguageCode.ZU_ZA
DatetimeUserLevelUserOAuthFolderItemDeckAccessSettingBasicDeckAccessSettingBriefDeckAccessSettingInfoDeckAccessSettingCardReferenceTTSItemMaskInfoImageInfoAudioInfoTTSInfoFileMaskItem- Submodules
- markji.types.card module
- markji.types.chapter module
- markji.types.deck module
DeckBasicDeckBasic.idDeckBasic.sourceDeckBasic.creatorDeckBasic.statusDeckBasic.nameDeckBasic.authorsDeckBasic.descriptionDeckBasic.is_modifiedDeckBasic.is_privateDeckBasic.is_searchableDeckBasic.like_countDeckBasic.revisionDeckBasic.card_countDeckBasic.chapter_countDeckBasic.created_timeDeckBasic.updated_time
DeckBriefDeckInfoDeckForkedDeck
- markji.types.folder module
- markji.types.user module