Skip to main content

一个为编程猫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.直接下载文件(推荐)

下载 codemaoLang.py

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

codemaoLang-1.1.1.tar.gz (16.0 kB view details)

Uploaded Source

Built Distribution

codemaoLang-1.1.1-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

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

Hashes for codemaoLang-1.1.1.tar.gz
Algorithm Hash digest
SHA256 299da797f981e5dbe333f907fd3948fcdeccc6a0c5c49185e91848f2ab865b23
MD5 f108df5b02e35fec93f639f7d0acac44
BLAKE2b-256 7098aa02ea7fe25ced327c8019935792b0d3fa24ac26044889d89101c806de9c

See more details on using hashes here.

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

Hashes for codemaoLang-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a37b32bb7eba71edb44678adc65eaa34646e065c2ca5b3f963005cab704435dd
MD5 3f3ad272b8974153e410b5678b525995
BLAKE2b-256 bbca95ed71d5f80116f18d80d80c2e08bd02db48f99eb1fe4d05c6995b8a997f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page