存储后端

要创建自定义存储后端,您需要子类化 StorageBackend 类。然后创建一个新类的实例,并在创建 WebSupport 对象时将其作为 storage 关键字参数传递。

support = WebSupport(srcdir=srcdir,
                     builddir=builddir,
                     storage=MyStorage())

有关创建自定义存储后端的更多信息,请参见下面 StorageBackend 类的文档。

class sphinxcontrib.websupport.storage.StorageBackend[source]

定义存储后端的接口。

在版本 1.6 中变更: StorageBackend 类从 sphinx.websupport.storage 移动到 sphinxcontrib.websupport.storage。

方法

StorageBackend.pre_build()[source]

在构建过程开始之前立即调用。使用它来为添加节点准备 StorageBackend。

StorageBackend.add_node(id, document, source)[source]

将节点添加到 StorageBackend。

参数:
  • id – 评论的唯一 ID。

  • document – 节点所属的文档名称。

  • source – 源文件名称。

StorageBackend.post_build()[source]

在构建完成后调用。如果需要,使用它来完成节点的添加。

StorageBackend.add_comment(text, displayed, username, time, proposal, node_id, parent_id, moderator)[source]

当添加评论时调用。

参数:
  • text – 评论的文本

  • displayed – 评论是否应该显示

  • username – 添加评论的用户的名称

  • time – 添加评论的时间的日期对象

  • proposal – 用户提出的建议的文本

  • node_id – 正在添加评论的节点的 ID

  • parent_id – 评论的父评论的 ID。

  • moderator – 添加评论的用户是否为版主

StorageBackend.delete_comment(comment_id, username, moderator)[source]

删除评论。

如果 moderator 为 False 并且 username 与评论上的用户名不匹配,则引发 UserNotAuthorizedError

参数:
  • comment_id – 要删除的评论的 ID。

  • username – 请求删除的用户的名字。

  • moderator – 用户是否为版主。

StorageBackend.get_data(node_id, username, moderator)[source]

调用以检索节点的所有数据。这应该返回一个字典,其中包含两个键,sourcecomments,如 WebSupportget_data() 方法所述。

参数:
  • node_id – 要获取数据的节点的 ID。

  • username – 请求数据的用户的名称。

  • moderator – 请求者是否为版主。

StorageBackend.process_vote(comment_id, username, value)[source]

处理正在投出的投票。 value 将为 -1、0 或 1。

参数:
  • comment_id – 正在投票的评论的 ID。

  • username – 投出投票的用户的名称。

  • value – 正在投出的投票的值。

StorageBackend.update_username(old_username, new_username)[source]

如果允许用户更改其用户名,则应调用此方法,以确保存储系统中没有停滞的数据。

参数:
  • old_username – 正在更改的用户名。

  • new_username – 用户名正在更改为的内容。

StorageBackend.accept_comment(comment_id)[source]

当版主接受评论时调用。调用此方法后,评论应向所有用户显示。

参数:

comment_id – 正在接受的评论的 ID。