blog

Personal blog
git clone git://git.laack.co/blog.git
Log | Files | Refs

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)