Skip to content

l29ah/hatexmpp

Repository files navigation

Welcome to hatexmpp.

> look

You are near the root of a tree.

> look hatexmpp

You see a xmpp client with filesystem frontend.

> configure hatexmpp

Okay: $EDITOR config.h
Enjoy the comments inside.

> build hatexmpp

Okay: make
You will need glib (~>=2.18.4), fuse (~>=2.7.4) and loudmouth (~>=1.4.3) 
in your system to proceed with compilation. 
On BSD machines you may need to say gmake instead.
It wasn't tested on Windows, though. If you do, CONTACT us.

> run hatexmpp

Synopsis: ./hatexmpp <mountpoint> [-d]
mountpoint - a directory where the hatexmpp tree will be deployed
d - enable it to debug

> go fs

You see config, events, log, rawxmpp and roster

> go config

You see the place filled with different xmpp-related configuration options

> look

jiv_name - the client name to be published
jiv_os - operating system name
jiv_version - version of the client
muc_default_nick - default nickname to be used while joining the conferences
password - password for your xmpp account
port - TCP port number of the server
priority - the priority of the selected resource
resource - xmpp resource name
server - address of the server to connect to
show - XMPP machine-readable "status" value, can be "", "away", "chat", "dnd" and "xa"
ssl - enable or disable SSL; valid values are "disabled", "enabled", "starttls" and "required_starttls"
status - human-readable status
username - username
register - create this to make xmpp to register a new account on the server
based on the stated username and password
noauth - create to prevent auth after bringing up the connection; may be used 
to do weird things with raw xml stream access
auto_reconnect - create to reconnect on disconnection; still unusable
raw_logs - raw logs (without time, jids)
events - events generation on/off

> go /
> use hatexmpp

command - action[ - comment]
hatexmpp -h - command line options description
mkdir roster - connect to server
rmdir roster - disconnect
cp opt config/ - write config option "opt"
mkdir roster/mucjid - join MUC "mucjid"
rmdir roster/mucjid - part MUC "mucjid"
echo -n lol >> roster/jid/__chat - say "lol" to "jid"
echo -n lol >> roster/jid/resource - say "lol" to "jid"'s "resource
echo -n lol >> roster/mucjid/__chat - say "lol" to MUC "mucjid"
echo -n lol >> roster/mucjid/nick - say "lol" to MUC "mucjid" participant "nick"
rm roster/jid - remove "jid" from roster
rm roster/mucjid/jid - ban "jid" in MUC "mucjid" - temporary
rm roster/mucjid/nick - ban "nick" in MUC "mucjid" - not implemented
echo -n > roster/mucjid/nick - kick "nick" in MUC "mucjid" - not implemented/wtf!?
tail -f roster/jid/__chat - listen to jid's talk - temporary
tail -f roster/mucjid/__chat - listen to mucjid - temporary
cat /path/to/stream - continiously listen to stream - not implemented
echo -n lol >> roster/mucjid/__nick - change nickname

> go frontends

You see some frontends to use with hatexmpp.

> go hatebot

You see the hatexmpp-based MUC bot.

> look

You see some bash scripts:
cmdlex.sh - the script which actually interacts with hatexmpp
cmdparse.sh - running and cutting the output of the commands
getfup.sh - setting the bot up
getbot.sh - the script preparing the environment for the getfup.sh,
setting the MUCs to sit on and enables logging.
shutdown.sh - shuts down the bot

Also, there are some directories ahead:
commands - the commands hatebot will run on the users' requests
config - the folder to copy to fs/config

> go commands

You see a lot of scripts, you feel a little dizzy.

> look

All the commands boil down to simple interface: they are running with their
filenames and arguments set in the chat just like in the shell. Their output 
is redirected to the chat. Also, they may use "C" environment variable to get 
the name of MUC they were called from.

> go /
> bugs

Sure, lots of them! The known ones are broken events and failing to cut all
the illegal symbols from the user-supplied messages.

> quit

Till next time, adventurer!
Thanks to the vx32 authors for their ADVENTURE!