tazweb annotate data/bookmarks.cgi @ rev 161

Allow IP v6 localhost address to bookmarks work; change "Bookmarks" icon; "cleanse pixmaps" action.
author Aleksej Bobylev <al.bobylev@gmail.com>
date Mon Nov 03 00:47:25 2014 +0200 (2014-11-03)
parents 68248b2673dd
children
rev   line source
pankso@141 1 #!/bin/sh
pankso@141 2 #
pankso@141 3 # TazWeb Bookmarks CGI handler
pankso@141 4 # Copyright (C) 2014 SliTaz GNU/Linux - BSD License
pankso@141 5 #
pankso@141 6 . /usr/lib/slitaz/httphelper.sh
pankso@141 7
pankso@141 8 script="$SCRIPT_NAME"
pankso@141 9 home="$(GET home)"
pankso@141 10 user="$(basename $home)"
pankso@141 11 config="/home/$user/.config/tazweb"
pankso@141 12 bookmarks="$config/bookmarks.txt"
pankso@141 13
pankso@141 14 # Security check
al@161 15 case $REMOTE_ADDR in
al@161 16 127.0.0.1|\[::ffff:127.0.0.1\]) ;;
al@161 17 *) header; echo "Security exit! Your IP: $REMOTE_ADDR"; exit 1
al@161 18 esac
pankso@141 19
pankso@141 20 # HTML 5 header with built-in minimal CSS
pankso@141 21 html_header() {
pankso@141 22 cat << EOT
pankso@141 23 <!DOCTYPE html>
pankso@141 24 <html lang="en">
pankso@141 25 <head>
pankso@141 26 <meta charset="utf-8" />
pankso@141 27 <title>TazWeb - Bookmarks</title>
pankso@141 28 <style type="text/css">
pankso@141 29 body { margin: 2% 10%; } .rm { color: #666; } ul { padding: 0; }
pankso@141 30 .rm:hover { text-decoration: none; color: #B70000; }
pankso@141 31 h1 { color: #666; border-bottom: 4px solid #666; }
pankso@141 32 a { text-decoration: none; } a:hover { text-decoration: underline; }
pankso@141 33 li { list-style-type: none; color: #666; line-height: 1.4em; padding: 0; }
pankso@141 34 footer { font-size: 80%; border-top: 2px solid #666; padding: 5px 0; }
pankso@149 35 textarea { width: 100%; height: 240px; font-size: 98%; }
pankso@141 36 </style>
pankso@141 37 </head>
pankso@141 38 <body>
pankso@141 39 <section id="content">
pankso@141 40
pankso@141 41 EOT
pankso@141 42 }
pankso@141 43
pankso@141 44 # HTML 5 footer
pankso@141 45 html_footer() {
pankso@141 46 cat << EOT
pankso@141 47
pankso@141 48 </section>
pankso@141 49
pankso@141 50 <footer>
pankso@149 51 <a href="$script?home=$home">Bookmarks</a>
pankso@149 52 - <a href="$script?raw&amp;home=$home">Raw</a>
pankso@149 53 - <a href="$script?edit&amp;home=$home">Edit</a>
pankso@141 54 </footer>
pankso@141 55
pankso@141 56 </body>
pankso@141 57 </html>
pankso@141 58 EOT
pankso@141 59 }
pankso@141 60
pankso@141 61 # Handle GET actions: continue or exit
pankso@141 62
pankso@141 63 case " $(GET) " in
pankso@149 64
pankso@149 65 *\ edit\ *)
pankso@149 66 header
pankso@149 67 html_header
pankso@149 68 cat << EOT
pankso@149 69 <h1>Bookmarks Edit</h1>
pankso@149 70 <form method="get" action="$script" name="edit">
pankso@149 71 <input type="hidden" name="save" />
pankso@149 72 <input type="hidden" name="home" value="$home" />
pankso@149 73 <textarea name="content">$(cat "$bookmarks")</textarea>
pankso@149 74 <p><input type="submit" value="$(gettext "Save bookmarks")" /></p>
pankso@149 75 </form>
pankso@149 76 EOT
pankso@149 77 html_footer && exit 0 ;;
pankso@149 78
pankso@149 79 *\ save\ *)
pankso@149 80 sed "s/$(echo -en '\r') /\n/g" > ${bookmarks} << EOT
pankso@149 81 $(GET content)
pankso@149 82 EOT
pankso@149 83 ;;
pankso@149 84
pankso@141 85 *\ raw\ *)
pankso@141 86 # View bookmarks file
pankso@141 87 header
pankso@141 88 html_header
pankso@149 89 echo '<h1>Raw Bookmarks</h1>'
pankso@149 90 echo "<pre>"
pankso@149 91 IFS="|"
pankso@149 92 cat ${bookmarks} | cat ${bookmarks} | while read title url null
pankso@149 93 do
pankso@149 94 echo "$title | <a href='$url'>$url</a>"
pankso@149 95 done
pankso@149 96 unset IFS
pankso@141 97 echo "</pre>"
pankso@141 98 html_footer && exit 0 ;;
pankso@149 99
pankso@141 100 *\ rm\ *)
paul@144 101 # Remove a bookmark item and continue
pankso@141 102 url=$(GET rm)
pankso@141 103 [ "$url" ] || continue
pankso@141 104 sed -i s"#.*${url}.*##" ${bookmarks}
pankso@141 105 sed -i "/^$/"d ${bookmarks} ;;
pankso@149 106
pankso@141 107 esac
pankso@141 108
pankso@141 109 # Show all bookmarks
pankso@141 110 header
pankso@141 111 html_header
pankso@141 112 echo '<h1>TazWeb Bookmarks</h1>'
pankso@141 113 echo '<ul>'
pankso@141 114 IFS="|"
pankso@141 115 cat ${bookmarks} | while read title url null
pankso@141 116 do
pankso@141 117 cat << EOT
pankso@141 118 <li><a class="rm" href="?rm=$url&amp;home=$home">&otimes;<a/>
pankso@141 119 <a href="${url}">${title}<a/></li>
pankso@141 120 EOT
pankso@141 121 done
pankso@141 122 unset IFS
pankso@141 123 echo '</ul>'
pankso@141 124 html_footer
pankso@141 125
pankso@141 126 exit 0