weed-cli 2.4.0__tar.gz → 2.4.4__tar.gz

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 (29) hide show
  1. {weed_cli-2.4.0/weed_cli.egg-info → weed_cli-2.4.4}/PKG-INFO +19 -3
  2. {weed_cli-2.4.0 → weed_cli-2.4.4}/README.md +18 -2
  3. {weed_cli-2.4.0 → weed_cli-2.4.4}/pyproject.toml +1 -1
  4. {weed_cli-2.4.0 → weed_cli-2.4.4/weed_cli.egg-info}/PKG-INFO +19 -3
  5. {weed_cli-2.4.0 → weed_cli-2.4.4}/LICENSE +0 -0
  6. {weed_cli-2.4.0 → weed_cli-2.4.4}/dht.py +0 -0
  7. {weed_cli-2.4.0 → weed_cli-2.4.4}/discovery_relay.py +0 -0
  8. {weed_cli-2.4.0 → weed_cli-2.4.4}/lightning_settle.py +0 -0
  9. {weed_cli-2.4.0 → weed_cli-2.4.4}/node.py +0 -0
  10. {weed_cli-2.4.0 → weed_cli-2.4.4}/poc_reputation.py +0 -0
  11. {weed_cli-2.4.0 → weed_cli-2.4.4}/setup.cfg +0 -0
  12. {weed_cli-2.4.0 → weed_cli-2.4.4}/shell.py +0 -0
  13. {weed_cli-2.4.0 → weed_cli-2.4.4}/tests/test_dht.py +0 -0
  14. {weed_cli-2.4.0 → weed_cli-2.4.4}/tests/test_discovery_relay.py +0 -0
  15. {weed_cli-2.4.0 → weed_cli-2.4.4}/tests/test_host_live_reload.py +0 -0
  16. {weed_cli-2.4.0 → weed_cli-2.4.4}/tests/test_node_manifest.py +0 -0
  17. {weed_cli-2.4.0 → weed_cli-2.4.4}/tests/test_orbit_ws.py +0 -0
  18. {weed_cli-2.4.0 → weed_cli-2.4.4}/tests/test_timing_challenge.py +0 -0
  19. {weed_cli-2.4.0 → weed_cli-2.4.4}/tests/test_tunnel_failover.py +0 -0
  20. {weed_cli-2.4.0 → weed_cli-2.4.4}/tests/test_web_ui_api.py +0 -0
  21. {weed_cli-2.4.0 → weed_cli-2.4.4}/tests/testutil.py +0 -0
  22. {weed_cli-2.4.0 → weed_cli-2.4.4}/tunnel_relay.py +0 -0
  23. {weed_cli-2.4.0 → weed_cli-2.4.4}/web_ui.py +0 -0
  24. {weed_cli-2.4.0 → weed_cli-2.4.4}/weed.py +0 -0
  25. {weed_cli-2.4.0 → weed_cli-2.4.4}/weed_cli.egg-info/SOURCES.txt +0 -0
  26. {weed_cli-2.4.0 → weed_cli-2.4.4}/weed_cli.egg-info/dependency_links.txt +0 -0
  27. {weed_cli-2.4.0 → weed_cli-2.4.4}/weed_cli.egg-info/entry_points.txt +0 -0
  28. {weed_cli-2.4.0 → weed_cli-2.4.4}/weed_cli.egg-info/requires.txt +0 -0
  29. {weed_cli-2.4.0 → weed_cli-2.4.4}/weed_cli.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: weed-cli
3
- Version: 2.4.0
3
+ Version: 2.4.4
4
4
  Summary: Censorship-resistant video PoC — discovery/hosting/download over signed relay events, a real Kademlia DHT, or a TLS-capable NAT-traversal tunnel
5
5
  License: MIT
6
6
  Keywords: p2p,video,censorship-resistant,discovery,dht,kademlia,nat-traversal
@@ -201,6 +201,18 @@ Includes real HTTP range support (`/api/stream/<job_id>`) so a
201
201
  `<video>` tag can seek a completed download instead of downloading it
202
202
  blind.
203
203
 
204
+ The visualizer's 🎹 panel binds an AKAI MPK mini (or any Web MIDI
205
+ controller) to modes, transitions and sliders; **export** saves the
206
+ keymap as a `.json` file and **import** loads one, so a layout travels
207
+ between browsers and machines.
208
+
209
+ The player's ⇄ button is **video swap**: pick another download whose
210
+ picture stands in for the current track's — for an mp3 or a
211
+ static-image video, so the visualizer (and the player window) have real
212
+ footage. The audio stays with the track; the borrowed video loops on its
213
+ own, follows play/pause, and the choice is remembered per track in the
214
+ browser.
215
+
204
216
  ### Orbit Visualizer plugins
205
217
 
206
218
  The visualizer's modes and its Fade transitions are both open registries:
@@ -213,8 +225,8 @@ mode selector; a registered transition gets a Fade option and a turn in
213
225
  "Random". A plugin that throws is logged once and disabled without
214
226
  taking the draw loop down. `web/orbit_extras.js` (loaded by default) is
215
227
  built entirely on that API and adds Halftone, Lava, Terrain, Rain,
216
- Lissajous, Ripples and Cube, plus the Melt, Dissolve, Iris, Shatter,
217
- Wave, Spin, Zoom blur and RGB split transitions; `web/orbit_plugin_example.js`
228
+ Lissajous, Ripples, Cube, VHS, Win95 and Joy Division, plus the Melt, Dissolve, Iris,
229
+ Shatter, Wave, Spin, Zoom blur, RGB split, VHS and Win95 transitions; `web/orbit_plugin_example.js`
218
230
  is a minimal one to copy.
219
231
 
220
232
  ### Docker
@@ -245,6 +257,10 @@ docker compose -f docker-compose.node.yml exec node python3 weed.py discover #
245
257
  - `/share` is a separate *bind* mount, not a named volume, so the actual
246
258
  `.ott` archives you're hosting are real files on the host you can see
247
259
  and manage directly. Point the web UI's Host form at `/share`.
260
+ - `web/` is bind-mounted read-only over the image's own copy, and the
261
+ server re-reads static files per request with `Cache-Control: no-store`,
262
+ so frontend edits show up on a browser reload — no rebuild or restart.
263
+ Python changes (`web_ui.py`, `node.py`) still need `make node`.
248
264
  - An entry's `last_path` (recorded at `ott add` time, on whatever
249
265
  machine ran it) is only trusted if it exists on disk; otherwise the
250
266
  node falls back to the given archive directory. This matters the
@@ -169,6 +169,18 @@ Includes real HTTP range support (`/api/stream/<job_id>`) so a
169
169
  `<video>` tag can seek a completed download instead of downloading it
170
170
  blind.
171
171
 
172
+ The visualizer's 🎹 panel binds an AKAI MPK mini (or any Web MIDI
173
+ controller) to modes, transitions and sliders; **export** saves the
174
+ keymap as a `.json` file and **import** loads one, so a layout travels
175
+ between browsers and machines.
176
+
177
+ The player's ⇄ button is **video swap**: pick another download whose
178
+ picture stands in for the current track's — for an mp3 or a
179
+ static-image video, so the visualizer (and the player window) have real
180
+ footage. The audio stays with the track; the borrowed video loops on its
181
+ own, follows play/pause, and the choice is remembered per track in the
182
+ browser.
183
+
172
184
  ### Orbit Visualizer plugins
173
185
 
174
186
  The visualizer's modes and its Fade transitions are both open registries:
@@ -181,8 +193,8 @@ mode selector; a registered transition gets a Fade option and a turn in
181
193
  "Random". A plugin that throws is logged once and disabled without
182
194
  taking the draw loop down. `web/orbit_extras.js` (loaded by default) is
183
195
  built entirely on that API and adds Halftone, Lava, Terrain, Rain,
184
- Lissajous, Ripples and Cube, plus the Melt, Dissolve, Iris, Shatter,
185
- Wave, Spin, Zoom blur and RGB split transitions; `web/orbit_plugin_example.js`
196
+ Lissajous, Ripples, Cube, VHS, Win95 and Joy Division, plus the Melt, Dissolve, Iris,
197
+ Shatter, Wave, Spin, Zoom blur, RGB split, VHS and Win95 transitions; `web/orbit_plugin_example.js`
186
198
  is a minimal one to copy.
187
199
 
188
200
  ### Docker
@@ -213,6 +225,10 @@ docker compose -f docker-compose.node.yml exec node python3 weed.py discover #
213
225
  - `/share` is a separate *bind* mount, not a named volume, so the actual
214
226
  `.ott` archives you're hosting are real files on the host you can see
215
227
  and manage directly. Point the web UI's Host form at `/share`.
228
+ - `web/` is bind-mounted read-only over the image's own copy, and the
229
+ server re-reads static files per request with `Cache-Control: no-store`,
230
+ so frontend edits show up on a browser reload — no rebuild or restart.
231
+ Python changes (`web_ui.py`, `node.py`) still need `make node`.
216
232
  - An entry's `last_path` (recorded at `ott add` time, on whatever
217
233
  machine ran it) is only trusted if it exists on disk; otherwise the
218
234
  node falls back to the given archive directory. This matters the
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "weed-cli"
7
- version = "2.4.0"
7
+ version = "2.4.4"
8
8
  description = "Censorship-resistant video PoC — discovery/hosting/download over signed relay events, a real Kademlia DHT, or a TLS-capable NAT-traversal tunnel"
9
9
  readme = "README.md"
10
10
  license = { text = "MIT" }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: weed-cli
3
- Version: 2.4.0
3
+ Version: 2.4.4
4
4
  Summary: Censorship-resistant video PoC — discovery/hosting/download over signed relay events, a real Kademlia DHT, or a TLS-capable NAT-traversal tunnel
5
5
  License: MIT
6
6
  Keywords: p2p,video,censorship-resistant,discovery,dht,kademlia,nat-traversal
@@ -201,6 +201,18 @@ Includes real HTTP range support (`/api/stream/<job_id>`) so a
201
201
  `<video>` tag can seek a completed download instead of downloading it
202
202
  blind.
203
203
 
204
+ The visualizer's 🎹 panel binds an AKAI MPK mini (or any Web MIDI
205
+ controller) to modes, transitions and sliders; **export** saves the
206
+ keymap as a `.json` file and **import** loads one, so a layout travels
207
+ between browsers and machines.
208
+
209
+ The player's ⇄ button is **video swap**: pick another download whose
210
+ picture stands in for the current track's — for an mp3 or a
211
+ static-image video, so the visualizer (and the player window) have real
212
+ footage. The audio stays with the track; the borrowed video loops on its
213
+ own, follows play/pause, and the choice is remembered per track in the
214
+ browser.
215
+
204
216
  ### Orbit Visualizer plugins
205
217
 
206
218
  The visualizer's modes and its Fade transitions are both open registries:
@@ -213,8 +225,8 @@ mode selector; a registered transition gets a Fade option and a turn in
213
225
  "Random". A plugin that throws is logged once and disabled without
214
226
  taking the draw loop down. `web/orbit_extras.js` (loaded by default) is
215
227
  built entirely on that API and adds Halftone, Lava, Terrain, Rain,
216
- Lissajous, Ripples and Cube, plus the Melt, Dissolve, Iris, Shatter,
217
- Wave, Spin, Zoom blur and RGB split transitions; `web/orbit_plugin_example.js`
228
+ Lissajous, Ripples, Cube, VHS, Win95 and Joy Division, plus the Melt, Dissolve, Iris,
229
+ Shatter, Wave, Spin, Zoom blur, RGB split, VHS and Win95 transitions; `web/orbit_plugin_example.js`
218
230
  is a minimal one to copy.
219
231
 
220
232
  ### Docker
@@ -245,6 +257,10 @@ docker compose -f docker-compose.node.yml exec node python3 weed.py discover #
245
257
  - `/share` is a separate *bind* mount, not a named volume, so the actual
246
258
  `.ott` archives you're hosting are real files on the host you can see
247
259
  and manage directly. Point the web UI's Host form at `/share`.
260
+ - `web/` is bind-mounted read-only over the image's own copy, and the
261
+ server re-reads static files per request with `Cache-Control: no-store`,
262
+ so frontend edits show up on a browser reload — no rebuild or restart.
263
+ Python changes (`web_ui.py`, `node.py`) still need `make node`.
248
264
  - An entry's `last_path` (recorded at `ott add` time, on whatever
249
265
  machine ran it) is only trusted if it exists on disk; otherwise the
250
266
  node falls back to the given archive directory. This matters the
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes