начало положено

This commit is contained in:
2025-12-17 22:02:26 +03:00
parent 1635aff46c
commit 7334aae92e
17 changed files with 1517 additions and 0 deletions
+143
View File
@@ -0,0 +1,143 @@
from flask import Flask, request, jsonify
from config import Config
from db import MedodsAPI, db, VkPost
from scheduler import start_scheduler
from token_utils import generate_token
from http_client import send_request
import logging
import os
app = Flask(__name__)
app.config.from_object(Config)
db.init_app(app)
os.makedirs("logs", exist_ok=True)
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s | %(levelname)s | %(name)s | %(message)s",
handlers=[
logging.FileHandler(Config.LOG_FILE, encoding="utf-8"),
logging.StreamHandler(),
],
)
logger = logging.getLogger(__name__)
from flask import render_template
@app.route("/")
def index():
return render_template("index.html")
@app.route("/medods")
def medods():
medods_api = MedodsAPI.query.first()
data = {"url": medods_api.url if medods_api else "none"}
return render_template("medods.html", data=data)
@app.route("/vk")
def vk():
return render_template("vk.html")
@app.route("/posts")
def posts():
return render_template("posts.html")
@app.before_request
def init():
db.create_all()
start_scheduler()
logger.info("Приложение запущено")
@app.route("/settings/medods_url", methods=["POST"])
def medods_url():
data = request.json
db.session.merge(MedodsAPI(url=data.get("url", "http://10.3.10.10/api/v2/")))
db.session.commit()
logger.info(data)
return jsonify({"status": "ok"})
@app.route("/settings/medods_apikey", methods=["POST"])
def medods_apikey():
data = request.json
logger.info(data)
return jsonify({"status": "ok"})
@app.route("/settings/requests", methods=["GET", "POST", "PATCH"])
def get_requests():
match request.method:
case "POST":
logger.info("Добавлен новый запрос")
logger.info(request.json)
return jsonify({"status": "ok"})
case "PATCH":
logger.info("Обновлен запрос")
logger.info(request.json)
return jsonify({"status": "ok"})
case "GET":
logger.info("Получен список запросов")
return jsonify(
[
{
"id": 1,
"method": "GET",
"title": "Получить список пользователей",
"url_path": "/users",
"payload": {},
"query": {"limit": 10, "offset": 0},
},
{
"id": 2,
"method": "POST",
"title": "Добавить пост в очередь",
"url_path": "/scheduler",
"payload": {
"text": "Текст поста",
"image": "path/to/image.jpg",
},
"query": {},
},
]
)
case _:
logger.error("Неверный метод запроса")
return jsonify({"status": "error"})
@app.route("/token", methods=["GET"])
def token():
return jsonify({"token": generate_token()})
@app.route("/request", methods=["POST"])
def make_request():
data = request.json
response = send_request(
data["method"], data["url"], data.get("payload"), data.get("headers")
)
return jsonify({"status": response.status_code})
@app.route("/vk/post", methods=["POST"])
def add_post():
data = request.json
post = VkPost(
text=data["text"], image_path=data.get("image"), publish_at=data["publish_at"]
)
db.session.add(post)
db.session.commit()
return jsonify({"status": "ok"})
if __name__ == "__main__":
app.run(debug=True)