from turtle import width from urllib import response from flask import Flask, send_file, jsonify, Markup, render_template from PIL import Image, ImageDraw, ImageFont import json import io import mimetypes import os import webbrowser ip_run = "127.0.0.23" port_run = 80 app = Flask(__name__) global root_folder root_folder = os.getcwd() + "\\" print(root_folder) @app.route("/") def index(): value = Markup('The HTML String') response = render_template("app3.html") return response @app.route("/autoc/") def hentai_autoc(cut_tag): dataf = json.load(open(root_folder+"data_info.json", "r", encoding='utf-8')) tagss = dataf["tags"] count = 0 list_res = [] for ii in tagss: if ii.startswith(cut_tag, 0): count += 1 list_res.append(ii) json_resp = {"count":count,"list":list_res} response = jsonify(json_resp) response.headers.add('Access-Control-Allow-Origin', '*') return response @app.route("/autoc/") def hentai_autoc_m(): dataf = json.load(open(root_folder+"data_info.json", "r", encoding='utf-8')) tagss = dataf["tags"] count = len(tagss) json_resp = {"count":count,"list":tagss} response = jsonify(json_resp) response.headers.add('Access-Control-Allow-Origin', '*') return response @app.route("/search//") def hentai_search(types, tags): print(types) if tags[-1] == "+": tags = tags[:-1] tagsp = tags.split("+") dataf = json.load(open(root_folder+"data_info.json", "r", encoding='utf-8')) posts = dataf["data_set"] count = 0 list_res = [] for ii in posts: contun = 2 for dd in tagsp: if dd in ii["tags"]: pass else: contun -= 1 if types == "mix": pass else: if ii["rating"] == types: pass else: contun -= 1 if contun == 2: if ".webm" in ii["file"] or ".mp4" in ii["file"] or ".avi" in ii["file"] or ".flv" in ii["file"]: typef = "v" else: typef = "i" res_post = {"tags":" ".join(ii["tags"]), "id":ii["id"], "type":typef, "rating":ii["rating"], "url_full":"/file/full/"+ii["file"], "url_thumb":"/file/thumb/"+ii["file"]} list_res.append(res_post) count += 1 json_resp = {"count":count,"list":list_res} response = jsonify(json_resp) response.headers.add('Access-Control-Allow-Origin', '*') return response @app.route("/static//") def static_a(filetype, filename): ext = filename.split(".")[-1] response = send_file(root_folder+"static/"+filetype+"/"+filename, mimetype=mimetypes.types_map['.'+ext]) response.headers.add('Access-Control-Allow-Origin', '*') return response @app.route("/file//") def hentai_img(filetype, filename): if filetype == "full": ext = filename.split(".")[-1] response = send_file(root_folder+"data_img/"+filename, mimetype="image/"+ext) response.headers.add('Access-Control-Allow-Origin', '*') return response if filetype == "thumb": ext = filename.split(".")[-1] images = Image.open(root_folder+"data_img/"+filename) if images.width >= images.height: widtha = 250 percent = widtha / images.width heighta = round(images.height * percent) else: heighta = 250 percent = heighta / images.height widtha = round(images.width * percent) images = images.resize((widtha, heighta)) io_data = io.BytesIO() if ext == "jpg": extf = "jpeg" else: extf = ext images.save(io_data, extf) io_data.seek(0) return send_file(io_data, mimetype="image/"+ext) if __name__ == "__main__": app.run(ip_run, port_run, debug=True)