about summary refs log tree commit homepage
path: root/t
DateCommit message (Collapse)
2015-09-15msgmap: add message mapping via SQLite
This will allow us to maintain stable article numbers for an NNTP server independently of Xapian.
2015-09-06update copyright headers and email addresses
In the future, it should be possible to use this: git ls-files | UPDATE_COPYRIGHT_HOLDER='all contributors' \ UPDATE_COPYRIGHT_USE_INTERVALS=2 \ xargs /path/to/gnulib/build-aux/update-copyright
2015-09-03feed: use application/atom+xml for Content-Type
This is the correct Content-Type for Atom feeds, especially since we updated to use ".atom" as the suffix.
2015-09-03ExtMsg: 300 to external mailing list archives
Since cross-posting is inevitable, we shall link to external message archives for interopability.
2015-09-03search: disable Message-ID compression in Xapian
We'll continue to compress long Message-IDs in URLs (which we know about), but we will store entire Message-IDs in the Xapian database to facilitate ease-of-lookups in external databases.
2015-09-01completely revamp URL structure to shorten permalinks
This allows common /m/ links to be used without a prefix, saving 2 precious bytes for permalinks and raw messages. Old URLs continue to redirect.
2015-09-01www: root atom feed is "new.atom" and not "atom.xml"
The MIME type entry for Atom feed relies on "atom", so allow properly-configured static file servers to serve it with the correct Content-Type header.
2015-09-01implement per-thread Atom feeds
This allows users to subscribe to only a single thread with their feed reader without subscribing to the rest of the thread. Update our endpoint notes while we're at it.
2015-08-30search: do not index references and inreplyto terms
We no longer need them, as we can rely on index-time thread resolution and thread merging. This allows us to index less data and hopefully increase efficiency.
2015-08-27implement legacy redirects for old URLs
We should not break existing URLs. Redirect them to the newer, less-ambiguous URLs to improve cache hit ratios.
2015-08-27wire up to display non-suffixed Message-ID links
These URLs are preferable in case somebody decides to get cute and use a suffix we would've used to prevent others from linking to their message. The common /m/$MESSAGE_ID/ URLs are now 4 characters shorter so may fit better on terminals.
2015-08-27wire up shorter, less ambiguous URLs
We will prefer URLs without suffixes for now to avoid ambiguity in case a Message-ID ends with ".html", ".txt", ".mbox.gz" or any other suffix we may use. Static file compatibility is preserved by using a trailing slash as most servers can/will fall back to an index.html file in this case. For raw text files, we will follow gmane's lead with "/raw"
2015-08-25search: implement subject summarization
We ought to summarize subjects to avoid exploding line lengths in the web interface.
2015-08-25mid: mid_compressed => mid_compress
Consistently name mid_* functions as verbs.
2015-08-24view: refactor $state as a hash
Using hash means we no longer have to document and remember what every field does. The original array form was insane premature optimization and crazy. Who wrote that? Oh wait, I was on drugs :<
2015-08-23search: respect core.sharedRepository in for Xapian DB
Extend the purpose of core.sharedRepository to apply to the $GIT_DIR/public-inbox/xapian* directory.
2015-08-22search: split search indexing to a separate file
This makes organization easier and reduces the amount of code loaded for a PSGI, mod_perl or CGI instance.
2015-08-22remove XML::Atom::SimpleFeed dependency
We will attempt to generate Atom feeds "by hand" as the XML::Atom::SimpleFeed API does not support streaming output. Since email is large and servers are small, this should prevent wasting memory when we generate larger feeds. Of course, we hope clients use SAX parsers capable of handling large streams without slurping.
2015-08-22stream HTML views as much as possible
This should allow progressive rendering on the client and reduce memory usage on the server. Unfortunately XML::Atom::SimpleFeed does not yet support streaming, so we may not use it in the future.
2015-08-21search: s/count/total/ for results
This is hopefully less ambiguous, as the word "count" confused me, too.
2015-08-21switch to gzipped mboxes
Mboxes may be huge, so only support downloading gzipped mboxes to save bandwidth and to get free checksumming. Streaming output means we should not be wasting too much memory on this unless the chosen server sucks.
2015-08-21support dumping thread as an mbox
Some folks may not want to download and install Perl code like ssoma, so allow downloading an mbox containing the entire thread.
2015-08-20view: avoid nesting <a> tags from auto-linkification
It is wrong HTML to have <a> tags nested due to auto-linkification.
2015-08-18search: avoid creating ghosts for circular References
Some mail software incorrectly creates circular references and causes us to create ghosts before the actual mail doc is created.
2015-08-17search: simplify indexing operation
There's no need to make a transaction for each message when doing incremental indexing against a git repository. While we're at it, simplify the interface for callers, too and do not auto-create the Xapian database if it was not explicitly enabled.
2015-08-17mid: compress Message-IDs with '%' in them
Some HTTP servers (apache2 2.2.22-13+deb7u5) on my system apparently do not handle "%25" correctly. I'm not yet sure if it's something weird with my rewrite rules or what....
2015-08-17drop bodies and messages ASAP after processing
We can rely on reference counting to lower memory usage for big messages.
2015-08-17terminology: replies => followups
Replies are only direct replies, but followups could be any message further down the thread. The latter is more useful.
2015-08-17skip search test if search support is missing
We will not require Search::Xapian to be installed.
2015-08-16implement /s/$SUBJECT_PATH.html lookups
Quick-and-dirty wiring up of to Subject: paths. This may prove more memorizable and easier-to-share than /t/$MESSAGE_ID.html links, but less strict. This changes our schema version to 1, since we now use lower-case subject paths.
2015-08-15search: make search results more OO
This will relieve callers of the need to decode the data we store internally in Xapian
2015-08-13initial search backend implementation
This shall allow us to search for replies/threads more easily.
2015-08-12view: consistent ordering of Cc: addresses
This fixes a minor test failure in t/cgi.t Tested with perl 5.18.2-2ubuntu1 on Ubuntu 14.04.3 LTS
2015-07-14reject HTML loudly and automatically
This should hopefully reduce the delay between when a user fails to send plain-text to when an admin such as myself notices the HTML mail in a sea of spam. Unfortunately, this can lead to backscatter, so avoid doing it until its passed through spamc, at least.
2015-07-06view: reduce empty <a>, use "id" instead of "name" attributes
This is probably more compliant, and saves us a few bytes on the uncompressed HTML.
2014-11-13-learn: nuke HTML portions when training as ham
Sometimes people send HTML email and I forget to fixup in my MUA during moderation. Automatically strip out HTML portions instead.
2014-09-22public-inbox-init: manages the config files
This hopefully allows easier setup.
2014-09-15filter: ensure CRs do not show up in lynx conversions
Unix line endings are LF-only, so do not introduce or preserve CRLF line endings when reading from lynx.
2014-09-13line-wrap generated HTML source around attrs for readability
It's important to keep HTML source readable to folks who prefer to read raw HTML. This should improve readability of the HTML source by keeping line length in check without wasting bytes.
2014-08-28view: increase MAX_INLINE_QUOTED threshold to 12
12 lines is half an 80x24 terminal, so it is probably a reasonable amount to quote. Often 5 lines was not enough for context. This feature is mainly to reduce scrolling necessary to view pages.
2014-08-04t/view: ensure HTML shows QP text
We need to ensure the HTML output is not mangled, either.
2014-08-04filter: preserve QP when collapsing multipart
HTML clients also tend to send quoted-printable crap in their plain-text parts, preserve that so it's displayed correctly for all QP-capable handlers.
2014-06-28t/html_index.t: fix warnings in test case
Oops.
2014-05-02view: API cleanup, remove "as_" prefix
These views are not OO, so the "as_" prefix makes little sense and "as_html" conflicts with Hval, which is OO.
2014-05-01split out WWW package and CGI/PSGI-specific parts
This should allow us to more-easily test with Plack.
2014-04-28mda: support aliased addresses
This mimics functionality found in -learn. Originally the design allowed for only one address per-list, but when migrating/hijacking existing mailing lists, having multiple addresses map to the same inbox is useful.
2014-04-27Feed: <id> element must be a URI, oops :x
For each feed element, we'll just use the link since there's currently no suitable URN.
2014-04-26huge refactor of encoding handling
Hopefully this simplifies and corrects our usage of Perl encoding APIs.
2014-04-23t/feed: cleanup test and add test for /f/ link
We already depend on IPC::Run, so just use it our tests.
2014-04-23feed: add tests for <id> element setting
We need to ensure this works This follows commit bd8fd095067b79a0d2a40bbca2b27b923d02b3f8 ("feed: fix address when multiple addresses exist")