@danhachuel/thunderbolt 0.4.55 → 0.4.56

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/app/main.py +32 -4
  2. package/package.json +1 -1
package/app/main.py CHANGED
@@ -7048,13 +7048,41 @@ def render_settings():
7048
7048
  with st.expander("Contas Google", expanded=False):
7049
7049
  render_google_accounts(include_innertube=False)
7050
7050
  with st.expander("API Innertube", expanded=False):
7051
- st.caption("INNERTUBE_API_KEY global usada pelo Upload directo para todas as contas Google/YouTube.")
7052
- upload_innertube = st.text_input("INNERTUBE_API_KEY", value=str(settings.get("direct_innertube_api_key") or settings.get("INNERTUBE_API_KEY") or ""), type="password", key="upload_api_innertube_key")
7053
- if st.button("Guardar INNERTUBE_API_KEY", type="primary", use_container_width=True, key="upload_save_innertube"):
7051
+ st.markdown("### INNERTUBE_API_KEY")
7052
+ st.caption("Esta é uma chave API global do YouTube: aplica-se a todas as contas Google/YouTube e a todo o sistema. Não é associada a uma conta específica, não faz parte dos documentos de cookies/credenciais e não é editada no separador API Keys.")
7053
+ upload_batch_accounts = [item for item in settings.get("youtube_batch_accounts", []) if isinstance(item, dict) and item.get("id")]
7054
+ current_upload_innertube = str(settings.get("direct_innertube_api_key") or settings.get("INNERTUBE_API_KEY") or "").strip()
7055
+ if not current_upload_innertube:
7056
+ for legacy_account in upload_batch_accounts:
7057
+ current_upload_innertube = str(legacy_account.get("innertube_api_key") or legacy_account.get("INNERTUBE_API_KEY") or "").strip()
7058
+ if current_upload_innertube:
7059
+ break
7060
+ if current_upload_innertube:
7061
+ settings["direct_innertube_api_key"] = current_upload_innertube
7062
+ settings.pop("INNERTUBE_API_KEY", None)
7063
+ for legacy_account in upload_batch_accounts:
7064
+ legacy_account.pop("innertube_api_key", None)
7065
+ legacy_account.pop("INNERTUBE_API_KEY", None)
7066
+ settings["youtube_batch_accounts"] = upload_batch_accounts
7067
+ write_json("settings.json", settings)
7068
+ innertube_upload_status = st.columns([3.2, 1.2])
7069
+ with innertube_upload_status[0]:
7070
+ st.caption("Estado da chave global")
7071
+ with innertube_upload_status[1]:
7072
+ _render_credential_status(current_upload_innertube)
7073
+ with st.form("upload_innertube_api_key_form"):
7074
+ upload_innertube = st.text_input("INNERTUBE_API_KEY", value=current_upload_innertube, type="password", key="upload_api_innertube_key", help="Chave global usada pelo Upload directo para todas as contas Google/YouTube. Guarde-a na configuração global, separada dos documentos de cookies.")
7075
+ _render_api_test_control(settings, "innertube_upload", lambda: test_innertube_api_key(upload_innertube), widget_key="api_test_innertube_upload")
7076
+ save_upload_innertube = st.form_submit_button("Guardar INNERTUBE_API_KEY global", type="primary", use_container_width=True)
7077
+ if save_upload_innertube:
7054
7078
  settings["direct_innertube_api_key"] = upload_innertube.strip()
7055
7079
  settings.pop("INNERTUBE_API_KEY", None)
7080
+ for legacy_account in upload_batch_accounts:
7081
+ legacy_account.pop("innertube_api_key", None)
7082
+ legacy_account.pop("INNERTUBE_API_KEY", None)
7083
+ settings["youtube_batch_accounts"] = upload_batch_accounts
7056
7084
  write_json("settings.json", settings)
7057
- st.success("INNERTUBE_API_KEY guardada.")
7085
+ st.success("INNERTUBE_API_KEY global guardada para todas as contas Google/YouTube e para todo o sistema.")
7058
7086
  st.rerun()
7059
7087
  with st.expander("API Tiktok", expanded=False):
7060
7088
  render_tiktok_api_cards(settings)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@danhachuel/thunderbolt",
3
- "version": "0.4.55",
3
+ "version": "0.4.56",
4
4
  "description": "Thunderbolt — interface local para operação de canais faceless e motor MoneyPrinterTurbo",
5
5
  "license": "MIT",
6
6
  "main": "scripts/cli.mjs",