Mirror of https://github.com/Jxck-S/plane-notify This is the backend to ElonsJet and other bots
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.
 
 
Jxck-S 1366f7d3ca Fix for hanging requests, Remove PID File 3 years ago
ExImages Update some example images 4 years ago
configs Data error correction, Plane str method, Fix Data input 3 years ago
.gitignore Dependecies dir, screenshot in temp dir, rename functions 4 years ago
Dockerfile Remove extra slash 3 years ago
LICENSE Create LICENSE 4 years ago
Pipfile Diversion/route change, Circling, Clean keys 3 years ago
Pipfile.lock Update Tweepy, Add route lkp to OpenSky 3 years ago
PseudoCode.md Updated Readme & Pseudo 4 years ago
README.md Add language flag to new docs 4 years ago
Refrences.md AGL calculation, Traceback, Powerup, Route 4 years ago
__init__.py Begin Restructure 4 years ago
__main__.py Fix for hanging requests, Remove PID File 3 years ago
calculate_headings.py Docstring fix, ignore route lookup when no type, reg fix 3 years ago
defADSBX.py Fix for hanging requests, Remove PID File 3 years ago
defAirport.py Add region to going to info, new squawks, sel alt noti. 4 years ago
defDiscord.py Fix for hanging requests, Remove PID File 3 years ago
defMap.py Many Updates, baro alt, GMaps fixed 4 years ago
defOpenSky.py Relative ETA, Auto toggle route lookup, Crash file to Discord 4 years ago
defSS.py Custom photos on ADSBX Map 3 years ago
defTweet.py Update Tweepy, Add route lkp to OpenSky 3 years ago
docker-compose.yml Add google chrome to dockerfile 3 years ago
mictronics_parse.py Update Tweepy, Add route lkp to OpenSky 3 years ago
modify_image.py Dependecies dir, screenshot in temp dir, rename functions 4 years ago
planeClass.py Update Tweepy, Add route lkp to OpenSky 3 years ago

README.md

plane-notify

Codacy Badge GPLv3 License

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.

Branches

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.

Discord Output Example

Discord Output Example

More examples in the ExImages folder

ExImages

Background

I made this program so I could track Elon Musk's Jet and share with others of his whereabouts on Twitter. Twitter Follow I have now Expanded and run multiple accounts for multiple planes, a list of the accounts here plane-notify Twitter List

Contributing

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

Algorithm

Setup / Install

Make sure Python/PIP is installed

apt update
apt install python3
apt install python3-pip

Install Pipenv and Dependencies

pip install pipenv
pipenv install

Install Selenium / ChromeDriver or setup Google Static Maps

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).

Chromium

sudo apt-get install chromium

These output methods once installed can be configured in planes config you create, using the example plane1.ini

Install Screen to run in the background

apt install screen

Download / Clone

apt install git
git clone -b multi --single-branch https://github.com/Jxck-S/plane-notify.git
cd plane-notify

Configure main config file with keys and URLs (mainconf.ini) in configs directory

  • 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.

Configure individual planes

  • 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

Enter and create new Screen Session

screen -R <name screen whatever you want>

Start Program

pipenv run python __main__

Using with Docker

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

TODO

  • 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.

More Refrences/Documentation