Notify if configured planes have taken off or landed using Python with OpenSky or ADS-B Exchange Data, outputs location of takeoff location of landing and takeoff by reverse lookup of coordinates.
Their are two branches of this program single is the original only supports one plane works with OpenSky and ADSBX. Multi branch is the new version supports multiple planes, mainly built around being based on ADSBX data, OpenSky data in this version may have issues, didn't test much. Your current viewing multi.
I made this program so I could track Elon Musk's Jet and share with others of his whereabouts on Twitter. I have now Expanded and run multiple accounts for multiple planes, a list of the accounts here plane-notify Twitter List
Im open to any help or suggestions, I realize theirs much better ways im sure to do alot of my methods, im only a noob. I'll accept pull requests. If you'd like to discuss join https://JacksTech.net/Discord
apt update
apt install python3
apt install python3-pip
pip install pipenv
pipenv install
Selenium/ChromeDriver is used to take a screenshot of the plane on globe.adsbexchange.com. Or use Google Static Maps, which can cost money if over used(No tutorial use https://developers.google.com/maps/documentation/maps-static/get-api-key to get to a key).
sudo apt-get install chromium
These output methods once installed can be configured in planes config you create, using the example plane1.ini
apt install screen
apt install git
git clone -b multi --single-branch https://github.com/Jxck-S/plane-notify.git
cd plane-notify
- edit them with nano or vi on the running machine or on your pc and transfer the config to where you will be running the bot
- If you've setup multiple planes and want to use ADSB Exchange as your source you must have /all endpoint access to their API or it won't work.
- Pick the correct api version for ADSB Exchange
- Proxy is if your running multiple programs that use the ADSB Exchange, setup the proxy from lemonodor so you don't abuse the ADSB Exchange API, otherwise leave enable false.
- an example file is given (plane1.ini) plane config files should be in the configs directory, the program looks for any file in that folder with a .ini extension.
- each plane should have its own config
screen -R <name screen whatever you want>
pipenv run python __main__
Install docker from their website. Run the following command from the root of the project.
docker-compose up -d
After running this command, dut to the -d
flag the container will be running in the background. To see the logs of the docker
Fork this repo into your own github account.
Go to the repo settings and add the secrets for your config type.
Fill in discord settings in config files.
Create a new webhook, and add as an action secret under LOG_DISCORD_WEBHOOK_URL
or DISCORD_WEBHOOK_URL
.
Create twitter api keys, and add as an action secret under ckhere
, cshere
, cshere
, athere
, and atshere
.
Create a new pushbullet api key, and add as an action secret under apikey
GHCR images are private by default, so safe to use as a cache. And a free github account comes with "500MB of Packages storage"!
Cache will update itself on the next run after a new commit.
- General Cleanup
- Restructure project to make it proper currently random files because I didn't know how to properly structure a project before. (in progress)
- Add proper logging and service to run the program and remove excessive printing.