plane-notify - 選択した飛行機が離着陸した場合に、OpenSkyまたはADS-B交換データを使用して通知します。古いデータと新しいデータを比較して、着陸または離陸が発生したかどうかを判断します。ナビゲーションモード、緊急スクォーク、解像度のアドバイザリ通知。Twitter、Discord、Pushbulletに出力できます

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

Created at: 2020-06-08 10:46:59
Language: Python
License: GPL-3.0

飛行機通知

コーダシーバッジ GPLv3ライセンス

OpenSky(無料)またはADSBExchange Data(有料ですが、はるかに優れている)を使用して設定された飛行機が離陸または着陸した場合に通知し、座標の逆引きによって着陸と離陸の離陸場所の場所を出力します。

不和の出力例

不和の出力例

その他の例は ExImages フォルダにあります。

エクスイメージズ

バックグラウンド

このプログラムは、イーロンマスクのジェットを追跡し、Twitterで他の人と彼の居場所を共有できるようにするために作成されました。ツイッターフォロー私は今、複数の飛行機のために複数のアカウントを拡張して実行しました、アカウントのリストはここで見つけることができます飛行機通知Twitterリスト

貢献

私はどんな助けや提案にもオープンです、私はこのプログラムを改善するための多くのより良い方法とこのプログラムを正しく動作させるためのより良い方法があることを認識しています、私はただの初心者です。プルリクエストを受け入れます。参加について話し合いたい場合 https://JacksTech.net/Discord

アルゴリズム

セットアップ/インストール

Python / PIPがインストールされていることを確認してください

apt update
apt install python3
apt install python3-pip

Pipenv と依存関係をインストールする

pip install pipenv
pipenv install

セレン/クロームドライバーをインストールするか、Google静的マップをセットアップします

Selenium/ChromeDriverは、globe.adsbexchange.com で飛行機のスクリーンショットを撮るために使用されます。または、使いすぎるとお金がかかる可能性のあるGoogle静的マップを使用します(チュートリアルでは https://developers.google.com/maps/documentation/maps-static/get-api-key を使用してキーを取得する必要はありません)。

クロム

sudo apt-get install chromium

インストールしたこれらの出力方法は、例の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

configs ディレクトリ内のキーと URL (mainconf.ini) を使用してメイン設定ファイルを設定します。

  • にコピーし、にコピーします。 INI拡張子で終わる限り名前を変更できます
    mainconf.ini.example
    mainconf.ini
    plane1.ini.example
    plane1.ini
    plane1.ini
  • 実行中のマシンまたはPCでnanoまたはviで編集し、ボットを実行する場所に構成を転送します
  • OpenSkyとADS-Bエクスチェンジのどちらかを選ぶ
  • OpenSky APIは誰でも無料ですが、データはADS-B Exchangeほど良くありません。ADS-B Exchange API は無料ではなく、このプログラムは ADS-B Exchange の Rapid API では機能しません。それはあなたがADS-B取引所とパートナーシップを結んでいるときに彼らが提供するAPIでのみ機能します。ADS-B交換の完全なAPIを入手するのは安くはありません, あなたが支払う準備ができていない限り、彼らに連絡しないでください.
  • ADS-B取引所RapidAPIのサポートを追加したい場合は、自由に作業してマージリクエストを送信してください。
  • 複数のプレーンを設定し、ソースとしてADSB Exchangeを使用する場合は、APIへの/allエンドポイントアクセスが必要です。
  • ADS-B エクスチェンジの正しい API バージョンを選択します。
  • プロキシは、ADSB取引所を使用する複数のプログラムを実行している場合は、ADSB交換APIを悪用しないようにlemonodorからプロキシを設定し、それ以外の場合はfalseを有効にします。
  • OpenSkyを使用する場合、私は主にADS-B Exchangeを使用し、OpenSkyの実装ではあまり作業しないため、より多くのバグがあります。

個々の平面を構成する

  • サンプルファイル(plane1.ini)プレーン構成ファイルはconfigsディレクトリにある必要があり、プログラムはそのフォルダー内の.ini拡張子を持つファイルを探します。
  • 各プレーンには独自の設定が必要です

新しいスクリーンセッションを開始して作成する

screen -R <name screen whatever you want>

プログラムの開始

pipenv run python __main__.py

ドッカーでの使用

彼らのウェブサイトからドッカーをインストールします。プロジェクトのルートから次のコマンドを実行します。

docker-compose up -d

このコマンドの実行後、フラグにより、コンテナーはバックグラウンドで実行されます。Dockerコンテナの使用のログを表示するには(コンテナ出力のストリーミングを続行するには追加します)

-d
docker logs CONTAINER
-f

電報メッセージ機能 - 2022年3月

取得したデータは、Telegramを介してチャット(連絡先)、チャネル、またはグループに送信できます。

テレグラムボットの作成

  • ボットファーザーとの会話を開始する;
  • それをボットファーザーに送ってください: /newbot
  • ボットの名前を選択します。
  • ボットのユーザー名を選択します。
  • 完成です!HTTP API にアクセスするためのトークンを取得します。

チャネルまたはチャット (連絡先) ID の取得

  • JsonDumpBotとの会話を始める;
  • メッセージからの情報をjsonで返信します。
  • IDが必要なチャネルまたはチャットに移動し、そこからJsonDumpBotにメッセージを転送します。
  • 返信で ID を見つけます。次のようになります。
   {...
    "forward_from_chat": {
          "id": xxxxxxxxx,
   ...}
  • メッセージを送信できるように、ボットをチャネルの管理者として追加することを忘れないでください。

グループ ID の取得

  • テレグラムウェブを開く;
  • グループに移動し、ブラウザのアドレスバーのURLを確認します。
  • これはグループ ID (-xxxxxxxxx) で、次のようになります。
  https://web.telegram.org/z/#-xxxxxxxxx

藤堂

  • 一般的なクリーンアップ
  • プロジェクトを再構築して、以前はプロジェクトを適切に構造化する方法がわからなかったため、現在ランダムなファイルにします。(処理中)
  • 適切なログとサービスを追加してプログラムを実行し、過剰な印刷を削除します。
  • より良い単一構成YAMLまたはDB多分

その他の参考資料/ドキュメント