fix: 将所有后端文件都迁移到 sau_backend 文件夹内

This commit is contained in:
Edan's Win11
2025-06-03 15:28:08 +08:00
parent 794e8feaea
commit 5c91a68d8c
60 changed files with 73 additions and 72 deletions
+2 -1
View File
@@ -167,4 +167,5 @@ youtube_uploader/*.json
douyin_uploader/*.json douyin_uploader/*.json
bilibili_uploader/*.json bilibili_uploader/*.json
tk_uploader/*.json tk_uploader/*.json
cookies
sau_backend/cookies
+2 -2
View File
@@ -4,7 +4,7 @@
项目实现了对 `抖音`、`Bilibili`、`小红书`、`快手`、`视频号`、`百家号` 以及 `TikTok` 等平台的视频上传、定时发布等功能。 项目实现了对 `抖音`、`Bilibili`、`小红书`、`快手`、`视频号`、`百家号` 以及 `TikTok` 等平台的视频上传、定时发布等功能。
结合各平台 `uploader` 模块,您可以轻松配置和扩展支持的平台,并通过示例脚本快速上手。 结合各平台 `uploader` 模块,您可以轻松配置和扩展支持的平台,并通过示例脚本快速上手。
<img src="media/show/tkupload.gif" alt="tiktok show" width="800"/> <img src="sau_backend/media/show/tkupload.gif" alt="tiktok show" width="800"/>
## 目录 ## 目录
@@ -121,7 +121,7 @@
| 微信公众号 | 交流群 (通过公众号获取) | | 微信公众号 | 交流群 (通过公众号获取) |
| :----------------------------------------: | :------------------------------------------: | | :----------------------------------------: | :------------------------------------------: |
| ![NasDaddy公众号](media/mp.jpg) | ![赞赏码/入群引导](media/QR.png) | | ![NasDaddy公众号](sau_backend/media/mp.jpg) | ![赞赏码/入群引导](sau_backend/media/QR.png) |
| 关注公众号,后台回复 `上传` 获取加群方式 | 如果您觉得项目有用,可以考虑打赏支持一下 | | 关注公众号,后台回复 `上传` 获取加群方式 | 如果您觉得项目有用,可以考虑打赏支持一下 |
## 🤝贡献指南 ## 🤝贡献指南
View File
@@ -1,8 +1,8 @@
import asyncio import asyncio
from pathlib import Path from pathlib import Path
from conf import BASE_DIR from sau_backend.conf import BASE_DIR
from uploader.baijiahao_uploader.main import baijiahao_setup from sau_backend.uploader.baijiahao_uploader.main import baijiahao_setup
if __name__ == '__main__': if __name__ == '__main__':
account_file = Path(BASE_DIR / "cookies" / "baijiahao_uploader" / "account.json") account_file = Path(BASE_DIR / "cookies" / "baijiahao_uploader" / "account.json")
@@ -1,8 +1,8 @@
import asyncio import asyncio
from pathlib import Path from pathlib import Path
from conf import BASE_DIR from sau_backend.conf import BASE_DIR
from uploader.douyin_uploader.main import douyin_setup from sau_backend.uploader.douyin_uploader.main import douyin_setup
if __name__ == '__main__': if __name__ == '__main__':
account_file = Path(BASE_DIR / "cookies" / "douyin_uploader" / "account.json") account_file = Path(BASE_DIR / "cookies" / "douyin_uploader" / "account.json")
@@ -1,8 +1,8 @@
import asyncio import asyncio
from pathlib import Path from pathlib import Path
from conf import BASE_DIR from sau_backend.conf import BASE_DIR
from uploader.ks_uploader.main import ks_setup from sau_backend.uploader.ks_uploader.main import ks_setup
if __name__ == '__main__': if __name__ == '__main__':
account_file = Path(BASE_DIR / "cookies" / "ks_uploader" / "account.json") account_file = Path(BASE_DIR / "cookies" / "ks_uploader" / "account.json")
@@ -1,8 +1,8 @@
import asyncio import asyncio
from pathlib import Path from pathlib import Path
from conf import BASE_DIR from sau_backend.conf import BASE_DIR
from uploader.tencent_uploader.main import weixin_setup from sau_backend.uploader.tencent_uploader.main import weixin_setup
if __name__ == '__main__': if __name__ == '__main__':
account_file = Path(BASE_DIR / "cookies" / "tencent_uploader" / "account.json") account_file = Path(BASE_DIR / "cookies" / "tencent_uploader" / "account.json")
@@ -1,8 +1,8 @@
import asyncio import asyncio
from pathlib import Path from pathlib import Path
from conf import BASE_DIR from sau_backend.conf import BASE_DIR
from uploader.tk_uploader.main_chrome import tiktok_setup from sau_backend.uploader.tk_uploader.main_chrome import tiktok_setup
if __name__ == '__main__': if __name__ == '__main__':
account_file = Path(BASE_DIR / "cookies" / "tk_uploader" / "account.json") account_file = Path(BASE_DIR / "cookies" / "tk_uploader" / "account.json")
@@ -1,9 +1,9 @@
import asyncio import asyncio
from pathlib import Path from pathlib import Path
from conf import BASE_DIR from sau_backend.conf import BASE_DIR
from uploader.baijiahao_uploader.main import baijiahao_setup, BaiJiaHaoVideo from sau_backend.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.utils.files_times import generate_schedule_time_next_day, get_title_and_hashtags
if __name__ == '__main__': if __name__ == '__main__':
@@ -1,10 +1,10 @@
import time import time
from pathlib import Path from pathlib import Path
from uploader.bilibili_uploader.main import read_cookie_json_file, extract_keys_from_json, random_emoji, BilibiliUploader from sau_backend.uploader.bilibili_uploader.main import read_cookie_json_file, extract_keys_from_json, random_emoji, BilibiliUploader
from conf import BASE_DIR from sau_backend.conf import BASE_DIR
from utils.constant import VideoZoneTypes from sau_backend.utils.constant import VideoZoneTypes
from utils.files_times import generate_schedule_time_next_day, get_title_and_hashtags from sau_backend.utils.files_times import generate_schedule_time_next_day, get_title_and_hashtags
if __name__ == '__main__': if __name__ == '__main__':
filepath = Path(BASE_DIR) / "videos" filepath = Path(BASE_DIR) / "videos"
@@ -1,9 +1,9 @@
import asyncio import asyncio
from pathlib import Path from pathlib import Path
from conf import BASE_DIR from sau_backend.conf import BASE_DIR
from uploader.douyin_uploader.main import douyin_setup, DouYinVideo from sau_backend.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.utils.files_times import generate_schedule_time_next_day, get_title_and_hashtags
if __name__ == '__main__': if __name__ == '__main__':
@@ -1,9 +1,9 @@
import asyncio import asyncio
from pathlib import Path from pathlib import Path
from conf import BASE_DIR from sau_backend.conf import BASE_DIR
from uploader.ks_uploader.main import ks_setup, KSVideo from sau_backend.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.utils.files_times import generate_schedule_time_next_day, get_title_and_hashtags
if __name__ == '__main__': if __name__ == '__main__':
@@ -1,10 +1,10 @@
import asyncio import asyncio
from pathlib import Path from pathlib import Path
from conf import BASE_DIR from sau_backend.conf import BASE_DIR
from uploader.tencent_uploader.main import weixin_setup, TencentVideo from sau_backend.uploader.tencent_uploader.main import weixin_setup, TencentVideo
from utils.constant import TencentZoneTypes from sau_backend.utils.constant import TencentZoneTypes
from utils.files_times import generate_schedule_time_next_day, get_title_and_hashtags from sau_backend.utils.files_times import generate_schedule_time_next_day, get_title_and_hashtags
if __name__ == '__main__': if __name__ == '__main__':
@@ -1,10 +1,10 @@
import asyncio import asyncio
from pathlib import Path 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 tk_uploader.main import tiktok_setup, TiktokVideo
from uploader.tk_uploader.main_chrome import tiktok_setup, TiktokVideo from sau_backend.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.utils.files_times import generate_schedule_time_next_day, get_title_and_hashtags
if __name__ == '__main__': if __name__ == '__main__':
@@ -4,9 +4,9 @@ from time import sleep
from xhs import XhsClient from xhs import XhsClient
from conf import BASE_DIR from sau_backend.conf import BASE_DIR
from utils.files_times import generate_schedule_time_next_day, get_title_and_hashtags from sau_backend.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.uploader.xhs_uploader.main import sign_local, beauty_print
config = configparser.RawConfigParser() config = configparser.RawConfigParser()
config.read(Path(BASE_DIR / "uploader" / "xhs_uploader" / "accounts.ini")) config.read(Path(BASE_DIR / "uploader" / "xhs_uploader" / "accounts.ini"))

Before

Width:  |  Height:  |  Size: 87 KiB

After

Width:  |  Height:  |  Size: 87 KiB

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Before

Width:  |  Height:  |  Size: 116 KiB

After

Width:  |  Height:  |  Size: 116 KiB

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Before

Width:  |  Height:  |  Size: 274 KiB

After

Width:  |  Height:  |  Size: 274 KiB

Before

Width:  |  Height:  |  Size: 9.4 KiB

After

Width:  |  Height:  |  Size: 9.4 KiB

Before

Width:  |  Height:  |  Size: 396 KiB

After

Width:  |  Height:  |  Size: 396 KiB

Before

Width:  |  Height:  |  Size: 901 KiB

After

Width:  |  Height:  |  Size: 901 KiB

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

@@ -1,5 +1,5 @@
from pathlib import Path from pathlib import Path
from conf import BASE_DIR from sau_backend.conf import BASE_DIR
Path(BASE_DIR / "cookies").mkdir(exist_ok=True) Path(BASE_DIR / "cookies").mkdir(exist_ok=True)
@@ -7,10 +7,10 @@ import os
import time import time
import asyncio import asyncio
from conf import LOCAL_CHROME_PATH from sau_backend.conf import LOCAL_CHROME_PATH
from utils.base_social_media import set_init_script from sau_backend.utils.base_social_media import set_init_script
from utils.log import baijiahao_logger from sau_backend.utils.log import baijiahao_logger
from utils.network import async_retry from sau_backend.utils.network import async_retry
async def baijiahao_cookie_gen(account_file): async def baijiahao_cookie_gen(account_file):
@@ -1,5 +1,5 @@
from pathlib import Path 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) Path(BASE_DIR / "cookies" / "bilibili_uploader").mkdir(exist_ok=True)
@@ -3,7 +3,7 @@ import pathlib
import random import random
from biliup.plugins.bili_webup import BiliBili, Data 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): def extract_keys_from_json(data):
@@ -1,5 +1,5 @@
from pathlib import Path 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) Path(BASE_DIR / "cookies" / "douyin_uploader").mkdir(exist_ok=True)
@@ -5,9 +5,9 @@ from playwright.async_api import Playwright, async_playwright, Page
import os import os
import asyncio import asyncio
from conf import LOCAL_CHROME_PATH from sau_backend.conf import LOCAL_CHROME_PATH
from utils.base_social_media import set_init_script from sau_backend.utils.base_social_media import set_init_script
from utils.log import douyin_logger from sau_backend.utils.log import douyin_logger
async def cookie_auth(account_file): async def cookie_auth(account_file):
@@ -1,5 +1,5 @@
from pathlib import Path 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) Path(BASE_DIR / "cookies" / "ks_uploader").mkdir(exist_ok=True)
@@ -5,10 +5,10 @@ from playwright.async_api import Playwright, async_playwright
import os import os
import asyncio import asyncio
from conf import LOCAL_CHROME_PATH from sau_backend.conf import LOCAL_CHROME_PATH
from utils.base_social_media import set_init_script from sau_backend.utils.base_social_media import set_init_script
from utils.files_times import get_absolute_path from sau_backend.utils.files_times import get_absolute_path
from utils.log import kuaishou_logger from sau_backend.utils.log import kuaishou_logger
async def cookie_auth(account_file): async def cookie_auth(account_file):
@@ -1,5 +1,5 @@
from pathlib import Path 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) Path(BASE_DIR / "cookies" / "tencent_uploader").mkdir(exist_ok=True)
@@ -5,10 +5,10 @@ from playwright.async_api import Playwright, async_playwright
import os import os
import asyncio import asyncio
from conf import LOCAL_CHROME_PATH from sau_backend.conf import LOCAL_CHROME_PATH
from utils.base_social_media import set_init_script from sau_backend.utils.base_social_media import set_init_script
from utils.files_times import get_absolute_path from sau_backend.utils.files_times import get_absolute_path
from utils.log import tencent_logger from sau_backend.utils.log import tencent_logger
def format_str_for_short_title(origin_title: str) -> str: def format_str_for_short_title(origin_title: str) -> str:
@@ -1,5 +1,5 @@
from pathlib import Path 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) Path(BASE_DIR / "cookies" / "tk_uploader").mkdir(exist_ok=True)
@@ -5,10 +5,10 @@ from datetime import datetime
from playwright.async_api import Playwright, async_playwright from playwright.async_api import Playwright, async_playwright
import os import os
import asyncio import asyncio
from uploader.tk_uploader.tk_config import Tk_Locator from sau_backend.uploader.tk_uploader.tk_config import Tk_Locator
from utils.base_social_media import set_init_script from sau_backend.utils.base_social_media import set_init_script
from utils.files_times import get_absolute_path from sau_backend.utils.files_times import get_absolute_path
from utils.log import tiktok_logger from sau_backend.utils.log import tiktok_logger
async def cookie_auth(account_file): async def cookie_auth(account_file):
@@ -6,11 +6,11 @@ from playwright.async_api import Playwright, async_playwright
import os import os
import asyncio import asyncio
from conf import LOCAL_CHROME_PATH from sau_backend.conf import LOCAL_CHROME_PATH
from uploader.tk_uploader.tk_config import Tk_Locator from sau_backend.uploader.tk_uploader.tk_config import Tk_Locator
from utils.base_social_media import set_init_script from sau_backend.utils.base_social_media import set_init_script
from utils.files_times import get_absolute_path from sau_backend.utils.files_times import get_absolute_path
from utils.log import tiktok_logger from sau_backend.utils.log import tiktok_logger
async def cookie_auth(account_file): async def cookie_auth(account_file):
@@ -6,7 +6,7 @@ from time import sleep
import requests import requests
from playwright.sync_api import sync_playwright 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 = configparser.RawConfigParser()
config.read('accounts.ini') config.read('accounts.ini')
@@ -5,7 +5,7 @@ from time import sleep
from xhs import XhsClient from xhs import XhsClient
from uploader.xhs_uploader.main import sign from sau_backend.uploader.xhs_uploader.main import sign
# pip install qrcode # pip install qrcode
if __name__ == '__main__': if __name__ == '__main__':
View File
@@ -1,7 +1,7 @@
from pathlib import Path from pathlib import Path
from typing import List from typing import List
from conf import BASE_DIR from sau_backend.conf import BASE_DIR
SOCIAL_MEDIA_DOUYIN = "douyin" SOCIAL_MEDIA_DOUYIN = "douyin"
SOCIAL_MEDIA_TENCENT = "tencent" SOCIAL_MEDIA_TENCENT = "tencent"
@@ -3,7 +3,7 @@ from datetime import timedelta
from datetime import datetime from datetime import datetime
from pathlib import Path 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: def get_absolute_path(relative_path: str, base_dir: str = None) -> str:
+1 -1
View File
@@ -2,7 +2,7 @@ from pathlib import Path
from sys import stdout from sys import stdout
from loguru import logger from loguru import logger
from conf import BASE_DIR from sau_backend.conf import BASE_DIR
def log_formatter(record: dict) -> str: def log_formatter(record: dict) -> str:

Before

Width:  |  Height:  |  Size: 103 KiB

After

Width:  |  Height:  |  Size: 103 KiB