import time                                                                                                                                           
import requests                                                                                                                                       
from settings import get_connection                                                                                                                   
                                                                                                                                                      
def main():                                                                                                                                           
    with get_connection() as conn:                                                                                                                    
        with conn.cursor() as cur:                                                                                                                    
            sql_statement = """                                                                                                                       
                select *                                                                                                                              
                from `unloze_anti-spoofing`.sb_bans_shortened sb                                                                                      
                left outer join `unloze_anti-spoofing`.connect_restriction cr on                                                                      
                  sb.steam_id = cr.steam_id                                                                                                           
                    where cr.asn is null                                                                                                              
            """
            cur.execute(sql_statement)
            res = cur.fetchall()
    for index, r in enumerate(res):
        steam_id = r[0]
        ip = r[1]
        url = f"https://proxycheck.io/v2/{ip}?key=30r040-2w8k51-711148-8118n3&asn=1"
        jrequest = requests.get(url).json()
        #print(jrequest)
        d = jrequest[ip]
        asn = d["asn"]
        provider = d["provider"]
        country = d["country"]
        with get_connection() as conn:
            with conn.cursor() as cur:
                sql_statement = """
                    insert ignore into `unloze_anti-spoofing`.connect_restriction
                      (country, asn, provider, steam_id, ipv4)
                      values (%s, %s, %s, %s, %s)
                """
                cur.execute(sql_statement, [country, asn, provider, steam_id, ip])
                conn.commit()
        time.sleep(2.5)
        print(f'at {index + 1}/{len(res)}')

if __name__ == '__main__':
    main()