mirror of
				https://github.com/Garmelon/PFERD.git
				synced 2025-11-04 06:32:52 +01:00 
			
		
		
		
	Use fixed windows path for video cache
This commit is contained in:
		@@ -23,8 +23,10 @@ ambiguous situations.
 | 
			
		||||
## Unreleased
 | 
			
		||||
 | 
			
		||||
### Fixed
 | 
			
		||||
- Shibboleth login fixed. It was broken due to URL parser changes and really
 | 
			
		||||
- Shibboleth login. It was broken due to URL parser changes and really
 | 
			
		||||
  *unfortunate* behaviour by aiohttp.
 | 
			
		||||
- local video cache on windows if the path was changed to accomodate windows
 | 
			
		||||
  file system limitations (e.g. replace `:`)
 | 
			
		||||
 | 
			
		||||
## 3.3.0 - 2022-01-09
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -499,7 +499,7 @@ instance's greatest bottleneck.
 | 
			
		||||
            log.explain_topic(f"Checking local cache for video {video_path.name}")
 | 
			
		||||
            all_found_locally = True
 | 
			
		||||
            for video in contained_videos:
 | 
			
		||||
                transformed_path = self._transformer.transform(video)
 | 
			
		||||
                transformed_path = self._to_local_video_path(video)
 | 
			
		||||
                if transformed_path:
 | 
			
		||||
                    exists_locally = self._output_dir.resolve(transformed_path).exists()
 | 
			
		||||
                    all_found_locally = all_found_locally and exists_locally
 | 
			
		||||
@@ -509,6 +509,11 @@ instance's greatest bottleneck.
 | 
			
		||||
            log.explain("Missing at least one video, continuing with requests!")
 | 
			
		||||
        return False
 | 
			
		||||
 | 
			
		||||
    def _to_local_video_path(self, path: PurePath) -> Optional[PurePath]:
 | 
			
		||||
        if transformed := self._transformer.transform(path):
 | 
			
		||||
            return self._deduplicator.fixup_path(transformed)
 | 
			
		||||
        return None
 | 
			
		||||
 | 
			
		||||
    @anoncritical
 | 
			
		||||
    @_iorepeat(3, "downloading video")
 | 
			
		||||
    async def _download_video(
 | 
			
		||||
@@ -528,7 +533,7 @@ instance's greatest bottleneck.
 | 
			
		||||
                log.explain(f"Using single video mode for {element.name}")
 | 
			
		||||
                stream_element = stream_elements[0]
 | 
			
		||||
 | 
			
		||||
                transformed_path = self._transformer.transform(original_path)
 | 
			
		||||
                transformed_path = self._to_local_video_path(original_path)
 | 
			
		||||
                if not transformed_path:
 | 
			
		||||
                    raise CrawlError(f"Download returned a path but transform did not for {original_path}")
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -56,6 +56,12 @@ class Deduplicator:
 | 
			
		||||
            log.explain(f"Changed path to {fmt_path(new_path)} for windows compatibility")
 | 
			
		||||
        return new_path
 | 
			
		||||
 | 
			
		||||
    def fixup_path(self, path: PurePath) -> PurePath:
 | 
			
		||||
        """Fixes up the path for windows, if enabled. Returns the path unchanged otherwise."""
 | 
			
		||||
        if self._windows_paths:
 | 
			
		||||
            return self._fixup_for_windows(path)
 | 
			
		||||
        return path
 | 
			
		||||
 | 
			
		||||
    def mark(self, path: PurePath) -> PurePath:
 | 
			
		||||
        if self._windows_paths:
 | 
			
		||||
            path = self._fixup_for_windows(path)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user