mirror of https://github.com/CIRCL/lookyloo
				
				
				
			
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
| #!/usr/bin/env python3
 | |
| 
 | |
| import csv
 | |
| import argparse
 | |
| import logging
 | |
| 
 | |
| from lookyloo import Indexing, Lookyloo
 | |
| from lookyloo.helpers import get_captures_dir
 | |
| 
 | |
| logging.basicConfig(format='%(asctime)s %(name)s %(levelname)s:%(message)s',
 | |
|                     level=logging.INFO)
 | |
| 
 | |
| 
 | |
| def main() -> None:
 | |
|     parser = argparse.ArgumentParser(description='Rebuild the redis cache.')
 | |
|     parser.add_argument('--rebuild_pickles', default=False, action='store_true', help='Delete and rebuild the pickles. Count 20s/pickle, it can take a very long time.')
 | |
|     args = parser.parse_args()
 | |
| 
 | |
|     lookyloo = Lookyloo()
 | |
|     if args.rebuild_pickles:
 | |
|         lookyloo.rebuild_all()
 | |
|     else:
 | |
|         lookyloo.rebuild_cache()
 | |
| 
 | |
|     indexing = Indexing()
 | |
|     indexing.clear_indexes()
 | |
| 
 | |
|     # Initialize lookup_dirs key
 | |
|     for index in get_captures_dir().rglob('index'):
 | |
|         with index.open('r') as _f:
 | |
|             recent_uuids = {uuid: str(index.parent / dirname) for uuid, dirname in csv.reader(_f) if (index.parent / dirname).exists()}
 | |
|         if recent_uuids:
 | |
|             lookyloo.redis.hset('lookup_dirs', mapping=recent_uuids)  # type: ignore[arg-type]
 | |
| 
 | |
|     # This call will rebuild all the caches as needed.
 | |
|     lookyloo.sorted_capture_cache()
 | |
| 
 | |
| 
 | |
| if __name__ == '__main__':
 | |
|     main()
 |