query.py (2069B)
1 import csv 2 import os 3 from enum import Enum 4 import time 5 6 7 # list of search engines 8 class Engine(Enum): 9 STARTPAGE = 'startpage' 10 BRAVE_SEARCH = 'brave_search' 11 DDG = 'ddg' 12 13 class Query: 14 query_message: str 15 engine: Engine 16 time: str 17 captcha_hit: bool 18 captcha_time: float 19 pow_captcha: bool 20 answer_index: int 21 slop_sites_top_5: int 22 unrelated_sites : int 23 24 25 def create_query(): 26 current = time.time() 27 query_message = input("Enter a search query: ") 28 query = Query() 29 query.query_message = query_message 30 query.time = current 31 return query 32 33 34 def ensure_csv(): 35 if not os.path.exists('search.csv') or os.path.getsize('search.csv') == 0: 36 with open('search.csv', 'w', newline='') as f: 37 f.write('query,engine,time,captcha_hit,captcha_time,pow_captcha,slop_sites_top_5,answer_index,unrelated_sites\n') 38 39 def write_query(query): 40 f = open('search.csv', 'a') 41 csvwriter = csv.writer(f) 42 csvwriter.writerow([query.query_message, query.engine.value, query.time, query.captcha_hit, query.captcha_time, query.pow_captcha, query.slop_sites_top_5, query.answer_index, query.unrelated_sites]) 43 f.close() 44 45 ensure_csv() 46 query = create_query() 47 48 for engine in Engine: 49 query.engine = engine 50 print("Searching for " + query.query_message + " with " + engine.value + "") 51 52 captcha = input("Did you see a captcha? (y/n): ") 53 54 if captcha == 'y': 55 query.captcha_time = float(input("How many seconds did it take to solve (6 means failed to solve): ")) 56 query.captcha_hit = True 57 query.pow_captcha = input("Was the captcha a PoW captcha? (y/n): ") == "y" 58 else: 59 query.pow_captcha = False 60 query.captcha_hit = False 61 query.captcha_time = 0 62 63 query.slop_sites_top_5 = int(input("Slop sites / SEO site count in the top 5: ")) 64 query.answer_index = int(input("First index containing the answer (-1 means no answer on first page of results): ")) 65 query.unrelated_sites = int(input("Unrelated site count: ")) 66 print() 67 68 write_query(query)