Skip to content

Commit ce6de80

Browse files
committed
some documentation
1 parent aa5170e commit ce6de80

File tree

2 files changed

+168
-7
lines changed

2 files changed

+168
-7
lines changed

ADVENTURE

Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
Welcome to hatexmpp.
2+
3+
> look
4+
5+
You are near the root of a tree.
6+
7+
> look hatexmpp
8+
9+
You see a xmpp client with filesystem frontend.
10+
11+
> configure hatexmpp
12+
13+
Okay: $EDITOR config.h
14+
Enjoy the comments inside.
15+
16+
> build hatexmpp
17+
18+
Okay: make
19+
You will need glib (~>=2.18.4), fuse (~>=2.7.4) and loudmouth (~>=1.4.3)
20+
in your system to proceed with compilation.
21+
On BSD machines you may need to say gmake instead.
22+
It wasn't tested on Windows, though. If you do, CONTACT us.
23+
24+
> run hatexmpp
25+
26+
Synopsis: ./hatexmpp <mountpoint> [-d]
27+
mountpoint - a directory where the hatexmpp tree will be deployed
28+
d - enable it to debug
29+
30+
> go fs
31+
32+
You see config, events, log, rawxmpp and roster
33+
34+
> go config
35+
36+
You see the place filled with different xmpp-related configuration options
37+
38+
> look
39+
40+
jiv_name - the client name to be published
41+
jiv_os - operating system name
42+
jiv_version - version of the client
43+
muc_default_nick - default nickname to be used while joining the conferences
44+
password - password for your xmpp account
45+
resource - xmpp resource name
46+
server - address of the server to connect to
47+
username - username
48+
register - create this to make xmpp to register a new account on the server
49+
based on the stated username and password
50+
noauth - create to not to authenticate; may be used to do weird things with
51+
raw xml stream access
52+
auto_reconnect - create to reconnect on disconnection; still unusable
53+
raw_logs - raw logs (without time, jids)
54+
events - events generation on/off
55+
56+
> go /
57+
> use hatexmpp
58+
59+
command - action - status
60+
mkdir roster - connect to server - ready
61+
rmdir roster - disconnect - needs fix?
62+
cp opt config/ - write config option ‘opt’ - ready
63+
mkdir roster/mucjid - join MUC ‘mucjid’ - ready
64+
rmdir roster/mucjid - part MUC ‘mucjid’ - ready
65+
echo -n lol >> roster/jid - say ‘lol’ to ‘jid’ - ready
66+
echo -n lol >> roster/mucjid/__chat - say ‘lol’ to MUC ‘mucjid’ - ready
67+
echo -n lol >> roster/mucjid/nick - say ‘lol’ to MUC ‘mucjid’ participant ‘nick’ - ready
68+
rm roster/jid - remove ‘jid’ from roster - ready?
69+
rm roster/mucjid/jid - ban ‘jid’ in MUC ‘mucjid’ - temporary
70+
rm roster/mucjid/nick - ban ‘nick’ in MUC ‘mucjid’ - not implemented
71+
echo -n > roster/mucjid/nick - kick ‘nick’ in MUC ‘mucjid’ - not implemented/wtf!?
72+
tail -f roster/jid - listen to jid’s talk - ready
73+
tail -f roster/mucjid/__chat - listen to mucjid - ready
74+
cat /path/to/stream - continiously listen to stream - not implemented
75+
echo -n lol >> roster/mucjid/__nick - change nickname - ready
76+
77+
> go frontends
78+
79+
You see some frontends to use with hatexmpp.
80+
81+
> go hatebot
82+
83+
You see the hatexmpp-based MUC bot.
84+
85+
> look
86+
87+
You see some bash scripts:
88+
cmdlex.sh - the script which actually interacts with hatexmpp
89+
cmdparse.sh - running and cutting the output of the commands
90+
getfup.sh - setting the bot up
91+
getbot.sh - the script preparing the environment for the getfup.sh,
92+
setting the MUCs to sit on and enables logging.
93+
shutdown.sh - shuts down the bot
94+
95+
Also, there are some directories ahead:
96+
commands - the commands hatebot will run on the users' requests
97+
config - the folder to copy to fs/config
98+
99+
> go commands
100+
101+
You see a lot of scripts, you feel a little dizzy.
102+
103+
> look
104+
105+
All the commands boil down to simple interface: they are running with their
106+
filenames and arguments set in the chat just like in the shell. Their output
107+
is redirected to the chat. Also, they may use "C" environment variable to get
108+
the name of MUC they were called from.
109+
110+
> go /
111+
> rest
112+
113+
While resting, you may do something useful, like:
114+
non-segfaulty behaviour more nonstop testing, recruit beta-testers
115+
9P-port?
116+
make some fscalls critical sections (mkdir conference, maybe others: investigation needed)
117+
streaming logs
118+
raw mode (to pipe through xmpp safely)
119+
proper reaction to various XMPP error stanzas
120+
code cleanup, functions name unification (for example xmpp_* etc)
121+
contacts in roster as directories for vcard, etc
122+
non-stupid events protocol
123+
roster management: add, delete, subscription etc
124+
direct xml stream access (writing, reading, pipe)
125+
kawaii frontend (ncurses, slang)
126+
mount options
127+
groups in roster (damn, too much rewrite)
128+
transports
129+
service discovery
130+
XEP-0138: Stream Compression
131+
whiteboarding (.svg)
132+
file sending/receiving
133+
user-friendly frontend (gtk one?)
134+
135+
or fix some bugs:
136+
generating incorrect XMPP messages while using non-trivial unicode (for
137+
example, the japanese language)
138+
non-noticing the disconnect (should send a kind of ping or so)
139+
cutting the messages in random places (frontend-related, should write all
140+
the message in one write() syscall)
141+
142+
But the Game Master forbids you to make something like:
143+
XEP-0245: The /me Command (frontend-related)
144+
XEP-0196: User Gaming (stupid)
145+
XEP-0171: Language Translation (stupid)
146+
147+
> show license
148+
149+
Google for the GNU AGPL v3.
150+
151+
> contact
152+
153+
Feel free to write to [email protected] and [email protected]
154+
155+
> who
156+
157+
L29Ah, http://l29ah-home.wtf.la/
158+
159+
> date
160+
161+
Nov 26, 2009
162+
163+
> quit
164+
165+
Till next time, adventurer!
166+
Thanks to the vx32 authors for their ADVENTURE!
167+

README

Lines changed: 0 additions & 7 deletions
This file was deleted.

README

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ADVENTURE

0 commit comments

Comments
 (0)