]> git.plutz.net Git - busy/blobdiff - Home.page
implemented news search
[busy] / Home.page
index 5c44184e5d119554237a7b05642db0f9f4f11b5f..ba0fbe263358c2f2443585528b0c7015f27ec816 100644 (file)
--- a/Home.page
+++ b/Home.page
@@ -1,7 +1,28 @@
 #!/bin/zsh
+search="$(egrep -o '(^|&)(s=).+(&|$)' <<<"${QUERY_STRING}" |sed -r 's:^&?s=::;s:\+: :g;s:%:\\x:g')"
+search="$(echo -e "${search}" |sed 's:\t: :g;s:\r::g;s:\\:\\\\:g' |head -n1)"
 
-cat <<HomeEND
+cat <<WikiEND
   <div id="LEFT">
+    <form method="GET" action="/${SCRIPTNAME}" accept-charset="utf-8">
+      <input type="hidden" name="p" value="Home">
+      <input type="text" name="s" placeholder="Search"><br>
+      <input type="submit" value="Search News">
+    </form>
+    <hr>
+WikiEND
+if [ -n "$search" ]; then
+  echo "<h1>News search results for: $search</h1>"
+  for each in $(grep -ile "$search" Home/<0000000000-9999999999>_<000-999>.news); do
+    id=$(sed -r 's:^.*/::;s:.news$::' <<<$each)
+    echo "<div class='search'><a href='#news_$id'><h2>$(date -d @$(cut -d_ -f1 <<<"$id"))</h2></a>"
+    grep -C1 -ie "$search" "$each" |sed "s:$search:<b>&</b>:g;s:$:<br>:g"
+    echo '</div>'
+  done
+  echo '<hr>'
+fi
+
+cat <<HomeEND
   </div>
 
   <div id="MAIN">