尚未收集儲存庫資訊。
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗Every game in one place: basketball (NBA, WNBA, NCAA M, NCAA W), football (NFL, NCAA F) and baseball (MLB, NCAA B). Live at https://raylikeray.github.io/tipoff/
#record) is not a tab; it is linked from each center's Model module, the Forecasts page and the footer. Links are #<league>/<section>; old links still work.#my): the ★ tab at the front of the sport switch (and the logo, once teams are picked) opens one screen for every team you follow across every sport: live games now, a card per team (record, standing, next game with the forecast, last result, who's out) grouped by sport, up next with forecasts, results from the last seven days, and a wire of your teams' injuries and transactions. It is the landing page as soon as any team is picked. League tabs carry a ★ where you have teams.sw.js; an install strip appears once on phones). Updates for my teams (js/app.js, favorites only, while Tipoff is open or installed): pregame 30 minutes before tip with the forecast and who is out, close games late, finals, injury-report changes (checked every 15 min), and transactions (every 30 min). Each kind can be toggled; nothing is sent for other teams. True push with the app closed is push/worker.js (a free Cloudflare Worker; see push/README.md), switched on by setting PUSH.url in js/config.js once it is deployed.js/config.js carries one entry per league (sport, ESPN path, periods, spread, home advantage, Elo speed, season start, which feeds exist). Football leagues are weekly: the center shows the current week's slate. Baseball games show the line score with R/H/E and outs and runners while live; football shows down and distance and who has the ball. Box scores render every stat category ESPN sends (passing/rushing/receiving…, batting/pitching). The Players page lists ESPN's season leaders by category for football and baseball (sortable), and per-game averages for basketball.intent:// URLs that launch the installed app and fall back to the web page; elsewhere they are the services' live pages. Each league center has a Where to watch module listing the day's games by service. Tables: SERVICES, SERVICE_GROUPS, REGIONAL in js/core.js; the choice is saved on the device (hw:watch).tools/nightly.mjs ratings (GitHub Action nightly.yml) into data/<league>/ratings.json; the browser adds home court, rest and an injury adjustment weighted by scoring (js/core.js). Every pregame call is scored against the result and ESPN's own pregame win probability in data/<league>/record.json, shown on the Record page. Each call carries two lines: line, the closing line ESPN's summary keeps after the final, and line0, the line on the scoreboard the first time the job saw the game that day (the morning run, normally) with at0 its UTC time — the number RIVL showed is the blend of its own margin with the line at the time, so the Record page scores the blend from line0 when it is there, which is the conservative reading, and from the closing line otherwise. gh/ga are the games each side had played, for the early-season weight.tools/nightly.mjs tune runs after the ratings, at most once a day whatever triggered the job (the job also runs on pushes to the script; on 2026-10-29 seven runs in one afternoon took seven steps on the same 68 games, which is why the once-a-day guard exists and why the NBA parameters were reset to the defaults on 2026-10-30). Replayed walk-forward over the 2026 WNBA season, tuning scored 0.1963 against 0.1971 for the fixed defaults — a few ten-thousandths, within noise — so the tuner is kept for its calibration layer and the record it leaves, not as a source of accuracy. tools/nightly.mjs rebuild replays the season under the parameters in params.json without a step, for a reset. It It replays the whole season under a grid of home-court, rest, spread and rating-speed values, keeps the mix with the best Brier score, moves the live parameters part of the way there (capped per night so it learns gradually), fits a calibration layer once there is enough data, and rebuilds the ratings with the new mix. Results go to data/<league>/params.json with a history that the Record page shows as a tuning log; the section bar shows the latest change. Tuning starts after a league-specific number of games (tuneAt in js/config.js: 60 NBA, 40 WNBA, 150 college basketball and football, 100 NFL, 300 baseball); baseball tunes in tenths of a run. A league added mid-season is back-filled from its first game (ESPN's pregame numbers are only collected for the last 45 days).index.html, css/app.css, js/*.js and push; bump the ?v= on the asset links in index.html so browsers pick up changes.Mark: a disc split by the line at center court, the top half already tipping off (img/symbol.svg; app icon img/mark.svg; PNG icons in img/). Two-tone: ink over orange on light, white over orange on dark.
Studio-gray ground, white panels, ink module headers with an angled orange tab, team abbreviations in their own color block, condensed numerals for scores and percentages, a red block for anything live. Barlow for text, Barlow Condensed for numbers and labels. Dark mode is the same system on near-black. All tokens are at the top of css/app.css; the 12-column module grid collapses to two columns on tablets and one on phones, where a sticky jump bar moves between modules.