一个为编程猫api打造的高度包装的Python库
Project description
Codemao Lang
当前版本列表:
v1.0.0
v1.1.0
v1.1.1
更新日志:
v1.0.0:
(1).正式发布
v1.1.0:
(1).user类新增发帖、回帖、回复等论坛功能
(2).修改user类messages方法
(3).新增post、workshop类
v1.1.1:
(1).修复了低版本Python无法运行的问题
下载 Codemao Lang
1.直接下载文件(推荐)
2.使用 pip 下载
python -m pip install codemaoLang
3.使用 Github 下载
使用文档 (v1.1.1)
1. user 类
用于通过账号和密码登录用户并获取和修改信息
(1) 参数
identity: str
- 账户 手机号/用户名/邮箱
password: str
- 账户 密码
示例:
from codemaoLang import *
usr = user('账号', '密码')
注意:以下文档中的 usr 均代表一个已经登录的 user() 实例
(2) 变量
变量名 | 类型 | 解释 |
---|---|---|
usr.identity | str | 账号 |
usr.password | str | 密码 |
usr.ifLogon | bool | 是否登录 |
usr.id | int | ID |
usr.nickname | str | 昵称 |
usr.avatar_url | str | 头像链接 |
usr.fullname | str | 真实姓名 |
usr.birthday | int | 生日时间戳 |
usr.sex | int | 性别(0为女,1为男) |
usr.qq | str | QQ 号码 |
usr.description | str | 自我描述 |
(3) 集合
auth(认证):
变量名 | 类型 | 解释 |
---|---|---|
usr.auth.data | dict | 所有信息组成的字典 |
usr.auth.token | str | token |
usr.auth.phone_number | str | 手机号(如:123****4567) |
usr.auth.has_password | bool | 是否设置密码 |
usr.auth.is_weak_password | bool | 是否为弱密码 |
info(信息):
变量名 | 类型 | 解释 |
---|---|---|
usr.info.data | dict | 所有信息组成的字典 |
usr.info.id | int | ID |
usr.info.nickname | str | 昵称 |
usr.info.avatar | str | 头像链接 |
usr.info.email | bool | 邮箱(空) |
usr.info.gold | str | 金币数 |
usr.info.qq | str | QQ号码(空) |
usr.info.real_name | str | 真实姓名 |
usr.info.sex | str | 性别(M为男,F为女) |
usr.info.description | str | 自我描述 |
usr.info.level | int | 用户等级 |
(4)方法
修改用户信息
方法名 | 用法 |
---|---|
usr.setNickname(value: str) | 设置昵称 |
usr.setFullname(value: str) | 设置全名 |
usr.setDescription(value: str) | 设置自我描述 |
usr.setSex(value: int) | 设置性别(1为男,0为女) |
usr.setBirthday(value: int) | 设置生日时间戳 |
usr.setAvatar_url(value: str) | 设置用户头像URL |
修改用户密码
usr.setPassword(password: str)
示例:
from codemaoLang import *
usr = user('账号', '当前密码')
usr.setPassword('新密码')
退出登录
usr.logout()
PS:建议退出后删除此对象
示例:
from codemaoLang import *
usr = user('账号', '密码')
usr.logout()
del usr
刷新信息
usr.reload()
- 用于重新刷新信息,以同步用户在其他地方修改信息
获取消息
usr.messages()
返回一个item对象,包含以下值
变量名 | 类型 | 解释 |
---|---|---|
usr.messages().data | dict | 所有信息组成的字典 |
usr.messages().comment_reply | int | 评论与回复 |
usr.messages().like_fork | int | 赞与被购买 |
usr.messages().system | int | 系统消息 |
示例:
from codemaoLang import *
usr = user('账号', '密码')
print(usr.messages().data)
# 若无消息,则输出为 {'comment_reply': 0, 'like_fork': 0, 'system': 0}
论坛发帖
usr.post(title: str, content: str, board_name: str, studio_id: str = None)
参数说明
title: 帖子标题 (长度必须在5-50字之间)
content: 帖子内容 (应为HTML格式,长度必须不小于10字)
board_name: 要将帖子发布到的板块 (热门活动,积木编程乐园,工作室&师徒,你问我答,神奇代码岛,图书馆,CoCo,Python乐园,源码精灵,NOC编程猫比赛,灌水池塘,通天塔,训练师小课堂等)
studio_id(可选): 活动 ID (当且仅当board_name为热门活动时,此信息有效,帖子会发布在相应活动的讨论区)
返回值
若发帖成功,则返回帖子id,类型为 str
删除帖子
usr.del_post(post_id: str | int)
参数说明
post_id: 要删除的帖子的id (可以在帖子链接尾部数字获取)
回帖
usr.reply_post(post_id: str | int, content: str)
参数说明
post_id: 要回复的帖子的id (可以在帖子链接尾部数字获取)
content: 回帖内容 (应为HTML格式)
返回值
若发帖成功,则返回回帖id,类型为 str
回复
usr.reply_reply(reply_id: str | int, content: str, parent_id: int = 0)
参数说明
reply_id: 要回复的回帖的id (可以在帖子链接尾部数字获取)
content: 回帖内容 (应为HTML格式)
parent_id(可选):回复的其他回复id (默认为 0,即直接回复回帖,否则应设置为已有回复的id,显示为:“xxx 回复 xxx”)
示例:
from codemaoLang import *
import time
usr = user('账号', '密码') # 登录
post_id = usr.post('标题(Title)', '内容(Content)', '灌水池塘') # 发布帖子
reply_id = usr.reply_post(post_id, '回帖')
usr.reply_reply(reply_id, '回复')
time.sleep(60) # 等待60秒
usr.del_post(post_id) # 删除帖子
返回值
若发帖成功,则返回回复id,类型为 str
2. another 类
用于通过id获取用户信息(包括公开信息、代表作信息、荣誉信息、作品列表、收藏作品列表、关注列表、粉丝列表)
(1) 参数
user_id: str | int
- 账户 id
示例:
from codemaoLang import *
usr = another(6595064) # 作者的编程猫id,可替换为任意有效的编程猫id
注意:以下文档中的 usr 均代表一个有效的 another() 实例
(2) 变量
变量名 | 类型 | 解释 |
---|---|---|
usr.user_id | str | 用户ID |
(3) 集合
info(信息)
变量名 | 类型 | 解释 |
---|---|---|
usr.info.data | dict | 所有信息组成的字典 |
usr.info.id | int | ID |
usr.info.nickname | str | 昵称 |
usr.info.avatar | str | 头像链接 |
usr.info.sex | int | 性别(1为男,0为女) |
usr.info.description | str | 自我描述 |
usr.info.doing | str | 正在做的事 |
usr.info.preview_work_id | int | 代表作id |
usr.info.level | int | 等级 |
work(代表作)
变量名 | 类型 | 解释 |
---|---|---|
usr.work.data | dict | 所有信息组成的字典 |
usr.work.id | int | 作品ID |
usr.work.name | str | 作品名 |
usr.work.preview | str | 作品图片链接 |
honor(荣誉信息)
变量名 | 类型 | 解释 |
---|---|---|
usr.honor.data | dict | 所有信息组成的字典 |
usr.honor.attention_status | bool | 是否关注该用户 |
usr.honor.block_total | int | nemo 作品积木总数 |
usr.honor.re_created_total | int | 作品被再创作总数 |
usr.honor.attention_total | int | 该用户关注的人总数 |
usr.honor.fans_total | int | 该用户的粉丝总数 |
usr.honor.collected_total | int | 作品被收藏总数 |
usr.honor.liked_total | int | 作品被点赞总数 |
usr.honor.view_times | int | 作品被浏览总数 |
usr.honor.author_level | int | 该用户等级 |
usr.honor.is_official_certification | int | 是否为官方帐户(0为否,1为是) |
usr.honor.subject_id | int | 用户工作室 ID |
usr.honor.work_shop_name | str | 用户工作室名 |
usr.honor.work_shop_level | int | 用户工作室等级 |
usr.honor.like_score | int | 用户点赞分 |
usr.honor.collect_score | int | 用户收藏分 |
usr.honor.fork_score | int | 用户再创作分 |
(4) 类
works(作品列表)
-- data
所有数据组成的字典
-- items
所有作品对象组成的列表, 每一项都为 item 对象
-- getItem(number: int)
获取作品列表里的第几项
-- item
对象:
-- 包含以下值:
变量名 | 类型 | 解释 |
---|---|---|
data | dict | 所有信息组成的字典 |
id | int | 作品ID |
type | int | 类型(1为Kitten, 8为Nemo) |
work_name | str | 作品名 |
preview | str | 封面图片链接 |
view_times | int | 被浏览次数 |
collect_times | int | 被收藏次数 |
liked_times | int | 被点赞次数 |
parent_id | int | 原创:0;再创作:原作品 ID |
fork_enable | bool | 是否允许再创作 |
fork_times | int | 被再创作次数 |
publish_time | int | 作品发布时间戳 |
description | str | 作品介绍 |
collections(收藏列表)
-- data
所有数据组成的字典
-- items
所有收藏作品对象组成的列表, 每一项都为 item 对象
-- getItem(number: int)
获取收藏作品列表里的第几项
-- item
对象:
-- 包含以下值:
变量名 | 类型 | 解释 |
---|---|---|
data | dict | 所有信息组成的字典 |
id | int | 作品ID |
name | str | 作品名 |
preview | str | 作品封面图片链接 |
user_id | int | 作者ID |
nickname | str | 作者昵称 |
avatar_url | str | 作者头像链接 |
views_count | int | 作品被浏览次数 |
collections_count | int | 作品被收藏次数 |
likes_count | int | 作品被点赞次数 |
is_deleted | bool | 是否被删除 |
publish_time | int | 作品发布时间戳 |
work_type | int | 作品类型(1为Kitten, 8为Nemo) |
description | str | 作品介绍 |
followers(关注列表)
-- data
所有数据组成的字典
-- items
所有关注对象组成的列表, 每一项都为 item 对象
-- getItem(number: int)
获取关注列表里的第几项
-- item
对象:
-- 包含以下值:
变量名 | 类型 | 解释 |
---|---|---|
data | dict | 所有信息组成的字典 |
id | int | 用户ID |
nickname | str | 用户昵称 |
avatar_url | str | 用户头像链接 |
n_works | int | 用户作品总数 |
total_likes | int | 用户被点赞总数 |
is_followed | bool | 是否关注该用户 |
description | str | 用户自我描述 |
fans(粉丝列表)
-- 与 followers 用法完全一样
(5) 方法
刷新信息
usr.reload()
- 用于重新刷新信息,以同步用户在其他地方修改信息
3.board类
用于获取论坛所有面板的信息
(1) boards
类型:list
包含所有论坛板块的item对象
item对象包含以下值
变量名 | 类型 | 解释 |
---|---|---|
data | dict | 所有信息组成的字典 |
id | str | 板块id |
is_hot | bool | 是否为热门板块 |
icon_url | str | 板块图标 URL |
name | str | 板块名称 |
(2) getBoardId(board_id: str | int)
用于通过id获取指定板块信息
参数:
board_id:板块id
返回值:
一个集合,包含以下值
变量名 | 类型 | 解释 |
---|---|---|
id | str | 板块 ID |
name | str | 板块名称 |
description | str | 板块描述 |
icon_url | str | 板块图标 URL |
is_hot | bool | 是否为热门板块 |
n_posts | int | 板块中帖子总数 |
n_discussions | int | 板块中帖子回复总数 |
(3) getBoardName(board_id: str | int)
用于通过板块名获取指定板块信息
参数:
board_id:板块名 (热门活动,积木编程乐园,工作室&师徒,你问我答,神奇代码岛,图书馆,CoCo,Python乐园,源码精灵,NOC编程猫比赛,灌水池塘,通天塔,训练师小课堂等)
返回值:
一个集合,包含以下值
变量名 | 类型 | 解释 |
---|---|---|
id | str | 板块 ID |
name | str | 板块名称 |
description | str | 板块描述 |
icon_url | str | 板块图标 URL |
is_hot | bool | 是否为热门板块 |
n_posts | int | 板块中帖子总数 |
n_discussions | int | 板块中帖子回复总数 |
4. post 类
用于通过id获取指定论坛帖子信息
(1) 参数
post_id: str | int
- 帖子 id(可以在帖子链接尾部的数字获得)
注意:以下文档中的 post 均代表一个有效的 post() 实例
(2) 变量
变量名 | 类型 | 解释 |
---|---|---|
post.data | dict | 所有信息组成的字典 |
post.ask_help_flag | int | 是否为求助帖 |
post.board_id | str | 帖子所在板块 ID |
post.board_name | str | 帖子所在板块名称 |
post.content | str | 帖子内容 |
post.created_at | int | 发布时间戳 |
post.id | str | 帖子 ID |
post.is_authorized | bool | 是否为官方贴 |
post.is_featured | bool | 是否为精选贴 |
post.is_hotted | bool | 是否为热门贴 |
post.is_pinned | bool | 是否为置顶帖 |
post.n_comments | int | (每个回帖下的)评论数量 |
post.n_replies | int | 回帖数量 |
post.n_views | int | 浏览次数 |
post.title | str | 帖子标题 |
post.tutorial_flag | int | 是否为教程帖 |
post.updated_at | int | 更新时间戳 |
post.user | class | 见下文 |
(3) 内置 user 类
内涵帖子发布者消息,包含以下值
变量名 | 类型 | 解释 |
---|---|---|
post.data | dict | 所有信息组成的字典 |
post.id | str | 用户 ID |
post.nickname | str | 用户昵称 |
post.avatar_url | str | 用户头像 URL |
post.subject_id | int | 用户工作室 ID |
post.work_shop_name | str | 用户工作室名 |
post.work_shop_level | str | 用户工作室等级 |
post.wuhan_medal | bool | 是否有武汉勋章 |
post.has_signed | bool | 是否签订友好协议 |
5. workshop 类
用于通过id获取指定工作室信息
(1) 参数
workshop_id: str | int
- 工作室 id(可以在工作室链接尾部的数字获得)
from codemaoLang import *
ws = workshop(813) # LXYZ工作室的id,可替换为任意有效的工作室id
注意:以下文档中的 ws 均代表一个有效的 workshop() 实例
(2) 变量
变量名 | 类型 | 解释 |
---|---|---|
ws.data | dict | 所有信息组成的字典 |
ws.id | int | 工作室id |
ws.shop_id | int | 工作室识别码 |
ws.name | str | 工作室名称 |
ws.total_score | int | 工作室总分 |
ws.preview_url | str | 工作室图片 URL |
ws.description | str | 工作室介绍 |
ws.n_works | int | 工作室作品数量 |
ws.n_views | int | 工作室被浏览次数 |
ws.level | int | 工作室等级 |
ws.status | int | 工作室状态 |
ws.latest_joined_at | int | 最后有人加入的时间戳 |
ws.created_at | int | 工作室创建时间戳 |
ws.updated_at | int | 工作室主页最后被访问的时间戳 |
6. random_nickname 函数
用于生成一个随机昵称
示例:
from codemaoLang import *
print(random_nickname()) # 如:浪漫的飞电鼠ZRA5 务实的潘达熊9xKs
- BT.Q 2022.3.15
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for codemaoLang-1.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a37b32bb7eba71edb44678adc65eaa34646e065c2ca5b3f963005cab704435dd |
|
MD5 | 3f3ad272b8974153e410b5678b525995 |
|
BLAKE2b-256 | bbca95ed71d5f80116f18d80d80c2e08bd02db48f99eb1fe4d05c6995b8a997f |