Add search operators #10
@ -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