about summary refs log tree commit homepage
path: root/lib
DateCommit message (Collapse)
2014-04-20feed: close string ref before returning
Just in case there is an error, this should be more explicit.
2014-04-20cgi: delay some requires
This shaves off nearly 100ms when my Core2Duo is clocked to 800Mhz when rendering a full HTML index.
2014-04-20feed: speed up blob checks if Git.pm is usable
Git::cat_blob is a handy interface to read multiple emails without incurring fork + exec overhead. Git.pm is GPLv2+, not GPLv2-only, so we may link to it.
2014-04-19mda: share commit setup code with -learn
We need -learn to do many of the same things as -mda when we have a false-positive. We also need -learn to do HTML filtering in case the training user screws up.
2014-04-19move precheck to MDA namespace
We will be combining common code between -learn and -mda
2014-04-19cgi: index pages allow iterating some pagination
This allows WWW readers to slowly page through the entire history of the mailing list.
2014-04-18view: fix regression in standalone /^>$/ lines
The lack of trailing whitespace in quote prefixes threw us off and cause t/view to fail. This failure was caused by commit fefea3d7d2484ffbf433aec0dd80026aa7120e07 ("ensure per-message short quotes do not get too long") and not caught before pushing because I failed to run "make", only "prove" (and not even "prove -l" :x).
2014-04-17ensure per-message short quotes do not get too long
Sometimes a single long word or URL can lengthen the line too much.
2014-04-17cgi: sort HTML index by most recent date
This is hopefully the most user-friendly method.
2014-04-17view: remove pointless self-linkage
It is pointless to link to ourselves.
2014-04-17view: fix title of HTML views
We need to take care to escape everything properly to avoid HTML/JS injections.
2014-04-17view: inline shorter quotes
Breaking up short quote messages at 1 line is too disconcerting, try 5 lines as proper quotes shouldn't be too long.
2014-04-17HTML: various encoding fixups
2014-04-17Feed: add bug note on memory cycle
This affects users of long-lived processes (FastCGI/Plack)
2014-04-15view: finish HTML in per-message pages
2014-04-15cgi: support /all.html page with inline threads
Maybe this increases readability for now.
2014-04-15HTML: use shorter URLs in indices
Long URLs are not needed for HTML pages, but may be for feeds since they're often resyndicated and not consumed by the browser.
2014-04-15HTML: ensure hrefs are quoted properly
We may be breaking some parsers or allowing more breakage to slip through without quotes. We waste some bytes, though.
2014-04-14derive -primary_address in config
This may be useful for generating List-Id headers and HTML pages.
2014-04-14cgi: fix up top-level index
We do not have all messages in the top-level index (and we need to adjust the test while we're at it).
2014-04-11view: trim_message_id consistently
Message-IDs could have embedded '<' and '>'
2014-04-11config: support multiple addresses for a inbox
This makes it possible to gradually migrate to new address in case of list name changes, and is one step closer to operating in "stealth hijack mode" :)
2014-04-11filter: clarify regular expression
I often forget the subtleties of Perl regexps and newlines, so I suspect others do, too. Use explicit capture so it's more familiar to users of non-Perl regexps.
2014-04-11cgi: update feed/view and tests for shorter URLs
Code should be consistent with the design docs (and we will need better tests).
2014-04-11cgi: /$LISTNAME/ and /$LISTNAME/index.html are equal
This prevents ambiguity when switching URLs between static file servers and CGI. The /$LISTNAME/index.html URL appearing in the wild is inevitable because of our static file server support. Worst yet, there's no easy/consistent way to get all installations detect and 301 them to the shorter /$LISTNAME/. So we make the CGI support /$LISTNAME/index.html. The downside of this is the potential duplicate entry in all caches.
2014-04-11filter: use IPC::Run and improve lynx error handling
We may occasionally encounter horrid HTML which lynx cannot handle, so improve error reporting.
2014-04-09config: include listname on lookup
We will be using it when setting GIT_COMMITTER_NAME
2014-04-09preliminary HTML index generation
Using JWZ threading might work decently for this. Haven't checked in lynx, yet.
2014-04-09precheck: stricter checks including min length
We should reject values which are too short to be useful or sane.
2014-04-08precheck: reject messages with no subject
Composers may screw up and leave the subject out, so reject those messages.
2014-04-08feed: filter out each_recent_blob wrapper
We will need it for HTML indices, too.
2014-04-07feed: generate takes a hashref for args
Passing a giant argument list is to error prone and hard-to-document.
2014-04-06view: use "original" rather than "raw"
This wording is probably clearer to everyone, and also used by at least one other mailing list WWW interface.
2014-04-06view: minor cleanups
Avoid adding extraneous whitespace in HTML content, as it increases bandwidth usage of network, disk and memory.
2014-04-06feed: reuse view class to display message
This reduces duplicated/similar code and hopefully makes things more consistent.
2014-04-06view: all content is assumed to be displayable text
Our Filter class now passes through application/octet-stream if it looks like text (because some mailers suck); so we cannot trust the specified Content-Type of a message.
2014-04-05view: use URI::Escape to escape URIs
CGI::escape is not a documented subroutine, so the chances of it going away are higher.
2014-04-05feed: remove unnecessary use
We no longer use DateTime::Format::Mail.
2014-04-05feed: use Date::Parse to parse dates
This is a smaller module dependency-wise and should be easier-to-install for folks with limited packaging systems or network/disk capacity. We do not need very powerful date parsing, as bad date formats are likely the work of spammers.
2014-04-05get a basic CGI feed sender running
We should be able to wire up the rest, soon.
2014-04-05remove failrepo config
We will just use the fallback in Email::Filter to reduce configuration knobs. Failed messages are failed messages, do not classify them beyond that.
2014-04-05view: implement quote folding and flesh out tests
Unfortunately, quoting is often excessive, so hide multi-line quotes by default and provide anchored links to full messages instead.
2014-04-05config: add shortcut for retrieving elements
Hopefully this makes for less ad-hoc hash access in case our config format changes.
2014-04-05view: update IRP and MID links
We'll go with .html and .txt suffixes on MIDs to benefit static hosting setups.
2014-04-05flesh out MDA and simplify config setup
We will be reusing the config parsing code for the CGI script, too.
2014-04-05precheck uses recipient argument
We will also be using the RECIPIENT env in the future, since that takes aliases into account. Reducing the possible callsites to check ENV means we can more easily update the code in the future.
2014-04-04filter: use regexp to check multipart bodies
This should be safer than running file(1), which has had its share of vulnerabilities this year (early 2014) We really only care about diffs and maybe short log files, here.
2014-04-03filter: possibly keep PGP sigs only (not other types)
We may keep PGP signatures for messages we do not modify. However, we have no way of verifying them on the server-side.
2014-03-28filter: use file(1) to detect mime type if octet-stream
Some mailers do not correctly detect/set the Content-Type header; so attempt to keep messages based on our server-detected MIME type if application/octet-stream was specified.
2014-03-28config: revamp API and implement lookup