Place video/image/text/other in separate folders
This commit is contained in:
		
							
								
								
									
										33
									
								
								main.py
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								main.py
									
									
									
									
									
								
							| @@ -4,7 +4,7 @@ import shlex | |||||||
| import subprocess | import subprocess | ||||||
| import sys | import sys | ||||||
| from datetime import datetime | from datetime import datetime | ||||||
| from typing import List | from pathlib import Path | ||||||
|  |  | ||||||
| from fastapi import FastAPI, File, UploadFile | from fastapi import FastAPI, File, UploadFile | ||||||
| from fastapi.responses import HTMLResponse | from fastapi.responses import HTMLResponse | ||||||
| @@ -19,25 +19,39 @@ except KeyError: | |||||||
|  |  | ||||||
| @app.post("/uploadfiles/") | @app.post("/uploadfiles/") | ||||||
| async def upload_file(file: UploadFile = File(...)): | async def upload_file(file: UploadFile = File(...)): | ||||||
|  |     content_type = file.content_type | ||||||
|     try: |     try: | ||||||
|         if upload_file.content_type == "video/mp4": |         if content_type.startswith("video/"): | ||||||
|             os.mkdir("videos") |             output_folder = "Uploads/video" | ||||||
|         elif upload_file.content_type == "": |             video_url = f"{domain}video/{file.filename}" | ||||||
|             os.mkdir("videos") |             Path(output_folder).mkdir(parents=True, exist_ok=True) | ||||||
|         elif upload_file.content_type == "": |  | ||||||
|             os.mkdir("files") |         elif content_type.startswith("image/"): | ||||||
|  |             output_folder = "Uploads/image" | ||||||
|  |             video_url = f"{domain}image/{file.filename}" | ||||||
|  |             Path(output_folder).mkdir(parents=True, exist_ok=True) | ||||||
|  |  | ||||||
|  |         elif content_type.startswith("text/"): | ||||||
|  |             output_folder = "Uploads/text" | ||||||
|  |             video_url = f"{domain}text/{file.filename}" | ||||||
|  |             Path(output_folder).mkdir(parents=True, exist_ok=True) | ||||||
|  |  | ||||||
|  |         else: | ||||||
|  |             output_folder = "Uploads/files" | ||||||
|  |             video_url = f"{domain}files/{file.filename}" | ||||||
|  |             Path(output_folder).mkdir(parents=True, exist_ok=True) | ||||||
|  |  | ||||||
|     except Exception as e: |     except Exception as e: | ||||||
|         print(e)  # TODO: Send to Discord |         print(e)  # TODO: Send to Discord | ||||||
|  |  | ||||||
|     print(file.filename) |     print(file.filename) | ||||||
|     file_location = f"Uploads/v/{file.filename}" |     file_location = f"{output_folder}/{file.filename}" | ||||||
|  |  | ||||||
|     with open(file_location, "wb+") as file_object: |     with open(file_location, "wb+") as file_object: | ||||||
|         file_object.write(file.file.read()) |         file_object.write(file.file.read()) | ||||||
|  |  | ||||||
|     height, width = find_video_resolution(file_location) |     height, width = find_video_resolution(file_location) | ||||||
|     screenshot_url = get_first_frame(file_location, file.filename) |     screenshot_url = get_first_frame(file_location, file.filename) | ||||||
|     video_url = f"{domain}v/{file.filename}" |  | ||||||
|  |  | ||||||
|     html_url = generate_html( |     html_url = generate_html( | ||||||
|         video_url, |         video_url, | ||||||
| @@ -54,6 +68,7 @@ async def upload_file(file: UploadFile = File(...)): | |||||||
|         "height": f"{height}", |         "height": f"{height}", | ||||||
|         "screenshot_url": f"{screenshot_url}", |         "screenshot_url": f"{screenshot_url}", | ||||||
|         "filename": f"{file.filename}", |         "filename": f"{file.filename}", | ||||||
|  |         "content_type": f"{content_type}", | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user