diff --git a/helper.py b/helper.py index 7aa7559..6e326c8 100644 --- a/helper.py +++ b/helper.py @@ -6,46 +6,35 @@ import aiohttp import asyncio async def read_file(path): - assert isinstance(path, str), "Path must be a string" - try: async with aiofiles.open(path, 'r', encoding='utf-8') as file: - content = await file.read() - return content - except FileNotFoundError: - return "Error: File not found." + return await file.read() except Exception as e: - return f"Error: {str(e)}" + print(f"Error reading file: {str(e)}") + return None async def get_video_duration_from_file(video_path): try: - result = await asyncio.create_subprocess_exec( - 'ffprobe', '-v', 'error', '-show_format', '-show_streams', '-of', 'json', video_path, + proc = await asyncio.create_subprocess_exec( + 'ffprobe', '-v', 'error', '-show_format', + '-show_streams', '-of', 'json', video_path, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE ) - - stdout, stderr = await result.communicate() - - if result.returncode != 0: + stdout, stderr = await proc.communicate() + if proc.returncode != 0: raise Exception(stderr.decode()) - - video_info = json.loads(stdout.decode()) - duration = float(video_info['format']['duration']) - return duration + return float(json.loads(stdout.decode())['format']['duration']) except Exception as e: - print(f"Can't fetch Video-Duration: {str(e)}") - return 0 + print(f"Error getting video duration: {str(e)}") + return 0.0 async def format_duration(seconds): - minutes = seconds // 60 - seconds = seconds % 60 - return f"{minutes}:{str(seconds).zfill(2)}" + return f"{int(seconds//60)}:{int(seconds%60):02d}" async def get_file_size(file_path): try: - stat = await aiofiles.os.stat(file_path) - return stat.st_size + return os.path.getsize(file_path) except Exception as e: print(f"Error getting file size: {str(e)}") return 0 @@ -54,8 +43,7 @@ async def get_range(file_path, byte_range): try: async with aiofiles.open(file_path, 'rb') as f: await f.seek(byte_range[0]) - data = await f.read(byte_range[1] - byte_range[0] + 1) - return data + return await f.read(byte_range[1] - byte_range[0] + 1) except Exception as e: print(f"Error reading file range: {str(e)}") return b'' @@ -64,5 +52,6 @@ async def get_api_key(): try: async with aiofiles.open("token.txt", "r") as f: return (await f.read()).strip() - except FileNotFoundError: - raise FileNotFoundError("Missing token.txt. Please go to README.md") + except Exception as e: + print(f"Error reading API key: {str(e)}") + raise