Skip to content

kmendell/DXClusterAPI

 
 

Repository files navigation

DXClusterAPI / Docker-Version

Simple JSON API for DXCluster

Example-API

For testing- and development we set Up a small live-instance, which caches 1000 Spots. More information how to use it: Here

Purpose

Make last n Spots of DXCluster accessible via API to use it in other Applications without having the stream there. How is it done: Stream DXCluster to memory and put a small REST-API on it

SetUp (Pre-built)

  • Copy Paste contents of /hub/docker-compose.yaml into a local folder on your machine or Docker-Environment
  • Adjust docker-compose.yaml (ENV-Vars - they're commented) to your needs. Don't forget Wavelog-URL and Key
  • docker-compose up -d or "Start container" in your Docker-Env

SetUp (Self-built)

  • git clone https://github.com/int2001/DXClusterAPI.git
  • cd DXClusterAPI
  • git checkout dockerized
  • Adjust docker-compose.yaml (ENV-Vars - they're commented) to your needs. Don't forget Wavelog-URL and Key
  • docker-compose up -d

Hints/Tips

  • tools logs access.log-style to console (or logfile if pm2 is used)
  • you can restrict browser-access by editing the cors-line at index.js

Using it

  • point your Client (Browser / programm) to http://[host_where_it_is_running:port]/spots to get a list of all cached spots
  • point your Client (Browser / programm) to http://[host_where_it_is_running:port]/spots/[Band] to get a list of all cached spots at that Band. (e.g. "40m")
  • point your Client (Browser / programm) to http://[host_where_it_is_running:port]/spot/[QRG in kHz] to get the latest spot of that QRG
  • point your Client (Browser / programm) to http://[host_where_it_is_running:port]/stats] to get a small info about your cache-state

Sample output of /spots:

[
    {
        "spotter": "IK2MMM",
        "spotted": "II1GM/2",
        "frequency": 14258,
        "message": "MARCONI AWARD 150ANNI",
        "when": "2024-04-15T14:48:12.235Z",
        "dxcc_spotter": {
            "cont": "EU",
            "entity": "Italy",
            "flag": "🇮🇹",
            "dxcc_id": "248",
            "lotw_user": "2",
            "lat": "41.9",
            "lng": "12.5"
        },
        "dxcc_spotted": {
            "cont": "EU",
            "entity": "Italy",
            "flag": "🇮🇹",
            "dxcc_id": "248",
            "lotw_user": false,
            "lat": "41.9",
            "lng": "12.5"
        },
        "band": "20m"
    },
]

Sample Output of /spot/14310:

{
  spotter: "EA4EHD",
  spotted: "AO75CM",
  frequency: 14310,
  message: "AO75CM",
  when: "2024-04-15T15:05:00.778Z",
  dxcc_spotter: {
  cont: "EU",
  entity: "Spain",
  flag: "🇪🇸",
  dxcc_id: "281",
  lotw_user: false,
  lat: "40.4",
  lng: "-3.7"
},
dxcc_spotted: {
  cont: "EU",
  entity: "Spain",
  flag: "🇪🇸",
  dxcc_id: "281",
  lotw_user: false,
  lat: "40.4",
  lng: "-3.7"
},
  band: "20m"
}

Some explaination:

  • spotter: the Ham who spotted the Call
  • spotted: the who is spotted
  • frequency: QRG in kHz
  • message: message given by the spotter at the Cluster
  • when: UTC-Timestamp of spot
  • add: Additional-Infos
    • decont: Continent of the spotter
    • dxcont: Continent of the spotted station
    • czq: CQ-Zone of the spotted station
    • entity: DXCC-Name of the spotted station

Notice: Not all Fields in Object "add" are always filled. There's a rudimentary logic in this API to derivate band and Mode out of spot. Don't rely on that!

About

Simple JSON API for DXCluster

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 69.2%
  • JavaScript 26.4%
  • Dockerfile 4.4%