C H A R M
What is Charm?
Features
Compatibility
Version History
Manual
Project Page
Downloads
LJcharm Community
Author
[ text-only mode ]
|
Why should you use Charm?
- Charm is an entirely text-based client. Consequently, its system and
hardware requirements are negligible; you just need something that
supports the Python interpreter.
- Charm has equal facility across a broad spectrum of blogging platforms.
It has full-fledged support for LiveJournal-based sites, but it also
supports the Atom API (for Blogger) and the MetaWeb API (for Wordpress,
Movable Type, and so on). Atom support requires that you have the
Feedparse module from http://feedparser.org/ installed.
- Charm contains four major utilities in a single client: menu-driven
posting/editing, "quick" command-line posting, archival, and
friends-checking.
- Normal, menu-driven mode. Charm uses menus of single-letter commands,
and is thus easy to use. There's a full array of post and edit options.
- "Quick" mode. Command-line-only, reading the body of the post from
stdin. This allows very fast posting for casual use. But it also
allows input to be piped to a post or taken from an arbitrary file,
for filter-like uses. Thus, you could take some text, pipe it to the
Enchefferizer (the "Swedish chef" text converter), or to a text-to-HTML
converter like Markdown or Textile, and that pipe that to Charm for
posting to your journal.
- Friends-checking tool. Background polling mode for friend updates,
displayed like the Unix 'newmail' utility. It can check all friends,
or just specific friend groups. Even if you don't use Charm for
anything else, you might find this useful.
- Mass archiving. This is part of Charm's menu-driven mode. You can
download and save part or all of your journal or a community. This
is another useful standalone feature, particularly since you can set
up your computer to automatically synchronize your offline archive
with your online journal on a nightly basis.
- Charm handles multiple usernames and shared journal access, including
handling profiles for non-LiveJournal accounts (like DeadJournal).
Passwords can optionally be stored/sent as a MD5 hash. It also has the
ability to quickly cross-post between multiple journals/blogs.
- Charm has a full set of features for editing and posting. Anything you
can do from the LiveJournal posting and editing Web pages, you can do
from Charm. Charm can also use an external spellchecker, and it can
invoke external filters to modify the message body.
- You can select moods, journals, picture keywords, friend groups, tags,
etc. from menus. Unlike other console-based clients, you don't have to
type these in; you just pick an option number from a menu.
- Charm supports XMMS-based music detection, if you have the PyXMMS
module from http://www.via.ecp.fr/~flo/ installed.
- You can save, and later resume working on, an entry-in-progress.
You can also save an entry while your computer is offline, and then
quickly post it when you get back online.
- You can set up templates, with default data in each of the fields, along
with a default message body.
- You can select online entries to edit in a flexible manner: most
recent, last N entries, and by date. Choosing entries by date brings up
a calendar of the chosen month, showing the number of posts each day.
- When you post something, there's an option to archive it; you can also
optionally archive edits made to posts already online. The archive
organization is configurable; you can put all posts in one directory,
use subdirectories for each year, and use subdirectories for each
month (under subdirectories for each year).
- Charm fully supports listing, adding, removing, and editing friends and
friends groups.
- Charm supports the LiveJournal administrative console commands, so
you can use it to manage community membership, manage posting access
to shared journals, and manage user bans.
- Charm respects Unix environment variables for default programs.
- Charm has proxy support. Python supports proxies transparently; just set
your HTTP_PROXY environment variable to proxyhost:portnumber.
|