def _scan(self, root, media_dirs=None):
i = 0
with os.scandir(root) as it:
for entry in it:
i += 1
if i > SPEED_LIMIT:
# this allows the event loop to update
await asyncio.sleep(SPEED_WAIT_SEC)
i = 0
if self.stopped or self.interrupted:
return
if media_dirs:
if entry.name in media_dirs:
await self._scan(entry.path, media_dirs=None)
elif not entry.name.startswith('.'):
if entry.is_dir(follow_symlinks=False):
await self._scan(entry.path, media_dirs=None)
elif entry.name.rpartition('.')[2] in VIDEO_FILES_EXT:
await self._refresh_video(entry.path)
评论列表
文章目录