123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- 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()
|