Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from flask import Flask, jsonify, request
- import requests
- import json
- import os
- web_server = Flask(__name__)
- # Datos de DuckDNS
- DUCKDNS_DOMINIO = "frikibots"
- DUCKDNS_TOKEN = "abf282c2-e218-43d6-8574-b8c09318beff"
- # Ruta del archivo JSON para almacenar el diccionario
- data_file = "data.json"
- # Función para guardar el diccionario en el archivo JSON
- def guardar_datos_en_archivo(data):
- with open(data_file, 'w') as f:
- json.dump(data, f)
- # Función para leer el diccionario desde el archivo JSON
- def leer_datos_desde_archivo():
- if os.path.exists(data_file):
- with open(data_file, 'r') as f:
- return json.load(f)
- return {}
- # Ruta para guardar datos
- @web_server.route('/guardar', methods=['POST'])
- def guardar_datos():
- try:
- new_data = request.get_json()
- data = leer_datos_desde_archivo()
- data.update(new_data)
- guardar_datos_en_archivo(data)
- return jsonify({"message": "Datos guardados exitosamente"})
- except Exception as e:
- return jsonify({"error": str(e)}), 500
- # Ruta para leer datos
- @web_server.route('/leer', methods=['GET'])
- def leer_datos():
- data = leer_datos_desde_archivo()
- return jsonify(data)
- @web_server.route('/')
- def hello():
- return '<b>SERVIDOR FUNCIONANDO</b>'
- if __name__ == '__main__':
- PUERTO = 5000
- ip_publica = requests.get("https://global.ketchcdn.com/web/v2/ip").json()["location"]["ip"]
- print(f'IP PÚBLICA: {ip_publica}')
- requests.get(f"https://www.duckdns.org/update?domains={DUCKDNS_DOMINIO}&token={DUCKDNS_TOKEN}&ip={ip_publica}")
- print(f'CON DNS: http://{DUCKDNS_DOMINIO}.duckdns.org:{PUERTO}/leer')
- print(f'SIN DNS: http://{ip_publica}:{PUERTO}/leer')
- web_server.run(host='0.0.0.0', port=PUERTO)
Advertisement
Add Comment
Please, Sign In to add comment