儲存後端

要建立自訂儲存後端,您需要繼承 StorageBackend 類別。然後建立新類別的實例,並在您建立 WebSupport 物件時,將該實例作為 storage 關鍵字參數傳遞

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

有關建立自訂儲存後端的更多資訊,請參閱下方 StorageBackend 類別的文件。

class sphinxcontrib.websupport.storage.StorageBackend[source]

定義儲存後端的介面。

Changed in version 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。