30 lines
865 B
Python
Executable file
30 lines
865 B
Python
Executable file
#!/bin/bash
|
|
|
|
from flask import Flask
|
|
from flask import Request
|
|
import json
|
|
from urllib.parse import unquote
|
|
|
|
app = Flask(__name__)
|
|
## Todo - Boolean search (AND/OR/NOT/"")
|
|
@app.route("/search/<query>")
|
|
def search(query):
|
|
with open('data/index.json', 'r') as index_json:
|
|
index = json.load(index_json)
|
|
query = unquote(query)
|
|
query_split = query.split()
|
|
result = []
|
|
for q in query_split:
|
|
q = q.lower()
|
|
if q in index:
|
|
for item in index[q]:
|
|
matching_results = list(filter(lambda entry: entry['url'] == item["url"], result))
|
|
if len(matching_results) == 0:
|
|
result.append(item)
|
|
else:
|
|
matching_results[0]["count"] += item["count"]
|
|
return result
|
|
|
|
def handle_and():
|
|
pass
|
|
|