Welcome to python-shanbay’s documentation!

python-shanbay

提供一系列操纵扇贝网 (www.shanbay.com) 的 API

Build Pypi version Pypi downloads

Features

  • send/reply message
  • manage team
  • support shanbay api v1

Installation

To install python-shanbay, simply:

$ pip install shanbay

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:shanbayShanbay 实例对象
>>> 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:
  • shanbayShanbay 实例对象
  • 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_id)

踢人. 注意别把自己给踢了.

Parameters:member_id – 组员 id
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.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)

Indices and tables