Mirror of https://github.com/Jxck-S/plane-notify
This is the backend to ElonsJet and other bots
acasads-badsbadsbexchangeadsbxairportemergency-squawklandopenskyopensky-apiopensky-networkplaneresolutionadviosrysquawktakeofftcas
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Jack Sweeney
ef555444cf
|
4 years ago | |
---|---|---|
LICENSE | 4 years ago | |
OpenSky Bot.py | 5 years ago | |
README.md | 5 years ago | |
defMap.py | 5 years ago | |
defOpenSky.py | 5 years ago | |
defTweet.py | 5 years ago |
README.md
plane-notify
Nearing final first version. Notify If a Selected Plane has taken off or landed using Python with OpenSky API, outputs location of takeoff location of landing and takeoff by revese lookup of cordinates.
Why I made it
Made it so I could track Elon Musk's Jet and share with others of his whereabouts follow on twitter @ElonJet https://twitter.com/ElonJet
How It works
- Takes data about every 15 seconds from OpenSky Network compares it to previous data with whats I've defined as a landing or takeoff event.
- A takeoff event event is the plane is not on ground, below 10k feet and ((previously no data and now getting data) or was previously on ground).
- A landing event is previosly below 10k feet and (previously getting data, no longer getting data and previously not on ground) or (now on ground and previously not on ground).
- Given the coordinates of the aircraft the coordinates are reverse looked up for a location name. (Geopy Nomination Geolocater)
- At time of takeoff a takeoff time is set which is refrenced in landing event to calculate an approximate total flight time.
- Static map image is created based off location name. (Google Static Maps API)
- If the landing event and takeoff events are true creates the output to Twitter and Pushbullet, uses the location name, map image and takeoff time if landing. (Tweepy and Pushbullet ) a
Required PIP packages
- OpenSky API https://github.com/openskynetwork/opensky-api
- geopy https://github.com/geopy/geopy
- colorama https://github.com/tartley/colorama
Install OpenSky API
apt install git
git clone https://github.com/openskynetwork/opensky-api.git
pip install -e ~/opensky-api/python
Install Colorama and geopy
pip install colorama
pip install geopy
Install Pushbullet and Tweepy optional output methods already implemented in code
pip install tweepy
pip install pushbullet.py
Install Screen to run in background
apt install screen
Make sure Python is installed
apt install python3
Download / Clone
git clone https://github.com/Jxck-S/plane-notify.git
cd plane-notify
Configure defOpenSky, defTweet and defMap with API keys
- defOpenSky doesn't require an OpenSky API key but bennefits from one.
- defTweet can be disabled if removed from NotifyBot.py or give Twitter API keys to it.
- Pushbullet is setup in main NotifyBot.py
- defMap needs Google Static Map API keys.
- edit them with nano or vi
Enter and create new Screen Session
screen -R <name screen whatever you want>
Start Program
python3 NotifyBot.py
TODO
implement YAML file for config options implement airport name, done by closest airport