from flask import Flask, request, redirect, url_for, render_template_string import sqlite3 import threading import webbrowser app = Flask(__name__) DB_NAME = "risk_system.db" # ---------- DATABASE SETUP ---------- def init_db(): conn = sqlite3.connect(DB_NAME) cursor = conn.cursor() cursor.execute(""" CREATE TABLE IF NOT EXISTS risk_list ( number TEXT PRIMARY KEY, risk_level TEXT, reviews TEXT ) """) cursor.execute(""" CREATE TABLE IF NOT EXISTS aadhar_mapping ( number TEXT PRIMARY KEY, aadhar TEXT ) """) cursor.execute(""" CREATE TABLE IF NOT EXISTS aadhar_numbers ( aadhar TEXT, number TEXT ) """) conn.commit() conn.close() init_db() # ---------- HELPER FUNCTIONS ---------- def get_db(): return sqlite3.connect(DB_NAME) def check_and_flag(number): conn = get_db() cursor = conn.cursor() result = {"number": number, "risk": None, "reviews": None, "aadhar": None, "linked_numbers": []} # Step 1: Risk List lookup cursor.execute("SELECT risk_level, reviews FROM risk_list WHERE number=?", (number,)) row = cursor.fetchone() if row: result["risk"] = row[0] result["reviews"] = row[1] # Step 2: Aadhaar mapping cursor.execute("SELECT aadhar FROM aadhar_mapping WHERE number=?", (number,)) aadhar_row = cursor.fetchone() if aadhar_row: aadhar = aadhar_row[0] result["aadhar"] = aadhar cursor.execute("SELECT number FROM aadhar_numbers WHERE aadhar=?", (aadhar,)) linked_numbers = [n[0] for n in cursor.fetchall()] result["linked_numbers"] = linked_numbers # Step 3: If risky, flag all linked numbers if row: for n in linked_numbers: cursor.execute("INSERT OR IGNORE INTO risk_list VALUES (?, ?, ?)", (n, row[0], "Auto-flagged via Aadhaar link")) conn.commit() conn.close() return result def add_review(number, review, risk_level="Medium"): conn = get_db() cursor = conn.cursor() cursor.execute("SELECT reviews FROM risk_list WHERE number=?", (number,)) row = cursor.fetchone() if row: updated_reviews = row[0] + " | " + review cursor.execute("UPDATE risk_list SET reviews=?, risk_level=? WHERE number=?", (updated_reviews, risk_level, number)) else: cursor.execute("INSERT INTO risk_list VALUES (?, ?, ?)", (number, risk_level, review)) conn.commit() conn.close() def get_all_risks(): conn = get_db() cursor = conn.cursor() cursor.execute("SELECT * FROM risk_list") rows = cursor.fetchall() conn.close() return rows # ---------- HTML TEMPLATES ---------- INDEX_HTML = """
Risk: {{ result.risk if result.risk else "Not in Risk List" }}
Reviews: {{ result.reviews if result.reviews else "None" }}
Aadhaar: {{ result.aadhar if result.aadhar else "Not linked" }}
Linked Numbers: {{ result.linked_numbers if result.linked_numbers else "None" }}
Seed demo data | View all risks
""" ALL_RISKS_HTML = """| Number | Risk Level | Reviews |
|---|---|---|
| {{ row[0] }} | {{ row[1] }} | {{ row[2] }} |