LogJam 4.6.0 OPTIONAL patch: Alternate menu structure


Here's the third of my patches.  This one should probably be optional, which is why I've posted it separately from the other two.  It adds no functionality as such to LogJam, aside from adding two accelerators (Ctl-I for Insert Image and Ctl-D for Open Draft); it's primarily a usability patch that rearranges the top-level menus into an order I find more intuitive.  I always found the out-of-the-box top-level menu order in LogJam awkward and clumsy.  I was constantly having to hunt back and forth on the bar for the menu I wanted, because they were placed with no apparent rhyme or reason, and after a couple of weeks of using it (about eight years ago now) I gave up, went into the code, and patched it to rearrange the menus in an order I found more usable.

This patch leaves the LogJam and Edit menus first, where they belong as standard menus that are always first in every application that has them.  It then arranges the remaining menus in order of increasingly fine detail from left to right: View (application-global UI settings), Journal (selection of journals and operations on specific journals), Entry (actions on the current entry within a journal), Insert (insert high-level objects into the active entry), and last of all HTML (insert individual HTML formatting tags into the active entry).

Not every user will want this patch, but I find LogJam much easier to use with this modification, and wanted to put it out there in the event that other users want to try it.

  • Current Music
    Billy Joel :: Storm Front :: When In Rome (04:50)

LogJam 4.6.0 patches: Comment screening, HTML tags


Here is a patch (in gzipped Unix unified diff format) which adds a comment-screening control to LogJam 4.6.0.  This first one should be a completely straightforward issue.

This second patch adds a large number of additional HTML tags to the HTML menu, in support of which it modifies the html_mark_tag() function to properly handle the <span> tag.

(This could technically be extended to handle any other tag with arguments, such as <div style=...>, but that would quickly get ridiculous.  <span> itself is necessary because <span style=...> is the only reasonable way to do small-caps formatting.)

  • Current Music
    Assemblage 23 :: Failure :: I Am The Rain (06:40)

current patchset (pending2)

It's just an announcement about work which was done on top of last logjam sources.
To download patches use following link: http://github.com/andy-shev/LogJam/commits/pending2/

Andy Shevchenko (17):
Adds titles to links and images and link to images
Add context menu support in the dock (v2)
Allow start logjam in system tray (no main window)
No quit in docked mode
Close main window just after send
Tags support
Enable threading where we really need it only
Add 'Location' support to the logjam
Show login history
Add MPRIS support to detect current music (v2)
Enable "keep drafts" functionality
Add possibility to insert link by nickname
Add automake-1.11 to autogen.sh
Add support of the User-Agent header
Explicit requirement of libX11 to be linked with
Fix MusicSource enum and corresponding logic
Add helper to detect music for Banshee player


After a week and a half or so banging on hardware, I got back to my LogJam updates.  Since auto-crosspost is not available to standalone clients and doesn’t sound likely to be so any time soon, I’ve removed the code for that.  About the one thing I still need to do is find a good, clean way to be able to extract the site hostname (which turns out to be surprisingly difficult to get at in the LogJam data structures) so that LogJam knows whether to use and submit the adult_content_reason property (Dreamwidth only), whether to ask for a site field (Dreamwidth only) in <lj user=“”> tags, and whether to use <lj-cut text=“”> (on LiveJournal, InsaneJournal, GreatestJournal etc) or <cut text=“”> (on Dreamwidth).

As previously noted, I may also need to revisit the issue of templating; template storage probably needs to be moved up at least one level, from specific LiveJournal sites to the level of all-LiveJournal-compatible servers.  That’s a separate issue from getting LogJam working properly on Dreamwidth though.

I’ve occasionally run into a problem in which trying to re-open a post for editing results in a failed request with unrecognized headers from the server.  I haven’t fully diagnosed this yet.

  • Current Music
    Hawklords :::: 25 Years On :::: 25 Years  [ddj]

Templates not so solved

I’ve discovered that there’s a functional problem with my “keep drafts” workaround for implementing templates.  In short, the problem is that drafts are server-specific, while templates really should be global.

I’m clearly going to have to revisit this.

  • Current Music
    Asia :::: Asia :::: Sole Survivor  [ddj]

Logjam and Dreamwidth

This question is primarily for Evan, but anyone else feel free to jump in ...

I’ve just begun the process of extending LogJam to work on Dreamwidth by adding the additional fields to support the auto-crossposting feature of Dreamwidth.  This of course requires that I modify liblivejournal to add the additional fields, during which I noticed that the liblivejournal code I currently have does not support the adult-content field of Livejournal.  So livejournal needs support added for the adult-content selector, while dreamwidth needs support added for auto-crossport, age-restrict (Dreamwidth’s version of LJ’s “adult content”), and restriction reason.  (It may also be necessary to have support for the list of crosspost sites, or that may have to be left — for now — to whatever default is set in your Dreamwidth journal.)

Here’s the key question:

Is it intended that the correct way to do this is to create a liblivejournal/dreamwidth directory under protocol, copy the liblivejournal/livejournal code to it, and make the dreamwidth-specific changes there?  Or should I keep it all in one place and make the code conditional on which server is being accessed?

  • Current Music
    Makem & Clancy :::: The Makem & Clancy Collection :::: The Dutchman  [ddj]
  • evan

logjam on git

I checked out the old tree, got it building again (the old autogen.sh script didn't work in the presence of automake 1.10!) and imported it into git. Kinda brings back memories -- I spent so much time on this project back in college and I haven't looked at the code in years!

The canonical repo is now:
I've updated the website.

Ideally someone who cares about LogJam will fork that and start applying patches to it. Once that happens, please announce it here.

Otherwise, you can send me some pull requests via github or mail patches to evan@livejournal.com. I'm sorry I haven't had time to look through all the patches on this community already -- I literally haven't thought about this code in years.

fix inconveniences with tags

If you are using logjam from Fedora distribution or you have applied tags patch, you probably observe few inconveniences with it, like when you push the '...' button in tags bar the early typed tags are just cleaned up. So, proposed patch fixes this behaviour: tags are added to the tree view and marked by red color if you have no such tag saved under your account in network.

MPRIS support

There is a patch which implements first step to support MPRIS (detecting current music and so on).
I have tested it on Fedora 10.
Disadvantages are:
- somehow randomly choosed player (if you have more then one playing)
- still needs manual refreshing for current song
So, enjoy!