FRIKIdelTO

Untitled

Aug 1st, 2023
1,050
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.78 KB | None | 0 0
  1. from flask import Flask, jsonify, request
  2. import requests
  3. import json
  4. import os
  5.  
  6. web_server = Flask(__name__)
  7.  
  8. # Datos de DuckDNS
  9. DUCKDNS_DOMINIO = "frikibots"
  10. DUCKDNS_TOKEN = "abf282c2-e218-43d6-8574-b8c09318beff"
  11.  
  12. # Ruta del archivo JSON para almacenar el diccionario
  13. data_file = "data.json"
  14.  
  15. # Función para guardar el diccionario en el archivo JSON
  16. def guardar_datos_en_archivo(data):
  17.     with open(data_file, 'w') as f:
  18.         json.dump(data, f)
  19.  
  20. # Función para leer el diccionario desde el archivo JSON
  21. def leer_datos_desde_archivo():
  22.     if os.path.exists(data_file):
  23.         with open(data_file, 'r') as f:
  24.             return json.load(f)
  25.     return {}
  26.  
  27. # Ruta para guardar datos
  28. @web_server.route('/guardar', methods=['POST'])
  29. def guardar_datos():
  30.     try:
  31.         new_data = request.get_json()
  32.         data = leer_datos_desde_archivo()
  33.         data.update(new_data)
  34.         guardar_datos_en_archivo(data)
  35.         return jsonify({"message": "Datos guardados exitosamente"})
  36.     except Exception as e:
  37.         return jsonify({"error": str(e)}), 500
  38.  
  39. # Ruta para leer datos
  40. @web_server.route('/leer', methods=['GET'])
  41. def leer_datos():
  42.     data = leer_datos_desde_archivo()
  43.     return jsonify(data)
  44.  
  45. @web_server.route('/')
  46. def hello():
  47.     return '<b>SERVIDOR FUNCIONANDO</b>'
  48.  
  49.  
  50. if __name__ == '__main__':
  51.     PUERTO = 5000
  52.     ip_publica = requests.get("https://global.ketchcdn.com/web/v2/ip").json()["location"]["ip"]
  53.     print(f'IP PÚBLICA: {ip_publica}')
  54.     requests.get(f"https://www.duckdns.org/update?domains={DUCKDNS_DOMINIO}&token={DUCKDNS_TOKEN}&ip={ip_publica}")
  55.     print(f'CON DNS: http://{DUCKDNS_DOMINIO}.duckdns.org:{PUERTO}/leer')
  56.     print(f'SIN DNS: http://{ip_publica}:{PUERTO}/leer')
  57.     web_server.run(host='0.0.0.0', port=PUERTO)
  58.  
Advertisement
Add Comment
Please, Sign In to add comment