47 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # Copyright 2015 Adafruit Industries.
 | |
| # Author: Tony DiCola
 | |
| # License: GNU GPLv2, see LICENSE.txt
 | |
| import glob
 | |
| 
 | |
| from usb_drive_mounter import USBDriveMounter
 | |
| 
 | |
| 
 | |
| class USBDriveReader(object):
 | |
| 
 | |
|     def __init__(self, config):
 | |
|         """Create an instance of a file reader that uses the USB drive mounter
 | |
|         service to keep track of attached USB drives and automatically mount
 | |
|         them for reading videos.
 | |
|         """
 | |
|         self._load_config(config)
 | |
|         self._mounter = USBDriveMounter(root=self._mount_path,
 | |
|                                         readonly=self._readonly)
 | |
|         self._mounter.start_monitor()
 | |
| 
 | |
| 
 | |
|     def _load_config(self, config):
 | |
|         self._mount_path = config.get('usb_drive', 'mount_path')
 | |
|         self._readonly = config.getboolean('usb_drive', 'readonly')
 | |
| 
 | |
|     def search_paths(self):
 | |
|         """Return a list of paths to search for files. Will return a list of all
 | |
|         mounted USB drives.
 | |
|         """
 | |
|         self._mounter.mount_all()
 | |
|         return glob.glob(self._mount_path + '*')
 | |
| 
 | |
|     def is_changed(self):
 | |
|         """Return true if the file search paths have changed, like when a new
 | |
|         USB drive is inserted.
 | |
|         """
 | |
|         return self._mounter.poll_changes()
 | |
| 
 | |
|     def idle_message(self):
 | |
|         """Return a message to display when idle and no files are found."""
 | |
|         return 'Insert USB drive with compatible movies.'
 | |
| 
 | |
| 
 | |
| def create_file_reader(config):
 | |
|     """Create new file reader based on mounting USB drives."""
 | |
|     return USBDriveReader(config)
 |