-
Notifications
You must be signed in to change notification settings - Fork 3
/
README
41 lines (36 loc) · 1.75 KB
/
README
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
2011-01-21
This code was originally derived from the old Python icb client code from
http://a.armory.com/~zenomt/icb.py
That code did not originally have a license on it (eek!) when I forked
it to start this project. A BSD style license was later added by the
author and has since been added and adopted here.
Status:
* skimpy bones, differences from the old icb.py so far are:
- Requires Python 3.1 or later to run.
(how's that for keeping the rabble away?)
- No longer word wraps long lines coming from other people as that
breaks URLs.
- It word wraps your own longer than 239 char lines into multiple
messages. Input is capped at 2x that limit anyways (no spammies).
- It shortens long URLs in your own lines using goo.gl.
- It prefixes openmsg and privmsg lines with a timestamp.
- It periodically sends a ping over the connection to avoid NAT
timeouts from dropping it while everyone is at a cocktail party.
TODO list:
* Refactoring and code improvements:
- Refactor the long if/elif blocks to method dispatch.
- Add unittests for much of the old code.
* URL shortening:
- Optionally goo.gl incoming URLs (is that wise?).
- On goo.gl shortened URLs include a (note.com) mention after them with
the original domain name if it is not rediculiously long.
* Implementation and usability improvements:
- Intelligently word wrap incoming text by detecting URLs and never
breaking them for optimal cut and paste action.
- Investigate using readline. That the ancient code implements its own
basic input & line editing is sad.
- Move the network IO and update of the chat log into its own thread
and scrolling region so that a partially typed message doesn't cause
a backlog of scroll.
Gregory P. Smith