uniapp,h5

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. #video.py
  2. from app.libs.redprint import Redprint
  3. from flask import jsonify, request
  4. from app.app import mongo
  5. from app.app import jwt
  6. from bson.json_util import dumps
  7. from bson.objectid import ObjectId
  8. from flask_jwt_extended import create_access_token, jwt_required, get_jwt_identity
  9. import bcrypt
  10. import re
  11. from pymongo.errors import DuplicateKeyError
  12. from werkzeug.exceptions import BadRequest
  13. # 初始化红图
  14. api = Redprint('video')
  15. @api.route('/get')
  16. def get_video():
  17. return "I am video get method"
  18. @api.route('/getall')
  19. def get_all_video():
  20. video_infos = list(mongo.db.videos.find())
  21. # 将ObjectId转换为字符串,以便于JSON序列化
  22. # 使用bson的json_util来序列化包含ObjectId的对象
  23. # json_string = dumps(user_infos)
  24. for video_info in video_infos:
  25. video_info["_id"] = str(video_info["_id"])
  26. return jsonify(video_infos)
  27. @api.route('/getBlobUrl', methods=['GET'])
  28. def get_blob_url_video():
  29. try:
  30. # 从查询字符串中获取参数
  31. query = ObjectId(request.args.get('query'))
  32. print(query)
  33. if not query:
  34. raise BadRequest("查询参数为空")
  35. video = mongo.db.videos.find_one({"_id": query})
  36. if video:
  37. bolb_url = video["video_url"]
  38. print(bolb_url)
  39. if bolb_url:
  40. return jsonify({'queryRes': bolb_url}), 200
  41. else:
  42. return jsonify({'queryRes': "None Result"}), 404
  43. except BadRequest as e:
  44. return jsonify({"error": str(e)}), 400
  45. except Exception as e:
  46. return jsonify({"error": "内部服务器错误"}), 500
  47. @api.route('/search', methods=['GET'])
  48. def search_specify_video():
  49. try:
  50. # 从查询字符串中获取参数
  51. query = request.args.get('query')
  52. print(query)
  53. if not query:
  54. raise BadRequest("查询参数为空")
  55. # 搜索视频 如果由#开头则搜索id,否则搜索视频名称
  56. video = {}
  57. videos = []
  58. if query[0] == '#' :
  59. if (query == "#1000001#") :
  60. videos = mongo.db.videos.find()
  61. else:
  62. video = mongo.db.videos.find_one({"video_id": query})
  63. else :
  64. paQuery = {"video_name": {"$regex": query, "$options": "i"}}
  65. videos = mongo.db.videos.find(paQuery)
  66. # queryVideo = {}
  67. queryRes = []
  68. if video:
  69. queryVideo = {}
  70. queryVideo["duration"] = video["duration"]
  71. queryVideo["cover_url"] = video["cover_url"]
  72. queryVideo["video_name"] = video["video_name"]
  73. queryVideo["uploader_id"] = video["uploader_id"]
  74. # queryVideo["video_url"] = video["video_url"]
  75. queryVideo["video_id"] = str(video["_id"])
  76. queryRes.append(queryVideo)
  77. for videoItem in videos:
  78. queryVideo = {}
  79. queryVideo["duration"] = videoItem["duration"]
  80. queryVideo["cover_url"] = videoItem["cover_url"]
  81. queryVideo["video_name"] = videoItem["video_name"]
  82. queryVideo["uploader_id"] = videoItem["uploader_id"]
  83. # queryVideo["video_url"] = video["video_url"]
  84. queryVideo["video_id"] = str(videoItem["_id"])
  85. queryRes.append(queryVideo)
  86. if len(queryRes):
  87. return jsonify({'queryRes': queryRes}), 200
  88. else:
  89. return jsonify({'queryRes': "None Result"}), 200
  90. except BadRequest as e:
  91. return jsonify({"error": str(e)}), 400
  92. except Exception as e:
  93. return jsonify({"error": "内部服务器错误"}), 500