Storage Backends¶
To create a custom storage backend you will need to subclass the
StorageBackend
class. Then create an instance of the new class and
pass that as the storage keyword argument when you create the
WebSupport
object:
support = WebSupport(srcdir=srcdir,
builddir=builddir,
storage=MyStorage())
For more information about creating a custom storage backend, please see the
documentation of the StorageBackend
class below.
- class sphinxcontrib.websupport.storage.StorageBackend[源代码]¶
Defines an interface for storage backends.
在 1.6 版更改: StorageBackend class is moved to sphinxcontrib.websupport.storage from sphinx.websupport.storage.
Methods¶
- StorageBackend.pre_build()[源代码]¶
Called immediately before the build process begins. Use this to prepare the StorageBackend for the addition of nodes.
- StorageBackend.add_node(id, document, source)[源代码]¶
Add a node to the StorageBackend.
- 参数
id – a unique id for the comment.
document – the name of the document the node belongs to.
source – the source files name.
- StorageBackend.post_build()[源代码]¶
Called after a build has completed. Use this to finalize the addition of nodes if needed.
- StorageBackend.add_comment(text, displayed, username, time, proposal, node_id, parent_id, moderator)[源代码]¶
Called when a comment is being added.
- 参数
text – the text of the comment
displayed – whether the comment should be displayed
username – the name of the user adding the comment
time – a date object with the time the comment was added
proposal – the text of the proposal the user made
node_id – the id of the node that the comment is being added to
parent_id – the id of the comment’s parent comment.
moderator – whether the user adding the comment is a moderator
- StorageBackend.delete_comment(comment_id, username, moderator)[源代码]¶
Delete a comment.
Raises
UserNotAuthorizedError
if moderator is False and username doesn’t match the username on the comment.- 参数
comment_id – The id of the comment being deleted.
username – The username of the user requesting the deletion.
moderator – Whether the user is a moderator.
- StorageBackend.get_data(node_id, username, moderator)[源代码]¶
Called to retrieve all data for a node. This should return a dict with two keys, source and comments as described by
WebSupport
’sget_data()
method.- 参数
node_id – The id of the node to get data for.
username – The name of the user requesting the data.
moderator – Whether the requestor is a moderator.
- StorageBackend.process_vote(comment_id, username, value)[源代码]¶
Process a vote that is being cast. value will be either -1, 0, or 1.
- 参数
comment_id – The id of the comment being voted on.
username – The username of the user casting the vote.
value – The value of the vote being cast.