Skip to main content

minimal implementation of a serverless XMPP client

Project description

PyPI versio PyPi format PyPI license PyPi weekly downloads

python-presence

A minimal implementation of a serverless XMPP client.

Installation

  • Clone this repository and run pip install . OR
  • Install from PyPi: pip install python-presence

Usage (example client)

There is a minimal python script called python-presence for running a service:

usage: python-presence [-h] [-d] [-k] [-f] [-v]

python-presence

optional arguments:
  -h, --help     show this help message and exit
  -d, --daemon   run as daemon
  -k, --kill     kill running instance if any before start
  -f, --force    force start on bogus lockfile
  -v, --verbose

Default client commands

The client currently supports the following built-in trigger commands/keywords:

Commmand Description
echo echo message text
help print a list of commands
hello print a hello message
vars print variables
ls list contents of download directory

Extending the client with custom commands

A simple application of client commands is remote query of system information.

    import subprocess
    commands = {
        'df': ClientThread.make_command(
            func=staticmethod(
                lambda client, _: client.send_ascii(
                    subprocess.check_output("df -h", shell=True).decode('utf-8'))
            ),
            helptext='show list of processes',
        ),
        'ps': ClientThread.make_command(
            func=staticmethod(
                lambda client, _: client.send_ascii(
                    subprocess.check_output("ps aux", shell=True).decode('utf-8'))
            ),
            helptext='show list of processes',
        ),
    }

System integration

misc/presence.service is a template file for configuring an Avahi service. After copying to /etc/avahi/services the service advertisement should immediately show up in clients on the same subnet.

misc/python-presence.service is a systemd service than can be used as-is after copying to /etc/systemd/system.

The files are also available in the data folder of the PyPi package.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python-presence-0.1.6.tar.gz (26.2 kB view details)

Uploaded Source

Built Distribution

python_presence-0.1.6-py3-none-any.whl (27.3 kB view details)

Uploaded Python 3

File details

Details for the file python-presence-0.1.6.tar.gz.

File metadata

  • Download URL: python-presence-0.1.6.tar.gz
  • Upload date:
  • Size: 26.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for python-presence-0.1.6.tar.gz
Algorithm Hash digest
SHA256 9396f29e1468b0268f69210a43e2549e50f28c2d86ada07aebd92a65106afffd
MD5 d037cb75fd28b25e2c01ed86f1a8da01
BLAKE2b-256 a32d57d8910a3a7281c73bb4d3d32f9cb8fc6ac0db377426b377ba4b72ad4f16

See more details on using hashes here.

File details

Details for the file python_presence-0.1.6-py3-none-any.whl.

File metadata

File hashes

Hashes for python_presence-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 8ebba0d4baf40c860f5d75e975b9a8c3e1380a388a90b295113d61f6efb468c7
MD5 09df4f56ddebffd4fc5d2af419b34d84
BLAKE2b-256 028390baf67072cbf64691efc9f2c4d9c64a01f06ef2ec4db8edd33232086290

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page