@@ -102,27 +102,42 @@ def process_load_queue(self, queue: Queue) -> None:
102102 time .sleep (1 )
103103
104104 async def start_directory_observing (self ) -> None :
105- _LOGGER . debug ( "start_directory_observing" )
105+ """Start observing user directories for changes."""
106106 self .worker .start ()
107107
108- # TODO: add directories into database
109- # webDir = os.path.join(self.core.config.data_dir, "web")
110- # directory = Directory(webDir, 1)
111- # Session.add(directory)
112- # Session.commit()
113-
114108 directories = Session .query (Directory ).all ()
115109 for dir in directories :
116110 path = os .path .join (dir .directory )
117111 self .observer .schedule (self .event_handler , path , recursive = True )
118112 self .observer .start ()
119113
120114 async def stop_directory_observing (self ) -> None :
121- _LOGGER . debug ( "stop_directory_observing" )
115+ """Stop observing user directories."""
122116 self .worker .stop ()
123117 self .observer .stop ()
124118 self .observer .join ()
125119
120+ async def restart_directory_observing (self ) -> None :
121+ """stop and re-start directory observing."""
122+ await self .stop_directory_observing ()
123+ await self .start_directory_observing ()
124+
125+ def create_user_home (self , user_id : str ) -> None :
126+ """Create a directory for the user in the configured data directory."""
127+ # create user_home in filesystem
128+ path = os .path .join (self .config .data_dir , user_id )
129+ os .mkdir (path )
130+
131+ # add user_home to observing
132+ self .observer .schedule (self .event_handler , path , recursive = True )
133+
134+ # add user_home to database
135+ directory = Directory (path , user_id )
136+ Session .add (directory )
137+ Session .commit ()
138+
139+ _LOGGER .info (f"user home for user { user_id } created." )
140+
126141 async def read_photos (self , user_id : int , offset : int = 0 , limit : int = 10 ) -> List :
127142 return (
128143 Session .query (Photo )
0 commit comments