基于Python的BBS实现,提供BBS数据接口

数据接口实现

  • 登录
    • 用户名/密码登录
已实现,考虑安全原因禁用
    • OAuth登录
部分实现,只是能用而已……
  • 帖子
    • 获取帖子
已实现
    • 发帖
    • 同主题上一帖/下一贴
已实现
  • 版面
    • 获取所有版面列表
已实现
  • 精华区
  • 收藏夹
    • 获取收藏夹列表
已实现
  • 消息
在XMPP接口中实现
  • 好友列表
在XMPP接口中实现
  • 邮箱


XMPP实现

XMPP阶段:

  • 认证
    • 基于外部OAuth
    • 基于明文
TLS层已经加密了,所以无所谓。
已实现,见xmppauth.XMPPAuth类
  • 登录
    • 更新用户信息
    • 增加session
已实现。在xmppserver.XMPPServer类中__init__部分。调用Session.Register()进行注册。
  • 好友列表
    • 获取好友列表(roaster)
已实现。在roster.Roster类中。
    • 跟踪好友状态并更新好友列表
已实现。在rosters.Rosters类中,包括update_sessions()等
    • 隐身功能
已实现,看不见的人,就是看不见……
但是在消息方面有个问题。原来是允许给隐身的人回复消息的,但现在不好判断是否回复,干脆统统不许。
    • 增加好友
    • 删除好友
    • 修改好友昵称
  • 消息
    • 发送消息
已实现。参见rosters.Rosters.send_msg()
    • 消息通知
已实现
目前设计为,当收到SIGUSR2,让所有登录用户检查是否有新消息。
    • 接收消息
已实现。保存内部已读索引,每次检查消息,如果有新消息,则发送给用户。
  • 修改状态
  • 扩展

很多成本不大…… 有空搞搞就好了

    • jabber:iq:last
上次活动时间(在线)/上次上线时间(下线)/uptime(服务器)
    • jabber:iq:version
软件版本/系统信息
    • vcard-temp
用户信息,例如名字、全名、……
初步实现,返回用户名……
用户本地时间……
    • disco#info
查询支持的扩展列表。已实现
  • 注销
    • 更新用户信息
    • 移除session
已实现。用Session.Unregister()。