slitaz-forge annotate scn/plugins/sdt/sdt.cgi @ rev 669

scn: fix sdt return IP (silly typo) was usinf testing code (thanks paul)
author Christophe Lincoln <pankso@slitaz.org>
date Wed Mar 01 11:09:44 2017 +0100 (2017-03-01)
parents 9a9e98cc78e4
children
rev   line source
pankso@639 1 #!/bin/sh
pankso@639 2 #
pankso@639 3 # TinyCM Plugin - SliTaz Distro Tracker
pankso@639 4 #
paul@643 5 # sdt.cgi: SliTaz Distros over the world. We don't track users
pankso@639 6 # info, no mail or IP but the localization. The goal of Sdt is to help
pankso@639 7 # show where SliTaz OS's are in the world. DB is in the flat file:
pankso@639 8 # sdt.txt & using | as separator for easy parsing.
pankso@639 9 #
pankso@639 10
pankso@641 11 sdtdb="$tiny/$content/sdt/sdt.txt"
pankso@641 12
pankso@640 13 sdt_summary() {
pankso@639 14 cat << EOT
pankso@639 15 <pre>
pankso@639 16 DB file : <a href="content/sdt/sdt.txt">sdt.txt</a>
pankso@639 17 DB size : $(du -sh $sdtdb | cut -d " " -f 1)
pankso@639 18 Distro : $(wc -l $sdtdb | cut -d " " -f 1)
pankso@639 19 </pre>
pankso@639 20 EOT
pankso@639 21 }
pankso@639 22
pankso@640 23 sdt_table() {
pankso@639 24 cat << EOT
pankso@639 25 <table>
pankso@639 26 <thead>
pankso@639 27 <td>$(gettext "Date")</td>
pankso@639 28 <td>$(gettext "User")</td>
pankso@639 29 <td>$(gettext "Country")</td>
pankso@639 30 <td>$(gettext "Release")</td>
pankso@639 31 <td>$(gettext "Kernel")</td>
pankso@639 32 <td>$(gettext "Mode")</td>
pankso@639 33 </thead>
pankso@639 34 EOT
pankso@639 35 IFS="|"
pankso@639 36 cat ${sdtdb} | while read date user country release kernel mode;
pankso@639 37 do
pankso@639 38 cat << EOT
pankso@639 39 <tr>
pankso@639 40 <td>$date</td>
pankso@639 41 <td>$user</td>
pankso@639 42 <td>$country</td>
pankso@639 43 <td>$release</td>
pankso@639 44 <td>$kernel</td>
pankso@639 45 <td>$mode</td>
pankso@639 46 </tr>
pankso@639 47 EOT
pankso@639 48 done && unset IFS
pankso@639 49 echo "</table>"
pankso@639 50 }
pankso@639 51
pankso@640 52 sdt_check_ua() {
pankso@639 53 if ! echo "$HTTP_USER_AGENT" | fgrep -q "SliTaz/SDT"; then
pankso@639 54 echo "Only SDT clients are accepted" && exit 1
pankso@639 55 fi
pankso@639 56 }
pankso@639 57
pankso@639 58 case " $(GET sdt) " in
pankso@639 59 *\ add\ *)
pankso@640 60 sdt_check_ua
pankso@639 61 date="$(date +%Y%m%d)"
pankso@639 62 user=$(GET user)
pankso@639 63 release=$(GET release)
pankso@639 64 kernel=$(GET kernel)
pankso@639 65 mode=$(GET mode)
pankso@639 66 country=$(GET country)
pankso@639 67 message=$(GET message)
pankso@639 68 cat << EOT
pankso@639 69 SliTaz Distro Tracker
pankso@639 70 --------------------------------------------------------------------------------
pankso@639 71 Date : ${date}
pankso@639 72 User : ${user}
pankso@639 73 Country : ${country}
pankso@639 74 Release : ${release}
pankso@639 75 Kernel : ${kernel}
pankso@639 76 Mode : ${mode}
pankso@639 77 --------------------------------------------------------------------------------
pankso@639 78 EOT
pankso@639 79 # Add to DB
pankso@639 80 echo "$date|$user|$country|$release|$kernel|$mode" >> ${sdtdb}
pankso@639 81 echo "Distro added to the database. Thank you :-)"; echo
pankso@639 82 exit 0 ;;
pankso@639 83
pankso@639 84 *\ geoloc\ *)
pankso@639 85 # Show IP and country
pankso@639 86 header "Content-Type: text/plain"
pankso@669 87 echo "$REMOTE_ADDR"
pankso@639 88 exit 0 ;;
pankso@639 89
pankso@639 90 *\ country\ *)
paul@643 91 # Show distros by country
pankso@639 92 ;;
pankso@639 93
pankso@639 94 *\ sdt\ *)
pankso@639 95 d="SliTaz Distro Tracker"
pankso@639 96 header
pankso@639 97 html_header
pankso@639 98 user_box
pankso@639 99 cat << EOT
pankso@639 100 <h2>$d</h2>
pankso@639 101 <p>
pankso@669 102 $(gettext "Add your SliTaz distro to the database. Open a terminal and execute:")
pankso@639 103 <b>sdt send [username]</b>
pankso@639 104 <p>
pankso@639 105 EOT
pankso@640 106 sdt_summary
paul@643 107 echo "<h3>Distros table</h3>"
pankso@639 108 echo "<pre>"
pankso@640 109 sdt_table
pankso@639 110 echo "</pre>"
pankso@639 111 html_footer
pankso@639 112 exit 0 ;;
pankso@639 113
pankso@639 114 *\ raw\ *)
pankso@640 115 # Plain text stats
pankso@639 116 header "Content-Type: text/plain"
pankso@639 117 cat << EOT
pankso@639 118 Server time : $(date)
pankso@639 119 Database size : $(du -sh $sdtdb | cut -d " " -f 1)
pankso@639 120 Distro tracked : $(wc -l $sdtdb | cut -d " " -f 1)
pankso@639 121 EOT
pankso@639 122 exit 0 ;;
pankso@639 123 esac