import json import requests import textwrap from ITS.api import gather_cctv_list import urllib.parse from flask import Flask from flask_restx import Api from flask_cors import CORS from apscheduler.schedulers.background import BackgroundScheduler from apscheduler.triggers.interval import IntervalTrigger API_ENDPOINT = "http://165.229.169.148:8080/EquipmentUrlChanger.json" app = Flask(__name__) print("ITS API Updater START") CORS(app) api = Api(app, version='0.1', title="monitoring", description="API Server", terms_url="/", contact="", ) def print_request(req): from requests_toolbelt.utils import dump data = dump.dump_all(req) print(data.decode('utf-8')) def url_list_sender(): df = gather_cctv_list(129.2, 129.3, 35.9, 36.07, 1, "its", 1) df = df.drop("roadsectionid", axis=1) df = df.drop("cctvresolution", axis=1) df = df.drop("filecreatetime", axis=1) headers = { 'Content-Type': 'application/json', # 'User-Agent': 'PostmanRuntime/7.39.0', 'Accept': '*/*', # 'Postman-Token': 'c9688f7d-228b-4ac7-80d2-217dec302bc8', 'Accept-Encoding': 'gzip, deflate, br', 'Connection': 'keep-alive', # 'Content-Length': '5465' } payload = df.T.to_dict() payload = list(payload.values()) payload = json.dumps(payload, indent=2) #, ensure_ascii=False) # the server in question is not using UTF-8, change it when it does. response = requests.post(API_ENDPOINT, headers=headers, data=payload) print_request(response) url_list_sender() scheduler = BackgroundScheduler() scheduler.start() scheduler.add_job( func=url_list_sender, trigger=IntervalTrigger(hours=10), id='weather_data_update', name='update weather time every 6 hours', replace_existing=True )