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&home=$home">Raw</a> |
pankso@149 | 53 - <a href="$script?edit&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&home=$home">⊗<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 |