def push(): dn = Domain() dn.uid = str(uuid.uuid4()) dn.name = request.form['domain'] dn.status = "legitimate" if not re.match(r'^[a-zA-Z0-9-_\\.]+$', dn.name): raise BadRequest('Invalid domain name') while dn.name.startswith('*.'): dn.name = dn.name.split('.', 1)[1] keywords = app.config['SUSPICIOUS_KEYWORDS'] matches = [] for k in keywords: matches.extend([{ "keyword": k, "matched": word, "score": score } for word, score in fuzzy_process.extractBests(k, (dn.name, ), score_cutoff=70)]) if matches or request.form.get('from-ui'): dn.status = "check-queued" try: db.session.add(dn) db.session.commit() except IntegrityError: db.session.rollback() if request.form.get('from-ui'): return redirect('/') return jsonify({"status": "already-exists", "matches": matches}) else: if matches or request.form.get('from-ui'): rs.rpush('screen-jobs', json.dumps({"uid": dn.uid})) if request.form.get('from-ui'): return redirect('/') return jsonify({"status": dn.status, "matches": matches})