about summary refs log tree commit homepage
DateCommit message (Collapse)
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-17www: simplify parameter passing to feed
No need to create a new hash when we can reuse the existing one more.
2015-08-17WWW: eliminate "top" parameter for feeds
This parameter hasn't been used since commit 5adf8d639e9b5abd4cbac975d70ddc0fb76541fc ("feed: dead code elimination around dropped endpoints")
2015-08-17favor /t/ to /s/, since subjects may change mid-thread
/t/ always falls back to subject path searching anyways, so there's little lost besides perhaps more readable URLs. Unfortunately people still use non-compliant mail clients which fail to set In-Reply-To or References headers :<
2015-08-17feed: remove unnecesary time paramenter in index state
We no longer do "smart" time displays as of commit ea0e8649f90d1fd0850a41c0ca16642faadf4f14 ("view: simplify timestamp generation"). In retrospect, that commit also made us more cache-friendly, too.
2015-08-17skip search test if search support is missing
We will not require Search::Xapian to be installed.
2015-08-17Merge remote-tracking branch 'origin/search'
* origin/search: view: deduplicate common code for loading search results SearchMsg: ensure metadata for ghost messages mid implement /s/$SUBJECT_PATH.html lookups search: remove unnecessary xpfx export www: /t/$MESSAGE_ID.html for threads view: hoist out index_walk function view: reply threading adjustment thread: common sorting code view: display replies in per-message view search: make search results more OO extract redundant Message-ID handling code search: implement index_sync to fixup indexer initial search backend implementation
2015-08-16view: kill leading empty lines correctly
Was too sleepy to be coding last night :x
2015-08-16view: cleaner killing of leading/trailing whitespace
No point in wasting bytes even if gets compressed over the wire, it'll use more memory when rendering on the client.
2015-08-16view: hoist out index_walk function
We will reuse it for thread views when powered by Xapian.
2015-08-16view: deduplicate common code for loading search results
More to come later.
2015-08-16SearchMsg: ensure metadata for ghost messages mid
Ghosts have no document data in them. Perhaps we should just rely on terms for Message-ID and avoid storing that in the document data...
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-16search: remove unnecessary xpfx export
SearchMsg calls it with the full module path anyways.
2015-08-16www: /t/$MESSAGE_ID.html for threads
This should bring up nearly the entire thread a given Message-ID is linked to.
2015-08-16view: hoist out index_walk function
We will reuse it for thread views when powered by Xapian.
2015-08-16view: reply threading adjustment
Give changes in subject their own line to reduce line wrapping, but avoid showing any redundant subjects by maintaining a hash of subjects already displayed.
2015-08-15thread: common sorting code
We'll be sharing the same threading, so it makes sense to sort replies using the same code and message headers without repeating ourselves. This also standardizes on sorting on X-PI-TS (Unix epoch in seconds) instead over using X-PI-Date differently in two different places
2015-08-15view: display replies in per-message view
This can be used to quickly scan for replies in a message without displaying an entire thread.
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-15extract redundant Message-ID handling code
Quit repeating ourselves and use a common MID module instead.
2015-08-15search: implement index_sync to fixup indexer
We need to make the indexer executable and installable while we're at it.
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-08-05view: remove unused $enc_mime Encoding object
Unneeded since commit e022d3377fd2c50fd9931bf96394728958a90bf3 ("huge refactor of encoding handling")
2015-08-05view: pass fallback encoding to enc_for
This fixes the fallback to message encoding if the message itself was not UTF-8
2015-08-02public-inbox-learn: preserve headers for ham injection
We must inject headers properly for injecting ham, otherwise List-Id headers get dropped.
2015-07-29view: simplify timestamp generation
It's seems less ambiguous to parse a consistent in quiet lists where messages are sparse.
2015-07-20feed: extract subroutines for threading
We'll be using this in the future for displaying per-thread views.
2015-07-14scripts/dc-dlvr.pre: ensure stderr gets back to the MTA
We want to be able to reject errors back to the MTA.
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-06feed: compile regexps only once
This avoids some runtime penalties associated with recompiling a regexp based on a constant local variable.
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.
2015-07-06feed: close body tag correctly in index
Oops, noticed by manual inspection. One day we'll run tidy in tests to validate.
2015-06-05public-inbox-mda: preserve SpamAssassin headers in spam
We want to be able to prioritize spam downstream to check for borderline cases.
2015-03-04view: fix linkification and quote-folding conflicts
We can't add newlines to links, unfortunately, because quote-folding is line-based and (being regexp-based) needs to happen after linkification.
2015-02-09view: generate links for common protocols in browsers
SpamAssassin queries URI blacklists, so it's probably OK to enable this without being used as a linkfarm.
2015-02-09doc/design_www: remove item for auto-generated links
SpamAssassin queries URI blacklists, so it's probably OK to start generating links in the future...
2015-01-12import_slrnspool: fork a process for each message
This prevents process growth when importing large messages. Memory growth could be due to the sliding sbrk window in glibc malloc or a circular reference in the Email::* Perl code somewhere.
2015-01-11import_slrnspool: load private config key
PublicInbox::Config->lookup won't return unknown keys
2015-01-11import_slrnspool: graceful exit for interruptibility
This should alleviate fears of interrupting the process.
2015-01-11import_slrnspool: make filtering optional
2015-01-11import_slrnspool: use ssoma-mda instead
Some mailing lists (e.g. git@vger.kernel.org) accept messages via Bcc: and possibly other things which get rejected by the strict PublicInbox::Filter rules. So rely on ssoma-mda instead. This prefers a recent revision of ssoma-mda (commit 7fce38e9 onwards) to display subject/author/date information in the commit message.
2015-01-11.gitignore: relax MYMETA pattern
Newer systems may use .json instead of .yml
2015-01-11filter: handle missing Content-Type
Some mailers may omit the Content-Type header entirely, so do detection and try to get the message through.
2015-01-11*slrnspool* old gmane archives set Original-To
Apparently it's not a problem with recent archives.
2015-01-11import_slrnspool: fix off-by-one error
We start with zero and only store the next valid ID.
2015-01-11scripts/import_slrnspool: new incremental importer
This allows incremental imports of slrn spools, ideal for tracking lists via gmane.
2014-12-22doc: generate README.html instead of index.html
This allows us to generate links without caring about discoverability and remains reasonably WYSIWYG for folks editing our documentation in their favorite $EDITOR
2014-12-22Documentation/txt2pre: support #fragments and ftp://
Occasionally we'll use these for links.