def post(self): parser = reqparse.RequestParser() parser.add_argument('page', type=int, default=1, help='') parser.add_argument('minute', type=int, default=10, help='') args = parser.parse_args() page = args.get('page') minute = args.get('minute') setting_col.update_many( {'key': 'task'}, {'$set': { 'key': 'task', 'page': page, 'minute': minute }}, upsert=True) try: os.kill( setting_col.find_one({ 'key': 'task' }).get('pid'), signal.SIGHUP) except ProcessLookupError: pass result = list(setting_col.find({}, {'_id': 0})) data = {'status': 201, 'msg': '设置成功', 'result': result} return jsonify(data)
def get(self): result = list( setting_col.find({'webhook': { '$exists': True }}, {'_id': 0})) data = {'status': 200, 'msg': '获取信息成功', 'result': result} return jsonify(data)
def post(self): parser = reqparse.RequestParser() parser.add_argument('argument', type=str, default=request.host, help='setting argument') parser.add_argument('value', type=str, default=request.host, help='setting value') parser.add_argument('unique', type=inputs.boolean, default=False, help='setting unique') args = parser.parse_args() value = args.get('value') argument = args.get('argument') setting_col.update_many({ 'key': 'system', 'argument': argument }, {'$set': { 'key': 'system', 'argument': argument, 'value': value }}, upsert=True) result = list(setting_col.find({}, {'_id': 0})) data = {'status': 201, 'msg': '设置成功', 'result': result} return jsonify(data)
def webhook_notice(tag, results): if len(results): for webhook_setting in setting_col.find({'webhook': {'$exists': True}, 'enabled': True}, {'domain': 1, 'webhook': 1, '_id': 0}): hostname = webhook_setting.get('domain') webhook = webhook_setting.get('webhook') if 'oapi.dingtalk.com' in webhook: content = { "msgtype": "markdown", "markdown": {"title": "GitHub泄露", "text": '#### [规则名称: {}]({}/?tag={})\n\n- {}'.format(tag, hostname, tag, '\n- '.join(results)) }, "at": { "atMobiles": [ ], "isAtAll": False } } else: content = { "msgtype": "markdown", "markdown": { "content": '#### [规则名称: {}]({}/?tag={})\n\n- {}'.format(tag, hostname, tag, '\n- '.join(results)) } } try: requests.post( webhook, json=content) except Exception as error: logger.error(error)
def get(self): result = setting_col.find({'key': 'system'}, {'_id': 0}) data = {'status': 200, 'msg': '获取信息成功', 'result': result} return jsonify(data)