一个为编程猫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
File details
Details for the file codemaoLang-1.1.1.tar.gz
.
File metadata
- Download URL: codemaoLang-1.1.1.tar.gz
- Upload date:
- Size: 16.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 299da797f981e5dbe333f907fd3948fcdeccc6a0c5c49185e91848f2ab865b23 |
|
MD5 | f108df5b02e35fec93f639f7d0acac44 |
|
BLAKE2b-256 | 7098aa02ea7fe25ced327c8019935792b0d3fa24ac26044889d89101c806de9c |
File details
Details for the file codemaoLang-1.1.1-py3-none-any.whl
.
File metadata
- Download URL: codemaoLang-1.1.1-py3-none-any.whl
- Upload date:
- Size: 12.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a37b32bb7eba71edb44678adc65eaa34646e065c2ca5b3f963005cab704435dd |
|
MD5 | 3f3ad272b8974153e410b5678b525995 |
|
BLAKE2b-256 | bbca95ed71d5f80116f18d80d80c2e08bd02db48f99eb1fe4d05c6995b8a997f |