Add search operators #10
@ -70,13 +70,24 @@ def search_by_pssh_or_kid(search_filter):
|
|||||||
try:
|
try:
|
||||||
with mysql.connector.connect(**get_db_config()) as conn:
|
with mysql.connector.connect(**get_db_config()) as conn:
|
||||||
cursor = conn.cursor()
|
cursor = conn.cursor()
|
||||||
like_filter = f"%{search_filter}%"
|
if search_filter.lower().startswith("kid:"):
|
||||||
|
value = search_filter[4:]
|
||||||
|
|
||||||
cursor.execute('SELECT PSSH, KID, `Key` FROM licenses WHERE PSSH LIKE %s', (like_filter,))
|
cursor.execute('SELECT PSSH, KID, `Key` FROM licenses WHERE KID = %s', (value,))
|
||||||
results.update(cursor.fetchall())
|
results.update(cursor.fetchall())
|
||||||
|
elif search_filter.lower().startswith("pssh:"):
|
||||||
|
value = search_filter[5:]
|
||||||
|
|
||||||
cursor.execute('SELECT PSSH, KID, `Key` FROM licenses WHERE KID LIKE %s', (like_filter,))
|
cursor.execute('SELECT PSSH, KID, `Key` FROM licenses WHERE PSSH LIKE %s', (f"%{value}%",))
|
||||||
results.update(cursor.fetchall())
|
results.update(cursor.fetchall())
|
||||||
|
else:
|
||||||
|
like_filter = f"%{search_filter}%"
|
||||||
|
|
||||||
|
cursor.execute('SELECT PSSH, KID, `Key` FROM licenses WHERE PSSH LIKE %s', (like_filter,))
|
||||||
|
results.update(cursor.fetchall())
|
||||||
|
|
||||||
|
cursor.execute('SELECT PSSH, KID, `Key` FROM licenses WHERE KID LIKE %s', (like_filter,))
|
||||||
|
results.update(cursor.fetchall())
|
||||||
|
|
||||||
final_results = [{'PSSH': row[0], 'KID': row[1], 'Key': row[2]} for row in results]
|
final_results = [{'PSSH': row[0], 'KID': row[1], 'Key': row[2]} for row in results]
|
||||||
return final_results[:20]
|
return final_results[:20]
|
||||||
|
@ -43,21 +43,28 @@ def search_by_pssh_or_kid(search_filter):
|
|||||||
# Initialize a set to store unique matching records
|
# Initialize a set to store unique matching records
|
||||||
results = set()
|
results = set()
|
||||||
|
|
||||||
# Search for records where PSSH contains the search_filter
|
if search_filter.lower().startswith("kid:"):
|
||||||
cursor.execute('''
|
value = search_filter[4:]
|
||||||
SELECT * FROM licenses WHERE PSSH LIKE ?
|
|
||||||
''', ('%' + search_filter + '%',))
|
|
||||||
rows = cursor.fetchall()
|
|
||||||
for row in rows:
|
|
||||||
results.add((row[1], row[2], row[3])) # (PSSH, KID, Key)
|
|
||||||
|
|
||||||
# Search for records where KID contains the search_filter
|
# Search for records where KID matches the operator value
|
||||||
cursor.execute('''
|
cursor.execute('SELECT PSSH, KID, `Key` FROM licenses WHERE KID = ?', (value,))
|
||||||
SELECT * FROM licenses WHERE KID LIKE ?
|
results.update(cursor.fetchall())
|
||||||
''', ('%' + search_filter + '%',))
|
elif search_filter.lower().startswith("pssh:"):
|
||||||
rows = cursor.fetchall()
|
value = search_filter[5:]
|
||||||
for row in rows:
|
|
||||||
results.add((row[1], row[2], row[3])) # (PSSH, KID, Key)
|
# Search for records where PSSH contains the operator
|
||||||
|
cursor.execute('SELECT PSSH, KID, `Key` FROM licenses WHERE PSSH LIKE ?', (f"%{value}%",))
|
||||||
|
results.update(cursor.fetchall())
|
||||||
|
else:
|
||||||
|
like_filter = f"%{search_filter}%"
|
||||||
|
|
||||||
|
# Search for records where PSSH contains the search_filter
|
||||||
|
cursor.execute('SELECT PSSH, KID, `Key` FROM licenses WHERE PSSH LIKE ?', (like_filter,))
|
||||||
|
results.update(cursor.fetchall())
|
||||||
|
|
||||||
|
# Search for records where KID contains the search_filter
|
||||||
|
cursor.execute('SELECT PSSH, KID, `Key` FROM licenses WHERE KID LIKE ?', (like_filter,))
|
||||||
|
results.update(cursor.fetchall())
|
||||||
|
|
||||||
# Convert the set of results to a list of dictionaries for output
|
# Convert the set of results to a list of dictionaries for output
|
||||||
final_results = [{'PSSH': result[0], 'KID': result[1], 'Key': result[2]} for result in results]
|
final_results = [{'PSSH': result[0], 'KID': result[1], 'Key': result[2]} for result in results]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user