Welcome to python-shanbay’s documentation!¶
python-shanbay¶
提供一系列操纵扇贝网 (www.shanbay.com) 的 API
- Documentation: http://python-shanbay.rtfd.org
- GitHub: https://github.com/mozillazg/python-shanbay
- Free software: MIT license
- PyPI: https://pypi.python.org/pypi/shanbay
- Python version: 2.6, 2.7, pypy, 3.3, 3.4
Features¶
- send/reply message
- manage team
- support shanbay api v1
Basic Usage¶
>>> from shanbay import Shanbay, Message
>>> shanbay = Shanbay('username', 'password')
>>> shanbay.login()
True
>>> message = Message(shanbay)
>>> message.send_message(['mozillazg'], 'hello', 'hello')
True
API¶
- class shanbay.ShanbayException¶
异常基类
- class shanbay.AuthException¶
未登录或登录已过期
- class shanbay.ConnectException¶
网络连接出现异常情况
- class shanbay.Shanbay(username, password)¶
Parameters: - username – 用户名
- password – 密码
>>> from shanbay import Shanbay >>> s = Shanbay('username', 'password') >>> s.login() True
- login(**kwargs)¶
登录
- server_date()¶
获取扇贝网服务器时间(北京时间)
- server_date_utc()¶
获取扇贝网服务器时间(UTC 时间)
Message¶
- class shanbay.message.Message(shanbay)¶
站内消息
Parameters: shanbay – Shanbay 实例对象 >>> from shanbay import Shanbay, Message >>> s = Shanbay('username', 'password') >>> s.login() >>> m = Message(s)
- reply_message(message_url, body)¶
回复某条站内消息
Parameters: - message_url – 该条消息的页面 URL
- body – 内容(不能超过 1024 个字符)
- send_message(recipient_list, subject, body)¶
发送站内消息
Parameters: - recipient_list – 收件人列表
- subject – 标题
- body – 内容(不能超过 1024 个字符)
Team¶
- class shanbay.team.Team(shanbay, team_url)¶
小组管理
Parameters: - shanbay – Shanbay 实例对象
- team_url – 小组首页 URL
>>> from shanbay import Shanbay, Team >>> s = Shanbay('username', 'password') >>> s.login() >>> t = Team(s, 'http://www.shanbay.com/team/1234/')
- dismiss(member_ids)¶
踢人. 注意别把自己给踢了.
Parameters: member_ids – 组员 ids Returns: bool
- forum_id()¶
小组发帖要用的 forum_id
- info()¶
小组信息
Returns: 小组信息 Return type: dict 返回值示例
{ 'title': u'title', # 标题 'leader': u'leader', # 组长 'date_created': datetime.datetime(2013, 10, 6, 0, 0), # 创建日期 'rank': 1000, # 排名 'number': 10, # 当前成员数 'max_number': 20, # 最大成员数 'rate': 1.112, # 打卡率 'points': 23 # 总成长值 }
- max_page()¶
获取小组成员管理页面的最大页数
- members()¶
获取小组所有成员的信息列表
- new_topic(title, content)¶
小组发贴
Returns: 帖子 id 或 None
- reply_topic(topic_id, content)¶
小组回帖
Returns: 帖子 id 或 None
- single_page_members(page_number=1)¶
获取单个页面内的小组成员信息
Parameters: page_number – 页码 Returns: 包含小组成员信息的列表 返回值示例:
[{ 'id': 123, # member_id 'username': 'jim', # username 'nickname': 'Jim', # 昵称 'role': u'小组长', # 身份 'points': 1234, # 贡献成长值 'days': 100, # 组龄 'rate': 99.9, # 打卡率 'checked_yesterday': True, # 昨天是否打卡 'checked': False, # 今天是否打卡 }, { # ... }]
- update_limit(days, kind=2, condition=u'>=')¶
更新成员加入条件
Return type: bool
Changelog¶
0.3.2 (2014-08-22)¶
- 小组管理页面改版
0.3.1 (2014-08-05)¶
- 修复”小组成员页面改版导致无法获取组员信息”
0.3.0 (2014-07-19)¶
- 封装 新版扇贝官方 API
- 修复”扇贝更改小组成员页面的 URL 导致无法获取组员信息”
0.2.1 (2014-06-24)¶
- 修复 team.info 无法处理打卡率是 0% 的情况
- 登录成功时,shanbay.login() 的返回值改为 True
0.2.0 (2014-06-09)¶
- 删除 shanbay.API, 因为扇贝网不再支持 API v0.8, 并且新的 API 尚未释出
- 各 api 接口移除 @property 装饰器
0.1.1 (2014-05-15)¶
- 新增站内消息 api
- 新增小组管理 api
- 调整 api 接口
具体用法可以参考 tests/ 以及 python-shanbay-team-assistant
0.1.0 (2014-03-31)¶
- 封装 扇贝网 API v0.8.