GitXplorerGitXplorer
g

icbhead

public
5 stars
3 forks
0 issues

Commits

List of commits on branch master.
Unverified
6d5664903343155b4c2574911135a80791887a2b

Support IPv6 servers. LOL given nothing icb is.

ggpshead committed 5 years ago
Unverified
92017160da97945dbea72416193034a1ea2b5d3d

Mention the BSD license.

ggpshead committed 10 years ago
Unverified
c54208f572009f96b1ce4385db8c794e649b443f

Add the BSD license. The original icb.py did not include a license

ggpshead committed 10 years ago
Unverified
8fcd729a11a34bccec90f94389fb9147abea7782

docstring typo

ggpshead committed 12 years ago
Unverified
c26b7b9adc854773385311598a8321775c1a18fe

Fix note being used before assignment in case an exception occurs.

ggpshead committed 13 years ago
Unverified
ceceef42afab6b00db682affe0adf4e0b17602ea

Include notes with shortened URLs to provide some context as to where

ggpshead committed 14 years ago

README

The README file for this repository.

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 greg@krypto.org