summaryrefslogtreecommitdiff
path: root/plugins/csi.py
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/csi.py')
-rw-r--r--plugins/csi.py45
1 files changed, 45 insertions, 0 deletions
diff --git a/plugins/csi.py b/plugins/csi.py
new file mode 100644
index 00000000..5fe41666
--- /dev/null
+++ b/plugins/csi.py
@@ -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()