summaryrefslogtreecommitdiff
path: root/README.md
blob: d3b5dd3194b2558be08b7d4cbedc77fb6b8860a0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96


# 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