summaryrefslogtreecommitdiffstats
path: root/prog/skovikanje/komentar.sh
diff options
context:
space:
mode:
Diffstat (limited to 'prog/skovikanje/komentar.sh')
-rwxr-xr-xprog/skovikanje/komentar.sh102
1 files changed, 75 insertions, 27 deletions
diff --git a/prog/skovikanje/komentar.sh b/prog/skovikanje/komentar.sh
index a007822..8640a19 100755
--- a/prog/skovikanje/komentar.sh
+++ b/prog/skovikanje/komentar.sh
@@ -1,13 +1,26 @@
#!/bin/bash
set -xeuo pipefail
function besedilo () { # <tip -- html> <datoteka> <zaupanje - 0 za html escaping, 1 brez html escapinga> <nesting level>
+ vrstica=1
seznam=1
+ naredilodstavek=0
echo "<div class=besedilo>"
tail -n+2 $2 | while read -r l
do
+ if grep "^$" <<<"$l" > /dev/null
+ then
+ echo "<p>"
+ naredilodstavek=1
+ continue
+ fi
navadno=1
- if grep ^!http <<<"$l" > /dev/null && grep -v \' <<<"$l" > /dev/null
+ if grep ^! <<<"$l" > /dev/null && grep -v \' <<<"$l" > /dev/null
then
+ if [ ! $vrstica -eq 1 ]
+ then
+ [ $naredilodstavek -eq 0 ] && echo "<br>"
+ fi
+ naredilodstavek=0
echo "<img style=max-width:100% src='`sed -e s/!// <<<"$l"`' />"
navadno=0
fi
@@ -18,18 +31,19 @@ function besedilo () { # <tip -- html> <datoteka> <zaupanje - 0 za html escaping
seznam=2
navadno=0
fi
- zelena=0
- if grep '^>' <<<"$l" > /dev/null
+ dodajnakonec=""
+ dodajnazayetek=""
+ if grep '^>[^>]' <<<"$l" > /dev/null
then
- echo "<span style=color:green>"
- zelena=1
+ dodajnazayetek="<span style=color:green>"
+ dodajnakonec="</span>"
fi
[ $seznam -eq 1 ] && echo "</ul>"
if [ $navadno -eq 1 ]
then
if [ $3 -eq 0 ]
then
- tekst=`sed -e 's/</&lt;/g' <<<"$l"`
+ tekst=`sed -e 's/</\&lt;/g' <<<"$l"`
else
tekst=$l
fi
@@ -39,7 +53,7 @@ function besedilo () { # <tip -- html> <datoteka> <zaupanje - 0 za html escaping
fi
if [ $4 -gt 0 ]
then
- for you in `grep -Eo ">>[A-Za-z0-9+-]{8}" <<<"$l"`
+ for you in `grep -Eo ">>[A-Za-z0-9+-]{4}" <<<"$l"`
do
stil="border:1px solid green"
if [ $(($4%2)) -eq 0 ]
@@ -48,59 +62,86 @@ function besedilo () { # <tip -- html> <datoteka> <zaupanje - 0 za html escaping
fi
koment=`komentar $1 $(cut -d\> -f3 <<<$you) $(($4-1))`
echo "<details class=komentar style='$stil'><summary>`head -n1 <<<$koment`</summary>`tail -n+2 <<<$koment`</details>"
-
+ naredilodstavek=1
done
fi
- sed -e 's,\(http[s]*://[A-Za-z0-9._~:/?#@!$&()*+,;=-]*\),<a href="\1">\1</a>,g' <<<"$tekst"
- echo "<br>"
- fi
- if [ $zelena -eq 1 ]
- then
- echo "</span>"
+ if [ ! $vrstica -eq 1 ]
+ then
+ [ $naredilodstavek -eq 0 ] && echo "<br>"
+ fi
+ naredilodstavek=0
+ echo $dodajnazayetek
+ urlregex="[A-Za-z0-9._~%:/?#@!$&()*+,;=-]"
+ sed -Ee "s,http([s]*)://([w.]*)($urlregex*),<a class=raw href='http\1://\2\3'>\3</a>,g" <<<"$tekst"
+ echo "$dodajnakonec"
fi
+ vrstica=$(($vrstica+1))
done
echo "</div>"
}
function komentar () { # tip id nesting-level
- stat komentarji/$2 > /dev/null || { echo komentar ne $3 ne obstaja.; return; }
- echo -n "<a onclick=citiraj('$2')><code>$2</code></a> <b class=avtor>$(head -n1 komentarji/$2 | cut -f2 | cut -d@ -f1 | sed -e 's/</&lt;/g')</b> "
- echo "dne <span class=datum>`date --date @$(stat --format %W komentarji/$2)`</span> <a href=//z.4a.si/skovikanje/komentar.php?koga=$2 target=_blank>uredi</a> <a href=/skovikanje/skovik/$(head -n1 komentarji/$2 | cut -f1).html>na</a>"
+ stat komentarji/$2 > /dev/null || { echo komentar $2 ne obstaja.; return; }
+ echo -n "<i><a href=# onclick=citiraj('$2')><code>$2</code></a> <b class=avtor>$(head -n1 komentarji/$2 | cut -f2 | cut -d@ -f1 | sed -e 's/</&lt;/g')</b> "
+ echo "dne <span class=datum>`date --date @$(stat --format %W komentarji/$2)`</span> <a href=//z.4a.si/skovikanje/komentar.php?koga=$2 target=_blank>uredi</a> <a href=/skovikanje/skovik/$(head -n1 komentarji/$2 | cut -f1).html>na</a></i>"
besedilo $1 komentarji/$2 0 $3
}
if [ $1 = komentar ]
then
komentar $2 $3 5
fi
+function hsc () {
+ sed -e 's/</\&lt;/g' -e "s/'/\&apos;/g" -e 's/"/\&quot;/g'
+}
if [ $1 = objava ]
then
+ metadesc=`tail -n+2 objave/$3 | head -n3 | hsc`
+ if [ `wc -l < objave/$3` -gt 4 ]
+ then
+ metadesc="$metadesc ..."
+ fi
+ naslov=`head -n1 objave/$3 | cut -f1 | hsc`
+ spisal=`head -n1 objave/$3 | cut -f2`
+ if [ $2 = rss ]
+ then
+ echo "<guid isPermaLink='false'>$3</guid><title>$naslov</title><description>$metadesc</description><pubDate>`date --rfc-email --date $spisal`</pubDate><link>$RSS_BASEURL$3.html</link>"
+ exit
+ fi
echo "<meta name=referrer content=unsafe-url />"
if [ $4 -eq 1 ]
then
- echo "<title>`head -n1 objave/$3 | cut -f1`</title>"
+ echo "<title>$naslov :: skovikanje</title>"
+ echo "<meta property=og:title content='$naslov :: skovik' />"
+ echo "<meta property=og:description content='$metadesc' />"
+ if grep "^!" objave/$3 > /dev/null
+ then
+ echo "<meta property=og:image content='`grep "^!" objave/$3 | head -n1 | sed 's/!//'`' />"
+ fi
echo "<h2><a href=..><<< nazaj</a></h2>"
+
fi
- echo "<script>function citiraj(slug) {odgovor.hidden=false;besedilo.value+='>>'+slug+'\n';} </script>"
- echo "<h1 class=naslov>`head -n1 objave/$3 | cut -f1`</h1>"
- echo "<p>spisal <span class=spisal>`head -n1 objave/$3 | cut -f2`</span>"
+ echo "<script>function citiraj(slug) {odgovordetails.open=true;odgovor.hidden=false;besedilo.value+='>>'+slug+'\n';}</script>"
+ echo "<h1 class=naslov>$naslov</h1>"
+ echo "<p><b><i><u>spisal <span class=spisal>$spisal</span>"
if [ ! `head -n1 objave/$3 | cut -f2` = `date --iso-8601 --date @$(stat --format %Y objave/$3)` ]
then
echo "| nazadnje spremenil <span class=spremenil>`date --iso-8601 --date @$(stat --format %Y objave/$3)`</span>"
fi
- echo "</p>"
+ echo "</u></i></b></p>"
if [ $4 -eq 1 ]
then
besedilo $2 objave/$3 1 5
echo "<hr><h2>komentarji</h2>"
- komentiraj="<input id=komentiraj hidden type=button onclick='document.getElementById(&quot;odgovor&quot;).hidden=false' value=komentiraj />"
+ komentiraj="<input id=komentiraj1 hidden type=button onclick='document.getElementById(&quot;odgovor&quot;).hidden=false' value=komentiraj />"
echo $komentiraj
for file in `ls --reverse --sort=time --time=birth komentarji`
do
grep "^$3 " komentarji/$file > /dev/null && { echo "<div class=komentar style='border:1px solid red'>"; komentar $1 $file 5; echo "</div>"; }
done
- echo "<div id=odgovor>`curl --fail-with-body http://z.4a.si/skovikanje/komentar.php?action=//z.4a.si./skovikanje/komentar.php%3Fna=$3%26tip=objava%26ref=REPLACEME | sed s/REPLACEME/HTTP_REFERER/`</div>"
- echo $komentiraj
- echo "<script>odgovor.style='background:gray;position:fixed;right:0;bottom:0';odgovor.hidden=true;komentiraj.hidden=false;</script>"
+ echo "<div id=odgovor><details open id=odgovordetails><summary>pokaži/skrij</summary>`curl --fail-with-body http://z.4a.si/skovikanje/komentar.php?action=//z.4a.si/skovikanje/komentar.php%3Fna=$3%26tip=objava%26ref=REPLACEME | sed s/REPLACEME/HTTP_REFERER/`</details></div>"
+ sed s/komentiraj1/komentiraj2/ <<<$komentiraj
+ echo "<script>odgovor.style='background:gray;position:fixed;right:0;bottom:0';odgovor.hidden=true;komentiraj1.hidden=false;komentiraj2.hidden=false</script>"
+ echo "<br><br><br><br>"
else
besedilo $2 <(head -n4 objave/$3) 1 5
komentarjev=0
@@ -108,6 +149,13 @@ then
do
grep "^$3 " komentarji/$file > /dev/null && komentarjev=$(($komentarjev+1))
done
- echo "<h4><a href=skovik/$3.html>Klikni sem za ogled celotnega besedila, komentiranje in branje komentarjev ($komentarjev).</a></h4>"
+ vey=""
+ tripiyje=""
+ if [ `wc -l < objave/$3` -gt 5 ]
+ then
+ vey=" ogled celotnega besedila,"
+ tripiyje="..."
+ fi
+ echo "$tripiyje<h4><a href=skovik/$3.html>Klikni sem za$vey komentiranje in branje komentarjev ($komentarjev).</a></h4>"
fi
fi