support pixabay
This commit is contained in:
@@ -320,15 +320,27 @@ if not config.app.get("hide_config", False):
|
||||
config.app[f"{llm_provider}_account_id"] = st_llm_account_id
|
||||
|
||||
with right_config_panel:
|
||||
pexels_api_keys = config.app.get("pexels_api_keys", [])
|
||||
if isinstance(pexels_api_keys, str):
|
||||
pexels_api_keys = [pexels_api_keys]
|
||||
pexels_api_key = ", ".join(pexels_api_keys)
|
||||
def get_keys_from_config(cfg_key):
|
||||
api_keys = config.app.get(cfg_key, [])
|
||||
if isinstance(api_keys, str):
|
||||
api_keys = [api_keys]
|
||||
api_key = ", ".join(api_keys)
|
||||
return api_key
|
||||
|
||||
|
||||
def save_keys_to_config(cfg_key, value):
|
||||
value = value.replace(" ", "")
|
||||
if value:
|
||||
config.app[cfg_key] = value.split(",")
|
||||
|
||||
|
||||
pexels_api_key = get_keys_from_config("pexels_api_keys")
|
||||
pexels_api_key = st.text_input(tr("Pexels API Key"), value=pexels_api_key, type="password")
|
||||
pexels_api_key = pexels_api_key.replace(" ", "")
|
||||
if pexels_api_key:
|
||||
config.app["pexels_api_keys"] = pexels_api_key.split(",")
|
||||
save_keys_to_config("pexels_api_keys", pexels_api_key)
|
||||
|
||||
pixabay_api_key = get_keys_from_config("pixabay_api_keys")
|
||||
pixabay_api_key = st.text_input(tr("Pixabay API Key"), value=pixabay_api_key, type="password")
|
||||
save_keys_to_config("pixabay_api_keys", pixabay_api_key)
|
||||
|
||||
panel = st.columns(3)
|
||||
left_panel = panel[0]
|
||||
@@ -392,16 +404,24 @@ with middle_panel:
|
||||
]
|
||||
video_sources = [
|
||||
(tr("Pexels"), "pexels"),
|
||||
(tr("Pixabay"), "pixabay"),
|
||||
(tr("Local file"), "local"),
|
||||
(tr("TikTok"), "douyin"),
|
||||
(tr("Bilibili"), "bilibili"),
|
||||
(tr("Xiaohongshu"), "xiaohongshu"),
|
||||
]
|
||||
|
||||
saved_video_source_name = config.app.get("video_source", "pexels")
|
||||
saved_video_source_index = [v[1] for v in video_sources].index(saved_video_source_name)
|
||||
|
||||
selected_index = st.selectbox(tr("Video Source"),
|
||||
options=range(len(video_sources)), # 使用索引作为内部选项值
|
||||
format_func=lambda x: video_sources[x][0] # 显示给用户的是标签
|
||||
options=range(len(video_sources)),
|
||||
format_func=lambda x: video_sources[x][0],
|
||||
index=saved_video_source_index
|
||||
)
|
||||
params.video_source = video_sources[selected_index][1]
|
||||
config.app["video_source"] = params.video_source
|
||||
|
||||
if params.video_source == 'local':
|
||||
_supported_types = FILE_TYPE_VIDEOS + FILE_TYPE_IMAGES
|
||||
uploaded_files = st.file_uploader("Upload Local Files",
|
||||
@@ -567,11 +587,21 @@ if start_button:
|
||||
scroll_to_bottom()
|
||||
st.stop()
|
||||
|
||||
if not config.app.get("pexels_api_keys", ""):
|
||||
if params.video_source not in ["pexels", "pixabay", "local"]:
|
||||
st.error(tr("Please Select a Valid Video Source"))
|
||||
scroll_to_bottom()
|
||||
st.stop()
|
||||
|
||||
if params.video_source == "pexels" and not config.app.get("pexels_api_keys", ""):
|
||||
st.error(tr("Please Enter the Pexels API Key"))
|
||||
scroll_to_bottom()
|
||||
st.stop()
|
||||
|
||||
if params.video_source == "pixabay" and not config.app.get("pixabay_api_keys", ""):
|
||||
st.error(tr("Please Enter the Pixabay API Key"))
|
||||
scroll_to_bottom()
|
||||
st.stop()
|
||||
|
||||
if uploaded_files:
|
||||
local_videos_dir = utils.storage_dir("local_videos", create=True)
|
||||
for file in uploaded_files:
|
||||
|
||||
Reference in New Issue
Block a user