app.py 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import webview
  4. import random
  5. import time
  6. from flask import Flask, render_template, jsonify, request
  7. server = Flask(__name__, template_folder='./templates', static_folder='./static')
  8. @server.route("/")
  9. def index():
  10. return render_template("search-container.html")
  11. @server.route("/GetSearchURL")
  12. def get_search_url():
  13. search = request.args.get('search', '')
  14. platform = request.args.get('platform', '')
  15. # 使用时间戳生成随机且绝不重复的3位数ID
  16. timestamp = int(time.time()) # 获取当前时间戳
  17. random.seed(timestamp) # 设置随机数种子为时间戳
  18. random_id = random.randint(100, 999) # 生成一个3位随机整数作为ID
  19. if platform != "":
  20. dynamic_url = f'/SearchPage?search={search}&platform={platform}'
  21. data = {
  22. 'code': 0,
  23. 'msg': 'succ',
  24. 'data': {
  25. 'id': random_id,
  26. 'title': search,
  27. 'search_url': dynamic_url
  28. }
  29. }
  30. return jsonify(data)
  31. else:
  32. return jsonify({'code': 1, 'msg': 'error'})
  33. @server.route("/SearchPage")
  34. def search_page():
  35. search = request.args.get('search', '')
  36. platform = request.args.get('platform', '')
  37. data = {"title": search}
  38. return render_template("iframe-search-results.html", render_data=data)
  39. @server.route("/ComicDetails/<platform>/<comic>")
  40. def comic_details_page(platform, comic):
  41. print(platform, comic)
  42. data = {"comic": comic}
  43. return render_template("iframe-comic-details.html", render_data=data)
  44. if __name__ == '__main__':
  45. chinese = {
  46. 'global.quitConfirmation': u'确定关闭?',
  47. }
  48. window = webview.create_window(
  49. title='IOmga',
  50. url=server,
  51. width=1080,
  52. height=845,
  53. resizable=True,
  54. # frameless=True,
  55. # easy_drag=True,
  56. # hidden=True,
  57. # transparent=True, # 窗口透明度
  58. confirm_close=True,
  59. text_select=True,
  60. )
  61. # edgechromium cef
  62. webview.start(gui="cef", localization=chinese, debug=True, http_server=True)