dev over
							parent
							
								
									217a196f70
								
							
						
					
					
						commit
						93c36f4116
					
				| @ -0,0 +1,13 @@ | |||||||
|  | --- | ||||||
|  | title: Software Dev Terminated | ||||||
|  | layout: post | ||||||
|  | date: 2023-11-13 15:32:46 | ||||||
|  | tags: Blog | ||||||
|  | excerpt_separator: <!--more--> | ||||||
|  | --- | ||||||
|  | 
 | ||||||
|  | I have decided to stop any and all development of ham-related software.  | ||||||
|  | 
 | ||||||
|  | I will leave Log4OM up. That's it. The dev there has been very kind to me. | ||||||
|  | 
 | ||||||
|  | I will not be picking up development. If you want to continue, you can buy my code. | ||||||
| @ -1,129 +0,0 @@ | |||||||
| --- |  | ||||||
| layout: page2 |  | ||||||
| title: PiScrape - Text-Only Hotspot Information |  | ||||||
| --- |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| [Git Repository](https://git.pickmy.org/nq4t/piscrape) |  | ||||||
| 
 |  | ||||||
| PiScrape allows you to display your connected reflectors/talkgroups in a small webpage you can embed, like this: |  | ||||||
| 
 |  | ||||||
| <iframe border=0 src="https://pistar.nq4t.com/piscrape/piscrape.php" width="500" height="300"></iframe> |  | ||||||
| 
 |  | ||||||
| It does this by scraping the Pi-Star dashboard for the information using a shell script and php page. It can be run |  | ||||||
| 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 |  | ||||||
| or reverse proxy. The original version ran on a locally hosted web-server that could pull the dashboard directly. But |  | ||||||
| I also had success running it on remote web-servers that could SSH in to the Pi-Star. Remote SSH execution is not yet |  | ||||||
| included in the repository; but if you know how to do that, you probably can write that small script yourself. The |  | ||||||
| current implementation is running entirely on the PiStar via nginx reverse proxy. |  | ||||||
| 
 |  | ||||||
| The PHP page itself largely just calls the shell script, which returns the HTML code containing your connection info. |  | ||||||
| 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. |  | ||||||
| 
 |  | ||||||
| ### Bash Script |  | ||||||
| 
 |  | ||||||
| ```bash |  | ||||||
| #!/bin/bash |  | ||||||
| #.013 alpha |  | ||||||
| # 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…
					
					
				
		Reference in New Issue