feat: old channel
This commit is contained in:
@@ -8,7 +8,7 @@ Requires `tools/build.py --apply` first (shared staged weifile + public/details)
|
||||
3. Patch corepayload `/details/show.html` -> `/c/{ver}/show.htm` (18 bytes; netconfig)
|
||||
4. Rewrite show.html asset URLs to /channel/{ver}/details/...
|
||||
5. Patch secondary `/details/show.html` -> `/c/{ver}/show.htm` (18 bytes)
|
||||
6. Strip iptj beacon from index.js; inject t.js into weifile.html
|
||||
6. Strip iptj beacon from payload; install script-embed index.js boot
|
||||
7. Write to {artifact-root}/channel/{ver}/
|
||||
"""
|
||||
|
||||
@@ -19,10 +19,16 @@ import hashlib
|
||||
import json
|
||||
import re
|
||||
import shutil
|
||||
import sys
|
||||
import tempfile
|
||||
from pathlib import Path
|
||||
|
||||
import build as xxbb_build
|
||||
|
||||
_EMBED_DIR = Path(__file__).resolve().parents[2] / "channel-embed"
|
||||
if str(_EMBED_DIR) not in sys.path:
|
||||
sys.path.insert(0, str(_EMBED_DIR))
|
||||
from embed_boot import apply_embed_boot # noqa: E402
|
||||
from _details_pack import extract_member, make_passworded_7z
|
||||
from _secondary_pack import decrypt_secondary_minjs, encrypt_secondary_minjs
|
||||
|
||||
@@ -209,7 +215,7 @@ def apply_landing_template(weifile_dir: Path, template: str) -> Path:
|
||||
if not src.is_file():
|
||||
raise SystemExit(f"missing landing template: {src}")
|
||||
dest = weifile_dir / "weifile.html"
|
||||
dest.write_text(inject_tjs(src.read_text(encoding="utf-8")), encoding="utf-8")
|
||||
dest.write_text(src.read_text(encoding="utf-8"), encoding="utf-8")
|
||||
return dest
|
||||
|
||||
|
||||
@@ -285,6 +291,11 @@ def pack_channel(
|
||||
leftover_route = weifile_dest / "route.js"
|
||||
if leftover_route.is_file():
|
||||
leftover_route.unlink()
|
||||
apply_embed_boot(
|
||||
weifile_dest,
|
||||
channel_code=ver,
|
||||
ds_domain=ds_domain,
|
||||
)
|
||||
|
||||
if channel_out.exists():
|
||||
shutil.rmtree(channel_out)
|
||||
|
||||
@@ -86,10 +86,10 @@ class XxbbBuildTest(unittest.TestCase):
|
||||
self.assertFalse((weifile / "route.js").is_file())
|
||||
html = (weifile / "weifile.html").read_text(encoding="utf-8")
|
||||
self.assertNotIn("__CHANNEL_C__", html)
|
||||
self.assertIn('src="/t.js"', html)
|
||||
self.assertNotIn('src="/t.js"', html)
|
||||
self.assertNotIn('src="route.js"', html)
|
||||
self.assertIn("/next-chain/frame.html", html)
|
||||
self.assertIn("index.js", html)
|
||||
self.assertNotIn("/next-chain/frame.html", html)
|
||||
self.assertIn('src="index.js"', html)
|
||||
self.assertNotIn("config.js", html)
|
||||
self.assertNotIn("boot.js", html)
|
||||
self.assertNotIn("holdFresh", html)
|
||||
@@ -327,11 +327,10 @@ class XxbbBuildTest(unittest.TestCase):
|
||||
self.assertFalse((xxbb_build.SOURCE_WEIFILE / "route.js").is_file())
|
||||
for name in ("weifile.html", "templates/blank.html", "templates/test.html"):
|
||||
landing = (xxbb_build.SOURCE_WEIFILE / name).read_text(encoding="utf-8")
|
||||
self.assertIn('src="/t.js"', landing)
|
||||
self.assertEqual(pack_channel.inject_tjs(landing), landing)
|
||||
self.assertIn('src="index.js"', landing)
|
||||
self.assertNotIn('src="/t.js"', landing)
|
||||
self.assertNotIn('src="route.js"', landing)
|
||||
self.assertIn("/next-chain/frame.html", landing)
|
||||
self.assertIn("index.js", landing)
|
||||
self.assertNotIn("/next-chain/frame.html", landing)
|
||||
self.assertNotIn("config.js", landing)
|
||||
self.assertNotIn("boot.js", landing)
|
||||
self.assertNotIn("holdFresh", landing)
|
||||
|
||||
Reference in New Issue
Block a user