From 643998809bb6cafe8e878d8ea115bdafc4400686 Mon Sep 17 00:00:00 2001 From: timogoosen Date: Wed, 27 Apr 2022 14:26:24 +0200 Subject: [PATCH 01/70] Improving dockerfile and removing pipenv --- Dockerfile | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index bc1f050..851fbf8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,15 +1,32 @@ FROM python:3 WORKDIR /plane-notify +USER root COPY . . -# Set the Chrome repo. -RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \ - && echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list +RUN set -ex && \ + apt-get update -qq && \ + apt-get -y -qq install --no-install-recommends \ + ca-certificates \ + gnupg && \ + curl -sSL https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - && \ + echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google.list && \ + apt-get -y -qq update \ + && apt-get -y -qq install --no-install-recommends \ + bash \ + curl \ + google-chrome-stable \ + python3 \ + python3-dev \ + python3-pip \ + python3-setuptools \ + python3-wheel \ + && rm -rf \ + /var/lib/apt/lists/* \ + /var/cache/apt/archives + -# Install Chrome. -RUN apt-get update && apt-get -y install google-chrome-stable # Add pipenv RUN pip install pipenv==2021.5.29 From 7302ae85396acb00cfae9cbaec60188651e0e155 Mon Sep 17 00:00:00 2001 From: timogoosen Date: Wed, 27 Apr 2022 15:36:38 +0200 Subject: [PATCH 02/70] added more stuff --- Dockerfile | 11 ++++------- requirements.txt | 14 ++++++++++++++ 2 files changed, 18 insertions(+), 7 deletions(-) create mode 100644 requirements.txt diff --git a/Dockerfile b/Dockerfile index 851fbf8..a477612 100644 --- a/Dockerfile +++ b/Dockerfile @@ -28,13 +28,10 @@ RUN set -ex && \ -# Add pipenv -RUN pip install pipenv==2021.5.29 - -# Install dependencies -RUN pipenv install +RUN pip3 install --upgrade pip && \ + pip3 install -U --no-cache-dir -r ./requirements.txt # Added needed folder for plane-notify process -RUN mkdir /home/plane-notify +RUN mkdir -p /home/plane-notify -CMD pipenv run python /plane-notify/__main__.py \ No newline at end of file +CMD python3 /plane-notify/__main__.py \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..6fc2eb5 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,14 @@ +# requirements.txt +colorama +geopy +tabulate +pytz +pillow +tweepy +pushbullet.py +discord-webhook +selenium +#opensky-api = {editable = true, git = "https://github.com/openskynetwork/opensky-api.git", subdirectory = "python"} +webdriver-manager +shapely +python-telegram-bot \ No newline at end of file From 3eb022962cc8e66963f1e298cb7ffd932258efdd Mon Sep 17 00:00:00 2001 From: timogoosen Date: Wed, 27 Apr 2022 15:42:26 +0200 Subject: [PATCH 03/70] updated requiremets.txt --- requirements.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 6fc2eb5..a86b9e1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,6 +9,7 @@ pushbullet.py discord-webhook selenium #opensky-api = {editable = true, git = "https://github.com/openskynetwork/opensky-api.git", subdirectory = "python"} +git+https://github.com/openskynetwork/opensky-api.git#egg=subdir&subdirectory=python" webdriver-manager shapely -python-telegram-bot \ No newline at end of file +python-telegram-bot From ae12a8836152252161f4c63a27e1b455e9264fdb Mon Sep 17 00:00:00 2001 From: timogoosen Date: Wed, 27 Apr 2022 15:46:50 +0200 Subject: [PATCH 04/70] try this instead --- requirements.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index a86b9e1..2ac154b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,7 +9,8 @@ pushbullet.py discord-webhook selenium #opensky-api = {editable = true, git = "https://github.com/openskynetwork/opensky-api.git", subdirectory = "python"} -git+https://github.com/openskynetwork/opensky-api.git#egg=subdir&subdirectory=python" +# git+https://github.com/openskynetwork/opensky-api.git#egg=subdir&subdirectory=python" +https://github.com/openskynetwork/opensky-api/tree/master/python webdriver-manager shapely python-telegram-bot From 4a633fb8a3fa1d0e6565842113d40d22dbdd9ea7 Mon Sep 17 00:00:00 2001 From: timogoosen Date: Wed, 27 Apr 2022 15:48:23 +0200 Subject: [PATCH 05/70] see --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 2ac154b..1211b01 100644 --- a/requirements.txt +++ b/requirements.txt @@ -10,7 +10,7 @@ discord-webhook selenium #opensky-api = {editable = true, git = "https://github.com/openskynetwork/opensky-api.git", subdirectory = "python"} # git+https://github.com/openskynetwork/opensky-api.git#egg=subdir&subdirectory=python" -https://github.com/openskynetwork/opensky-api/tree/master/python +-e https://github.com/openskynetwork/opensky-api/tree/master/python webdriver-manager shapely python-telegram-bot From d17c0ecbd39a1bcf0ce83027eff879030e0ee3b7 Mon Sep 17 00:00:00 2001 From: timogoosen Date: Wed, 27 Apr 2022 15:51:43 +0200 Subject: [PATCH 06/70] try again --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 1211b01..497cfdb 100644 --- a/requirements.txt +++ b/requirements.txt @@ -10,7 +10,7 @@ discord-webhook selenium #opensky-api = {editable = true, git = "https://github.com/openskynetwork/opensky-api.git", subdirectory = "python"} # git+https://github.com/openskynetwork/opensky-api.git#egg=subdir&subdirectory=python" --e https://github.com/openskynetwork/opensky-api/tree/master/python +-e "git+https://github.com/openskynetwork/opensky-api.git#egg=subdir&subdirectory=python" webdriver-manager shapely python-telegram-bot From 8474fc6ba7104a33c5c31146aaa324ee7a64b6f3 Mon Sep 17 00:00:00 2001 From: timogoosen Date: Wed, 27 Apr 2022 16:05:35 +0200 Subject: [PATCH 07/70] try like this,next without e --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 497cfdb..7a101ff 100644 --- a/requirements.txt +++ b/requirements.txt @@ -10,7 +10,7 @@ discord-webhook selenium #opensky-api = {editable = true, git = "https://github.com/openskynetwork/opensky-api.git", subdirectory = "python"} # git+https://github.com/openskynetwork/opensky-api.git#egg=subdir&subdirectory=python" --e "git+https://github.com/openskynetwork/opensky-api.git#egg=subdir&subdirectory=python" +-e "git+ssh://git@github.com/openskynetwork/opensky-api.git#subdirectory=python" webdriver-manager shapely python-telegram-bot From 622b1d2b839505282c192b8dcb0da4e66af8f9cc Mon Sep 17 00:00:00 2001 From: timogoosen Date: Wed, 27 Apr 2022 16:33:10 +0200 Subject: [PATCH 08/70] try again --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 7a101ff..4ec9810 100644 --- a/requirements.txt +++ b/requirements.txt @@ -10,7 +10,7 @@ discord-webhook selenium #opensky-api = {editable = true, git = "https://github.com/openskynetwork/opensky-api.git", subdirectory = "python"} # git+https://github.com/openskynetwork/opensky-api.git#egg=subdir&subdirectory=python" --e "git+ssh://git@github.com/openskynetwork/opensky-api.git#subdirectory=python" +-e "git+ssh://git@github.com/openskynetwork/opensky-api.git#subdirectory=python#egg=opensky-api" webdriver-manager shapely python-telegram-bot From b1fda9f91fca7440cb45ba7c5a8f2ee23ab27b7a Mon Sep 17 00:00:00 2001 From: timogoosen Date: Wed, 27 Apr 2022 16:38:46 +0200 Subject: [PATCH 09/70] almost there --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 4ec9810..92b4f35 100644 --- a/requirements.txt +++ b/requirements.txt @@ -10,7 +10,7 @@ discord-webhook selenium #opensky-api = {editable = true, git = "https://github.com/openskynetwork/opensky-api.git", subdirectory = "python"} # git+https://github.com/openskynetwork/opensky-api.git#egg=subdir&subdirectory=python" --e "git+ssh://git@github.com/openskynetwork/opensky-api.git#subdirectory=python#egg=opensky-api" +-e "git+https://github.com/openskynetwork/opensky-api.git#subdirectory=python#egg=opensky-api" webdriver-manager shapely python-telegram-bot From a9e96e14942de025cf8962b1f203c3d7fd1c3acd Mon Sep 17 00:00:00 2001 From: timogoosen Date: Wed, 27 Apr 2022 16:42:01 +0200 Subject: [PATCH 10/70] Gonna work now --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 92b4f35..f124dda 100644 --- a/requirements.txt +++ b/requirements.txt @@ -10,7 +10,7 @@ discord-webhook selenium #opensky-api = {editable = true, git = "https://github.com/openskynetwork/opensky-api.git", subdirectory = "python"} # git+https://github.com/openskynetwork/opensky-api.git#egg=subdir&subdirectory=python" --e "git+https://github.com/openskynetwork/opensky-api.git#subdirectory=python#egg=opensky-api" +"git+https://github.com/openskynetwork/opensky-api.git#subdirectory=python#egg=opensky-api" webdriver-manager shapely python-telegram-bot From 87b7818e0f2eb8120e8b4a7ed600d1d649c9e67a Mon Sep 17 00:00:00 2001 From: timogoosen Date: Wed, 27 Apr 2022 16:58:27 +0200 Subject: [PATCH 11/70] so close --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index f124dda..a25a94d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -10,7 +10,7 @@ discord-webhook selenium #opensky-api = {editable = true, git = "https://github.com/openskynetwork/opensky-api.git", subdirectory = "python"} # git+https://github.com/openskynetwork/opensky-api.git#egg=subdir&subdirectory=python" -"git+https://github.com/openskynetwork/opensky-api.git#subdirectory=python#egg=opensky-api" +"git+https://github.com/openskynetwork/opensky-api.git#subdirectory=python&egg=opensky-api" webdriver-manager shapely python-telegram-bot From dfbf2e000782bf21aabf73e43a239298ada5d756 Mon Sep 17 00:00:00 2001 From: timogoosen Date: Wed, 27 Apr 2022 17:00:35 +0200 Subject: [PATCH 12/70] aa --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index a25a94d..e88e8aa 100644 --- a/requirements.txt +++ b/requirements.txt @@ -10,7 +10,7 @@ discord-webhook selenium #opensky-api = {editable = true, git = "https://github.com/openskynetwork/opensky-api.git", subdirectory = "python"} # git+https://github.com/openskynetwork/opensky-api.git#egg=subdir&subdirectory=python" -"git+https://github.com/openskynetwork/opensky-api.git#subdirectory=python&egg=opensky-api" +"git+https://github.com/openskynetwork/opensky-api.git#subdirectory=python&egg=python" webdriver-manager shapely python-telegram-bot From b87324ab1829f06d1b86e5e5bb53511db9361a74 Mon Sep 17 00:00:00 2001 From: timogoosen Date: Wed, 27 Apr 2022 17:05:18 +0200 Subject: [PATCH 13/70] try agian --- requirements.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index e88e8aa..45787a3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -10,7 +10,8 @@ discord-webhook selenium #opensky-api = {editable = true, git = "https://github.com/openskynetwork/opensky-api.git", subdirectory = "python"} # git+https://github.com/openskynetwork/opensky-api.git#egg=subdir&subdirectory=python" -"git+https://github.com/openskynetwork/opensky-api.git#subdirectory=python&egg=python" +#"git+https://github.com/openskynetwork/opensky-api.git#subdirectory=python&egg=python" +git+ssh://git@github.com/openskynetwork/opensky-api.git@master#subdirectory=python/ webdriver-manager shapely python-telegram-bot From b9e42c3b1fc0aaeedfe69fcdbeaa05cefab139a2 Mon Sep 17 00:00:00 2001 From: timogoosen Date: Wed, 27 Apr 2022 17:09:52 +0200 Subject: [PATCH 14/70] This works --- requirements.txt | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/requirements.txt b/requirements.txt index 45787a3..a3d9b36 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,10 +8,7 @@ tweepy pushbullet.py discord-webhook selenium -#opensky-api = {editable = true, git = "https://github.com/openskynetwork/opensky-api.git", subdirectory = "python"} -# git+https://github.com/openskynetwork/opensky-api.git#egg=subdir&subdirectory=python" -#"git+https://github.com/openskynetwork/opensky-api.git#subdirectory=python&egg=python" -git+ssh://git@github.com/openskynetwork/opensky-api.git@master#subdirectory=python/ +git+https://github.com/openskynetwork/opensky-api.git@master#subdirectory=python/ webdriver-manager shapely python-telegram-bot From c7d11b95f435bb87e824438f4203b527e1f13a36 Mon Sep 17 00:00:00 2001 From: Valerio Souza Date: Wed, 18 May 2022 13:33:22 -0300 Subject: [PATCH 15/70] RapidAPI --- __main__.py | 82 +++++++++++++++++++++++++++++++++++++++----- configs/mainconf.ini | 24 ++++++------- configs/plane1.ini | 2 +- defRpdADSBX.py | 80 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 166 insertions(+), 22 deletions(-) create mode 100644 defRpdADSBX.py diff --git a/__main__.py b/__main__.py index 4ac9890..f0cf849 100644 --- a/__main__.py +++ b/__main__.py @@ -1,5 +1,4 @@ import configparser -from logging import DEBUG import time from colorama import Fore, Back, Style import platform @@ -49,11 +48,11 @@ main_config.read('./configs/mainconf.ini') source = main_config.get('DATA', 'SOURCE') if main_config.getboolean('DISCORD', 'ENABLE'): from defDiscord import sendDis - sendDis("Started", main_config, role_id = main_config.get('DISCORD', 'ROLE_ID')) + sendDis("Started", main_config) def service_exit(signum, frame): if main_config.getboolean('DISCORD', 'ENABLE'): from defDiscord import sendDis - sendDis("Service Stop", main_config, role_id = main_config.get('DISCORD', 'ROLE_ID')) + sendDis("Service Stop", main_config) raise SystemExit("Service Stop") signal.signal(signal.SIGTERM, service_exit) if os.path.isfile("lookup_route.py"): @@ -83,7 +82,6 @@ try: except pytz.exceptions.UnknownTimeZoneError: tz = pytz.UTC last_ra_count = None - print(len(planes), "Planes configured") while True: datetime_tz = datetime.now(tz) if datetime_tz.hour == 0 and datetime_tz.minute == 0: @@ -140,12 +138,75 @@ try: for planeData in data['ac']: data_indexed[planeData[icao_key].upper()] = planeData for key, obj in planes.items(): - if key in data_indexed.keys(): + try: if api_version == 1: obj.run_adsbx_v1(data_indexed[key.upper()]) elif api_version == 2: obj.run_adsbx_v2(data_indexed[key.upper()]) - else: + except KeyError: + obj.run_empty() + else: + for obj in planes.values(): + obj.run_empty() + else: + failed_count += 1 + elif source == "RpdADSBX": + #ACAS data + from defADSBX import pull_date_ras + import ast + today = datetime.utcnow() + date = today.strftime("%Y/%m/%d") + ras = pull_date_ras(date) + sorted_ras = {} + if ras is not None: + #Testing RAs + #if last_ra_count is not None: + # with open('./testing/acastest.json') as f: + # data = f.readlines() + # ras += data + ra_count = len(ras) + if last_ra_count is not None and ra_count != last_ra_count: + print(abs(ra_count - last_ra_count), "new Resolution Advisories") + for ra_num, ra in enumerate(ras[last_ra_count:]): + ra = ast.literal_eval(ra) + if ra['hex'].upper() in planes.keys(): + if ra['hex'].upper() not in sorted_ras.keys(): + sorted_ras[ra['hex'].upper()] = [ra] + else: + sorted_ras[ra['hex'].upper()].append(ra) + else: + print("No new Resolution Advisories") + last_ra_count = ra_count + for key, obj in planes.items(): + if sorted_ras != {} and key in sorted_ras.keys(): + print(key, "has", len(sorted_ras[key]), "RAs") + obj.check_new_ras(sorted_ras[key]) + obj.expire_ra_types() + icao_key = 'hex' + from defRpdADSBX import pull_rpdadsbx + # print("Planes list: \n"+str((list(planes.keys())))) + # print("\nLen planes:\n"+str(len(planes))) + p = 0 + data = dict.fromkeys(['ac']) + # print(data) + while p < len(planes): + planeInfo = pull_rpdadsbx(str(list(planes.keys())[p])) + if p == 0: + data['ac'] = (planeInfo)['ac'] + else: + data['ac'].extend((planeInfo)['ac']) + # print("p = "+str(p)) + # print(str(list(planes.keys())[p]) + ": " + str(data)) + p += 1 + if data is not None: + if data['ac'] is not None: + data_indexed = {} + for planeData in data['ac']: + data_indexed[planeData[icao_key].upper()] = planeData + for key, obj in planes.items(): + try: + obj.run_adsbx_v2(data_indexed[key.upper()]) + except KeyError: obj.run_empty() else: for obj in planes.values(): @@ -186,7 +247,10 @@ try: footer = "-------- " + str(running_Count) + " -------- " + str(datetime_tz.strftime("%I:%M:%S %p")) + " ------------------------Elapsed Time- " + str(round(elapsed_calc_time, 3)) + " -------------------------------------" print (Back.GREEN + Fore.BLACK + footer[0:100] + Style.RESET_ALL) - sleep_sec = 30 + if main_config.has_section('SLEEP'): + sleep_sec = int(main_config.get('SLEEP', 'SLEEPSEC')) + else: + sleep_sec = 30 for i in range(sleep_sec,0,-1): if i < 10: i = " " + str(i) @@ -208,10 +272,10 @@ except Exception as e: except OSError: pass import logging - logging.basicConfig(filename='crash_latest.log', filemode='w', format='%(asctime)s - %(message)s',level=logging.DEBUG) + logging.basicConfig(filename='crash_latest.log', filemode='w', format='%(asctime)s - %(message)s') logging.Formatter.converter = time.gmtime logging.error(e) logging.error(str(traceback.format_exc())) from defDiscord import sendDis - sendDis(str("Error Exiting: " + str(e) + " Failed on " + "https://globe.adsbexchange.com/?icao=" + key), main_config, main_config.get('DISCORD', 'ROLE_ID'), "crash_latest.log") + sendDis(str("Error Exiting: " + str(e) + "Failed on " + key), main_config, "crash_latest.log") raise e \ No newline at end of file diff --git a/configs/mainconf.ini b/configs/mainconf.ini index 5c0619f..0a3c999 100644 --- a/configs/mainconf.ini +++ b/configs/mainconf.ini @@ -2,8 +2,8 @@ #Source to pull data from #SHOULD BE ADSBX which is ADS-B Exchange or OPENS which is OpenSky #By default configured with OpenSky which anyone can use without a login -#ADS-B Exchange has better data but is not avalible unless you pay (see: https://www.adsbexchange.com/data/ ) -SOURCE = OPENS +#ADS-B Exchange has better data but is not avalible unless you feed their network or pay. +SOURCE = RpdADSBX #Default amount of time after data loss to trigger a landing when under 10k ft DATA_LOSS_MINS = 5 #Failover from one source to the other, only enable if you have both sources setup. @@ -28,6 +28,15 @@ PROXY_HOST = USERNAME = None PASSWORD = None +#ADS-B Exchange on RapidAPI https://rapidapi.com/adsbx/api/adsbexchange-com1/ +[RpdADSBX] +API_KEY = none +API_VERSION = 2 + +#Define the delay interval in seconds between each data request. This is usefull if you have limited requests in the API. +[SLEEP] +SLEEPSEC = 60 + [GOOGLE] #API KEY for Google Static Maps only if you using this on any of the planes. API_KEY = googleapikey @@ -36,13 +45,4 @@ API_KEY = googleapikey [DISCORD] ENABLE = FALSE USERNAME = usernamehere -URL = webhookurl - -[TFRS] -URL = http://127.0.0.1:5000/detailed_all - -[TWITTER] -#GLOBAL TWITTER CONSUMER KEY AND CONSUMERS SECRET ONLY NEED TO BE HERE NOW -ENABLE = False -CONSUMER_KEY = ck -CONSUMER_SECRET = cs +URL = webhookurl \ No newline at end of file diff --git a/configs/plane1.ini b/configs/plane1.ini index 7891fa0..ac167d8 100644 --- a/configs/plane1.ini +++ b/configs/plane1.ini @@ -54,4 +54,4 @@ ACCESS_TOKEN = ENABLE = FALSE TITLE = Title Of Telegram message ROOM_ID = -100xxxxxxxxxx -BOT_TOKEN = xxxxxxxxxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx +BOT_TOKEN = xxxxxxxxxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \ No newline at end of file diff --git a/defRpdADSBX.py b/defRpdADSBX.py new file mode 100644 index 0000000..727be14 --- /dev/null +++ b/defRpdADSBX.py @@ -0,0 +1,80 @@ +import requests +import json +import configparser +from datetime import datetime +from http.client import IncompleteRead +import http.client as http +import urllib3 +import socket +main_config = configparser.ConfigParser() +main_config.read('./configs/mainconf.ini') +api_version = main_config.get('RpdADSBX', 'API_VERSION') + +# def pull(url, headers): +# try: +# response = requests.get(url, headers = headers, timeout=30) +# print ("HTTP Status Code:", response.status_code) +# response.raise_for_status() +# except (requests.HTTPError, ConnectionError, requests.Timeout, urllib3.exceptions.ConnectionError) as error_message: +# print("Basic Connection Error") +# print(error_message) +# response = None +# except (requests.RequestException, IncompleteRead, ValueError, socket.timeout, socket.gaierror) as error_message: +# print("Connection Error") +# print(error_message) +# response = None +# except Exception as error_message: +# print("Connection Error uncaught, basic exception for all") +# print(error_message) +# response = None +# return response + +def pull_rpdadsbx(planes): + api_version = int(main_config.get('RpdADSBX', 'API_VERSION')) + if api_version != 2: + raise ValueError("Bad RapidAPI ADSBX API Version") + url = "https://adsbexchange-com1.p.rapidapi.com/v2/icao/" + planes + "/" + headers = { + "X-RapidAPI-Host": "adsbexchange-com1.p.rapidapi.com", + "X-RapidAPI-Key": main_config.get('RpdADSBX', 'API_KEY') + } + try: + response = requests.get(url, headers = headers, timeout=30) + except Exception as error: + print('err.args:' + str(error.args)) + response = None + if response is not None: + try: + data = json.loads(response.text) + except (json.decoder.JSONDecodeError, ValueError) as error_message: + print("Error with JSON") + print(error_message) + data = None + except TypeError as error_message: + print("Type Error", error_message) + data = None + else: + if "msg" in data.keys() and data['msg'] != "No error": + raise ValueError("Error from ADSBX: msg = ", data['msg']) + if "ctime" in data.keys(): + data_ctime = float(data['ctime']) / 1000.0 + print("Data ctime:",datetime.utcfromtimestamp(data_ctime)) + if "now" in data.keys(): + data_now = float(data['now']) / 1000.0 + print("Data now time:",datetime.utcfromtimestamp(data_now)) + print("Current UTC:", datetime.utcnow()) + else: + data = None + return data + +# def pull_date_ras(date): +# url = f"https://globe.adsbexchange.com/globe_history/{date}/acas/acas.json" +# headers = { +# 'Accept-Encoding': 'gzip' +# } +# response = pull(url, headers) +# if response is not None: +# data = response.text.splitlines() +# else: +# data = None +# return data \ No newline at end of file From e57948d6309b7b5f1a2a7e16f9f1dd5042aecf08 Mon Sep 17 00:00:00 2001 From: NomsterDude <85312283+NomsterDude@users.noreply.github.com> Date: Fri, 10 Jun 2022 11:37:38 -0700 Subject: [PATCH 16/70] Update README.md Grammar Fixed a couple grammar mistakes. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d28500b..e3cb733 100644 --- a/README.md +++ b/README.md @@ -15,11 +15,11 @@ Notify if configured planes have taken off or landed using Python with Date: Mon, 13 Jun 2022 21:54:28 -0400 Subject: [PATCH 18/70] TFR context overide variable fix --- planeClass.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/planeClass.py b/planeClass.py index 7fc2732..2d09d47 100644 --- a/planeClass.py +++ b/planeClass.py @@ -437,7 +437,7 @@ class Plane: getMap((municipality + ", " + state + ", " + country_code), self.map_file_name) elif Plane.main_config.get('MAP', 'OPTION') == "ADSBX": from defSS import get_adsbx_screenshot - url_params = f"largeMode=2&hideButtons&hideSidebar&mapDim=0&zoom=10&icao={self.icao}&overlays={self.get_adsbx_map_overlays()}" + url_params = f"largeMode=2&hideButtons&hideSidebar&mapDim=0&zoom=10&icao={self.icao}&overlays={self.get_adsbx_map_overlays()}" get_adsbx_screenshot(self.map_file_name, url_params, overrides=self.overrides) from modify_image import append_airport text_credit = self.config.get('MAP', 'TEXT_CREDIT') if self.config.has_option('MAP', 'TEXT_CREDIT') else None @@ -559,7 +559,7 @@ class Plane: getMap((municipality + ", " + state + ", " + country_code), self.map_file_name) if Plane.main_config.get('MAP', 'OPTION') == "ADSBX": from defSS import get_adsbx_screenshot - url_params = f"largeMode=2&hideButtons&hideSidebar&mapDim=0&zoom=10&icao={self.icao}&overlays={self.get_adsbx_map_overlays()}" + url_params = f"largeMode=2&hideButtons&hideSidebar&mapDim=0&zoom=10&icao={self.icao}&overlays={self.get_adsbx_map_overlays()}" get_adsbx_screenshot(self.map_file_name, url_params, overrides=self.overrides) if self.config.getboolean('DISCORD', 'ENABLE'): dis_message = (self.dis_title + " " + squawk_message) @@ -582,7 +582,7 @@ class Plane: dis_message = (self.dis_title + " " + mode + " mode enabled.") if mode == "Approach": from defSS import get_adsbx_screenshot - url_params = f"largeMode=2&hideButtons&hideSidebar&mapDim=0&zoom=10&icao={self.icao}&overlays={self.get_adsbx_map_overlays()}" + url_params = f"largeMode=2&hideButtons&hideSidebar&mapDim=0&zoom=10&icao={self.icao}&overlays={self.get_adsbx_map_overlays()}" get_adsbx_screenshot(self.map_file_name, url_params, overrides=self.overrides) sendDis(dis_message, self.config, None, self.map_file_name) #elif mode in ["Althold", "VNAV", "LNAV"] and self.sel_nav_alt != None: @@ -765,8 +765,7 @@ class Plane: return tfr_map_filename from defSS import get_adsbx_screenshot - - url_params = f"largeMode=2&hideButtons&hideSidebar&mapDim=0&zoom=10&icao={self.icao}&overlays={self.get_adsbx_map_overlays()}" + url_params = f"largeMode=2&hideButtons&hideSidebar&mapDim=0&zoom=10&icao={self.icao}&overlays={self.get_adsbx_map_overlays()}" get_adsbx_screenshot(self.map_file_name, url_params, overrides=self.overrides) if nearest_airport_dict['distance_mi'] < 3: if "touchngo" in self.circle_history.keys(): @@ -777,8 +776,8 @@ class Plane: message = f"Circling {round(nearest_airport_dict['distance_mi'], 2)}mi {cardinal} of {nearest_airport_dict['icao']}, {nearest_airport_dict['name']} at {self.alt_ft}ft. " tfr_map_filename = None if in_tfr is not None: - context = "Inside" if 'context' not in in_tfr.keys() else "Above" if in_tfr['context'] == 'above' else "Below" - message += f" {context} TFR {in_tfr['info']['NOTAM']}, a TFR for {in_tfr['info']['Type'].title()}" + wording_context = "Inside" if 'context' not in in_tfr.keys() else "Above" if in_tfr['context'] == 'above' else "Below" + message += f" {wording_context} TFR {in_tfr['info']['NOTAM']}, a TFR for {in_tfr['info']['Type'].title()}" tfr_map_filename = tfr_image(context, (self.latitude, self.longitude)) elif in_tfr is None and closest_tfr is not None and "distance" in closest_tfr.keys() and closest_tfr["distance"] <= 20: message += f" {closest_tfr['distance']} miles from TFR {closest_tfr['info']['NOTAM']}, a TFR for {closest_tfr['info']['Type']}" @@ -795,7 +794,7 @@ class Plane: sendTeleg(photo, message, self.config) if self.config.getboolean('DISCORD', 'ENABLE'): role_id = self.config.get('DISCORD', 'ROLE_ID') if self.config.has_option('DISCORD', 'ROLE_ID') else None - if tfr_map_filename is not None: + if tfr_map_filename is not None: sendDis(message, self.config, role_id, self.map_file_name, tfr_map_filename) elif tfr_map_filename is None: sendDis(message, self.config, role_id, self.map_file_name) From fb1ae371c51bdac696ad4bcc2626e3e5277ceae7 Mon Sep 17 00:00:00 2001 From: Mark Bumiller Date: Fri, 17 Jun 2022 15:09:09 -0400 Subject: [PATCH 19/70] preventing credential leaks both ini files end up with secrets that should not be checked in since they are user specifc, they should bnot be in version control - moving example configs to have `.example` extension - adding configs/*.ini to gitignore fixes Jxck-S/plane-notify#60 --- .gitignore | 2 ++ README.md | 1 + configs/{mainconf.ini => mainconf.ini.example} | 0 configs/{plane1.ini => plane1.ini.example} | 0 4 files changed, 3 insertions(+) rename configs/{mainconf.ini => mainconf.ini.example} (100%) rename configs/{plane1.ini => plane1.ini.example} (100%) diff --git a/.gitignore b/.gitignore index 456c050..fe2bcb0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +configs/*.ini + # PyCharm .idea .vscode/settings.json diff --git a/README.md b/README.md index e3cb733..6ac25fa 100644 --- a/README.md +++ b/README.md @@ -67,6 +67,7 @@ cd plane-notify ### Configure main config file with keys and URLs (mainconf.ini) in the configs directory +- Copy `mainconf.ini.example` to `mainconf.ini` andCopy `plane1.ini.example` to `plane1.ini`. `plane1.ini` can change names as long as it ends with the ini extension - 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 you are ready to pay. diff --git a/configs/mainconf.ini b/configs/mainconf.ini.example similarity index 100% rename from configs/mainconf.ini rename to configs/mainconf.ini.example diff --git a/configs/plane1.ini b/configs/plane1.ini.example similarity index 100% rename from configs/plane1.ini rename to configs/plane1.ini.example From 1bebad1a9cf552ee0e4fdf6b65b7dcac87cfafd6 Mon Sep 17 00:00:00 2001 From: Mark Bumiller Date: Mon, 20 Jun 2022 17:56:10 -0400 Subject: [PATCH 20/70] codacy fixes removed unused imports removed commented out code --- defRpdADSBX.py | 35 +---------------------------------- 1 file changed, 1 insertion(+), 34 deletions(-) diff --git a/defRpdADSBX.py b/defRpdADSBX.py index 727be14..d524943 100644 --- a/defRpdADSBX.py +++ b/defRpdADSBX.py @@ -3,32 +3,11 @@ import json import configparser from datetime import datetime from http.client import IncompleteRead -import http.client as http -import urllib3 -import socket + main_config = configparser.ConfigParser() main_config.read('./configs/mainconf.ini') api_version = main_config.get('RpdADSBX', 'API_VERSION') -# def pull(url, headers): -# try: -# response = requests.get(url, headers = headers, timeout=30) -# print ("HTTP Status Code:", response.status_code) -# response.raise_for_status() -# except (requests.HTTPError, ConnectionError, requests.Timeout, urllib3.exceptions.ConnectionError) as error_message: -# print("Basic Connection Error") -# print(error_message) -# response = None -# except (requests.RequestException, IncompleteRead, ValueError, socket.timeout, socket.gaierror) as error_message: -# print("Connection Error") -# print(error_message) -# response = None -# except Exception as error_message: -# print("Connection Error uncaught, basic exception for all") -# print(error_message) -# response = None -# return response - def pull_rpdadsbx(planes): api_version = int(main_config.get('RpdADSBX', 'API_VERSION')) if api_version != 2: @@ -66,15 +45,3 @@ def pull_rpdadsbx(planes): else: data = None return data - -# def pull_date_ras(date): -# url = f"https://globe.adsbexchange.com/globe_history/{date}/acas/acas.json" -# headers = { -# 'Accept-Encoding': 'gzip' -# } -# response = pull(url, headers) -# if response is not None: -# data = response.text.splitlines() -# else: -# data = None -# return data \ No newline at end of file From 11383c7c0d04790ef712743fb9557781a07f5638 Mon Sep 17 00:00:00 2001 From: Mark Bumiller Date: Mon, 20 Jun 2022 21:05:54 -0400 Subject: [PATCH 21/70] removing unused import --- defRpdADSBX.py | 1 - 1 file changed, 1 deletion(-) diff --git a/defRpdADSBX.py b/defRpdADSBX.py index d524943..cce4c35 100644 --- a/defRpdADSBX.py +++ b/defRpdADSBX.py @@ -2,7 +2,6 @@ import requests import json import configparser from datetime import datetime -from http.client import IncompleteRead main_config = configparser.ConfigParser() main_config.read('./configs/mainconf.ini') From 73f4df454f26ff081577a1015aa32b000f9d037f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 6 Jul 2022 21:52:22 +0000 Subject: [PATCH 22/70] Bump lxml from 4.8.0 to 4.9.1 Bumps [lxml](https://github.com/lxml/lxml) from 4.8.0 to 4.9.1. - [Release notes](https://github.com/lxml/lxml/releases) - [Changelog](https://github.com/lxml/lxml/blob/master/CHANGES.txt) - [Commits](https://github.com/lxml/lxml/compare/lxml-4.8.0...lxml-4.9.1) --- updated-dependencies: - dependency-name: lxml dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- Pipfile.lock | 472 ++++++++++++++++++++++++++------------------------- 1 file changed, 239 insertions(+), 233 deletions(-) diff --git a/Pipfile.lock b/Pipfile.lock index 1d5bd99..4b771d5 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -64,74 +64,89 @@ }, "certifi": { "hashes": [ - "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872", - "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569" + "sha256:84c85a9078b11105f04f3036a9482ae10e4621616db313fe045dd24743a0820d", + "sha256:fe86415d55e84719d75f8b69414f6438ac3547d2078ab91b67e779ef69378412" ], - "version": "==2021.10.8" + "markers": "python_version >= '3.6'", + "version": "==2022.6.15" }, "cffi": { "hashes": [ - "sha256:00c878c90cb53ccfaae6b8bc18ad05d2036553e6d9d1d9dbcf323bbe83854ca3", - "sha256:0104fb5ae2391d46a4cb082abdd5c69ea4eab79d8d44eaaf79f1b1fd806ee4c2", - "sha256:06c48159c1abed75c2e721b1715c379fa3200c7784271b3c46df01383b593636", - "sha256:0808014eb713677ec1292301ea4c81ad277b6cdf2fdd90fd540af98c0b101d20", - "sha256:10dffb601ccfb65262a27233ac273d552ddc4d8ae1bf93b21c94b8511bffe728", - "sha256:14cd121ea63ecdae71efa69c15c5543a4b5fbcd0bbe2aad864baca0063cecf27", - "sha256:17771976e82e9f94976180f76468546834d22a7cc404b17c22df2a2c81db0c66", - "sha256:181dee03b1170ff1969489acf1c26533710231c58f95534e3edac87fff06c443", - "sha256:23cfe892bd5dd8941608f93348c0737e369e51c100d03718f108bf1add7bd6d0", - "sha256:263cc3d821c4ab2213cbe8cd8b355a7f72a8324577dc865ef98487c1aeee2bc7", - "sha256:2756c88cbb94231c7a147402476be2c4df2f6078099a6f4a480d239a8817ae39", - "sha256:27c219baf94952ae9d50ec19651a687b826792055353d07648a5695413e0c605", - "sha256:2a23af14f408d53d5e6cd4e3d9a24ff9e05906ad574822a10563efcef137979a", - "sha256:31fb708d9d7c3f49a60f04cf5b119aeefe5644daba1cd2a0fe389b674fd1de37", - "sha256:3415c89f9204ee60cd09b235810be700e993e343a408693e80ce7f6a40108029", - "sha256:3773c4d81e6e818df2efbc7dd77325ca0dcb688116050fb2b3011218eda36139", - "sha256:3b96a311ac60a3f6be21d2572e46ce67f09abcf4d09344c49274eb9e0bf345fc", - "sha256:3f7d084648d77af029acb79a0ff49a0ad7e9d09057a9bf46596dac9514dc07df", - "sha256:41d45de54cd277a7878919867c0f08b0cf817605e4eb94093e7516505d3c8d14", - "sha256:4238e6dab5d6a8ba812de994bbb0a79bddbdf80994e4ce802b6f6f3142fcc880", - "sha256:45db3a33139e9c8f7c09234b5784a5e33d31fd6907800b316decad50af323ff2", - "sha256:45e8636704eacc432a206ac7345a5d3d2c62d95a507ec70d62f23cd91770482a", - "sha256:4958391dbd6249d7ad855b9ca88fae690783a6be9e86df65865058ed81fc860e", - "sha256:4a306fa632e8f0928956a41fa8e1d6243c71e7eb59ffbd165fc0b41e316b2474", - "sha256:57e9ac9ccc3101fac9d6014fba037473e4358ef4e89f8e181f8951a2c0162024", - "sha256:59888172256cac5629e60e72e86598027aca6bf01fa2465bdb676d37636573e8", - "sha256:5e069f72d497312b24fcc02073d70cb989045d1c91cbd53979366077959933e0", - "sha256:64d4ec9f448dfe041705426000cc13e34e6e5bb13736e9fd62e34a0b0c41566e", - "sha256:6dc2737a3674b3e344847c8686cf29e500584ccad76204efea14f451d4cc669a", - "sha256:74fdfdbfdc48d3f47148976f49fab3251e550a8720bebc99bf1483f5bfb5db3e", - "sha256:75e4024375654472cc27e91cbe9eaa08567f7fbdf822638be2814ce059f58032", - "sha256:786902fb9ba7433aae840e0ed609f45c7bcd4e225ebb9c753aa39725bb3e6ad6", - "sha256:8b6c2ea03845c9f501ed1313e78de148cd3f6cad741a75d43a29b43da27f2e1e", - "sha256:91d77d2a782be4274da750752bb1650a97bfd8f291022b379bb8e01c66b4e96b", - "sha256:91ec59c33514b7c7559a6acda53bbfe1b283949c34fe7440bcf917f96ac0723e", - "sha256:920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954", - "sha256:a5263e363c27b653a90078143adb3d076c1a748ec9ecc78ea2fb916f9b861962", - "sha256:abb9a20a72ac4e0fdb50dae135ba5e77880518e742077ced47eb1499e29a443c", - "sha256:c2051981a968d7de9dd2d7b87bcb9c939c74a34626a6e2f8181455dd49ed69e4", - "sha256:c21c9e3896c23007803a875460fb786118f0cdd4434359577ea25eb556e34c55", - "sha256:c2502a1a03b6312837279c8c1bd3ebedf6c12c4228ddbad40912d671ccc8a962", - "sha256:d4d692a89c5cf08a8557fdeb329b82e7bf609aadfaed6c0d79f5a449a3c7c023", - "sha256:da5db4e883f1ce37f55c667e5c0de439df76ac4cb55964655906306918e7363c", - "sha256:e7022a66d9b55e93e1a845d8c9eba2a1bebd4966cd8bfc25d9cd07d515b33fa6", - "sha256:ef1f279350da2c586a69d32fc8733092fd32cc8ac95139a00377841f59a3f8d8", - "sha256:f54a64f8b0c8ff0b64d18aa76675262e1700f3995182267998c31ae974fbc382", - "sha256:f5c7150ad32ba43a07c4479f40241756145a1f03b43480e058cfd862bf5041c7", - "sha256:f6f824dc3bce0edab5f427efcfb1d63ee75b6fcb7282900ccaf925be84efb0fc", - "sha256:fd8a250edc26254fe5b33be00402e6d287f562b6a5b2152dec302fa15bb3e997", - "sha256:ffaa5c925128e29efbde7301d8ecaf35c8c60ffbcd6a1ffd3a552177c8e5e796" + "sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5", + "sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef", + "sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104", + "sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426", + "sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405", + "sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375", + "sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a", + "sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e", + "sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc", + "sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf", + "sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185", + "sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497", + "sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3", + "sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35", + "sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c", + "sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83", + "sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21", + "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca", + "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984", + "sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac", + "sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd", + "sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee", + "sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a", + "sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2", + "sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192", + "sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7", + "sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585", + "sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f", + "sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e", + "sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27", + "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b", + "sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e", + "sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e", + "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d", + "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c", + "sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415", + "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82", + "sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02", + "sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314", + "sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325", + "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c", + "sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3", + "sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914", + "sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045", + "sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d", + "sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9", + "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5", + "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2", + "sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c", + "sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3", + "sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2", + "sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8", + "sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d", + "sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d", + "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9", + "sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162", + "sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76", + "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4", + "sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e", + "sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9", + "sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6", + "sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b", + "sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01", + "sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0" ], "markers": "os_name == 'nt' and implementation_name != 'pypy'", - "version": "==1.15.0" + "version": "==1.15.1" }, "charset-normalizer": { "hashes": [ - "sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597", - "sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df" + "sha256:5189b6f22b01957427f35b6a08d9a0bc45b46d3788ef5a92e978433c7a35f8a5", + "sha256:575e708016ff3a5e3681541cb9d79312c416835686d054a23accb873b254f413" ], - "markers": "python_version >= '3'", - "version": "==2.0.12" + "markers": "python_version >= '3.6'", + "version": "==2.1.0" }, "colorama": { "hashes": [ @@ -151,28 +166,30 @@ }, "cryptography": { "hashes": [ - "sha256:0a3bf09bb0b7a2c93ce7b98cb107e9170a90c51a0162a20af1c61c765b90e60b", - "sha256:1f64a62b3b75e4005df19d3b5235abd43fa6358d5516cfc43d87aeba8d08dd51", - "sha256:32db5cc49c73f39aac27574522cecd0a4bb7384e71198bc65a0d23f901e89bb7", - "sha256:4881d09298cd0b669bb15b9cfe6166f16fc1277b4ed0d04a22f3d6430cb30f1d", - "sha256:4e2dddd38a5ba733be6a025a1475a9f45e4e41139d1321f412c6b360b19070b6", - "sha256:53e0285b49fd0ab6e604f4c5d9c5ddd98de77018542e88366923f152dbeb3c29", - "sha256:70f8f4f7bb2ac9f340655cbac89d68c527af5bb4387522a8413e841e3e6628c9", - "sha256:7b2d54e787a884ffc6e187262823b6feb06c338084bbe80d45166a1cb1c6c5bf", - "sha256:7be666cc4599b415f320839e36367b273db8501127b38316f3b9f22f17a0b815", - "sha256:8241cac0aae90b82d6b5c443b853723bcc66963970c67e56e71a2609dc4b5eaf", - "sha256:82740818f2f240a5da8dfb8943b360e4f24022b093207160c77cadade47d7c85", - "sha256:8897b7b7ec077c819187a123174b645eb680c13df68354ed99f9b40a50898f77", - "sha256:c2c5250ff0d36fd58550252f54915776940e4e866f38f3a7866d92b32a654b86", - "sha256:ca9f686517ec2c4a4ce930207f75c00bf03d94e5063cbc00a1dc42531511b7eb", - "sha256:d2b3d199647468d410994dbeb8cec5816fb74feb9368aedf300af709ef507e3e", - "sha256:da73d095f8590ad437cd5e9faf6628a218aa7c387e1fdf67b888b47ba56a17f0", - "sha256:e167b6b710c7f7bc54e67ef593f8731e1f45aa35f8a8a7b72d6e42ec76afd4b3", - "sha256:ea634401ca02367c1567f012317502ef3437522e2fc44a3ea1844de028fa4b84", - "sha256:ec6597aa85ce03f3e507566b8bcdf9da2227ec86c4266bd5e6ab4d9e0cc8dab2", - "sha256:f64b232348ee82f13aac22856515ce0195837f6968aeaa94a3d0353ea2ec06a6" - ], - "version": "==36.0.2" + "sha256:190f82f3e87033821828f60787cfa42bff98404483577b591429ed99bed39d59", + "sha256:2be53f9f5505673eeda5f2736bea736c40f051a739bfae2f92d18aed1eb54596", + "sha256:30788e070800fec9bbcf9faa71ea6d8068f5136f60029759fd8c3efec3c9dcb3", + "sha256:3d41b965b3380f10e4611dbae366f6dc3cefc7c9ac4e8842a806b9672ae9add5", + "sha256:4c590ec31550a724ef893c50f9a97a0c14e9c851c85621c5650d699a7b88f7ab", + "sha256:549153378611c0cca1042f20fd9c5030d37a72f634c9326e225c9f666d472884", + "sha256:63f9c17c0e2474ccbebc9302ce2f07b55b3b3fcb211ded18a42d5764f5c10a82", + "sha256:6bc95ed67b6741b2607298f9ea4932ff157e570ef456ef7ff0ef4884a134cc4b", + "sha256:7099a8d55cd49b737ffc99c17de504f2257e3787e02abe6d1a6d136574873441", + "sha256:75976c217f10d48a8b5a8de3d70c454c249e4b91851f6838a4e48b8f41eb71aa", + "sha256:7bc997818309f56c0038a33b8da5c0bfbb3f1f067f315f9abd6fc07ad359398d", + "sha256:80f49023dd13ba35f7c34072fa17f604d2f19bf0989f292cedf7ab5770b87a0b", + "sha256:91ce48d35f4e3d3f1d83e29ef4a9267246e6a3be51864a5b7d2247d5086fa99a", + "sha256:a958c52505c8adf0d3822703078580d2c0456dd1d27fabfb6f76fe63d2971cd6", + "sha256:b62439d7cd1222f3da897e9a9fe53bbf5c104fff4d60893ad1355d4c14a24157", + "sha256:b7f8dd0d4c1f21759695c05a5ec8536c12f31611541f8904083f3dc582604280", + "sha256:d204833f3c8a33bbe11eda63a54b1aad7aa7456ed769a982f21ec599ba5fa282", + "sha256:e007f052ed10cc316df59bc90fbb7ff7950d7e2919c9757fd42a2b8ecf8a5f67", + "sha256:f2dcb0b3b63afb6df7fd94ec6fbddac81b5492513f7b0436210d390c14d46ee8", + "sha256:f721d1885ecae9078c3f6bbe8a88bc0786b6e749bf32ccec1ef2b18929a05046", + "sha256:f7a6de3e98771e183645181b3627e2563dcde3ce94a9e42a3f427d2255190327", + "sha256:f8c0a6e9e1dd3eb0414ba320f85da6b0dcbd543126e30fcc546e7372a7fbf3b9" + ], + "version": "==37.0.4" }, "discord-webhook": { "hashes": [ @@ -224,101 +241,112 @@ "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff", "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d" ], - "markers": "python_version >= '3'", + "markers": "python_version >= '3.5'", "version": "==3.3" }, "lxml": { "hashes": [ - "sha256:078306d19a33920004addeb5f4630781aaeabb6a8d01398045fcde085091a169", - "sha256:0c1978ff1fd81ed9dcbba4f91cf09faf1f8082c9d72eb122e92294716c605428", - "sha256:1010042bfcac2b2dc6098260a2ed022968dbdfaf285fc65a3acf8e4eb1ffd1bc", - "sha256:1d650812b52d98679ed6c6b3b55cbb8fe5a5460a0aef29aeb08dc0b44577df85", - "sha256:20b8a746a026017acf07da39fdb10aa80ad9877046c9182442bf80c84a1c4696", - "sha256:2403a6d6fb61c285969b71f4a3527873fe93fd0abe0832d858a17fe68c8fa507", - "sha256:24f5c5ae618395ed871b3d8ebfcbb36e3f1091fd847bf54c4de623f9107942f3", - "sha256:28d1af847786f68bec57961f31221125c29d6f52d9187c01cd34dc14e2b29430", - "sha256:31499847fc5f73ee17dbe1b8e24c6dafc4e8d5b48803d17d22988976b0171f03", - "sha256:31ba2cbc64516dcdd6c24418daa7abff989ddf3ba6d3ea6f6ce6f2ed6e754ec9", - "sha256:330bff92c26d4aee79c5bc4d9967858bdbe73fdbdbacb5daf623a03a914fe05b", - "sha256:5045ee1ccd45a89c4daec1160217d363fcd23811e26734688007c26f28c9e9e7", - "sha256:52cbf2ff155b19dc4d4100f7442f6a697938bf4493f8d3b0c51d45568d5666b5", - "sha256:530f278849031b0eb12f46cca0e5db01cfe5177ab13bd6878c6e739319bae654", - "sha256:545bd39c9481f2e3f2727c78c169425efbfb3fbba6e7db4f46a80ebb249819ca", - "sha256:5804e04feb4e61babf3911c2a974a5b86f66ee227cc5006230b00ac6d285b3a9", - "sha256:5a58d0b12f5053e270510bf12f753a76aaf3d74c453c00942ed7d2c804ca845c", - "sha256:5f148b0c6133fb928503cfcdfdba395010f997aa44bcf6474fcdd0c5398d9b63", - "sha256:5f7d7d9afc7b293147e2d506a4596641d60181a35279ef3aa5778d0d9d9123fe", - "sha256:60d2f60bd5a2a979df28ab309352cdcf8181bda0cca4529769a945f09aba06f9", - "sha256:6259b511b0f2527e6d55ad87acc1c07b3cbffc3d5e050d7e7bcfa151b8202df9", - "sha256:6268e27873a3d191849204d00d03f65c0e343b3bcb518a6eaae05677c95621d1", - "sha256:627e79894770783c129cc5e89b947e52aa26e8e0557c7e205368a809da4b7939", - "sha256:62f93eac69ec0f4be98d1b96f4d6b964855b8255c345c17ff12c20b93f247b68", - "sha256:6d6483b1229470e1d8835e52e0ff3c6973b9b97b24cd1c116dca90b57a2cc613", - "sha256:6f7b82934c08e28a2d537d870293236b1000d94d0b4583825ab9649aef7ddf63", - "sha256:6fe4ef4402df0250b75ba876c3795510d782def5c1e63890bde02d622570d39e", - "sha256:719544565c2937c21a6f76d520e6e52b726d132815adb3447ccffbe9f44203c4", - "sha256:730766072fd5dcb219dd2b95c4c49752a54f00157f322bc6d71f7d2a31fecd79", - "sha256:74eb65ec61e3c7c019d7169387d1b6ffcfea1b9ec5894d116a9a903636e4a0b1", - "sha256:7993232bd4044392c47779a3c7e8889fea6883be46281d45a81451acfd704d7e", - "sha256:80bbaddf2baab7e6de4bc47405e34948e694a9efe0861c61cdc23aa774fcb141", - "sha256:86545e351e879d0b72b620db6a3b96346921fa87b3d366d6c074e5a9a0b8dadb", - "sha256:891dc8f522d7059ff0024cd3ae79fd224752676447f9c678f2a5c14b84d9a939", - "sha256:8a31f24e2a0b6317f33aafbb2f0895c0bce772980ae60c2c640d82caac49628a", - "sha256:8b99ec73073b37f9ebe8caf399001848fced9c08064effdbfc4da2b5a8d07b93", - "sha256:986b7a96228c9b4942ec420eff37556c5777bfba6758edcb95421e4a614b57f9", - "sha256:a1547ff4b8a833511eeaceacbcd17b043214fcdb385148f9c1bc5556ca9623e2", - "sha256:a2bfc7e2a0601b475477c954bf167dee6d0f55cb167e3f3e7cefad906e7759f6", - "sha256:a3c5f1a719aa11866ffc530d54ad965063a8cbbecae6515acbd5f0fae8f48eaa", - "sha256:a9f1c3489736ff8e1c7652e9dc39f80cff820f23624f23d9eab6e122ac99b150", - "sha256:aa0cf4922da7a3c905d000b35065df6184c0dc1d866dd3b86fd961905bbad2ea", - "sha256:ad4332a532e2d5acb231a2e5d33f943750091ee435daffca3fec0a53224e7e33", - "sha256:b2582b238e1658c4061ebe1b4df53c435190d22457642377fd0cb30685cdfb76", - "sha256:b6fc2e2fb6f532cf48b5fed57567ef286addcef38c28874458a41b7837a57807", - "sha256:b92d40121dcbd74831b690a75533da703750f7041b4bf951befc657c37e5695a", - "sha256:bbab6faf6568484707acc052f4dfc3802bdb0cafe079383fbaa23f1cdae9ecd4", - "sha256:c0b88ed1ae66777a798dc54f627e32d3b81c8009967c63993c450ee4cbcbec15", - "sha256:ce13d6291a5f47c1c8dbd375baa78551053bc6b5e5c0e9bb8e39c0a8359fd52f", - "sha256:db3535733f59e5605a88a706824dfcb9bd06725e709ecb017e165fc1d6e7d429", - "sha256:dd10383f1d6b7edf247d0960a3db274c07e96cf3a3fc7c41c8448f93eac3fb1c", - "sha256:e01f9531ba5420838c801c21c1b0f45dbc9607cb22ea2cf132844453bec863a5", - "sha256:e11527dc23d5ef44d76fef11213215c34f36af1608074561fcc561d983aeb870", - "sha256:e1ab2fac607842ac36864e358c42feb0960ae62c34aa4caaf12ada0a1fb5d99b", - "sha256:e1fd7d2fe11f1cb63d3336d147c852f6d07de0d0020d704c6031b46a30b02ca8", - "sha256:e9f84ed9f4d50b74fbc77298ee5c870f67cb7e91dcdc1a6915cb1ff6a317476c", - "sha256:ec4b4e75fc68da9dc0ed73dcdb431c25c57775383fec325d23a770a64e7ebc87", - "sha256:f10ce66fcdeb3543df51d423ede7e238be98412232fca5daec3e54bcd16b8da0", - "sha256:f63f62fc60e6228a4ca9abae28228f35e1bd3ce675013d1dfb828688d50c6e23", - "sha256:fa56bb08b3dd8eac3a8c5b7d075c94e74f755fd9d8a04543ae8d37b1612dd170", - "sha256:fa9b7c450be85bfc6cd39f6df8c5b8cbd76b5d6fc1f69efec80203f9894b885f" + "sha256:04da965dfebb5dac2619cb90fcf93efdb35b3c6994fea58a157a834f2f94b318", + "sha256:0538747a9d7827ce3e16a8fdd201a99e661c7dee3c96c885d8ecba3c35d1032c", + "sha256:0645e934e940107e2fdbe7c5b6fb8ec6232444260752598bc4d09511bd056c0b", + "sha256:079b68f197c796e42aa80b1f739f058dcee796dc725cc9a1be0cdb08fc45b000", + "sha256:0f3f0059891d3254c7b5fb935330d6db38d6519ecd238ca4fce93c234b4a0f73", + "sha256:10d2017f9150248563bb579cd0d07c61c58da85c922b780060dcc9a3aa9f432d", + "sha256:1355755b62c28950f9ce123c7a41460ed9743c699905cbe664a5bcc5c9c7c7fb", + "sha256:13c90064b224e10c14dcdf8086688d3f0e612db53766e7478d7754703295c7c8", + "sha256:1423631e3d51008871299525b541413c9b6c6423593e89f9c4cfbe8460afc0a2", + "sha256:1436cf0063bba7888e43f1ba8d58824f085410ea2025befe81150aceb123e345", + "sha256:1a7c59c6ffd6ef5db362b798f350e24ab2cfa5700d53ac6681918f314a4d3b94", + "sha256:1e1cf47774373777936c5aabad489fef7b1c087dcd1f426b621fda9dcc12994e", + "sha256:206a51077773c6c5d2ce1991327cda719063a47adc02bd703c56a662cdb6c58b", + "sha256:21fb3d24ab430fc538a96e9fbb9b150029914805d551deeac7d7822f64631dfc", + "sha256:27e590352c76156f50f538dbcebd1925317a0f70540f7dc8c97d2931c595783a", + "sha256:287605bede6bd36e930577c5925fcea17cb30453d96a7b4c63c14a257118dbb9", + "sha256:2aaf6a0a6465d39b5ca69688fce82d20088c1838534982996ec46633dc7ad6cc", + "sha256:32a73c53783becdb7eaf75a2a1525ea8e49379fb7248c3eeefb9412123536387", + "sha256:41fb58868b816c202e8881fd0f179a4644ce6e7cbbb248ef0283a34b73ec73bb", + "sha256:4780677767dd52b99f0af1f123bc2c22873d30b474aa0e2fc3fe5e02217687c7", + "sha256:4878e667ebabe9b65e785ac8da4d48886fe81193a84bbe49f12acff8f7a383a4", + "sha256:487c8e61d7acc50b8be82bda8c8d21d20e133c3cbf41bd8ad7eb1aaeb3f07c97", + "sha256:4beea0f31491bc086991b97517b9683e5cfb369205dac0148ef685ac12a20a67", + "sha256:4cfbe42c686f33944e12f45a27d25a492cc0e43e1dc1da5d6a87cbcaf2e95627", + "sha256:4d5bae0a37af799207140652a700f21a85946f107a199bcb06720b13a4f1f0b7", + "sha256:4e285b5f2bf321fc0857b491b5028c5f276ec0c873b985d58d7748ece1d770dd", + "sha256:57e4d637258703d14171b54203fd6822fda218c6c2658a7d30816b10995f29f3", + "sha256:5974895115737a74a00b321e339b9c3f45c20275d226398ae79ac008d908bff7", + "sha256:5ef87fca280fb15342726bd5f980f6faf8b84a5287fcc2d4962ea8af88b35130", + "sha256:603a464c2e67d8a546ddaa206d98e3246e5db05594b97db844c2f0a1af37cf5b", + "sha256:6653071f4f9bac46fbc30f3c7838b0e9063ee335908c5d61fb7a4a86c8fd2036", + "sha256:6ca2264f341dd81e41f3fffecec6e446aa2121e0b8d026fb5130e02de1402785", + "sha256:6d279033bf614953c3fc4a0aa9ac33a21e8044ca72d4fa8b9273fe75359d5cca", + "sha256:6d949f53ad4fc7cf02c44d6678e7ff05ec5f5552b235b9e136bd52e9bf730b91", + "sha256:6daa662aba22ef3258934105be2dd9afa5bb45748f4f702a3b39a5bf53a1f4dc", + "sha256:6eafc048ea3f1b3c136c71a86db393be36b5b3d9c87b1c25204e7d397cee9536", + "sha256:830c88747dce8a3e7525defa68afd742b4580df6aa2fdd6f0855481e3994d391", + "sha256:86e92728ef3fc842c50a5cb1d5ba2bc66db7da08a7af53fb3da79e202d1b2cd3", + "sha256:8caf4d16b31961e964c62194ea3e26a0e9561cdf72eecb1781458b67ec83423d", + "sha256:8d1a92d8e90b286d491e5626af53afef2ba04da33e82e30744795c71880eaa21", + "sha256:8f0a4d179c9a941eb80c3a63cdb495e539e064f8054230844dcf2fcb812b71d3", + "sha256:9232b09f5efee6a495a99ae6824881940d6447debe272ea400c02e3b68aad85d", + "sha256:927a9dd016d6033bc12e0bf5dee1dde140235fc8d0d51099353c76081c03dc29", + "sha256:93e414e3206779ef41e5ff2448067213febf260ba747fc65389a3ddaa3fb8715", + "sha256:98cafc618614d72b02185ac583c6f7796202062c41d2eeecdf07820bad3295ed", + "sha256:9c3a88d20e4fe4a2a4a84bf439a5ac9c9aba400b85244c63a1ab7088f85d9d25", + "sha256:9f36de4cd0c262dd9927886cc2305aa3f2210db437aa4fed3fb4940b8bf4592c", + "sha256:a60f90bba4c37962cbf210f0188ecca87daafdf60271f4c6948606e4dabf8785", + "sha256:a614e4afed58c14254e67862456d212c4dcceebab2eaa44d627c2ca04bf86837", + "sha256:ae06c1e4bc60ee076292e582a7512f304abdf6c70db59b56745cca1684f875a4", + "sha256:b122a188cd292c4d2fcd78d04f863b789ef43aa129b233d7c9004de08693728b", + "sha256:b570da8cd0012f4af9fa76a5635cd31f707473e65a5a335b186069d5c7121ff2", + "sha256:bcaa1c495ce623966d9fc8a187da80082334236a2a1c7e141763ffaf7a405067", + "sha256:bd34f6d1810d9354dc7e35158aa6cc33456be7706df4420819af6ed966e85448", + "sha256:be9eb06489bc975c38706902cbc6888f39e946b81383abc2838d186f0e8b6a9d", + "sha256:c4b2e0559b68455c085fb0f6178e9752c4be3bba104d6e881eb5573b399d1eb2", + "sha256:c62e8dd9754b7debda0c5ba59d34509c4688f853588d75b53c3791983faa96fc", + "sha256:c852b1530083a620cb0de5f3cd6826f19862bafeaf77586f1aef326e49d95f0c", + "sha256:d9fc0bf3ff86c17348dfc5d322f627d78273eba545db865c3cd14b3f19e57fa5", + "sha256:dad7b164905d3e534883281c050180afcf1e230c3d4a54e8038aa5cfcf312b84", + "sha256:e5f66bdf0976ec667fc4594d2812a00b07ed14d1b44259d19a41ae3fff99f2b8", + "sha256:e8f0c9d65da595cfe91713bc1222af9ecabd37971762cb830dea2fc3b3bb2acf", + "sha256:edffbe3c510d8f4bf8640e02ca019e48a9b72357318383ca60e3330c23aaffc7", + "sha256:eea5d6443b093e1545ad0210e6cf27f920482bfcf5c77cdc8596aec73523bb7e", + "sha256:ef72013e20dd5ba86a8ae1aed7f56f31d3374189aa8b433e7b12ad182c0d2dfb", + "sha256:f05251bbc2145349b8d0b77c0d4e5f3b228418807b1ee27cefb11f69ed3d233b", + "sha256:f1be258c4d3dc609e654a1dc59d37b17d7fef05df912c01fc2e15eb43a9735f3", + "sha256:f9ced82717c7ec65a67667bb05865ffe38af0e835cdd78728f1209c8fffe0cad", + "sha256:fe17d10b97fdf58155f858606bddb4e037b805a60ae023c009f760d8361a4eb8", + "sha256:fe749b052bb7233fe5d072fcb549221a8cb1a16725c47c37e42b0b9cb3ff2c3f" ], "index": "pypi", - "version": "==4.8.0" + "version": "==4.9.1" }, "numpy": { "hashes": [ - "sha256:07a8c89a04997625236c5ecb7afe35a02af3896c8aa01890a849913a2309c676", - "sha256:08d9b008d0156c70dc392bb3ab3abb6e7a711383c3247b410b39962263576cd4", - "sha256:201b4d0552831f7250a08d3b38de0d989d6f6e4658b709a02a73c524ccc6ffce", - "sha256:2c10a93606e0b4b95c9b04b77dc349b398fdfbda382d2a39ba5a822f669a0123", - "sha256:3ca688e1b9b95d80250bca34b11a05e389b1420d00e87a0d12dc45f131f704a1", - "sha256:48a3aecd3b997bf452a2dedb11f4e79bc5bfd21a1d4cc760e703c31d57c84b3e", - "sha256:568dfd16224abddafb1cbcce2ff14f522abe037268514dd7e42c6776a1c3f8e5", - "sha256:5bfb1bb598e8229c2d5d48db1860bcf4311337864ea3efdbe1171fb0c5da515d", - "sha256:639b54cdf6aa4f82fe37ebf70401bbb74b8508fddcf4797f9fe59615b8c5813a", - "sha256:8251ed96f38b47b4295b1ae51631de7ffa8260b5b087808ef09a39a9d66c97ab", - "sha256:92bfa69cfbdf7dfc3040978ad09a48091143cffb778ec3b03fa170c494118d75", - "sha256:97098b95aa4e418529099c26558eeb8486e66bd1e53a6b606d684d0c3616b168", - "sha256:a3bae1a2ed00e90b3ba5f7bd0a7c7999b55d609e0c54ceb2b076a25e345fa9f4", - "sha256:c34ea7e9d13a70bf2ab64a2532fe149a9aced424cd05a2c4ba662fd989e3e45f", - "sha256:dbc7601a3b7472d559dc7b933b18b4b66f9aa7452c120e87dfb33d02008c8a18", - "sha256:e7927a589df200c5e23c57970bafbd0cd322459aa7b1ff73b7c2e84d6e3eae62", - "sha256:f8c1f39caad2c896bc0018f699882b345b2a63708008be29b1f355ebf6f933fe", - "sha256:f950f8845b480cffe522913d35567e29dd381b0dc7e4ce6a4a9f9156417d2430", - "sha256:fade0d4f4d292b6f39951b6836d7a3c7ef5b2347f3c420cd9820a1d90d794802", - "sha256:fdf3c08bce27132395d3c3ba1503cac12e17282358cb4bddc25cc46b0aca07aa" + "sha256:092f5e6025813e64ad6d1b52b519165d08c730d099c114a9247c9bb635a2a450", + "sha256:196cd074c3f97c4121601790955f915187736f9cf458d3ee1f1b46aff2b1ade0", + "sha256:1c29b44905af288b3919803aceb6ec7fec77406d8b08aaa2e8b9e63d0fe2f160", + "sha256:2b2da66582f3a69c8ce25ed7921dcd8010d05e59ac8d89d126a299be60421171", + "sha256:5043bcd71fcc458dfb8a0fc5509bbc979da0131b9d08e3d5f50fb0bbb36f169a", + "sha256:58bfd40eb478f54ff7a5710dd61c8097e169bc36cc68333d00a9bcd8def53b38", + "sha256:79a506cacf2be3a74ead5467aee97b81fca00c9c4c8b3ba16dbab488cd99ba10", + "sha256:94b170b4fa0168cd6be4becf37cb5b127bd12a795123984385b8cd4aca9857e5", + "sha256:97a76604d9b0e79f59baeca16593c711fddb44936e40310f78bfef79ee9a835f", + "sha256:98e8e0d8d69ff4d3fa63e6c61e8cfe2d03c29b16b58dbef1f9baa175bbed7860", + "sha256:ac86f407873b952679f5f9e6c0612687e51547af0e14ddea1eedfcb22466babd", + "sha256:ae8adff4172692ce56233db04b7ce5792186f179c415c37d539c25de7298d25d", + "sha256:bd3fa4fe2e38533d5336e1272fc4e765cabbbde144309ccee8675509d5cd7b05", + "sha256:d0d2094e8f4d760500394d77b383a1b06d3663e8892cdf5df3c592f55f3bff66", + "sha256:d54b3b828d618a19779a84c3ad952e96e2c2311b16384e973e671aa5be1f6187", + "sha256:d6ca8dabe696c2785d0c8c9b0d8a9b6e5fdbe4f922bde70d57fa1a2848134f95", + "sha256:d8cc87bed09de55477dba9da370c1679bd534df9baa171dd01accbb09687dac3", + "sha256:f0f18804df7370571fb65db9b98bf1378172bd4e962482b857e612d1fec0f53e", + "sha256:f1d88ef79e0a7fa631bb2c3dda1ea46b32b1fe614e10fedd611d3d5398447f2f", + "sha256:f9c3fc2adf67762c9fe1849c859942d23f8d3e0bee7b5ed3d4a9c3eeb50a2f07", + "sha256:fc431493df245f3c627c0c05c2bd134535e7929dbe2e602b80e42bf52ff760bc", + "sha256:fe8b9683eb26d2c4d5db32cd29b38fdcf8381324ab48313b5b69088e0e355379" ], "markers": "python_version < '3.10' and platform_machine != 'aarch64' and platform_machine != 'arm64'", - "version": "==1.22.3" + "version": "==1.23.0" }, "oauthlib": { "hashes": [ @@ -336,11 +364,11 @@ }, "outcome": { "hashes": [ - "sha256:c7dd9375cfd3c12db9801d080a3b63d4b0a261aa996c4c13152380587288d958", - "sha256:e862f01d4e626e63e8f92c38d1f8d5546d3f9cce989263c521b2e7990d186967" + "sha256:6f82bd3de45da303cf1f771ecafa1633750a358436a8bb60e06a1ceb745d2672", + "sha256:c4ab89a56575d6d38a05aa16daeaa333109c1f96167aba8901ab18b6b5e0f7f5" ], - "markers": "python_version >= '3.6'", - "version": "==1.1.0" + "markers": "python_version >= '3.7'", + "version": "==1.2.0" }, "pandas": { "hashes": [ @@ -498,19 +526,19 @@ }, "python-magic": { "hashes": [ - "sha256:1a2c81e8f395c744536369790bd75094665e9644110a6623bcc3bbea30f03973", - "sha256:21f5f542aa0330f5c8a64442528542f6215c8e18d2466b399b0d9d39356d83fc" + "sha256:c1ba14b08e4a5f5c31a302b7721239695b2f0f058d125bd5ce1ee36b9d9d3c3b", + "sha256:c212960ad306f700aa0d01e5d7a325d20548ff97eb9920dcd29513174f0294d3" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", - "version": "==0.4.25" + "version": "==0.4.27" }, "python-slugify": { "hashes": [ - "sha256:00003397f4e31414e922ce567b3a4da28cf1436a53d332c9aeeb51c7d8c469fd", - "sha256:8c0016b2d74503eb64761821612d58fcfc729493634b1eb0575d8f5b4aa1fbcf" + "sha256:272d106cb31ab99b3496ba085e3fea0e9e76dcde967b5e9992500d1f785ce4e1", + "sha256:7b2c274c308b62f4269a9ba701aa69a797e9bca41aeee5b3a9e79e36b6656927" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", - "version": "==6.1.1" + "version": "==6.1.2" }, "python-telegram-bot": { "hashes": [ @@ -538,11 +566,11 @@ }, "requests": { "hashes": [ - "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61", - "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d" + "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983", + "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", - "version": "==2.27.1" + "markers": "python_version >= '3.7' and python_version < '4'", + "version": "==2.28.1" }, "requests-oauthlib": { "hashes": [ @@ -566,6 +594,14 @@ "index": "pypi", "version": "==4.1.3" }, + "setuptools": { + "hashes": [ + "sha256:16923d366ced322712c71ccb97164d07472abeecd13f3a6c283f6d5d26722793", + "sha256:db3b8e2f922b2a910a29804776c643ea609badb6a32c4bcc226fd4fd902cce65" + ], + "markers": "python_version >= '3.7'", + "version": "==63.1.0" + }, "shapely": { "hashes": [ "sha256:0ca96a3314b7a38a3bb385531469de1fcf2b2c2979ec2aa4f37b4c70632cf1ad", @@ -623,11 +659,11 @@ }, "soupsieve": { "hashes": [ - "sha256:1a3cca2617c6b38c0343ed661b1fa5de5637f257d4fe22bd9f1338010a1efefb", - "sha256:b8d49b1cd4f037c7082a9683dfa1801aa2597fb11c3a1155b7a5b94829b4f1f9" + "sha256:3b2503d3c7084a42b1ebd08116e5f81aadfaea95863628c80a3b774a11b7c759", + "sha256:fc53893b3da2c33de295667a0e19f078c14bf86544af307354de5fcf12a3f30d" ], "markers": "python_version >= '3.6'", - "version": "==2.3.1" + "version": "==2.3.2.post1" }, "svgwrite": { "hashes": [ @@ -654,58 +690,28 @@ }, "tornado": { "hashes": [ - "sha256:0a00ff4561e2929a2c37ce706cb8233b7907e0cdc22eab98888aca5dd3775feb", - "sha256:0d321a39c36e5f2c4ff12b4ed58d41390460f798422c4504e09eb5678e09998c", - "sha256:1e8225a1070cd8eec59a996c43229fe8f95689cb16e552d130b9793cb570a288", - "sha256:20241b3cb4f425e971cb0a8e4ffc9b0a861530ae3c52f2b0434e6c1b57e9fd95", - "sha256:25ad220258349a12ae87ede08a7b04aca51237721f63b1808d39bdb4b2164558", - "sha256:33892118b165401f291070100d6d09359ca74addda679b60390b09f8ef325ffe", - "sha256:33c6e81d7bd55b468d2e793517c909b139960b6c790a60b7991b9b6b76fb9791", - "sha256:3447475585bae2e77ecb832fc0300c3695516a47d46cefa0528181a34c5b9d3d", - "sha256:34ca2dac9e4d7afb0bed4677512e36a52f09caa6fded70b4e3e1c89dbd92c326", - "sha256:3e63498f680547ed24d2c71e6497f24bca791aca2fe116dbc2bd0ac7f191691b", - "sha256:548430be2740e327b3fe0201abe471f314741efcb0067ec4f2d7dcfb4825f3e4", - "sha256:6196a5c39286cc37c024cd78834fb9345e464525d8991c21e908cc046d1cc02c", - "sha256:61b32d06ae8a036a6607805e6720ef00a3c98207038444ba7fd3d169cd998910", - "sha256:6286efab1ed6e74b7028327365cf7346b1d777d63ab30e21a0f4d5b275fc17d5", - "sha256:65d98939f1a2e74b58839f8c4dab3b6b3c1ce84972ae712be02845e65391ac7c", - "sha256:66324e4e1beede9ac79e60f88de548da58b1f8ab4b2f1354d8375774f997e6c0", - "sha256:6c77c9937962577a6a76917845d06af6ab9197702a42e1346d8ae2e76b5e3675", - "sha256:70dec29e8ac485dbf57481baee40781c63e381bebea080991893cd297742b8fd", - "sha256:7250a3fa399f08ec9cb3f7b1b987955d17e044f1ade821b32e5f435130250d7f", - "sha256:748290bf9112b581c525e6e6d3820621ff020ed95af6f17fedef416b27ed564c", - "sha256:7da13da6f985aab7f6f28debab00c67ff9cbacd588e8477034c0652ac141feea", - "sha256:8f959b26f2634a091bb42241c3ed8d3cedb506e7c27b8dd5c7b9f745318ddbb6", - "sha256:9de9e5188a782be6b1ce866e8a51bc76a0fbaa0e16613823fc38e4fc2556ad05", - "sha256:a48900ecea1cbb71b8c71c620dee15b62f85f7c14189bdeee54966fbd9a0c5bd", - "sha256:b87936fd2c317b6ee08a5741ea06b9d11a6074ef4cc42e031bc6403f82a32575", - "sha256:c77da1263aa361938476f04c4b6c8916001b90b2c2fdd92d8d535e1af48fba5a", - "sha256:cb5ec8eead331e3bb4ce8066cf06d2dfef1bfb1b2a73082dfe8a161301b76e37", - "sha256:cc0ee35043162abbf717b7df924597ade8e5395e7b66d18270116f8745ceb795", - "sha256:d14d30e7f46a0476efb0deb5b61343b1526f73ebb5ed84f23dc794bdb88f9d9f", - "sha256:d371e811d6b156d82aa5f9a4e08b58debf97c302a35714f6f45e35139c332e32", - "sha256:d3d20ea5782ba63ed13bc2b8c291a053c8d807a8fa927d941bd718468f7b950c", - "sha256:d3f7594930c423fd9f5d1a76bee85a2c36fd8b4b16921cae7e965f22575e9c01", - "sha256:dcef026f608f678c118779cd6591c8af6e9b4155c44e0d1bc0c87c036fb8c8c4", - "sha256:e0791ac58d91ac58f694d8d2957884df8e4e2f6687cdf367ef7eb7497f79eaa2", - "sha256:e385b637ac3acaae8022e7e47dfa7b83d3620e432e3ecb9a3f7f58f150e50921", - "sha256:e519d64089b0876c7b467274468709dadf11e41d65f63bba207e04217f47c085", - "sha256:e7229e60ac41a1202444497ddde70a48d33909e484f96eb0da9baf8dc68541df", - "sha256:ed3ad863b1b40cd1d4bd21e7498329ccaece75db5a5bf58cd3c9f130843e7102", - "sha256:f0ba29bafd8e7e22920567ce0d232c26d4d47c8b5cf4ed7b562b5db39fa199c5", - "sha256:fa2ba70284fa42c2a5ecb35e322e68823288a4251f9ba9cc77be04ae15eada68", - "sha256:fba85b6cd9c39be262fcd23865652920832b61583de2a2ca907dbd8e8a8c81e5" + "sha256:1d54d13ab8414ed44de07efecb97d4ef7c39f7438cf5e976ccd356bebb1b5fca", + "sha256:20f638fd8cc85f3cbae3c732326e96addff0a15e22d80f049e00121651e82e72", + "sha256:5c87076709343557ef8032934ce5f637dbb552efa7b21d08e89ae7619ed0eb23", + "sha256:5f8c52d219d4995388119af7ccaa0bcec289535747620116a58d830e7c25d8a8", + "sha256:6fdfabffd8dfcb6cf887428849d30cf19a3ea34c2c248461e1f7d718ad30b66b", + "sha256:87dcafae3e884462f90c90ecc200defe5e580a7fbbb4365eda7c7c1eb809ebc9", + "sha256:9b630419bde84ec666bfd7ea0a4cb2a8a651c2d5cccdbdd1972a0c859dfc3c13", + "sha256:b8150f721c101abdef99073bf66d3903e292d851bee51910839831caba341a75", + "sha256:ba09ef14ca9893954244fd872798b4ccb2367c165946ce2dd7376aebdde8e3ac", + "sha256:d3a2f5999215a3a06a4fc218026cd84c61b8b2b40ac5296a6db1f1451ef04c1e", + "sha256:e5f923aa6a47e133d1cf87d60700889d7eae68988704e20c75fb2d65677a8e4b" ], - "markers": "python_version >= '3.5'", - "version": "==6.1" + "markers": "python_version >= '3.7'", + "version": "==6.2" }, "trio": { "hashes": [ - "sha256:670a52d3115d0e879e1ac838a4eb999af32f858163e3a704fe4839de2a676070", - "sha256:fb2d48e4eab0dfb786a472cd514aaadc71e3445b203bc300bad93daa75d77c1a" + "sha256:4dc0bf9d5cc78767fc4516325b6d80cc0968705a31d0eec2ecd7cdda466265b0", + "sha256:523f39b7b69eef73501cebfe1aafd400a9aad5b03543a0eded52952488ff1c13" ], "markers": "python_version >= '3.7'", - "version": "==0.20.0" + "version": "==0.21.0" }, "trio-websocket": { "hashes": [ @@ -733,11 +739,11 @@ }, "tzlocal": { "hashes": [ - "sha256:0f28015ac68a5c067210400a9197fc5d36ba9bc3f8eaf1da3cbd59acdfed9e09", - "sha256:28ba8d9fcb6c9a782d6e0078b4f6627af1ea26aeaa32b4eab5324abc7df4149f" + "sha256:89885494684c929d9191c57aa27502afc87a579be5cdd3225c77c463ea043745", + "sha256:ee5842fa3a795f023514ac2d801c4a81d1743bbe642e3940143326b3a00addd7" ], "markers": "python_version >= '3.6'", - "version": "==4.1" + "version": "==4.2" }, "urllib3": { "extras": [ @@ -761,11 +767,11 @@ }, "websocket-client": { "hashes": [ - "sha256:50b21db0058f7a953d67cc0445be4b948d7fc196ecbeb8083d68d94628e4abf6", - "sha256:722b171be00f2b90e1d4fb2f2b53146a536ca38db1da8ff49c972a4e1365d0ef" + "sha256:5d55652dc1d0b3c734f044337d929aaf83f4f9138816ec680c1aefefb4dc4877", + "sha256:d58c5f284d6a9bf8379dab423259fe8f85b70d5fa5d2916d5791a84594b122b1" ], "markers": "python_version >= '3.7'", - "version": "==1.3.2" + "version": "==1.3.3" }, "wsproto": { "hashes": [ From 155f125874c1c1f9f1bd66f4d13f43d318e84db8 Mon Sep 17 00:00:00 2001 From: Mark Bumiller Date: Sun, 10 Jul 2022 08:47:06 -0400 Subject: [PATCH 23/70] increasing shm size to prevent selenium crashes fixes Jxck-S/plane-notify#65 --- docker-compose.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/docker-compose.yml b/docker-compose.yml index 223040b..da549c8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,6 +2,7 @@ version: "3.9" services: plane-notify: platform: linux/amd64 + shm_size: 2gb build: context: . volumes: From d71242fa2fadcf53493a7315a1eca30e5f2580a9 Mon Sep 17 00:00:00 2001 From: Jxck-S Date: Sat, 16 Jul 2022 13:33:32 -0400 Subject: [PATCH 24/70] Selenium 4.3.0 Fixes -Replace deprecated functions -Uses Tar1090 LimitUpdates parameter for screenshots -Pip updates --- Pipfile.lock | 805 ++++++++++++++++++++++++++------------------------ defSS.py | 28 +- planeClass.py | 10 +- 3 files changed, 446 insertions(+), 397 deletions(-) diff --git a/Pipfile.lock b/Pipfile.lock index 1d5bd99..8fddcdf 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -48,11 +48,11 @@ }, "beautifulsoup4": { "hashes": [ - "sha256:9a315ce70049920ea4572a4055bc4bd700c940521d36fc858205ad4fcde149bf", - "sha256:c23ad23c521d818955a4151a67d81580319d4bf548d3d49f4223ae041ff98891" + "sha256:58d5c3d29f5a36ffeb94f02f0d786cd53014cf9b3b3951d42e0080d8a9498d30", + "sha256:ad9aa55b65ef2808eb405f46cf74df7fcb7044d5cbc26487f96eb2ef2e436693" ], "index": "pypi", - "version": "==4.10.0" + "version": "==4.11.1" }, "cachetools": { "hashes": [ @@ -64,82 +64,97 @@ }, "certifi": { "hashes": [ - "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872", - "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569" + "sha256:84c85a9078b11105f04f3036a9482ae10e4621616db313fe045dd24743a0820d", + "sha256:fe86415d55e84719d75f8b69414f6438ac3547d2078ab91b67e779ef69378412" ], - "version": "==2021.10.8" + "markers": "python_full_version >= '3.6.0'", + "version": "==2022.6.15" }, "cffi": { "hashes": [ - "sha256:00c878c90cb53ccfaae6b8bc18ad05d2036553e6d9d1d9dbcf323bbe83854ca3", - "sha256:0104fb5ae2391d46a4cb082abdd5c69ea4eab79d8d44eaaf79f1b1fd806ee4c2", - "sha256:06c48159c1abed75c2e721b1715c379fa3200c7784271b3c46df01383b593636", - "sha256:0808014eb713677ec1292301ea4c81ad277b6cdf2fdd90fd540af98c0b101d20", - "sha256:10dffb601ccfb65262a27233ac273d552ddc4d8ae1bf93b21c94b8511bffe728", - "sha256:14cd121ea63ecdae71efa69c15c5543a4b5fbcd0bbe2aad864baca0063cecf27", - "sha256:17771976e82e9f94976180f76468546834d22a7cc404b17c22df2a2c81db0c66", - "sha256:181dee03b1170ff1969489acf1c26533710231c58f95534e3edac87fff06c443", - "sha256:23cfe892bd5dd8941608f93348c0737e369e51c100d03718f108bf1add7bd6d0", - "sha256:263cc3d821c4ab2213cbe8cd8b355a7f72a8324577dc865ef98487c1aeee2bc7", - "sha256:2756c88cbb94231c7a147402476be2c4df2f6078099a6f4a480d239a8817ae39", - "sha256:27c219baf94952ae9d50ec19651a687b826792055353d07648a5695413e0c605", - "sha256:2a23af14f408d53d5e6cd4e3d9a24ff9e05906ad574822a10563efcef137979a", - "sha256:31fb708d9d7c3f49a60f04cf5b119aeefe5644daba1cd2a0fe389b674fd1de37", - "sha256:3415c89f9204ee60cd09b235810be700e993e343a408693e80ce7f6a40108029", - "sha256:3773c4d81e6e818df2efbc7dd77325ca0dcb688116050fb2b3011218eda36139", - "sha256:3b96a311ac60a3f6be21d2572e46ce67f09abcf4d09344c49274eb9e0bf345fc", - "sha256:3f7d084648d77af029acb79a0ff49a0ad7e9d09057a9bf46596dac9514dc07df", - "sha256:41d45de54cd277a7878919867c0f08b0cf817605e4eb94093e7516505d3c8d14", - "sha256:4238e6dab5d6a8ba812de994bbb0a79bddbdf80994e4ce802b6f6f3142fcc880", - "sha256:45db3a33139e9c8f7c09234b5784a5e33d31fd6907800b316decad50af323ff2", - "sha256:45e8636704eacc432a206ac7345a5d3d2c62d95a507ec70d62f23cd91770482a", - "sha256:4958391dbd6249d7ad855b9ca88fae690783a6be9e86df65865058ed81fc860e", - "sha256:4a306fa632e8f0928956a41fa8e1d6243c71e7eb59ffbd165fc0b41e316b2474", - "sha256:57e9ac9ccc3101fac9d6014fba037473e4358ef4e89f8e181f8951a2c0162024", - "sha256:59888172256cac5629e60e72e86598027aca6bf01fa2465bdb676d37636573e8", - "sha256:5e069f72d497312b24fcc02073d70cb989045d1c91cbd53979366077959933e0", - "sha256:64d4ec9f448dfe041705426000cc13e34e6e5bb13736e9fd62e34a0b0c41566e", - "sha256:6dc2737a3674b3e344847c8686cf29e500584ccad76204efea14f451d4cc669a", - "sha256:74fdfdbfdc48d3f47148976f49fab3251e550a8720bebc99bf1483f5bfb5db3e", - "sha256:75e4024375654472cc27e91cbe9eaa08567f7fbdf822638be2814ce059f58032", - "sha256:786902fb9ba7433aae840e0ed609f45c7bcd4e225ebb9c753aa39725bb3e6ad6", - "sha256:8b6c2ea03845c9f501ed1313e78de148cd3f6cad741a75d43a29b43da27f2e1e", - "sha256:91d77d2a782be4274da750752bb1650a97bfd8f291022b379bb8e01c66b4e96b", - "sha256:91ec59c33514b7c7559a6acda53bbfe1b283949c34fe7440bcf917f96ac0723e", - "sha256:920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954", - "sha256:a5263e363c27b653a90078143adb3d076c1a748ec9ecc78ea2fb916f9b861962", - "sha256:abb9a20a72ac4e0fdb50dae135ba5e77880518e742077ced47eb1499e29a443c", - "sha256:c2051981a968d7de9dd2d7b87bcb9c939c74a34626a6e2f8181455dd49ed69e4", - "sha256:c21c9e3896c23007803a875460fb786118f0cdd4434359577ea25eb556e34c55", - "sha256:c2502a1a03b6312837279c8c1bd3ebedf6c12c4228ddbad40912d671ccc8a962", - "sha256:d4d692a89c5cf08a8557fdeb329b82e7bf609aadfaed6c0d79f5a449a3c7c023", - "sha256:da5db4e883f1ce37f55c667e5c0de439df76ac4cb55964655906306918e7363c", - "sha256:e7022a66d9b55e93e1a845d8c9eba2a1bebd4966cd8bfc25d9cd07d515b33fa6", - "sha256:ef1f279350da2c586a69d32fc8733092fd32cc8ac95139a00377841f59a3f8d8", - "sha256:f54a64f8b0c8ff0b64d18aa76675262e1700f3995182267998c31ae974fbc382", - "sha256:f5c7150ad32ba43a07c4479f40241756145a1f03b43480e058cfd862bf5041c7", - "sha256:f6f824dc3bce0edab5f427efcfb1d63ee75b6fcb7282900ccaf925be84efb0fc", - "sha256:fd8a250edc26254fe5b33be00402e6d287f562b6a5b2152dec302fa15bb3e997", - "sha256:ffaa5c925128e29efbde7301d8ecaf35c8c60ffbcd6a1ffd3a552177c8e5e796" + "sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5", + "sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef", + "sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104", + "sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426", + "sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405", + "sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375", + "sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a", + "sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e", + "sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc", + "sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf", + "sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185", + "sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497", + "sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3", + "sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35", + "sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c", + "sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83", + "sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21", + "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca", + "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984", + "sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac", + "sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd", + "sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee", + "sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a", + "sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2", + "sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192", + "sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7", + "sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585", + "sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f", + "sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e", + "sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27", + "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b", + "sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e", + "sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e", + "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d", + "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c", + "sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415", + "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82", + "sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02", + "sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314", + "sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325", + "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c", + "sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3", + "sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914", + "sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045", + "sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d", + "sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9", + "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5", + "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2", + "sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c", + "sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3", + "sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2", + "sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8", + "sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d", + "sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d", + "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9", + "sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162", + "sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76", + "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4", + "sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e", + "sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9", + "sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6", + "sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b", + "sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01", + "sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0" ], "markers": "os_name == 'nt' and implementation_name != 'pypy'", - "version": "==1.15.0" + "version": "==1.15.1" }, "charset-normalizer": { "hashes": [ - "sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597", - "sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df" + "sha256:5189b6f22b01957427f35b6a08d9a0bc45b46d3788ef5a92e978433c7a35f8a5", + "sha256:575e708016ff3a5e3681541cb9d79312c416835686d054a23accb873b254f413" ], - "markers": "python_version >= '3'", - "version": "==2.0.12" + "markers": "python_full_version >= '3.6.0'", + "version": "==2.1.0" }, "colorama": { "hashes": [ - "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b", - "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2" + "sha256:854bf444933e37f5824ae7bfc1e98d5bce2ebe4160d46b5edf346a89358e99da", + "sha256:e6c6b4334fc50988a639d9b98aa429a0b57da6e17b9a44f0451f930b6967b7a4" ], "index": "pypi", - "version": "==0.4.4" + "version": "==0.4.5" }, "configparser": { "hashes": [ @@ -151,36 +166,38 @@ }, "cryptography": { "hashes": [ - "sha256:0a3bf09bb0b7a2c93ce7b98cb107e9170a90c51a0162a20af1c61c765b90e60b", - "sha256:1f64a62b3b75e4005df19d3b5235abd43fa6358d5516cfc43d87aeba8d08dd51", - "sha256:32db5cc49c73f39aac27574522cecd0a4bb7384e71198bc65a0d23f901e89bb7", - "sha256:4881d09298cd0b669bb15b9cfe6166f16fc1277b4ed0d04a22f3d6430cb30f1d", - "sha256:4e2dddd38a5ba733be6a025a1475a9f45e4e41139d1321f412c6b360b19070b6", - "sha256:53e0285b49fd0ab6e604f4c5d9c5ddd98de77018542e88366923f152dbeb3c29", - "sha256:70f8f4f7bb2ac9f340655cbac89d68c527af5bb4387522a8413e841e3e6628c9", - "sha256:7b2d54e787a884ffc6e187262823b6feb06c338084bbe80d45166a1cb1c6c5bf", - "sha256:7be666cc4599b415f320839e36367b273db8501127b38316f3b9f22f17a0b815", - "sha256:8241cac0aae90b82d6b5c443b853723bcc66963970c67e56e71a2609dc4b5eaf", - "sha256:82740818f2f240a5da8dfb8943b360e4f24022b093207160c77cadade47d7c85", - "sha256:8897b7b7ec077c819187a123174b645eb680c13df68354ed99f9b40a50898f77", - "sha256:c2c5250ff0d36fd58550252f54915776940e4e866f38f3a7866d92b32a654b86", - "sha256:ca9f686517ec2c4a4ce930207f75c00bf03d94e5063cbc00a1dc42531511b7eb", - "sha256:d2b3d199647468d410994dbeb8cec5816fb74feb9368aedf300af709ef507e3e", - "sha256:da73d095f8590ad437cd5e9faf6628a218aa7c387e1fdf67b888b47ba56a17f0", - "sha256:e167b6b710c7f7bc54e67ef593f8731e1f45aa35f8a8a7b72d6e42ec76afd4b3", - "sha256:ea634401ca02367c1567f012317502ef3437522e2fc44a3ea1844de028fa4b84", - "sha256:ec6597aa85ce03f3e507566b8bcdf9da2227ec86c4266bd5e6ab4d9e0cc8dab2", - "sha256:f64b232348ee82f13aac22856515ce0195837f6968aeaa94a3d0353ea2ec06a6" - ], - "version": "==36.0.2" + "sha256:190f82f3e87033821828f60787cfa42bff98404483577b591429ed99bed39d59", + "sha256:2be53f9f5505673eeda5f2736bea736c40f051a739bfae2f92d18aed1eb54596", + "sha256:30788e070800fec9bbcf9faa71ea6d8068f5136f60029759fd8c3efec3c9dcb3", + "sha256:3d41b965b3380f10e4611dbae366f6dc3cefc7c9ac4e8842a806b9672ae9add5", + "sha256:4c590ec31550a724ef893c50f9a97a0c14e9c851c85621c5650d699a7b88f7ab", + "sha256:549153378611c0cca1042f20fd9c5030d37a72f634c9326e225c9f666d472884", + "sha256:63f9c17c0e2474ccbebc9302ce2f07b55b3b3fcb211ded18a42d5764f5c10a82", + "sha256:6bc95ed67b6741b2607298f9ea4932ff157e570ef456ef7ff0ef4884a134cc4b", + "sha256:7099a8d55cd49b737ffc99c17de504f2257e3787e02abe6d1a6d136574873441", + "sha256:75976c217f10d48a8b5a8de3d70c454c249e4b91851f6838a4e48b8f41eb71aa", + "sha256:7bc997818309f56c0038a33b8da5c0bfbb3f1f067f315f9abd6fc07ad359398d", + "sha256:80f49023dd13ba35f7c34072fa17f604d2f19bf0989f292cedf7ab5770b87a0b", + "sha256:91ce48d35f4e3d3f1d83e29ef4a9267246e6a3be51864a5b7d2247d5086fa99a", + "sha256:a958c52505c8adf0d3822703078580d2c0456dd1d27fabfb6f76fe63d2971cd6", + "sha256:b62439d7cd1222f3da897e9a9fe53bbf5c104fff4d60893ad1355d4c14a24157", + "sha256:b7f8dd0d4c1f21759695c05a5ec8536c12f31611541f8904083f3dc582604280", + "sha256:d204833f3c8a33bbe11eda63a54b1aad7aa7456ed769a982f21ec599ba5fa282", + "sha256:e007f052ed10cc316df59bc90fbb7ff7950d7e2919c9757fd42a2b8ecf8a5f67", + "sha256:f2dcb0b3b63afb6df7fd94ec6fbddac81b5492513f7b0436210d390c14d46ee8", + "sha256:f721d1885ecae9078c3f6bbe8a88bc0786b6e749bf32ccec1ef2b18929a05046", + "sha256:f7a6de3e98771e183645181b3627e2563dcde3ce94a9e42a3f427d2255190327", + "sha256:f8c0a6e9e1dd3eb0414ba320f85da6b0dcbd543126e30fcc546e7372a7fbf3b9" + ], + "version": "==37.0.4" }, "discord-webhook": { "hashes": [ - "sha256:1557a3a86ec556d5fceeff3d0c8601affd83770280b7358a3c7f4fb7c8ee32e5", - "sha256:5c59e3c5b52be8d9273aebdc5647f564a3c24ce4f75635fd1d9e4d9d8dad30f4" + "sha256:5a044a26ceea6e39651c2fa17194b463dc0b704b8b20991e8db3f3d86dd5e553", + "sha256:e9434e516a918e78915b5ce32b864d5b3f24556b92e1606bcad6a4f83f5615bd" ], "index": "pypi", - "version": "==0.15.0" + "version": "==0.16.3" }, "future": { "hashes": [ @@ -216,7 +233,7 @@ "sha256:70813c1135087a248a4d38cc0e1a0181ffab2188141a93eaf567940c3957ff06", "sha256:8ddd78563b633ca55346c8cd41ec0af27d3c79931828beffb46ce70a379e7442" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==0.13.0" }, "idna": { @@ -224,191 +241,225 @@ "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff", "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d" ], - "markers": "python_version >= '3'", + "markers": "python_version >= '3.5'", "version": "==3.3" }, "lxml": { "hashes": [ - "sha256:078306d19a33920004addeb5f4630781aaeabb6a8d01398045fcde085091a169", - "sha256:0c1978ff1fd81ed9dcbba4f91cf09faf1f8082c9d72eb122e92294716c605428", - "sha256:1010042bfcac2b2dc6098260a2ed022968dbdfaf285fc65a3acf8e4eb1ffd1bc", - "sha256:1d650812b52d98679ed6c6b3b55cbb8fe5a5460a0aef29aeb08dc0b44577df85", - "sha256:20b8a746a026017acf07da39fdb10aa80ad9877046c9182442bf80c84a1c4696", - "sha256:2403a6d6fb61c285969b71f4a3527873fe93fd0abe0832d858a17fe68c8fa507", - "sha256:24f5c5ae618395ed871b3d8ebfcbb36e3f1091fd847bf54c4de623f9107942f3", - "sha256:28d1af847786f68bec57961f31221125c29d6f52d9187c01cd34dc14e2b29430", - "sha256:31499847fc5f73ee17dbe1b8e24c6dafc4e8d5b48803d17d22988976b0171f03", - "sha256:31ba2cbc64516dcdd6c24418daa7abff989ddf3ba6d3ea6f6ce6f2ed6e754ec9", - "sha256:330bff92c26d4aee79c5bc4d9967858bdbe73fdbdbacb5daf623a03a914fe05b", - "sha256:5045ee1ccd45a89c4daec1160217d363fcd23811e26734688007c26f28c9e9e7", - "sha256:52cbf2ff155b19dc4d4100f7442f6a697938bf4493f8d3b0c51d45568d5666b5", - "sha256:530f278849031b0eb12f46cca0e5db01cfe5177ab13bd6878c6e739319bae654", - "sha256:545bd39c9481f2e3f2727c78c169425efbfb3fbba6e7db4f46a80ebb249819ca", - "sha256:5804e04feb4e61babf3911c2a974a5b86f66ee227cc5006230b00ac6d285b3a9", - "sha256:5a58d0b12f5053e270510bf12f753a76aaf3d74c453c00942ed7d2c804ca845c", - "sha256:5f148b0c6133fb928503cfcdfdba395010f997aa44bcf6474fcdd0c5398d9b63", - "sha256:5f7d7d9afc7b293147e2d506a4596641d60181a35279ef3aa5778d0d9d9123fe", - "sha256:60d2f60bd5a2a979df28ab309352cdcf8181bda0cca4529769a945f09aba06f9", - "sha256:6259b511b0f2527e6d55ad87acc1c07b3cbffc3d5e050d7e7bcfa151b8202df9", - "sha256:6268e27873a3d191849204d00d03f65c0e343b3bcb518a6eaae05677c95621d1", - "sha256:627e79894770783c129cc5e89b947e52aa26e8e0557c7e205368a809da4b7939", - "sha256:62f93eac69ec0f4be98d1b96f4d6b964855b8255c345c17ff12c20b93f247b68", - "sha256:6d6483b1229470e1d8835e52e0ff3c6973b9b97b24cd1c116dca90b57a2cc613", - "sha256:6f7b82934c08e28a2d537d870293236b1000d94d0b4583825ab9649aef7ddf63", - "sha256:6fe4ef4402df0250b75ba876c3795510d782def5c1e63890bde02d622570d39e", - "sha256:719544565c2937c21a6f76d520e6e52b726d132815adb3447ccffbe9f44203c4", - "sha256:730766072fd5dcb219dd2b95c4c49752a54f00157f322bc6d71f7d2a31fecd79", - "sha256:74eb65ec61e3c7c019d7169387d1b6ffcfea1b9ec5894d116a9a903636e4a0b1", - "sha256:7993232bd4044392c47779a3c7e8889fea6883be46281d45a81451acfd704d7e", - "sha256:80bbaddf2baab7e6de4bc47405e34948e694a9efe0861c61cdc23aa774fcb141", - "sha256:86545e351e879d0b72b620db6a3b96346921fa87b3d366d6c074e5a9a0b8dadb", - "sha256:891dc8f522d7059ff0024cd3ae79fd224752676447f9c678f2a5c14b84d9a939", - "sha256:8a31f24e2a0b6317f33aafbb2f0895c0bce772980ae60c2c640d82caac49628a", - "sha256:8b99ec73073b37f9ebe8caf399001848fced9c08064effdbfc4da2b5a8d07b93", - "sha256:986b7a96228c9b4942ec420eff37556c5777bfba6758edcb95421e4a614b57f9", - "sha256:a1547ff4b8a833511eeaceacbcd17b043214fcdb385148f9c1bc5556ca9623e2", - "sha256:a2bfc7e2a0601b475477c954bf167dee6d0f55cb167e3f3e7cefad906e7759f6", - "sha256:a3c5f1a719aa11866ffc530d54ad965063a8cbbecae6515acbd5f0fae8f48eaa", - "sha256:a9f1c3489736ff8e1c7652e9dc39f80cff820f23624f23d9eab6e122ac99b150", - "sha256:aa0cf4922da7a3c905d000b35065df6184c0dc1d866dd3b86fd961905bbad2ea", - "sha256:ad4332a532e2d5acb231a2e5d33f943750091ee435daffca3fec0a53224e7e33", - "sha256:b2582b238e1658c4061ebe1b4df53c435190d22457642377fd0cb30685cdfb76", - "sha256:b6fc2e2fb6f532cf48b5fed57567ef286addcef38c28874458a41b7837a57807", - "sha256:b92d40121dcbd74831b690a75533da703750f7041b4bf951befc657c37e5695a", - "sha256:bbab6faf6568484707acc052f4dfc3802bdb0cafe079383fbaa23f1cdae9ecd4", - "sha256:c0b88ed1ae66777a798dc54f627e32d3b81c8009967c63993c450ee4cbcbec15", - "sha256:ce13d6291a5f47c1c8dbd375baa78551053bc6b5e5c0e9bb8e39c0a8359fd52f", - "sha256:db3535733f59e5605a88a706824dfcb9bd06725e709ecb017e165fc1d6e7d429", - "sha256:dd10383f1d6b7edf247d0960a3db274c07e96cf3a3fc7c41c8448f93eac3fb1c", - "sha256:e01f9531ba5420838c801c21c1b0f45dbc9607cb22ea2cf132844453bec863a5", - "sha256:e11527dc23d5ef44d76fef11213215c34f36af1608074561fcc561d983aeb870", - "sha256:e1ab2fac607842ac36864e358c42feb0960ae62c34aa4caaf12ada0a1fb5d99b", - "sha256:e1fd7d2fe11f1cb63d3336d147c852f6d07de0d0020d704c6031b46a30b02ca8", - "sha256:e9f84ed9f4d50b74fbc77298ee5c870f67cb7e91dcdc1a6915cb1ff6a317476c", - "sha256:ec4b4e75fc68da9dc0ed73dcdb431c25c57775383fec325d23a770a64e7ebc87", - "sha256:f10ce66fcdeb3543df51d423ede7e238be98412232fca5daec3e54bcd16b8da0", - "sha256:f63f62fc60e6228a4ca9abae28228f35e1bd3ce675013d1dfb828688d50c6e23", - "sha256:fa56bb08b3dd8eac3a8c5b7d075c94e74f755fd9d8a04543ae8d37b1612dd170", - "sha256:fa9b7c450be85bfc6cd39f6df8c5b8cbd76b5d6fc1f69efec80203f9894b885f" + "sha256:04da965dfebb5dac2619cb90fcf93efdb35b3c6994fea58a157a834f2f94b318", + "sha256:0538747a9d7827ce3e16a8fdd201a99e661c7dee3c96c885d8ecba3c35d1032c", + "sha256:0645e934e940107e2fdbe7c5b6fb8ec6232444260752598bc4d09511bd056c0b", + "sha256:079b68f197c796e42aa80b1f739f058dcee796dc725cc9a1be0cdb08fc45b000", + "sha256:0f3f0059891d3254c7b5fb935330d6db38d6519ecd238ca4fce93c234b4a0f73", + "sha256:10d2017f9150248563bb579cd0d07c61c58da85c922b780060dcc9a3aa9f432d", + "sha256:1355755b62c28950f9ce123c7a41460ed9743c699905cbe664a5bcc5c9c7c7fb", + "sha256:13c90064b224e10c14dcdf8086688d3f0e612db53766e7478d7754703295c7c8", + "sha256:1423631e3d51008871299525b541413c9b6c6423593e89f9c4cfbe8460afc0a2", + "sha256:1436cf0063bba7888e43f1ba8d58824f085410ea2025befe81150aceb123e345", + "sha256:1a7c59c6ffd6ef5db362b798f350e24ab2cfa5700d53ac6681918f314a4d3b94", + "sha256:1e1cf47774373777936c5aabad489fef7b1c087dcd1f426b621fda9dcc12994e", + "sha256:206a51077773c6c5d2ce1991327cda719063a47adc02bd703c56a662cdb6c58b", + "sha256:21fb3d24ab430fc538a96e9fbb9b150029914805d551deeac7d7822f64631dfc", + "sha256:27e590352c76156f50f538dbcebd1925317a0f70540f7dc8c97d2931c595783a", + "sha256:287605bede6bd36e930577c5925fcea17cb30453d96a7b4c63c14a257118dbb9", + "sha256:2aaf6a0a6465d39b5ca69688fce82d20088c1838534982996ec46633dc7ad6cc", + "sha256:32a73c53783becdb7eaf75a2a1525ea8e49379fb7248c3eeefb9412123536387", + "sha256:41fb58868b816c202e8881fd0f179a4644ce6e7cbbb248ef0283a34b73ec73bb", + "sha256:4780677767dd52b99f0af1f123bc2c22873d30b474aa0e2fc3fe5e02217687c7", + "sha256:4878e667ebabe9b65e785ac8da4d48886fe81193a84bbe49f12acff8f7a383a4", + "sha256:487c8e61d7acc50b8be82bda8c8d21d20e133c3cbf41bd8ad7eb1aaeb3f07c97", + "sha256:4beea0f31491bc086991b97517b9683e5cfb369205dac0148ef685ac12a20a67", + "sha256:4cfbe42c686f33944e12f45a27d25a492cc0e43e1dc1da5d6a87cbcaf2e95627", + "sha256:4d5bae0a37af799207140652a700f21a85946f107a199bcb06720b13a4f1f0b7", + "sha256:4e285b5f2bf321fc0857b491b5028c5f276ec0c873b985d58d7748ece1d770dd", + "sha256:57e4d637258703d14171b54203fd6822fda218c6c2658a7d30816b10995f29f3", + "sha256:5974895115737a74a00b321e339b9c3f45c20275d226398ae79ac008d908bff7", + "sha256:5ef87fca280fb15342726bd5f980f6faf8b84a5287fcc2d4962ea8af88b35130", + "sha256:603a464c2e67d8a546ddaa206d98e3246e5db05594b97db844c2f0a1af37cf5b", + "sha256:6653071f4f9bac46fbc30f3c7838b0e9063ee335908c5d61fb7a4a86c8fd2036", + "sha256:6ca2264f341dd81e41f3fffecec6e446aa2121e0b8d026fb5130e02de1402785", + "sha256:6d279033bf614953c3fc4a0aa9ac33a21e8044ca72d4fa8b9273fe75359d5cca", + "sha256:6d949f53ad4fc7cf02c44d6678e7ff05ec5f5552b235b9e136bd52e9bf730b91", + "sha256:6daa662aba22ef3258934105be2dd9afa5bb45748f4f702a3b39a5bf53a1f4dc", + "sha256:6eafc048ea3f1b3c136c71a86db393be36b5b3d9c87b1c25204e7d397cee9536", + "sha256:830c88747dce8a3e7525defa68afd742b4580df6aa2fdd6f0855481e3994d391", + "sha256:86e92728ef3fc842c50a5cb1d5ba2bc66db7da08a7af53fb3da79e202d1b2cd3", + "sha256:8caf4d16b31961e964c62194ea3e26a0e9561cdf72eecb1781458b67ec83423d", + "sha256:8d1a92d8e90b286d491e5626af53afef2ba04da33e82e30744795c71880eaa21", + "sha256:8f0a4d179c9a941eb80c3a63cdb495e539e064f8054230844dcf2fcb812b71d3", + "sha256:9232b09f5efee6a495a99ae6824881940d6447debe272ea400c02e3b68aad85d", + "sha256:927a9dd016d6033bc12e0bf5dee1dde140235fc8d0d51099353c76081c03dc29", + "sha256:93e414e3206779ef41e5ff2448067213febf260ba747fc65389a3ddaa3fb8715", + "sha256:98cafc618614d72b02185ac583c6f7796202062c41d2eeecdf07820bad3295ed", + "sha256:9c3a88d20e4fe4a2a4a84bf439a5ac9c9aba400b85244c63a1ab7088f85d9d25", + "sha256:9f36de4cd0c262dd9927886cc2305aa3f2210db437aa4fed3fb4940b8bf4592c", + "sha256:a60f90bba4c37962cbf210f0188ecca87daafdf60271f4c6948606e4dabf8785", + "sha256:a614e4afed58c14254e67862456d212c4dcceebab2eaa44d627c2ca04bf86837", + "sha256:ae06c1e4bc60ee076292e582a7512f304abdf6c70db59b56745cca1684f875a4", + "sha256:b122a188cd292c4d2fcd78d04f863b789ef43aa129b233d7c9004de08693728b", + "sha256:b570da8cd0012f4af9fa76a5635cd31f707473e65a5a335b186069d5c7121ff2", + "sha256:bcaa1c495ce623966d9fc8a187da80082334236a2a1c7e141763ffaf7a405067", + "sha256:bd34f6d1810d9354dc7e35158aa6cc33456be7706df4420819af6ed966e85448", + "sha256:be9eb06489bc975c38706902cbc6888f39e946b81383abc2838d186f0e8b6a9d", + "sha256:c4b2e0559b68455c085fb0f6178e9752c4be3bba104d6e881eb5573b399d1eb2", + "sha256:c62e8dd9754b7debda0c5ba59d34509c4688f853588d75b53c3791983faa96fc", + "sha256:c852b1530083a620cb0de5f3cd6826f19862bafeaf77586f1aef326e49d95f0c", + "sha256:d9fc0bf3ff86c17348dfc5d322f627d78273eba545db865c3cd14b3f19e57fa5", + "sha256:dad7b164905d3e534883281c050180afcf1e230c3d4a54e8038aa5cfcf312b84", + "sha256:e5f66bdf0976ec667fc4594d2812a00b07ed14d1b44259d19a41ae3fff99f2b8", + "sha256:e8f0c9d65da595cfe91713bc1222af9ecabd37971762cb830dea2fc3b3bb2acf", + "sha256:edffbe3c510d8f4bf8640e02ca019e48a9b72357318383ca60e3330c23aaffc7", + "sha256:eea5d6443b093e1545ad0210e6cf27f920482bfcf5c77cdc8596aec73523bb7e", + "sha256:ef72013e20dd5ba86a8ae1aed7f56f31d3374189aa8b433e7b12ad182c0d2dfb", + "sha256:f05251bbc2145349b8d0b77c0d4e5f3b228418807b1ee27cefb11f69ed3d233b", + "sha256:f1be258c4d3dc609e654a1dc59d37b17d7fef05df912c01fc2e15eb43a9735f3", + "sha256:f9ced82717c7ec65a67667bb05865ffe38af0e835cdd78728f1209c8fffe0cad", + "sha256:fe17d10b97fdf58155f858606bddb4e037b805a60ae023c009f760d8361a4eb8", + "sha256:fe749b052bb7233fe5d072fcb549221a8cb1a16725c47c37e42b0b9cb3ff2c3f" ], "index": "pypi", - "version": "==4.8.0" + "version": "==4.9.1" }, "numpy": { "hashes": [ - "sha256:07a8c89a04997625236c5ecb7afe35a02af3896c8aa01890a849913a2309c676", - "sha256:08d9b008d0156c70dc392bb3ab3abb6e7a711383c3247b410b39962263576cd4", - "sha256:201b4d0552831f7250a08d3b38de0d989d6f6e4658b709a02a73c524ccc6ffce", - "sha256:2c10a93606e0b4b95c9b04b77dc349b398fdfbda382d2a39ba5a822f669a0123", - "sha256:3ca688e1b9b95d80250bca34b11a05e389b1420d00e87a0d12dc45f131f704a1", - "sha256:48a3aecd3b997bf452a2dedb11f4e79bc5bfd21a1d4cc760e703c31d57c84b3e", - "sha256:568dfd16224abddafb1cbcce2ff14f522abe037268514dd7e42c6776a1c3f8e5", - "sha256:5bfb1bb598e8229c2d5d48db1860bcf4311337864ea3efdbe1171fb0c5da515d", - "sha256:639b54cdf6aa4f82fe37ebf70401bbb74b8508fddcf4797f9fe59615b8c5813a", - "sha256:8251ed96f38b47b4295b1ae51631de7ffa8260b5b087808ef09a39a9d66c97ab", - "sha256:92bfa69cfbdf7dfc3040978ad09a48091143cffb778ec3b03fa170c494118d75", - "sha256:97098b95aa4e418529099c26558eeb8486e66bd1e53a6b606d684d0c3616b168", - "sha256:a3bae1a2ed00e90b3ba5f7bd0a7c7999b55d609e0c54ceb2b076a25e345fa9f4", - "sha256:c34ea7e9d13a70bf2ab64a2532fe149a9aced424cd05a2c4ba662fd989e3e45f", - "sha256:dbc7601a3b7472d559dc7b933b18b4b66f9aa7452c120e87dfb33d02008c8a18", - "sha256:e7927a589df200c5e23c57970bafbd0cd322459aa7b1ff73b7c2e84d6e3eae62", - "sha256:f8c1f39caad2c896bc0018f699882b345b2a63708008be29b1f355ebf6f933fe", - "sha256:f950f8845b480cffe522913d35567e29dd381b0dc7e4ce6a4a9f9156417d2430", - "sha256:fade0d4f4d292b6f39951b6836d7a3c7ef5b2347f3c420cd9820a1d90d794802", - "sha256:fdf3c08bce27132395d3c3ba1503cac12e17282358cb4bddc25cc46b0aca07aa" - ], - "markers": "python_version < '3.10' and platform_machine != 'aarch64' and platform_machine != 'arm64'", - "version": "==1.22.3" + "sha256:1408c3527a74a0209c781ac82bde2182b0f0bf54dea6e6a363fe0cc4488a7ce7", + "sha256:173f28921b15d341afadf6c3898a34f20a0569e4ad5435297ba262ee8941e77b", + "sha256:1865fdf51446839ca3fffaab172461f2b781163f6f395f1aed256b1ddc253622", + "sha256:3119daed207e9410eaf57dcf9591fdc68045f60483d94956bee0bfdcba790953", + "sha256:35590b9c33c0f1c9732b3231bb6a72d1e4f77872390c47d50a615686ae7ed3fd", + "sha256:37e5ebebb0eb54c5b4a9b04e6f3018e16b8ef257d26c8945925ba8105008e645", + "sha256:37ece2bd095e9781a7156852e43d18044fd0d742934833335599c583618181b9", + "sha256:3ab67966c8d45d55a2bdf40701536af6443763907086c0a6d1232688e27e5447", + "sha256:47f10ab202fe4d8495ff484b5561c65dd59177949ca07975663f4494f7269e3e", + "sha256:55df0f7483b822855af67e38fb3a526e787adf189383b4934305565d71c4b148", + "sha256:5d732d17b8a9061540a10fda5bfeabca5785700ab5469a5e9b93aca5e2d3a5fb", + "sha256:68b69f52e6545af010b76516f5daaef6173e73353e3295c5cb9f96c35d755641", + "sha256:7e8229f3687cdadba2c4faef39204feb51ef7c1a9b669247d49a24f3e2e1617c", + "sha256:8002574a6b46ac3b5739a003b5233376aeac5163e5dcd43dd7ad062f3e186129", + "sha256:876f60de09734fbcb4e27a97c9a286b51284df1326b1ac5f1bf0ad3678236b22", + "sha256:9ce242162015b7e88092dccd0e854548c0926b75c7924a3495e02c6067aba1f5", + "sha256:a35c4e64dfca659fe4d0f1421fc0f05b8ed1ca8c46fb73d9e5a7f175f85696bb", + "sha256:aeba539285dcf0a1ba755945865ec61240ede5432df41d6e29fab305f4384db2", + "sha256:b15c3f1ed08df4980e02cc79ee058b788a3d0bef2fb3c9ca90bb8cbd5b8a3a04", + "sha256:c2f91f88230042a130ceb1b496932aa717dcbd665350beb821534c5c7e15881c", + "sha256:d748ef349bfef2e1194b59da37ed5a29c19ea8d7e6342019921ba2ba4fd8b624", + "sha256:e0d7447679ae9a7124385ccf0ea990bb85bb869cef217e2ea6c844b6a6855073" + ], + "markers": "python_version >= '3.8'", + "version": "==1.23.1" }, "oauthlib": { "hashes": [ "sha256:23a8208d75b902797ea29fd31fa80a15ed9dc2c6c16fe73f5d346f83f6fa27a2", "sha256:6db33440354787f9b7f3a6dbd4febf5d0f93758354060e802f6c06cb493022fe" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==3.2.0" }, "opensky-api": { "editable": true, "git": "https://github.com/openskynetwork/opensky-api.git", - "ref": "68c8304471fe32f5eaca8a41144fdad35d8a8ce4", + "ref": "7bda8d14ada6241f1f246fd42d7d032aabe7ea91", "subdirectory": "python" }, "outcome": { "hashes": [ - "sha256:c7dd9375cfd3c12db9801d080a3b63d4b0a261aa996c4c13152380587288d958", - "sha256:e862f01d4e626e63e8f92c38d1f8d5546d3f9cce989263c521b2e7990d186967" + "sha256:6f82bd3de45da303cf1f771ecafa1633750a358436a8bb60e06a1ceb745d2672", + "sha256:c4ab89a56575d6d38a05aa16daeaa333109c1f96167aba8901ab18b6b5e0f7f5" ], - "markers": "python_version >= '3.6'", - "version": "==1.1.0" + "markers": "python_version >= '3.7'", + "version": "==1.2.0" }, "pandas": { "hashes": [ - "sha256:0259cd11e7e6125aaea3af823b80444f3adad6149ff4c97fef760093598b3e34", - "sha256:04dd15d9db538470900c851498e532ef28d4e56bfe72c9523acb32042de43dfb", - "sha256:0b1a13f647e4209ed7dbb5da3497891d0045da9785327530ab696417ef478f84", - "sha256:19f7c632436b1b4f84615c3b127bbd7bc603db95e3d4332ed259dc815c9aaa26", - "sha256:1b384516dbb4e6aae30e3464c2e77c563da5980440fbdfbd0968e3942f8f9d70", - "sha256:1d85d5f6be66dfd6d1d8d13b9535e342a2214260f1852654b19fa4d7b8d1218b", - "sha256:2e5a7a1e0ecaac652326af627a3eca84886da9e667d68286866d4e33f6547caf", - "sha256:3129a35d9dad1d80c234dd78f8f03141b914395d23f97cf92a366dcd19f8f8bf", - "sha256:358b0bc98a5ff067132d23bf7a2242ee95db9ea5b7bbc401cf79205f11502fd3", - "sha256:3dfb32ed50122fe8c5e7f2b8d97387edd742cc78f9ec36f007ee126cd3720907", - "sha256:4e1176f45981c8ccc8161bc036916c004ca51037a7ed73f2d2a9857e6dbe654f", - "sha256:508c99debccd15790d526ce6b1624b97a5e1e4ca5b871319fb0ebfd46b8f4dad", - "sha256:6105af6533f8b63a43ea9f08a2ede04e8f43e49daef0209ab0d30352bcf08bee", - "sha256:6d6ad1da00c7cc7d8dd1559a6ba59ba3973be6b15722d49738b2be0977eb8a0c", - "sha256:7ea47ba1d6f359680130bd29af497333be6110de8f4c35b9211eec5a5a9630fa", - "sha256:8db93ec98ac7cb5f8ac1420c10f5e3c43533153f253fe7fb6d891cf5aa2b80d2", - "sha256:96e9ece5759f9b47ae43794b6359bbc54805d76e573b161ae770c1ea59393106", - "sha256:bbb15ad79050e8b8d39ec40dd96a30cd09b886a2ae8848d0df1abba4d5502a67", - "sha256:c614001129b2a5add5e3677c3a213a9e6fd376204cb8d17c04e84ff7dfc02a73", - "sha256:e6a7bbbb7950063bfc942f8794bc3e31697c020a14f1cd8905fc1d28ec674a01", - "sha256:f02e85e6d832be37d7f16cf6ac8bb26b519ace3e5f3235564a91c7f658ab2a43" + "sha256:07238a58d7cbc8a004855ade7b75bbd22c0db4b0ffccc721556bab8a095515f6", + "sha256:0daf876dba6c622154b2e6741f29e87161f844e64f84801554f879d27ba63c0d", + "sha256:16ad23db55efcc93fa878f7837267973b61ea85d244fc5ff0ccbcfa5638706c5", + "sha256:1d9382f72a4f0e93909feece6fef5500e838ce1c355a581b3d8f259839f2ea76", + "sha256:24ea75f47bbd5574675dae21d51779a4948715416413b30614c1e8b480909f81", + "sha256:2893e923472a5e090c2d5e8db83e8f907364ec048572084c7d10ef93546be6d1", + "sha256:2ff7788468e75917574f080cd4681b27e1a7bf36461fe968b49a87b5a54d007c", + "sha256:41fc406e374590a3d492325b889a2686b31e7a7780bec83db2512988550dadbf", + "sha256:48350592665ea3cbcd07efc8c12ff12d89be09cd47231c7925e3b8afada9d50d", + "sha256:605d572126eb4ab2eadf5c59d5d69f0608df2bf7bcad5c5880a47a20a0699e3e", + "sha256:6dfbf16b1ea4f4d0ee11084d9c026340514d1d30270eaa82a9f1297b6c8ecbf0", + "sha256:6f803320c9da732cc79210d7e8cc5c8019aad512589c910c66529eb1b1818230", + "sha256:721a3dd2f06ef942f83a819c0f3f6a648b2830b191a72bbe9451bcd49c3bd42e", + "sha256:755679c49460bd0d2f837ab99f0a26948e68fa0718b7e42afbabd074d945bf84", + "sha256:78b00429161ccb0da252229bcda8010b445c4bf924e721265bec5a6e96a92e92", + "sha256:958a0588149190c22cdebbc0797e01972950c927a11a900fe6c2296f207b1d6f", + "sha256:a3924692160e3d847e18702bb048dc38e0e13411d2b503fecb1adf0fcf950ba4", + "sha256:d51674ed8e2551ef7773820ef5dab9322be0828629f2cbf8d1fc31a0c4fed640", + "sha256:d5ebc990bd34f4ac3c73a2724c2dcc9ee7bf1ce6cf08e87bb25c6ad33507e318", + "sha256:d6c0106415ff1a10c326c49bc5dd9ea8b9897a6ca0c8688eb9c30ddec49535ef", + "sha256:e48fbb64165cda451c06a0f9e4c7a16b534fcabd32546d531b3c240ce2844112" ], "index": "pypi", - "version": "==1.4.1" + "version": "==1.4.3" }, "pillow": { "hashes": [ - "sha256:011233e0c42a4a7836498e98c1acf5e744c96a67dd5032a6f666cc1fb97eab97", - "sha256:0f29d831e2151e0b7b39981756d201f7108d3d215896212ffe2e992d06bfe049", - "sha256:12875d118f21cf35604176872447cdb57b07126750a33748bac15e77f90f1f9c", - "sha256:14d4b1341ac07ae07eb2cc682f459bec932a380c3b122f5540432d8977e64eae", - "sha256:1c3c33ac69cf059bbb9d1a71eeaba76781b450bc307e2291f8a4764d779a6b28", - "sha256:1d19397351f73a88904ad1aee421e800fe4bbcd1aeee6435fb62d0a05ccd1030", - "sha256:253e8a302a96df6927310a9d44e6103055e8fb96a6822f8b7f514bb7ef77de56", - "sha256:2632d0f846b7c7600edf53c48f8f9f1e13e62f66a6dbc15191029d950bfed976", - "sha256:335ace1a22325395c4ea88e00ba3dc89ca029bd66bd5a3c382d53e44f0ccd77e", - "sha256:413ce0bbf9fc6278b2d63309dfeefe452835e1c78398efb431bab0672fe9274e", - "sha256:5100b45a4638e3c00e4d2320d3193bdabb2d75e79793af7c3eb139e4f569f16f", - "sha256:514ceac913076feefbeaf89771fd6febde78b0c4c1b23aaeab082c41c694e81b", - "sha256:528a2a692c65dd5cafc130de286030af251d2ee0483a5bf50c9348aefe834e8a", - "sha256:6295f6763749b89c994fcb6d8a7f7ce03c3992e695f89f00b741b4580b199b7e", - "sha256:6c8bc8238a7dfdaf7a75f5ec5a663f4173f8c367e5a39f87e720495e1eed75fa", - "sha256:718856856ba31f14f13ba885ff13874be7fefc53984d2832458f12c38205f7f7", - "sha256:7f7609a718b177bf171ac93cea9fd2ddc0e03e84d8fa4e887bdfc39671d46b00", - "sha256:80ca33961ced9c63358056bd08403ff866512038883e74f3a4bf88ad3eb66838", - "sha256:80fe64a6deb6fcfdf7b8386f2cf216d329be6f2781f7d90304351811fb591360", - "sha256:81c4b81611e3a3cb30e59b0cf05b888c675f97e3adb2c8672c3154047980726b", - "sha256:855c583f268edde09474b081e3ddcd5cf3b20c12f26e0d434e1386cc5d318e7a", - "sha256:9bfdb82cdfeccec50aad441afc332faf8606dfa5e8efd18a6692b5d6e79f00fd", - "sha256:a5d24e1d674dd9d72c66ad3ea9131322819ff86250b30dc5821cbafcfa0b96b4", - "sha256:a9f44cd7e162ac6191491d7249cceb02b8116b0f7e847ee33f739d7cb1ea1f70", - "sha256:b5b3f092fe345c03bca1e0b687dfbb39364b21ebb8ba90e3fa707374b7915204", - "sha256:b9618823bd237c0d2575283f2939655f54d51b4527ec3972907a927acbcc5bfc", - "sha256:cef9c85ccbe9bee00909758936ea841ef12035296c748aaceee535969e27d31b", - "sha256:d21237d0cd37acded35154e29aec853e945950321dd2ffd1a7d86fe686814669", - "sha256:d3c5c79ab7dfce6d88f1ba639b77e77a17ea33a01b07b99840d6ed08031cb2a7", - "sha256:d9d7942b624b04b895cb95af03a23407f17646815495ce4547f0e60e0b06f58e", - "sha256:db6d9fac65bd08cea7f3540b899977c6dee9edad959fa4eaf305940d9cbd861c", - "sha256:ede5af4a2702444a832a800b8eb7f0a7a1c0eed55b644642e049c98d589e5092", - "sha256:effb7749713d5317478bb3acb3f81d9d7c7f86726d41c1facca068a04cf5bb4c", - "sha256:f154d173286a5d1863637a7dcd8c3437bb557520b01bddb0be0258dcb72696b5", - "sha256:f25ed6e28ddf50de7e7ea99d7a976d6a9c415f03adcaac9c41ff6ff41b6d86ac" + "sha256:0030fdbd926fb85844b8b92e2f9449ba89607231d3dd597a21ae72dc7fe26927", + "sha256:030e3460861488e249731c3e7ab59b07c7853838ff3b8e16aac9561bb345da14", + "sha256:0ed2c4ef2451de908c90436d6e8092e13a43992f1860275b4d8082667fbb2ffc", + "sha256:136659638f61a251e8ed3b331fc6ccd124590eeff539de57c5f80ef3a9594e58", + "sha256:13b725463f32df1bfeacbf3dd197fb358ae8ebcd8c5548faa75126ea425ccb60", + "sha256:1536ad017a9f789430fb6b8be8bf99d2f214c76502becc196c6f2d9a75b01b76", + "sha256:15928f824870535c85dbf949c09d6ae7d3d6ac2d6efec80f3227f73eefba741c", + "sha256:17d4cafe22f050b46d983b71c707162d63d796a1235cdf8b9d7a112e97b15bac", + "sha256:1802f34298f5ba11d55e5bb09c31997dc0c6aed919658dfdf0198a2fe75d5490", + "sha256:1cc1d2451e8a3b4bfdb9caf745b58e6c7a77d2e469159b0d527a4554d73694d1", + "sha256:1fd6f5e3c0e4697fa7eb45b6e93996299f3feee73a3175fa451f49a74d092b9f", + "sha256:254164c57bab4b459f14c64e93df11eff5ded575192c294a0c49270f22c5d93d", + "sha256:2ad0d4df0f5ef2247e27fc790d5c9b5a0af8ade9ba340db4a73bb1a4a3e5fb4f", + "sha256:2c58b24e3a63efd22554c676d81b0e57f80e0a7d3a5874a7e14ce90ec40d3069", + "sha256:2d33a11f601213dcd5718109c09a52c2a1c893e7461f0be2d6febc2879ec2402", + "sha256:337a74fd2f291c607d220c793a8135273c4c2ab001b03e601c36766005f36885", + "sha256:37ff6b522a26d0538b753f0b4e8e164fdada12db6c6f00f62145d732d8a3152e", + "sha256:3d1f14f5f691f55e1b47f824ca4fdcb4b19b4323fe43cc7bb105988cad7496be", + "sha256:408673ed75594933714482501fe97e055a42996087eeca7e5d06e33218d05aa8", + "sha256:4134d3f1ba5f15027ff5c04296f13328fecd46921424084516bdb1b2548e66ff", + "sha256:4ad2f835e0ad81d1689f1b7e3fbac7b01bb8777d5a985c8962bedee0cc6d43da", + "sha256:50dff9cc21826d2977ef2d2a205504034e3a4563ca6f5db739b0d1026658e004", + "sha256:510cef4a3f401c246cfd8227b300828715dd055463cdca6176c2e4036df8bd4f", + "sha256:5aed7dde98403cd91d86a1115c78d8145c83078e864c1de1064f52e6feb61b20", + "sha256:69bd1a15d7ba3694631e00df8de65a8cb031911ca11f44929c97fe05eb9b6c1d", + "sha256:6bf088c1ce160f50ea40764f825ec9b72ed9da25346216b91361eef8ad1b8f8c", + "sha256:6e8c66f70fb539301e064f6478d7453e820d8a2c631da948a23384865cd95544", + "sha256:727dd1389bc5cb9827cbd1f9d40d2c2a1a0c9b32dd2261db522d22a604a6eec9", + "sha256:74a04183e6e64930b667d321524e3c5361094bb4af9083db5c301db64cd341f3", + "sha256:75e636fd3e0fb872693f23ccb8a5ff2cd578801251f3a4f6854c6a5d437d3c04", + "sha256:7761afe0126d046974a01e030ae7529ed0ca6a196de3ec6937c11df0df1bc91c", + "sha256:7888310f6214f19ab2b6df90f3f06afa3df7ef7355fc025e78a3044737fab1f5", + "sha256:7b0554af24df2bf96618dac71ddada02420f946be943b181108cac55a7a2dcd4", + "sha256:7c7b502bc34f6e32ba022b4a209638f9e097d7a9098104ae420eb8186217ebbb", + "sha256:808add66ea764ed97d44dda1ac4f2cfec4c1867d9efb16a33d158be79f32b8a4", + "sha256:831e648102c82f152e14c1a0938689dbb22480c548c8d4b8b248b3e50967b88c", + "sha256:93689632949aff41199090eff5474f3990b6823404e45d66a5d44304e9cdc467", + "sha256:96b5e6874431df16aee0c1ba237574cb6dff1dcb173798faa6a9d8b399a05d0e", + "sha256:9a54614049a18a2d6fe156e68e188da02a046a4a93cf24f373bffd977e943421", + "sha256:a138441e95562b3c078746a22f8fca8ff1c22c014f856278bdbdd89ca36cff1b", + "sha256:a647c0d4478b995c5e54615a2e5360ccedd2f85e70ab57fbe817ca613d5e63b8", + "sha256:a9c9bc489f8ab30906d7a85afac4b4944a572a7432e00698a7239f44a44e6efb", + "sha256:ad2277b185ebce47a63f4dc6302e30f05762b688f8dc3de55dbae4651872cdf3", + "sha256:b6d5e92df2b77665e07ddb2e4dbd6d644b78e4c0d2e9272a852627cdba0d75cf", + "sha256:bc431b065722a5ad1dfb4df354fb9333b7a582a5ee39a90e6ffff688d72f27a1", + "sha256:bdd0de2d64688ecae88dd8935012c4a72681e5df632af903a1dca8c5e7aa871a", + "sha256:c79698d4cd9318d9481d89a77e2d3fcaeff5486be641e60a4b49f3d2ecca4e28", + "sha256:cb6259196a589123d755380b65127ddc60f4c64b21fc3bb46ce3a6ea663659b0", + "sha256:d5b87da55a08acb586bad5c3aa3b86505f559b84f39035b233d5bf844b0834b1", + "sha256:dcd7b9c7139dc8258d164b55696ecd16c04607f1cc33ba7af86613881ffe4ac8", + "sha256:dfe4c1fedfde4e2fbc009d5ad420647f7730d719786388b7de0999bf32c0d9fd", + "sha256:ea98f633d45f7e815db648fd7ff0f19e328302ac36427343e4432c84432e7ff4", + "sha256:ec52c351b35ca269cb1f8069d610fc45c5bd38c3e91f9ab4cbbf0aebc136d9c8", + "sha256:eef7592281f7c174d3d6cbfbb7ee5984a671fcd77e3fc78e973d492e9bf0eb3f", + "sha256:f07f1f00e22b231dd3d9b9208692042e29792d6bd4f6639415d2f23158a80013", + "sha256:f3fac744f9b540148fa7715a435d2283b71f68bfb6d4aae24482a890aed18b59", + "sha256:fa768eff5f9f958270b081bb33581b4b569faabf8774726b283edb06617101dc", + "sha256:fac2d65901fb0fdf20363fbd345c01958a742f2dc62a8dd4495af66e3ff502a4" ], "index": "pypi", - "version": "==9.0.1" + "version": "==9.2.0" }, "pushbullet.py": { "hashes": [ @@ -456,29 +507,32 @@ }, "pyproj": { "hashes": [ - "sha256:067a5c6099949edd66e9a10b139af4e2f65ebadb9f59583923a1d3feefac749a", - "sha256:0e1fd560b509b722db6566fa9685252f25640e93464d09e13d5190ed7ab491ba", - "sha256:235b52d8700ffb6be1f3638b1e25d83a9c13edcdb793236d8a98fd39227c5c27", - "sha256:277072176a17471c0b1d25d6cae75401d81e9b50ea625ba546f5b79acd757dfc", - "sha256:2c41c9b7b5e1a1b0acc2b7b2f5de65b226f7b96c870888e4f679ff96322b1ed0", - "sha256:3d28b84913cd849832a8f154c0e0c2ee4618057f7389ee68bfdb2145e7ed78cc", - "sha256:4125e6704751d0e82d8d912d9851da097e8d38599d4c45f9944faaeb21771938", - "sha256:44b5590c0b8dd002154916e170ef88f57abf91005b34bcb23faef97abb4d42c2", - "sha256:4d2fc49c73d9f34e932bf37926d56916ba1b6f2f693cd4d8cc1d0d9eacc0e537", - "sha256:5a105bfe37c78416d2641cd5d3368c99057d041f15f8d51ea3898953b21395c9", - "sha256:99f171da5f885efeec8d7fb2e2557175ffa8834eeb488842b1f52ac78a9a98e5", - "sha256:ab4baf781721640659db83a6b4da636fc403008f4978c668275754284c946778", - "sha256:b15e199c1da8fd132e11dfa68d8cf65d4812dedabc776b308df778ecd0d07658", - "sha256:b48dd9e5736957707fce1d9253fb0772bcf80480198c7790e21fed73fee61240", - "sha256:ce1adec823738e2d7c6af019fc38f58b4204bacfc782e4430373578c672f3833", - "sha256:ce8bfbc212729e9a643f5f5d77f7a93394e032eda1e2d8799ae902d08add747e", - "sha256:dbf479bd481774ad217e9db5674868eee8f01dfe3868f61753328895ae7da61a", - "sha256:e70a1ea6f198cace1a492397bdd0a46e640201120973293d6c48031e370d6a87", - "sha256:eca8ecf2b6b3225d93c723e6a2f51143d9195ac407f69e979363cdde344b93bb", - "sha256:fcceb6736085bf19291b707bc67c8cebe05330bd02268e9b8eba6d28a1905fce" + "sha256:120d45ed73144c65e9677dc73ba8a531c495d179dd9f9f0471ac5acc02d7ac4b", + "sha256:140fa649fedd04f680a39f8ad339799a55cb1c49f6a84e1b32b97e49646647aa", + "sha256:1adc9ccd1bf04998493b6a2e87e60656c75ab790653b36cfe351e9ef214828ed", + "sha256:1ef1bfbe2dcc558c7a98e2f1836abdcd630390f3160724a6f4f5c818b2be0ad5", + "sha256:2fef9c1e339f25c57f6ae0558b5ab1bbdf7994529a30d8d7504fc6302ea51c03", + "sha256:3cc4771403db54494e1e55bca8e6d33cde322f8cf0ed39f1557ff109c66d2cd1", + "sha256:42eea10afc750fccd1c5c4ba56de29ab791ab4d83c1f7db72705566282ac5396", + "sha256:45487942c19c5a8b09c91964ea3201f4e094518e34743cae373889a36e3d9260", + "sha256:473961faef7a9fd723c5d432f65220ea6ab3854e606bf84b4d409a75a4261c78", + "sha256:52efb681647dfac185cc655a709bc0caaf910031a0390f816f5fc8ce150cbedc", + "sha256:531ea36519fa7b581466d4b6ab32f66ae4dadd9499d726352f71ee5e19c3d1c5", + "sha256:56b0f9ee2c5b2520b18db30a393a7b86130cf527ddbb8c96e7f3c837474a9d79", + "sha256:5ab0d6e38fda7c13726afacaf62e9f9dd858089d67910471758afd9cb24e0ecd", + "sha256:5ca5f32b56210429b367ca4f9a57ffe67975c487af82e179a24370879a3daf68", + "sha256:5dac03d4338a4c8bd0f69144c527474f517b4cbd7d2d8c532cd8937799723248", + "sha256:5f92d8f6514516124abb714dce912b20867831162cfff9fae2678ef07b6fcf0f", + "sha256:67025e37598a6bbed2c9c6c9e4c911f6dd39315d3e1148ead935a5c4d64309d5", + "sha256:797ad5655d484feac14b0fbb4a4efeaac0cf780a223046e2465494c767fd1c3b", + "sha256:aba199704c824fb84ab64927e7bc9ef71e603e483130ec0f7e09e97259b8f61f", + "sha256:aed1a3c0cd4182425f91b48d5db39f459bc2fe0d88017ead6425a1bc85faee33", + "sha256:b3d8e14d91cc95fb3dbc03a9d0588ac58326803eefa5bbb0978d109de3304fbe", + "sha256:b59c08aea13ee428cf8a919212d55c036cc94784805ed77c8f31a4d1f541058c", + "sha256:c99f7b5757a28040a2dd4a28c9805fdf13eef79a796f4a566ab5cb362d10630d" ], "index": "pypi", - "version": "==3.3.0" + "version": "==3.3.1" }, "pysocks": { "hashes": [ @@ -496,29 +550,37 @@ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==2.8.2" }, + "python-dotenv": { + "hashes": [ + "sha256:b7e3b04a59693c42c36f9ab1cc2acc46fa5df8c78e178fc33a8d4cd05c8d498f", + "sha256:d92a187be61fe482e4fd675b6d52200e7be63a12b724abbf931a40ce4fa92938" + ], + "markers": "python_version >= '3.5'", + "version": "==0.20.0" + }, "python-magic": { "hashes": [ - "sha256:1a2c81e8f395c744536369790bd75094665e9644110a6623bcc3bbea30f03973", - "sha256:21f5f542aa0330f5c8a64442528542f6215c8e18d2466b399b0d9d39356d83fc" + "sha256:c1ba14b08e4a5f5c31a302b7721239695b2f0f058d125bd5ce1ee36b9d9d3c3b", + "sha256:c212960ad306f700aa0d01e5d7a325d20548ff97eb9920dcd29513174f0294d3" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", - "version": "==0.4.25" + "version": "==0.4.27" }, "python-slugify": { "hashes": [ - "sha256:00003397f4e31414e922ce567b3a4da28cf1436a53d332c9aeeb51c7d8c469fd", - "sha256:8c0016b2d74503eb64761821612d58fcfc729493634b1eb0575d8f5b4aa1fbcf" + "sha256:272d106cb31ab99b3496ba085e3fea0e9e76dcde967b5e9992500d1f785ce4e1", + "sha256:7b2c274c308b62f4269a9ba701aa69a797e9bca41aeee5b3a9e79e36b6656927" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", - "version": "==6.1.1" + "version": "==6.1.2" }, "python-telegram-bot": { "hashes": [ - "sha256:534f5bb0ff4ca34c9252e97e0b3bcdab81d97be0eb4821682a361cb426c00e55", - "sha256:baeff704baa2ac3dc17a944c02da888228ad258e89be2e5bcbd13a8a5102d573" + "sha256:13f83ec4433f24a67e7a2df0206dfde83c1627c92880a2fcf95a83585b3cc589", + "sha256:4296d81a38b7e5ef1f9795651128e58fb354678b8dc4db93ca166c96828c57b2" ], "index": "pypi", - "version": "==13.11" + "version": "==13.13" }, "pytz": { "hashes": [ @@ -538,11 +600,11 @@ }, "requests": { "hashes": [ - "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61", - "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d" + "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983", + "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", - "version": "==2.27.1" + "markers": "python_version >= '3.7' and python_version < '4'", + "version": "==2.28.1" }, "requests-oauthlib": { "hashes": [ @@ -561,42 +623,58 @@ }, "selenium": { "hashes": [ - "sha256:14d28a628c831c105d38305c881c9c7847199bfd728ec84240c5e86fa1c9bd5a" + "sha256:f67402b8f973aaa98d9c55b8f9aa63532009cd1859b2222a8b9800354942d8bc" ], "index": "pypi", - "version": "==4.1.3" + "version": "==4.3.0" + }, + "setuptools": { + "hashes": [ + "sha256:0d33c374d41c7863419fc8f6c10bfe25b7b498aa34164d135c622e52580c6b16", + "sha256:c04b44a57a6265fe34a4a444e965884716d34bae963119a76353434d6f18e450" + ], + "markers": "python_version >= '3.7'", + "version": "==63.2.0" }, "shapely": { "hashes": [ - "sha256:0ca96a3314b7a38a3bb385531469de1fcf2b2c2979ec2aa4f37b4c70632cf1ad", - "sha256:2020fda37c708d44a613c020cea09e81e476f96866f348afc2601e66c0e71db1", - "sha256:2381ce0aff67d569eb509bcc051264aa5fbdc1fdd54f4c09963d0e09f16a8f1b", - "sha256:363df36370f28fdc7789857929f6ff27e659f64087b4c89f7a47ed43bd3bfe4d", - "sha256:3a3602ba2e7715ddd5d4114173dec83d3181bfb2497e8589676c284aa739fd67", - "sha256:3e792635e92c9aacd1452a589a4fa2970114b6a9b1165e09655481f6e58970f5", - "sha256:437fff3b6274be26ffa3e450de711ee01e436324b5a405952add2146227e3eb5", - "sha256:44cb895b1710f7559c28d69dfa08cafe4f58cd4b7a87091a55bdf6711ad9ad66", - "sha256:493902923fdd135316161a4ece5294ba3ce81accaa54540d2af3b93f7231143a", - "sha256:54aeb2a57978ce731fd52289d0e1deee7c232d41aed53091f38776378f644184", - "sha256:5a420e7112b55a1587412a5b03ebf59e302ddd354da68516d3721718f6b8a7c5", - "sha256:679789d774cfe09ca05118cab78c0a6a42985b3ed23bc93606272a4509b4df28", - "sha256:69d5352fb977655c85d2f40a05ae24fc5053cccee77d0a8b1f773e54804e723e", - "sha256:83f3c8191d30ae0e3dd557434c48ca591d75342d5a3f42fc5148ec42796be624", - "sha256:89bc5f3abc1ccbc7682c2e1664153c4f8f125fa9c24bff4abca48685739d5636", - "sha256:8cf7331f61780506976fe2175e069d898e1b04ace73be21aad55c3ee92e58e3a", - "sha256:9248aad099ecf228fbdd877b0c668823dd83c48798cf04d49a1be75167e3a7ce", - "sha256:93ff06ff05fbe2be843b93c7b1ad8292e56e665ba01b4708f75ae8a757972e9f", - "sha256:aea1e87450adffba3d04ccbaa790df719bb7aa23b05ac797ad16be236a5d0db8", - "sha256:b4d35e72022b2dbf152d476b0362596011c674ff68be9fc8f2e68e71d86502ca", - "sha256:b82fc74d5efb11a71283c4ed69b4e036997cc70db4b73c646207ddf0476ade44", - "sha256:bab5ff7c576588acccd665ecce2a0fe7b47d4ce0398f2d5c1e5b2e27d09398d2", - "sha256:bc6063875182515d3888180cc4cbdbaa6443e4a4386c4bb25499e9875b75dcac", - "sha256:c4c366e18edf91196a399f8f0f046f93516002e6d8af0b57c23e7c7d91944b16", - "sha256:dc0f46212f84c57d13189fc33cf61e13eee292704d7652e931e4b51c54b0c73c", - "sha256:f109064bdb0753a6bac6238538cfeeb4a09739e2d556036b343b2eabeb9520b2" + "sha256:0c0fd457ce477b1dced507a72f1e2084c9191bfcb8a1e09886990ebd02acf024", + "sha256:137f1369630408024a62ff79a437a5657e6c5b76b9cd352dde704b425acdb298", + "sha256:15a856fbb588ad5d042784e00918c662902776452008c771ecba2ff615cd197a", + "sha256:1d95842cc6bbbeab673061b63e70b07be9a375c15a60f4098f8fbd29f43af1b4", + "sha256:256bdf8080bb7bb504d47b2c76919ecebab9708cc1b26266b3ec32b42448f642", + "sha256:2e02da2e988e74d61f15c720f9f613fab51942aae2dfeacdcb78eadece00e1f3", + "sha256:3423299254deec075e79fb7dc7909d702104e4167149de7f45510c3a6342eeea", + "sha256:3a40bf497b57a6625b83996aed10ce2233bca0e5471b8af771b186d681433ac5", + "sha256:44d2832c1b706bf43101fda92831a083467cc4b4923a7ed17319ab599c1025d8", + "sha256:5254240eefc44139ab0d128faf671635d8bdd9c23955ee063d4d6b8f20073ae0", + "sha256:56413f7d32c70b63f239eb0865b24c0c61029e38757de456cc4ab3c416559a0b", + "sha256:572af9d5006fd5e3213e37ee548912b0341fb26724d6dc8a4e3950c10197ebb6", + "sha256:62056e64b12b6d483d79f8e34bf058d2fe734d51c9227c1713705399434eff3b", + "sha256:68c8e18dc9dc8a198c3addc8c9596f64137101f566f04b96ecfca0b214cb8b12", + "sha256:6bdc7728f1e5df430d8c588661f79f1eed4a2728c8b689e12707cfec217f68f8", + "sha256:6fcb28836ae93809de1dde73c03c9c24bab0ba2b2bf419ddb2aeb72c96d110e9", + "sha256:75042e8039c79dd01f102bb288beace9dc2f49fc44a2dea875f9b697aa8cd30d", + "sha256:78966332a89813b237de357a03f612fd451a871fe6e26c12b6b71645fe8eee39", + "sha256:7c8eda45085ccdd7f9805ea4a93fdd5eb0b6039a61d5f0cefb960487e6dc17a1", + "sha256:7c9e3400b716c51ba43eea1678c28272580114e009b6c78cdd00c44df3e325fa", + "sha256:840be3f27a1152851c54b968f2e12d718c9f13b7acd51c482e58a70f60f29e31", + "sha256:8e3ed52a081da58eb4a885c157c594876633dbd4eb283f13ba5bf39c82322d76", + "sha256:8fe641f1f61b3d43dd61b5a85d2ef023e6e19bf8f204a5160a1cb1ec645cbc09", + "sha256:a58e1f362f2091743e5e13212f5d5d16251a4bb63dd0ed587c652d3be9620d3a", + "sha256:a60861b5ca2c488ebcdc706eca94d325c26d1567921c74acc83df5e6913590c7", + "sha256:beee3949ddf381735049cfa6532fb234d5d20a5be910c4f2fb7c7295fd7960e3", + "sha256:c0a0d7752b145343838bd36ed09382d85f5befe426832d7384c5b051c147acbd", + "sha256:c60f3758212ec480675b820b13035dda8af8f7cc560d2cc67999b2717fb8faef", + "sha256:ce0b5c5f7acbccf98b3460eecaa40e9b18272b2a734f74fcddf1d7696e047e95", + "sha256:cec89a5617c0137f4678282e983c3d63bf838fb00cdf318cc555b4d8409f7130", + "sha256:d3f3fac625690f01f35af665649e993f15f924e740b5c0ac0376900655815521", + "sha256:d74de394684d66e25e780b0359fda85be7766af85940fa2dfad728b1a815c71f", + "sha256:e07b0bd2a0e61a8afd4d1c1bd23f3550b711f01274ffb53de99358fd781eefd8", + "sha256:f12695662c3ad1e6031b3de98f191963d0f09de6d1a4988acd907405644032ba" ], "index": "pypi", - "version": "==1.8.1.post1" + "version": "==1.8.2" }, "six": { "hashes": [ @@ -623,27 +701,28 @@ }, "soupsieve": { "hashes": [ - "sha256:1a3cca2617c6b38c0343ed661b1fa5de5637f257d4fe22bd9f1338010a1efefb", - "sha256:b8d49b1cd4f037c7082a9683dfa1801aa2597fb11c3a1155b7a5b94829b4f1f9" + "sha256:3b2503d3c7084a42b1ebd08116e5f81aadfaea95863628c80a3b774a11b7c759", + "sha256:fc53893b3da2c33de295667a0e19f078c14bf86544af307354de5fcf12a3f30d" ], - "markers": "python_version >= '3.6'", - "version": "==2.3.1" + "markers": "python_full_version >= '3.6.0'", + "version": "==2.3.2.post1" }, "svgwrite": { "hashes": [ - "sha256:ca63d76396d1f6f099a2b2d8cf1419e1c1de8deece9a2b7f4da0632067d71d43", - "sha256:d304a929f197d31647c287c10eee0f64378058e1c83a9df83433a5980864e59f" + "sha256:a8fbdfd4443302a6619a7f76bc937fc683daf2628d9b737c891ec08b8ce524c3", + "sha256:bb6b2b5450f1edbfa597d924f9ac2dd099e625562e492021d7dd614f65f8a22d" ], - "markers": "python_version >= '3.6'", - "version": "==1.4.2" + "markers": "python_full_version >= '3.6.0'", + "version": "==1.4.3" }, "tabulate": { "hashes": [ - "sha256:d7c013fe7abbc5e491394e10fa845f8f32fe54f8dc60c6622c6cf482d25d47e4", - "sha256:eb1d13f25760052e8931f2ef80aaf6045a6cceb47514db8beab24cded16f13a7" + "sha256:0ba055423dbaa164b9e456abe7920c5e8ed33fcc16f6d1b2f2d152c8e1e8b4fc", + "sha256:436f1c768b424654fce8597290d2764def1eea6a77cfa5c33be00b1bc0f4f63d", + "sha256:6c57f3f3dd7ac2782770155f3adb2db0b1a269637e42f27599925e64b114f519" ], "index": "pypi", - "version": "==0.8.9" + "version": "==0.8.10" }, "text-unidecode": { "hashes": [ @@ -654,58 +733,28 @@ }, "tornado": { "hashes": [ - "sha256:0a00ff4561e2929a2c37ce706cb8233b7907e0cdc22eab98888aca5dd3775feb", - "sha256:0d321a39c36e5f2c4ff12b4ed58d41390460f798422c4504e09eb5678e09998c", - "sha256:1e8225a1070cd8eec59a996c43229fe8f95689cb16e552d130b9793cb570a288", - "sha256:20241b3cb4f425e971cb0a8e4ffc9b0a861530ae3c52f2b0434e6c1b57e9fd95", - "sha256:25ad220258349a12ae87ede08a7b04aca51237721f63b1808d39bdb4b2164558", - "sha256:33892118b165401f291070100d6d09359ca74addda679b60390b09f8ef325ffe", - "sha256:33c6e81d7bd55b468d2e793517c909b139960b6c790a60b7991b9b6b76fb9791", - "sha256:3447475585bae2e77ecb832fc0300c3695516a47d46cefa0528181a34c5b9d3d", - "sha256:34ca2dac9e4d7afb0bed4677512e36a52f09caa6fded70b4e3e1c89dbd92c326", - "sha256:3e63498f680547ed24d2c71e6497f24bca791aca2fe116dbc2bd0ac7f191691b", - "sha256:548430be2740e327b3fe0201abe471f314741efcb0067ec4f2d7dcfb4825f3e4", - "sha256:6196a5c39286cc37c024cd78834fb9345e464525d8991c21e908cc046d1cc02c", - "sha256:61b32d06ae8a036a6607805e6720ef00a3c98207038444ba7fd3d169cd998910", - "sha256:6286efab1ed6e74b7028327365cf7346b1d777d63ab30e21a0f4d5b275fc17d5", - "sha256:65d98939f1a2e74b58839f8c4dab3b6b3c1ce84972ae712be02845e65391ac7c", - "sha256:66324e4e1beede9ac79e60f88de548da58b1f8ab4b2f1354d8375774f997e6c0", - "sha256:6c77c9937962577a6a76917845d06af6ab9197702a42e1346d8ae2e76b5e3675", - "sha256:70dec29e8ac485dbf57481baee40781c63e381bebea080991893cd297742b8fd", - "sha256:7250a3fa399f08ec9cb3f7b1b987955d17e044f1ade821b32e5f435130250d7f", - "sha256:748290bf9112b581c525e6e6d3820621ff020ed95af6f17fedef416b27ed564c", - "sha256:7da13da6f985aab7f6f28debab00c67ff9cbacd588e8477034c0652ac141feea", - "sha256:8f959b26f2634a091bb42241c3ed8d3cedb506e7c27b8dd5c7b9f745318ddbb6", - "sha256:9de9e5188a782be6b1ce866e8a51bc76a0fbaa0e16613823fc38e4fc2556ad05", - "sha256:a48900ecea1cbb71b8c71c620dee15b62f85f7c14189bdeee54966fbd9a0c5bd", - "sha256:b87936fd2c317b6ee08a5741ea06b9d11a6074ef4cc42e031bc6403f82a32575", - "sha256:c77da1263aa361938476f04c4b6c8916001b90b2c2fdd92d8d535e1af48fba5a", - "sha256:cb5ec8eead331e3bb4ce8066cf06d2dfef1bfb1b2a73082dfe8a161301b76e37", - "sha256:cc0ee35043162abbf717b7df924597ade8e5395e7b66d18270116f8745ceb795", - "sha256:d14d30e7f46a0476efb0deb5b61343b1526f73ebb5ed84f23dc794bdb88f9d9f", - "sha256:d371e811d6b156d82aa5f9a4e08b58debf97c302a35714f6f45e35139c332e32", - "sha256:d3d20ea5782ba63ed13bc2b8c291a053c8d807a8fa927d941bd718468f7b950c", - "sha256:d3f7594930c423fd9f5d1a76bee85a2c36fd8b4b16921cae7e965f22575e9c01", - "sha256:dcef026f608f678c118779cd6591c8af6e9b4155c44e0d1bc0c87c036fb8c8c4", - "sha256:e0791ac58d91ac58f694d8d2957884df8e4e2f6687cdf367ef7eb7497f79eaa2", - "sha256:e385b637ac3acaae8022e7e47dfa7b83d3620e432e3ecb9a3f7f58f150e50921", - "sha256:e519d64089b0876c7b467274468709dadf11e41d65f63bba207e04217f47c085", - "sha256:e7229e60ac41a1202444497ddde70a48d33909e484f96eb0da9baf8dc68541df", - "sha256:ed3ad863b1b40cd1d4bd21e7498329ccaece75db5a5bf58cd3c9f130843e7102", - "sha256:f0ba29bafd8e7e22920567ce0d232c26d4d47c8b5cf4ed7b562b5db39fa199c5", - "sha256:fa2ba70284fa42c2a5ecb35e322e68823288a4251f9ba9cc77be04ae15eada68", - "sha256:fba85b6cd9c39be262fcd23865652920832b61583de2a2ca907dbd8e8a8c81e5" + "sha256:1d54d13ab8414ed44de07efecb97d4ef7c39f7438cf5e976ccd356bebb1b5fca", + "sha256:20f638fd8cc85f3cbae3c732326e96addff0a15e22d80f049e00121651e82e72", + "sha256:5c87076709343557ef8032934ce5f637dbb552efa7b21d08e89ae7619ed0eb23", + "sha256:5f8c52d219d4995388119af7ccaa0bcec289535747620116a58d830e7c25d8a8", + "sha256:6fdfabffd8dfcb6cf887428849d30cf19a3ea34c2c248461e1f7d718ad30b66b", + "sha256:87dcafae3e884462f90c90ecc200defe5e580a7fbbb4365eda7c7c1eb809ebc9", + "sha256:9b630419bde84ec666bfd7ea0a4cb2a8a651c2d5cccdbdd1972a0c859dfc3c13", + "sha256:b8150f721c101abdef99073bf66d3903e292d851bee51910839831caba341a75", + "sha256:ba09ef14ca9893954244fd872798b4ccb2367c165946ce2dd7376aebdde8e3ac", + "sha256:d3a2f5999215a3a06a4fc218026cd84c61b8b2b40ac5296a6db1f1451ef04c1e", + "sha256:e5f923aa6a47e133d1cf87d60700889d7eae68988704e20c75fb2d65677a8e4b" ], - "markers": "python_version >= '3.5'", - "version": "==6.1" + "markers": "python_version >= '3.7'", + "version": "==6.2" }, "trio": { "hashes": [ - "sha256:670a52d3115d0e879e1ac838a4eb999af32f858163e3a704fe4839de2a676070", - "sha256:fb2d48e4eab0dfb786a472cd514aaadc71e3445b203bc300bad93daa75d77c1a" + "sha256:4dc0bf9d5cc78767fc4516325b6d80cc0968705a31d0eec2ecd7cdda466265b0", + "sha256:523f39b7b69eef73501cebfe1aafd400a9aad5b03543a0eded52952488ff1c13" ], "markers": "python_version >= '3.7'", - "version": "==0.20.0" + "version": "==0.21.0" }, "trio-websocket": { "hashes": [ @@ -717,27 +766,27 @@ }, "tweepy": { "hashes": [ - "sha256:8ba5774ac1663b09e5fce1b030daf076f2c9b3ddbf2e7e7ea0bae762e3b1fe3e", - "sha256:f281bb53ab3ba999ff5e3d743d92d3ed543ee5551c7250948f9e56190ec7a43e" + "sha256:7f92574920c2f233663fff154745fc2bb0d10aedc23617379a912d8e4fefa399", + "sha256:f0abbd234a588e572f880f99a094ac321217ff3eade6c0eca118ed6db8e2cf0a" ], "index": "pypi", - "version": "==4.8.0" + "version": "==4.10.0" }, "tzdata": { "hashes": [ "sha256:238e70234214138ed7b4e8a0fab0e5e13872edab3be586ab8198c407620e2ab9", "sha256:8b536a8ec63dc0751342b3984193a3118f8fca2afe25752bb9b7fffd398552d3" ], - "markers": "python_version >= '3.6'", + "markers": "platform_system == 'Windows'", "version": "==2022.1" }, "tzlocal": { "hashes": [ - "sha256:0f28015ac68a5c067210400a9197fc5d36ba9bc3f8eaf1da3cbd59acdfed9e09", - "sha256:28ba8d9fcb6c9a782d6e0078b4f6627af1ea26aeaa32b4eab5324abc7df4149f" + "sha256:89885494684c929d9191c57aa27502afc87a579be5cdd3225c77c463ea043745", + "sha256:ee5842fa3a795f023514ac2d801c4a81d1743bbe642e3940143326b3a00addd7" ], - "markers": "python_version >= '3.6'", - "version": "==4.1" + "markers": "python_full_version >= '3.6.0'", + "version": "==4.2" }, "urllib3": { "extras": [ @@ -745,27 +794,27 @@ "socks" ], "hashes": [ - "sha256:44ece4d53fb1706f667c9bd1c648f5469a2ec925fcf3a776667042d645472c14", - "sha256:aabaf16477806a5e1dd19aa41f8c2b7950dd3c746362d7e3223dbe6de6ac448e" + "sha256:8298d6d56d39be0e3bc13c1c97d133f9b45d797169a0e11cdd0e0489d786f7ec", + "sha256:879ba4d1e89654d9769ce13121e0f94310ea32e8d2f8cf587b77c08bbcdb30d6" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'", - "version": "==1.26.9" + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5' and python_version < '4'", + "version": "==1.26.10" }, "webdriver-manager": { "hashes": [ - "sha256:2eb7c2fe38ec5b06e2090164923e4dfb7c3ac4e7140333a3de9c7956f5047858", - "sha256:b5b91b5df83181e002263fe27296967a5b19cb1ebe8e4a63ee83538394037df4" + "sha256:821e0737415044d7ad2fc4c1b25fbe0c0de602c62c94c5a25e4a096cf10f792f", + "sha256:9e115be96f04f4a912431766e7675679527f62867a3c73f4738901ea89e2a1e9" ], "index": "pypi", - "version": "==3.5.4" + "version": "==3.8.1" }, "websocket-client": { "hashes": [ - "sha256:50b21db0058f7a953d67cc0445be4b948d7fc196ecbeb8083d68d94628e4abf6", - "sha256:722b171be00f2b90e1d4fb2f2b53146a536ca38db1da8ff49c972a4e1365d0ef" + "sha256:5d55652dc1d0b3c734f044337d929aaf83f4f9138816ec680c1aefefb4dc4877", + "sha256:d58c5f284d6a9bf8379dab423259fe8f85b70d5fa5d2916d5791a84594b122b1" ], "markers": "python_version >= '3.7'", - "version": "==1.3.2" + "version": "==1.3.3" }, "wsproto": { "hashes": [ diff --git a/defSS.py b/defSS.py index 67f1783..84934e9 100644 --- a/defSS.py +++ b/defSS.py @@ -27,7 +27,7 @@ def get_adsbx_screenshot(file_path, url_params, enable_labels=False, enable_trac remove_id_elements = ["show_trace", "credits", 'infoblock_close', 'selected_photo_link', "history_collapse"] for element in remove_id_elements: try: - element = browser.find_element_by_id(element) + element = browser.find_element(By.ID, element) browser.execute_script("""var element = arguments[0]; element.parentNode.removeChild(element); """, element) except: print("issue removing", element, "from map") @@ -43,7 +43,7 @@ def get_adsbx_screenshot(file_path, url_params, enable_labels=False, enable_trac print("Couldn't disable sidebar on map") #Remove Google Ads try: - element = browser.find_element_by_xpath("//*[contains(@id, 'FIOnDemandWrapper_')]") + element = browser.find_element(By.XPATH, "//*[contains(@id, 'FIOnDemandWrapper_')]") browser.execute_script("""var element = arguments[0]; element.parentNode.removeChild(element); """, element) except: print("Couldn't remove Google Ads") @@ -55,29 +55,29 @@ def get_adsbx_screenshot(file_path, url_params, enable_labels=False, enable_trac # print("Couldn't remove share button from map", e) #browser.execute_script("toggleFollow()") if enable_labels: - browser.find_element_by_tag_name('body').send_keys('l') + browser.find_element(By.TAG_NAME, 'body').send_keys('l') if enable_track_labels: - browser.find_element_by_tag_name('body').send_keys('k') + browser.find_element(By.TAG_NAME, 'body').send_keys('k') from selenium.webdriver.support import expected_conditions as EC time.sleep(15) if 'reg' in overrides.keys(): - element = browser.find_element_by_id("selected_registration") + element = browser.find_element(By.ID, "selected_registration") browser.execute_script(f"arguments[0].innerText = '* {overrides['reg']}'", element) reg = overrides['reg'] else: - try: - reg = browser.find_element_by_id("selected_registration").get_attribute("innerHTML") + try: + reg = browser.find_element(By.ID, "selected_registration").get_attribute("innerHTML") print("Reg from tar1090 is", reg) except Exception as e: print("Couldn't find reg in tar1090", e) - reg = None + reg = None if reg is not None: try: try: - photo_box = browser.find_element_by_id("silhouette") + photo_box = browser.find_element(By.ID, "silhouette") except NoSuchElementException: - photo_box = browser.find_element_by_id("airplanePhoto") + photo_box = browser.find_element(By.ID, "airplanePhoto") finally: import requests, json photo_list = json.loads(requests.get("https://raw.githubusercontent.com/Jxck-S/aircraft-photos/main/photo-list.json", timeout=20).text) @@ -87,7 +87,7 @@ def get_adsbx_screenshot(file_path, url_params, enable_labels=False, enable_trac browser.execute_script("arguments[0].style.width = '200px';", photo_box) browser.execute_script("arguments[0].style.float = 'left';", photo_box) browser.execute_script(f"arguments[0].src = 'https://raw.githubusercontent.com/Jxck-S/aircraft-photos/main/images/{reg}.jpg';", photo_box) - image_copy_right = browser.find_element_by_id("copyrightInfo") + image_copy_right = browser.find_element(By.ID, "copyrightInfo") browser.execute_cdp_cmd('Emulation.setScriptExecutionDisabled', {'value': True}) copy_right_children = image_copy_right.find_elements(By.XPATH, "*") if len(copy_right_children) > 0: @@ -97,13 +97,13 @@ def get_adsbx_screenshot(file_path, url_params, enable_labels=False, enable_trac except Exception as e: print("Error on changing photo", e) if 'type' in overrides.keys(): - element = browser.find_element_by_id("selected_icaotype") + element = browser.find_element(By.ID, "selected_icaotype") browser.execute_script(f"arguments[0].innerText = '* {overrides['type']}'", element) if 'typelong' in overrides.keys(): - element = browser.find_element_by_id("selected_typelong") + element = browser.find_element(By.ID, "selected_typelong") browser.execute_script(f"arguments[0].innerText = '* {overrides['typelong']}'", element) if 'ownop' in overrides.keys(): - element = browser.find_element_by_id("selected_ownop") + element = browser.find_element(By.ID, "selected_ownop") browser.execute_script(f"arguments[0].innerText = '* {overrides['ownop']}'", element) time.sleep(5) browser.save_screenshot(file_path) diff --git a/planeClass.py b/planeClass.py index 2d09d47..e15e46a 100644 --- a/planeClass.py +++ b/planeClass.py @@ -437,7 +437,7 @@ class Plane: getMap((municipality + ", " + state + ", " + country_code), self.map_file_name) elif Plane.main_config.get('MAP', 'OPTION') == "ADSBX": from defSS import get_adsbx_screenshot - url_params = f"largeMode=2&hideButtons&hideSidebar&mapDim=0&zoom=10&icao={self.icao}&overlays={self.get_adsbx_map_overlays()}" + url_params = f"largeMode=2&hideButtons&hideSidebar&mapDim=0&zoom=10&icao={self.icao}&overlays={self.get_adsbx_map_overlays()}&limitupdates=0" get_adsbx_screenshot(self.map_file_name, url_params, overrides=self.overrides) from modify_image import append_airport text_credit = self.config.get('MAP', 'TEXT_CREDIT') if self.config.has_option('MAP', 'TEXT_CREDIT') else None @@ -559,7 +559,7 @@ class Plane: getMap((municipality + ", " + state + ", " + country_code), self.map_file_name) if Plane.main_config.get('MAP', 'OPTION') == "ADSBX": from defSS import get_adsbx_screenshot - url_params = f"largeMode=2&hideButtons&hideSidebar&mapDim=0&zoom=10&icao={self.icao}&overlays={self.get_adsbx_map_overlays()}" + url_params = f"largeMode=2&hideButtons&hideSidebar&mapDim=0&zoom=10&icao={self.icao}&overlays={self.get_adsbx_map_overlays()}&limitupdates=0" get_adsbx_screenshot(self.map_file_name, url_params, overrides=self.overrides) if self.config.getboolean('DISCORD', 'ENABLE'): dis_message = (self.dis_title + " " + squawk_message) @@ -582,7 +582,7 @@ class Plane: dis_message = (self.dis_title + " " + mode + " mode enabled.") if mode == "Approach": from defSS import get_adsbx_screenshot - url_params = f"largeMode=2&hideButtons&hideSidebar&mapDim=0&zoom=10&icao={self.icao}&overlays={self.get_adsbx_map_overlays()}" + url_params = f"largeMode=2&hideButtons&hideSidebar&mapDim=0&zoom=10&icao={self.icao}&overlays={self.get_adsbx_map_overlays()}&limitupdates=0" get_adsbx_screenshot(self.map_file_name, url_params, overrides=self.overrides) sendDis(dis_message, self.config, None, self.map_file_name) #elif mode in ["Althold", "VNAV", "LNAV"] and self.sel_nav_alt != None: @@ -765,7 +765,7 @@ class Plane: return tfr_map_filename from defSS import get_adsbx_screenshot - url_params = f"largeMode=2&hideButtons&hideSidebar&mapDim=0&zoom=10&icao={self.icao}&overlays={self.get_adsbx_map_overlays()}" + url_params = f"largeMode=2&hideButtons&hideSidebar&mapDim=0&zoom=10&icao={self.icao}&overlays={self.get_adsbx_map_overlays()}&limitupdates=0" get_adsbx_screenshot(self.map_file_name, url_params, overrides=self.overrides) if nearest_airport_dict['distance_mi'] < 3: if "touchngo" in self.circle_history.keys(): @@ -850,7 +850,7 @@ class Plane: if bool(int(ra['acas_ra']['MTE'])): ra_message += ", Multi threat" from defSS import get_adsbx_screenshot, generate_adsbx_screenshot_time_params - url_params = f"&lat={ra['lat']}&lon={ra['lon']}&zoom=11&largeMode=2&hideButtons&hideSidebar&mapDim=0&overlays={self.get_adsbx_map_overlays()}" + url_params = f"&lat={ra['lat']}&lon={ra['lon']}&zoom=11&largeMode=2&hideButtons&hideSidebar&mapDim=0&overlays={self.get_adsbx_map_overlays()}&limitupdates=0" if "threat_id_hex" in ra['acas_ra'].keys(): from mictronics_parse import get_aircraft_reg_by_icao threat_reg = get_aircraft_reg_by_icao(ra['acas_ra']['threat_id_hex']) From 1f99e82f5fccd6929440809d6af3116f7fee58cf Mon Sep 17 00:00:00 2001 From: Jack Sweeney Date: Sun, 24 Jul 2022 18:14:43 -0500 Subject: [PATCH 25/70] Fuel calc mods Removed some rounding --- fuel_calc.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/fuel_calc.py b/fuel_calc.py index 4dec4e0..01ea84b 100644 --- a/fuel_calc.py +++ b/fuel_calc.py @@ -24,15 +24,15 @@ def fuel_calculation(aircraft_icao_type, minutes): if aircraft_icao_type in fuellist.keys(): avg_fuel_price_per_gallon = get_avg_fuel_price() galph = fuellist[aircraft_icao_type]["galph"] - fuel_used_gal = round(galph * (minutes/60), 2) + fuel_used_gal = galph * (minutes/60) fuel_flight_info["fuel_price"] = round(fuel_used_gal * avg_fuel_price_per_gallon) fuel_used_kg = fuel_used_gal * 3.04 - c02_tons = round((fuel_used_kg * 3.15 ) / 907.185) + c02_tons = (fuel_used_kg * 3.15 ) / 907.185 fuel_flight_info['fuel_used_kg'] = round(fuel_used_kg) fuel_flight_info["fuel_used_gal"] = round(fuel_used_gal) fuel_flight_info['fuel_used_lters'] = round(fuel_used_gal*3.78541) - fuel_flight_info["fuel_used_lbs"] = round(fuel_used_kg * 2.20462) - fuel_flight_info["c02_tons"] = c02_tons + fuel_flight_info["fuel_used_lbs"] = round(fuel_used_kg * 2.20462) + fuel_flight_info["c02_tons"] = round(c02_tons) if c02_tons > 1 else round(c02_tons, 4) print ("Fuel info", fuel_flight_info) return fuel_flight_info else: @@ -45,7 +45,7 @@ def fuel_message(fuel_info): lters = "{:,}".format(fuel_info['fuel_used_lters']) lbs = "{:, }".format(fuel_info['fuel_used_lbs']) kgs = "{:,}".format(fuel_info['fuel_used_kg']) - fuel_message = f"~ {gallons} gallons ({lters} liters). \n~ {lbs} lbs ({kgs} kg) of jet fuel used. \n~ ${cost} cost of fuel. \n~ {fuel_info['c02_tons']} tons of CO2 emissions." + fuel_message = f"\n~ {gallons} gallons ({lters} liters). \n~ {lbs} lbs ({kgs} kg) of jet fuel used. \n~ ${cost} cost of fuel. \n~ {fuel_info['c02_tons']} tons of CO2 emissions." print(fuel_message) return fuel_message #fuel_info = fuel_calculation("GLF6", 548.1) From d4c572c44446f36549b9045573424492a606e4ac Mon Sep 17 00:00:00 2001 From: Mark Bumiller Date: Sun, 7 Aug 2022 20:34:10 -0400 Subject: [PATCH 26/70] Create fuel_calc.py fixing ValueError: Invalid format specifier fixes Jxck-S/plane-notify#67 --- fuel_calc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fuel_calc.py b/fuel_calc.py index 01ea84b..821926e 100644 --- a/fuel_calc.py +++ b/fuel_calc.py @@ -43,7 +43,7 @@ def fuel_message(fuel_info): cost = "{:,}".format(fuel_info['fuel_price']) gallons = "{:,}".format(fuel_info['fuel_used_gal']) lters = "{:,}".format(fuel_info['fuel_used_lters']) - lbs = "{:, }".format(fuel_info['fuel_used_lbs']) + lbs = "{:,}".format(fuel_info['fuel_used_lbs']) kgs = "{:,}".format(fuel_info['fuel_used_kg']) fuel_message = f"\n~ {gallons} gallons ({lters} liters). \n~ {lbs} lbs ({kgs} kg) of jet fuel used. \n~ ${cost} cost of fuel. \n~ {fuel_info['c02_tons']} tons of CO2 emissions." print(fuel_message) From fb12686a7469415659b7dacf4ef4b7a883e1e5ba Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 16 Sep 2022 22:55:12 +0000 Subject: [PATCH 27/70] Bump oauthlib from 3.2.0 to 3.2.1 Bumps [oauthlib](https://github.com/oauthlib/oauthlib) from 3.2.0 to 3.2.1. - [Release notes](https://github.com/oauthlib/oauthlib/releases) - [Changelog](https://github.com/oauthlib/oauthlib/blob/master/CHANGELOG.rst) - [Commits](https://github.com/oauthlib/oauthlib/compare/v3.2.0...v3.2.1) --- updated-dependencies: - dependency-name: oauthlib dependency-type: indirect ... Signed-off-by: dependabot[bot] --- Pipfile.lock | 217 +++++++++++++++++++++++++++------------------------ 1 file changed, 115 insertions(+), 102 deletions(-) diff --git a/Pipfile.lock b/Pipfile.lock index cdc770e..12617b9 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -40,11 +40,11 @@ }, "attrs": { "hashes": [ - "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4", - "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd" + "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6", + "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", - "version": "==21.4.0" + "markers": "python_version >= '3.5'", + "version": "==22.1.0" }, "beautifulsoup4": { "hashes": [ @@ -64,11 +64,11 @@ }, "certifi": { "hashes": [ - "sha256:84c85a9078b11105f04f3036a9482ae10e4621616db313fe045dd24743a0820d", - "sha256:fe86415d55e84719d75f8b69414f6438ac3547d2078ab91b67e779ef69378412" + "sha256:36973885b9542e6bd01dea287b2b4b3b21236307c56324fcc3f1160f2d655ed5", + "sha256:e232343de1ab72c2aa521b625c80f699e356830fd0e2c620b465b304b17b0516" ], - "markers": "python_full_version >= '3.6.0'", - "version": "==2022.6.15" + "markers": "python_version >= '3.6'", + "version": "==2022.9.14" }, "cffi": { "hashes": [ @@ -142,11 +142,11 @@ }, "charset-normalizer": { "hashes": [ - "sha256:5189b6f22b01957427f35b6a08d9a0bc45b46d3788ef5a92e978433c7a35f8a5", - "sha256:575e708016ff3a5e3681541cb9d79312c416835686d054a23accb873b254f413" + "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845", + "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f" ], "markers": "python_version >= '3.6'", - "version": "==2.1.0" + "version": "==2.1.1" }, "colorama": { "hashes": [ @@ -166,30 +166,34 @@ }, "cryptography": { "hashes": [ - "sha256:190f82f3e87033821828f60787cfa42bff98404483577b591429ed99bed39d59", - "sha256:2be53f9f5505673eeda5f2736bea736c40f051a739bfae2f92d18aed1eb54596", - "sha256:30788e070800fec9bbcf9faa71ea6d8068f5136f60029759fd8c3efec3c9dcb3", - "sha256:3d41b965b3380f10e4611dbae366f6dc3cefc7c9ac4e8842a806b9672ae9add5", - "sha256:4c590ec31550a724ef893c50f9a97a0c14e9c851c85621c5650d699a7b88f7ab", - "sha256:549153378611c0cca1042f20fd9c5030d37a72f634c9326e225c9f666d472884", - "sha256:63f9c17c0e2474ccbebc9302ce2f07b55b3b3fcb211ded18a42d5764f5c10a82", - "sha256:6bc95ed67b6741b2607298f9ea4932ff157e570ef456ef7ff0ef4884a134cc4b", - "sha256:7099a8d55cd49b737ffc99c17de504f2257e3787e02abe6d1a6d136574873441", - "sha256:75976c217f10d48a8b5a8de3d70c454c249e4b91851f6838a4e48b8f41eb71aa", - "sha256:7bc997818309f56c0038a33b8da5c0bfbb3f1f067f315f9abd6fc07ad359398d", - "sha256:80f49023dd13ba35f7c34072fa17f604d2f19bf0989f292cedf7ab5770b87a0b", - "sha256:91ce48d35f4e3d3f1d83e29ef4a9267246e6a3be51864a5b7d2247d5086fa99a", - "sha256:a958c52505c8adf0d3822703078580d2c0456dd1d27fabfb6f76fe63d2971cd6", - "sha256:b62439d7cd1222f3da897e9a9fe53bbf5c104fff4d60893ad1355d4c14a24157", - "sha256:b7f8dd0d4c1f21759695c05a5ec8536c12f31611541f8904083f3dc582604280", - "sha256:d204833f3c8a33bbe11eda63a54b1aad7aa7456ed769a982f21ec599ba5fa282", - "sha256:e007f052ed10cc316df59bc90fbb7ff7950d7e2919c9757fd42a2b8ecf8a5f67", - "sha256:f2dcb0b3b63afb6df7fd94ec6fbddac81b5492513f7b0436210d390c14d46ee8", - "sha256:f721d1885ecae9078c3f6bbe8a88bc0786b6e749bf32ccec1ef2b18929a05046", - "sha256:f7a6de3e98771e183645181b3627e2563dcde3ce94a9e42a3f427d2255190327", - "sha256:f8c0a6e9e1dd3eb0414ba320f85da6b0dcbd543126e30fcc546e7372a7fbf3b9" - ], - "version": "==37.0.4" + "sha256:0297ffc478bdd237f5ca3a7dc96fc0d315670bfa099c04dc3a4a2172008a405a", + "sha256:10d1f29d6292fc95acb597bacefd5b9e812099d75a6469004fd38ba5471a977f", + "sha256:16fa61e7481f4b77ef53991075de29fc5bacb582a1244046d2e8b4bb72ef66d0", + "sha256:194044c6b89a2f9f169df475cc167f6157eb9151cc69af8a2a163481d45cc407", + "sha256:1db3d807a14931fa317f96435695d9ec386be7b84b618cc61cfa5d08b0ae33d7", + "sha256:3261725c0ef84e7592597606f6583385fed2a5ec3909f43bc475ade9729a41d6", + "sha256:3b72c360427889b40f36dc214630e688c2fe03e16c162ef0aa41da7ab1455153", + "sha256:3e3a2599e640927089f932295a9a247fc40a5bdf69b0484532f530471a382750", + "sha256:3fc26e22840b77326a764ceb5f02ca2d342305fba08f002a8c1f139540cdfaad", + "sha256:5067ee7f2bce36b11d0e334abcd1ccf8c541fc0bbdaf57cdd511fdee53e879b6", + "sha256:52e7bee800ec869b4031093875279f1ff2ed12c1e2f74923e8f49c916afd1d3b", + "sha256:64760ba5331e3f1794d0bcaabc0d0c39e8c60bf67d09c93dc0e54189dfd7cfe5", + "sha256:765fa194a0f3372d83005ab83ab35d7c5526c4e22951e46059b8ac678b44fa5a", + "sha256:79473cf8a5cbc471979bd9378c9f425384980fcf2ab6534b18ed7d0d9843987d", + "sha256:896dd3a66959d3a5ddcfc140a53391f69ff1e8f25d93f0e2e7830c6de90ceb9d", + "sha256:89ed49784ba88c221756ff4d4755dbc03b3c8d2c5103f6d6b4f83a0fb1e85294", + "sha256:ac7e48f7e7261207d750fa7e55eac2d45f720027d5703cd9007e9b37bbb59ac0", + "sha256:ad7353f6ddf285aeadfaf79e5a6829110106ff8189391704c1d8801aa0bae45a", + "sha256:b0163a849b6f315bf52815e238bc2b2346604413fa7c1601eea84bcddb5fb9ac", + "sha256:b6c9b706316d7b5a137c35e14f4103e2115b088c412140fdbd5f87c73284df61", + "sha256:c2e5856248a416767322c8668ef1845ad46ee62629266f84a8f007a317141013", + "sha256:ca9f6784ea96b55ff41708b92c3f6aeaebde4c560308e5fbbd3173fbc466e94e", + "sha256:d1a5bd52d684e49a36582193e0b89ff267704cd4025abefb9e26803adeb3e5fb", + "sha256:d3971e2749a723e9084dd507584e2a2761f78ad2c638aa31e80bc7a15c9db4f9", + "sha256:d4ef6cc305394ed669d4d9eebf10d3a101059bdcf2669c366ec1d14e4fb227bd", + "sha256:d9e69ae01f99abe6ad646947bba8941e896cb3aa805be2597a0400e0764b5818" + ], + "version": "==38.0.1" }, "discord-webhook": { "hashes": [ @@ -233,16 +237,16 @@ "sha256:70813c1135087a248a4d38cc0e1a0181ffab2188141a93eaf567940c3957ff06", "sha256:8ddd78563b633ca55346c8cd41ec0af27d3c79931828beffb46ce70a379e7442" ], - "markers": "python_full_version >= '3.6.0'", + "markers": "python_version >= '3.6'", "version": "==0.13.0" }, "idna": { "hashes": [ - "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff", - "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d" + "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4", + "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2" ], "markers": "python_version >= '3.5'", - "version": "==3.3" + "version": "==3.4" }, "lxml": { "hashes": [ @@ -322,39 +326,45 @@ }, "numpy": { "hashes": [ - "sha256:092f5e6025813e64ad6d1b52b519165d08c730d099c114a9247c9bb635a2a450", - "sha256:196cd074c3f97c4121601790955f915187736f9cf458d3ee1f1b46aff2b1ade0", - "sha256:1c29b44905af288b3919803aceb6ec7fec77406d8b08aaa2e8b9e63d0fe2f160", - "sha256:2b2da66582f3a69c8ce25ed7921dcd8010d05e59ac8d89d126a299be60421171", - "sha256:5043bcd71fcc458dfb8a0fc5509bbc979da0131b9d08e3d5f50fb0bbb36f169a", - "sha256:58bfd40eb478f54ff7a5710dd61c8097e169bc36cc68333d00a9bcd8def53b38", - "sha256:79a506cacf2be3a74ead5467aee97b81fca00c9c4c8b3ba16dbab488cd99ba10", - "sha256:94b170b4fa0168cd6be4becf37cb5b127bd12a795123984385b8cd4aca9857e5", - "sha256:97a76604d9b0e79f59baeca16593c711fddb44936e40310f78bfef79ee9a835f", - "sha256:98e8e0d8d69ff4d3fa63e6c61e8cfe2d03c29b16b58dbef1f9baa175bbed7860", - "sha256:ac86f407873b952679f5f9e6c0612687e51547af0e14ddea1eedfcb22466babd", - "sha256:ae8adff4172692ce56233db04b7ce5792186f179c415c37d539c25de7298d25d", - "sha256:bd3fa4fe2e38533d5336e1272fc4e765cabbbde144309ccee8675509d5cd7b05", - "sha256:d0d2094e8f4d760500394d77b383a1b06d3663e8892cdf5df3c592f55f3bff66", - "sha256:d54b3b828d618a19779a84c3ad952e96e2c2311b16384e973e671aa5be1f6187", - "sha256:d6ca8dabe696c2785d0c8c9b0d8a9b6e5fdbe4f922bde70d57fa1a2848134f95", - "sha256:d8cc87bed09de55477dba9da370c1679bd534df9baa171dd01accbb09687dac3", - "sha256:f0f18804df7370571fb65db9b98bf1378172bd4e962482b857e612d1fec0f53e", - "sha256:f1d88ef79e0a7fa631bb2c3dda1ea46b32b1fe614e10fedd611d3d5398447f2f", - "sha256:f9c3fc2adf67762c9fe1849c859942d23f8d3e0bee7b5ed3d4a9c3eeb50a2f07", - "sha256:fc431493df245f3c627c0c05c2bd134535e7929dbe2e602b80e42bf52ff760bc", - "sha256:fe8b9683eb26d2c4d5db32cd29b38fdcf8381324ab48313b5b69088e0e355379" - ], - "markers": "python_version < '3.10' and platform_machine != 'aarch64' and platform_machine != 'arm64'", - "version": "==1.23.0" + "sha256:004f0efcb2fe1c0bd6ae1fcfc69cc8b6bf2407e0f18be308612007a0762b4089", + "sha256:09f6b7bdffe57fc61d869a22f506049825d707b288039d30f26a0d0d8ea05164", + "sha256:0ea3f98a0ffce3f8f57675eb9119f3f4edb81888b6874bc1953f91e0b1d4f440", + "sha256:17c0e467ade9bda685d5ac7f5fa729d8d3e76b23195471adae2d6a6941bd2c18", + "sha256:1f27b5322ac4067e67c8f9378b41c746d8feac8bdd0e0ffede5324667b8a075c", + "sha256:22d43376ee0acd547f3149b9ec12eec2f0ca4a6ab2f61753c5b29bb3e795ac4d", + "sha256:2ad3ec9a748a8943e6eb4358201f7e1c12ede35f510b1a2221b70af4bb64295c", + "sha256:301c00cf5e60e08e04d842fc47df641d4a181e651c7135c50dc2762ffe293dbd", + "sha256:39a664e3d26ea854211867d20ebcc8023257c1800ae89773cbba9f9e97bae036", + "sha256:51bf49c0cd1d52be0a240aa66f3458afc4b95d8993d2d04f0d91fa60c10af6cd", + "sha256:78a63d2df1d947bd9d1b11d35564c2f9e4b57898aae4626638056ec1a231c40c", + "sha256:7cd1328e5bdf0dee621912f5833648e2daca72e3839ec1d6695e91089625f0b4", + "sha256:8355fc10fd33a5a70981a5b8a0de51d10af3688d7a9e4a34fcc8fa0d7467bb7f", + "sha256:8c79d7cf86d049d0c5089231a5bcd31edb03555bd93d81a16870aa98c6cfb79d", + "sha256:91b8d6768a75247026e951dce3b2aac79dc7e78622fc148329135ba189813584", + "sha256:94c15ca4e52671a59219146ff584488907b1f9b3fc232622b47e2cf832e94fb8", + "sha256:98dcbc02e39b1658dc4b4508442a560fe3ca5ca0d989f0df062534e5ca3a5c1a", + "sha256:a64403f634e5ffdcd85e0b12c08f04b3080d3e840aef118721021f9b48fc1460", + "sha256:bc6e8da415f359b578b00bcfb1d08411c96e9a97f9e6c7adada554a0812a6cc6", + "sha256:bdc9febce3e68b697d931941b263c59e0c74e8f18861f4064c1f712562903411", + "sha256:c1ba66c48b19cc9c2975c0d354f24058888cdc674bebadceb3cdc9ec403fb5d1", + "sha256:c9f707b5bb73bf277d812ded9896f9512a43edff72712f31667d0a8c2f8e71ee", + "sha256:d5422d6a1ea9b15577a9432e26608c73a78faf0b9039437b075cf322c92e98e7", + "sha256:e5d5420053bbb3dd64c30e58f9363d7a9c27444c3648e61460c1237f9ec3fa14", + "sha256:e868b0389c5ccfc092031a861d4e158ea164d8b7fdbb10e3b5689b4fc6498df6", + "sha256:efd9d3abe5774404becdb0748178b48a218f1d8c44e0375475732211ea47c67e", + "sha256:f8c02ec3c4c4fcb718fdf89a6c6f709b14949408e8cf2a2be5bfa9c49548fd85", + "sha256:ffcf105ecdd9396e05a8e58e81faaaf34d3f9875f137c7372450baa5d77c9a54" + ], + "markers": "python_version >= '3.8'", + "version": "==1.23.3" }, "oauthlib": { "hashes": [ - "sha256:23a8208d75b902797ea29fd31fa80a15ed9dc2c6c16fe73f5d346f83f6fa27a2", - "sha256:6db33440354787f9b7f3a6dbd4febf5d0f93758354060e802f6c06cb493022fe" + "sha256:1565237372795bf6ee3e5aba5e2a85bd5a65d0e2aa5c628b9a97b7d7a0da3721", + "sha256:88e912ca1ad915e1dcc1c06fc9259d19de8deacd6fd17cc2df266decc2e49066" ], - "markers": "python_full_version >= '3.6.0'", - "version": "==3.2.0" + "index": "pypi", + "version": "==3.2.1" }, "opensky-api": { "editable": true, @@ -414,6 +424,7 @@ "sha256:2ad0d4df0f5ef2247e27fc790d5c9b5a0af8ade9ba340db4a73bb1a4a3e5fb4f", "sha256:2c58b24e3a63efd22554c676d81b0e57f80e0a7d3a5874a7e14ce90ec40d3069", "sha256:2d33a11f601213dcd5718109c09a52c2a1c893e7461f0be2d6febc2879ec2402", + "sha256:336b9036127eab855beec9662ac3ea13a4544a523ae273cbf108b228ecac8437", "sha256:337a74fd2f291c607d220c793a8135273c4c2ab001b03e601c36766005f36885", "sha256:37ff6b522a26d0538b753f0b4e8e164fdada12db6c6f00f62145d732d8a3152e", "sha256:3d1f14f5f691f55e1b47f824ca4fdcb4b19b4323fe43cc7bb105988cad7496be", @@ -442,6 +453,7 @@ "sha256:a647c0d4478b995c5e54615a2e5360ccedd2f85e70ab57fbe817ca613d5e63b8", "sha256:a9c9bc489f8ab30906d7a85afac4b4944a572a7432e00698a7239f44a44e6efb", "sha256:ad2277b185ebce47a63f4dc6302e30f05762b688f8dc3de55dbae4651872cdf3", + "sha256:adabc0bce035467fb537ef3e5e74f2847c8af217ee0be0455d4fec8adc0462fc", "sha256:b6d5e92df2b77665e07ddb2e4dbd6d644b78e4c0d2e9272a852627cdba0d75cf", "sha256:bc431b065722a5ad1dfb4df354fb9333b7a582a5ee39a90e6ffff688d72f27a1", "sha256:bdd0de2d64688ecae88dd8935012c4a72681e5df632af903a1dca8c5e7aa871a", @@ -507,6 +519,7 @@ }, "pyproj": { "hashes": [ + "sha256:07c9d8d7ec009bbac09e233cfc725601586fe06880e5538a3a44eaf560ba3a62", "sha256:120d45ed73144c65e9677dc73ba8a531c495d179dd9f9f0471ac5acc02d7ac4b", "sha256:140fa649fedd04f680a39f8ad339799a55cb1c49f6a84e1b32b97e49646647aa", "sha256:1adc9ccd1bf04998493b6a2e87e60656c75ab790653b36cfe351e9ef214828ed", @@ -529,7 +542,8 @@ "sha256:aed1a3c0cd4182425f91b48d5db39f459bc2fe0d88017ead6425a1bc85faee33", "sha256:b3d8e14d91cc95fb3dbc03a9d0588ac58326803eefa5bbb0978d109de3304fbe", "sha256:b59c08aea13ee428cf8a919212d55c036cc94784805ed77c8f31a4d1f541058c", - "sha256:c99f7b5757a28040a2dd4a28c9805fdf13eef79a796f4a566ab5cb362d10630d" + "sha256:c99f7b5757a28040a2dd4a28c9805fdf13eef79a796f4a566ab5cb362d10630d", + "sha256:f1032e5dfb50eae06382bcc7b9011b994f7104d932fe91bd83a722275e30e8ce" ], "index": "pypi", "version": "==3.3.1" @@ -552,11 +566,11 @@ }, "python-dotenv": { "hashes": [ - "sha256:b7e3b04a59693c42c36f9ab1cc2acc46fa5df8c78e178fc33a8d4cd05c8d498f", - "sha256:d92a187be61fe482e4fd675b6d52200e7be63a12b724abbf931a40ce4fa92938" + "sha256:1684eb44636dd462b66c3ee016599815514527ad99965de77f43e0944634a7e5", + "sha256:b77d08274639e3d34145dfa6c7008e66df0f04b7be7a75fd0d5292c191d79045" ], - "markers": "python_version >= '3.5'", - "version": "==0.20.0" + "markers": "python_version >= '3.7'", + "version": "==0.21.0" }, "python-magic": { "hashes": [ @@ -630,19 +644,11 @@ }, "setuptools": { "hashes": [ - "sha256:0d33c374d41c7863419fc8f6c10bfe25b7b498aa34164d135c622e52580c6b16", - "sha256:c04b44a57a6265fe34a4a444e965884716d34bae963119a76353434d6f18e450" + "sha256:2e24e0bec025f035a2e72cdd1961119f557d78ad331bb00ff82efb2ab8da8e82", + "sha256:7732871f4f7fa58fb6bdcaeadb0161b2bd046c85905dbaa066bdcbcc81953b57" ], "markers": "python_version >= '3.7'", - "version": "==63.2.0" - }, - "setuptools": { - "hashes": [ - "sha256:16923d366ced322712c71ccb97164d07472abeecd13f3a6c283f6d5d26722793", - "sha256:db3b8e2f922b2a910a29804776c643ea609badb6a32c4bcc226fd4fd902cce65" - ], - "markers": "python_version >= '3.7'", - "version": "==63.1.0" + "version": "==65.3.0" }, "shapely": { "hashes": [ @@ -694,11 +700,11 @@ }, "sniffio": { "hashes": [ - "sha256:471b71698eac1c2112a40ce2752bb2f4a4814c22a54a3eed3676bc0f5ca9f663", - "sha256:c4666eecec1d3f50960c6bdf61ab7bc350648da6c126e3cf6898d8cd4ddcd3de" + "sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101", + "sha256:eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384" ], - "markers": "python_version >= '3.5'", - "version": "==1.2.0" + "markers": "python_version >= '3.7'", + "version": "==1.3.0" }, "sortedcontainers": { "hashes": [ @@ -720,7 +726,7 @@ "sha256:a8fbdfd4443302a6619a7f76bc937fc683daf2628d9b737c891ec08b8ce524c3", "sha256:bb6b2b5450f1edbfa597d924f9ac2dd099e625562e492021d7dd614f65f8a22d" ], - "markers": "python_full_version >= '3.6.0'", + "markers": "python_version >= '3.6'", "version": "==1.4.3" }, "tabulate": { @@ -782,11 +788,11 @@ }, "tzdata": { "hashes": [ - "sha256:238e70234214138ed7b4e8a0fab0e5e13872edab3be586ab8198c407620e2ab9", - "sha256:8b536a8ec63dc0751342b3984193a3118f8fca2afe25752bb9b7fffd398552d3" + "sha256:21f4f0d7241572efa7f7a4fdabb052e61b55dc48274e6842697ccdf5253e5451", + "sha256:c3119520447d68ef3eb8187a55a4f44fa455f30eb1b4238fa5691ba094f2b05b" ], - "markers": "platform_system == 'Windows'", - "version": "==2022.1" + "markers": "python_version >= '3.6'", + "version": "==2022.2" }, "tzlocal": { "hashes": [ @@ -802,11 +808,18 @@ "socks" ], "hashes": [ - "sha256:8298d6d56d39be0e3bc13c1c97d133f9b45d797169a0e11cdd0e0489d786f7ec", - "sha256:879ba4d1e89654d9769ce13121e0f94310ea32e8d2f8cf587b77c08bbcdb30d6" + "sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e", + "sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5' and python_version < '4'", - "version": "==1.26.10" + "version": "==1.26.12" + }, + "urllib3-secure-extra": { + "hashes": [ + "sha256:ee9409cbfeb4b8609047be4c32fb4317870c602767e53fd8a41005ebe6a41dff", + "sha256:f7adcb108b4d12a4b26b99eb60e265d087f435052a76aefa396b6ee85e9a6ef9" + ], + "version": "==0.1.0" }, "webdriver-manager": { "hashes": [ @@ -818,19 +831,19 @@ }, "websocket-client": { "hashes": [ - "sha256:5d55652dc1d0b3c734f044337d929aaf83f4f9138816ec680c1aefefb4dc4877", - "sha256:d58c5f284d6a9bf8379dab423259fe8f85b70d5fa5d2916d5791a84594b122b1" + "sha256:398909eb7e261f44b8f4bd474785b6ec5f5b499d4953342fe9755e01ef624090", + "sha256:f9611eb65c8241a67fb373bef040b3cf8ad377a9f6546a12b620b6511e8ea9ef" ], "markers": "python_version >= '3.7'", - "version": "==1.3.3" + "version": "==1.4.1" }, "wsproto": { "hashes": [ - "sha256:2218cb57952d90b9fca325c0dcfb08c3bda93e8fd8070b0a17f048e2e47a521b", - "sha256:a2e56bfd5c7cd83c1369d83b5feccd6d37798b74872866e62616e0ecf111bda8" + "sha256:ad565f26ecb92588a3e43bc3d96164de84cd9902482b130d0ddbaa9664a85065", + "sha256:b9acddd652b585d75b20477888c56642fdade28bdfd3579aa24a4d2c037dd736" ], "markers": "python_version >= '3.7'", - "version": "==1.1.0" + "version": "==1.2.0" } }, "develop": {} From af5c9d3145f61c75f9a8b1dd0acf1fd0b8be07cf Mon Sep 17 00:00:00 2001 From: Anthony Hernandez Date: Tue, 4 Oct 2022 13:07:20 -0500 Subject: [PATCH 28/70] Update mainconf.ini.example file Added 'ROLE_ID' under '[DISCORD]' due to an error I kept receiving after I initially copied the original example. --- configs/mainconf.ini.example | 1 + 1 file changed, 1 insertion(+) diff --git a/configs/mainconf.ini.example b/configs/mainconf.ini.example index 1ea437c..f47e65d 100644 --- a/configs/mainconf.ini.example +++ b/configs/mainconf.ini.example @@ -37,6 +37,7 @@ API_KEY = googleapikey ENABLE = FALSE USERNAME = usernamehere URL = webhookurl +ROLE_ID = [TFRS] URL = http://127.0.0.1:5000/detailed_all From 76e6c2c483ed6005ff023d46a78efa57ce040537 Mon Sep 17 00:00:00 2001 From: Mark Bumiller Date: Mon, 10 Oct 2022 08:34:13 -0400 Subject: [PATCH 29/70] heading is actually true_track fixes Jxck-S/plane-notify#73 --- planeClass.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/planeClass.py b/planeClass.py index 2d09d47..2c1ffff 100644 --- a/planeClass.py +++ b/planeClass.py @@ -80,7 +80,7 @@ class Plane: self.print_header("BEGIN") #print (Fore.YELLOW + "OpenSky Sourced Data: ", ac_dict) try: - self.__dict__.update({'icao' : ac_dict.icao24.upper(), 'callsign' : ac_dict.callsign, 'latitude' : ac_dict.latitude, 'longitude' : ac_dict.longitude, 'on_ground' : bool(ac_dict.on_ground), 'squawk' : ac_dict.squawk, 'track' : float(ac_dict.heading)}) + self.__dict__.update({'icao' : ac_dict.icao24.upper(), 'callsign' : ac_dict.callsign, 'latitude' : ac_dict.latitude, 'longitude' : ac_dict.longitude, 'on_ground' : bool(ac_dict.on_ground), 'squawk' : ac_dict.squawk, 'track' : float(ac_dict.true_track)}) if ac_dict.baro_altitude != None: self.alt_ft = round(float(ac_dict.baro_altitude) * 3.281) elif self.on_ground: From 60f8348eeab5c2738154a1dd37177e5803bbe058 Mon Sep 17 00:00:00 2001 From: Mark Bumiller Date: Thu, 13 Oct 2022 07:32:11 -0400 Subject: [PATCH 30/70] linter fix --- planeClass.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/planeClass.py b/planeClass.py index 2c1ffff..c45526c 100644 --- a/planeClass.py +++ b/planeClass.py @@ -80,7 +80,14 @@ class Plane: self.print_header("BEGIN") #print (Fore.YELLOW + "OpenSky Sourced Data: ", ac_dict) try: - self.__dict__.update({'icao' : ac_dict.icao24.upper(), 'callsign' : ac_dict.callsign, 'latitude' : ac_dict.latitude, 'longitude' : ac_dict.longitude, 'on_ground' : bool(ac_dict.on_ground), 'squawk' : ac_dict.squawk, 'track' : float(ac_dict.true_track)}) + self.__dict__.update({ + 'icao' : ac_dict.icao24.upper(), + 'callsign' : ac_dict.callsign, + 'latitude' : ac_dict.latitude, + 'longitude' : ac_dict.longitude, + 'on_ground' : bool(ac_dict.on_ground), + 'squawk' : ac_dict.squawk, + 'track' : float(ac_dict.true_track)}) if ac_dict.baro_altitude != None: self.alt_ft = round(float(ac_dict.baro_altitude) * 3.281) elif self.on_ground: From f600964f931873cccb885b57f1e7cc506be9b642 Mon Sep 17 00:00:00 2001 From: Jxck-S Date: Mon, 24 Oct 2022 22:07:30 -0400 Subject: [PATCH 31/70] Minor pushes of old updates -Minor Linux fixes for /tmp, -remove seperate discord messages, all one -Fix empty discord roles --- __main__.py | 14 +++++++++++--- defAirport.py | 8 ++++++-- defSS.py | 10 +++++++--- fuel_calc.py | 9 +++------ planeClass.py | 45 +++++++++++++++++++++++---------------------- 5 files changed, 50 insertions(+), 36 deletions(-) diff --git a/__main__.py b/__main__.py index 4ac9890..a603c88 100644 --- a/__main__.py +++ b/__main__.py @@ -4,13 +4,19 @@ import time from colorama import Fore, Back, Style import platform import traceback +import os if platform.system() == "Windows": from colorama import init init(convert=True) +elif platform.system() == "Linux": + if os.path.exists("/tmp/plane-notify"): + import shutil + shutil.rmtree("/tmp/plane-notify") + os.makedirs("/tmp/plane-notify") + os.makedirs("/tmp/plane-notify/chrome") from planeClass import Plane from datetime import datetime import pytz -import os import signal abspath = os.path.abspath(__file__) dname = os.path.dirname(abspath) @@ -49,11 +55,13 @@ main_config.read('./configs/mainconf.ini') source = main_config.get('DATA', 'SOURCE') if main_config.getboolean('DISCORD', 'ENABLE'): from defDiscord import sendDis + role_id = main_config.get('DISCORD', 'ROLE_ID') if main_config.has_option('DISCORD', 'ROLE_ID') and main_config.get('DISCORD', 'ROLE_ID').strip() != "" else None sendDis("Started", main_config, role_id = main_config.get('DISCORD', 'ROLE_ID')) def service_exit(signum, frame): if main_config.getboolean('DISCORD', 'ENABLE'): from defDiscord import sendDis - sendDis("Service Stop", main_config, role_id = main_config.get('DISCORD', 'ROLE_ID')) + role_id = main_config.get('DISCORD', 'ROLE_ID') if main_config.has_option('DISCORD', 'ROLE_ID') and main_config.get('DISCORD', 'ROLE_ID').strip() != "" else None + sendDis("Service Stop", main_config, role_id = role_id) raise SystemExit("Service Stop") signal.signal(signal.SIGTERM, service_exit) if os.path.isfile("lookup_route.py"): @@ -69,7 +77,7 @@ try: print("Found the following configs") for dirpath, dirname, filename in os.walk("./configs"): for filename in [f for f in filename if f.endswith(".ini") and f != "mainconf.ini"]: - if not "disabled" in dirpath: + if "disabled" not in dirpath: print(os.path.join(dirpath, filename)) plane_config = configparser.ConfigParser() plane_config.read((os.path.join(dirpath, filename))) diff --git a/defAirport.py b/defAirport.py index ed64da8..dd3d8ec 100644 --- a/defAirport.py +++ b/defAirport.py @@ -30,6 +30,7 @@ def getClosestAirport(latitude, longitude, allowed_types): return closest_airport_dict def get_airport_by_icao(icao): with open('./dependencies/airports.csv', 'r', encoding='utf-8') as airport_csv: + matching_airport = None airport_csv_reader = csv.DictReader(filter(lambda row: row[0]!='#', airport_csv)) for airport in airport_csv_reader: if airport['gps_code'] == icao: @@ -37,5 +38,8 @@ def get_airport_by_icao(icao): #Convert indent key to icao key as its labeled icao in other places not ident matching_airport['icao'] = matching_airport.pop('gps_code') break - matching_airport = add_airport_region(matching_airport) - return matching_airport \ No newline at end of file + if matching_airport: + matching_airport = add_airport_region(matching_airport) + return matching_airport + else: + return None \ No newline at end of file diff --git a/defSS.py b/defSS.py index 84934e9..d01f34c 100644 --- a/defSS.py +++ b/defSS.py @@ -8,14 +8,17 @@ from selenium.webdriver.common.by import By from selenium.common.exceptions import NoSuchElementException def get_adsbx_screenshot(file_path, url_params, enable_labels=False, enable_track_labels=False, overrides={}): + import os + import platform chrome_options = webdriver.ChromeOptions() chrome_options.headless = True chrome_options.add_argument('window-size=800,800') chrome_options.add_argument('ignore-certificate-errors') - #Plane images issue loading when in headless setting agent fixes. + if platform.system() == "Linux": + chrome_options.add_argument('crash-dumps-dir=/tmp/plane-notify/chrome') + + #Plane images issue loading when in headless setting agent fixes. chrome_options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36") - import os - import platform if platform.system() == "Linux" and os.geteuid()==0: chrome_options.add_argument('--no-sandbox') # required when running as root user. otherwise you would get no sandbox errors. browser = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_options) @@ -107,6 +110,7 @@ def get_adsbx_screenshot(file_path, url_params, enable_labels=False, enable_trac browser.execute_script(f"arguments[0].innerText = '* {overrides['ownop']}'", element) time.sleep(5) browser.save_screenshot(file_path) + browser.quit() def generate_adsbx_screenshot_time_params(timestamp): from datetime import datetime from datetime import timedelta diff --git a/fuel_calc.py b/fuel_calc.py index 01ea84b..f887231 100644 --- a/fuel_calc.py +++ b/fuel_calc.py @@ -14,12 +14,11 @@ def get_avg_fuel_price(): except Exception as e: print(e) return None - + def fuel_calculation(aircraft_icao_type, minutes): """Calculates fuel usage, price, c02 output of a flight depending on aircraft type and flight length""" with open("aircraft_type_fuel_consumption_rates.json", "r") as f: fuellist = json.loads(f.read()) - #avg_fuel_price_per_gallon = 5.08 fuel_flight_info = {} if aircraft_icao_type in fuellist.keys(): avg_fuel_price_per_gallon = get_avg_fuel_price() @@ -31,7 +30,7 @@ def fuel_calculation(aircraft_icao_type, minutes): fuel_flight_info['fuel_used_kg'] = round(fuel_used_kg) fuel_flight_info["fuel_used_gal"] = round(fuel_used_gal) fuel_flight_info['fuel_used_lters'] = round(fuel_used_gal*3.78541) - fuel_flight_info["fuel_used_lbs"] = round(fuel_used_kg * 2.20462) + fuel_flight_info["fuel_used_lbs"] = round(fuel_used_kg * 2.20462) fuel_flight_info["c02_tons"] = round(c02_tons) if c02_tons > 1 else round(c02_tons, 4) print ("Fuel info", fuel_flight_info) return fuel_flight_info @@ -43,10 +42,8 @@ def fuel_message(fuel_info): cost = "{:,}".format(fuel_info['fuel_price']) gallons = "{:,}".format(fuel_info['fuel_used_gal']) lters = "{:,}".format(fuel_info['fuel_used_lters']) - lbs = "{:, }".format(fuel_info['fuel_used_lbs']) + lbs = "{:,}".format(fuel_info['fuel_used_lbs']) kgs = "{:,}".format(fuel_info['fuel_used_kg']) fuel_message = f"\n~ {gallons} gallons ({lters} liters). \n~ {lbs} lbs ({kgs} kg) of jet fuel used. \n~ ${cost} cost of fuel. \n~ {fuel_info['c02_tons']} tons of CO2 emissions." print(fuel_message) return fuel_message -#fuel_info = fuel_calculation("GLF6", 548.1) -#fuel_message(fuel_info) diff --git a/planeClass.py b/planeClass.py index e15e46a..d7dcf80 100644 --- a/planeClass.py +++ b/planeClass.py @@ -55,6 +55,7 @@ class Plane: self.track = None self.last_track = None self.circle_history = None + self.nearest_from_airport = None if self.config.has_option('DATA', 'DATA_LOSS_MINS'): self.data_loss_mins = self.config.getint('DATA', 'DATA_LOSS_MINS') else: @@ -222,8 +223,11 @@ class Plane: def route_format(extra_route_info, type): from defAirport import get_airport_by_icao to_airport = get_airport_by_icao(self.known_to_airport) - code = to_airport['iata_code'] if to_airport['iata_code'] != "" else to_airport['icao'] - airport_text = f"{code}, {to_airport['name']}" + if to_airport: + code = to_airport['iata_code'] if to_airport['iata_code'] != "" else to_airport['icao'] + airport_text = f"{code}, {to_airport['name']}" + else: + airport_text = f"{self.known_to_airport}" if 'time_to' in extra_route_info.keys() and type != "divert": arrival_rel = "in ~" + extra_route_info['time_to'] else: @@ -235,7 +239,10 @@ class Plane: header = "Now going to" elif type == "divert": header = "Now diverting to" - area = f"{to_airport['municipality']}, {to_airport['region']}, {to_airport['iso_country']}" + if to_airport: + area = f"{to_airport['municipality']}, {to_airport['region']}, {to_airport['iso_country']}" + else: + area = "" route_to = f"{header} {area} ({airport_text})" + (f" arriving {arrival_rel}" if arrival_rel is not None else "") else: if type == "inital": @@ -424,12 +431,8 @@ class Plane: elif self.landed: landed_time_msg = None landed_time = None - if self.icao != "A835AF": - message = (f"{type_header} {location_string}.") + ("" if route_to is None else f" {route_to}.") + ((f" {landed_time_msg}") if landed_time_msg != None else "") - dirty_message = None - else: - message = (f"{type_header} {location_string}.") + ((f" {landed_time_msg}") if landed_time_msg != None else "") - dirty_message = (f"{type_header} {location_string}.") + ("" if route_to is None else f" {route_to}.") + ((f" {landed_time_msg}") if landed_time_msg != None else "") + + message = (f"{type_header} {location_string}.") + ("" if route_to is None else f" {route_to}.") + ((f" {landed_time_msg}") if landed_time_msg != None else "") print (message) #Google Map or tar1090 screenshot if Plane.main_config.get('MAP', 'OPTION') == "GOOGLESTATICMAP": @@ -451,9 +454,8 @@ class Plane: sendTeleg(photo, message, self.config) #Discord if self.config.getboolean('DISCORD', 'ENABLE'): - dis_message = f"{self.dis_title} {message}".strip() if dirty_message is None else f"{self.dis_title} {dirty_message}".strip() - role_id = self.config.get('DISCORD', 'ROLE_ID') if self.config.has_option('DISCORD', 'ROLE_ID') else None - sendDis(dis_message, self.config, role_id, self.map_file_name) + role_id = self.config.get('DISCORD', 'ROLE_ID') if self.config.has_option('DISCORD', 'ROLE_ID') and self.config.get('DISCORD', 'ROLE_ID').strip() != "" else None + sendDis(message, self.config, role_id, self.map_file_name) #PushBullet if self.config.getboolean('PUSHBULLET', 'ENABLE'): with open(self.map_file_name, "rb") as pic: @@ -477,13 +479,13 @@ class Plane: post_to_meta_both(self.config.get("META", "FB_PAGE_ID"), self.config.get("META", "IG_USER_ID"), self.map_file_name, message, self.config.get("META", "ACCESS_TOKEN")) os.remove(self.map_file_name) if self.landed: - if self.known_to_airport is not None and self.nearest_from_airport is not None and self.known_to_airport != self.nearest_from_airport: + if nearest_airport_dict is not None and self.nearest_from_airport is not None and nearest_airport_dict['icao'] != self.nearest_from_airport: from defAirport import get_airport_by_icao from geopy.distance import geodesic - known_to_airport = get_airport_by_icao(self.known_to_airport) + landed_airport = nearest_airport_dict nearest_from_airport = get_airport_by_icao(self.nearest_from_airport) from_coord = (nearest_from_airport['latitude_deg'], nearest_from_airport['longitude_deg']) - to_coord = (known_to_airport['latitude_deg'], known_to_airport['longitude_deg']) + to_coord = (landed_airport['latitude_deg'], landed_airport['longitude_deg']) distance_mi = float(geodesic(from_coord, to_coord).mi) distance_nm = distance_mi / 1.150779448 distance_message = f"{'{:,}'.format(round(distance_mi))} mile ({'{:,}'.format(round(distance_nm))} NM) flight from {nearest_from_airport['iata_code'] if nearest_from_airport['iata_code'] != '' else nearest_from_airport['ident']} to {nearest_airport_dict['iata_code'] if nearest_airport_dict['iata_code'] != '' else nearest_airport_dict['ident']}\n" @@ -498,7 +500,7 @@ class Plane: fuel_message = fuel_message(fuel_info) if self.config.getboolean('DISCORD', 'ENABLE'): dis_message = f"{self.dis_title} {distance_message} \nFlight Fuel Info ```{fuel_message}```".strip() - role_id = self.config.get('DISCORD', 'ROLE_ID') if self.config.has_option('DISCORD', 'ROLE_ID') else None + role_id = self.config.get('DISCORD', 'ROLE_ID') if self.config.has_option('DISCORD', 'ROLE_ID') and self.config.get('DISCORD', 'ROLE_ID').strip() != "" else None sendDis(dis_message, self.config, role_id) if self.config.getboolean('TWITTER', 'ENABLE'): try: @@ -525,11 +527,10 @@ class Plane: #Discord if self.config.getboolean('DISCORD', 'ENABLE'): dis_message = f"{self.dis_title} {route_to}".strip() - role_id = self.config.get('DISCORD', 'ROLE_ID') if self.config.has_option('DISCORD', 'ROLE_ID') else None + role_id = self.config.get('DISCORD', 'ROLE_ID') if self.config.has_option('DISCORD', 'ROLE_ID') and self.config.get('DISCORD', 'ROLE_ID').strip() != "" else None sendDis(dis_message, self.config, role_id) #Twitter - if self.config.getboolean('TWITTER', 'ENABLE') and self.icao == 'A835AF': - #tweet = self.tweet_api.user_timeline(count = 1)[0] + if self.config.getboolean('TWITTER', 'ENABLE'): self.latest_tweet_id = self.tweet_api.update_status(status = f"{self.twitter_title} {route_to}".strip(), in_reply_to_status_id = self.latest_tweet_id).id if self.circle_history is not None: @@ -793,8 +794,8 @@ class Plane: from defTelegram import sendTeleg sendTeleg(photo, message, self.config) if self.config.getboolean('DISCORD', 'ENABLE'): - role_id = self.config.get('DISCORD', 'ROLE_ID') if self.config.has_option('DISCORD', 'ROLE_ID') else None - if tfr_map_filename is not None: + role_id = self.config.get('DISCORD', 'ROLE_ID') if self.config.has_option('DISCORD', 'ROLE_ID') and self.config.get('DISCORD', 'ROLE_ID').strip() != "" else None + if tfr_map_filename is not None: sendDis(message, self.config, role_id, self.map_file_name, tfr_map_filename) elif tfr_map_filename is None: sendDis(message, self.config, role_id, self.map_file_name) @@ -865,7 +866,7 @@ class Plane: if self.config.getboolean('DISCORD', 'ENABLE'): from defDiscord import sendDis dis_message = f"{self.dis_title} {ra_message}" - role_id = self.config.get('DISCORD', 'ROLE_ID') if self.config.has_option('DISCORD', 'ROLE_ID') else None + role_id = self.config.get('DISCORD', 'ROLE_ID') if self.config.has_option('DISCORD', 'ROLE_ID') and self.config.get('DISCORD', 'ROLE_ID').strip() != "" else None sendDis(dis_message, self.config, role_id, self.map_file_name) #if twitter def expire_ra_types(self): From dc828e6bed14b805017eac0c35089454cb92decf Mon Sep 17 00:00:00 2001 From: Jack Sweeney Date: Mon, 14 Nov 2022 13:21:40 -0500 Subject: [PATCH 32/70] Cleaner error raise to Discord, remove bad Twitter raises --- __main__.py | 2 +- planeClass.py | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/__main__.py b/__main__.py index a603c88..9858713 100644 --- a/__main__.py +++ b/__main__.py @@ -221,5 +221,5 @@ except Exception as e: logging.error(e) logging.error(str(traceback.format_exc())) from defDiscord import sendDis - sendDis(str("Error Exiting: " + str(e) + " Failed on " + "https://globe.adsbexchange.com/?icao=" + key), main_config, main_config.get('DISCORD', 'ROLE_ID'), "crash_latest.log") + sendDis(str("Error Exiting: " + str(e) + f"Failed on ({obj.config_path}) https://globe.adsbexchange.com/?icao={key} "), main_config, main_config.get('DISCORD', 'ROLE_ID'), "crash_latest.log") raise e \ No newline at end of file diff --git a/planeClass.py b/planeClass.py index 84614de..187da23 100644 --- a/planeClass.py +++ b/planeClass.py @@ -8,6 +8,7 @@ class Plane: self.icao = icao.upper() self.callsign = None self.config = config + self.config_path = config_path self.overrides = {} if self.config.has_option('DATA', 'OVERRIDE_REG'): self.reg = self.config.get('DATA', 'OVERRIDE_REG') @@ -478,8 +479,7 @@ class Plane: self.tweet_api.create_media_metadata(media_id= twitter_media_map_obj.media_id, alt_text= alt_text) self.latest_tweet_id = self.tweet_api.update_status(status = ((self.twitter_title + " " + message).strip()), media_ids=[twitter_media_map_obj.media_id]).id except tweepy.errors.TweepyException as e: - print(e) - raise Exception(self.icao) from e + raise #Meta if self.config.has_option('META', 'ENABLE') and self.config.getboolean('META', 'ENABLE'): from meta_toolkit import post_to_meta_both @@ -513,8 +513,7 @@ class Plane: try: self.latest_tweet_id = self.tweet_api.update_status(status = ((self.twitter_title + " " + distance_message + " " + fuel_message).strip()), in_reply_to_status_id = self.latest_tweet_id).id except tweepy.errors.TweepyException as e: - print(e) - raise Exception(self.icao) from e + raise self.latest_tweet_id = None self.recheck_route_time = None self.known_to_airport = None From d329df8ef18257b5cf84f8621acb2caeef41b259 Mon Sep 17 00:00:00 2001 From: Reilly Chase Date: Mon, 28 Nov 2022 14:07:38 -0500 Subject: [PATCH 33/70] Fix README.md - add .py extension to command Change "pipenv run python __main__" to "pipenv run python __main__.py" --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6ac25fa..1de6e6c 100644 --- a/README.md +++ b/README.md @@ -92,7 +92,7 @@ screen -R ### Start Program ```bash -pipenv run python __main__ +pipenv run python __main__.py ``` ## Using with Docker From 4f4ae83800ddb4a0078277a6193005217269c2fb Mon Sep 17 00:00:00 2001 From: Jack Sweeney Date: Wed, 30 Nov 2022 12:50:47 -0500 Subject: [PATCH 34/70] Blur functions for hiding aircraft identies or PIA -Blur entire id reg, type, callsign, photo etc with CONCEAL_AC_ID -Blur PIA info, callsign and hex/icao -Add missing option to mainconf example --- .gitignore | 1 + configs/mainconf.ini.example | 7 ++++++- configs/plane1.ini.example | 2 ++ defSS.py | 31 +++++++++++++++++++++---------- planeClass.py | 18 +++++++++++++----- 5 files changed, 43 insertions(+), 16 deletions(-) diff --git a/.gitignore b/.gitignore index fe2bcb0..f78e68a 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ lookup_route.py icao_url_gen.py install.sh coul_icao_gen.py +test.py diff --git a/configs/mainconf.ini.example b/configs/mainconf.ini.example index 73ec22e..114b869 100644 --- a/configs/mainconf.ini.example +++ b/configs/mainconf.ini.example @@ -20,7 +20,7 @@ API_VERSION = 1 #ADSBX API Proxy, https://gitlab.com/jjwiseman/adsbx-api-proxy, v2 input, v1 or v2 output from proxy ENABLE_PROXY = FALSE #Full URL http://host:port -PROXY_HOST = +PROXY_HOST = #OpenSky https://opensky-network.org/apidoc/index.html #When using without your own login user and pass should be None @@ -57,3 +57,8 @@ ENABLE = False ENABLE = False CONSUMER_KEY = ck CONSUMER_SECRET = cs + +[MAP] +#Map to create from Google Static Maps or screenshot global tar1090 from globe.adsbexchange.com +#Enter GOOGLESTATICMAP or ADSBX +OPTION = ADSBX \ No newline at end of file diff --git a/configs/plane1.ini.example b/configs/plane1.ini.example index fd0051e..f98570a 100644 --- a/configs/plane1.ini.example +++ b/configs/plane1.ini.example @@ -9,6 +9,8 @@ ICAO = icaohere ; OVERRIDE_TYPELONG = ; OVERRIDE_OWNER = ; DATA_LOSS_MINS = 20 +; CONCEAL_AC_ID = True +; CONCEAL_PIA = False [MAP] #Map to create from Google Static Maps or screenshot global tar1090 from globe.adsbexchange.com diff --git a/defSS.py b/defSS.py index d01f34c..ea525b3 100644 --- a/defSS.py +++ b/defSS.py @@ -6,14 +6,21 @@ import time from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.common.exceptions import NoSuchElementException - -def get_adsbx_screenshot(file_path, url_params, enable_labels=False, enable_track_labels=False, overrides={}): +def blur_elements_by_id(browser, element_ids): + for element in element_ids: + try: + element = browser.find_element(By.ID, element) + browser.execute_script("arguments[0].style.filter = 'blur(7px)';", element) + except NoSuchElementException: + print("Issue finding:", element, "on page") +def get_adsbx_screenshot(file_path, url_params, enable_labels=False, enable_track_labels=False, overrides={}, conceal_ac_id=False, conceal_pia=False): import os import platform chrome_options = webdriver.ChromeOptions() chrome_options.headless = True chrome_options.add_argument('window-size=800,800') chrome_options.add_argument('ignore-certificate-errors') + chrome_options.add_experimental_option('excludeSwitches', ['enable-logging']) if platform.system() == "Linux": chrome_options.add_argument('crash-dumps-dir=/tmp/plane-notify/chrome') @@ -23,7 +30,7 @@ def get_adsbx_screenshot(file_path, url_params, enable_labels=False, enable_trac chrome_options.add_argument('--no-sandbox') # required when running as root user. otherwise you would get no sandbox errors. browser = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_options) url = f"https://globe.adsbexchange.com/?{url_params}" - print(url) + print(f"Getting Screenshot of {url}") browser.set_page_load_timeout(80) browser.get(url) WebDriverWait(browser, 40).until(lambda d: d.execute_script("return jQuery.active == 0")) @@ -33,7 +40,7 @@ def get_adsbx_screenshot(file_path, url_params, enable_labels=False, enable_trac element = browser.find_element(By.ID, element) browser.execute_script("""var element = arguments[0]; element.parentNode.removeChild(element); """, element) except: - print("issue removing", element, "from map") + print("Issue finding:", element, "on page") #Remove watermark on data try: browser.execute_script("document.getElementById('selected_infoblock').className = 'none';") @@ -50,13 +57,17 @@ def get_adsbx_screenshot(file_path, url_params, enable_labels=False, enable_trac browser.execute_script("""var element = arguments[0]; element.parentNode.removeChild(element); """, element) except: print("Couldn't remove Google Ads") - #Remove share - # try: - # element = browser.find_element_by_xpath("//*[contains(text(), 'Copy Link')]") - # browser.execute_script("""var element = arguments[0]; element.parentNode.removeChild(element); """, element) - # except Exception as e: - # print("Couldn't remove share button from map", e) + #Remove Copy Link + try: + element = browser.find_element(By.XPATH, "//*[@id='selected_icao']/span[2]/a") + browser.execute_script("""var element = arguments[0]; element.parentNode.removeChild(element); """, element) + except Exception as e: + print("Couldn't remove copy link button from map", e) #browser.execute_script("toggleFollow()") + if conceal_pia or conceal_ac_id: + blur_elements_by_id(browser, ["selected_callsign", "selected_icao", "selected_squawk1"]) + if conceal_ac_id: + blur_elements_by_id(browser, ["selected_registration", "selected_country", "selected_dbFlags", "selected_ownop", "selected_typelong", "selected_icaotype", "airplanePhoto", "silhouette", "copyrightInfo"]) if enable_labels: browser.find_element(By.TAG_NAME, 'body').send_keys('l') if enable_track_labels: diff --git a/planeClass.py b/planeClass.py index 187da23..fb9f0b9 100644 --- a/planeClass.py +++ b/planeClass.py @@ -24,6 +24,14 @@ class Plane: self.overrides['typelong'] = self.config.get('DATA', 'OVERRIDE_TYPELONG') if self.config.has_option('DATA', 'OVERRIDE_OWNER'): self.overrides['ownop'] = self.config.get('DATA', 'OVERRIDE_OWNER') + if self.config.has_option('DATA', 'CONCEAL_AC_ID'): + self.conceal_ac_id = self.config.getboolean('DATA', 'CONCEAL_AC_ID') + else: + self.conceal_ac_id = False + if self.config.has_option('DATA', 'CONCEAL_PIA'): + self.conceal_pia = self.config.getboolean('DATA', 'CONCEAL_PIA') + else: + self.conceal_pia = False self.conf_file_path = config_path self.alt_ft = None self.below_desired_ft = None @@ -449,7 +457,7 @@ class Plane: elif Plane.main_config.get('MAP', 'OPTION') == "ADSBX": from defSS import get_adsbx_screenshot url_params = f"largeMode=2&hideButtons&hideSidebar&mapDim=0&zoom=10&icao={self.icao}&overlays={self.get_adsbx_map_overlays()}&limitupdates=0" - get_adsbx_screenshot(self.map_file_name, url_params, overrides=self.overrides) + get_adsbx_screenshot(self.map_file_name, url_params, overrides=self.overrides, conceal_ac_id=self.conceal_ac_id, conceal_pia=self.conceal_pia) from modify_image import append_airport text_credit = self.config.get('MAP', 'TEXT_CREDIT') if self.config.has_option('MAP', 'TEXT_CREDIT') else None append_airport(self.map_file_name, nearest_airport_dict, text_credit) @@ -567,7 +575,7 @@ class Plane: if Plane.main_config.get('MAP', 'OPTION') == "ADSBX": from defSS import get_adsbx_screenshot url_params = f"largeMode=2&hideButtons&hideSidebar&mapDim=0&zoom=10&icao={self.icao}&overlays={self.get_adsbx_map_overlays()}&limitupdates=0" - get_adsbx_screenshot(self.map_file_name, url_params, overrides=self.overrides) + get_adsbx_screenshot(self.map_file_name, url_params, overrides=self.overrides, conceal_ac_id=self.conceal_ac_id, conceal_pia=self.conceal_pia) if self.config.getboolean('DISCORD', 'ENABLE'): dis_message = (self.dis_title + " " + squawk_message) sendDis(dis_message, self.config, None, self.map_file_name) @@ -590,7 +598,7 @@ class Plane: if mode == "Approach": from defSS import get_adsbx_screenshot url_params = f"largeMode=2&hideButtons&hideSidebar&mapDim=0&zoom=10&icao={self.icao}&overlays={self.get_adsbx_map_overlays()}&limitupdates=0" - get_adsbx_screenshot(self.map_file_name, url_params, overrides=self.overrides) + get_adsbx_screenshot(self.map_file_name, url_params, overrides=self.overrides, conceal_ac_id=self.conceal_ac_id, conceal_pia=self.conceal_pia) sendDis(dis_message, self.config, None, self.map_file_name) #elif mode in ["Althold", "VNAV", "LNAV"] and self.sel_nav_alt != None: # sendDis((dis_message + ", Sel Alt. " + str(self.sel_nav_alt) + ", Current Alt. " + str(self.alt_ft)), self.config) @@ -773,7 +781,7 @@ class Plane: from defSS import get_adsbx_screenshot url_params = f"largeMode=2&hideButtons&hideSidebar&mapDim=0&zoom=10&icao={self.icao}&overlays={self.get_adsbx_map_overlays()}&limitupdates=0" - get_adsbx_screenshot(self.map_file_name, url_params, overrides=self.overrides) + get_adsbx_screenshot(self.map_file_name, url_params, overrides=self.overrides, conceal_ac_id=self.conceal_ac_id, conceal_pia=self.conceal_pia) if nearest_airport_dict['distance_mi'] < 3: if "touchngo" in self.circle_history.keys(): message = f"Doing touch and goes at {nearest_airport_dict['icao']}" @@ -867,7 +875,7 @@ class Plane: else: url_params += f"&icao={self.icao.lower()}&noIsolation" print(url_params) - get_adsbx_screenshot(self.map_file_name, url_params, True, True, overrides=self.overrides) + get_adsbx_screenshot(self.map_file_name, url_params, True, True, overrides=self.overrides, conceal_ac_id=self.conceal_ac_id, conceal_pia=self.conceal_pia) if self.config.getboolean('DISCORD', 'ENABLE'): from defDiscord import sendDis From 6e90db827f726a1eee66410d5b958ccd09adda2b Mon Sep 17 00:00:00 2001 From: Mark Bumiller Date: Fri, 2 Dec 2022 07:50:15 -0500 Subject: [PATCH 35/70] using latest pipenv fixes Jxck-S/plane-notify#82 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index bc1f050..d8ab373 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,7 +12,7 @@ RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key RUN apt-get update && apt-get -y install google-chrome-stable # Add pipenv -RUN pip install pipenv==2021.5.29 +RUN pip install pipenv==2022.11.30 # Install dependencies RUN pipenv install From 82b1c2f27238eea075d7d0ae5baacb1b00f6658c Mon Sep 17 00:00:00 2001 From: Jack Sweeney Date: Sun, 4 Dec 2022 23:10:09 -0500 Subject: [PATCH 36/70] Removing PushBullet support I can longer recommend PushBullet, poorly maintained, switch to the Telegram integration. No longer needed --- aircraft_type_fuel_consumption_rates.json | 478 +++++++++++++++------- configs/plane1.ini.example | 6 - planeClass.py | 11 - 3 files changed, 338 insertions(+), 157 deletions(-) diff --git a/aircraft_type_fuel_consumption_rates.json b/aircraft_type_fuel_consumption_rates.json index 742a3e9..ce2471b 100644 --- a/aircraft_type_fuel_consumption_rates.json +++ b/aircraft_type_fuel_consumption_rates.json @@ -1,214 +1,412 @@ { "EA50": { - "name": "Eclipse 550", - "galph": 76, - "category": "VLJ" + "name": "Eclipse 550", + "galph": 76, + "category": "VLJ" }, "LJ31": { - "name": "Learjet 31", - "galph": 202, - "category": "Light" + "name": "Learjet 31", + "galph": 202, + "category": "Light" }, "LJ40": { - "name": "Learjet 40", - "galph": 207, - "category": "Light" + "name": "Learjet 40", + "galph": 207, + "category": "Light" }, "PC24": { - "name": "Pilatus PC-24", - "galph": 154, - "category": "Light" + "name": "Pilatus PC-24", + "galph": 154, + "category": "Light" }, "LJ45": { - "name": "Learjet 45", - "galph": 205, - "category": "Super Light" + "name": "Learjet 45", + "galph": 205, + "category": "Super Light" }, "LJ70": { - "name": "Learjet 70", - "galph": 198, - "category": "Super Light" + "name": "Learjet 70", + "galph": 198, + "category": "Super Light" }, "LJ75": { - "name": "Learjet 75", - "galph": 199, - "category": "Super Light" + "name": "Learjet 75", + "galph": 199, + "category": "Super Light" }, "G150": { - "name": "Gulfstream G150", - "galph": 228, - "category": "Midsize" + "name": "Gulfstream G150", + "galph": 228, + "category": "Midsize" }, "LJ60": { - "name": "Learjet 60", - "galph": 239, - "category": "Midsize" + "name": "Learjet 60", + "galph": 239, + "category": "Midsize" }, "GALX": { - "name": "Gulfstream G200", - "galph": 278, - "category": "Super Midsize" + "name": "Gulfstream G200", + "galph": 278, + "category": "Super Midsize" }, "G280": { - "name": "Gulfstream G280", - "galph": 297, - "category": "Super Midsize" + "name": "Gulfstream G280", + "galph": 297, + "category": "Super Midsize" }, "GLF5": { - "name": "Gulfstream G500", - "galph": 447, - "category": "Large" + "name": "Gulfstream G500", + "galph": 447, + "category": "Large" }, "GLF6": { - "name": "Gulfstream G650", - "galph": 503, - "category": "Ultra Long Range" + "name": "Gulfstream G650", + "galph": 503, + "category": "Ultra Long Range" }, "PC12": { - "name": "Pilatus PC-12", - "galph": 66, - "category": "Turboprop Aircraft" + "name": "Pilatus PC-12", + "galph": 66, + "category": "Turboprop Aircraft" }, "GLEX": { - "name": "Global", - "galph": 500, - "category": "Ultra Long Range" - } - , + "name": "Global", + "galph": 500, + "category": "Ultra Long Range" + }, "CL30": { - "name": "Challenger 300", - "galph": 295, - "category": "Super Midsize" - }, "B742": { - "name": "Boeing 747-200", - "galph": 3830, - "category": "Large" - }, "T38": { - "name": "T-38 Talon", - "galph": 375, - "category": "Fighter" - }, "WB57": { - "name": "Martin B-57 Canberra", - "galph": 531, - "category": "Twinjet Tactical Bomber and Reconnaissance" - }, "B74S": { - "name": "747 SP", - "galph": 2289, - "category": "Large" - }, "B752": { - "name": "757 200", - "galph": 877, - "category": "Large" - }, - "B738": { - "name": "737 800", - "galph": 832, - "category": "Medium" + "name": "Challenger 300", + "galph": 295, + "category": "Super Midsize" + }, + "B742": { + "name": "Boeing 747-200", + "galph": 3830, + "category": "Large" + }, + "T38": { + "name": "T-38 Talon", + "galph": 375, + "category": "Fighter" + }, + "WB57": { + "name": "Martin B-57 Canberra", + "galph": 531, + "category": "Twinjet Tactical Bomber and Reconnaissance" + }, + "B74S": { + "name": "747 SP", + "galph": 2289, + "category": "Large" + }, + "B752": { + "name": "757 200", + "galph": 877, + "category": "Large" + }, + "B738": { + "name": "737 800", + "galph": 832, + "category": "Medium" }, "B737": { - "name": "737 700", - "galph": 796, - "category": "Medium" + "name": "737 700", + "galph": 796, + "category": "Medium" }, "A320": { - "name": "A320", - "galph": 800, - "category": "Medium" + "name": "A320", + "galph": 800, + "category": "Medium" }, "P3": { - "name": "Lockheed Orion P3", - "galph": 671, - "category": "Turboprop" + "name": "Lockheed Orion P3", + "galph": 671, + "category": "Turboprop" }, "C750": { - "name": "Cessna 750 Citation X", - "galph": 347, - "category": "Small Private Jet" + "name": "Cessna 750 Citation X", + "galph": 347, + "category": "Small Private Jet" }, "FA7X": { - "name": "Dassult Falcon 7X", - "galph": 380, - "category": "Small Private Jet" + "name": "Dassult Falcon 7X", + "galph": 380, + "category": "Small Private Jet" }, "F900": { - "name": "Dassult Falcon 900", - "galph": 347, - "category": "Small Private Jet" + "name": "Dassult Falcon 900", + "galph": 347, + "category": "Small Private Jet" }, "H25B": { - "name": "Hawker 750/850", - "galph": 270, - "category": "Small Private Jet" + "name": "Hawker 750/850", + "galph": 270, + "category": "Small Private Jet" }, "C680": { - "name": "Cessna 680 Citation", - "galph": 247, - "category": "Small Private Jet" + "name": "Cessna 680 Citation", + "galph": 247, + "category": "Small Private Jet" }, "GLF3": { - "name": "Gulfstream 3", - "galph": 568, - "category": "Heavy Private Jet" - }, + "name": "Gulfstream 3", + "galph": 568, + "category": "Heavy Private Jet" + }, "GLF4": { - "name": "Gulfstream 4", - "galph": 479, - "category": "Heavy Private Jet" + "name": "Gulfstream 4", + "galph": 479, + "category": "Heavy Private Jet" }, "CL60": { - "name": "Bombardier CL-600 Challenge", - "galph": 262, - "category": "Mid-size Private Jet" + "name": "Bombardier CL-600 Challenge", + "galph": 262, + "category": "Mid-size Private Jet" }, "A139": { - "name": "Agusta-Bell AW139", - "galph": 150, - "category": "Medium Utility Helicopter" + "name": "Agusta-Bell AW139", + "galph": 150, + "category": "Medium Utility Helicopter" }, "GL5T": { - "name": "Global 5000", - "galph": 455, - "category": "Heavy Private Jet" + "name": "Global 5000", + "galph": 455, + "category": "Heavy Private Jet" }, "GA6C": { - "name": "Gulfstream G600", - "galph": 458, - "category": "Heavy Private Jet" + "name": "Gulfstream G600", + "galph": 458, + "category": "Heavy Private Jet" }, "A337": { - "name": "Airbus Beluga XL", - "galph": 1800, - "category": "Large Transport Aircraft" + "name": "Airbus Beluga XL", + "galph": 1800, + "category": "Large Transport Aircraft" }, "A3ST": { - "name": "Airbus Beluga", - "galph": 1260, - "category": "Large Transport Aircraft" + "name": "Airbus Beluga", + "galph": 1260, + "category": "Large Transport Aircraft" }, "F2TH": { - "name": "Dassault Falcon 2000", - "galph": 245, - "category": "Medium Private Jet" + "name": "Dassault Falcon 2000", + "galph": 245, + "category": "Medium Private Jet" }, "GA5C": { - "name": "Gulfstream G500", - "galph": 402, - "category": "Large Private Jet" + "name": "Gulfstream G500", + "galph": 402, + "category": "Large Private Jet" }, "C130": { - "name": "Lockheed C130", - "galph": 740, - "category": "Medium Cargo" + "name": "Lockheed C130", + "galph": 740, + "category": "Medium Cargo" }, "B762": { - "name": "Boeing 767 200", - "galph": 1722, - "category": "Wide-body" + "name": "Boeing 767 200", + "galph": 1722, + "category": "Wide-body" }, "B772": { - "name": "Boeing 777 200", - "galph": 2300, - "category": "Wide-body" + "name": "Boeing 777 200", + "galph": 2300, + "category": "Wide-body" + }, + "SLCH": { + "name": "Stratolaunch", + "galph": 2396, + "category": "Special" + }, + "P51": { + "name": "P51 Mustang", + "galph": 65, + "category": "Fighter" + }, + "HDJT": { + "name": "Honda Jet", + "galph": 90, + "category": "Light Jet" + }, + "B744": { + "name": "Boeing 747-400", + "galph": 3700, + "category": "Heavy Airliner" + }, + "E190": { + "name": "Embrar E190", + "galph": 469, + "category": "Heavy Jet" + }, + "FA50": { + "name": "Falcon 50", + "galph": 229, + "category": "Heavy Jet" + }, + "GL7T": { + "name": "Global 7000", + "galph": 460, + "category": "Heavy Jet" + }, + "GL6T": { + "name": "", + "galph": 455.0, + "category": "" + }, + "C68A": { + "name": "", + "galph": 212.0, + "category": "" + }, + "C56X": { + "name": "", + "galph": 217.0, + "category": "" + }, + "B763": { + "name": "", + "galph": 1320.0, + "category": "" + }, + "A310": { + "name": "", + "galph": 1189.0, + "category": "" + }, + "A330": { + "name": "", + "galph": 1505.0, + "category": "" + }, + "A380": { + "name": "", + "galph": 4062.0, + "category": "" + }, + "E170": { + "name": "", + "galph": 469.0, + "category": "" + }, + "DC87": { + "name": "", + "galph": 1250.0, + "category": "" + }, + "SGUP": { + "name": "", + "galph": 1156.0, + "category": "" + }, + "WHK2": { + "name": "", + "galph": 500.0, + "category": "" + }, + "B350": { + "name": "", + "galph": 122.0, + "category": "" + }, + "BE30": { + "name": "", + "galph": 121.0, + "category": "" + }, + "FA8X": { + "name": "", + "galph": 380.0, + "category": "" + }, + "E550": { + "name": "", + "galph": 280.0, + "category": "" + }, + "E55P": { + "name": "", + "galph": 166.0, + "category": "" + }, + "A332": { + "name": "", + "galph": 1480, + "category": "" + }, + "GA7C": { + "name": "", + "galph": 382.0, + "category": "" + }, + "FA6X": { + "name": "", + "galph": 419.0, + "category": "" + }, + "B3XM": { + "name": "", + "galph": 716.0, + "category": "" + }, + "B779": { + "name": "", + "galph": 2250.0, + "category": "" + }, + "BE22": { + "name": "", + "galph": 60.0, + "category": "" + }, + "C560": { + "name": "", + "galph": 182.0, + "category": "" + }, + "E145": { + "name": "", + "galph": 284.0, + "category": "" + }, + "C25C": { + "name": "", + "galph": 110.0, + "category": "" + }, + "C25B": { + "name": "", + "galph": 110.0, + "category": "" + }, + "C441": { + "name": "", + "galph": 57.0, + "category": "" + }, + "E50P": { + "name": "", + "galph": 109.0, + "category": "" + }, + "CRJ2": { + "name": "", + "galph": 325.0, + "category": "" + }, + "CRJ7": { + "name": "", + "galph": 444.0, + "category": "" + }, + "BE40": { + "name": "", + "galph": 220.0, + "category": "" + }, + "C700": { + "name": "", + "galph": 288.0, + "category": "" } - } \ No newline at end of file diff --git a/configs/plane1.ini.example b/configs/plane1.ini.example index f98570a..5c2a8f1 100644 --- a/configs/plane1.ini.example +++ b/configs/plane1.ini.example @@ -31,12 +31,6 @@ TITLE = ACCESS_TOKEN = athere ACCESS_TOKEN_SECRET = atshere -[PUSHBULLET] -ENABLE = FALSE -TITLE = Title Of Pushbullet message -API_KEY = apikey -CHANNEL_TAG = channeltag - [DISCORD] ENABLE = FALSE #WEBHOOK URL https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks diff --git a/planeClass.py b/planeClass.py index fb9f0b9..4b24edf 100644 --- a/planeClass.py +++ b/planeClass.py @@ -79,11 +79,6 @@ class Plane: self.latest_tweet_id = self.tweet_api.user_timeline(count = 1)[0] except IndexError: self.latest_tweet_id = None - #Setup PushBullet - if self.config.getboolean('PUSHBULLET', 'ENABLE'): - from pushbullet import Pushbullet - self.pb = Pushbullet(self.config['PUSHBULLET']['API_KEY']) - self.pb_channel = self.pb.get_channel(self.config.get('PUSHBULLET', 'CHANNEL_TAG')) def run_opens(self, ac_dict): #Parse OpenSky Vector from colorama import Fore, Back, Style @@ -472,12 +467,6 @@ class Plane: if self.config.getboolean('DISCORD', 'ENABLE'): role_id = self.config.get('DISCORD', 'ROLE_ID') if self.config.has_option('DISCORD', 'ROLE_ID') and self.config.get('DISCORD', 'ROLE_ID').strip() != "" else None sendDis(message, self.config, role_id, self.map_file_name) - #PushBullet - if self.config.getboolean('PUSHBULLET', 'ENABLE'): - with open(self.map_file_name, "rb") as pic: - map_data = self.pb.upload_file(pic, "Tookoff IMG" if self.tookoff else "Landed IMG") - self.pb_channel.push_note(self.config.get('PUSHBULLET', 'TITLE'), message) - self.pb_channel.push_file(**map_data) #Twitter if self.config.getboolean('TWITTER', 'ENABLE'): import tweepy From 4d44d583063c7ff118b91be1a684e63683daf693 Mon Sep 17 00:00:00 2001 From: Mark Bumiller Date: Mon, 5 Dec 2022 18:28:26 -0500 Subject: [PATCH 37/70] simplifying rapidadsbx logic - raising exception if response not 200 - decode json from resposonse lib - simplifying iteration of planes - updating plane data in the same loop as querying api fixes Jxck-S/plane-notify#84 --- __main__.py | 41 +++++++++++++---------------------------- defRpdADSBX.py | 40 ++++++++++++++-------------------------- 2 files changed, 27 insertions(+), 54 deletions(-) diff --git a/__main__.py b/__main__.py index 6560ea1..fe67d67 100644 --- a/__main__.py +++ b/__main__.py @@ -190,36 +190,21 @@ try: print(key, "has", len(sorted_ras[key]), "RAs") obj.check_new_ras(sorted_ras[key]) obj.expire_ra_types() - icao_key = 'hex' from defRpdADSBX import pull_rpdadsbx - # print("Planes list: \n"+str((list(planes.keys())))) - # print("\nLen planes:\n"+str(len(planes))) - p = 0 - data = dict.fromkeys(['ac']) - # print(data) - while p < len(planes): - planeInfo = pull_rpdadsbx(str(list(planes.keys())[p])) - if p == 0: - data['ac'] = (planeInfo)['ac'] + data_indexed = {} + for icao in planes: + plane = planes[icao] + plane_info = pull_rpdadsbx(icao) + if plane_info is not None: + data_indexed[icao.upper()] = plane_info['ac'] + if data_indexed[icao.upper()]: + plane.run_adsbx_v2(data_indexed[icao.upper()]) + else: + plane.run_empty() else: - data['ac'].extend((planeInfo)['ac']) - # print("p = "+str(p)) - # print(str(list(planes.keys())[p]) + ": " + str(data)) - p += 1 - if data is not None: - if data['ac'] is not None: - data_indexed = {} - for planeData in data['ac']: - data_indexed[planeData[icao_key].upper()] = planeData - for key, obj in planes.items(): - try: - obj.run_adsbx_v2(data_indexed[key.upper()]) - except KeyError: - obj.run_empty() - else: - for obj in planes.values(): - obj.run_empty() - else: + print(f"No data for icao {icao}. Skipping...") + plane.run_empty() + if not data_indexed: failed_count += 1 elif source == "OPENS": from defOpenSky import pull_opensky diff --git a/defRpdADSBX.py b/defRpdADSBX.py index cce4c35..6d2631c 100644 --- a/defRpdADSBX.py +++ b/defRpdADSBX.py @@ -1,5 +1,4 @@ import requests -import json import configparser from datetime import datetime @@ -18,29 +17,18 @@ def pull_rpdadsbx(planes): } try: response = requests.get(url, headers = headers, timeout=30) - except Exception as error: - print('err.args:' + str(error.args)) - response = None - if response is not None: - try: - data = json.loads(response.text) - except (json.decoder.JSONDecodeError, ValueError) as error_message: - print("Error with JSON") - print(error_message) - data = None - except TypeError as error_message: - print("Type Error", error_message) - data = None - else: - if "msg" in data.keys() and data['msg'] != "No error": - raise ValueError("Error from ADSBX: msg = ", data['msg']) - if "ctime" in data.keys(): - data_ctime = float(data['ctime']) / 1000.0 - print("Data ctime:",datetime.utcfromtimestamp(data_ctime)) - if "now" in data.keys(): - data_now = float(data['now']) / 1000.0 - print("Data now time:",datetime.utcfromtimestamp(data_now)) + response.raise_for_status() + data = response.json() + if "msg" in data.keys() and data['msg'] != "No error": + raise ValueError("Error from ADSBX: msg = ", data['msg']) + if "ctime" in data.keys(): + data_ctime = float(data['ctime']) / 1000.0 + print("Data ctime:",datetime.utcfromtimestamp(data_ctime)) + if "now" in data.keys(): + data_now = float(data['now']) / 1000.0 + print("Data now time:",datetime.utcfromtimestamp(data_now)) print("Current UTC:", datetime.utcnow()) - else: - data = None - return data + return data + except Exception as e: + print('Error calling RapidAPI', e) + return None From d6bb19216374185fc4d8a7edd56d08f33189fb6c Mon Sep 17 00:00:00 2001 From: Mark Bumiller Date: Wed, 7 Dec 2022 18:59:39 -0500 Subject: [PATCH 38/70] treating aircraft data as alist --- __main__.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/__main__.py b/__main__.py index fe67d67..1b8e18a 100644 --- a/__main__.py +++ b/__main__.py @@ -195,8 +195,8 @@ try: for icao in planes: plane = planes[icao] plane_info = pull_rpdadsbx(icao) - if plane_info is not None: - data_indexed[icao.upper()] = plane_info['ac'] + if plane_info: + data_indexed[icao.upper()] = plane_info['ac'][0] if data_indexed[icao.upper()]: plane.run_adsbx_v2(data_indexed[icao.upper()]) else: @@ -271,4 +271,4 @@ except Exception as e: logging.error(str(traceback.format_exc())) from defDiscord import sendDis sendDis(str("Error Exiting: " + str(e) + f"Failed on ({obj.config_path}) https://globe.adsbexchange.com/?icao={key} "), main_config, main_config.get('DISCORD', 'ROLE_ID'), "crash_latest.log") - raise e \ No newline at end of file + raise e From f6e30145433b1e52de544d7e85350fdb02462a8a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Dec 2022 08:21:20 +0000 Subject: [PATCH 39/70] Bump certifi from 2022.9.14 to 2022.12.7 Bumps [certifi](https://github.com/certifi/python-certifi) from 2022.9.14 to 2022.12.7. - [Release notes](https://github.com/certifi/python-certifi/releases) - [Commits](https://github.com/certifi/python-certifi/compare/2022.09.14...2022.12.07) --- updated-dependencies: - dependency-name: certifi dependency-type: indirect ... Signed-off-by: dependabot[bot] --- Pipfile.lock | 206 ++++++++++++++++++++++++++------------------------- 1 file changed, 107 insertions(+), 99 deletions(-) diff --git a/Pipfile.lock b/Pipfile.lock index 12617b9..9326f8c 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -64,11 +64,11 @@ }, "certifi": { "hashes": [ - "sha256:36973885b9542e6bd01dea287b2b4b3b21236307c56324fcc3f1160f2d655ed5", - "sha256:e232343de1ab72c2aa521b625c80f699e356830fd0e2c620b465b304b17b0516" + "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3", + "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18" ], - "markers": "python_version >= '3.6'", - "version": "==2022.9.14" + "index": "pypi", + "version": "==2022.12.7" }, "cffi": { "hashes": [ @@ -145,7 +145,7 @@ "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845", "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==2.1.1" }, "colorama": { @@ -166,34 +166,34 @@ }, "cryptography": { "hashes": [ - "sha256:0297ffc478bdd237f5ca3a7dc96fc0d315670bfa099c04dc3a4a2172008a405a", - "sha256:10d1f29d6292fc95acb597bacefd5b9e812099d75a6469004fd38ba5471a977f", - "sha256:16fa61e7481f4b77ef53991075de29fc5bacb582a1244046d2e8b4bb72ef66d0", - "sha256:194044c6b89a2f9f169df475cc167f6157eb9151cc69af8a2a163481d45cc407", - "sha256:1db3d807a14931fa317f96435695d9ec386be7b84b618cc61cfa5d08b0ae33d7", - "sha256:3261725c0ef84e7592597606f6583385fed2a5ec3909f43bc475ade9729a41d6", - "sha256:3b72c360427889b40f36dc214630e688c2fe03e16c162ef0aa41da7ab1455153", - "sha256:3e3a2599e640927089f932295a9a247fc40a5bdf69b0484532f530471a382750", - "sha256:3fc26e22840b77326a764ceb5f02ca2d342305fba08f002a8c1f139540cdfaad", - "sha256:5067ee7f2bce36b11d0e334abcd1ccf8c541fc0bbdaf57cdd511fdee53e879b6", - "sha256:52e7bee800ec869b4031093875279f1ff2ed12c1e2f74923e8f49c916afd1d3b", - "sha256:64760ba5331e3f1794d0bcaabc0d0c39e8c60bf67d09c93dc0e54189dfd7cfe5", - "sha256:765fa194a0f3372d83005ab83ab35d7c5526c4e22951e46059b8ac678b44fa5a", - "sha256:79473cf8a5cbc471979bd9378c9f425384980fcf2ab6534b18ed7d0d9843987d", - "sha256:896dd3a66959d3a5ddcfc140a53391f69ff1e8f25d93f0e2e7830c6de90ceb9d", - "sha256:89ed49784ba88c221756ff4d4755dbc03b3c8d2c5103f6d6b4f83a0fb1e85294", - "sha256:ac7e48f7e7261207d750fa7e55eac2d45f720027d5703cd9007e9b37bbb59ac0", - "sha256:ad7353f6ddf285aeadfaf79e5a6829110106ff8189391704c1d8801aa0bae45a", - "sha256:b0163a849b6f315bf52815e238bc2b2346604413fa7c1601eea84bcddb5fb9ac", - "sha256:b6c9b706316d7b5a137c35e14f4103e2115b088c412140fdbd5f87c73284df61", - "sha256:c2e5856248a416767322c8668ef1845ad46ee62629266f84a8f007a317141013", - "sha256:ca9f6784ea96b55ff41708b92c3f6aeaebde4c560308e5fbbd3173fbc466e94e", - "sha256:d1a5bd52d684e49a36582193e0b89ff267704cd4025abefb9e26803adeb3e5fb", - "sha256:d3971e2749a723e9084dd507584e2a2761f78ad2c638aa31e80bc7a15c9db4f9", - "sha256:d4ef6cc305394ed669d4d9eebf10d3a101059bdcf2669c366ec1d14e4fb227bd", - "sha256:d9e69ae01f99abe6ad646947bba8941e896cb3aa805be2597a0400e0764b5818" - ], - "version": "==38.0.1" + "sha256:0e70da4bdff7601b0ef48e6348339e490ebfb0cbe638e083c9c41fb49f00c8bd", + "sha256:10652dd7282de17990b88679cb82f832752c4e8237f0c714be518044269415db", + "sha256:175c1a818b87c9ac80bb7377f5520b7f31b3ef2a0004e2420319beadedb67290", + "sha256:1d7e632804a248103b60b16fb145e8df0bc60eed790ece0d12efe8cd3f3e7744", + "sha256:1f13ddda26a04c06eb57119caf27a524ccae20533729f4b1e4a69b54e07035eb", + "sha256:2ec2a8714dd005949d4019195d72abed84198d877112abb5a27740e217e0ea8d", + "sha256:2fa36a7b2cc0998a3a4d5af26ccb6273f3df133d61da2ba13b3286261e7efb70", + "sha256:2fb481682873035600b5502f0015b664abc26466153fab5c6bc92c1ea69d478b", + "sha256:3178d46f363d4549b9a76264f41c6948752183b3f587666aff0555ac50fd7876", + "sha256:4367da5705922cf7070462e964f66e4ac24162e22ab0a2e9d31f1b270dd78083", + "sha256:4eb85075437f0b1fd8cd66c688469a0c4119e0ba855e3fef86691971b887caf6", + "sha256:50a1494ed0c3f5b4d07650a68cd6ca62efe8b596ce743a5c94403e6f11bf06c1", + "sha256:53049f3379ef05182864d13bb9686657659407148f901f3f1eee57a733fb4b00", + "sha256:6391e59ebe7c62d9902c24a4d8bcbc79a68e7c4ab65863536127c8a9cd94043b", + "sha256:67461b5ebca2e4c2ab991733f8ab637a7265bb582f07c7c88914b5afb88cb95b", + "sha256:78e47e28ddc4ace41dd38c42e6feecfdadf9c3be2af389abbfeef1ff06822285", + "sha256:80ca53981ceeb3241998443c4964a387771588c4e4a5d92735a493af868294f9", + "sha256:8a4b2bdb68a447fadebfd7d24855758fe2d6fecc7fed0b78d190b1af39a8e3b0", + "sha256:8e45653fb97eb2f20b8c96f9cd2b3a0654d742b47d638cf2897afbd97f80fa6d", + "sha256:998cd19189d8a747b226d24c0207fdaa1e6658a1d3f2494541cb9dfbf7dcb6d2", + "sha256:a10498349d4c8eab7357a8f9aa3463791292845b79597ad1b98a543686fb1ec8", + "sha256:b4cad0cea995af760f82820ab4ca54e5471fc782f70a007f31531957f43e9dee", + "sha256:bfe6472507986613dc6cc00b3d492b2f7564b02b3b3682d25ca7f40fa3fd321b", + "sha256:c9e0d79ee4c56d841bd4ac6e7697c8ff3c8d6da67379057f29e66acffcd1e9a7", + "sha256:ca57eb3ddaccd1112c18fc80abe41db443cc2e9dcb1917078e02dfa010a4f353", + "sha256:ce127dd0a6a0811c251a6cddd014d292728484e530d80e872ad9806cfb1c5b3c" + ], + "version": "==38.0.4" }, "discord-webhook": { "hashes": [ @@ -203,6 +203,14 @@ "index": "pypi", "version": "==0.16.3" }, + "exceptiongroup": { + "hashes": [ + "sha256:542adf9dea4055530d6e1279602fa5cb11dab2395fa650b8674eaec35fc4a828", + "sha256:bd14967b79cd9bdb54d97323216f8fdf533e278df937aa2a90089e7d6e06e5ec" + ], + "markers": "python_version < '3.11'", + "version": "==1.0.4" + }, "future": { "hashes": [ "sha256:b1bead90b70cf6ec3f0710ae53a525360fa360d306a86583adc6bf83a4db537d" @@ -234,11 +242,11 @@ }, "h11": { "hashes": [ - "sha256:70813c1135087a248a4d38cc0e1a0181ffab2188141a93eaf567940c3957ff06", - "sha256:8ddd78563b633ca55346c8cd41ec0af27d3c79931828beffb46ce70a379e7442" + "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d", + "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761" ], - "markers": "python_version >= '3.6'", - "version": "==0.13.0" + "markers": "python_version >= '3.7'", + "version": "==0.14.0" }, "idna": { "hashes": [ @@ -326,45 +334,45 @@ }, "numpy": { "hashes": [ - "sha256:004f0efcb2fe1c0bd6ae1fcfc69cc8b6bf2407e0f18be308612007a0762b4089", - "sha256:09f6b7bdffe57fc61d869a22f506049825d707b288039d30f26a0d0d8ea05164", - "sha256:0ea3f98a0ffce3f8f57675eb9119f3f4edb81888b6874bc1953f91e0b1d4f440", - "sha256:17c0e467ade9bda685d5ac7f5fa729d8d3e76b23195471adae2d6a6941bd2c18", - "sha256:1f27b5322ac4067e67c8f9378b41c746d8feac8bdd0e0ffede5324667b8a075c", - "sha256:22d43376ee0acd547f3149b9ec12eec2f0ca4a6ab2f61753c5b29bb3e795ac4d", - "sha256:2ad3ec9a748a8943e6eb4358201f7e1c12ede35f510b1a2221b70af4bb64295c", - "sha256:301c00cf5e60e08e04d842fc47df641d4a181e651c7135c50dc2762ffe293dbd", - "sha256:39a664e3d26ea854211867d20ebcc8023257c1800ae89773cbba9f9e97bae036", - "sha256:51bf49c0cd1d52be0a240aa66f3458afc4b95d8993d2d04f0d91fa60c10af6cd", - "sha256:78a63d2df1d947bd9d1b11d35564c2f9e4b57898aae4626638056ec1a231c40c", - "sha256:7cd1328e5bdf0dee621912f5833648e2daca72e3839ec1d6695e91089625f0b4", - "sha256:8355fc10fd33a5a70981a5b8a0de51d10af3688d7a9e4a34fcc8fa0d7467bb7f", - "sha256:8c79d7cf86d049d0c5089231a5bcd31edb03555bd93d81a16870aa98c6cfb79d", - "sha256:91b8d6768a75247026e951dce3b2aac79dc7e78622fc148329135ba189813584", - "sha256:94c15ca4e52671a59219146ff584488907b1f9b3fc232622b47e2cf832e94fb8", - "sha256:98dcbc02e39b1658dc4b4508442a560fe3ca5ca0d989f0df062534e5ca3a5c1a", - "sha256:a64403f634e5ffdcd85e0b12c08f04b3080d3e840aef118721021f9b48fc1460", - "sha256:bc6e8da415f359b578b00bcfb1d08411c96e9a97f9e6c7adada554a0812a6cc6", - "sha256:bdc9febce3e68b697d931941b263c59e0c74e8f18861f4064c1f712562903411", - "sha256:c1ba66c48b19cc9c2975c0d354f24058888cdc674bebadceb3cdc9ec403fb5d1", - "sha256:c9f707b5bb73bf277d812ded9896f9512a43edff72712f31667d0a8c2f8e71ee", - "sha256:d5422d6a1ea9b15577a9432e26608c73a78faf0b9039437b075cf322c92e98e7", - "sha256:e5d5420053bbb3dd64c30e58f9363d7a9c27444c3648e61460c1237f9ec3fa14", - "sha256:e868b0389c5ccfc092031a861d4e158ea164d8b7fdbb10e3b5689b4fc6498df6", - "sha256:efd9d3abe5774404becdb0748178b48a218f1d8c44e0375475732211ea47c67e", - "sha256:f8c02ec3c4c4fcb718fdf89a6c6f709b14949408e8cf2a2be5bfa9c49548fd85", - "sha256:ffcf105ecdd9396e05a8e58e81faaaf34d3f9875f137c7372450baa5d77c9a54" - ], - "markers": "python_version >= '3.8'", - "version": "==1.23.3" + "sha256:01dd17cbb340bf0fc23981e52e1d18a9d4050792e8fb8363cecbf066a84b827d", + "sha256:06005a2ef6014e9956c09ba07654f9837d9e26696a0470e42beedadb78c11b07", + "sha256:09b7847f7e83ca37c6e627682f145856de331049013853f344f37b0c9690e3df", + "sha256:0aaee12d8883552fadfc41e96b4c82ee7d794949e2a7c3b3a7201e968c7ecab9", + "sha256:0cbe9848fad08baf71de1a39e12d1b6310f1d5b2d0ea4de051058e6e1076852d", + "sha256:1b1766d6f397c18153d40015ddfc79ddb715cabadc04d2d228d4e5a8bc4ded1a", + "sha256:33161613d2269025873025b33e879825ec7b1d831317e68f4f2f0f84ed14c719", + "sha256:5039f55555e1eab31124a5768898c9e22c25a65c1e0037f4d7c495a45778c9f2", + "sha256:522e26bbf6377e4d76403826ed689c295b0b238f46c28a7251ab94716da0b280", + "sha256:56e454c7833e94ec9769fa0f86e6ff8e42ee38ce0ce1fa4cbb747ea7e06d56aa", + "sha256:58f545efd1108e647604a1b5aa809591ccd2540f468a880bedb97247e72db387", + "sha256:5e05b1c973a9f858c74367553e236f287e749465f773328c8ef31abe18f691e1", + "sha256:7903ba8ab592b82014713c491f6c5d3a1cde5b4a3bf116404e08f5b52f6daf43", + "sha256:8969bfd28e85c81f3f94eb4a66bc2cf1dbdc5c18efc320af34bffc54d6b1e38f", + "sha256:92c8c1e89a1f5028a4c6d9e3ccbe311b6ba53694811269b992c0b224269e2398", + "sha256:9c88793f78fca17da0145455f0d7826bcb9f37da4764af27ac945488116efe63", + "sha256:a7ac231a08bb37f852849bbb387a20a57574a97cfc7b6cabb488a4fc8be176de", + "sha256:abdde9f795cf292fb9651ed48185503a2ff29be87770c3b8e2a14b0cd7aa16f8", + "sha256:af1da88f6bc3d2338ebbf0e22fe487821ea4d8e89053e25fa59d1d79786e7481", + "sha256:b2a9ab7c279c91974f756c84c365a669a887efa287365a8e2c418f8b3ba73fb0", + "sha256:bf837dc63ba5c06dc8797c398db1e223a466c7ece27a1f7b5232ba3466aafe3d", + "sha256:ca51fcfcc5f9354c45f400059e88bc09215fb71a48d3768fb80e357f3b457e1e", + "sha256:ce571367b6dfe60af04e04a1834ca2dc5f46004ac1cc756fb95319f64c095a96", + "sha256:d208a0f8729f3fb790ed18a003f3a57895b989b40ea4dce4717e9cf4af62c6bb", + "sha256:dbee87b469018961d1ad79b1a5d50c0ae850000b639bcb1b694e9981083243b6", + "sha256:e9f4c4e51567b616be64e05d517c79a8a22f3606499941d97bb76f2ca59f982d", + "sha256:f063b69b090c9d918f9df0a12116029e274daf0181df392839661c4c7ec9018a", + "sha256:f9a909a8bae284d46bbfdefbdd4a262ba19d3bc9921b1e76126b1d21c3c34135" + ], + "markers": "python_version < '3.10' and platform_machine != 'aarch64' and platform_machine != 'arm64'", + "version": "==1.23.5" }, "oauthlib": { "hashes": [ - "sha256:1565237372795bf6ee3e5aba5e2a85bd5a65d0e2aa5c628b9a97b7d7a0da3721", - "sha256:88e912ca1ad915e1dcc1c06fc9259d19de8deacd6fd17cc2df266decc2e49066" + "sha256:8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca", + "sha256:9859c40929662bec5d64f34d01c99e093149682a3f38915dc0655d5a633dd918" ], - "index": "pypi", - "version": "==3.2.1" + "markers": "python_full_version >= '3.6.0'", + "version": "==3.2.2" }, "opensky-api": { "editable": true, @@ -512,10 +520,10 @@ }, "pyopenssl": { "hashes": [ - "sha256:660b1b1425aac4a1bea1d94168a85d99f0b3144c869dd4390d27629d0087f1bf", - "sha256:ea252b38c87425b64116f808355e8da644ef9b07e429398bfece610f893ee2e0" + "sha256:7a83b7b272dd595222d672f5ce29aa030f1fb837630ef229f62e72e395ce8968", + "sha256:b28437c9773bb6c6958628cf9c3bebe585de661dba6f63df17111966363dd15e" ], - "version": "==22.0.0" + "version": "==22.1.0" }, "pyproj": { "hashes": [ @@ -582,11 +590,11 @@ }, "python-slugify": { "hashes": [ - "sha256:272d106cb31ab99b3496ba085e3fea0e9e76dcde967b5e9992500d1f785ce4e1", - "sha256:7b2c274c308b62f4269a9ba701aa69a797e9bca41aeee5b3a9e79e36b6656927" + "sha256:003aee64f9fd955d111549f96c4b58a3f40b9319383c70fad6277a4974bbf570", + "sha256:7a0f21a39fa6c1c4bf2e5984c9b9ae944483fd10b54804cb0e23a3ccd4954f0b" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", - "version": "==6.1.2" + "markers": "python_version >= '3.7'", + "version": "==7.0.0" }, "python-telegram-bot": { "hashes": [ @@ -644,11 +652,11 @@ }, "setuptools": { "hashes": [ - "sha256:2e24e0bec025f035a2e72cdd1961119f557d78ad331bb00ff82efb2ab8da8e82", - "sha256:7732871f4f7fa58fb6bdcaeadb0161b2bd046c85905dbaa066bdcbcc81953b57" + "sha256:57f6f22bde4e042978bcd50176fdb381d7c21a9efa4041202288d3737a0c6a54", + "sha256:a7620757bf984b58deaf32fc8a4577a9bbc0850cf92c20e1ce41c38c19e5fb75" ], "markers": "python_version >= '3.7'", - "version": "==65.3.0" + "version": "==65.6.3" }, "shapely": { "hashes": [ @@ -718,7 +726,7 @@ "sha256:3b2503d3c7084a42b1ebd08116e5f81aadfaea95863628c80a3b774a11b7c759", "sha256:fc53893b3da2c33de295667a0e19f078c14bf86544af307354de5fcf12a3f30d" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==2.3.2.post1" }, "svgwrite": { @@ -726,7 +734,7 @@ "sha256:a8fbdfd4443302a6619a7f76bc937fc683daf2628d9b737c891ec08b8ce524c3", "sha256:bb6b2b5450f1edbfa597d924f9ac2dd099e625562e492021d7dd614f65f8a22d" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==1.4.3" }, "tabulate": { @@ -764,11 +772,11 @@ }, "trio": { "hashes": [ - "sha256:4dc0bf9d5cc78767fc4516325b6d80cc0968705a31d0eec2ecd7cdda466265b0", - "sha256:523f39b7b69eef73501cebfe1aafd400a9aad5b03543a0eded52952488ff1c13" + "sha256:ce68f1c5400a47b137c5a4de72c7c901bd4e7a24fbdebfe9b41de8c6c04eaacf", + "sha256:f1dd0780a89bfc880c7c7994519cb53f62aacb2c25ff487001c0052bd721cdf0" ], "markers": "python_version >= '3.7'", - "version": "==0.21.0" + "version": "==0.22.0" }, "trio-websocket": { "hashes": [ @@ -788,18 +796,18 @@ }, "tzdata": { "hashes": [ - "sha256:21f4f0d7241572efa7f7a4fdabb052e61b55dc48274e6842697ccdf5253e5451", - "sha256:c3119520447d68ef3eb8187a55a4f44fa455f30eb1b4238fa5691ba094f2b05b" + "sha256:2b88858b0e3120792a3c0635c23daf36a7d7eeeca657c323da299d2094402a0d", + "sha256:fe5f866eddd8b96e9fcba978f8e503c909b19ea7efda11e52e39494bad3a7bfa" ], - "markers": "python_version >= '3.6'", - "version": "==2022.2" + "markers": "python_full_version >= '3.6.0'", + "version": "==2022.7" }, "tzlocal": { "hashes": [ "sha256:89885494684c929d9191c57aa27502afc87a579be5cdd3225c77c463ea043745", "sha256:ee5842fa3a795f023514ac2d801c4a81d1743bbe642e3940143326b3a00addd7" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==4.2" }, "urllib3": { @@ -808,11 +816,11 @@ "socks" ], "hashes": [ - "sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e", - "sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997" + "sha256:47cc05d99aaa09c9e72ed5809b60e7ba354e64b59c9c173ac3018642d8bb41fc", + "sha256:c083dd0dce68dbfbe1129d5271cb90f9447dea7d52097c6e0126120c521ddea8" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5' and python_version < '4'", - "version": "==1.26.12" + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", + "version": "==1.26.13" }, "urllib3-secure-extra": { "hashes": [ @@ -831,11 +839,11 @@ }, "websocket-client": { "hashes": [ - "sha256:398909eb7e261f44b8f4bd474785b6ec5f5b499d4953342fe9755e01ef624090", - "sha256:f9611eb65c8241a67fb373bef040b3cf8ad377a9f6546a12b620b6511e8ea9ef" + "sha256:d6b06432f184438d99ac1f456eaf22fe1ade524c3dd16e661142dc54e9cba574", + "sha256:d6e8f90ca8e2dd4e8027c4561adeb9456b54044312dba655e7cae652ceb9ae59" ], "markers": "python_version >= '3.7'", - "version": "==1.4.1" + "version": "==1.4.2" }, "wsproto": { "hashes": [ From 689251c1b8e1c79672ae1793b49a2901e8060a7b Mon Sep 17 00:00:00 2001 From: Mark Bumiller Date: Mon, 12 Dec 2022 07:01:41 -0500 Subject: [PATCH 40/70] fixing conditional logic --- __main__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/__main__.py b/__main__.py index 1b8e18a..1040251 100644 --- a/__main__.py +++ b/__main__.py @@ -196,8 +196,8 @@ try: plane = planes[icao] plane_info = pull_rpdadsbx(icao) if plane_info: - data_indexed[icao.upper()] = plane_info['ac'][0] - if data_indexed[icao.upper()]: + if plane_info['ac']: + data_indexed[icao.upper()] = plane_info['ac'][0] plane.run_adsbx_v2(data_indexed[icao.upper()]) else: plane.run_empty() From 0ee71ee2ccc41a874d6a82c9aea6b96e0a94fa95 Mon Sep 17 00:00:00 2001 From: kk6fut Date: Wed, 14 Dec 2022 08:46:03 -0800 Subject: [PATCH 41/70] Initial config and mastodon connectors --- configs/mainconf.ini.example | 9 +++++++- defMastodon.py | 40 ++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 defMastodon.py diff --git a/configs/mainconf.ini.example b/configs/mainconf.ini.example index 114b869..bebdbc7 100644 --- a/configs/mainconf.ini.example +++ b/configs/mainconf.ini.example @@ -61,4 +61,11 @@ CONSUMER_SECRET = cs [MAP] #Map to create from Google Static Maps or screenshot global tar1090 from globe.adsbexchange.com #Enter GOOGLESTATICMAP or ADSBX -OPTION = ADSBX \ No newline at end of file +OPTION = ADSBX + +[MASTODON] +ENABLE = TRUE +ACCESS_TOKEN = mastodonaccesstoken +APP_URL = mastodonappurl +MAX_IMAGE_SIZE = maximagesizeformastodonserver + diff --git a/defMastodon.py b/defMastodon.py new file mode 100644 index 0000000..de6343d --- /dev/null +++ b/defMastodon.py @@ -0,0 +1,40 @@ +def sendMastodon(photo, message, config): + from mastodon import Mastodon + sent = False + retry_c = 0 + while sent == False: + try: + bot = Mastodon( + access_token=config.get['MASTODON']['ACCESS_TOKEN'], + api_base_url=config.get['MASTODON']['APP_URL'] + ) + #todo: add photo/image processing here, Mastodon has strict image sizing requirements + mediaid = mastodonBot.media_post(photo, mime_type="image/jpeg") + sent = mastodonBot.status_post(message,None,mediaid,False, feedvisibility) + except Exception as err: + print('err.args:') + print(err.args) + print(f"Unexpected {err=}, {type(err)=}") + print("\nString err:\n"+str(err)) + if retry_c > 4: + print('Telegram attempts exceeded. Message not sent.') + break + elif str(err) == 'Unauthorized': + print('Invalid Mastodon bot token, message not sent.') + break + elif str(err) == 'Timed out': + retry_c += 1 + print('Mastodon timeout count: '+str(retry_c)) + pass + elif str(err)[:35] == '[Errno 2] No such file or directory': + print('Mastodon module couldn\'t find an image to send.') + break + elif str(err) == 'Media_caption_too_long': + print('Mastodon image caption lenght exceeds 1024 characters. Message not send.') + break + else: + print('[X] Unknown error. Message not sent.') + break + else: + print("Mastodon message successfully sent.") + return sent From 4963c8b15eb1b99fcbe449c8fc7b1aefc549afa5 Mon Sep 17 00:00:00 2001 From: kk6fut Date: Wed, 14 Dec 2022 08:49:05 -0800 Subject: [PATCH 42/70] Plug in Mastodon section --- planeClass.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/planeClass.py b/planeClass.py index 4b24edf..9baf884 100644 --- a/planeClass.py +++ b/planeClass.py @@ -463,6 +463,11 @@ class Plane: from defTelegram import sendTeleg photo = open(self.map_file_name, "rb") sendTeleg(photo, message, self.config) + #Mastodon + if self.config.has_section('MASTODON') and self.config.getboolean('MASTODON', 'ENABLE'): + from defMastodon import sendMastodon + sendMastodon(self.map_file_name, message, self.config) + #Discord if self.config.getboolean('DISCORD', 'ENABLE'): role_id = self.config.get('DISCORD', 'ROLE_ID') if self.config.has_option('DISCORD', 'ROLE_ID') and self.config.get('DISCORD', 'ROLE_ID').strip() != "" else None @@ -880,4 +885,4 @@ class Plane: print(time_since_ra) if time_since_ra.seconds >= 600: print(ra_type) - self.recent_ra_types.pop(ra_type) \ No newline at end of file + self.recent_ra_types.pop(ra_type) From f12b86facb74ef55a1f85f807019aeb1bfe3ee25 Mon Sep 17 00:00:00 2001 From: kk6fut Date: Wed, 14 Dec 2022 18:44:12 -0800 Subject: [PATCH 43/70] Needed additional account config (per-plane) --- configs/plane1.ini.example | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/configs/plane1.ini.example b/configs/plane1.ini.example index 5c2a8f1..ff3d03b 100644 --- a/configs/plane1.ini.example +++ b/configs/plane1.ini.example @@ -51,4 +51,11 @@ ACCESS_TOKEN = ENABLE = FALSE TITLE = Title Of Telegram message ROOM_ID = -100xxxxxxxxxx -BOT_TOKEN = xxxxxxxxxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \ No newline at end of file +BOT_TOKEN = xxxxxxxxxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + +[MASTODON] +ENABLE = TRUE +ACCESS_TOKEN = mastodonaccesstoken +APP_URL = mastodonappurl +MAX_IMAGE_SIZE = maximagesize + From 0769cfe775b5bc03c345bba3cce726e0124ecebf Mon Sep 17 00:00:00 2001 From: kk6fut Date: Wed, 14 Dec 2022 19:57:22 -0800 Subject: [PATCH 44/70] Fix variable name in bot --- defMastodon.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/defMastodon.py b/defMastodon.py index de6343d..fd514e9 100644 --- a/defMastodon.py +++ b/defMastodon.py @@ -9,8 +9,8 @@ def sendMastodon(photo, message, config): api_base_url=config.get['MASTODON']['APP_URL'] ) #todo: add photo/image processing here, Mastodon has strict image sizing requirements - mediaid = mastodonBot.media_post(photo, mime_type="image/jpeg") - sent = mastodonBot.status_post(message,None,mediaid,False, feedvisibility) + mediaid = bot.media_post(photo, mime_type="image/jpeg") + sent = bot.status_post(message,None,mediaid,False, "Public") except Exception as err: print('err.args:') print(err.args) From 07b153538b2950146374236243b59ed14d73b351 Mon Sep 17 00:00:00 2001 From: kk6fut Date: Wed, 14 Dec 2022 20:19:50 -0800 Subject: [PATCH 45/70] Fix to get Mastodon connector working, tested. --- configs/plane1.ini.example | 1 - defMastodon.py | 7 +++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/configs/plane1.ini.example b/configs/plane1.ini.example index ff3d03b..00be1d0 100644 --- a/configs/plane1.ini.example +++ b/configs/plane1.ini.example @@ -57,5 +57,4 @@ BOT_TOKEN = xxxxxxxxxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ENABLE = TRUE ACCESS_TOKEN = mastodonaccesstoken APP_URL = mastodonappurl -MAX_IMAGE_SIZE = maximagesize diff --git a/defMastodon.py b/defMastodon.py index fd514e9..ecf5ae2 100644 --- a/defMastodon.py +++ b/defMastodon.py @@ -5,10 +5,9 @@ def sendMastodon(photo, message, config): while sent == False: try: bot = Mastodon( - access_token=config.get['MASTODON']['ACCESS_TOKEN'], - api_base_url=config.get['MASTODON']['APP_URL'] + access_token=config.get('MASTODON','ACCESS_TOKEN'), + api_base_url=config.get('MASTODON','APP_URL') ) - #todo: add photo/image processing here, Mastodon has strict image sizing requirements mediaid = bot.media_post(photo, mime_type="image/jpeg") sent = bot.status_post(message,None,mediaid,False, "Public") except Exception as err: @@ -17,7 +16,7 @@ def sendMastodon(photo, message, config): print(f"Unexpected {err=}, {type(err)=}") print("\nString err:\n"+str(err)) if retry_c > 4: - print('Telegram attempts exceeded. Message not sent.') + print('Mastodon attempts exceeded. Message not sent.') break elif str(err) == 'Unauthorized': print('Invalid Mastodon bot token, message not sent.') From 1e56b26b35f35390d14886ddaf75253a93fc1806 Mon Sep 17 00:00:00 2001 From: kk6fut Date: Wed, 14 Dec 2022 20:29:14 -0800 Subject: [PATCH 46/70] Fix missing prerequisites in install instructions --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 1de6e6c..060da98 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,9 @@ pip install pipenv pipenv install ``` +### Install tabulate for table display +pip3 install tabulate + ### 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 overused(No tutorial use to get to a key). @@ -51,6 +54,10 @@ sudo apt-get install chromium ``` These output methods once installed can be configured in the planes config you create, using the example plane1.ini +### Install webdriver_manager, required for managing web browser + +pip3 install webdriver_manager + ### Install Screen to run in the background ```bash From 4da00ced5f7a7684fe45f0403e041d86b1a16021 Mon Sep 17 00:00:00 2001 From: Mark Bumiller Date: Thu, 15 Dec 2022 15:02:28 -0500 Subject: [PATCH 47/70] don't uppercase password fixes Jxck-S/plane-notify#87 --- defOpenSky.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/defOpenSky.py b/defOpenSky.py index 7b84e8b..61503a4 100644 --- a/defOpenSky.py +++ b/defOpenSky.py @@ -4,7 +4,7 @@ def pull_opensky(planes): main_config.read('./configs/mainconf.ini') from opensky_api import OpenSkyApi planeData = None - opens_api = OpenSkyApi(username= None if main_config.get('OPENSKY', 'USERNAME').upper() == "NONE" else main_config.get('OPENSKY', 'USERNAME'), password= None if main_config.get('OPENSKY', 'PASSWORD').upper() == "NONE" else main_config.get('OPENSKY', 'PASSWORD').upper()) + opens_api = OpenSkyApi(username= None if main_config.get('OPENSKY', 'USERNAME').upper() == "NONE" else main_config.get('OPENSKY', 'USERNAME'), password= None if main_config.get('OPENSKY', 'PASSWORD').upper() == "NONE" else main_config.get('OPENSKY', 'PASSWORD')) failed = False icao_array = [] for key in planes.keys(): From 133fa18920c50d075f4366e9462b53600186be32 Mon Sep 17 00:00:00 2001 From: Mark Bumiller Date: Thu, 15 Dec 2022 15:06:08 -0500 Subject: [PATCH 48/70] format fixes --- defOpenSky.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/defOpenSky.py b/defOpenSky.py index 61503a4..551e164 100644 --- a/defOpenSky.py +++ b/defOpenSky.py @@ -4,7 +4,9 @@ def pull_opensky(planes): main_config.read('./configs/mainconf.ini') from opensky_api import OpenSkyApi planeData = None - opens_api = OpenSkyApi(username= None if main_config.get('OPENSKY', 'USERNAME').upper() == "NONE" else main_config.get('OPENSKY', 'USERNAME'), password= None if main_config.get('OPENSKY', 'PASSWORD').upper() == "NONE" else main_config.get('OPENSKY', 'PASSWORD')) + opens_api = OpenSkyApi( + username= None if main_config.get('OPENSKY', 'USERNAME').upper() == "NONE" else main_config.get('OPENSKY', 'USERNAME'), + password= None if main_config.get('OPENSKY', 'PASSWORD').upper() == "NONE" else main_config.get('OPENSKY', 'PASSWORD')) failed = False icao_array = [] for key in planes.keys(): From 006de6f86ac6a1ca896258a3a6fdb41f3976bde5 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Tue, 20 Dec 2022 07:46:59 +0100 Subject: [PATCH 49/70] Fix typos --- configs/mainconf.ini.example | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/configs/mainconf.ini.example b/configs/mainconf.ini.example index 114b869..3e57b4d 100644 --- a/configs/mainconf.ini.example +++ b/configs/mainconf.ini.example @@ -2,7 +2,7 @@ #Source to pull data from #SHOULD BE ADSBX which is ADS-B Exchange or OPENS which is OpenSky #By default configured with OpenSky which anyone can use without a login -#ADS-B Exchange has better data but is not avalible unless you feed their network or pay. +#ADS-B Exchange has better data but is not available unless you feed their network or pay. SOURCE = RpdADSBX #Default amount of time after data loss to trigger a landing when under 10k ft DATA_LOSS_MINS = 5 @@ -33,7 +33,7 @@ PASSWORD = None API_KEY = none API_VERSION = 2 -#Define the delay interval in seconds between each data request. This is usefull if you have limited requests in the API. +#Define the delay interval in seconds between each data request. This is useful if you have limited requests in the API. [SLEEP] SLEEPSEC = 60 @@ -41,7 +41,7 @@ SLEEPSEC = 60 #API KEY for Google Static Maps only if you using this on any of the planes. API_KEY = googleapikey -#Used for failover messages and program exits notifcation +#Used for failover messages and program exits notification [DISCORD] ENABLE = FALSE USERNAME = usernamehere @@ -61,4 +61,4 @@ CONSUMER_SECRET = cs [MAP] #Map to create from Google Static Maps or screenshot global tar1090 from globe.adsbexchange.com #Enter GOOGLESTATICMAP or ADSBX -OPTION = ADSBX \ No newline at end of file +OPTION = ADSBX From 775809b7dad6ff7738e084355e6337d390fb6e50 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Tue, 20 Dec 2022 07:53:16 +0100 Subject: [PATCH 50/70] Fix typo --- defTelegram.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/defTelegram.py b/defTelegram.py index d56378c..d5da824 100644 --- a/defTelegram.py +++ b/defTelegram.py @@ -28,11 +28,11 @@ def sendTeleg(photo, message, config): print('Telegram module couldn\'t find an image to send.') break elif str(err) == 'Media_caption_too_long': - print('Telegram image caption lenght exceeds 1024 characters. Message not send.') + print('Telegram image caption length exceeds 1024 characters. Message not send.') break else: print('[X] Unknown Telegram error. Message not sent.') break else: print("Telegram message successfully sent.") - return sent \ No newline at end of file + return sent From c4baf315d12cb16e92fb621c263605c741b2a076 Mon Sep 17 00:00:00 2001 From: Jack Sweeney Date: Wed, 21 Dec 2022 23:17:14 -0500 Subject: [PATCH 51/70] New Discord Link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1de6e6c..f7c3385 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ I made this program so I could track Elon Musk's Jet and share his whereabouts w ### Contributing -I'm open to any help or suggestions, I realize there are many better ways to improve this program and better ways to get this program to work properly, I'm only a noob. I'll accept pull requests. If you'd like to discuss join +I'm open to any help or suggestions, I realize there are many better ways to improve this program and better ways to get this program to work properly, I'm only a noob. I'll accept pull requests. If you'd like to discuss join ### [Algorithm](PseudoCode.md) From f5cdc795cd6279e24a8a9ad7a4824a00ae908006 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 22 Dec 2022 04:57:57 +0000 Subject: [PATCH 52/70] Bump pillow from 9.2.0 to 9.3.0 Bumps [pillow](https://github.com/python-pillow/Pillow) from 9.2.0 to 9.3.0. - [Release notes](https://github.com/python-pillow/Pillow/releases) - [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst) - [Commits](https://github.com/python-pillow/Pillow/compare/9.2.0...9.3.0) --- updated-dependencies: - dependency-name: pillow dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- Pipfile.lock | 203 ++++++++++++++++++++++++++------------------------- 1 file changed, 102 insertions(+), 101 deletions(-) diff --git a/Pipfile.lock b/Pipfile.lock index 9326f8c..245dc24 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -40,11 +40,11 @@ }, "attrs": { "hashes": [ - "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6", - "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c" + "sha256:29e95c7f6778868dbd49170f98f8818f78f3dc5e0e37c0b1f474e3561b240836", + "sha256:c9227bfc2f01993c03f68db37d1d15c9690188323c067c641f1a35ca58185f99" ], - "markers": "python_version >= '3.5'", - "version": "==22.1.0" + "markers": "python_version >= '3.6'", + "version": "==22.2.0" }, "beautifulsoup4": { "hashes": [ @@ -67,7 +67,7 @@ "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3", "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18" ], - "index": "pypi", + "markers": "python_version >= '3.6'", "version": "==2022.12.7" }, "cffi": { @@ -145,7 +145,7 @@ "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845", "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f" ], - "markers": "python_full_version >= '3.6.0'", + "markers": "python_version >= '3.6'", "version": "==2.1.1" }, "colorama": { @@ -334,44 +334,44 @@ }, "numpy": { "hashes": [ - "sha256:01dd17cbb340bf0fc23981e52e1d18a9d4050792e8fb8363cecbf066a84b827d", - "sha256:06005a2ef6014e9956c09ba07654f9837d9e26696a0470e42beedadb78c11b07", - "sha256:09b7847f7e83ca37c6e627682f145856de331049013853f344f37b0c9690e3df", - "sha256:0aaee12d8883552fadfc41e96b4c82ee7d794949e2a7c3b3a7201e968c7ecab9", - "sha256:0cbe9848fad08baf71de1a39e12d1b6310f1d5b2d0ea4de051058e6e1076852d", - "sha256:1b1766d6f397c18153d40015ddfc79ddb715cabadc04d2d228d4e5a8bc4ded1a", - "sha256:33161613d2269025873025b33e879825ec7b1d831317e68f4f2f0f84ed14c719", - "sha256:5039f55555e1eab31124a5768898c9e22c25a65c1e0037f4d7c495a45778c9f2", - "sha256:522e26bbf6377e4d76403826ed689c295b0b238f46c28a7251ab94716da0b280", - "sha256:56e454c7833e94ec9769fa0f86e6ff8e42ee38ce0ce1fa4cbb747ea7e06d56aa", - "sha256:58f545efd1108e647604a1b5aa809591ccd2540f468a880bedb97247e72db387", - "sha256:5e05b1c973a9f858c74367553e236f287e749465f773328c8ef31abe18f691e1", - "sha256:7903ba8ab592b82014713c491f6c5d3a1cde5b4a3bf116404e08f5b52f6daf43", - "sha256:8969bfd28e85c81f3f94eb4a66bc2cf1dbdc5c18efc320af34bffc54d6b1e38f", - "sha256:92c8c1e89a1f5028a4c6d9e3ccbe311b6ba53694811269b992c0b224269e2398", - "sha256:9c88793f78fca17da0145455f0d7826bcb9f37da4764af27ac945488116efe63", - "sha256:a7ac231a08bb37f852849bbb387a20a57574a97cfc7b6cabb488a4fc8be176de", - "sha256:abdde9f795cf292fb9651ed48185503a2ff29be87770c3b8e2a14b0cd7aa16f8", - "sha256:af1da88f6bc3d2338ebbf0e22fe487821ea4d8e89053e25fa59d1d79786e7481", - "sha256:b2a9ab7c279c91974f756c84c365a669a887efa287365a8e2c418f8b3ba73fb0", - "sha256:bf837dc63ba5c06dc8797c398db1e223a466c7ece27a1f7b5232ba3466aafe3d", - "sha256:ca51fcfcc5f9354c45f400059e88bc09215fb71a48d3768fb80e357f3b457e1e", - "sha256:ce571367b6dfe60af04e04a1834ca2dc5f46004ac1cc756fb95319f64c095a96", - "sha256:d208a0f8729f3fb790ed18a003f3a57895b989b40ea4dce4717e9cf4af62c6bb", - "sha256:dbee87b469018961d1ad79b1a5d50c0ae850000b639bcb1b694e9981083243b6", - "sha256:e9f4c4e51567b616be64e05d517c79a8a22f3606499941d97bb76f2ca59f982d", - "sha256:f063b69b090c9d918f9df0a12116029e274daf0181df392839661c4c7ec9018a", - "sha256:f9a909a8bae284d46bbfdefbdd4a262ba19d3bc9921b1e76126b1d21c3c34135" + "sha256:0104d8adaa3a4cc60c2777cab5196593bf8a7f416eda133be1f3803dd0838886", + "sha256:0885d9a7666cafe5f9876c57bfee34226e2b2847bfb94c9505e18d81011e5401", + "sha256:12bba5561d8118981f2f1ff069ecae200c05d7b6c78a5cdac0911f74bc71cbd1", + "sha256:2f8e0df2ecc1928ef7256f18e309c9d6229b08b5be859163f5caa59c93d53646", + "sha256:4445f472b246cad6514cc09fbb5ecb7aab09ca2acc3c16f29f8dca6c468af501", + "sha256:4d01f7832fa319a36fd75ba10ea4027c9338ede875792f7bf617f4b45056fc3a", + "sha256:4f5e78b8b710cd7cd1a8145994cfffc6ddd5911669a437777d8cedfce6c83a98", + "sha256:667b5b1f6a352419e340f6475ef9930348ae5cb7fca15f2cc3afcb530823715e", + "sha256:6e73a1f4f5b74a42abb55bc2b3d869f1b38cbc8776da5f8b66bf110284f7a437", + "sha256:73cf2c5b5a07450f20a0c8e04d9955491970177dce8df8d6903bf253e53268e0", + "sha256:7ad6a024a32ee61d18f5b402cd02e9c0e22c0fb9dc23751991b3a16d209d972e", + "sha256:8b1ddfac6a82d4f3c8e99436c90b9c2c68c0bb14658d1684cdd00f05fab241f5", + "sha256:90075ef2c6ac6397d0035bcd8b298b26e481a7035f7a3f382c047eb9c3414db0", + "sha256:9387c7d6d50e8f8c31e7bfc034241e9c6f4b3eb5db8d118d6487047b922f82af", + "sha256:9af91f794d2d3007d91d749ebc955302889261db514eb24caef30e03e8ec1e41", + "sha256:ab11f6a7602cf8ea4c093e091938207de3068c5693a0520168ecf4395750f7ea", + "sha256:ac4fe68f1a5a18136acebd4eff91aab8bed00d1ef2fdb34b5d9192297ffbbdfc", + "sha256:ada6c1e9608ceadaf7020e1deea508b73ace85560a16f51bef26aecb93626a72", + "sha256:c4ab7c9711fe6b235e86487ca74c1b092a6dd59a3cb45b63241ea0a148501853", + "sha256:cec79ff3984b2d1d103183fc4a3361f5b55bbb66cb395cbf5a920a4bb1fd588d", + "sha256:cf8960f72997e56781eb1c2ea256a70124f92a543b384f89e5fb3503a308b1d3", + "sha256:d7f223554aba7280e6057727333ed357b71b7da7422d02ff5e91b857888c25d1", + "sha256:dbb0490f0a880700a6cc4d000384baf19c1f4df59fff158d9482d4dbbca2b239", + "sha256:e63d2157f9fc98cc178870db83b0e0c85acdadd598b134b00ebec9e0db57a01f", + "sha256:ec3e5e8172a0a6a4f3c2e7423d4a8434c41349141b04744b11a90e017a95bad5", + "sha256:f3c4a9a9f92734a4728ddbd331e0124eabbc968a0359a506e8e74a9b0d2d419b", + "sha256:f9168790149f917ad8e3cf5047b353fefef753bd50b07c547da0bdf30bc15d91", + "sha256:fe44e925c68fb5e8db1334bf30ac1a1b6b963b932a19cf41d2e899cf02f36aab" ], "markers": "python_version < '3.10' and platform_machine != 'aarch64' and platform_machine != 'arm64'", - "version": "==1.23.5" + "version": "==1.24.0" }, "oauthlib": { "hashes": [ "sha256:8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca", "sha256:9859c40929662bec5d64f34d01c99e093149682a3f38915dc0655d5a633dd918" ], - "markers": "python_full_version >= '3.6.0'", + "markers": "python_version >= '3.6'", "version": "==3.2.2" }, "opensky-api": { @@ -417,69 +417,70 @@ }, "pillow": { "hashes": [ - "sha256:0030fdbd926fb85844b8b92e2f9449ba89607231d3dd597a21ae72dc7fe26927", - "sha256:030e3460861488e249731c3e7ab59b07c7853838ff3b8e16aac9561bb345da14", - "sha256:0ed2c4ef2451de908c90436d6e8092e13a43992f1860275b4d8082667fbb2ffc", - "sha256:136659638f61a251e8ed3b331fc6ccd124590eeff539de57c5f80ef3a9594e58", - "sha256:13b725463f32df1bfeacbf3dd197fb358ae8ebcd8c5548faa75126ea425ccb60", - "sha256:1536ad017a9f789430fb6b8be8bf99d2f214c76502becc196c6f2d9a75b01b76", - "sha256:15928f824870535c85dbf949c09d6ae7d3d6ac2d6efec80f3227f73eefba741c", - "sha256:17d4cafe22f050b46d983b71c707162d63d796a1235cdf8b9d7a112e97b15bac", - "sha256:1802f34298f5ba11d55e5bb09c31997dc0c6aed919658dfdf0198a2fe75d5490", - "sha256:1cc1d2451e8a3b4bfdb9caf745b58e6c7a77d2e469159b0d527a4554d73694d1", - "sha256:1fd6f5e3c0e4697fa7eb45b6e93996299f3feee73a3175fa451f49a74d092b9f", - "sha256:254164c57bab4b459f14c64e93df11eff5ded575192c294a0c49270f22c5d93d", - "sha256:2ad0d4df0f5ef2247e27fc790d5c9b5a0af8ade9ba340db4a73bb1a4a3e5fb4f", - "sha256:2c58b24e3a63efd22554c676d81b0e57f80e0a7d3a5874a7e14ce90ec40d3069", - "sha256:2d33a11f601213dcd5718109c09a52c2a1c893e7461f0be2d6febc2879ec2402", - "sha256:336b9036127eab855beec9662ac3ea13a4544a523ae273cbf108b228ecac8437", - "sha256:337a74fd2f291c607d220c793a8135273c4c2ab001b03e601c36766005f36885", - "sha256:37ff6b522a26d0538b753f0b4e8e164fdada12db6c6f00f62145d732d8a3152e", - "sha256:3d1f14f5f691f55e1b47f824ca4fdcb4b19b4323fe43cc7bb105988cad7496be", - "sha256:408673ed75594933714482501fe97e055a42996087eeca7e5d06e33218d05aa8", - "sha256:4134d3f1ba5f15027ff5c04296f13328fecd46921424084516bdb1b2548e66ff", - "sha256:4ad2f835e0ad81d1689f1b7e3fbac7b01bb8777d5a985c8962bedee0cc6d43da", - "sha256:50dff9cc21826d2977ef2d2a205504034e3a4563ca6f5db739b0d1026658e004", - "sha256:510cef4a3f401c246cfd8227b300828715dd055463cdca6176c2e4036df8bd4f", - "sha256:5aed7dde98403cd91d86a1115c78d8145c83078e864c1de1064f52e6feb61b20", - "sha256:69bd1a15d7ba3694631e00df8de65a8cb031911ca11f44929c97fe05eb9b6c1d", - "sha256:6bf088c1ce160f50ea40764f825ec9b72ed9da25346216b91361eef8ad1b8f8c", - "sha256:6e8c66f70fb539301e064f6478d7453e820d8a2c631da948a23384865cd95544", - "sha256:727dd1389bc5cb9827cbd1f9d40d2c2a1a0c9b32dd2261db522d22a604a6eec9", - "sha256:74a04183e6e64930b667d321524e3c5361094bb4af9083db5c301db64cd341f3", - "sha256:75e636fd3e0fb872693f23ccb8a5ff2cd578801251f3a4f6854c6a5d437d3c04", - "sha256:7761afe0126d046974a01e030ae7529ed0ca6a196de3ec6937c11df0df1bc91c", - "sha256:7888310f6214f19ab2b6df90f3f06afa3df7ef7355fc025e78a3044737fab1f5", - "sha256:7b0554af24df2bf96618dac71ddada02420f946be943b181108cac55a7a2dcd4", - "sha256:7c7b502bc34f6e32ba022b4a209638f9e097d7a9098104ae420eb8186217ebbb", - "sha256:808add66ea764ed97d44dda1ac4f2cfec4c1867d9efb16a33d158be79f32b8a4", - "sha256:831e648102c82f152e14c1a0938689dbb22480c548c8d4b8b248b3e50967b88c", - "sha256:93689632949aff41199090eff5474f3990b6823404e45d66a5d44304e9cdc467", - "sha256:96b5e6874431df16aee0c1ba237574cb6dff1dcb173798faa6a9d8b399a05d0e", - "sha256:9a54614049a18a2d6fe156e68e188da02a046a4a93cf24f373bffd977e943421", - "sha256:a138441e95562b3c078746a22f8fca8ff1c22c014f856278bdbdd89ca36cff1b", - "sha256:a647c0d4478b995c5e54615a2e5360ccedd2f85e70ab57fbe817ca613d5e63b8", - "sha256:a9c9bc489f8ab30906d7a85afac4b4944a572a7432e00698a7239f44a44e6efb", - "sha256:ad2277b185ebce47a63f4dc6302e30f05762b688f8dc3de55dbae4651872cdf3", - "sha256:adabc0bce035467fb537ef3e5e74f2847c8af217ee0be0455d4fec8adc0462fc", - "sha256:b6d5e92df2b77665e07ddb2e4dbd6d644b78e4c0d2e9272a852627cdba0d75cf", - "sha256:bc431b065722a5ad1dfb4df354fb9333b7a582a5ee39a90e6ffff688d72f27a1", - "sha256:bdd0de2d64688ecae88dd8935012c4a72681e5df632af903a1dca8c5e7aa871a", - "sha256:c79698d4cd9318d9481d89a77e2d3fcaeff5486be641e60a4b49f3d2ecca4e28", - "sha256:cb6259196a589123d755380b65127ddc60f4c64b21fc3bb46ce3a6ea663659b0", - "sha256:d5b87da55a08acb586bad5c3aa3b86505f559b84f39035b233d5bf844b0834b1", - "sha256:dcd7b9c7139dc8258d164b55696ecd16c04607f1cc33ba7af86613881ffe4ac8", - "sha256:dfe4c1fedfde4e2fbc009d5ad420647f7730d719786388b7de0999bf32c0d9fd", - "sha256:ea98f633d45f7e815db648fd7ff0f19e328302ac36427343e4432c84432e7ff4", - "sha256:ec52c351b35ca269cb1f8069d610fc45c5bd38c3e91f9ab4cbbf0aebc136d9c8", - "sha256:eef7592281f7c174d3d6cbfbb7ee5984a671fcd77e3fc78e973d492e9bf0eb3f", - "sha256:f07f1f00e22b231dd3d9b9208692042e29792d6bd4f6639415d2f23158a80013", - "sha256:f3fac744f9b540148fa7715a435d2283b71f68bfb6d4aae24482a890aed18b59", - "sha256:fa768eff5f9f958270b081bb33581b4b569faabf8774726b283edb06617101dc", - "sha256:fac2d65901fb0fdf20363fbd345c01958a742f2dc62a8dd4495af66e3ff502a4" + "sha256:03150abd92771742d4a8cd6f2fa6246d847dcd2e332a18d0c15cc75bf6703040", + "sha256:073adb2ae23431d3b9bcbcff3fe698b62ed47211d0716b067385538a1b0f28b8", + "sha256:0b07fffc13f474264c336298d1b4ce01d9c5a011415b79d4ee5527bb69ae6f65", + "sha256:0b7257127d646ff8676ec8a15520013a698d1fdc48bc2a79ba4e53df792526f2", + "sha256:12ce4932caf2ddf3e41d17fc9c02d67126935a44b86df6a206cf0d7161548627", + "sha256:15c42fb9dea42465dfd902fb0ecf584b8848ceb28b41ee2b58f866411be33f07", + "sha256:18498994b29e1cf86d505edcb7edbe814d133d2232d256db8c7a8ceb34d18cef", + "sha256:1c7c8ae3864846fc95f4611c78129301e203aaa2af813b703c55d10cc1628535", + "sha256:22b012ea2d065fd163ca096f4e37e47cd8b59cf4b0fd47bfca6abb93df70b34c", + "sha256:276a5ca930c913f714e372b2591a22c4bd3b81a418c0f6635ba832daec1cbcfc", + "sha256:2e0918e03aa0c72ea56edbb00d4d664294815aa11291a11504a377ea018330d3", + "sha256:3033fbe1feb1b59394615a1cafaee85e49d01b51d54de0cbf6aa8e64182518a1", + "sha256:3168434d303babf495d4ba58fc22d6604f6e2afb97adc6a423e917dab828939c", + "sha256:32a44128c4bdca7f31de5be641187367fe2a450ad83b833ef78910397db491aa", + "sha256:3dd6caf940756101205dffc5367babf288a30043d35f80936f9bfb37f8355b32", + "sha256:40e1ce476a7804b0fb74bcfa80b0a2206ea6a882938eaba917f7a0f004b42502", + "sha256:41e0051336807468be450d52b8edd12ac60bebaa97fe10c8b660f116e50b30e4", + "sha256:4390e9ce199fc1951fcfa65795f239a8a4944117b5935a9317fb320e7767b40f", + "sha256:502526a2cbfa431d9fc2a079bdd9061a2397b842bb6bc4239bb176da00993812", + "sha256:51e0e543a33ed92db9f5ef69a0356e0b1a7a6b6a71b80df99f1d181ae5875636", + "sha256:57751894f6618fd4308ed8e0c36c333e2f5469744c34729a27532b3db106ee20", + "sha256:5d77adcd56a42d00cc1be30843d3426aa4e660cab4a61021dc84467123f7a00c", + "sha256:655a83b0058ba47c7c52e4e2df5ecf484c1b0b0349805896dd350cbc416bdd91", + "sha256:68943d632f1f9e3dce98908e873b3a090f6cba1cbb1b892a9e8d97c938871fbe", + "sha256:6c738585d7a9961d8c2821a1eb3dcb978d14e238be3d70f0a706f7fa9316946b", + "sha256:73bd195e43f3fadecfc50c682f5055ec32ee2c933243cafbfdec69ab1aa87cad", + "sha256:772a91fc0e03eaf922c63badeca75e91baa80fe2f5f87bdaed4280662aad25c9", + "sha256:77ec3e7be99629898c9a6d24a09de089fa5356ee408cdffffe62d67bb75fdd72", + "sha256:7db8b751ad307d7cf238f02101e8e36a128a6cb199326e867d1398067381bff4", + "sha256:801ec82e4188e935c7f5e22e006d01611d6b41661bba9fe45b60e7ac1a8f84de", + "sha256:82409ffe29d70fd733ff3c1025a602abb3e67405d41b9403b00b01debc4c9a29", + "sha256:828989c45c245518065a110434246c44a56a8b2b2f6347d1409c787e6e4651ee", + "sha256:829f97c8e258593b9daa80638aee3789b7df9da5cf1336035016d76f03b8860c", + "sha256:871b72c3643e516db4ecf20efe735deb27fe30ca17800e661d769faab45a18d7", + "sha256:89dca0ce00a2b49024df6325925555d406b14aa3efc2f752dbb5940c52c56b11", + "sha256:90fb88843d3902fe7c9586d439d1e8c05258f41da473952aa8b328d8b907498c", + "sha256:97aabc5c50312afa5e0a2b07c17d4ac5e865b250986f8afe2b02d772567a380c", + "sha256:9aaa107275d8527e9d6e7670b64aabaaa36e5b6bd71a1015ddd21da0d4e06448", + "sha256:9f47eabcd2ded7698106b05c2c338672d16a6f2a485e74481f524e2a23c2794b", + "sha256:a0a06a052c5f37b4ed81c613a455a81f9a3a69429b4fd7bb913c3fa98abefc20", + "sha256:ab388aaa3f6ce52ac1cb8e122c4bd46657c15905904b3120a6248b5b8b0bc228", + "sha256:ad58d27a5b0262c0c19b47d54c5802db9b34d38bbf886665b626aff83c74bacd", + "sha256:ae5331c23ce118c53b172fa64a4c037eb83c9165aba3a7ba9ddd3ec9fa64a699", + "sha256:af0372acb5d3598f36ec0914deed2a63f6bcdb7b606da04dc19a88d31bf0c05b", + "sha256:afa4107d1b306cdf8953edde0534562607fe8811b6c4d9a486298ad31de733b2", + "sha256:b03ae6f1a1878233ac620c98f3459f79fd77c7e3c2b20d460284e1fb370557d4", + "sha256:b0915e734b33a474d76c28e07292f196cdf2a590a0d25bcc06e64e545f2d146c", + "sha256:b4012d06c846dc2b80651b120e2cdd787b013deb39c09f407727ba90015c684f", + "sha256:b472b5ea442148d1c3e2209f20f1e0bb0eb556538690fa70b5e1f79fa0ba8dc2", + "sha256:b59430236b8e58840a0dfb4099a0e8717ffb779c952426a69ae435ca1f57210c", + "sha256:b90f7616ea170e92820775ed47e136208e04c967271c9ef615b6fbd08d9af0e3", + "sha256:b9a65733d103311331875c1dca05cb4606997fd33d6acfed695b1232ba1df193", + "sha256:bac18ab8d2d1e6b4ce25e3424f709aceef668347db8637c2296bcf41acb7cf48", + "sha256:bca31dd6014cb8b0b2db1e46081b0ca7d936f856da3b39744aef499db5d84d02", + "sha256:be55f8457cd1eac957af0c3f5ece7bc3f033f89b114ef30f710882717670b2a8", + "sha256:c7025dce65566eb6e89f56c9509d4f628fddcedb131d9465cacd3d8bac337e7e", + "sha256:c935a22a557a560108d780f9a0fc426dd7459940dc54faa49d83249c8d3e760f", + "sha256:dbb8e7f2abee51cef77673be97760abff1674ed32847ce04b4af90f610144c7b", + "sha256:e6ea6b856a74d560d9326c0f5895ef8050126acfdc7ca08ad703eb0081e82b74", + "sha256:ebf2029c1f464c59b8bdbe5143c79fa2045a581ac53679733d3a91d400ff9efb", + "sha256:f1ff2ee69f10f13a9596480335f406dd1f70c3650349e2be67ca3139280cade0" ], "index": "pypi", - "version": "==9.2.0" + "version": "==9.3.0" }, "pushbullet.py": { "hashes": [ @@ -726,7 +727,7 @@ "sha256:3b2503d3c7084a42b1ebd08116e5f81aadfaea95863628c80a3b774a11b7c759", "sha256:fc53893b3da2c33de295667a0e19f078c14bf86544af307354de5fcf12a3f30d" ], - "markers": "python_full_version >= '3.6.0'", + "markers": "python_version >= '3.6'", "version": "==2.3.2.post1" }, "svgwrite": { @@ -734,7 +735,7 @@ "sha256:a8fbdfd4443302a6619a7f76bc937fc683daf2628d9b737c891ec08b8ce524c3", "sha256:bb6b2b5450f1edbfa597d924f9ac2dd099e625562e492021d7dd614f65f8a22d" ], - "markers": "python_full_version >= '3.6.0'", + "markers": "python_version >= '3.6'", "version": "==1.4.3" }, "tabulate": { @@ -799,7 +800,7 @@ "sha256:2b88858b0e3120792a3c0635c23daf36a7d7eeeca657c323da299d2094402a0d", "sha256:fe5f866eddd8b96e9fcba978f8e503c909b19ea7efda11e52e39494bad3a7bfa" ], - "markers": "python_full_version >= '3.6.0'", + "markers": "python_version >= '3.6'", "version": "==2022.7" }, "tzlocal": { @@ -807,7 +808,7 @@ "sha256:89885494684c929d9191c57aa27502afc87a579be5cdd3225c77c463ea043745", "sha256:ee5842fa3a795f023514ac2d801c4a81d1743bbe642e3940143326b3a00addd7" ], - "markers": "python_full_version >= '3.6.0'", + "markers": "python_version >= '3.6'", "version": "==4.2" }, "urllib3": { From f305541a17b3bfe824fadef0b48f4864af2e1967 Mon Sep 17 00:00:00 2001 From: Jack Sweeney Date: Thu, 22 Dec 2022 21:33:47 -0500 Subject: [PATCH 53/70] Update mainconf.ini.example The main config does need the Mastodon info --- configs/mainconf.ini.example | 7 ------- 1 file changed, 7 deletions(-) diff --git a/configs/mainconf.ini.example b/configs/mainconf.ini.example index bebdbc7..54133c7 100644 --- a/configs/mainconf.ini.example +++ b/configs/mainconf.ini.example @@ -62,10 +62,3 @@ CONSUMER_SECRET = cs #Map to create from Google Static Maps or screenshot global tar1090 from globe.adsbexchange.com #Enter GOOGLESTATICMAP or ADSBX OPTION = ADSBX - -[MASTODON] -ENABLE = TRUE -ACCESS_TOKEN = mastodonaccesstoken -APP_URL = mastodonappurl -MAX_IMAGE_SIZE = maximagesizeformastodonserver - From bba2eb75a16630a4856cb450c612a982700a2079 Mon Sep 17 00:00:00 2001 From: Jack Sweeney Date: Thu, 22 Dec 2022 21:36:08 -0500 Subject: [PATCH 54/70] Update README.md Pip dependencies are managed with Pipfile and pipenv --- README.md | 7 ------- 1 file changed, 7 deletions(-) diff --git a/README.md b/README.md index 060da98..1de6e6c 100644 --- a/README.md +++ b/README.md @@ -40,9 +40,6 @@ pip install pipenv pipenv install ``` -### Install tabulate for table display -pip3 install tabulate - ### 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 overused(No tutorial use to get to a key). @@ -54,10 +51,6 @@ sudo apt-get install chromium ``` These output methods once installed can be configured in the planes config you create, using the example plane1.ini -### Install webdriver_manager, required for managing web browser - -pip3 install webdriver_manager - ### Install Screen to run in the background ```bash From 92a6f5808df7e1d048b958bc811231b0a48e3efd Mon Sep 17 00:00:00 2001 From: Jack Sweeney Date: Thu, 22 Dec 2022 21:38:36 -0500 Subject: [PATCH 55/70] Update planeClass.py Adds Mastodon circling messages --- planeClass.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/planeClass.py b/planeClass.py index 9baf884..ca9122c 100644 --- a/planeClass.py +++ b/planeClass.py @@ -821,6 +821,10 @@ class Plane: if self.config.has_option('META', 'ENABLE') and self.config.getboolean('META', 'ENABLE'): from meta_toolkit import post_to_meta_both post_to_meta_both(self.config.get("META", "FB_PAGE_ID"), self.config.get("META", "IG_USER_ID"), self.map_file_name, message, self.config.get("META", "ACCESS_TOKEN")) + #Mastodon + if self.config.has_section('MASTODON') and self.config.getboolean('MASTODON', 'ENABLE'): + from defMastodon import sendMastodon + sendMastodon(self.map_file_name, message, self.config) self.circle_history['triggered'] = True elif abs(total_change) <= 360 and self.circle_history["triggered"]: print("No Longer Circling, trigger cleared") From f5259ecae0293982985aa70d0193da50fdbaf843 Mon Sep 17 00:00:00 2001 From: Jack Sweeney Date: Thu, 22 Dec 2022 21:41:35 -0500 Subject: [PATCH 56/70] New README links and info --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f7c3385..cb944cb 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ Notify if configured planes have taken off or landed using Python with /etc/apt/sources.list.d/google.list +apt update +apt install google-chrome-stable ``` These output methods once installed can be configured in the planes config you create, using the example plane1.ini From cea7e5b32e64d98b93342b91834f11698f89191a Mon Sep 17 00:00:00 2001 From: Jack Sweeney Date: Thu, 22 Dec 2022 21:48:11 -0500 Subject: [PATCH 58/70] Fix link in README, remove old screenshot --- ExImages/PushbulletEX.png | Bin 35698 -> 0 bytes README.md | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 ExImages/PushbulletEX.png diff --git a/ExImages/PushbulletEX.png b/ExImages/PushbulletEX.png deleted file mode 100644 index ecd353abc96c8a0b692e13b70998261a715c881d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35698 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Π<2?zP9F4KSPN53)KZcbf}QW|mr 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 ZKVwnO#OMXmXJ#@0fv2mV%Q~loCIFqVAN>FT diff --git a/README.md b/README.md index 6227ad4..80b63f5 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ Notify if configured planes have taken off or landed using Python with = 600: print(ra_type) - self.recent_ra_types.pop(ra_type) + self.recent_ra_types.pop(ra_type) \ No newline at end of file From df9e60892b33286e2fe8976a9691f8eac7bd43ab Mon Sep 17 00:00:00 2001 From: Jack Sweeney Date: Fri, 23 Dec 2022 00:45:58 -0500 Subject: [PATCH 60/70] New Discord Examples --- ExImages/DiscordEX2.png | Bin 0 -> 213922 bytes ExImages/DiscordEX3.png | Bin 0 -> 229147 bytes README.md | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 ExImages/DiscordEX2.png create mode 100644 ExImages/DiscordEX3.png diff --git a/ExImages/DiscordEX2.png b/ExImages/DiscordEX2.png new file mode 100644 index 0000000000000000000000000000000000000000..97b58138f3637402eb1b63d68938980c01b3fe9d GIT binary patch literal 213922 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

|tHD$2=)}kA}_V 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

wmo3!hG~F8_qP=50&4mdM2;T6>8JKaDgBV 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�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®XQqt7 zGe2mZ^?n-GpqSH5T(XcA0|S{P3k?}1#BeYUfS|qiYShyr$5TiV+^(c<_hQMIN2d0q zQX>htT*tGUs{nGltknLG57Kty-hDm6%0-)+EtF}usp}reMJ4S%Y*?w;BB=Zs&e;{> zw|eS%LQw@fxSngYv-3@2a+R5d?~#)$CLJ&Yk$KZ0$U~JYBwo;m(MMwC3KlLF*7pM_ zLLsN8bm;Pnnvt+f`W{RMI!*W&j8j_e=O*WWy9l12vr(s`f&o*lJ1-USg?s>H?B5KX zs<2NY`M*!llq6B*LX6mn`7ucqA6uK6AT-w&2(Jr|1aAOWyVhkdFj@CV*f+Wit_Y_+J&D^tsYxm(6`_#=p?+U@vHp?{>Ielb z6-D6EP4#~5q#1qu@sKNI*SQlm$^9QIg9SzryP=FC{(Cs%>~qm^wj~yMhOr}IeW@fH z22)+H@En|e7Rl*D_1&-%sST029Ext-D)d_tlrF2YfEzj&6>gOVE)tB(<6V++Y$6DP zHFZ>@#N~BN8edJH8cJ7}N4eY(Ixd2bRHYEGBe-!QJZX!cf}zA;E8nM3`e1-s~wXg zLPyq?`iT<>U2mMFRfLxB;weHQmT5|@_Ri$=n}*+2_(p%zvN`Iirx}=p z+Y7N4P~tV%TK>{C7qY&q>fz+H?b1GofRwgI!LUaQ(BEb!;v&z0hqY!SQNr38SLT

#M1l0JYsN9+_9psp5zJLI{v$Rg_lTX`Ha;> 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

R04My;wpN{;yvg1 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�>*+yYunzjzeLd+iwT{&CvM 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 z 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 W<304aST|$qYk|1W_bMd0aOQX7de&t_vk{ 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 '3.5'", + "version": "==5.1.1" }, "discord-webhook": { "hashes": [ - "sha256:5a044a26ceea6e39651c2fa17194b463dc0b704b8b20991e8db3f3d86dd5e553", - "sha256:e9434e516a918e78915b5ce32b864d5b3f24556b92e1606bcad6a4f83f5615bd" + "sha256:b1ef5ae80ec9b28c978b7dbff07b9db2fd6597d728ac0524b27cd02336cedfca", + "sha256:b4bb897d32509c5bedc6e1c8485431e8ba81eff5bec28a969c9fe33552a08da4" ], "index": "pypi", - "version": "==0.16.3" + "version": "==1.0.0" }, "exceptiongroup": { "hashes": [ - "sha256:542adf9dea4055530d6e1279602fa5cb11dab2395fa650b8674eaec35fc4a828", - "sha256:bd14967b79cd9bdb54d97323216f8fdf533e278df937aa2a90089e7d6e06e5ec" + "sha256:327cbda3da756e2de031a3107b81ab7b3770a602c4d16ca618298c526f4bec1e", + "sha256:bcb67d800a4497e1b404c2dd44fca47d3b7a5e5433dbab67f96c1a685cdfdf23" ], "markers": "python_version < '3.11'", - "version": "==1.0.4" + "version": "==1.1.0" }, "future": { "hashes": [ @@ -227,18 +211,19 @@ }, "geographiclib": { "hashes": [ - "sha256:8f441c527b0b8a26cd96c965565ff0513d1e4d9952b704bf449409e5015c77b7", - "sha256:ac400d672b8954b0306bca890b088bb8ba2a757dc8133cca0b878f34b33b2740" + "sha256:6b7225248e45ff7edcee32becc4e0a1504c606ac5ee163a5656d482e0cd38734", + "sha256:f7f41c85dc3e1c2d3d935ec86660dc3b2c848c83e17f9a9e51ba9d5146a15859" ], - "version": "==1.52" + "markers": "python_version >= '3.7'", + "version": "==2.0" }, "geopy": { "hashes": [ - "sha256:58b7edf526b8c32e33126570b5f4fcdfaa29d4416506064777ae8d84cd103fdd", - "sha256:8f1f949082b964385de61fcc3a667a6a9a6e242beb1ae8972449f164b2ba0e89" + "sha256:228cd53b6eef699b2289d1172e462a90d5057779a10388a7366291812601187f", + "sha256:4a29a16d41d8e56ba8e07310802a1cbdf098eeb6069cc3d6d3068fc770629ffc" ], "index": "pypi", - "version": "==2.2.0" + "version": "==2.3.0" }, "h11": { "hashes": [ @@ -258,79 +243,94 @@ }, "lxml": { "hashes": [ - "sha256:04da965dfebb5dac2619cb90fcf93efdb35b3c6994fea58a157a834f2f94b318", - "sha256:0538747a9d7827ce3e16a8fdd201a99e661c7dee3c96c885d8ecba3c35d1032c", - "sha256:0645e934e940107e2fdbe7c5b6fb8ec6232444260752598bc4d09511bd056c0b", - "sha256:079b68f197c796e42aa80b1f739f058dcee796dc725cc9a1be0cdb08fc45b000", - "sha256:0f3f0059891d3254c7b5fb935330d6db38d6519ecd238ca4fce93c234b4a0f73", - "sha256:10d2017f9150248563bb579cd0d07c61c58da85c922b780060dcc9a3aa9f432d", - "sha256:1355755b62c28950f9ce123c7a41460ed9743c699905cbe664a5bcc5c9c7c7fb", - "sha256:13c90064b224e10c14dcdf8086688d3f0e612db53766e7478d7754703295c7c8", - "sha256:1423631e3d51008871299525b541413c9b6c6423593e89f9c4cfbe8460afc0a2", - "sha256:1436cf0063bba7888e43f1ba8d58824f085410ea2025befe81150aceb123e345", - "sha256:1a7c59c6ffd6ef5db362b798f350e24ab2cfa5700d53ac6681918f314a4d3b94", - "sha256:1e1cf47774373777936c5aabad489fef7b1c087dcd1f426b621fda9dcc12994e", - "sha256:206a51077773c6c5d2ce1991327cda719063a47adc02bd703c56a662cdb6c58b", - "sha256:21fb3d24ab430fc538a96e9fbb9b150029914805d551deeac7d7822f64631dfc", - "sha256:27e590352c76156f50f538dbcebd1925317a0f70540f7dc8c97d2931c595783a", - "sha256:287605bede6bd36e930577c5925fcea17cb30453d96a7b4c63c14a257118dbb9", - "sha256:2aaf6a0a6465d39b5ca69688fce82d20088c1838534982996ec46633dc7ad6cc", - "sha256:32a73c53783becdb7eaf75a2a1525ea8e49379fb7248c3eeefb9412123536387", - "sha256:41fb58868b816c202e8881fd0f179a4644ce6e7cbbb248ef0283a34b73ec73bb", - "sha256:4780677767dd52b99f0af1f123bc2c22873d30b474aa0e2fc3fe5e02217687c7", - "sha256:4878e667ebabe9b65e785ac8da4d48886fe81193a84bbe49f12acff8f7a383a4", - "sha256:487c8e61d7acc50b8be82bda8c8d21d20e133c3cbf41bd8ad7eb1aaeb3f07c97", - "sha256:4beea0f31491bc086991b97517b9683e5cfb369205dac0148ef685ac12a20a67", - "sha256:4cfbe42c686f33944e12f45a27d25a492cc0e43e1dc1da5d6a87cbcaf2e95627", - "sha256:4d5bae0a37af799207140652a700f21a85946f107a199bcb06720b13a4f1f0b7", - "sha256:4e285b5f2bf321fc0857b491b5028c5f276ec0c873b985d58d7748ece1d770dd", - "sha256:57e4d637258703d14171b54203fd6822fda218c6c2658a7d30816b10995f29f3", - "sha256:5974895115737a74a00b321e339b9c3f45c20275d226398ae79ac008d908bff7", - "sha256:5ef87fca280fb15342726bd5f980f6faf8b84a5287fcc2d4962ea8af88b35130", - "sha256:603a464c2e67d8a546ddaa206d98e3246e5db05594b97db844c2f0a1af37cf5b", - "sha256:6653071f4f9bac46fbc30f3c7838b0e9063ee335908c5d61fb7a4a86c8fd2036", - "sha256:6ca2264f341dd81e41f3fffecec6e446aa2121e0b8d026fb5130e02de1402785", - "sha256:6d279033bf614953c3fc4a0aa9ac33a21e8044ca72d4fa8b9273fe75359d5cca", - "sha256:6d949f53ad4fc7cf02c44d6678e7ff05ec5f5552b235b9e136bd52e9bf730b91", - "sha256:6daa662aba22ef3258934105be2dd9afa5bb45748f4f702a3b39a5bf53a1f4dc", - "sha256:6eafc048ea3f1b3c136c71a86db393be36b5b3d9c87b1c25204e7d397cee9536", - "sha256:830c88747dce8a3e7525defa68afd742b4580df6aa2fdd6f0855481e3994d391", - "sha256:86e92728ef3fc842c50a5cb1d5ba2bc66db7da08a7af53fb3da79e202d1b2cd3", - "sha256:8caf4d16b31961e964c62194ea3e26a0e9561cdf72eecb1781458b67ec83423d", - "sha256:8d1a92d8e90b286d491e5626af53afef2ba04da33e82e30744795c71880eaa21", - "sha256:8f0a4d179c9a941eb80c3a63cdb495e539e064f8054230844dcf2fcb812b71d3", - "sha256:9232b09f5efee6a495a99ae6824881940d6447debe272ea400c02e3b68aad85d", - "sha256:927a9dd016d6033bc12e0bf5dee1dde140235fc8d0d51099353c76081c03dc29", - "sha256:93e414e3206779ef41e5ff2448067213febf260ba747fc65389a3ddaa3fb8715", - "sha256:98cafc618614d72b02185ac583c6f7796202062c41d2eeecdf07820bad3295ed", - "sha256:9c3a88d20e4fe4a2a4a84bf439a5ac9c9aba400b85244c63a1ab7088f85d9d25", - "sha256:9f36de4cd0c262dd9927886cc2305aa3f2210db437aa4fed3fb4940b8bf4592c", - "sha256:a60f90bba4c37962cbf210f0188ecca87daafdf60271f4c6948606e4dabf8785", - "sha256:a614e4afed58c14254e67862456d212c4dcceebab2eaa44d627c2ca04bf86837", - "sha256:ae06c1e4bc60ee076292e582a7512f304abdf6c70db59b56745cca1684f875a4", - "sha256:b122a188cd292c4d2fcd78d04f863b789ef43aa129b233d7c9004de08693728b", - "sha256:b570da8cd0012f4af9fa76a5635cd31f707473e65a5a335b186069d5c7121ff2", - "sha256:bcaa1c495ce623966d9fc8a187da80082334236a2a1c7e141763ffaf7a405067", - "sha256:bd34f6d1810d9354dc7e35158aa6cc33456be7706df4420819af6ed966e85448", - "sha256:be9eb06489bc975c38706902cbc6888f39e946b81383abc2838d186f0e8b6a9d", - "sha256:c4b2e0559b68455c085fb0f6178e9752c4be3bba104d6e881eb5573b399d1eb2", - "sha256:c62e8dd9754b7debda0c5ba59d34509c4688f853588d75b53c3791983faa96fc", - "sha256:c852b1530083a620cb0de5f3cd6826f19862bafeaf77586f1aef326e49d95f0c", - "sha256:d9fc0bf3ff86c17348dfc5d322f627d78273eba545db865c3cd14b3f19e57fa5", - "sha256:dad7b164905d3e534883281c050180afcf1e230c3d4a54e8038aa5cfcf312b84", - "sha256:e5f66bdf0976ec667fc4594d2812a00b07ed14d1b44259d19a41ae3fff99f2b8", - "sha256:e8f0c9d65da595cfe91713bc1222af9ecabd37971762cb830dea2fc3b3bb2acf", - "sha256:edffbe3c510d8f4bf8640e02ca019e48a9b72357318383ca60e3330c23aaffc7", - "sha256:eea5d6443b093e1545ad0210e6cf27f920482bfcf5c77cdc8596aec73523bb7e", - "sha256:ef72013e20dd5ba86a8ae1aed7f56f31d3374189aa8b433e7b12ad182c0d2dfb", - "sha256:f05251bbc2145349b8d0b77c0d4e5f3b228418807b1ee27cefb11f69ed3d233b", - "sha256:f1be258c4d3dc609e654a1dc59d37b17d7fef05df912c01fc2e15eb43a9735f3", - "sha256:f9ced82717c7ec65a67667bb05865ffe38af0e835cdd78728f1209c8fffe0cad", - "sha256:fe17d10b97fdf58155f858606bddb4e037b805a60ae023c009f760d8361a4eb8", - "sha256:fe749b052bb7233fe5d072fcb549221a8cb1a16725c47c37e42b0b9cb3ff2c3f" + "sha256:01d36c05f4afb8f7c20fd9ed5badca32a2029b93b1750f571ccc0b142531caf7", + "sha256:04876580c050a8c5341d706dd464ff04fd597095cc8c023252566a8826505726", + "sha256:05ca3f6abf5cf78fe053da9b1166e062ade3fa5d4f92b4ed688127ea7d7b1d03", + "sha256:090c6543d3696cbe15b4ac6e175e576bcc3f1ccfbba970061b7300b0c15a2140", + "sha256:0dc313ef231edf866912e9d8f5a042ddab56c752619e92dfd3a2c277e6a7299a", + "sha256:0f2b1e0d79180f344ff9f321327b005ca043a50ece8713de61d1cb383fb8ac05", + "sha256:13598ecfbd2e86ea7ae45ec28a2a54fb87ee9b9fdb0f6d343297d8e548392c03", + "sha256:16efd54337136e8cd72fb9485c368d91d77a47ee2d42b057564aae201257d419", + "sha256:1ab8f1f932e8f82355e75dda5413a57612c6ea448069d4fb2e217e9a4bed13d4", + "sha256:223f4232855ade399bd409331e6ca70fb5578efef22cf4069a6090acc0f53c0e", + "sha256:2455cfaeb7ac70338b3257f41e21f0724f4b5b0c0e7702da67ee6c3640835b67", + "sha256:2899456259589aa38bfb018c364d6ae7b53c5c22d8e27d0ec7609c2a1ff78b50", + "sha256:2a29ba94d065945944016b6b74e538bdb1751a1db6ffb80c9d3c2e40d6fa9894", + "sha256:2a87fa548561d2f4643c99cd13131acb607ddabb70682dcf1dff5f71f781a4bf", + "sha256:2e430cd2824f05f2d4f687701144556646bae8f249fd60aa1e4c768ba7018947", + "sha256:36c3c175d34652a35475a73762b545f4527aec044910a651d2bf50de9c3352b1", + "sha256:3818b8e2c4b5148567e1b09ce739006acfaa44ce3156f8cbbc11062994b8e8dd", + "sha256:3ab9fa9d6dc2a7f29d7affdf3edebf6ece6fb28a6d80b14c3b2fb9d39b9322c3", + "sha256:3efea981d956a6f7173b4659849f55081867cf897e719f57383698af6f618a92", + "sha256:4c8f293f14abc8fd3e8e01c5bd86e6ed0b6ef71936ded5bf10fe7a5efefbaca3", + "sha256:5344a43228767f53a9df6e5b253f8cdca7dfc7b7aeae52551958192f56d98457", + "sha256:58bfa3aa19ca4c0f28c5dde0ff56c520fbac6f0daf4fac66ed4c8d2fb7f22e74", + "sha256:5b4545b8a40478183ac06c073e81a5ce4cf01bf1734962577cf2bb569a5b3bbf", + "sha256:5f50a1c177e2fa3ee0667a5ab79fdc6b23086bc8b589d90b93b4bd17eb0e64d1", + "sha256:63da2ccc0857c311d764e7d3d90f429c252e83b52d1f8f1d1fe55be26827d1f4", + "sha256:6749649eecd6a9871cae297bffa4ee76f90b4504a2a2ab528d9ebe912b101975", + "sha256:6804daeb7ef69e7b36f76caddb85cccd63d0c56dedb47555d2fc969e2af6a1a5", + "sha256:689bb688a1db722485e4610a503e3e9210dcc20c520b45ac8f7533c837be76fe", + "sha256:699a9af7dffaf67deeae27b2112aa06b41c370d5e7633e0ee0aea2e0b6c211f7", + "sha256:6b418afe5df18233fc6b6093deb82a32895b6bb0b1155c2cdb05203f583053f1", + "sha256:76cf573e5a365e790396a5cc2b909812633409306c6531a6877c59061e42c4f2", + "sha256:7b515674acfdcadb0eb5d00d8a709868173acece5cb0be3dd165950cbfdf5409", + "sha256:7b770ed79542ed52c519119473898198761d78beb24b107acf3ad65deae61f1f", + "sha256:7d2278d59425777cfcb19735018d897ca8303abe67cc735f9f97177ceff8027f", + "sha256:7e91ee82f4199af8c43d8158024cbdff3d931df350252288f0d4ce656df7f3b5", + "sha256:821b7f59b99551c69c85a6039c65b75f5683bdc63270fec660f75da67469ca24", + "sha256:822068f85e12a6e292803e112ab876bc03ed1f03dddb80154c395f891ca6b31e", + "sha256:8340225bd5e7a701c0fa98284c849c9b9fc9238abf53a0ebd90900f25d39a4e4", + "sha256:85cabf64adec449132e55616e7ca3e1000ab449d1d0f9d7f83146ed5bdcb6d8a", + "sha256:880bbbcbe2fca64e2f4d8e04db47bcdf504936fa2b33933efd945e1b429bea8c", + "sha256:8d0b4612b66ff5d62d03bcaa043bb018f74dfea51184e53f067e6fdcba4bd8de", + "sha256:8e20cb5a47247e383cf4ff523205060991021233ebd6f924bca927fcf25cf86f", + "sha256:925073b2fe14ab9b87e73f9a5fde6ce6392da430f3004d8b72cc86f746f5163b", + "sha256:998c7c41910666d2976928c38ea96a70d1aa43be6fe502f21a651e17483a43c5", + "sha256:9b22c5c66f67ae00c0199f6055705bc3eb3fcb08d03d2ec4059a2b1b25ed48d7", + "sha256:9f102706d0ca011de571de32c3247c6476b55bb6bc65a20f682f000b07a4852a", + "sha256:a08cff61517ee26cb56f1e949cca38caabe9ea9fbb4b1e10a805dc39844b7d5c", + "sha256:a0a336d6d3e8b234a3aae3c674873d8f0e720b76bc1d9416866c41cd9500ffb9", + "sha256:a35f8b7fa99f90dd2f5dc5a9fa12332642f087a7641289ca6c40d6e1a2637d8e", + "sha256:a38486985ca49cfa574a507e7a2215c0c780fd1778bb6290c21193b7211702ab", + "sha256:a5da296eb617d18e497bcf0a5c528f5d3b18dadb3619fbdadf4ed2356ef8d941", + "sha256:a6e441a86553c310258aca15d1c05903aaf4965b23f3bc2d55f200804e005ee5", + "sha256:a82d05da00a58b8e4c0008edbc8a4b6ec5a4bc1e2ee0fb6ed157cf634ed7fa45", + "sha256:ab323679b8b3030000f2be63e22cdeea5b47ee0abd2d6a1dc0c8103ddaa56cd7", + "sha256:b1f42b6921d0e81b1bcb5e395bc091a70f41c4d4e55ba99c6da2b31626c44892", + "sha256:b23e19989c355ca854276178a0463951a653309fb8e57ce674497f2d9f208746", + "sha256:b264171e3143d842ded311b7dccd46ff9ef34247129ff5bf5066123c55c2431c", + "sha256:b26a29f0b7fc6f0897f043ca366142d2b609dc60756ee6e4e90b5f762c6adc53", + "sha256:b64d891da92e232c36976c80ed7ebb383e3f148489796d8d31a5b6a677825efe", + "sha256:b9cc34af337a97d470040f99ba4282f6e6bac88407d021688a5d585e44a23184", + "sha256:bc718cd47b765e790eecb74d044cc8d37d58562f6c314ee9484df26276d36a38", + "sha256:be7292c55101e22f2a3d4d8913944cbea71eea90792bf914add27454a13905df", + "sha256:c83203addf554215463b59f6399835201999b5e48019dc17f182ed5ad87205c9", + "sha256:c9ec3eaf616d67db0764b3bb983962b4f385a1f08304fd30c7283954e6a7869b", + "sha256:ca34efc80a29351897e18888c71c6aca4a359247c87e0b1c7ada14f0ab0c0fb2", + "sha256:ca989b91cf3a3ba28930a9fc1e9aeafc2a395448641df1f387a2d394638943b0", + "sha256:d02a5399126a53492415d4906ab0ad0375a5456cc05c3fc0fc4ca11771745cda", + "sha256:d17bc7c2ccf49c478c5bdd447594e82692c74222698cfc9b5daae7ae7e90743b", + "sha256:d5bf6545cd27aaa8a13033ce56354ed9e25ab0e4ac3b5392b763d8d04b08e0c5", + "sha256:d6b430a9938a5a5d85fc107d852262ddcd48602c120e3dbb02137c83d212b380", + "sha256:da248f93f0418a9e9d94b0080d7ebc407a9a5e6d0b57bb30db9b5cc28de1ad33", + "sha256:da4dd7c9c50c059aba52b3524f84d7de956f7fef88f0bafcf4ad7dde94a064e8", + "sha256:df0623dcf9668ad0445e0558a21211d4e9a149ea8f5666917c8eeec515f0a6d1", + "sha256:e5168986b90a8d1f2f9dc1b841467c74221bd752537b99761a93d2d981e04889", + "sha256:efa29c2fe6b4fdd32e8ef81c1528506895eca86e1d8c4657fda04c9b3786ddf9", + "sha256:f1496ea22ca2c830cbcbd473de8f114a320da308438ae65abad6bab7867fe38f", + "sha256:f49e52d174375a7def9915c9f06ec4e569d235ad428f70751765f48d5926678c" + ], + "index": "pypi", + "version": "==4.9.2" + }, + "mastodon.py": { + "hashes": [ + "sha256:31624c881318682577b76c082a9e8e4114a42e80ad3652c6bc00e5c658cea1a7", + "sha256:f5af3bb16df6409bed0bb8b97543d7979237a6a2a2a4bc484dec261c36918668" ], "index": "pypi", - "version": "==4.9.1" + "version": "==1.8.0" }, "numpy": { "hashes": [ @@ -363,7 +363,7 @@ "sha256:f9168790149f917ad8e3cf5047b353fefef753bd50b07c547da0bdf30bc15d91", "sha256:fe44e925c68fb5e8db1334bf30ac1a1b6b963b932a19cf41d2e899cf02f36aab" ], - "markers": "python_version < '3.10' and platform_machine != 'aarch64' and platform_machine != 'arm64'", + "markers": "python_version < '3.10'", "version": "==1.24.0" }, "oauthlib": { @@ -377,7 +377,7 @@ "opensky-api": { "editable": true, "git": "https://github.com/openskynetwork/opensky-api.git", - "ref": "7bda8d14ada6241f1f246fd42d7d032aabe7ea91", + "ref": "3d01d1a774da0dbd4a65a3bb615fd2063d0320c9", "subdirectory": "python" }, "outcome": { @@ -388,32 +388,46 @@ "markers": "python_version >= '3.7'", "version": "==1.2.0" }, + "packaging": { + "hashes": [ + "sha256:2198ec20bd4c017b8f9717e00f0c8714076fc2fd93816750ab48e2c41de2cfd3", + "sha256:957e2148ba0e1a3b282772e791ef1d8083648bc131c8ab0c1feba110ce1146c3" + ], + "markers": "python_version >= '3.7'", + "version": "==22.0" + }, "pandas": { "hashes": [ - "sha256:07238a58d7cbc8a004855ade7b75bbd22c0db4b0ffccc721556bab8a095515f6", - "sha256:0daf876dba6c622154b2e6741f29e87161f844e64f84801554f879d27ba63c0d", - "sha256:16ad23db55efcc93fa878f7837267973b61ea85d244fc5ff0ccbcfa5638706c5", - "sha256:1d9382f72a4f0e93909feece6fef5500e838ce1c355a581b3d8f259839f2ea76", - "sha256:24ea75f47bbd5574675dae21d51779a4948715416413b30614c1e8b480909f81", - "sha256:2893e923472a5e090c2d5e8db83e8f907364ec048572084c7d10ef93546be6d1", - "sha256:2ff7788468e75917574f080cd4681b27e1a7bf36461fe968b49a87b5a54d007c", - "sha256:41fc406e374590a3d492325b889a2686b31e7a7780bec83db2512988550dadbf", - "sha256:48350592665ea3cbcd07efc8c12ff12d89be09cd47231c7925e3b8afada9d50d", - "sha256:605d572126eb4ab2eadf5c59d5d69f0608df2bf7bcad5c5880a47a20a0699e3e", - "sha256:6dfbf16b1ea4f4d0ee11084d9c026340514d1d30270eaa82a9f1297b6c8ecbf0", - "sha256:6f803320c9da732cc79210d7e8cc5c8019aad512589c910c66529eb1b1818230", - "sha256:721a3dd2f06ef942f83a819c0f3f6a648b2830b191a72bbe9451bcd49c3bd42e", - "sha256:755679c49460bd0d2f837ab99f0a26948e68fa0718b7e42afbabd074d945bf84", - "sha256:78b00429161ccb0da252229bcda8010b445c4bf924e721265bec5a6e96a92e92", - "sha256:958a0588149190c22cdebbc0797e01972950c927a11a900fe6c2296f207b1d6f", - "sha256:a3924692160e3d847e18702bb048dc38e0e13411d2b503fecb1adf0fcf950ba4", - "sha256:d51674ed8e2551ef7773820ef5dab9322be0828629f2cbf8d1fc31a0c4fed640", - "sha256:d5ebc990bd34f4ac3c73a2724c2dcc9ee7bf1ce6cf08e87bb25c6ad33507e318", - "sha256:d6c0106415ff1a10c326c49bc5dd9ea8b9897a6ca0c8688eb9c30ddec49535ef", - "sha256:e48fbb64165cda451c06a0f9e4c7a16b534fcabd32546d531b3c240ce2844112" + "sha256:0183cb04a057cc38fde5244909fca9826d5d57c4a5b7390c0cc3fa7acd9fa883", + "sha256:1fc87eac0541a7d24648a001d553406f4256e744d92df1df8ebe41829a915028", + "sha256:220b98d15cee0b2cd839a6358bd1f273d0356bf964c1a1aeb32d47db0215488b", + "sha256:2552bffc808641c6eb471e55aa6899fa002ac94e4eebfa9ec058649122db5824", + "sha256:315e19a3e5c2ab47a67467fc0362cb36c7c60a93b6457f675d7d9615edad2ebe", + "sha256:344021ed3e639e017b452aa8f5f6bf38a8806f5852e217a7594417fb9bbfa00e", + "sha256:375262829c8c700c3e7cbb336810b94367b9c4889818bbd910d0ecb4e45dc261", + "sha256:457d8c3d42314ff47cc2d6c54f8fc0d23954b47977b2caed09cd9635cb75388b", + "sha256:4aed257c7484d01c9a194d9a94758b37d3d751849c05a0050c087a358c41ad1f", + "sha256:530948945e7b6c95e6fa7aa4be2be25764af53fba93fe76d912e35d1c9ee46f5", + "sha256:5ae7e989f12628f41e804847a8cc2943d362440132919a69429d4dea1f164da0", + "sha256:71f510b0efe1629bf2f7c0eadb1ff0b9cf611e87b73cd017e6b7d6adb40e2b3a", + "sha256:73f219fdc1777cf3c45fde7f0708732ec6950dfc598afc50588d0d285fddaefc", + "sha256:8092a368d3eb7116e270525329a3e5c15ae796ccdf7ccb17839a73b4f5084a39", + "sha256:82ae615826da838a8e5d4d630eb70c993ab8636f0eff13cb28aafc4291b632b5", + "sha256:9608000a5a45f663be6af5c70c3cbe634fa19243e720eb380c0d378666bc7702", + "sha256:a40dd1e9f22e01e66ed534d6a965eb99546b41d4d52dbdb66565608fde48203f", + "sha256:b4f5a82afa4f1ff482ab8ded2ae8a453a2cdfde2001567b3ca24a4c5c5ca0db3", + "sha256:c009a92e81ce836212ce7aa98b219db7961a8b95999b97af566b8dc8c33e9519", + "sha256:c218796d59d5abd8780170c937b812c9637e84c32f8271bbf9845970f8c1351f", + "sha256:cc3cd122bea268998b79adebbb8343b735a5511ec14efb70a39e7acbc11ccbdc", + "sha256:d0d8fd58df5d17ddb8c72a5075d87cd80d71b542571b5f78178fb067fa4e9c72", + "sha256:e18bc3764cbb5e118be139b3b611bc3fbc5d3be42a7e827d1096f46087b395eb", + "sha256:e2b83abd292194f350bb04e188f9379d36b8dfac24dd445d5c87575f3beaf789", + "sha256:e7469271497960b6a781eaa930cba8af400dd59b62ec9ca2f4d31a19f2f91090", + "sha256:e9dbacd22555c2d47f262ef96bb4e30880e5956169741400af8b306bbb24a273", + "sha256:f6257b314fc14958f8122779e5a1557517b0f8e500cfb2bd53fa1f75a8ad0af2" ], "index": "pypi", - "version": "==1.4.3" + "version": "==1.5.2" }, "pillow": { "hashes": [ @@ -499,18 +513,20 @@ }, "pycairo": { "hashes": [ - "sha256:251907f18a552df938aa3386657ff4b5a4937dde70e11aa042bc297957f4b74b", - "sha256:26b72b813c6f9d495f71057eab89c13e70a21c92360e9265abc049e0a931fa39", - "sha256:31e1c4850db03201d33929cbe1905ce1b33202683ebda7bb0d4dba489115066b", - "sha256:4357f20a6b1de8f1e8072a74ff68ab4c9a0ae698cd9f5c0f2b2cdd9b28b635f6", - "sha256:44a2ecf34968de07b3b9dfdcdbccbd25aa3cab267200f234f84e81481a73bbf6", - "sha256:6d37375aab9f2bb6136f076c19815d72108383baae89fbc0d6cb8e5092217d02", - "sha256:70936b19f967fa3cb3cd200c2608911227fa5d09dae21c166f64bc15e714ee41", - "sha256:dace6b356c476de27f8e1522428ac21a799c225703f746e2957d441f885dcb6c", - "sha256:f63c153a9ea3d21aff85e2caeee4b0c5d566b2368b4ed64826020d12953d76a4" + "sha256:1a6d8e0f353062ad92954784e33dbbaf66c880c9c30e947996c542ed9748aaaf", + "sha256:2dec5378133778961993fb59d66df16070e03f4d491b67eb695ca9ad7a696008", + "sha256:3a71f758e461180d241e62ef52e85499c843bd2660fd6d87cec99c9833792bfa", + "sha256:564601e5f528531c6caec1c0177c3d0709081e1a2a5cccc13561f715080ae535", + "sha256:82e335774a17870bc038e0c2fb106c1e5e7ad0c764662023886dfcfce5bb5a52", + "sha256:87efd62a7b7afad9a0a420f05b6008742a6cfc59077697be65afe8dc73ae15ad", + "sha256:9b61ac818723adc04367301317eb2e814a83522f07bbd1f409af0dada463c44c", + "sha256:a4b1f525bbdf637c40f4d91378de36c01ec2b7f8ecc585b700a079b9ff83298e", + "sha256:d6bacff15d688ed135b4567965a4b664d9fb8de7417a7865bb138ad612043c9f", + "sha256:e7cde633986435d87a86b6118b7b6109c384266fd719ef959883e2729f6eafae", + "sha256:ec305fc7f2f0299df78aadec0eaf6eb9accb90eda242b5d3492544d3f2b28027" ], "index": "pypi", - "version": "==1.21.0" + "version": "==1.23.0" }, "pycparser": { "hashes": [ @@ -519,43 +535,46 @@ ], "version": "==2.21" }, - "pyopenssl": { - "hashes": [ - "sha256:7a83b7b272dd595222d672f5ce29aa030f1fb837630ef229f62e72e395ce8968", - "sha256:b28437c9773bb6c6958628cf9c3bebe585de661dba6f63df17111966363dd15e" - ], - "version": "==22.1.0" - }, "pyproj": { "hashes": [ - "sha256:07c9d8d7ec009bbac09e233cfc725601586fe06880e5538a3a44eaf560ba3a62", - "sha256:120d45ed73144c65e9677dc73ba8a531c495d179dd9f9f0471ac5acc02d7ac4b", - "sha256:140fa649fedd04f680a39f8ad339799a55cb1c49f6a84e1b32b97e49646647aa", - "sha256:1adc9ccd1bf04998493b6a2e87e60656c75ab790653b36cfe351e9ef214828ed", - "sha256:1ef1bfbe2dcc558c7a98e2f1836abdcd630390f3160724a6f4f5c818b2be0ad5", - "sha256:2fef9c1e339f25c57f6ae0558b5ab1bbdf7994529a30d8d7504fc6302ea51c03", - "sha256:3cc4771403db54494e1e55bca8e6d33cde322f8cf0ed39f1557ff109c66d2cd1", - "sha256:42eea10afc750fccd1c5c4ba56de29ab791ab4d83c1f7db72705566282ac5396", - "sha256:45487942c19c5a8b09c91964ea3201f4e094518e34743cae373889a36e3d9260", - "sha256:473961faef7a9fd723c5d432f65220ea6ab3854e606bf84b4d409a75a4261c78", - "sha256:52efb681647dfac185cc655a709bc0caaf910031a0390f816f5fc8ce150cbedc", - "sha256:531ea36519fa7b581466d4b6ab32f66ae4dadd9499d726352f71ee5e19c3d1c5", - "sha256:56b0f9ee2c5b2520b18db30a393a7b86130cf527ddbb8c96e7f3c837474a9d79", - "sha256:5ab0d6e38fda7c13726afacaf62e9f9dd858089d67910471758afd9cb24e0ecd", - "sha256:5ca5f32b56210429b367ca4f9a57ffe67975c487af82e179a24370879a3daf68", - "sha256:5dac03d4338a4c8bd0f69144c527474f517b4cbd7d2d8c532cd8937799723248", - "sha256:5f92d8f6514516124abb714dce912b20867831162cfff9fae2678ef07b6fcf0f", - "sha256:67025e37598a6bbed2c9c6c9e4c911f6dd39315d3e1148ead935a5c4d64309d5", - "sha256:797ad5655d484feac14b0fbb4a4efeaac0cf780a223046e2465494c767fd1c3b", - "sha256:aba199704c824fb84ab64927e7bc9ef71e603e483130ec0f7e09e97259b8f61f", - "sha256:aed1a3c0cd4182425f91b48d5db39f459bc2fe0d88017ead6425a1bc85faee33", - "sha256:b3d8e14d91cc95fb3dbc03a9d0588ac58326803eefa5bbb0978d109de3304fbe", - "sha256:b59c08aea13ee428cf8a919212d55c036cc94784805ed77c8f31a4d1f541058c", - "sha256:c99f7b5757a28040a2dd4a28c9805fdf13eef79a796f4a566ab5cb362d10630d", - "sha256:f1032e5dfb50eae06382bcc7b9011b994f7104d932fe91bd83a722275e30e8ce" + "sha256:0189fdd7aa789542a7a623010dfff066c5849b24397f81f860ec3ee085cbf55c", + "sha256:0406f64ff59eb3342efb102c9f31536430aa5cde5ef0bfabd5aaccb73dd8cd5a", + "sha256:0c7b32382ae22a9bf5b690d24c7b4c0fb89ba313c3a91ef1a8c54b50baf10954", + "sha256:129234afa179c8293b010ea4f73655ff7b20b5afdf7fac170f223bcf0ed6defd", + "sha256:19f5de1a7c3b81b676d846350d4bdf2ae6af13b9a450d1881706f088ecad0e2c", + "sha256:231c038c6b65395c41ae3362320f03ce8054cb54dc63556e605695e5d461a27e", + "sha256:25a5425cd2a0b16f5f944d49165196eebaa60b898a08c404a644c29e6a7a04b3", + "sha256:261eb29b1d55b1eb7f336127344d9b31284d950a9446d1e0d1c2411f7dd8e3ac", + "sha256:2bd633f3b8ca6eb09135dfaf06f09e2869deb139985aab26d728e8a60c9938b9", + "sha256:2d1e7f42da205e0534831ae9aa9cee0353ab8c1aab2c369474adbb060294d98a", + "sha256:2f87f16b902c8b2af007295c63a435f043db9e40bd45e6f96962c7b8cd08fdb5", + "sha256:321b82210dc5271558573d0874b9967c5a25872a28d0168049ddabe8bfecffce", + "sha256:3d70ca5933cddbe6f51396006fb9fc78bc2b1f9d28775922453c4b04625a7efb", + "sha256:57ec7d2b7f2773d877927abc72e2229ef8530c09181be0e28217742bae1bc4f5", + "sha256:5a53acbde511a7a9e1873c7f93c68f35b8c3653467b77195fe18e847555dcb7a", + "sha256:5f3f75b030cf811f040c90a8758a20115e8746063e4cad0d0e941a4954d1219b", + "sha256:6bdac3bc1899fcc4021be06d303b342923fb8311fe06f8d862c348a1a0e78b41", + "sha256:7aef19d5a0a3b2d6b17f7dc9a87af722e71139cd1eea7eb82ed062a8a4b0e272", + "sha256:8078c90cea07d53e3406c7c84cbf76a2ac0ffc580c365f13801575486b9d558c", + "sha256:97065fe82e80f7e2740e7897a0e36e8defc0a3614927f0276b4f1d1ea1ef66fa", + "sha256:a30d78e619dae5cd1bb69addae2f1e5f8ee1b4a8ab4f3d954e9eaf41948db506", + "sha256:a32e1d12340ad93232b7ea4dc1a4f4b21fa9fa9efa4b293adad45be7af6b51ec", + "sha256:a5eada965e8ac24e783f2493d1d9bcd11c5c93959bd43558224dd31d9faebd1c", + "sha256:a98fe3e53be428e67ae6a9ee9affff92346622e0e3ea0cbc15dce939b318d395", + "sha256:c240fe6bcb5c325b50fc967d5458d708412633f4f05fefc7fb14c14254ebf421", + "sha256:c60d112d8f1621a606b7f2adb0b1582f80498e663413d2ba9f5df1c93d99f432", + "sha256:cd9f9c409f465834988ce0aa8c1ed496081c6957f2e5ef40ed28de04397d3c0b", + "sha256:ce50126dad7cd4749ab86fc4c8b54ec0898149ce6710ab5c93c76a54a4afa249", + "sha256:da96319b137cfd66f0bae0e300cdc77dd17af4785b9360a9bdddb1d7176a0bbb", + "sha256:e463c687007861a9949909211986850cfc2e72930deda0d06449ef2e315db534", + "sha256:e8c0d1ac9ef5a4d2e6501a4b30136c55f1e1db049d1626cc313855c4f97d196d", + "sha256:e9d82df555cf19001bac40e1de0e40fb762dec785685b77edd6993286c01b7f7", + "sha256:ef76abfee1a0676ef973470abe11e22998750f2bd944afaf76d44ad70b538c06", + "sha256:ef8c30c62fe4e386e523e14e1e83bd460f745bd2c8dfd0d0c327f9460c4d3c0c", + "sha256:f38dea459e22e86326b1c7d47718a3e10c7a27910cf5eb86ea2679b8084d0c4e" ], "index": "pypi", - "version": "==3.3.1" + "version": "==3.4.1" }, "pysocks": { "hashes": [ @@ -599,19 +618,19 @@ }, "python-telegram-bot": { "hashes": [ - "sha256:13f83ec4433f24a67e7a2df0206dfde83c1627c92880a2fcf95a83585b3cc589", - "sha256:4296d81a38b7e5ef1f9795651128e58fb354678b8dc4db93ca166c96828c57b2" + "sha256:06780c258d3f2a3c6c79a7aeb45714f4cd1dd6275941b7dc4628bba64fddd465", + "sha256:b4047606b8081b62bbd6aa361f7ca1efe87fa8f1881ec9d932d35844bf57a154" ], "index": "pypi", - "version": "==13.13" + "version": "==13.15" }, "pytz": { "hashes": [ - "sha256:1e760e2fe6a8163bc0b3d9a19c4f84342afa0a2affebfaa84b01b978a02ecaa7", - "sha256:e68985985296d9a66a881eb3193b0906246245294a881e7c8afe623866ac6a5c" + "sha256:7ccfae7b4b2c067464a6733c6261673fdb8fd1be905460396b97a073e9fa683a", + "sha256:93007def75ae22f7cd991c84e02d434876818661f8df9ad5df9e950ff4e52cfd" ], "index": "pypi", - "version": "==2022.1" + "version": "==2022.7" }, "pytz-deprecation-shim": { "hashes": [ @@ -626,7 +645,7 @@ "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983", "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349" ], - "markers": "python_version >= '3.7' and python_version < '4'", + "markers": "python_version >= '3.7' and python_version < '4.0'", "version": "==2.28.1" }, "requests-oauthlib": { @@ -646,58 +665,55 @@ }, "selenium": { "hashes": [ - "sha256:f67402b8f973aaa98d9c55b8f9aa63532009cd1859b2222a8b9800354942d8bc" + "sha256:06a1c7d9f313130b21c3218ddd8852070d0e7419afdd31f96160cd576555a5ce", + "sha256:3aefa14a28a42e520550c1cd0f29cf1d566328186ea63aa9a3e01fb265b5894d" ], "index": "pypi", - "version": "==4.3.0" - }, - "setuptools": { - "hashes": [ - "sha256:57f6f22bde4e042978bcd50176fdb381d7c21a9efa4041202288d3737a0c6a54", - "sha256:a7620757bf984b58deaf32fc8a4577a9bbc0850cf92c20e1ce41c38c19e5fb75" - ], - "markers": "python_version >= '3.7'", - "version": "==65.6.3" + "version": "==4.7.2" }, "shapely": { "hashes": [ - "sha256:0c0fd457ce477b1dced507a72f1e2084c9191bfcb8a1e09886990ebd02acf024", - "sha256:137f1369630408024a62ff79a437a5657e6c5b76b9cd352dde704b425acdb298", - "sha256:15a856fbb588ad5d042784e00918c662902776452008c771ecba2ff615cd197a", - "sha256:1d95842cc6bbbeab673061b63e70b07be9a375c15a60f4098f8fbd29f43af1b4", - "sha256:256bdf8080bb7bb504d47b2c76919ecebab9708cc1b26266b3ec32b42448f642", - "sha256:2e02da2e988e74d61f15c720f9f613fab51942aae2dfeacdcb78eadece00e1f3", - "sha256:3423299254deec075e79fb7dc7909d702104e4167149de7f45510c3a6342eeea", - "sha256:3a40bf497b57a6625b83996aed10ce2233bca0e5471b8af771b186d681433ac5", - "sha256:44d2832c1b706bf43101fda92831a083467cc4b4923a7ed17319ab599c1025d8", - "sha256:5254240eefc44139ab0d128faf671635d8bdd9c23955ee063d4d6b8f20073ae0", - "sha256:56413f7d32c70b63f239eb0865b24c0c61029e38757de456cc4ab3c416559a0b", - "sha256:572af9d5006fd5e3213e37ee548912b0341fb26724d6dc8a4e3950c10197ebb6", - "sha256:62056e64b12b6d483d79f8e34bf058d2fe734d51c9227c1713705399434eff3b", - "sha256:68c8e18dc9dc8a198c3addc8c9596f64137101f566f04b96ecfca0b214cb8b12", - "sha256:6bdc7728f1e5df430d8c588661f79f1eed4a2728c8b689e12707cfec217f68f8", - "sha256:6fcb28836ae93809de1dde73c03c9c24bab0ba2b2bf419ddb2aeb72c96d110e9", - "sha256:75042e8039c79dd01f102bb288beace9dc2f49fc44a2dea875f9b697aa8cd30d", - "sha256:78966332a89813b237de357a03f612fd451a871fe6e26c12b6b71645fe8eee39", - "sha256:7c8eda45085ccdd7f9805ea4a93fdd5eb0b6039a61d5f0cefb960487e6dc17a1", - "sha256:7c9e3400b716c51ba43eea1678c28272580114e009b6c78cdd00c44df3e325fa", - "sha256:840be3f27a1152851c54b968f2e12d718c9f13b7acd51c482e58a70f60f29e31", - "sha256:8e3ed52a081da58eb4a885c157c594876633dbd4eb283f13ba5bf39c82322d76", - "sha256:8fe641f1f61b3d43dd61b5a85d2ef023e6e19bf8f204a5160a1cb1ec645cbc09", - "sha256:a58e1f362f2091743e5e13212f5d5d16251a4bb63dd0ed587c652d3be9620d3a", - "sha256:a60861b5ca2c488ebcdc706eca94d325c26d1567921c74acc83df5e6913590c7", - "sha256:beee3949ddf381735049cfa6532fb234d5d20a5be910c4f2fb7c7295fd7960e3", - "sha256:c0a0d7752b145343838bd36ed09382d85f5befe426832d7384c5b051c147acbd", - "sha256:c60f3758212ec480675b820b13035dda8af8f7cc560d2cc67999b2717fb8faef", - "sha256:ce0b5c5f7acbccf98b3460eecaa40e9b18272b2a734f74fcddf1d7696e047e95", - "sha256:cec89a5617c0137f4678282e983c3d63bf838fb00cdf318cc555b4d8409f7130", - "sha256:d3f3fac625690f01f35af665649e993f15f924e740b5c0ac0376900655815521", - "sha256:d74de394684d66e25e780b0359fda85be7766af85940fa2dfad728b1a815c71f", - "sha256:e07b0bd2a0e61a8afd4d1c1bd23f3550b711f01274ffb53de99358fd781eefd8", - "sha256:f12695662c3ad1e6031b3de98f191963d0f09de6d1a4988acd907405644032ba" + "sha256:11f1b1231a6c04213fb1226c6968d1b1b3b369ec42d1e9655066af87631860ea", + "sha256:13a9f978cd287e0fa95f39904a2bb36deddab490e4fab8bf43eba01b7d9eb58f", + "sha256:17d0f89581aa15f7887052a6adf2753f9fe1c3fdbb6116653972e0d43e720e65", + "sha256:21ba32a6c45b7f8ab7d2d8d5cf339704e2d1dfdf3e2fb465b950a0c9bc894a4f", + "sha256:2287d0cb592c1814e9f48065888af7ee3f13e090e6f7fa3e208b06a83fb2f6af", + "sha256:292c22ff7806e3a25bc4324295e9204169c61a09165d4c9ee0a9784c1709c85e", + "sha256:40c397d67ba609a163d38b649eee2b06c5f9bdc86d244a8e4cd09c6e2791cf3c", + "sha256:44198fc188fe4b7dd39ef0fd325395d1d6ab0c29a7bbaa15663a16c362bf6f62", + "sha256:5477be8c11bf3109f7b804bb2d57536538b8d0a6118207f1020d71338f1a827c", + "sha256:550f110940d79931b6a12a17de07f6b158c9586c4b121f885af11458ae5626d7", + "sha256:56c0e70749f8c2956493e9333375d2e2264ce25c838fc49c3a2ececbf2d3ba92", + "sha256:5fe8649aafe6adcb4d90f7f735f06ca8ca02a16da273d901f1dd02afc0d3618e", + "sha256:6c71738702cf5c3fc60b3bbe869c321b053ea754f57addded540a71c78c2612e", + "sha256:7266080d39946395ba4b31fa35b9b7695e0a4e38ccabf0c67e2936caf9f9b054", + "sha256:73771b3f65c2949cce0b310b9b62b8ce069407ceb497a9dd4436f9a4d059f12c", + "sha256:73d605fcefd06ee997ba307ef363448d355f3c3e81b3f56ed332eaf6d506e1b5", + "sha256:7b2c41514ba985ea3772eee9b386d620784cccb7a459a270a072f3ef01fdd807", + "sha256:820bee508e4a0e564db22f8b55bb5e6e7f326d8d7c103639c42f5d3f378f4067", + "sha256:8a7ba97c97d85c1f07c57f9524c45128ef2bf8279061945d78052c78862b357f", + "sha256:8b9f780c3b79b4a6501e0e8833b1877841b7b0e0a243e77b529fda8f1030afc2", + "sha256:91bbca0378eb82f0808f0e59150ac0952086f4caaab87ad8515a5e55e896c21e", + "sha256:99420c89af78f371b96f0e2bad9afdebc6d0707d4275d157101483e4c4049fd6", + "sha256:a391cae931976fb6d8d15a4f4a92006358e93486454a812dde1d64184041a476", + "sha256:a9b6651812f2caa23e4d06bc06a2ed34450f82cb1c110c170a25b01bbb090895", + "sha256:b1def13ec2a74ebda2210d2fc1c53cecce5a079ec90f341101399427874507f1", + "sha256:b3d97f3ce6df47ca68c2d64b8c3cfa5c8ccc0fbc81ef8e15ff6004a6426e71b1", + "sha256:c47a61b1cd0c5b064c6d912bce7dba78c01f319f65ecccd6e61eecd21861a37a", + "sha256:c4b99a3456e06dc55482569669ece969cdab311f2ad2a1d5622fc770f68cf3cd", + "sha256:d28e19791c9be2ba1cb2fddefa86f73364bdf8334e88dbcd78a8e4494c0af66b", + "sha256:d486cab823f0a978964ae97ca10564ea2b2ced93e84a2ef0b7b62cbacec9d3d2", + "sha256:de3722c68e49fbde8cb6859695bbb8fb9a4d48bbdf34fcf38b7994d2bd9772e2", + "sha256:e4ed31658fd0799eaa3569982aab1a5bc8fcf25ec196606bf137ee4fa984be88", + "sha256:e991ad155783cd0830b895ec8f310fde9e79a7b283776b889a751fb1e7c819fc", + "sha256:eab24b60ae96b7375adceb1f120be818c59bd69db0f3540dc89527d8a371d253", + "sha256:eaea9ddee706654026a84aceb9a3156105917bab3de58fcf150343f847478202", + "sha256:ef98fec4a3aca6d33e3b9fdd680fe513cc7d1c6aedc65ada8a3965601d9d4bcf", + "sha256:f69c418f2040c8593e33b1aba8f2acf890804b073b817535b5d291139d152af5", + "sha256:f96b24da0242791cd6042f6caf074e7a4537a66ca2d1b57d423feb98ba901295" ], "index": "pypi", - "version": "==1.8.2" + "version": "==2.0.0" }, "six": { "hashes": [ @@ -740,12 +756,11 @@ }, "tabulate": { "hashes": [ - "sha256:0ba055423dbaa164b9e456abe7920c5e8ed33fcc16f6d1b2f2d152c8e1e8b4fc", - "sha256:436f1c768b424654fce8597290d2764def1eea6a77cfa5c33be00b1bc0f4f63d", - "sha256:6c57f3f3dd7ac2782770155f3adb2db0b1a269637e42f27599925e64b114f519" + "sha256:0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c", + "sha256:024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f" ], "index": "pypi", - "version": "==0.8.10" + "version": "==0.9.0" }, "text-unidecode": { "hashes": [ @@ -756,20 +771,58 @@ }, "tornado": { "hashes": [ - "sha256:1d54d13ab8414ed44de07efecb97d4ef7c39f7438cf5e976ccd356bebb1b5fca", - "sha256:20f638fd8cc85f3cbae3c732326e96addff0a15e22d80f049e00121651e82e72", - "sha256:5c87076709343557ef8032934ce5f637dbb552efa7b21d08e89ae7619ed0eb23", - "sha256:5f8c52d219d4995388119af7ccaa0bcec289535747620116a58d830e7c25d8a8", - "sha256:6fdfabffd8dfcb6cf887428849d30cf19a3ea34c2c248461e1f7d718ad30b66b", - "sha256:87dcafae3e884462f90c90ecc200defe5e580a7fbbb4365eda7c7c1eb809ebc9", - "sha256:9b630419bde84ec666bfd7ea0a4cb2a8a651c2d5cccdbdd1972a0c859dfc3c13", - "sha256:b8150f721c101abdef99073bf66d3903e292d851bee51910839831caba341a75", - "sha256:ba09ef14ca9893954244fd872798b4ccb2367c165946ce2dd7376aebdde8e3ac", - "sha256:d3a2f5999215a3a06a4fc218026cd84c61b8b2b40ac5296a6db1f1451ef04c1e", - "sha256:e5f923aa6a47e133d1cf87d60700889d7eae68988704e20c75fb2d65677a8e4b" + "sha256:0a00ff4561e2929a2c37ce706cb8233b7907e0cdc22eab98888aca5dd3775feb", + "sha256:0d321a39c36e5f2c4ff12b4ed58d41390460f798422c4504e09eb5678e09998c", + "sha256:1e8225a1070cd8eec59a996c43229fe8f95689cb16e552d130b9793cb570a288", + "sha256:20241b3cb4f425e971cb0a8e4ffc9b0a861530ae3c52f2b0434e6c1b57e9fd95", + "sha256:25ad220258349a12ae87ede08a7b04aca51237721f63b1808d39bdb4b2164558", + "sha256:33892118b165401f291070100d6d09359ca74addda679b60390b09f8ef325ffe", + "sha256:33c6e81d7bd55b468d2e793517c909b139960b6c790a60b7991b9b6b76fb9791", + "sha256:3447475585bae2e77ecb832fc0300c3695516a47d46cefa0528181a34c5b9d3d", + "sha256:34ca2dac9e4d7afb0bed4677512e36a52f09caa6fded70b4e3e1c89dbd92c326", + "sha256:3e63498f680547ed24d2c71e6497f24bca791aca2fe116dbc2bd0ac7f191691b", + "sha256:548430be2740e327b3fe0201abe471f314741efcb0067ec4f2d7dcfb4825f3e4", + "sha256:6196a5c39286cc37c024cd78834fb9345e464525d8991c21e908cc046d1cc02c", + "sha256:61b32d06ae8a036a6607805e6720ef00a3c98207038444ba7fd3d169cd998910", + "sha256:6286efab1ed6e74b7028327365cf7346b1d777d63ab30e21a0f4d5b275fc17d5", + "sha256:65d98939f1a2e74b58839f8c4dab3b6b3c1ce84972ae712be02845e65391ac7c", + "sha256:66324e4e1beede9ac79e60f88de548da58b1f8ab4b2f1354d8375774f997e6c0", + "sha256:6c77c9937962577a6a76917845d06af6ab9197702a42e1346d8ae2e76b5e3675", + "sha256:70dec29e8ac485dbf57481baee40781c63e381bebea080991893cd297742b8fd", + "sha256:7250a3fa399f08ec9cb3f7b1b987955d17e044f1ade821b32e5f435130250d7f", + "sha256:748290bf9112b581c525e6e6d3820621ff020ed95af6f17fedef416b27ed564c", + "sha256:7da13da6f985aab7f6f28debab00c67ff9cbacd588e8477034c0652ac141feea", + "sha256:8f959b26f2634a091bb42241c3ed8d3cedb506e7c27b8dd5c7b9f745318ddbb6", + "sha256:9de9e5188a782be6b1ce866e8a51bc76a0fbaa0e16613823fc38e4fc2556ad05", + "sha256:a48900ecea1cbb71b8c71c620dee15b62f85f7c14189bdeee54966fbd9a0c5bd", + "sha256:b87936fd2c317b6ee08a5741ea06b9d11a6074ef4cc42e031bc6403f82a32575", + "sha256:c77da1263aa361938476f04c4b6c8916001b90b2c2fdd92d8d535e1af48fba5a", + "sha256:cb5ec8eead331e3bb4ce8066cf06d2dfef1bfb1b2a73082dfe8a161301b76e37", + "sha256:cc0ee35043162abbf717b7df924597ade8e5395e7b66d18270116f8745ceb795", + "sha256:d14d30e7f46a0476efb0deb5b61343b1526f73ebb5ed84f23dc794bdb88f9d9f", + "sha256:d371e811d6b156d82aa5f9a4e08b58debf97c302a35714f6f45e35139c332e32", + "sha256:d3d20ea5782ba63ed13bc2b8c291a053c8d807a8fa927d941bd718468f7b950c", + "sha256:d3f7594930c423fd9f5d1a76bee85a2c36fd8b4b16921cae7e965f22575e9c01", + "sha256:dcef026f608f678c118779cd6591c8af6e9b4155c44e0d1bc0c87c036fb8c8c4", + "sha256:e0791ac58d91ac58f694d8d2957884df8e4e2f6687cdf367ef7eb7497f79eaa2", + "sha256:e385b637ac3acaae8022e7e47dfa7b83d3620e432e3ecb9a3f7f58f150e50921", + "sha256:e519d64089b0876c7b467274468709dadf11e41d65f63bba207e04217f47c085", + "sha256:e7229e60ac41a1202444497ddde70a48d33909e484f96eb0da9baf8dc68541df", + "sha256:ed3ad863b1b40cd1d4bd21e7498329ccaece75db5a5bf58cd3c9f130843e7102", + "sha256:f0ba29bafd8e7e22920567ce0d232c26d4d47c8b5cf4ed7b562b5db39fa199c5", + "sha256:fa2ba70284fa42c2a5ecb35e322e68823288a4251f9ba9cc77be04ae15eada68", + "sha256:fba85b6cd9c39be262fcd23865652920832b61583de2a2ca907dbd8e8a8c81e5" ], - "markers": "python_version >= '3.7'", - "version": "==6.2" + "markers": "python_version >= '3.5'", + "version": "==6.1" + }, + "tqdm": { + "hashes": [ + "sha256:5f4f682a004951c1b450bc753c710e9280c5746ce6ffedee253ddbcbf54cf1e4", + "sha256:6fee160d6ffcd1b1c68c65f14c829c22832bc401726335ce92c52d395944a6a1" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==4.64.1" }, "trio": { "hashes": [ @@ -789,18 +842,18 @@ }, "tweepy": { "hashes": [ - "sha256:7f92574920c2f233663fff154745fc2bb0d10aedc23617379a912d8e4fefa399", - "sha256:f0abbd234a588e572f880f99a094ac321217ff3eade6c0eca118ed6db8e2cf0a" + "sha256:5e4c5b5d22f9e5dd9678a708fae4e40e6eeb1a860a89891a5de3040d5f3da8fe", + "sha256:86d4f6738cbd5a57f86dff7ae0caf52f66004d5777626bf5da970aa8c8aa35df" ], "index": "pypi", - "version": "==4.10.0" + "version": "==4.12.1" }, "tzdata": { "hashes": [ "sha256:2b88858b0e3120792a3c0635c23daf36a7d7eeeca657c323da299d2094402a0d", "sha256:fe5f866eddd8b96e9fcba978f8e503c909b19ea7efda11e52e39494bad3a7bfa" ], - "markers": "python_version >= '3.6'", + "markers": "platform_system == 'Windows'", "version": "==2022.7" }, "tzlocal": { @@ -813,7 +866,6 @@ }, "urllib3": { "extras": [ - "secure", "socks" ], "hashes": [ @@ -823,20 +875,13 @@ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", "version": "==1.26.13" }, - "urllib3-secure-extra": { - "hashes": [ - "sha256:ee9409cbfeb4b8609047be4c32fb4317870c602767e53fd8a41005ebe6a41dff", - "sha256:f7adcb108b4d12a4b26b99eb60e265d087f435052a76aefa396b6ee85e9a6ef9" - ], - "version": "==0.1.0" - }, "webdriver-manager": { "hashes": [ - "sha256:821e0737415044d7ad2fc4c1b25fbe0c0de602c62c94c5a25e4a096cf10f792f", - "sha256:9e115be96f04f4a912431766e7675679527f62867a3c73f4738901ea89e2a1e9" + "sha256:2d807ec270d2d990022b86efabd4096053e0a1e7a34c6174f9937320dfdc6826", + "sha256:e671f3b738af52351341d6df6674c2f0b959db0fe978e9a7135cfa36d1ad9560" ], "index": "pypi", - "version": "==3.8.1" + "version": "==3.8.5" }, "websocket-client": { "hashes": [ diff --git a/requirements.txt b/requirements.txt index a3d9b36..526363d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -12,3 +12,4 @@ git+https://github.com/openskynetwork/opensky-api.git@master#subdirectory=python webdriver-manager shapely python-telegram-bot +mastodon.py From 92dcb8ec82271abcf304b14bfca16150fbb08107 Mon Sep 17 00:00:00 2001 From: Jack Sweeney Date: Fri, 30 Dec 2022 21:43:50 -0500 Subject: [PATCH 62/70] Pushbullet is already deprecated Removing from requirements --- Pipfile | 1 - Pipfile.lock | 18 +----------------- requirements.txt | 1 - 3 files changed, 1 insertion(+), 19 deletions(-) diff --git a/Pipfile b/Pipfile index 4834574..84cf089 100644 --- a/Pipfile +++ b/Pipfile @@ -12,7 +12,6 @@ tabulate = "*" pytz = "*" pillow = "*" tweepy = "*" -"pushbullet.py" = "*" discord-webhook = "*" selenium = "*" opensky-api = {editable = true, git = "https://github.com/openskynetwork/opensky-api.git", subdirectory = "python"} diff --git a/Pipfile.lock b/Pipfile.lock index ed9d5b7..577a1fb 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "e92b392f297b73499f81fc50caed6e0be339726d234842c3ba99eeff2588b09c" + "sha256": "1d80adfb6e58767e8fa25016043df0f2363d57f736d19e43e7dffc55ad511a73" }, "pipfile-spec": 6, "requires": { @@ -496,14 +496,6 @@ "index": "pypi", "version": "==9.3.0" }, - "pushbullet.py": { - "hashes": [ - "sha256:38e3ce79843efaf839c8dc43485c0c7eedbe5825a8751751f13d041dd00c5a37", - "sha256:917883e1af4a0c979ce46076b391e0243eb8fe0a81c086544bcfa10f53e5ae64" - ], - "index": "pypi", - "version": "==0.12.0" - }, "py-staticmaps": { "hashes": [ "sha256:5aba5ad59f30a63f860e76ed99407a6efb24eaad5c8997aa8617363989f17389" @@ -883,14 +875,6 @@ "index": "pypi", "version": "==3.8.5" }, - "websocket-client": { - "hashes": [ - "sha256:d6b06432f184438d99ac1f456eaf22fe1ade524c3dd16e661142dc54e9cba574", - "sha256:d6e8f90ca8e2dd4e8027c4561adeb9456b54044312dba655e7cae652ceb9ae59" - ], - "markers": "python_version >= '3.7'", - "version": "==1.4.2" - }, "wsproto": { "hashes": [ "sha256:ad565f26ecb92588a3e43bc3d96164de84cd9902482b130d0ddbaa9664a85065", diff --git a/requirements.txt b/requirements.txt index 526363d..714cfca 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,7 +5,6 @@ tabulate pytz pillow tweepy -pushbullet.py discord-webhook selenium git+https://github.com/openskynetwork/opensky-api.git@master#subdirectory=python/ From c14ad5028181726a1f5a266e2ab988fba73b584b Mon Sep 17 00:00:00 2001 From: Jack Sweeney Date: Fri, 30 Dec 2022 21:50:44 -0500 Subject: [PATCH 63/70] Fixes discrepancies related to #59 --- configs/plane1.ini.example | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/configs/plane1.ini.example b/configs/plane1.ini.example index 00be1d0..eca4e8f 100644 --- a/configs/plane1.ini.example +++ b/configs/plane1.ini.example @@ -13,9 +13,7 @@ ICAO = icaohere ; CONCEAL_PIA = False [MAP] -#Map to create from Google Static Maps or screenshot global tar1090 from globe.adsbexchange.com -#Enter GOOGLESTATICMAP or ADSBX -OPTION = ADSBX +#Optional, map selection moved to mainconf, this is for map overlays per plane #Tar1090 overlays option, should be seperated by comma no space, remove option all together to disable any OVERLAYS = nexrad From 50bf15214819c322b353e6febe6e6ef25c790c15 Mon Sep 17 00:00:00 2001 From: brickhousetech <121568086+brickhousetech@users.noreply.github.com> Date: Sat, 31 Dec 2022 07:49:58 -0500 Subject: [PATCH 64/70] Update with missing packages Updated with missing packages impacting fuel calculations. --- requirements.txt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 714cfca..9f13b3f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,11 +4,20 @@ geopy tabulate pytz pillow -tweepy +tweepy +pushbullet.py discord-webhook selenium git+https://github.com/openskynetwork/opensky-api.git@master#subdirectory=python/ webdriver-manager shapely +pandas python-telegram-bot mastodon.py +beautifulsoup4 +pycairo +py-staticmaps +pyproj +lxml +configparser +geog From 48f8ff8927d5b549b6bf357469ce61c8498f2083 Mon Sep 17 00:00:00 2001 From: Jack Sweeney Date: Mon, 2 Jan 2023 22:23:04 -0500 Subject: [PATCH 65/70] All good except for pushbullet I removed support for PushBullet --- requirements.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 9f13b3f..0c21f8b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,7 +5,6 @@ tabulate pytz pillow tweepy -pushbullet.py discord-webhook selenium git+https://github.com/openskynetwork/opensky-api.git@master#subdirectory=python/ From ec6cf59b42a2de29ec527c93dad53ec6a3a3be24 Mon Sep 17 00:00:00 2001 From: b0nz <79069172+rcbonz@users.noreply.github.com> Date: Thu, 5 Jan 2023 16:41:35 -0500 Subject: [PATCH 66/70] Update to work with newer versions of PTB PTB - python-telegram-bot library --- defTelegram.py | 54 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/defTelegram.py b/defTelegram.py index d5da824..7290b4d 100644 --- a/defTelegram.py +++ b/defTelegram.py @@ -1,4 +1,17 @@ def sendTeleg(photo, message, config): + try: + from telegram import __version_info__ + except ImportError: + __version_info__ = (0, 0, 0, 0, 0) + if __version_info__ < (20, 0, 0, "alpha", 5): + sent = sendTelegOld(photo, message, config) + return sent + else: + import asyncio + sent = asyncio.run(t_send_photo(photo,message,config)) + return sent + +def sendTelegOld(photo, message, config): import telegram sent = False retry_c = 0 @@ -6,6 +19,45 @@ def sendTeleg(photo, message, config): try: bot = telegram.Bot(token=config.get('TELEGRAM', 'BOT_TOKEN'), request=telegram.utils.request.Request(connect_timeout=20, read_timeout=20)) sent = bot.send_photo(chat_id=config.get('TELEGRAM', 'ROOM_ID'), photo=photo, caption=message, parse_mode=telegram.ParseMode.MARKDOWN, timeout=20) + except Exception as err: + print('err.args:') + print(err.args) + print(f"Unexpected {err=}, {type(err)=}") + print("\nString err:\n"+str(err)) + if retry_c > 4: + print('Telegram attempts exceeded. Message not sent.') + break + elif str(err) == 'Unauthorized': + print('Invalid Telegram bot token, message not sent.') + break + elif str(err) == 'Timed out': + retry_c += 1 + print('Telegram timeout count: '+str(retry_c)) + pass + elif str(err) == 'Chat not found': + print('Invalid Telegram Chat ID, message not sent.') + break + elif str(err)[:35] == '[Errno 2] No such file or directory': + print('Telegram module couldn\'t find an image to sent.') + break + elif str(err) == 'Media_caption_too_long': + print('Telegram image caption length exceeds 1024 characters. Message not sent.') + break + else: + print('[X] Unknown Telegram error. Message not sent.') + break + else: + print("Telegram message successfully sent.") + return sent + +async def t_send_photo(photo,message,config): + import telegram + sent = False + retry_c = 0 + while sent == False: + try: + bot = telegram.Bot(token=config.get('TELEGRAM', 'BOT_TOKEN')) + sent = await bot.send_photo(chat_id=config.get('TELEGRAM', 'ROOM_ID'), photo=photo, caption=message) except Exception as err: print('err.args:') print(err.args) @@ -28,7 +80,7 @@ def sendTeleg(photo, message, config): print('Telegram module couldn\'t find an image to send.') break elif str(err) == 'Media_caption_too_long': - print('Telegram image caption length exceeds 1024 characters. Message not send.') + print('Telegram image caption length exceeds 1024 characters. Message not sent.') break else: print('[X] Unknown Telegram error. Message not sent.') From 371d117b233685f37e1cb72660e343e4f703be24 Mon Sep 17 00:00:00 2001 From: Mark Bumiller Date: Sat, 25 Feb 2023 19:38:04 -0500 Subject: [PATCH 67/70] fix crash when no position Jxck-S/plane-notify#117 --- calculate_headings.py | 3 +++ planeClass.py | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/calculate_headings.py b/calculate_headings.py index 2ac8ac0..437ca37 100644 --- a/calculate_headings.py +++ b/calculate_headings.py @@ -17,6 +17,9 @@ def calculate_cardinal(d): card = dirs[ix % len(dirs)] return card def calculate_deg_change(new_heading, original_heading): + if new_heading is None: + print("Track heading missing. No change") + return 0 """Calculates change between two headings, returns negative degree if change is left, positive if right""" normal = abs(original_heading-new_heading) across_inital = 360 - abs(original_heading-new_heading) diff --git a/planeClass.py b/planeClass.py index 03e6040..4837ec5 100644 --- a/planeClass.py +++ b/planeClass.py @@ -618,7 +618,8 @@ class Plane: from calculate_headings import calculate_deg_change track_change = calculate_deg_change(self.track, self.last_track) track_change = round(track_change, 3) - self.circle_history["traces"].append((time.time(), self.latitude, self.longitude, track_change)) + if self.latitude is not None and self.longitude is not None: + self.circle_history["traces"].append((time.time(), self.latitude, self.longitude, track_change)) total_change = 0 coords = [] From d72a90306b48a8e46a134a60d53dd46edbcade26 Mon Sep 17 00:00:00 2001 From: Mark Bumiller Date: Sun, 26 Feb 2023 11:36:11 -0500 Subject: [PATCH 68/70] removing unused image and code --- __main__.py | 6 +++++- modify_image.py | 5 ----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/__main__.py b/__main__.py index 1040251..b3ee4b7 100644 --- a/__main__.py +++ b/__main__.py @@ -25,7 +25,11 @@ sys.path.extend([os.getcwd()]) #Dependency Handling if not os.path.isdir("./dependencies/"): os.mkdir("./dependencies/") -required_files = [("Roboto-Regular.ttf", 'https://github.com/googlefonts/roboto/blob/main/src/hinted/Roboto-Regular.ttf?raw=true'), ('airports.csv', 'https://ourairports.com/data/airports.csv'), ('regions.csv', 'https://ourairports.com/data/regions.csv'), ('ADSBX_Logo.png', "https://www.adsbexchange.com/wp-content/uploads/cropped-Stealth.png"), ('Mictronics_db.zip', "https://www.mictronics.de/aircraft-database/indexedDB.php")] +required_files = [ + ("Roboto-Regular.ttf", 'https://github.com/googlefonts/roboto/blob/main/src/hinted/Roboto-Regular.ttf?raw=true'), + ('airports.csv', 'https://ourairports.com/data/airports.csv'), + ('regions.csv', 'https://ourairports.com/data/regions.csv'), + ('Mictronics_db.zip', "https://www.mictronics.de/aircraft-database/indexedDB.php")] for file in required_files: file_name = file[0] url = file[1] diff --git a/modify_image.py b/modify_image.py index 1690193..2725b41 100644 --- a/modify_image.py +++ b/modify_image.py @@ -26,11 +26,6 @@ def append_airport(filename, airport, text_credit=None): draw.rectangle(((325, 760), (624, 800)), fill= white, outline=black) #Header Box draw.rectangle(((401, 738), (549, 760)), fill= navish) - #ADSBX Logo - # - # adsbx = Image.open("./dependencies/ADSBX_Logo.png") - # adsbx = adsbx.resize((25, 25), Image.ANTIALIAS) - # image.paste(adsbx, (632, 757), adsbx) #Create Text #ADSBX Credit if text_credit is not None: From a0a8df04db088b1fea8e49766e33a792ab12706e Mon Sep 17 00:00:00 2001 From: Mark Bumiller Date: Sun, 26 Feb 2023 11:51:40 -0500 Subject: [PATCH 69/70] screenshots are now of globe.theairtraffic.com fixes Jxck-S/plane-notify#115 --- PseudoCode.md | 2 +- README.md | 4 ++-- __main__.py | 2 +- configs/mainconf.ini.example | 2 +- defSS.py | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/PseudoCode.md b/PseudoCode.md index f19c627..5c9dcd9 100644 --- a/PseudoCode.md +++ b/PseudoCode.md @@ -4,5 +4,5 @@ - A landing event is previously below 10k feet and (previously getting data, no longer getting data and previously not on the ground) or (now on the ground and previously not on the ground). - Given the coordinates of the aircraft the nearest airport is found in an airport database from the distance is calculated using the Haversine formula. The state, region and country are also found in this database with the airport. - At the time of takeoff a takeoff time is set, which is referenced in the landing event to calculate approximate total flight time. -- A Static map image is created based off location name. (Google Static Maps API) or a screenshot of is created using Selenium/ChromeDriver. The selected plane is locked on in the screenshot. +- A Static map image is created based off location name. (Google Static Maps API) or a screenshot of is created using Selenium/ChromeDriver. The selected plane is locked on in the screenshot. - If the landing event or takeoff event is true, It will output to any of the following built-in output methods. (Twitter, Pushbullet, and Discord can all be setup and enabled in each plane's config file). Outputs the location name, map, image, and flight time on landing. (Tweepy and "Pushbullet.py" and Discord_webhooks) diff --git a/README.md b/README.md index f0bcfb0..4979799 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [![Codacy Badge](https://api.codacy.com/project/badge/Grade/c4e1d839eec3468cadfe351d64dc1ac4)](https://app.codacy.com/manual/Jxck-S/plane-notify?utm_source=github.com&utm_medium=referral&utm_content=Jxck-S/plane-notify&utm_campaign=Badge_Grade_Settings) [![GPLv3 License](https://img.shields.io/badge/License-GPL%20v3-yellow.svg)](https://opensource.org/licenses/) -Notify if configured planes have taken off or landed using Python with OpenSky(free) or ADSBExchange Data(paid but much better), outputs location of takeoff location of landing and takeoff by reverse lookup of coordinates. +Notify if configured planes have taken off or landed using Python with OpenSky(free) or ADSBExchange Data(paid, declining data, and run by clowns), outputs location of takeoff location of landing and takeoff by reverse lookup of coordinates. ### Discord Output Example @@ -43,7 +43,7 @@ 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 overused(No tutorial use to get to a key). +Selenium/ChromeDriver is used to take a screenshot of the plane on globe.theairtraffic.com. Or use Google Static Maps, which can cost money if overused(No tutorial use to get to a key). #### Chrome - This is assuming linux/debian diff --git a/__main__.py b/__main__.py index b3ee4b7..0deedec 100644 --- a/__main__.py +++ b/__main__.py @@ -274,5 +274,5 @@ except Exception as e: logging.error(e) logging.error(str(traceback.format_exc())) from defDiscord import sendDis - sendDis(str("Error Exiting: " + str(e) + f"Failed on ({obj.config_path}) https://globe.adsbexchange.com/?icao={key} "), main_config, main_config.get('DISCORD', 'ROLE_ID'), "crash_latest.log") + sendDis(str("Error Exiting: " + str(e) + f"Failed on ({obj.config_path}) https://globe.theairtraffic.com/?icao={key} "), main_config, main_config.get('DISCORD', 'ROLE_ID'), "crash_latest.log") raise e diff --git a/configs/mainconf.ini.example b/configs/mainconf.ini.example index 3e57b4d..ab65c60 100644 --- a/configs/mainconf.ini.example +++ b/configs/mainconf.ini.example @@ -59,6 +59,6 @@ CONSUMER_KEY = ck CONSUMER_SECRET = cs [MAP] -#Map to create from Google Static Maps or screenshot global tar1090 from globe.adsbexchange.com +#Map to create from Google Static Maps or screenshot global tar1090 from globe.theairtraffic.com #Enter GOOGLESTATICMAP or ADSBX OPTION = ADSBX diff --git a/defSS.py b/defSS.py index ea525b3..140bc66 100644 --- a/defSS.py +++ b/defSS.py @@ -29,7 +29,7 @@ def get_adsbx_screenshot(file_path, url_params, enable_labels=False, enable_trac if platform.system() == "Linux" and os.geteuid()==0: chrome_options.add_argument('--no-sandbox') # required when running as root user. otherwise you would get no sandbox errors. browser = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_options) - url = f"https://globe.adsbexchange.com/?{url_params}" + url = f"https://globe.theairtraffic.com/?{url_params}" print(f"Getting Screenshot of {url}") browser.set_page_load_timeout(80) browser.get(url) From ccc6855d073fd291c8f15d2f12cf81df63328e62 Mon Sep 17 00:00:00 2001 From: Jack Sweeney Date: Fri, 12 May 2023 14:34:00 -0400 Subject: [PATCH 70/70] Update calculate_headings.py Move function explanation def --- calculate_headings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/calculate_headings.py b/calculate_headings.py index 437ca37..617227b 100644 --- a/calculate_headings.py +++ b/calculate_headings.py @@ -17,10 +17,10 @@ def calculate_cardinal(d): card = dirs[ix % len(dirs)] return card def calculate_deg_change(new_heading, original_heading): + """Calculates change between two headings, returns negative degree if change is left, positive if right""" if new_heading is None: print("Track heading missing. No change") return 0 - """Calculates change between two headings, returns negative degree if change is left, positive if right""" normal = abs(original_heading-new_heading) across_inital = 360 - abs(original_heading-new_heading) if across_inital < normal: