Toan VoandClaude Opus 5.5 de42353a69
Deploy / deploy (push) Successful in 2s
feat: push ntfy khi có lời chúc mới
- apps-script.gs: doPost lưu xong mới gọi notify() (UrlFetchApp, JSON publish, topic loichuc);
  token/URL lấy từ Script Properties; lỗi chỉ log; tối đa 5 push/phút, dư thì gộp +N
- ghi nhãn site vào cột E "Trang"; testNtfy() để cấp quyền và thử
- app.js gửi kèm site: location.hostname

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-06 22:39:31 +07:00

luyentoan

Thiệp cưới Luyến & Toàn. Static site trong public/, lời chúc lưu vào Google Sheet qua Apps Script (không cần backend).

Nội dung cần điền

  • public/index.html: các chỗ [...] (họ tên, giờ, địa điểm, link bản đồ, cha mẹ, timeline).

  • Video: sửa data-video (ID YouTube) và link ảnh --thumb ở #yt trong public/index.html.

  • Ảnh đặt trong public/img/ (thiếu file nào thì khung đó hiện placeholder có ghi tên):

    File Vị trí Tỉ lệ nên dùng
    hero.jpg Khung vòm ở bìa, cạnh thẻ tên dọc 3:4
    family-bg.jpg, date-bg.jpg Nền phần Gia đình, Ngày giờ (phủ màu kem mờ) ngang
    video-l.jpg, video-r.jpg Khung vòm cô dâu (trái) / chú rể (phải) cạnh video dọc 2:3
    wish-bg.jpg, footer.jpg Nền phần Lời chúc, chân trang (phủ màu tối/đỏ) ngang
    co-dau.jpg, chu-re.jpg Ảnh oval trên thẻ nhà gái / nhà trai dọc 4:5, mặt ở giữa
    band.jpg Dải ảnh ngang có câu trích ngang 16:9
    timeline-1.jpg … timeline-6.jpg Polaroid trong "Hành trình yêu thương" vuông 1:1
    album-1.jpg … album-31.jpg Collage "Khoảnh khắc của chúng mình", bấm để xem phóng to (class tall = ảnh dọc, wide = ảnh ngang) —
    deco/*.png Rồng, phượng, 囍, con dấu, trầu cau cắt từ thiệp giấy PNG nền trong

    Nên nén ảnh chiều dài nhất ~1600px, JPG chất lượng ~80.

Kết nối Google Sheet

  1. Tạo Google Sheet mới, vào Extensions > Apps Script, dán nội dung apps-script.gs, lưu.
  2. Deploy > New deployment > Web app: Execute as Me, Who has access Anyone. Cấp quyền.
  3. Copy URL https://script.google.com/macros/s/.../exec vào secret SHEET_API của repo trên Gitea (Settings > Actions > Secrets). CI thay __SHEET_API__ trong public/app.js lúc deploy, không commit URL vào repo.
  4. Lời chúc mới vào tab LoiChuc; tick cột Duyệt để hiện lên trang. Muốn hiện ngay không cần duyệt: đặt REQUIRE_APPROVAL = false rồi deploy lại (Manage deployments > Edit > New version).
  5. Push về điện thoại khi có lời chúc mới (ntfy, topic loichuc):
    • Apps Script > Project Settings > Script properties: thêm NTFY_URL = https://ntfy.okeluon.io.vn và NTFY_TOKEN = token write-only (ssh vps 'sudo cat /etc/ntfy/publish_token' | pbcopy, dán, không in ra terminal).
    • Trong trình soạn, chạy hàm testNtfy một lần để cấp quyền gọi URL ngoài; điện thoại phải nhận tin.
    • Manage deployments > Edit > New version (giữ nguyên URL, không cần sửa secret SHEET_API).
    • App ntfy: thêm server https://ntfy.okeluon.io.vn, đăng nhập admin, subscribe loichuc.
    • Push gửi sau khi đã lưu; ntfy lỗi thì lời chúc vẫn lưu, lỗi xem ở Executions. Tối đa 5 push/phút, quá thì gộp "+N" vào tin sau. Hai site dùng chung một script; app.js gửi site: location.hostname, script ghi nhãn vào cột Trang.

Hiệu ứng 3D

public/three-scene.js (Three.js + Lenis, tự host trong public/vendor/) chỉ được tải khi máy đủ mạnh: đoạn script đầu <head> kiểm tra WebGL2, GPU, số nhân/RAM, "giảm chuyển động", mạng chậm. Đang chạy mà dưới 24fps thì tự gỡ 3D về giao diện thường và nhớ trong phiên. Thử: ?3d=1 ép bật, ?lite=1 ép tắt.

Xem thử

python3 -m http.server -d public 8080   # http://localhost:8080
S
Description
No description provided
Readme
14 MiB
0 Stars 1 Watchers 0 Forks
Languages
JavaScript 40.1%
CSS 34.7%
HTML 22.3%
Makefile 2.9%