# xbot A software to create simpel chat bots for the XMPP/Jabber protocol. Until now this repository consists only of the ```xbot``` executable. To send a XMPP message from the command line, you can use it like this: ``` xbot -m "Hello from your XMPP bot" -j "recipient@example.com" ``` Additional functionality to interact with this quite simpel bot will probably be added. ## Expected Environment - GNU/Linux Operating System - The C libraries 'libiniparser' and 'libstrophe' are installed - A build toolchain for C with gcc and make is available - The user has to have root access via sudo to install the executable to the system ## Usage Install this software from source on GNU/Linux systems like this: ``` git clone https://cgit.xengineering.eu/xbot cd xbot make all make install ``` Make sure to have a XMPP account for you and your bot. There are a lot of free services available. Use your search engine of choice to find one or look at the links in the last section of this document. The same applies to XMPP clients. After the installation you have to edit ```~/.config/xbot/profile.ini``` to type in the XMPP credentials of your bot. Have a look at [example_profile.ini](example_profile.ini) to learn about the format. Then edit your file accordingly: ``` nano ~/.config/xbot/profile.ini ``` Now you are ready to go! Just use: ``` xbot -m "Hello from your XMPP bot" -j "recipient@example.com" ``` There are a few options for xbot available on the command line. You could for example enable debug output with ```-d``` or select another profile on your filesystem like this: ``` xbot -m "Hello from your XMPP bot" -j "recipient@example.com" -p /path/to/my/profile.ini -d ``` Little **disclaimer**: - Protect your profile.ini file. Set the correct access rights with ```chmod 600 path/to/my/profile.ini```. The installation with make takes already care of that. - Currently there is no end-to-end encryption but transport encryption with TLS is enforced (maybe OMEMO encryption will be added in the future) ## Links - Use this [PKGBUILD file](https://cgit.xengineering.eu/pkgbuilds/tree/xbot) to get an Arch Linux Package - XMPP protocol definition - [RFC6120](https://xmpp.org/rfcs/rfc6120.html) - Website with doxygen documentation for the used XMPP library [libstrophe](http://strophe.im/libstrophe/) - A free [XMPP service](https://conversations.im/) with an english website - A free german [XMPP service](https://www.jabber.de/) - An [online tool](https://compliance.conversations.im/) to check if a XMPP service has implemented all XMPP extensions (XEPs) - [Snikket](https://snikket.org/) is a free XMPP Client for Android and iOS. Get it on [F-Droid](https://www.f-droid.org/en/packages/org.snikket.android/), the [Google Play Store](https://play.google.com/store/apps/details?id=org.snikket.android) or the [Apple App Store](https://apps.apple.com/us/app/snikket/id1545164189) - Dino is a modern XMPP client for Linux. They maintain a list of distribution packages accessible via their [website](https://dino.im/) - Gajim is a feature-rich client for XMPP designed for Windows and Linux. Get it on their [website](https://gajim.org/) or via your package manager on Linux. - The [Getting Started](https://xmpp.org/getting-started/) page of the XMPP Standards Foundation offers additional clients and information