diff --git a/docs/de/usage.md b/docs/de/usage.md index 833e23b..aff669c 100644 --- a/docs/de/usage.md +++ b/docs/de/usage.md @@ -70,16 +70,16 @@ voxvera manage ``` Features: -- **--- Create New Site/Flyer ---**: Start the full setup sequence. -- **Start/Stop All Sites**: Launch or shut down every flyer in your fleet at once. +- **--- Neue Website/Flyer erstellen ---**: Start the full setup sequence. +- **--- Alle Websites starten ---**: Launch or shut down every flyer in your fleet at once. - **Real-time Status**: View active `.onion` URLs and Tor bootstrapping progress indicators. -- **Individual Control**: Export specific sites to ZIP or delete them. +- **Individual Control**: Als Zip exportieren specific sites to ZIP or delete them. ## Universal Mirroring (Viral Distribution) To ensure VoxVera remains accessible even if central repositories are censored, every flyer acts as a mirror for the tool. -When you host a flyer, the **"Download Tool & Source"** button on the landing page provides a `voxvera-portable.zip` containing: +When you host a flyer, the **"Tool & Quellcode herunterladen"** button on the landing page provides a `voxvera-portable.zip` containing: - The full source code and all supported languages. - All Python dependencies (pre-vendored). - Cross-platform Tor binaries. diff --git a/docs/en/usage.md b/docs/en/usage.md index 833e23b..573c0c4 100644 --- a/docs/en/usage.md +++ b/docs/en/usage.md @@ -71,9 +71,9 @@ voxvera manage Features: - **--- Create New Site/Flyer ---**: Start the full setup sequence. -- **Start/Stop All Sites**: Launch or shut down every flyer in your fleet at once. +- **--- Start All Sites ---**: Launch or shut down every flyer in your fleet at once. - **Real-time Status**: View active `.onion` URLs and Tor bootstrapping progress indicators. -- **Individual Control**: Export specific sites to ZIP or delete them. +- **Individual Control**: Export to Zip specific sites to ZIP or delete them. ## Universal Mirroring (Viral Distribution) diff --git a/docs/es/usage.md b/docs/es/usage.md index 833e23b..0cb795b 100644 --- a/docs/es/usage.md +++ b/docs/es/usage.md @@ -70,16 +70,16 @@ voxvera manage ``` Features: -- **--- Create New Site/Flyer ---**: Start the full setup sequence. -- **Start/Stop All Sites**: Launch or shut down every flyer in your fleet at once. +- **--- Crear Nuevo Sitio/Volante ---**: Start the full setup sequence. +- **--- Iniciar Todos los Sitios ---**: Launch or shut down every flyer in your fleet at once. - **Real-time Status**: View active `.onion` URLs and Tor bootstrapping progress indicators. -- **Individual Control**: Export specific sites to ZIP or delete them. +- **Individual Control**: Exportar a Zip specific sites to ZIP or delete them. ## Universal Mirroring (Viral Distribution) To ensure VoxVera remains accessible even if central repositories are censored, every flyer acts as a mirror for the tool. -When you host a flyer, the **"Download Tool & Source"** button on the landing page provides a `voxvera-portable.zip` containing: +When you host a flyer, the **"Descargar Herramienta y Código"** button on the landing page provides a `voxvera-portable.zip` containing: - The full source code and all supported languages. - All Python dependencies (pre-vendored). - Cross-platform Tor binaries. diff --git a/docs/templates/usage.md b/docs/templates/usage.md index 833e23b..6ddefd9 100644 --- a/docs/templates/usage.md +++ b/docs/templates/usage.md @@ -70,16 +70,16 @@ voxvera manage ``` Features: -- **--- Create New Site/Flyer ---**: Start the full setup sequence. -- **Start/Stop All Sites**: Launch or shut down every flyer in your fleet at once. +- **{{t('cli.manage_create_new')}}**: Start the full setup sequence. +- **{{t('cli.manage_start_all')}}**: Launch or shut down every flyer in your fleet at once. - **Real-time Status**: View active `.onion` URLs and Tor bootstrapping progress indicators. -- **Individual Control**: Export specific sites to ZIP or delete them. +- **Individual Control**: {{t('cli.manage_action_export')}} specific sites to ZIP or delete them. ## Universal Mirroring (Viral Distribution) To ensure VoxVera remains accessible even if central repositories are censored, every flyer acts as a mirror for the tool. -When you host a flyer, the **"Download Tool & Source"** button on the landing page provides a `voxvera-portable.zip` containing: +When you host a flyer, the **"{{t('web.download_button')}}"** button on the landing page provides a `voxvera-portable.zip` containing: - The full source code and all supported languages. - All Python dependencies (pre-vendored). - Cross-platform Tor binaries. diff --git a/tests/test_cli.py b/tests/test_cli.py index e790e96..fddbfcd 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -2,7 +2,6 @@ import os import sys import shutil import json -import datetime from pathlib import Path import zipfile import time diff --git a/voxvera/__init__.py b/voxvera/__init__.py index 4b823c2..b0978f4 100644 --- a/voxvera/__init__.py +++ b/voxvera/__init__.py @@ -1,5 +1,4 @@ import sys -import os from pathlib import Path # Add the vendor directory to sys.path so we can run without pip install diff --git a/voxvera/cli.py b/voxvera/cli.py index efc2227..36347b6 100644 --- a/voxvera/cli.py +++ b/voxvera/cli.py @@ -479,7 +479,6 @@ def serve(config_path: str) -> str | None: f.write(str(proc.pid)) try: - import time import re as _re onion_url = None @@ -629,7 +628,6 @@ def import_site(zip_path: str): def import_multiple_sites(source_dir: str = None): """Import all zip files from a directory (defaults to ~/voxvera-exports).""" - import glob if not source_dir: source_dir = get_export_dir() @@ -779,8 +777,6 @@ def vendorize(): def batch_import_configs(): - import glob - files = sorted(glob.glob(str(ROOT / "imports" / "*.json"))) if not files: print("No JSON files found in imports") @@ -1023,7 +1019,6 @@ def choose_language(current_lang: str = None) -> str: def main(argv=None): - import glob parser = argparse.ArgumentParser(prog="voxvera") parser.add_argument( "--config", diff --git a/voxvera/host/voxvera/download/.gitkeep b/voxvera/host/voxvera/download/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/voxvera/host/voxvera/download/voxvera-portable.zip b/voxvera/host/voxvera/download/voxvera-portable.zip new file mode 100644 index 0000000..7780c15 Binary files /dev/null and b/voxvera/host/voxvera/download/voxvera-portable.zip differ diff --git a/voxvera/host/voxvera/index.html b/voxvera/host/voxvera/index.html index e247e50..a71ffb3 100644 --- a/voxvera/host/voxvera/index.html +++ b/voxvera/host/voxvera/index.html @@ -53,7 +53,7 @@ margin-top: 20px; } - .print-button { + .print-button, .download-button, .lang-select { padding: 10px 20px; font-size: 14px; cursor: pointer; @@ -61,23 +61,16 @@ color: #fff; border: none; border-radius: 0px; + font-family: 'Courier New', Courier, monospace; } - .print-button:hover { - background-color: #444; + .lang-select { + background-color: #f0f0f0; + color: #000; + border: 1px solid #000; } - .download-button { - padding: 10px 20px; - font-size: 14px; - cursor: pointer; - background-color: #000; - color: #fff; - border: none; - border-radius: 0px; - } - - .download-button:hover { + .print-button:hover, .download-button:hover { background-color: #444; } @@ -259,6 +252,7 @@ margin: 0; padding: 0; overflow: hidden; + display: block; } .container { @@ -272,12 +266,8 @@ overflow: hidden; } - .print-button { - display: none; - } - - .download-button { - display: none; + .print-button, .download-button, .lang-select, .button-bar { + display: none !important; } body { @@ -292,6 +282,48 @@ } +
@@ -299,21 +331,22 @@
@@ -321,10 +354,10 @@
@@ -332,10 +365,10 @@
@@ -343,10 +376,10 @@
@@ -354,10 +387,10 @@
@@ -365,10 +398,10 @@
@@ -376,10 +409,10 @@
@@ -387,10 +420,10 @@
@@ -398,10 +431,10 @@
@@ -432,14 +465,15 @@ Join us in a revolution that values truth and transparency. Together, we can bui