summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-05-15README and sfeed_update: use names (order vs sort) and in the execution orderHiltjo Posthuma
2019-05-15sfeed_opml_export: code-style for whitespace with variablesHiltjo Posthuma
2019-05-12sfeed_update: cleanup proper encoding file (if any)Hiltjo Posthuma
2019-05-11bump version to 0.9.11Hiltjo Posthuma
2019-05-10sfeed_opml_export: optimizeHiltjo Posthuma
Tested using 1000 feeds, took about 20s, now 0.02s. The overhead of sed and printf was too high. Now pipe an intermediate TAB format to awk and print it in one stage.
2019-05-10remove unused variablesHiltjo Posthuma
2019-05-10sfeed_plain: start with timestamp, consistent with sfeed_twtxtHiltjo Posthuma
2019-05-10README: use HTTPS linksHiltjo Posthuma
2019-05-10sfeed: remove support for military zones and simplifyHiltjo Posthuma
see RFC2822 4.3 page 32: " [...] However, because of the error in [RFC822], they SHOULD all be considered equivalent to "-0000" unless there is out-of-band information confirming their meaning. "
2019-05-08Makefile: remove TODOHiltjo Posthuma
2019-05-08remove TODOHiltjo Posthuma
2019-05-08README: add tail-like example in honor of the removed sfeed_tailHiltjo Posthuma
2019-05-06remove sfeed_tail and recently added security considerationsHiltjo Posthuma
... both are out-of-scope for sfeed. - sfeed_tail can be written as some simple customized awk script reading from a FIFO. The C version did not work well on FIFO's. - Security considerations are mentioned in the official HTML spec and applies to all HTML and protocol handlers, so is out-of-scope.
2019-05-03bump version to 0.9.10Hiltjo Posthuma
2019-05-02README: reword a bitHiltjo Posthuma
2019-05-02README: fix typo in pathHiltjo Posthuma
2019-05-02sfeed_update: disable If-Modified-Since by defaultHiltjo Posthuma
2019-05-02sfeed: improve content type (attribute) handlingHiltjo Posthuma
- handle type attribute for MRSS media:description, media:description type="plain" is now parsed properly. - handle default content-types per tag now. - when multiple content-like fields are specified use the proper content-type. - be flexible about type attribute handling. - minor code tweaks.
2019-05-02sfeed.{1,5}: reword "saved" to outputHiltjo Posthuma
this program does not store anything, but just write to stdout.
2019-05-02README: add security considerations, tweak preface a bitHiltjo Posthuma
2019-04-30improve READMEHiltjo Posthuma
- add preface text. - use "\t" pattern for awk (easier to read and copy-paste). - add a small example to get the most recent enclosure.
2019-04-30sfeed_frames, sfeed_html: use the same code for link handlingHiltjo Posthuma
2019-04-30sfeed_gph: when a link is empty show as regular textHiltjo Posthuma
2019-04-25bump version to 0.9.9Hiltjo Posthuma
2019-04-25sfeed_atom: add content too (for completeness)Hiltjo Posthuma
2019-04-25sfeed_mbox: use simpler djb2 hash, fix message-id as intendedHiltjo Posthuma
The message-id has not been working as intended for a while. It only hashed the timestamp field because parseline() modifies the buffer in-place.
2019-04-25util: small code-style fixHiltjo Posthuma
2019-04-22README: fix tiny formatting whitespaceHiltjo Posthuma
2019-04-22sfeed_atom: if the link is empty, don't print itHiltjo Posthuma
2019-04-21sfeed_mbox: show enclosure url when it is non-emptyHiltjo Posthuma
2019-04-21util: keep brackets when parsing IPv6 addressesHiltjo Posthuma
2019-04-20README: add sfeed_atom aggregate feed exampleHiltjo Posthuma
2019-04-20add sfeed_atom: convert one or more feeds from TSV (back to) AtomHiltjo Posthuma
2019-04-20README: update filter exampleHiltjo Posthuma
- Show how to filter protocol schemes more strictly. For example to allow only http://, https:// and gopher:// (not file://, javascript:, etc). - Filter links and now also enclosures.
2019-04-20sfeed_frames, sfeed_html: do not send referer headerHiltjo Posthuma
Do not send referer header if the browser supports this tag. This makes sure in some browsers where referer hiding is not setup this header is still hidden. The proper way is to setup your browser environment however to strip/change the referer header and trim your browser footprint.
2019-04-15util: remove unneeded err.h headerHiltjo Posthuma
2019-04-14sfeed_update: fix typo in commentHiltjo Posthuma
2019-04-14sfeed_update: rename fetchfeed to fetchHiltjo Posthuma
... and simplify example in README.
2019-04-14sfeed_tail: rename "line" to "l" in local scopeHiltjo Posthuma
char *line is a global variable (reused pointer to line buffer).
2019-04-14sfeed: add support for the first enclosure of an itemHiltjo Posthuma
This is useful for example for podcasts (audio attachment), newsposts (usually some image) or comic strips (link to page, image as enclosure). thanks leot for the feedback!
2019-04-14sfeed_update improvementsHiltjo Posthuma
- Better checking and verbose logging (on failure) of each stage: fetchfeed, filter, merge, order, convertencoding. This makes sure on out-of-memory, disk-space or other resource limits the output is not corrupted. - This also has the added advantage it runs less processes (piped) at the same time. - Clear previous unneeded file to preserve space in /tmp (/tmp is often mounted as mfs/tmpfs). - Add logging function (able to override), use more logical logging format (pun intended). - Code-style: order overridable functions in execution order.
2019-04-07README: change procmail parallel running, improve some wordsHiltjo Posthuma
make the procmail example safer due to account process limits.
2019-04-07Makefile: fix make dist (compat src: strlcpy, strlcat)Hiltjo Posthuma
2019-04-06optimization: define GETNEXT as an inline macroHiltjo Posthuma
This reduces much function call overhead. getnext is defined in xml.h for inline optimization. sfeed only uses one XML parser context per program, this allows further optimizations of the compiler also. On OpenBSD it was noticable because of retpoline etc function call overhead. Using clang and a 500MB test XML file reduces processing time from +- 12s to 5s. Tested using some crazy optimization flags: SFEED_CFLAGS = -O3 -std=c99 -DGETNEXT=getchar_unlocked -fno-ret-protector \ -mno-retpoline -static A GETNEXT macro is also nice for programs which mmap(2) some big XML file. Then you can simply define: #define GETNEXT() (off >= len ? EOF : reg[off++])
2019-04-06sfeed_frames/sfeed_html: improve HTML output a bitHiltjo Posthuma
declare UTF-8 before <title>
2019-04-06util: remove unnecesary cast and initializationHiltjo Posthuma
2019-04-06sfeed: gettag: simplify and use ANSI bsearch()Hiltjo Posthuma
2019-04-06Makefile: make it simpler to not compile compat objectsHiltjo Posthuma
on OpenBSD: make COMPATOBJ=
2019-03-16xml: write x->getnext to a default GETNEXT macroHiltjo Posthuma
this allows to override x->getnext to expand to global context parsing and allows the compiler to optimize this inline. also remove checking if the x->getnext function exists (just crash hard).
2019-03-08util: pedantic snprintf improvementHiltjo Posthuma
POSIX says about snprintf: "If an output error was encountered, these functions shall return a negative value". So check for < 0 instead of -1. Afaik all implementations return -1 though.