|HTML-Webcluster-Interface for DXSpider|
feb 25th 2008
I used the webcluster of N5IN during last years on my different webpages but it is just crazy to have DX-spider running locally and get the webcluster from a server in the US :)
I did not find any webcluster software on the internet to run locally
with dx-spider (other than the Java-client of course).
So I spent a weekend creating this simple script.
It is just a quick hack and for sure there may be a lot of ideas for possible improvements.
The webpage is created by a perl-script, very easy, I am surely not
an expert in perl like Dirk Koopman.
2. Requirements and limitations:
The script has only been tested on my LinuX-server yet.
I am running
I do not expect any big issues on other distributions and versions but
in case of different paths for cgi-bin and local binaries or the spider
database files the script needs to be adjusted to your needs.
The webpage is not user-configurable like the N5IN webcluster, the user
can not set any filters or whatever.
This would make php or java necessary, so the user can better use the existing java-applet for dxspider.
I found in my logfiles that nearly nobody was using the filters of the N5IN webcluster here.
The script accepts only 1 parameter with the number of spots that should
be shown in the first table.
With this the size of the output can be adjusted to fit best to your webpage, frame, window or wherever you want to place it.
The script is written to run on the same PC like dx-spider.
It needs direct access to dxspider's filesystem.
3. How it works:
The script reads the actual logfiles for DX-Spots, WWV-, WCY-datas and ANNouncements of dxspider.
DXSpider changes the logfiles regular.
Depending on the actual traffic you may see that tables are quiet small in the first view minutes after such a change of the logfiles.
This happens daily at 0:00 UTC with the dx-spots and at the start of
a new month with the WCY/WWV/ANN datas.
In Europe this is no big problem, 0:00 UTC is always in the night between 0:00 and 2:00 localtime, when only a few people are using the cluster.
At other places on the world this might be during main traffic.
I thought about reading the old logfiles if the new have not enough
content to fill the tables, but this is some bigger effort.
Just a few ideas what it could mean:
The tgz contains the following files:
a copy of the GNU General Public Licence
this is a simple cgi-script, located in the cgi-bin-path of the webserver.
In my case it is located at /var/local/httpd/cgi-bin/
this file will be created automatically in the cgi-bin directory.
It saves the value of the hit counter of the script.
The value is shown in the right down corner of the webpage.
this is the perl-script doing the job.
In my case it is located in /usr/local/bin
It is called from the cgi-script.
Please adjust the path in the cgi-script if you locate it at a different place.
Just 2 samples to adjust the number of spots to a fix value of 10 or 35.
Another possible way is to call the cgi-script with a parameter like this:
depending on the server installation even this works:
The 2 flags of my header at http://dx.prgm.org
Take what you like to see in your header.
This grafics are located in the main document root of the webserver.
dxcc.list is a simple textfile with the DXCC-prefixes.
It is needed to get the prefix of a country from the dxcc number in the database.
dxcc.list is generated from the content of prefix_data.pl by the tool "convert-dxcc".
prefix_data.pl is part of dxspider and located in the data directory.
Place convert-dxcc whereever you like, I keep it in /usr/local/sbin.
Start it whenever prefix_data.pl has been updated with dx-spider cvs-update.
dxcc.list is created in the data directory of dxspider.
It may somehow be possible to use prefix_data.pl direct but I must admit I don't know how??
5. Configuration and changes:
Changes need to be done direct in the code of the perl script.
You will find some helpfull comments in the script.
Things that possibly need to be changed:
An easy way to do some bigger changes:
Start webcluster.pl manually and let the output run to a file.
Like this: ./webcluster.pl > testfile.html
Take an html-editor and change the head and bottom of the file testfile.html to your needs.
Now the critical part: Copy the changes from the html-source to the
print command lines of the perl script.
(Remember to modify special characters like ", ' with a \ !)
I created a table for the top with the name of the cluster and some small grafics and another table for the footer with some links and the counter.
You may change this parameter in the HTML-code of the header which is generated by the perlscript.
Just search for "refresh" and change the "CONTENT" parameter from 150 to your preferred value.
This is done in the top of each table by HTML-code.
Just be carefull not to change the code which creates the tables with the variable datas.
6. Possible issues:
I tried to filter all special characters that might come in with
the text of a spot and destroy the format of the tables.
If you see any formatting issues please let me know!
Send me the sample of the spot and the exact time in UTC.
The script automatically creates an URL for the spotted callsigns to
look it up at qrz.com just by a mouse-klick.
I think this is very helpfull for users.
Off course the script does not know or check if an entry at qrz.com really exists, but most interesting dx-stations have it.
Sometimes it is not easy to find the basic callsign for this lookup with all additional prefixes, suffixes, extra short and extra long special event callsigns etc.
The script expects that the basic callsign in general is the longest
part of the string.
Based on this it checks if it contains at least 1 number and 2 chars.
Please give me a sample if you see a case where this does not work!
I did not limit the lengh of announcements. Big story-tellers may create
more lines at this place than expected and the table will grow bigger than
If you want to prevent this please just cut announcements to the size that you like.
Any idea for improvement is welcome.
Please either do it yourself if you can or tell me your idea and I will try to implement it.
I would like to keep the most interesting versions on my server for download, so if you do a nice improvement please send me a copy!
The URL is http://download.prgm.org/dl5di-soft/dxspider-webcluster
The package is distributed under GNU/General Public Licence conditions.
If you find something better or more powerfull let me know, I am interested!
Have fun and gd dx !
73 de Hans, DL5DI
|<Directory old>||Directory with some older versions|
|DXSpider-Webcluster.pdf||The text that you currently read in a PDF-File for download|
|update-info.txt||Update-Information for those who have existing installations and want
to use the patches.
Please remember, a new file will overwrite your individual changes.
Make a BackUp !
|counter.txt||Some information on an issue with the hit-counter|
|webcluster.tgz||this is always the link to the latest version in tar.hz format for LinuX users|
|webcluster.zip||this is always the link to the latest version in zip format for Windows users|
|webcluster.20080309.tgz||This is currently the latest version in tar.hz format for LinuX users|
|webcluster.20080309.zip||This is currently the latest version in zip format for Windows users|
|webcluster.patch20080309.zip||This a pack of all patches to update from older versions|
|<Directory>||All files complete|