Spaces:
Running
Running
| #!/usr/bin/python3 | |
| # -*- coding: utf-8 -*- | |
| """ | |
| # todo: | |
| 金笛箫箫 | |
| MS4wLjABAAAAguL867lJ2ZsFKCepjVt7EOoGhWxPU4U3qQ-KiQtbOh7KZXV_lGJjchp5r8PoeyiU | |
| 88862603087 | |
| docker build -t video_platform:v20250819_2052 . | |
| docker stop video_platform_7871 && docker rm video_platform_7871 | |
| docker run -itd \ | |
| --name video_platform_7871 \ | |
| --restart=always \ | |
| --network host \ | |
| -e server_port=7870 \ | |
| video_platform:v20250819_2052 /bin/bash | |
| docker run -itd \ | |
| --name video_platform_7871 \ | |
| --restart=always \ | |
| --network host \ | |
| -e server_port=7871 \ | |
| -v /Users/honey/PycharmProjects/video_platform:/data/tianxing/PycharmProjects/video_platform \ | |
| -v /Users/honey/Downloads/xianyu/customers:/data/tianxing/PycharmProjects/video_platform/temp/xianyu/customers \ | |
| python:3.12 /bin/bash | |
| nohup python3 main.py --server_port 7871 & | |
| """ | |
| import argparse | |
| import asyncio | |
| import logging | |
| from pathlib import Path | |
| import platform | |
| import time | |
| import threading | |
| import gradio as gr | |
| import log | |
| from project_settings import environment, project_path, log_directory, time_zone_info | |
| log.setup_size_rotating(log_directory=log_directory, tz_info=time_zone_info) | |
| from toolbox.os.command import Command | |
| from toolbox.porter.manager import PorterManager | |
| from tabs.fs_tab import get_fs_tab | |
| from tabs.shell_tab import get_shell_tab | |
| from tabs.video_download import get_video_download_tab | |
| from tabs.youtube_player_tab import get_youtube_player_tab | |
| logger = logging.getLogger("main") | |
| def get_args(): | |
| parser = argparse.ArgumentParser() | |
| parser.add_argument( | |
| "--porter_tasks_file_dir", | |
| default=(project_path / "data/porter_tasks").as_posix(), | |
| type=str | |
| ) | |
| parser.add_argument( | |
| "--live_recorder_tasks_file", | |
| default=(project_path / "data/live_recorder_tasks.json").as_posix(), | |
| type=str | |
| ) | |
| parser.add_argument( | |
| "--video_download_tasks_file", | |
| default=(project_path / "data/video_download_tasks.json").as_posix(), | |
| type=str | |
| ) | |
| parser.add_argument( | |
| "--youtube_video_upload_tasks_file", | |
| default=(project_path / "data/youtube_video_upload_tasks.json").as_posix(), | |
| type=str | |
| ) | |
| parser.add_argument( | |
| "--bilibili_video_upload_tasks_file", | |
| default=(project_path / "data/bilibili_video_upload_tasks.json").as_posix(), | |
| type=str | |
| ) | |
| parser.add_argument( | |
| "--live_records_dir", | |
| default=(project_path / "data/live_records").as_posix(), | |
| type=str | |
| ) | |
| parser.add_argument( | |
| "--server_port", | |
| default=environment.get("server_port", 7860), | |
| type=int | |
| ) | |
| args = parser.parse_args() | |
| return args | |
| def shell(cmd: str): | |
| return Command.popen(cmd) | |
| def async_thread_wrapper(coro_task): | |
| logger.info("background_task start") | |
| loop = asyncio.new_event_loop() | |
| asyncio.set_event_loop(loop) | |
| loop.run_until_complete(coro_task) | |
| return | |
| def main(): | |
| args = get_args() | |
| porter_tasks_file_dir = Path(args.porter_tasks_file_dir) | |
| # porter manager | |
| task_manager = PorterManager() | |
| for porter_task_file in porter_tasks_file_dir.glob("porter_task_*.json"): | |
| key = porter_task_file.stem | |
| value = environment.get(key=key, default=False, dtype=bool) | |
| logger.info(f"{key}: {value}") | |
| if value is True: | |
| task_manager.add_tasks_by_task_file(tasks_file=porter_task_file.as_posix()) | |
| task_thread = threading.Thread( | |
| target=async_thread_wrapper, | |
| args=(task_manager.run(),), | |
| daemon=True | |
| ) | |
| task_thread.start() | |
| time.sleep(5) | |
| # ui | |
| with gr.Blocks() as blocks: | |
| gr.Markdown(value="live recording.") | |
| with gr.Tabs(): | |
| _ = get_fs_tab() | |
| _ = get_shell_tab() | |
| _ = get_video_download_tab() | |
| _ = get_youtube_player_tab() | |
| # http://127.0.0.1:7870/ | |
| # http://10.75.27.247:7870/ | |
| blocks.queue().launch( | |
| # share=True, | |
| share=False if platform.system() == "Windows" else False, | |
| server_name="127.0.0.1" if platform.system() == "Windows" else "0.0.0.0", | |
| server_port=args.server_port | |
| ) | |
| return | |
| if __name__ == "__main__": | |
| main() | |