author piscrape page

master
nq4t 2 years ago
parent c2d3bf3a37
commit 7aacb6ab7d

Binary file not shown.

@ -12,7 +12,7 @@ I am by no means a software developer, that being said I've written some code th
Some of it can fall under the category of "stupid tricks" that are geared toward web presence. Some of it is the Some of it can fall under the category of "stupid tricks" that are geared toward web presence. Some of it is the
actual website itself since it uses Jekyll/Liquid/Ruby for static generation. actual website itself since it uses Jekyll/Liquid/Ruby for static generation.
- PiScrape - Text-Only Hotspot Information · [Git Repository](https://git.pickmy.org/nq4t/piscrape) - [PiScrape - Text-Only Hotspot Information](https://nq4t.com/software/piscrape) · [Git Repository](https://git.pickmy.org/nq4t/piscrape)
- This consists of a bash script and PHP page that will display a small box with Pi-Star reflector/talkgroup - This consists of a bash script and PHP page that will display a small box with Pi-Star reflector/talkgroup
information that you can iframe in to a webpage. (Will be) part of my QRZ profile when I can stop screwing around with information that you can iframe in to a webpage. (Will be) part of my QRZ profile when I can stop screwing around with
the main webpage long enough to update it. the main webpage long enough to update it.

@ -1,30 +1,128 @@
--- ---
layout: page2 layout: page2
title: NQ4T Software title: PiScrape
order: 7
--- ---
<div class="message"> If a project does not have a link, it means I just haven't created a project specific page yet. However everything
has a Git repository.</div> ## PiScrape - Text-Only Hotspot Information &middot
I am by no means a software developer, that being said I've written some code that does things related to ham radio. [Git Repository](https://git.pickmy.org/nq4t/piscrape)
Some of it can fall under the category of "stupid tricks" that are geared toward web presence. Some of it is the
actual website itself since it uses Jekyll/Liquid/Ruby for static generation. PiScrape allows you to display your connected reflectors/talkgroups in a small webpage you can embed, like this:
- PiScrape - Text-Only Hotspot Information &middot; [Git Repository](https://git.pickmy.org/nq4t/piscrape) <iframe border=0 src="https://pistar.nq4t.com/pistar/pistar.php" width="320" height="300">
- This consists of a bash script and PHP page that will display a small box with Pi-Star reflector/talkgroup
information that you can iframe in to a webpage. (Will be) part of my QRZ profile when I can stop screwing around with It does this by scraping the Pi-Star dashboard for the information using a shell script and php page. It can be run
the main webpage long enough to update it. on any webserver with PHP and SSH access to your Pi-Star. It can also be run entirely on Pi-Star if you open web ports
- PiStAPrS - Beacon Hotspot Information To APRS-IS &middot; [Git Repository](https://https://git.pickmy.org/nq4t/pistaprs) or reverse proxy. The original version ran on a locally hosted web-server that could pull the dashboard directly.
- Similar to PiScrape, except this runs on an external Pi with a GPS hat that will beacon location information
and reflector/TG as a comment. Originally designed for a road-trip. Became the basis for PiScrape The PHP page itself largely just calls the shell script, which returns the HTML code containing your connection info.
- HamHead - Arduino Remote Head For CAT/CI-V Radios &middot; [Git Repository](https://git.pickmy.org/nq4t/HamHead) When the script is executed; it pulls either the repeaterstatus frame from the dashboard or the Brandmeister API page.
Then using a series of awk and sed commands, the information is extracted and output.
- Project with the goal of letting you add a remote head to any radio that uses CAT/CI-V. Development is dorment
but not entirely dead. Was originally a "memory controller" for an IC-725 to aid in tuning CB channels for monitoring on ### Bash Script
the road.
- PiFO - Pi VFO Controller/Head &middot; [Git Repository](https://git.pickmy.org/nq4t/PiFO) ```bash
- Abandoned. The original RPi based project before I switched to Arduino and called it HamHead. Started off using #!/bin/bash
HamLib before I abandoned it for being inadequate for my vision. Was later abandoned entirely because who wants to wait #.013 alpha
for an OS to boot to control their rig. # de NQ4T (nq4tango@gmail.com)
# SET THE HOSTNAME OR IP OF YOUR HOTSPOT!
pidmr=192.168.1.10
# I HAVE TWO SO I SET TWO
#pidstar=192.168.1.11
# grab copy of rendered bm_links.php from hotspot, convert HTML to newline, filter by "TG", remove timeslot info, convert to one line
# check contents to see if we need to display 'no groups' message
# if you are not using DMR, then comment these two lines out
# to comment out, just add a pound-sign to the start of the line, like these comments.
dmr=$(curl -s http://$pidmr/mmdvmhost/bm_links.php| sed 's/<[^>]\+>/\n/g' | grep '^TG' | sed 's/TG/#/g'| sed 's/(.)//g' | sed ':a;N;$!ba;s/\n/ - /g')
[ -z "$dmr" ] && dmr="No Talkgroups Found"
# do the same for dstar with repeaterinfo.php but just egrep for reflector prefix, strip HTML, keep the first 8 characters
# check to see if we need to display not linked
# if you are not using D-Star, comment these next two lines out. if you don't, the script will take longer to run.
# If you modify what egrep looks for, you may get other modes to work.
#dstar=$(curl -s http://$pidstar/mmdvmhost/repeaterinfo.php | egrep "REF|XRF|DCS|XLX" | sed 's/<[^>]\+>//g' | cut -b 1-8)
#[ -z "$dstar" ] && dstar="Not Linked"
# HTML for table cells on hotspot.php page. These are all one line even if they look like two in your editor.
# This is for a 2x2 table using DMR and D-Star
#printf "<tr><td style=\"vertical-align: top; font-family: Verdana; font-weight: bold; text-align: right;\" width=\"20%%\"><small>BM TG:</small></td>\n<td style=\"vertical-align: top;\"><small>$dmr</small><br></td></tr>\n<tr><td style=\"vertical-align: top; font-family: Verdana; font-weight: bold; text-align: right;\" width=\"20%%\"><small>D-Star:</small></td>\n<td style=\"vertical-align: top;\"><small>$dstar</small><br></td></tr>\n"
# This is for a DMR only display.
printf "<tr><td style=\"vertical-align: top; font-family: Verdana; font-weight: bold; text-align: right;\"><small>BM TG:</small></td>\n<td style=\"vertical-align: top;\"><small style=\"font-style: italic;\">$dmr</small><br></td></tr>\n"
# This is for a D-STar Only Display
# printf "<tr><td style=\"vertical-align: top; font-family: Verdana; font-weight: bold; text-align: right;\"><small>D-Star:</small></td>\n<td style=\"vertical-align: top;\"><small style=\"font-style: italic;\">$dstar</small><br></td></tr>\n"
```
The script iself is commented pretty well to explain how it works. Minimal modification is required for operation. The main requirement is you can either access the
dashboard from the system running the script, or can remotely execute the script on a machine that can. Since putting your Pi-Star's dashboard on the internet is risky
without reverse proxy; remote execution via SSH and key-based authentication is recommended.
The script's output is literally pre-formatted HTML:
```
pi-star@pi-star(rw):~$ ./piscrape.sh
<tr><td style="vertical-align: top; font-family: Verdana; font-weight: bold; text-align: right;"><small>BM TG:</small></td>
<td style="vertical-align: top;"><small style="font-style: italic;">#3151 #98003 </small><br></td></tr>
```
The PHP executes the script, stuffs this information in the proper place, as well as adding a time-stamp:
```php
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="content-type">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>NQ4T Hotspot Info</title>
</head>
<body>
<div style="margin-right: auto; font-family: Verdana; text-align: left;"><big>
</big><small><span style="font-weight: bold;">NQ4T Pi-Star Hotspot
Network</span><br>
<br style="font-weight: bold; font-style: italic;">
<span style="font-weight: bold; font-style: italic;">Current
Connections:</span><br>
</small><big>
</big>
<table
style="border: 1px solid black; text-align: left; border-collapse: collapse;"
cellpadding="2" cellspacing="0">
<tbody>
<?php
$output = shell_exec('/media/html/qth-nq4t/hotspot13alpha.sh');
echo "$output";
?>
</tbody>
</table>
<big>
</big><small><br style="font-style: italic; font-weight: bold;">
<span style="font-style: italic; font-weight: bold;">Listed connections
do not mean I have a radio on or am at a radio.<br>This is especially true
for Brandmeister.</span><br
style="font-weight: bold; font-style: italic;">
<span style="font-style: italic; font-weight: bold;"> For informational
purposes only.
</span><br>
<br>
73 de NQ4T
<br>
<?php
echo date("Y-m-d") . " @ " . date("H:i:s") . "z";
?>
</small>
</div>
</body>
</html>
```
Most of this was actually based off of [Pi-StAPrS](https://nq4t.com/software/pistaprs) and was designed to be embedded in a QRZ profile page.
Full source code is available in the [repository](https://git.pickmy.org/nq4t/piscrape).

Loading…
Cancel
Save