Giter Site home page Giter Site logo

fhdalikhan / plane-notify Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jxck-s/plane-notify

0.0 0.0 0.0 1.46 MB

Notify If a selected plane has taken off or landed using OpenSky or ADS-B Exchange data. Compares older data to newer data to determine if a landing or takeoff has occurred. As well as nav modes, emergency squawk and resolution advisory notifications. Can output to Twitter, Discord, and Pushbullet

License: GNU General Public License v3.0

Python 99.10% Dockerfile 0.90%

plane-notify's Introduction

plane-notify

Codacy Badge GPLv3 License

Notify if configured planes have taken off or landed using Python with OpenSky(free) or ADS-B Exchange Data(paid but much better), outputs location of takeoff location of landing and takeoff by reverse lookup of coordinates.

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

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
  • Pick between OpenSky and ADS-B Exchange
  • The OpenSky API is free for everyone but the data is not as good as ADS-B Exchange. The ADS-B Exchange API is not free and this program will not work for the Rapid API from ADS-B Exchange. It only works with the API that they give when you have a partnership with ADS-B Exchange. It is not cheap to get the ADS-B Exchange full API, Don't contact them unless your ready to pay.
  • If you'd like to add support for ADS-B Exchanges RapidAPI feel free to work on it, and submit a merge request.
  • 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 ADS-B 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.
  • When using OpenSky theres more bugs because I mainly use ADS-B Exchange and work less on the OpenSky Implementation.

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.
  • Better single config YAML, or DB maybe

plane-notify's People

Contributors

codacy-badger avatar dependabot[bot] avatar jxck-s avatar seth10001 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.