import json import time import traceback from gevent import monkey monkey.patch_all() from flask import Flask, request from log import Log from config import set_config from words_func import get_words, update_wechat_score_data, get_today_words from update_common_words import add_words2mysql app = Flask(__name__) log_ = Log() config_, env = set_config() @app.route('/healthcheck') def health_check(): return 'ok!' # 获取热点词库中的所有词 @app.route('/hot/word/getAllWords', methods=['GET', 'POST']) def get_all_words(): try: start_time = time.time() request_data = json.loads(request.get_data()) page_num = request_data.get('pageNum', 1) page_size = request_data.get('pageSize', 100) words = get_words(page_num=page_num, page_size=page_size) result = {'code': 200, 'message': 'success', 'data': {'words': words}} log_message = { 'requestUri': '/hot/word/getAllWords', 'logTimestamp': int(time.time() * 1000), 'result': result, 'executeTime': (time.time() - start_time) * 1000 } log_.info(log_message) return json.dumps(result) except Exception as e: log_.error(traceback.format_exc()) result = {'code': -1, 'message': 'fail'} return json.dumps(result) # 更新热点词的微信指数 @app.route('/hot/word/updateWechatScore', methods=['GET', 'POST']) def update_wechat_score(): try: start_time = time.time() request_data = json.loads(request.get_data()) data = request_data.get('data', None) update_wechat_score_data(data=data) result = {'code': 200, 'message': 'success'} log_.info(f"executeTime = {(time.time() - start_time) * 1000}") return json.dumps(result) except Exception as e: log_.error(traceback.format_exc()) result = {'code': -1, 'message': 'fail'} return json.dumps(result) # 更新飞书指定表格中的数据到热点词库 @app.route('/hot/word/updateWords', methods=['GET', 'POST']) def update_words(): try: start_time = time.time() request_data = json.loads(request.get_data()) sheet_name = request_data.get('sheet_name') source = request_data.get('source') if sheet_name is not None and source is not None: add_words2mysql(sheet_name=sheet_name, source=source) result = {'code': 200, 'message': 'success'} else: log_.error(f"sheet_name = {sheet_name}, source = {source}") result = {'code': -1, 'message': 'fail'} log_message = { 'requestUri': '/hot/word/updateWords', 'logTimestamp': int(time.time() * 1000), 'result': result, 'executeTime': (time.time() - start_time) * 1000 } log_.info(log_message) return json.dumps(result) except Exception as e: log_.error(traceback.format_exc()) result = {'code': -1, 'message': 'fail'} return json.dumps(result) # 获取热点词库中当天更新的所有热词 @app.route('/hot/word/getTodayWords', methods=['GET', 'POST']) def get_today_all_words(): try: start_time = time.time() request_data = json.loads(request.get_data()) page_num = request_data.get('pageNum', 1) page_size = request_data.get('pageSize', 100) words = get_today_words(page_num=page_num, page_size=page_size) result = {'code': 200, 'message': 'success', 'data': {'words': words}} log_message = { 'requestUri': '/hot/word/getTodayWords', 'logTimestamp': int(time.time() * 1000), 'result': result, 'executeTime': (time.time() - start_time) * 1000 } log_.info(log_message) return json.dumps(result) except Exception as e: log_.error(traceback.format_exc()) result = {'code': -1, 'message': 'fail'} return json.dumps(result) if __name__ == '__main__': app.run()