-
Notifications
You must be signed in to change notification settings - Fork 2
/
ChangeLog
448 lines (316 loc) · 16.8 KB
/
ChangeLog
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
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
2018-12-03 Shiro Kawai <[email protected]>
* client/examples/chaton-twitter (kick-reply-watcher!): Remove
using twitter user stream. For now, twitter feed is only one
direction (chaton -> twitter).
2016-03-26 Shiro Kawai <[email protected]>
* chaton-entry, chaton.js: Add "'Return' key to post" checkbox.
2016-02-12 Shiro Kawai <[email protected]>
* chaton.js: Shift+ENTER in textarea inserts newline instead
of posting.
2015-10-24 Shiro Kawai <[email protected]>
* client/examples/chaton-twitter (feed-to-twitter): Now they count
url as 23 character long.
2014-10-19 Shiro Kawai <[email protected]>
* chaton-poster (make-entry): Make sure invalid Char isn't written
into datafile.
* chaton.scm (chaton-render-rss-1): A quick fix not to include
control characters in rss feed outside of CDATA. Proper fix is
still required to filter such characters at the posting.
2014-03-09 Shiro Kawai <[email protected]>
* client/examples/chaton-twitter (feed-to-twitter): Fixed the post
length counting, w.r.t. twitter's t.co link shortening.
Since twitter shortens urls no matter how long the original ones
are, we no longer need to use bit.ly on our end. Need to remove
it in future.
2012-06-26 Shiro Kawai <[email protected]>
* client/examples/chaton-twitter (forward-from-twitter): Filter out
retweets.
2011-03-20 Shiro Kawai <[email protected]>
* chaton-viewer (get-header etc.): Support HTTP/1.0 request as well,
for some proxy servers (e.g. Squid) may send it.
2010-08-31 Shiro Kawai <[email protected]>
* chaton.scm (chaton-alist->stree): Render nested lists in the value
of the map as an array in json mode.
* chaton-viewer: Changed API to recognize "s=0" as a json mode which
returns the same info as Sexpr mode. The default (missing 's')
behavior is a special format just for web interface.
THIS IS AN INCOMPATIBLE CHANGE: It breaks a client that sends
's' parameter with a value other than 1 and expects Sexpr.
Clients using chaton.client module won't break, for the module
already sends '1'.
* chaton-apilogin: Allow returning result in json if "s=0" parameter
is given.
* tests/apilogin.scm, tests/Makefile: Added apilogin test.
2010-06-07 Shiro Kawai <[email protected]>
* client/examples/chaton-twitter: Switched from Basic authentication
to OAuth to access Twitter. Requires Gauche-net-twitter package.
2010-04-12 Shiro Kawai <[email protected]>
* client/examples/chaton-twitter (kick-reply-watcher!): run a watchdog
thread to prevent twitter api call from being wedged.
2010-03-26 Shiro Kawai <[email protected]>
* chaton-archiver (filter-entry): Last fix was incorrect. Fixed again.
2010-03-25 Shiro Kawai <[email protected]>
* chaton-archiver (filter-entry): Fixed a bug that truncated current.dat
when it has less than MIN-ENTRIES entries and all entries are
before cut-off date.
2009-11-13 Shiro Kawai <[email protected]>
* client/chaton/client.scm (make-handler): When an unexpected error
occurs within observer loop, restart the thread loop instead of
exitting the thread. Unexpected error can occur time to time,
e.g. temporary network failures.
2009-10-26 Shiro Kawai <[email protected]>
* client/examples/chaton-twitter (kick-reply-watcher!): Insert delay
before resuming watcher thread loop after capturing an error.
Without the delay, the thread can get into a busy loop if a
malfunction persists for some time (e.g. network failure).
2009-10-19 Shiro Kawai <[email protected]>
* client/examples/chaton-twitter (make-observer): return #f when
observer captures an error, so that observer thread won't terminate
when twitter or bit.ly access fail.
2009-10-16 Shiro Kawai <[email protected]>
* client/examples/chaton-twitter (forward-from-twitter): Only
forward messages from twitter by the users who follow the bridged
chaton room. This eliminates bouncing of multipost messages,
pikcing up unintended retweets, etc.
2009-10-13 Shiro Kawai <[email protected]>
* client/examples/chaton-twitter (kick-reply-watcher!): fixed a bug
in the handler clause of guard that caused to terminate watcher
thread.
2009-10-10 Shiro Kawai <[email protected]>
* client/examples/chaton-twitter: Added a sample chaton-twitter bridge.
* client/chaton/client.scm (chaton-permalink): Added utility function
to derive permalink from <chaton-client> and timestamp.
2009-09-21 Shiro Kawai <[email protected]>
* chaton.scm (chaton-render-rss-1): Use html-escape-string instead
of safe-text for escaping TITLE elements of RSS, since safe-text
may insert A elements which aren't allowed in TITLE.
2009-07-29 Shiro Kawai <[email protected]>
* chaton.scm (+show-stack-trace+): missing '@@' markers.
(chaton-render-from-file): enable to switch the order of entries
by a keyword argument newest-first. It is better to reverse the
order for RSS.
2009-07-26 Shiro Kawai <[email protected]>
* chaton.scm (chaton-render-rss-1): fix title.
* chaton-entry (the-page), chaton.scm (+index.rdf+): Changed the
location of index.rdf under 'var' subdirectory; the room directory
may be unwritable.
* chaton-poster (update-rss): Use extended with-output-to-file
to avoid race condition
* chaton.scm (chaton-render-html-1, chaton-render-rss-1): Refactored
common routines.
* chaton-poster (poster-main), chaton.scm (+show-stack-trace+),
sample.conf (show-stack-trace-on-error): Added configuration
switch to customize whether stack trace should be shown on
error.
2009-07-26 Kazuki Tsujimoto <[email protected]>
* cahton-poster (poster-main): Show stack trace when an error
occured.
* chaton-poster (update-rss): Added to support RSS.
* chaton-entry, chaton.scm: Changed accordingly.
2009-06-13 Shiro Kawai <[email protected]>
* chaton.scm (render-url): Allow '-' in the youtube vid.
* chaton-archiver (mklink): Ensure directory before creating the
symlink (only becomes a problem when archiver is invoked for the
first time *and* there's nothing to archive.)
2009-06-01 Shiro Kawai <[email protected]>
* chaton-entry: Allocates client ID when the entry is accessed.
* chaton-viewer (emit-skeleton): Fixed to carry over the client ID
given to the skeleton access.
(client-connected, emit-tail): In strict-login mode, make the server
reject unknown CID instead of allocating new CID. In that case,
the skeleton access returns a content telling the client to reload,
and the json access returns cid = -1 to indicate the rejection.
Typical public chatroom doesn't need this feature; this is only for
private rooms using http authentication.
* sample.conf (loose-login): Added a config parameter to specify
loose-login or strict-login mode.
* chaton.js (insertContent): Handles cid = -1 case introduced above.
* build-site, htaccess, sample.conf: Added settings to allow the
chat-room private using http basic authentication.
* chaton-passwd: simple password changing script for private rooms.
2009-05-30 Shiro Kawai <[email protected]>
* chaton-entry, chaton.html: Replaced chaton.html by chaton-entry
cgi script for preparation of issuing client ID upon accessing the
room.
* build-site, README, htaccess: Changed accordingly.
2009-05-29 Shiro Kawai <[email protected]>
* chaton-browser, chaton.css: Added wide padding below the archive view
so that the anchor to the post near the bottom of the archive view
works correctly.
2009-05-28 Shiro Kawai <[email protected]>
* client/chaton/client.scm (make-handler): Changed observer signature;
now it is called as (observer <client> <message>).
Also exported a bunch of accessor methods as the means of proper
way to get values from the client.
Also update pos and cid slot _after_ calling the observer, so that
the observer can compare message's pos/cid with the previous ones.
* client/examples/chaton-watcher: A simple command-line utility that
can monitor multiple chaton rooms.
2009-05-27 Shiro Kawai <[email protected]>
* chaton-apilogin: Login returns room-name as well.
* client/chaton/client.scm (make-handler): Retry after the comet server
disconnected.
* chaton-browser (day-link): suppress generating links to the date
without archive data.
2009-05-26 Shiro Kawai <[email protected]>
* search.html: The search page (using Google inurl:).
* conf/site.conf: A new configuration parameter to specify site-wide
search url (instead of in-room search).
* chaton.html: Added a link to the search page.
* build-site: includes search.html
* chaton.css: Added stuff for the search page.
* chaton-browser: Added links to the days in the month in the right
pane (monthly-navigation).
* chaton.css: Added some styles for the monthy navigation.
* chaton-archiver: Switched boundary of daily archive---entries are
splitted at midnight of GMT, instead of localtime.
The archiver also creates *.cnt files, recording # of entries.
The old archive must be converted by running chaton-archiver with
--rebuild option. (This may change some entries' permalinks; let's
hope it has limited effect at this point.)
* chaton.scm (make-permalink): Changed accordingly (using GMT to
generate permalink url).
2009-05-25 Shiro Kawai <[email protected]>
* chaton.scm (chaton): added +logdir+ constant.
* chaton-archiver: Emit log to $DATADIR/logs/archive.log.
Revised using common constants in the chaton module for
the directories.
* README: updated to reflect addition of new scripts.
2009-05-20 Shiro Kawai <[email protected]>
* chaton.scm (*url-rx*): Better regex to capture url.
2009-05-18 Shiro Kawai <[email protected]>
* chaton-viewer (client-connected, do-child): Changed treatment of
duplicate request; the most likely scenario of dup request is that
the intermediate node timeouts during comet keep the request waiting.
Comet thinks the connection is held, while the client sees it is
disconnected and resend the request. Now, when we detect dup,
we immediately discard the dup cid and reallocate new one, and
proceed normal comet treatment on the new cid. The original request
eventually soft-timeouts, checks if cid is still valid, and aborts
if the cid is invalidated (because of the dup request).
* chaton-viewer: Changed format of S-expr version of status
to an alist for consistency of other parts that treat json/sexpr.
* chaton-badge: adapted to the above change.
2009-05-17 Shiro Kawai <[email protected]>
* chaton-apilogin: Returns icon url as well.
* client/chaton/client.scm (<chaton-client>): Added icon-url slot.
* chaton-viewer (do-monitor): use read-lock while checking the size,
to avoid the hazard if the active log is truncated during checking.
Also touched sources for clearity.
* chaton.js, chaton-viewer: Changed json/s-expr field name of the
comet reply packet from 'text' to 'content'.
2009-05-16 Shiro Kawai <[email protected]>
* chaton.scm (render-url): recognize capital letter suffix for images
as well.
2009-05-15 Shiro Kawai <[email protected]>
* client/*: Start adding client library.
* chaton-viewer (get-header): Read request headers. Without properly
doing that, the timing of reply got screwed and some clients can't
receive proper reply.
2009-05-14 Shiro Kawai <[email protected]>
* chaton-viewer: Added support for intitial CID generation for API,
robots.txt, and returns some reasonable status for other unsupported
requests.
2009-05-12 Shiro Kawai <[email protected]>
* chaton.js (fetchContent): fix handling of disconnecting events.
It was wrong to use onException; Firefox calls onSuccess with empty
body when disconnected.
* chaton-viewer: start adding s-expr interface.
Rejects duplicate request from the same cid.
* chaton.scm (chaton-read-entries, chaton-render-from-file): split
atomic file reading part from chaton-render-from-file.
2009-05-11 Shiro Kawai <[email protected]>
* chaton-apilogin: Added.
* build-site, htaccess: Changed accordingly.
* chaton-viewer (make-json-packet, write-status-js): Use double-quote
to quote field name to comply json spec (rfc4627).
2009-05-10 Shiro Kawai <[email protected]>
* chaton.js (startWatchDog, tameWatchDog, bark): Added watchdog timer
for comet connection to support browsers that don't fire any events
when Ajax connection is lost. The timer won't be fired in normal
circumstances; it only barks when Comet server is restarted but
the browser failed to detect it.
* htaccess: Force charset=utf-8 for *.html, since the room description
may contain utf-8 characters.
* sample.conf, chaton.css: Added right-pane including room description
and link to the badge.
* chaton-badge, badge.html: Added Badge support.
* htaccess, build-site, chaton.css: Changed accordingly.
2009-05-09 Shiro Kawai <[email protected]>
* chaton.scm (with-output-to-file): Provides a wrapper to support
:atomic keyword arg, that implements a common idiom of write-to-
temporary-file-and-rename.
(+docdir+ etc.): Provides common constants.
* chaton-poster: Adapted to the new chaton.scm.
* chaton-viewer (emit-skeleton): Adds HTTP response header for the
initial skeleton.
(spawn-status): Writes out $(DOCDIR)/var/status.{js,scm} periodically
for those who wants to monitor room status (this obsoletes the old
var/seq file.)
2009-05-08 Shiro Kawai <[email protected]>
* chaton-poster (increment-sequence): Saves post sequence number under
$DATADIR/data/sequence instead of $DOCDIR/var/seq. The latter is
supported for a while until client side javascript is totally
updated.
(record-last-post-timestamp): Saves it to $DATADIR/data/last-post.
* chaton-viewer (client-tracker): Records the current number of
chatters under $DATADIR/data/num-chatters.
* chaton-browser (main): 'a/yesterday' link to redirect to
the yesterday's archive.
* chaton.html: "Read archive" link points to a/yesterday.
* chaton-archiver: Rewrote to handle multiple past dates with
sane DST handling, and also allow to leave some minimum amount
of entries in current.dat instead of truncating it strictly
to the today's entry.
2009-05-07 Shiro Kawai <[email protected]>
* chaton.scm (chaton-with-shared-locking,chaton-with-exclusive-locking):
Put locking primitives here.
* chaton-poster (poster-main): Adapted to use the locking primitive
in chaton.scm. Wrapped main code with define-module for
testing.
* chaton.js: If the user is scrolling up to read past messages,
do not scroll to botton when contents is added. (Thanks to
Toru Hisai for the hint).
* chaton-archiver (filter-entry): Adapted to the new data file
format.
2009-05-06 Shiro Kawai <[email protected]>
* chaton.js (initViewFrame), chaton-viewer (make-skeleton): Put
one trampoline of setTimeout before start fetching the content
into iframe; Safari apparently doesn't like the JapaScript open
Comet connection within the onLoad handler (the browser window
stays "loading..." state.)
* chaton-viewer (emit-tail), chaton.js (fetchContent): Manage clients
using clients ids. If no status change, ping back to a client
in much longer time (~5min) than before (~45sec) for less traffic.
Also tracks # of clients more precisely, though there is some
delay involved.
* chaton-poster (make-entry): Record remote IP as well.
* chaton.scm (chaton-render-1): Adapted to the new entry.
* chaton.js (enablePost): moves focus forcibly to fix a weird
behavior of dissapearing cursor in the textarea.
* chaton-archiver (chore-for-the-day): Create a link two days
advance. Because we can't start archiving data for, say, 1/10,
until it's 1/11, and at that moment we need 1/11's link has to
be already created. Who create that link? The archiver process
that ran 1/10, which archived the data for 1/9. Thus we need
to create link for two days beyond the date we're archiving.
* chaton-viewer: Added -r option (restart) and -c option (check)
for ease of server management.
2009-05-05 Shiro Kawai <[email protected]>
* chaton-viewer (emit-tail, spawn-monitor): fixed *mutex* treatment.
(emit-skeleton): no need to read out *text-map* yet.
(main): Added graceful termination by signalling, write pid file
for management, and -k option to kill the running server.
* build-site: Check if chaton.js needs to be updated, and if not,
do not replace chaton.js (and the viewer's version).
* chaton-browser (make-page): Changed title display.
* chaton-archiver, chaton-viewer, chaton-browser, chaton-poster:
Changed current.dat and archive directory under $DATADIR/data/,
and log directory under $DATADIR/logs/, respectievly. Since
the directory where current.dat exists must be writable from
CGI scripts, it is safe to put them into a subdir so that
we can secure $DATADIR itself.
* build-site (do-build): Ensure new directory strcuture, and
also create the data files if it does not exist.
* chaton.js: Sets nickname cookie even post-text is empty; allowing
the client to change nickname without actually posting a message.