From 5c91a68d8cfb0e47f381fe43ba66057721ee5a46 Mon Sep 17 00:00:00 2001
From: Edan's Win11 <961150665@qq.com>
Date: Tue, 3 Jun 2025 15:28:08 +0800
Subject: [PATCH] =?UTF-8?q?fix:=20=E5=B0=86=E6=89=80=E6=9C=89=E5=90=8E?=
=?UTF-8?q?=E7=AB=AF=E6=96=87=E4=BB=B6=E9=83=BD=E8=BF=81=E7=A7=BB=E5=88=B0?=
=?UTF-8?q?=20sau=5Fbackend=20=E6=96=87=E4=BB=B6=E5=A4=B9=E5=86=85?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.gitignore | 3 ++-
README.MD | 4 ++--
{examples => sau_backend}/__init__.py | 0
cli_main.py => sau_backend/cli_main.py | 0
conf.py => sau_backend/conf.py | 0
.../examples}/__init__.py | 0
.../examples}/get_baijiahao_cookie.py | 4 ++--
.../examples}/get_bilibili_cookie.py | 0
.../examples}/get_douyin_cookie.py | 4 ++--
.../examples}/get_kuaishou_cookie.py | 4 ++--
.../examples}/get_tencent_cookie.py | 4 ++--
{examples => sau_backend/examples}/get_tk_cookie.py | 4 ++--
.../examples}/upload_video_to_baijiahao.py | 6 +++---
.../examples}/upload_video_to_bilibili.py | 8 ++++----
.../examples}/upload_video_to_douyin.py | 6 +++---
.../examples}/upload_video_to_kuaishou.py | 6 +++---
.../examples}/upload_video_to_tencent.py | 8 ++++----
.../examples}/upload_video_to_tiktok.py | 6 +++---
.../examples}/upload_video_to_xhs.py | 6 +++---
{media => sau_backend/media}/20231009111131.png | Bin
{media => sau_backend/media}/20231009111214.png | Bin
{media => sau_backend/media}/QR.png | Bin
{media => sau_backend/media}/get_bili_cookie.png | Bin
{media => sau_backend/media}/group-qr.png | Bin
{media => sau_backend/media}/mp.jpg | Bin
{media => sau_backend/media}/show/pdf3.gif | Bin
{media => sau_backend/media}/show/tkupload.gif | Bin
{media => sau_backend/media}/tk_login.png | Bin
{media => sau_backend/media}/xhs_error_cookie.png | Bin
requirements.txt => sau_backend/requirements.txt | 0
{uploader => sau_backend/uploader}/__init__.py | 2 +-
.../uploader/baijiahao_uploader}/__init__.py | 0
.../uploader}/baijiahao_uploader/main.py | 8 ++++----
.../uploader}/bilibili_uploader/__init__.py | 2 +-
.../uploader}/bilibili_uploader/biliup.exe | Bin
.../uploader}/bilibili_uploader/main.py | 2 +-
.../uploader}/douyin_uploader/__init__.py | 2 +-
.../uploader}/douyin_uploader/main.py | 6 +++---
.../uploader}/ks_uploader/__init__.py | 2 +-
.../uploader}/ks_uploader/main.py | 8 ++++----
.../uploader}/tencent_uploader/__init__.py | 2 +-
.../uploader}/tencent_uploader/main.py | 8 ++++----
.../uploader}/tk_uploader/__init__.py | 2 +-
.../uploader}/tk_uploader/main.py | 8 ++++----
.../uploader}/tk_uploader/main_chrome.py | 10 +++++-----
.../uploader}/tk_uploader/tk_config.py | 0
.../uploader/xhs_uploader}/__init__.py | 0
.../uploader}/xhs_uploader/accounts.ini | 0
.../uploader}/xhs_uploader/main.py | 2 +-
.../uploader}/xhs_uploader/xhs_login_qrcode.py | 2 +-
sau_backend/utils/__init__.py | 0
{utils => sau_backend/utils}/base_social_media.py | 2 +-
{utils => sau_backend/utils}/constant.py | 0
{utils => sau_backend/utils}/files_times.py | 2 +-
{utils => sau_backend/utils}/log.py | 2 +-
{utils => sau_backend/utils}/network.py | 0
{utils => sau_backend/utils}/stealth.min.js | 0
{videos => sau_backend/videos}/demo.mp4 | Bin
{videos => sau_backend/videos}/demo.png | Bin
{videos => sau_backend/videos}/demo.txt | 0
60 files changed, 73 insertions(+), 72 deletions(-)
rename {examples => sau_backend}/__init__.py (100%)
rename cli_main.py => sau_backend/cli_main.py (100%)
rename conf.py => sau_backend/conf.py (100%)
rename {uploader/baijiahao_uploader => sau_backend/examples}/__init__.py (100%)
rename {examples => sau_backend/examples}/get_baijiahao_cookie.py (71%)
rename {examples => sau_backend/examples}/get_bilibili_cookie.py (100%)
rename {examples => sau_backend/examples}/get_douyin_cookie.py (72%)
rename {examples => sau_backend/examples}/get_kuaishou_cookie.py (73%)
rename {examples => sau_backend/examples}/get_tencent_cookie.py (72%)
rename {examples => sau_backend/examples}/get_tk_cookie.py (71%)
rename {examples => sau_backend/examples}/upload_video_to_baijiahao.py (81%)
rename {examples => sau_backend/examples}/upload_video_to_bilibili.py (82%)
rename {examples => sau_backend/examples}/upload_video_to_douyin.py (84%)
rename {examples => sau_backend/examples}/upload_video_to_kuaishou.py (81%)
rename {examples => sau_backend/examples}/upload_video_to_tencent.py (78%)
rename {examples => sau_backend/examples}/upload_video_to_tiktok.py (84%)
rename {examples => sau_backend/examples}/upload_video_to_xhs.py (91%)
rename {media => sau_backend/media}/20231009111131.png (100%)
rename {media => sau_backend/media}/20231009111214.png (100%)
rename {media => sau_backend/media}/QR.png (100%)
rename {media => sau_backend/media}/get_bili_cookie.png (100%)
rename {media => sau_backend/media}/group-qr.png (100%)
rename {media => sau_backend/media}/mp.jpg (100%)
rename {media => sau_backend/media}/show/pdf3.gif (100%)
rename {media => sau_backend/media}/show/tkupload.gif (100%)
rename {media => sau_backend/media}/tk_login.png (100%)
rename {media => sau_backend/media}/xhs_error_cookie.png (100%)
rename requirements.txt => sau_backend/requirements.txt (100%)
rename {uploader => sau_backend/uploader}/__init__.py (66%)
rename {uploader/xhs_uploader => sau_backend/uploader/baijiahao_uploader}/__init__.py (100%)
rename {uploader => sau_backend/uploader}/baijiahao_uploader/main.py (99%)
rename {uploader => sau_backend/uploader}/bilibili_uploader/__init__.py (71%)
rename {uploader => sau_backend/uploader}/bilibili_uploader/biliup.exe (100%)
rename {uploader => sau_backend/uploader}/bilibili_uploader/main.py (98%)
rename {uploader => sau_backend/uploader}/douyin_uploader/__init__.py (71%)
rename {uploader => sau_backend/uploader}/douyin_uploader/main.py (98%)
rename {uploader => sau_backend/uploader}/ks_uploader/__init__.py (70%)
rename {uploader => sau_backend/uploader}/ks_uploader/main.py (97%)
rename {uploader => sau_backend/uploader}/tencent_uploader/__init__.py (71%)
rename {uploader => sau_backend/uploader}/tencent_uploader/main.py (98%)
rename {uploader => sau_backend/uploader}/tk_uploader/__init__.py (70%)
rename {uploader => sau_backend/uploader}/tk_uploader/main.py (97%)
rename {uploader => sau_backend/uploader}/tk_uploader/main_chrome.py (97%)
rename {uploader => sau_backend/uploader}/tk_uploader/tk_config.py (100%)
rename {utils => sau_backend/uploader/xhs_uploader}/__init__.py (100%)
rename {uploader => sau_backend/uploader}/xhs_uploader/accounts.ini (100%)
rename {uploader => sau_backend/uploader}/xhs_uploader/main.py (97%)
rename {uploader => sau_backend/uploader}/xhs_uploader/xhs_login_qrcode.py (94%)
create mode 100644 sau_backend/utils/__init__.py
rename {utils => sau_backend/utils}/base_social_media.py (94%)
rename {utils => sau_backend/utils}/constant.py (100%)
rename {utils => sau_backend/utils}/files_times.py (98%)
rename {utils => sau_backend/utils}/log.py (97%)
rename {utils => sau_backend/utils}/network.py (100%)
rename {utils => sau_backend/utils}/stealth.min.js (100%)
rename {videos => sau_backend/videos}/demo.mp4 (100%)
rename {videos => sau_backend/videos}/demo.png (100%)
rename {videos => sau_backend/videos}/demo.txt (100%)
diff --git a/.gitignore b/.gitignore
index 471dea8..4eb012e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -167,4 +167,5 @@ youtube_uploader/*.json
douyin_uploader/*.json
bilibili_uploader/*.json
tk_uploader/*.json
-cookies
\ No newline at end of file
+
+sau_backend/cookies
diff --git a/README.MD b/README.MD
index abbac08..a41dcee 100644
--- a/README.MD
+++ b/README.MD
@@ -4,7 +4,7 @@
项目实现了对 `抖音`、`Bilibili`、`小红书`、`快手`、`视频号`、`百家号` 以及 `TikTok` 等平台的视频上传、定时发布等功能。
结合各平台 `uploader` 模块,您可以轻松配置和扩展支持的平台,并通过示例脚本快速上手。
-
+
## 目录
@@ -121,7 +121,7 @@
| 微信公众号 | 交流群 (通过公众号获取) |
| :----------------------------------------: | :------------------------------------------: |
-|  |  |
+|  |  |
| 关注公众号,后台回复 `上传` 获取加群方式 | 如果您觉得项目有用,可以考虑打赏支持一下 |
## 🤝贡献指南
diff --git a/examples/__init__.py b/sau_backend/__init__.py
similarity index 100%
rename from examples/__init__.py
rename to sau_backend/__init__.py
diff --git a/cli_main.py b/sau_backend/cli_main.py
similarity index 100%
rename from cli_main.py
rename to sau_backend/cli_main.py
diff --git a/conf.py b/sau_backend/conf.py
similarity index 100%
rename from conf.py
rename to sau_backend/conf.py
diff --git a/uploader/baijiahao_uploader/__init__.py b/sau_backend/examples/__init__.py
similarity index 100%
rename from uploader/baijiahao_uploader/__init__.py
rename to sau_backend/examples/__init__.py
diff --git a/examples/get_baijiahao_cookie.py b/sau_backend/examples/get_baijiahao_cookie.py
similarity index 71%
rename from examples/get_baijiahao_cookie.py
rename to sau_backend/examples/get_baijiahao_cookie.py
index 418a78b..c47149d 100644
--- a/examples/get_baijiahao_cookie.py
+++ b/sau_backend/examples/get_baijiahao_cookie.py
@@ -1,8 +1,8 @@
import asyncio
from pathlib import Path
-from conf import BASE_DIR
-from uploader.baijiahao_uploader.main import baijiahao_setup
+from sau_backend.conf import BASE_DIR
+from sau_backend.uploader.baijiahao_uploader.main import baijiahao_setup
if __name__ == '__main__':
account_file = Path(BASE_DIR / "cookies" / "baijiahao_uploader" / "account.json")
diff --git a/examples/get_bilibili_cookie.py b/sau_backend/examples/get_bilibili_cookie.py
similarity index 100%
rename from examples/get_bilibili_cookie.py
rename to sau_backend/examples/get_bilibili_cookie.py
diff --git a/examples/get_douyin_cookie.py b/sau_backend/examples/get_douyin_cookie.py
similarity index 72%
rename from examples/get_douyin_cookie.py
rename to sau_backend/examples/get_douyin_cookie.py
index cc8a433..dcc1d99 100644
--- a/examples/get_douyin_cookie.py
+++ b/sau_backend/examples/get_douyin_cookie.py
@@ -1,8 +1,8 @@
import asyncio
from pathlib import Path
-from conf import BASE_DIR
-from uploader.douyin_uploader.main import douyin_setup
+from sau_backend.conf import BASE_DIR
+from sau_backend.uploader.douyin_uploader.main import douyin_setup
if __name__ == '__main__':
account_file = Path(BASE_DIR / "cookies" / "douyin_uploader" / "account.json")
diff --git a/examples/get_kuaishou_cookie.py b/sau_backend/examples/get_kuaishou_cookie.py
similarity index 73%
rename from examples/get_kuaishou_cookie.py
rename to sau_backend/examples/get_kuaishou_cookie.py
index 9301ae4..6d31b5d 100644
--- a/examples/get_kuaishou_cookie.py
+++ b/sau_backend/examples/get_kuaishou_cookie.py
@@ -1,8 +1,8 @@
import asyncio
from pathlib import Path
-from conf import BASE_DIR
-from uploader.ks_uploader.main import ks_setup
+from sau_backend.conf import BASE_DIR
+from sau_backend.uploader.ks_uploader.main import ks_setup
if __name__ == '__main__':
account_file = Path(BASE_DIR / "cookies" / "ks_uploader" / "account.json")
diff --git a/examples/get_tencent_cookie.py b/sau_backend/examples/get_tencent_cookie.py
similarity index 72%
rename from examples/get_tencent_cookie.py
rename to sau_backend/examples/get_tencent_cookie.py
index 06361c4..6c9a271 100644
--- a/examples/get_tencent_cookie.py
+++ b/sau_backend/examples/get_tencent_cookie.py
@@ -1,8 +1,8 @@
import asyncio
from pathlib import Path
-from conf import BASE_DIR
-from uploader.tencent_uploader.main import weixin_setup
+from sau_backend.conf import BASE_DIR
+from sau_backend.uploader.tencent_uploader.main import weixin_setup
if __name__ == '__main__':
account_file = Path(BASE_DIR / "cookies" / "tencent_uploader" / "account.json")
diff --git a/examples/get_tk_cookie.py b/sau_backend/examples/get_tk_cookie.py
similarity index 71%
rename from examples/get_tk_cookie.py
rename to sau_backend/examples/get_tk_cookie.py
index 1f33fea..fc1183c 100644
--- a/examples/get_tk_cookie.py
+++ b/sau_backend/examples/get_tk_cookie.py
@@ -1,8 +1,8 @@
import asyncio
from pathlib import Path
-from conf import BASE_DIR
-from uploader.tk_uploader.main_chrome import tiktok_setup
+from sau_backend.conf import BASE_DIR
+from sau_backend.uploader.tk_uploader.main_chrome import tiktok_setup
if __name__ == '__main__':
account_file = Path(BASE_DIR / "cookies" / "tk_uploader" / "account.json")
diff --git a/examples/upload_video_to_baijiahao.py b/sau_backend/examples/upload_video_to_baijiahao.py
similarity index 81%
rename from examples/upload_video_to_baijiahao.py
rename to sau_backend/examples/upload_video_to_baijiahao.py
index cd6c0e2..10db028 100644
--- a/examples/upload_video_to_baijiahao.py
+++ b/sau_backend/examples/upload_video_to_baijiahao.py
@@ -1,9 +1,9 @@
import asyncio
from pathlib import Path
-from conf import BASE_DIR
-from uploader.baijiahao_uploader.main import baijiahao_setup, BaiJiaHaoVideo
-from utils.files_times import generate_schedule_time_next_day, get_title_and_hashtags
+from sau_backend.conf import BASE_DIR
+from sau_backend.uploader.baijiahao_uploader.main import baijiahao_setup, BaiJiaHaoVideo
+from sau_backend.utils.files_times import generate_schedule_time_next_day, get_title_and_hashtags
if __name__ == '__main__':
diff --git a/examples/upload_video_to_bilibili.py b/sau_backend/examples/upload_video_to_bilibili.py
similarity index 82%
rename from examples/upload_video_to_bilibili.py
rename to sau_backend/examples/upload_video_to_bilibili.py
index 4beea23..98513ef 100644
--- a/examples/upload_video_to_bilibili.py
+++ b/sau_backend/examples/upload_video_to_bilibili.py
@@ -1,10 +1,10 @@
import time
from pathlib import Path
-from uploader.bilibili_uploader.main import read_cookie_json_file, extract_keys_from_json, random_emoji, BilibiliUploader
-from conf import BASE_DIR
-from utils.constant import VideoZoneTypes
-from utils.files_times import generate_schedule_time_next_day, get_title_and_hashtags
+from sau_backend.uploader.bilibili_uploader.main import read_cookie_json_file, extract_keys_from_json, random_emoji, BilibiliUploader
+from sau_backend.conf import BASE_DIR
+from sau_backend.utils.constant import VideoZoneTypes
+from sau_backend.utils.files_times import generate_schedule_time_next_day, get_title_and_hashtags
if __name__ == '__main__':
filepath = Path(BASE_DIR) / "videos"
diff --git a/examples/upload_video_to_douyin.py b/sau_backend/examples/upload_video_to_douyin.py
similarity index 84%
rename from examples/upload_video_to_douyin.py
rename to sau_backend/examples/upload_video_to_douyin.py
index cb3cf24..832951b 100644
--- a/examples/upload_video_to_douyin.py
+++ b/sau_backend/examples/upload_video_to_douyin.py
@@ -1,9 +1,9 @@
import asyncio
from pathlib import Path
-from conf import BASE_DIR
-from uploader.douyin_uploader.main import douyin_setup, DouYinVideo
-from utils.files_times import generate_schedule_time_next_day, get_title_and_hashtags
+from sau_backend.conf import BASE_DIR
+from sau_backend.uploader.douyin_uploader.main import douyin_setup, DouYinVideo
+from sau_backend.utils.files_times import generate_schedule_time_next_day, get_title_and_hashtags
if __name__ == '__main__':
diff --git a/examples/upload_video_to_kuaishou.py b/sau_backend/examples/upload_video_to_kuaishou.py
similarity index 81%
rename from examples/upload_video_to_kuaishou.py
rename to sau_backend/examples/upload_video_to_kuaishou.py
index 8211bca..e4fba52 100644
--- a/examples/upload_video_to_kuaishou.py
+++ b/sau_backend/examples/upload_video_to_kuaishou.py
@@ -1,9 +1,9 @@
import asyncio
from pathlib import Path
-from conf import BASE_DIR
-from uploader.ks_uploader.main import ks_setup, KSVideo
-from utils.files_times import generate_schedule_time_next_day, get_title_and_hashtags
+from sau_backend.conf import BASE_DIR
+from sau_backend.uploader.ks_uploader.main import ks_setup, KSVideo
+from sau_backend.utils.files_times import generate_schedule_time_next_day, get_title_and_hashtags
if __name__ == '__main__':
diff --git a/examples/upload_video_to_tencent.py b/sau_backend/examples/upload_video_to_tencent.py
similarity index 78%
rename from examples/upload_video_to_tencent.py
rename to sau_backend/examples/upload_video_to_tencent.py
index 2e47a1e..fa44c21 100644
--- a/examples/upload_video_to_tencent.py
+++ b/sau_backend/examples/upload_video_to_tencent.py
@@ -1,10 +1,10 @@
import asyncio
from pathlib import Path
-from conf import BASE_DIR
-from uploader.tencent_uploader.main import weixin_setup, TencentVideo
-from utils.constant import TencentZoneTypes
-from utils.files_times import generate_schedule_time_next_day, get_title_and_hashtags
+from sau_backend.conf import BASE_DIR
+from sau_backend.uploader.tencent_uploader.main import weixin_setup, TencentVideo
+from sau_backend.utils.constant import TencentZoneTypes
+from sau_backend.utils.files_times import generate_schedule_time_next_day, get_title_and_hashtags
if __name__ == '__main__':
diff --git a/examples/upload_video_to_tiktok.py b/sau_backend/examples/upload_video_to_tiktok.py
similarity index 84%
rename from examples/upload_video_to_tiktok.py
rename to sau_backend/examples/upload_video_to_tiktok.py
index efa94cc..ffb25f6 100644
--- a/examples/upload_video_to_tiktok.py
+++ b/sau_backend/examples/upload_video_to_tiktok.py
@@ -1,10 +1,10 @@
import asyncio
from pathlib import Path
-from conf import BASE_DIR
+from sau_backend.conf import BASE_DIR
# from tk_uploader.main import tiktok_setup, TiktokVideo
-from uploader.tk_uploader.main_chrome import tiktok_setup, TiktokVideo
-from utils.files_times import generate_schedule_time_next_day, get_title_and_hashtags
+from sau_backend.uploader.tk_uploader.main_chrome import tiktok_setup, TiktokVideo
+from sau_backend.utils.files_times import generate_schedule_time_next_day, get_title_and_hashtags
if __name__ == '__main__':
diff --git a/examples/upload_video_to_xhs.py b/sau_backend/examples/upload_video_to_xhs.py
similarity index 91%
rename from examples/upload_video_to_xhs.py
rename to sau_backend/examples/upload_video_to_xhs.py
index 8acabbc..cad0c32 100644
--- a/examples/upload_video_to_xhs.py
+++ b/sau_backend/examples/upload_video_to_xhs.py
@@ -4,9 +4,9 @@ from time import sleep
from xhs import XhsClient
-from conf import BASE_DIR
-from utils.files_times import generate_schedule_time_next_day, get_title_and_hashtags
-from uploader.xhs_uploader.main import sign_local, beauty_print
+from sau_backend.conf import BASE_DIR
+from sau_backend.utils.files_times import generate_schedule_time_next_day, get_title_and_hashtags
+from sau_backend.uploader.xhs_uploader.main import sign_local, beauty_print
config = configparser.RawConfigParser()
config.read(Path(BASE_DIR / "uploader" / "xhs_uploader" / "accounts.ini"))
diff --git a/media/20231009111131.png b/sau_backend/media/20231009111131.png
similarity index 100%
rename from media/20231009111131.png
rename to sau_backend/media/20231009111131.png
diff --git a/media/20231009111214.png b/sau_backend/media/20231009111214.png
similarity index 100%
rename from media/20231009111214.png
rename to sau_backend/media/20231009111214.png
diff --git a/media/QR.png b/sau_backend/media/QR.png
similarity index 100%
rename from media/QR.png
rename to sau_backend/media/QR.png
diff --git a/media/get_bili_cookie.png b/sau_backend/media/get_bili_cookie.png
similarity index 100%
rename from media/get_bili_cookie.png
rename to sau_backend/media/get_bili_cookie.png
diff --git a/media/group-qr.png b/sau_backend/media/group-qr.png
similarity index 100%
rename from media/group-qr.png
rename to sau_backend/media/group-qr.png
diff --git a/media/mp.jpg b/sau_backend/media/mp.jpg
similarity index 100%
rename from media/mp.jpg
rename to sau_backend/media/mp.jpg
diff --git a/media/show/pdf3.gif b/sau_backend/media/show/pdf3.gif
similarity index 100%
rename from media/show/pdf3.gif
rename to sau_backend/media/show/pdf3.gif
diff --git a/media/show/tkupload.gif b/sau_backend/media/show/tkupload.gif
similarity index 100%
rename from media/show/tkupload.gif
rename to sau_backend/media/show/tkupload.gif
diff --git a/media/tk_login.png b/sau_backend/media/tk_login.png
similarity index 100%
rename from media/tk_login.png
rename to sau_backend/media/tk_login.png
diff --git a/media/xhs_error_cookie.png b/sau_backend/media/xhs_error_cookie.png
similarity index 100%
rename from media/xhs_error_cookie.png
rename to sau_backend/media/xhs_error_cookie.png
diff --git a/requirements.txt b/sau_backend/requirements.txt
similarity index 100%
rename from requirements.txt
rename to sau_backend/requirements.txt
diff --git a/uploader/__init__.py b/sau_backend/uploader/__init__.py
similarity index 66%
rename from uploader/__init__.py
rename to sau_backend/uploader/__init__.py
index c8cfe0b..7b88567 100644
--- a/uploader/__init__.py
+++ b/sau_backend/uploader/__init__.py
@@ -1,5 +1,5 @@
from pathlib import Path
-from conf import BASE_DIR
+from sau_backend.conf import BASE_DIR
Path(BASE_DIR / "cookies").mkdir(exist_ok=True)
\ No newline at end of file
diff --git a/uploader/xhs_uploader/__init__.py b/sau_backend/uploader/baijiahao_uploader/__init__.py
similarity index 100%
rename from uploader/xhs_uploader/__init__.py
rename to sau_backend/uploader/baijiahao_uploader/__init__.py
diff --git a/uploader/baijiahao_uploader/main.py b/sau_backend/uploader/baijiahao_uploader/main.py
similarity index 99%
rename from uploader/baijiahao_uploader/main.py
rename to sau_backend/uploader/baijiahao_uploader/main.py
index 30ded1a..c3f4ef3 100644
--- a/uploader/baijiahao_uploader/main.py
+++ b/sau_backend/uploader/baijiahao_uploader/main.py
@@ -7,10 +7,10 @@ import os
import time
import asyncio
-from conf import LOCAL_CHROME_PATH
-from utils.base_social_media import set_init_script
-from utils.log import baijiahao_logger
-from utils.network import async_retry
+from sau_backend.conf import LOCAL_CHROME_PATH
+from sau_backend.utils.base_social_media import set_init_script
+from sau_backend.utils.log import baijiahao_logger
+from sau_backend.utils.network import async_retry
async def baijiahao_cookie_gen(account_file):
diff --git a/uploader/bilibili_uploader/__init__.py b/sau_backend/uploader/bilibili_uploader/__init__.py
similarity index 71%
rename from uploader/bilibili_uploader/__init__.py
rename to sau_backend/uploader/bilibili_uploader/__init__.py
index ce5d45e..8cebab9 100644
--- a/uploader/bilibili_uploader/__init__.py
+++ b/sau_backend/uploader/bilibili_uploader/__init__.py
@@ -1,5 +1,5 @@
from pathlib import Path
-from conf import BASE_DIR
+from sau_backend.conf import BASE_DIR
Path(BASE_DIR / "cookies" / "bilibili_uploader").mkdir(exist_ok=True)
\ No newline at end of file
diff --git a/uploader/bilibili_uploader/biliup.exe b/sau_backend/uploader/bilibili_uploader/biliup.exe
similarity index 100%
rename from uploader/bilibili_uploader/biliup.exe
rename to sau_backend/uploader/bilibili_uploader/biliup.exe
diff --git a/uploader/bilibili_uploader/main.py b/sau_backend/uploader/bilibili_uploader/main.py
similarity index 98%
rename from uploader/bilibili_uploader/main.py
rename to sau_backend/uploader/bilibili_uploader/main.py
index ee49bcd..3e29da6 100644
--- a/uploader/bilibili_uploader/main.py
+++ b/sau_backend/uploader/bilibili_uploader/main.py
@@ -3,7 +3,7 @@ import pathlib
import random
from biliup.plugins.bili_webup import BiliBili, Data
-from utils.log import bilibili_logger
+from sau_backend.utils.log import bilibili_logger
def extract_keys_from_json(data):
diff --git a/uploader/douyin_uploader/__init__.py b/sau_backend/uploader/douyin_uploader/__init__.py
similarity index 71%
rename from uploader/douyin_uploader/__init__.py
rename to sau_backend/uploader/douyin_uploader/__init__.py
index 4a213b8..2c3cb09 100644
--- a/uploader/douyin_uploader/__init__.py
+++ b/sau_backend/uploader/douyin_uploader/__init__.py
@@ -1,5 +1,5 @@
from pathlib import Path
-from conf import BASE_DIR
+from sau_backend.conf import BASE_DIR
Path(BASE_DIR / "cookies" / "douyin_uploader").mkdir(exist_ok=True)
\ No newline at end of file
diff --git a/uploader/douyin_uploader/main.py b/sau_backend/uploader/douyin_uploader/main.py
similarity index 98%
rename from uploader/douyin_uploader/main.py
rename to sau_backend/uploader/douyin_uploader/main.py
index 0ddee00..d27fe44 100644
--- a/uploader/douyin_uploader/main.py
+++ b/sau_backend/uploader/douyin_uploader/main.py
@@ -5,9 +5,9 @@ from playwright.async_api import Playwright, async_playwright, Page
import os
import asyncio
-from conf import LOCAL_CHROME_PATH
-from utils.base_social_media import set_init_script
-from utils.log import douyin_logger
+from sau_backend.conf import LOCAL_CHROME_PATH
+from sau_backend.utils.base_social_media import set_init_script
+from sau_backend.utils.log import douyin_logger
async def cookie_auth(account_file):
diff --git a/uploader/ks_uploader/__init__.py b/sau_backend/uploader/ks_uploader/__init__.py
similarity index 70%
rename from uploader/ks_uploader/__init__.py
rename to sau_backend/uploader/ks_uploader/__init__.py
index c617657..99fd004 100644
--- a/uploader/ks_uploader/__init__.py
+++ b/sau_backend/uploader/ks_uploader/__init__.py
@@ -1,5 +1,5 @@
from pathlib import Path
-from conf import BASE_DIR
+from sau_backend.conf import BASE_DIR
Path(BASE_DIR / "cookies" / "ks_uploader").mkdir(exist_ok=True)
\ No newline at end of file
diff --git a/uploader/ks_uploader/main.py b/sau_backend/uploader/ks_uploader/main.py
similarity index 97%
rename from uploader/ks_uploader/main.py
rename to sau_backend/uploader/ks_uploader/main.py
index 8785028..9e30065 100644
--- a/uploader/ks_uploader/main.py
+++ b/sau_backend/uploader/ks_uploader/main.py
@@ -5,10 +5,10 @@ from playwright.async_api import Playwright, async_playwright
import os
import asyncio
-from conf import LOCAL_CHROME_PATH
-from utils.base_social_media import set_init_script
-from utils.files_times import get_absolute_path
-from utils.log import kuaishou_logger
+from sau_backend.conf import LOCAL_CHROME_PATH
+from sau_backend.utils.base_social_media import set_init_script
+from sau_backend.utils.files_times import get_absolute_path
+from sau_backend.utils.log import kuaishou_logger
async def cookie_auth(account_file):
diff --git a/uploader/tencent_uploader/__init__.py b/sau_backend/uploader/tencent_uploader/__init__.py
similarity index 71%
rename from uploader/tencent_uploader/__init__.py
rename to sau_backend/uploader/tencent_uploader/__init__.py
index 9860b4a..943c2f0 100644
--- a/uploader/tencent_uploader/__init__.py
+++ b/sau_backend/uploader/tencent_uploader/__init__.py
@@ -1,5 +1,5 @@
from pathlib import Path
-from conf import BASE_DIR
+from sau_backend.conf import BASE_DIR
Path(BASE_DIR / "cookies" / "tencent_uploader").mkdir(exist_ok=True)
\ No newline at end of file
diff --git a/uploader/tencent_uploader/main.py b/sau_backend/uploader/tencent_uploader/main.py
similarity index 98%
rename from uploader/tencent_uploader/main.py
rename to sau_backend/uploader/tencent_uploader/main.py
index 6baeee3..a43cdf5 100644
--- a/uploader/tencent_uploader/main.py
+++ b/sau_backend/uploader/tencent_uploader/main.py
@@ -5,10 +5,10 @@ from playwright.async_api import Playwright, async_playwright
import os
import asyncio
-from conf import LOCAL_CHROME_PATH
-from utils.base_social_media import set_init_script
-from utils.files_times import get_absolute_path
-from utils.log import tencent_logger
+from sau_backend.conf import LOCAL_CHROME_PATH
+from sau_backend.utils.base_social_media import set_init_script
+from sau_backend.utils.files_times import get_absolute_path
+from sau_backend.utils.log import tencent_logger
def format_str_for_short_title(origin_title: str) -> str:
diff --git a/uploader/tk_uploader/__init__.py b/sau_backend/uploader/tk_uploader/__init__.py
similarity index 70%
rename from uploader/tk_uploader/__init__.py
rename to sau_backend/uploader/tk_uploader/__init__.py
index 262e904..a941568 100644
--- a/uploader/tk_uploader/__init__.py
+++ b/sau_backend/uploader/tk_uploader/__init__.py
@@ -1,5 +1,5 @@
from pathlib import Path
-from conf import BASE_DIR
+from sau_backend.conf import BASE_DIR
Path(BASE_DIR / "cookies" / "tk_uploader").mkdir(exist_ok=True)
\ No newline at end of file
diff --git a/uploader/tk_uploader/main.py b/sau_backend/uploader/tk_uploader/main.py
similarity index 97%
rename from uploader/tk_uploader/main.py
rename to sau_backend/uploader/tk_uploader/main.py
index 6a9500d..63ca267 100644
--- a/uploader/tk_uploader/main.py
+++ b/sau_backend/uploader/tk_uploader/main.py
@@ -5,10 +5,10 @@ from datetime import datetime
from playwright.async_api import Playwright, async_playwright
import os
import asyncio
-from uploader.tk_uploader.tk_config import Tk_Locator
-from utils.base_social_media import set_init_script
-from utils.files_times import get_absolute_path
-from utils.log import tiktok_logger
+from sau_backend.uploader.tk_uploader.tk_config import Tk_Locator
+from sau_backend.utils.base_social_media import set_init_script
+from sau_backend.utils.files_times import get_absolute_path
+from sau_backend.utils.log import tiktok_logger
async def cookie_auth(account_file):
diff --git a/uploader/tk_uploader/main_chrome.py b/sau_backend/uploader/tk_uploader/main_chrome.py
similarity index 97%
rename from uploader/tk_uploader/main_chrome.py
rename to sau_backend/uploader/tk_uploader/main_chrome.py
index 0963a7e..643baa9 100644
--- a/uploader/tk_uploader/main_chrome.py
+++ b/sau_backend/uploader/tk_uploader/main_chrome.py
@@ -6,11 +6,11 @@ from playwright.async_api import Playwright, async_playwright
import os
import asyncio
-from conf import LOCAL_CHROME_PATH
-from uploader.tk_uploader.tk_config import Tk_Locator
-from utils.base_social_media import set_init_script
-from utils.files_times import get_absolute_path
-from utils.log import tiktok_logger
+from sau_backend.conf import LOCAL_CHROME_PATH
+from sau_backend.uploader.tk_uploader.tk_config import Tk_Locator
+from sau_backend.utils.base_social_media import set_init_script
+from sau_backend.utils.files_times import get_absolute_path
+from sau_backend.utils.log import tiktok_logger
async def cookie_auth(account_file):
diff --git a/uploader/tk_uploader/tk_config.py b/sau_backend/uploader/tk_uploader/tk_config.py
similarity index 100%
rename from uploader/tk_uploader/tk_config.py
rename to sau_backend/uploader/tk_uploader/tk_config.py
diff --git a/utils/__init__.py b/sau_backend/uploader/xhs_uploader/__init__.py
similarity index 100%
rename from utils/__init__.py
rename to sau_backend/uploader/xhs_uploader/__init__.py
diff --git a/uploader/xhs_uploader/accounts.ini b/sau_backend/uploader/xhs_uploader/accounts.ini
similarity index 100%
rename from uploader/xhs_uploader/accounts.ini
rename to sau_backend/uploader/xhs_uploader/accounts.ini
diff --git a/uploader/xhs_uploader/main.py b/sau_backend/uploader/xhs_uploader/main.py
similarity index 97%
rename from uploader/xhs_uploader/main.py
rename to sau_backend/uploader/xhs_uploader/main.py
index dea9b14..b3222df 100644
--- a/uploader/xhs_uploader/main.py
+++ b/sau_backend/uploader/xhs_uploader/main.py
@@ -6,7 +6,7 @@ from time import sleep
import requests
from playwright.sync_api import sync_playwright
-from conf import BASE_DIR, XHS_SERVER
+from sau_backend.conf import BASE_DIR, XHS_SERVER
config = configparser.RawConfigParser()
config.read('accounts.ini')
diff --git a/uploader/xhs_uploader/xhs_login_qrcode.py b/sau_backend/uploader/xhs_uploader/xhs_login_qrcode.py
similarity index 94%
rename from uploader/xhs_uploader/xhs_login_qrcode.py
rename to sau_backend/uploader/xhs_uploader/xhs_login_qrcode.py
index b6a7d06..f01e2eb 100644
--- a/uploader/xhs_uploader/xhs_login_qrcode.py
+++ b/sau_backend/uploader/xhs_uploader/xhs_login_qrcode.py
@@ -5,7 +5,7 @@ from time import sleep
from xhs import XhsClient
-from uploader.xhs_uploader.main import sign
+from sau_backend.uploader.xhs_uploader.main import sign
# pip install qrcode
if __name__ == '__main__':
diff --git a/sau_backend/utils/__init__.py b/sau_backend/utils/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/utils/base_social_media.py b/sau_backend/utils/base_social_media.py
similarity index 94%
rename from utils/base_social_media.py
rename to sau_backend/utils/base_social_media.py
index 7697875..505ad83 100644
--- a/utils/base_social_media.py
+++ b/sau_backend/utils/base_social_media.py
@@ -1,7 +1,7 @@
from pathlib import Path
from typing import List
-from conf import BASE_DIR
+from sau_backend.conf import BASE_DIR
SOCIAL_MEDIA_DOUYIN = "douyin"
SOCIAL_MEDIA_TENCENT = "tencent"
diff --git a/utils/constant.py b/sau_backend/utils/constant.py
similarity index 100%
rename from utils/constant.py
rename to sau_backend/utils/constant.py
diff --git a/utils/files_times.py b/sau_backend/utils/files_times.py
similarity index 98%
rename from utils/files_times.py
rename to sau_backend/utils/files_times.py
index a1a6ccc..780f309 100644
--- a/utils/files_times.py
+++ b/sau_backend/utils/files_times.py
@@ -3,7 +3,7 @@ from datetime import timedelta
from datetime import datetime
from pathlib import Path
-from conf import BASE_DIR
+from sau_backend.conf import BASE_DIR
def get_absolute_path(relative_path: str, base_dir: str = None) -> str:
diff --git a/utils/log.py b/sau_backend/utils/log.py
similarity index 97%
rename from utils/log.py
rename to sau_backend/utils/log.py
index e8b8354..7e17b35 100644
--- a/utils/log.py
+++ b/sau_backend/utils/log.py
@@ -2,7 +2,7 @@ from pathlib import Path
from sys import stdout
from loguru import logger
-from conf import BASE_DIR
+from sau_backend.conf import BASE_DIR
def log_formatter(record: dict) -> str:
diff --git a/utils/network.py b/sau_backend/utils/network.py
similarity index 100%
rename from utils/network.py
rename to sau_backend/utils/network.py
diff --git a/utils/stealth.min.js b/sau_backend/utils/stealth.min.js
similarity index 100%
rename from utils/stealth.min.js
rename to sau_backend/utils/stealth.min.js
diff --git a/videos/demo.mp4 b/sau_backend/videos/demo.mp4
similarity index 100%
rename from videos/demo.mp4
rename to sau_backend/videos/demo.mp4
diff --git a/videos/demo.png b/sau_backend/videos/demo.png
similarity index 100%
rename from videos/demo.png
rename to sau_backend/videos/demo.png
diff --git a/videos/demo.txt b/sau_backend/videos/demo.txt
similarity index 100%
rename from videos/demo.txt
rename to sau_backend/videos/demo.txt