-
-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathabout.html
197 lines (167 loc) · 13.5 KB
/
about.html
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8"/> <title>Maiden-Irc</title> <meta name="viewport" content="width=device-width"/> <meta name="description" content="IRC client for Maiden"/> <meta name="author" content="Nicolas Hafner <[email protected]>"/> <style type="text/css"> body{
max-width: 1024px;
margin: 0 auto 0 auto;
font-family: sans-serif;
color: #333333;
font-size: 14pt;
padding: 5px;
}
body>header{
display:flex;
align-items: center;
justify-content: center;
flex-direction: column;
max-width: 100%;
text-align: center;
}
body>header img{
max-width: 50%;
}
img{
max-width: 100%;
max-height: 100%;
}
code{
font-family: Consolas, Inconsolata, monospace;
}
a{
text-decoration: none;
color: #0055AA;
}
a img{
border: none;
}
#documentation{
text-align: justify;
}
#documentation pre{
margin-left: 20px;
overflow: auto;
}
#documentation img{
margin: 5px;
}
#symbol-index>ul{
list-style: none;
padding: 0;
}
#symbol-index .package>ul{
list-style: none;
padding: 0 0 0 10px;
}
#symbol-index .package .nicknames{
font-weight: normal;
}
#symbol-index .package h4{
display: inline-block;
margin: 0;
}
#symbol-index .package article{
margin: 0 0 15px 0;
}
#symbol-index .package article header{
font-size: 1.2em;
font-weight: normal;
}
#symbol-index .package .name{
margin-right: 5px;
}
#symbol-index .package .docstring{
margin: 0 0 0 15px;
white-space: pre-wrap;
font-size: 12pt;
}
@media (max-width: 800px){
body{font-size: 12pt;}
} </style> </head> <body> <header> <h1>maiden-irc</h1> <span class="version">0.0.0</span> <p class="description">IRC client for Maiden</p> </header> <main> <article id="documentation"> <div><h2>About</h2> <p>This is a client that enables using Maiden as a client for IRC networks. It does its best to provide all possible IRC commands and replies, but may still be missing a few exotic ones. With a bit of work, it could also be used as the basis for an IRC server.</p> <h2>How To</h2> <p>In order to use this client, simply create an instance of <code><a href="#MAIDEN-IRC:IRC-CLIENT">irc-client</a></code>, add it to a core, and start it. You can use <code>add-to-core</code> to do so quickly. Upon construction, you will probably be interested in the following initargs:</p> <ul> <li><code>:nickname</code> The nickname to use on the server. The client's name defaults to the hostname. If you need to retrieve it from the core easily, or want to maintain multiple connections to the same host, you should also provide <code>:name</code>.</li> <li><code>:username</code> The IRC username. Defaults to <code>(<a href="http://l1sp.org/cl/machine-instance">machine-instance</a>)</code>.</li> <li><code>:realname</code> The IRC realname. Defaults to <code>(<a href="http://l1sp.org/cl/machine-instance">machine-instance</a>)</code>.</li> <li><code>:password</code> The password for use upon connection. Defaults to NIL. Most networks don't use this feature anyway.</li> <li><code>:host</code> The hostname of the server to connect to.</li> <li><code>:port</code> The port of the server to connect to. Defaults to 6667.</li> <li><code>:services-password</code> The password to use to identify with the NickServ on the servers.</li> </ul> <p>All the IRC replies and commands are present as events, and functions for the latter, in the <code>org.shirakumo.maiden.clients.irc.events</code> package, which is nicknamed to <code>irc</code>.</p> </div> </article> <article id="copyright"> <h2>Copyright</h2> <span>maiden-irc</span> is licensed under the <span><a href="https://tldrlegal.com/search?q=Artistic">Artistic</a></span> license. © <span>Nicolas Hafner <[email protected]></span> . This library can be obtained on <a href="https://github.com/Shinmera/maiden">https://github.com/Shinmera/maiden</a>. </article> <article id="symbol-index"> <h2>Package Index</h2> <ul><li class="package"> <h3> <a name="MAIDEN-IRC" href="#MAIDEN-IRC">MAIDEN-IRC</a> <span class="nicknames">(ORG.SHIRAKUMO.MAIDEN.CLIENTS.IRC)</span> </h3> <ul><li> <a name="MAIDEN-IRC:IRC-CLIENT"> </a> <article> <header class="class"> <span class="type">class</span> <h4 class="name"><code><a href="#MAIDEN-IRC:IRC-CLIENT">IRC-CLIENT</a></code></h4> </header> <pre class="docstring">This client offers a connection to an IRC server.
The client will attempt to keep a properly consistent
view of the server. It will track all users and channels
and their relationships to the best of its ability.
It will also attempt to automatically reconnect and
correct potentially incorrect nicknames and all of these
kinds of problems that plague IRC networks.
See NICKNAME
See USERNAME
See PASSWORD
See REALNAME
See INTENDED-NICKNAME
See SERVICES
See SERVICES-PASSWORD
See MAIDEN-NETWORKING:TEXT-TCP-CLIENT
See MAIDEN-NETWORKING:RECONNECTING-CLIENT
See MAIDEN-NETWORKING:TIMEOUT-CLIENT
See MAIDEN-NETWORKING:SIMPLE-USER-CHANNEL-CLIENT</pre> </article> </li><li> <a name="MAIDEN-IRC:IRC-EVENT"> </a> <article> <header class="class"> <span class="type">class</span> <h4 class="name"><code><a href="#MAIDEN-IRC:IRC-EVENT">IRC-EVENT</a></code></h4> </header> <pre class="docstring">Superclass for all IRC events.
See MAIDEN:CLIENT-EVENT</pre> </article> </li><li> <a name="MAIDEN-IRC:REPLY-EVENT"> </a> <article> <header class="class"> <span class="type">class</span> <h4 class="name"><code><a href="#MAIDEN-IRC:REPLY-EVENT">REPLY-EVENT</a></code></h4> </header> <pre class="docstring">Superclass for all events that are a reply from the server.
See IRC-EVENT
See MAIDEN-CLIENT-ENTITIES:USER-EVENT
See MAIDEN-NETWORKING:INCOMING-EVENT
See MAIDEN:PASSIVE-EVENT</pre> </article> </li><li> <a name="MAIDEN-IRC:SEND-EVENT"> </a> <article> <header class="class"> <span class="type">class</span> <h4 class="name"><code><a href="#MAIDEN-IRC:SEND-EVENT">SEND-EVENT</a></code></h4> </header> <pre class="docstring">Superclass for all IRC events that are outgoing.
See IRC-EVENT
See MAIDEN-NETWORKING:OUTGOING-EVENT
See MAIDEN:ACTIVE-EVENT</pre> </article> </li><li> <a name="MAIDEN-IRC:UNKNOWN-EVENT"> </a> <article> <header class="class"> <span class="type">class</span> <h4 class="name"><code><a href="#MAIDEN-IRC:UNKNOWN-EVENT">UNKNOWN-EVENT</a></code></h4> </header> <pre class="docstring">Base container event for all replies that are unknown and not handled by a specific class.
See REPLY-EVENT</pre> </article> </li><li> <a name="MAIDEN-IRC:USER"> </a> <article> <header class="class"> <span class="type">class</span> <h4 class="name"><code><a href="#MAIDEN-IRC:USER">USER</a></code></h4> </header> <pre class="docstring">Object representing a user on a remote system somewhere.
Users have a name and may be authenticated. Additional properties
are not guaranteed, but may be provided by a client.
See CLIENT-ENTITY
See AUTHENTICATE
See AUTHENTICATED-P
See USERNAME</pre> </article> </li><li> <a name="MAIDEN-IRC:INTENDED-NICKNAME"> </a> <article> <header class="accessor"> <span class="type">accessor</span> <code>(</code><h4 class="name"><code><a href="#MAIDEN-IRC:INTENDED-NICKNAME">INTENDED-NICKNAME</a></code></h4> <code class="qualifiers"></code> <code class="arguments">OBJECT</code><code>)</code> </header> <pre class="docstring">Holds the intended nickname, which may be different from the actual nickname.
This is used to try and automatically change NICK to
the intended nickname when possible.
See IRC-CLIENT</pre> </article> </li><li> <a name="MAIDEN-IRC:MESSAGE"> </a> <article> <header class="accessor"> <span class="type">accessor</span> <code>(</code><h4 class="name"><code><a href="#MAIDEN-IRC:MESSAGE">MESSAGE</a></code></h4> <code class="qualifiers"></code> <code class="arguments">OBJECT</code><code>)</code> </header> <pre class="docstring">Accessor to the message string carried by the event.
See MESSAGE-EVENT</pre> </article> </li><li> <a name="MAIDEN-IRC:NICKNAME"> </a> <article> <header class="accessor"> <span class="type">accessor</span> <code>(</code><h4 class="name"><code><a href="#MAIDEN-IRC:NICKNAME">NICKNAME</a></code></h4> <code class="qualifiers"></code> <code class="arguments">OBJECT</code><code>)</code> </header> <pre class="docstring">The current nickname of the client.
Unlike a user, where the NAME is the nickname of the
user, in order to keep the name of a client instance
consistent and unchanging, the client's nickname is
kept separate.
This is another accessor to the same field as MAIDEN-
CLIENT-ENTITIES:USERNAME
See IRC-CLIENT
See MAIDEN-CLIENT-ENTITIES:USERNAME</pre> </article> </li><li> <a name="MAIDEN-IRC:PASSWORD"> </a> <article> <header class="accessor"> <span class="type">accessor</span> <code>(</code><h4 class="name"><code><a href="#MAIDEN-IRC:PASSWORD">PASSWORD</a></code></h4> <code class="qualifiers"></code> <code class="arguments">OBJECT</code><code>)</code> </header> <pre class="docstring">The password that is used during connection to the server.
See SERVICES-PASSWORD
See IRC-CLIENT</pre> </article> </li><li> <a name="MAIDEN-IRC:REALNAME"> </a> <article> <header class="accessor"> <span class="type">accessor</span> <code>(</code><h4 class="name"><code><a href="#MAIDEN-IRC:REALNAME">REALNAME</a></code></h4> <code class="qualifiers"></code> <code class="arguments">OBJECT</code><code>)</code> </header> <pre class="docstring">The realname that is passed to the server upon connection.
See IRC-CLIENT</pre> </article> </li><li> <a name="MAIDEN-IRC:SERVICES"> </a> <article> <header class="accessor"> <span class="type">accessor</span> <code>(</code><h4 class="name"><code><a href="#MAIDEN-IRC:SERVICES">SERVICES</a></code></h4> <code class="qualifiers"></code> <code class="arguments">OBJECT</code><code>)</code> </header> <pre class="docstring">Holds the type of services the server uses.
The client library must have specific support for each
services network. Currently the following types of
services are explicitly supported:
- :FREENODE
- :ANOPE
- :RIZON
This is in part used to be able to authenticate the
nicknames of users and check if they aren't impostors.
See IRC-CLIENT</pre> </article> </li><li> <a name="MAIDEN-IRC:USER"> </a> <article> <header class="accessor"> <span class="type">accessor</span> <code>(</code><h4 class="name"><code><a href="#MAIDEN-IRC:USER">USER</a></code></h4> <code class="qualifiers"></code> <code class="arguments">OBJECT</code><code>)</code> </header> <pre class="docstring">Reader for the user object the event relates to.
See USER-EVENT</pre> </article> </li><li> <a name="MAIDEN-IRC:USERNAME"> </a> <article> <header class="accessor"> <span class="type">accessor</span> <code>(</code><h4 class="name"><code><a href="#MAIDEN-IRC:USERNAME">USERNAME</a></code></h4> <code class="qualifiers"></code> <code class="arguments">OBJECT</code><code>)</code> </header> <pre class="docstring">The username that is passed to the server upon connection.
Note that this is /not/ the same as MAIDEN-CLIENT-ENTITIES:
USERNAME, which instead corresponds to NICKNAME.
See IRC-CLIENT</pre> </article> </li><li> <a name="MAIDEN-IRC:DEFINE-IRC-COMMAND"> </a> <article> <header class="macro"> <span class="type">macro</span> <code>(</code><h4 class="name"><code><a href="#MAIDEN-IRC:DEFINE-IRC-COMMAND">DEFINE-IRC-COMMAND</a></code></h4> <code class="qualifiers"></code> <code class="arguments">&REST ARGS</code><code>)</code> </header> <pre class="docstring">Define an IRC server command.
This will do the following:
- It defines an event of the same name whose MESSAGE
method contains the BODY and whose slots are parsed
from the arglist.
- It defines a function of the same name that will
issue said event onto a core.
The even is always a subclass of INSTRUCTION-EVENT and
SEND-EVENT. The name is re-interned in the ORG.
SHIRAKUMO.MAIDEN.CLIENTS.IRC.EVENTS package to avoid
clashing.
You can specify additional superclasses with the
:SUPERCLASSES body option.
See MESSAGE
See MAIDEN:INSTRUCTION-EVENT
See SEND-EVENT</pre> </article> </li><li> <a name="MAIDEN-IRC:DEFINE-IRC-REPLY"> </a> <article> <header class="macro"> <span class="type">macro</span> <code>(</code><h4 class="name"><code><a href="#MAIDEN-IRC:DEFINE-IRC-REPLY">DEFINE-IRC-REPLY</a></code></h4> <code class="qualifiers"></code> <code class="arguments">&REST ARGS</code><code>)</code> </header> <pre class="docstring">Define a new IRC reply command and how it is parsed.
NAME -- The name of the event class. Will be interned
into ORG.SHIRAKUMO.MAIDEN.CLIENTS.IRC.EVENTS.
CODE -- The string or code that identifies the event
on the IRC reply line.
REGEX -- A regular expression to destructure the reply
line body into usable slots.
SLOTS -- The slots of the event. Must correspond to
REGEX capture groups.
This defines an event class according to the slots
and the defined superclasses. It always injects the
REPLY-EVENT superclass. It also defines a MAKE-REPLY-
EVENTS method which will create the event instances as
necessary. It will even take care of parsing multi-
target fields and splitting them up into multiple events.
See MAKE-REPLY-EVENTS
See CL-PPCRE:REGISTER-GROUPS-BIND</pre> </article> </li></ul> </li></ul> </article> </main> </body> </html>