Add a manual CSI plugin

This commit is contained in:
mathieui 2016-06-05 13:48:04 +02:00
parent c00cfecdf8
commit 0a2238def5
3 changed files with 57 additions and 0 deletions

View file

@ -0,0 +1,6 @@
.. _csi-plugin:
CSI
===
.. automodule:: csi

View file

@ -87,6 +87,11 @@ Plugin index
Close all tabs except MUCs and the roster.
CSI
:ref:`Documentation <csi-plugin>`
Set the client state indication manually.
Cyber
:ref:`Documentation <cyber-plugin>`
@ -303,3 +308,4 @@ Plugin index
close_all
reorder
cyber
csi

45
plugins/csi.py Normal file
View file

@ -0,0 +1,45 @@
"""
This plugin lets you set the CSI_ state manually, when the autoaway plugin
is not sufficient for your usage.
Commands
--------
.. glossary::
/csi_active
**Usage:** ``/csi_active``
Set CSI state to ``active``.
/csi_inactive
**Usage:** ``/csi_inactive``
Set CSI state to ``inactive``.
.. _CSI: https://xmpp.org/extensions/xep-0352.html
"""
from plugin import BasePlugin
import tabs
class Plugin(BasePlugin):
def init(self):
self.api.add_command('csi_active', self.command_active,
help='Set the client state indication to “active”',
short='Manual set active')
self.api.add_command('csi_inactive', self.command_inactive,
help='Set the client state indication to “inactive”',
short='Manual set inactive')
def command_active(self, args):
if not self.core.xmpp.plugin['xep_0352'].enabled:
self.api.information('CSI is not enabled in this server', 'Warning')
else:
self.core.xmpp.plugin['xep_0352'].send_active()
def command_inactive(self, args):
if not self.core.xmpp.plugin['xep_0352'].enabled:
self.api.information('CSI is not enabled in this server', 'Warning')
else:
self.core.xmpp.plugin['xep_0352'].send_inactive()