Home
       sfeed_content - sfeed_curses - sfeed curses UI (now part of sfeed, development is in sfeed)
  HTML git clone git://git.codemadness.org/sfeed_curses
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
       sfeed_content (1210B)
       ---
            1 #!/bin/sh
            2 # Content viewer for sfeed(5) lines.
            3 
            4 # The locale is set to "C" for performance. The input is always UTF-8.
            5 LC_ALL=C awk -F '\t' '
            6 function unescape(s) {
            7         # use the character "\x01" as a temporary replacement for "\".
            8         gsub("\\\\\\\\", "\x01", s);
            9         gsub("\\\\n", "\n", s);
           10         gsub("\\\\t", "\t", s);
           11         gsub("\x01", "\\", s); # restore "\x01" to "\".
           12         return s;
           13 }
           14 BEGIN {
           15         htmlconv = "lynx -stdin -dump " \
           16                 "-underline_links -image_links " \
           17                 "-display_charset=\"utf-8\" -assume_charset=\"utf-8\" ";
           18 }
           19 {
           20         if (previtem)
           21                 print "\f";
           22         previtem = 1;
           23 
           24         print "Title:     " $2;
           25         if (length($7))
           26                 print "Author:    " $7;
           27         if (length($9)) {
           28                 categories = $9;
           29                 gsub("\\|", ", ", categories);
           30                 print "Category:  " categories;
           31         }
           32         if (length($3))
           33                 print "Link:      " $3;
           34         if (length($8))
           35                 print "Enclosure: " $8;
           36         if (!length($4))
           37                 next;
           38         print "";
           39         if ($5 == "html") {
           40                 # use the link of the item as the base URL for relative URLs in
           41                 # HTML content.
           42                 base = $3;
           43                 if (length(base)) {
           44                         gsub("\"", "%22", base); # encode quotes.
           45                         base = "<base href=\"" base "\"/>\n";
           46                 }
           47                 print base unescape($4) | htmlconv;
           48                 close(htmlconv);
           49         } else {
           50                 print unescape($4);
           51         }
           52 }' "$@" | \
           53 ${PAGER:-less -R}