← Files Olympic Weightlifting BuilderARCHIVED FILE
skills/build-basic-program/scripts/program_link.py
1.06 KB · Nov 3, 2026 · 19:27 UTC
#!/usr/bin/env python3
"""Encode a program JSON file as a portable signup/import link; stdlib only."""
import argparse
import base64
import json
from pathlib import Path
import zlib
parser = argparse.ArgumentParser()
parser.add_argument('program', type=Path)
args = parser.parse_args()
if args.program.stat().st_size > 300000:
parser.error('Program is too large; split into smaller blocks.')
program = json.loads(args.program.read_text())
if not isinstance(program, dict) or program.get('v') != 1:
parser.error('Expected a v1 program object.')
if set(program) != {'v', 'name', 'entries'}:
parser.error('Only v, name and entries belong in a link. Never include personal account data.')
raw = json.dumps(program, ensure_ascii=False, separators=(',', ':')).encode()
if len(raw) > 300000:
parser.error('Program is too large.')
token = base64.urlsafe_b64encode(zlib.compress(raw, 9)).decode().rstrip('=')
if len(token) > 24000:
parser.error('Link is too long; split into smaller blocks.')
print('https://www.weightliftinganalytics.com/program-import#plan=' + token)
SHA-256: aa72513ef6a3710478b06a2f20ce36dce1e787aedba7312b38ba5f74373dfa8c