{"id":46540393,"url":"https://github.com/robbiew/mg_advent","last_synced_at":"2026-03-07T01:03:25.862Z","repository":{"id":218819666,"uuid":"747445608","full_name":"robbiew/mg_advent","owner":"robbiew","description":"MiSTiGRiS 2025 Advent Calendar - as a classic BBS door - Linux and Windows compatible","archived":false,"fork":false,"pushed_at":"2025-12-02T02:36:54.000Z","size":28942,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-12-02T03:32:21.725Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/robbiew.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-01-24T00:01:49.000Z","updated_at":"2025-12-02T02:36:19.000Z","dependencies_parsed_at":"2024-11-29T22:40:40.842Z","dependency_job_id":null,"html_url":"https://github.com/robbiew/mg_advent","commit_stats":null,"previous_names":["robbiew/mg_advent"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/robbiew/mg_advent","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robbiew%2Fmg_advent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robbiew%2Fmg_advent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robbiew%2Fmg_advent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robbiew%2Fmg_advent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robbiew","download_url":"https://codeload.github.com/robbiew/mg_advent/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robbiew%2Fmg_advent/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30204452,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T19:07:06.838Z","status":"ssl_error","status_checked_at":"2026-03-06T18:57:34.882Z","response_time":250,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-03-07T01:03:25.260Z","updated_at":"2026-03-07T01:03:25.836Z","avatar_url":"https://github.com/robbiew.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MiSTiGRiS Advent Calendar\n\n\u003cimg src=\"images/WELCOME.png\" alt=\"Welcome Screen\" width=\"100%\"\u003e\n\nAn interactive BBS door program that displays ANSI Christmas art, a new one each day in December. Browse past collections as well. Compatible with all modern BBS systems that support Door32 dropfiles -- Windows and Linux.\n\n## Unified Repository Structure (2025+)\n\nThis repository now contains all versions of the Advent Calendar:\n\n- **Go/Modern (Linux, Windows, Mac):** Main Go codebase in root (`cmd/`, `internal/`, etc.)\n- **DOS (Legacy):** All Turbo Pascal and DOS-specific files are in `dos/` (NOT 100% functional!! see below)\n\n### Directory Layout\n\n```text\nmg_advent/\n├── cmd/           # Go entry point\n├── internal/      # Go core modules\n├── art/           # Modern art assets (Go version)\n├── dos/           # All DOS/Turbo Pascal code and assets\n│   ├── ADVENT.PAS\n│   ├── *.DAT\n│   ├── build_utils/\n│   └── art/\n│       ├── 2023/\n│       ├── 2024/\n│       ├── 2025/\n│       └── common/\n└── ...\n```\n\n## Quick Setup\n\n### Windows\n\n```batch\n@echo off\nset NODE=%1\nif \"%NODE%\"==\"\" set NODE=1\n\ncd /d \"C:\\bbs\\doors\\advent\"\nset DROPFILE_PATH=C:\\bbs\\temp\\%NODE%\\door32.sys\n\nmg-advent.exe -path \"%DROPFILE_PATH%\"\n```\n\n### Linux\n\n```bash\n#!/bin/bash\nNODE=${1:-1}\ncd /opt/bbs/doors/advent\nDROPFILE_PATH=\"/opt/bbs/temp/${NODE}/door32.sys\"\n\n./advent -path \"$DROPFILE_PATH\"\n```\n\nMake executable: `chmod +x advent.sh advent-linux-amd64`\n\n### DOS (Legacy)\n\nAll DOS code and assets are in `dos/`. You need Turbo Pascal 7 or compatible.\n\n**To build/run in DOSBox or real DOS:**\n\n1. Enter the `dos/` directory:\n\n ```text\n cd dos\n ```\n\n1. Open `ADVENT.PAS` in Turbo Pascal 7 and compile, or use batch/scripts in `build_utils/` if available.\n2. Run the resulting executable in DOS or DOSBox.\n\nArt assets for DOS are in `dos/art/` (identical structure to modern art/).\n\n## Command Line Options\n\n```text\n-path string           Path to door32.sys file\n-logon                 Logon mode: show current day's door, then COMEBACK.ANS and exit\n-debug-date string     Override date (YYYY-MM-DD)\n-debug-disable-date    Disable date validation\n-debug-disable-art     Disable art validation\n```\n\n## Building from Source\n\n### For Modern Systems (Windows 10+, Linux, Mac)\n\nPrerequisites: Go 1.24 or later, Git\n\n```bash\n# Clone repository\ngit clone https://github.com/robbiew/mg_advent.git\ncd mg_advent\n\n# Linux/Mac build (builds Linux amd64, arm64, and Windows 386)\n./scripts/build.sh\n\n# Windows build\nscripts\\build.bat\n```\n\n### For Windows 7 32-bit Compatibility\n\nWindows 7 requires Go 1.20 (last version with Windows 7 support).\n\n**One-time setup:**\n\n```bash\n# Install Go 1.20.14 toolchain\ngo install golang.org/dl/go1.20.14@latest\ngo1.20.14 download\n```\n\n**Building:**\n\n```bash\n# Linux/Mac (cross-compile)\n./scripts/build.sh  # Automatically uses go1.20.14 for Windows builds\n\n# Windows\nscripts\\build.bat   # Checks for go1.20.14, shows install instructions if needed\n\n# Manual build\nGOOS=windows GOARCH=386 CGO_ENABLED=0 ~/go/bin/go1.20.14 build -ldflags=\"-s -w\" -o dist/mg-advent.exe ./cmd/advent\n```\n\n**Note:** The build scripts automatically:\n\n- Detect and use Go 1.20.14 for Windows builds (Windows 7 compatibility)\n- Embed a Windows application manifest to prevent the 15-20 second delay when renaming executables on Windows 7\n\n**Windows 7 Rename Delay Fix:** The build scripts will automatically embed a manifest if `windres` is available. To enable this:\n\n**Linux/Mac:** `sudo apt-get install mingw-w64` or `brew install mingw-w64`\n**Windows:** Install MinGW-w64 from https://www.mingw-w64.org/ or `choco install mingw`\n\nIf `windres` is not available, the build will still succeed but renamed executables may experience a 15-20 second startup delay on Windows 7. See [`WINDOWS7-FIX.md`](WINDOWS7-FIX.md) for details.\n\n## Testing\n\n```bash\n# Local testing (no BBS required)\n# Skip date restrictions to view any day's art\n./advent -local -debug-disable-date -debug-date=2024-12-15\n```\n\n## Usage\n\n- **Arrow Keys**: Navigate between days\n- **1, 2, 3**: Jump to different years (2023, 2024, 2025)\n- **Q or ESC**: Return to welcome screen / exit\n- **I**: View info file\n- **M**: View members list\n\n## License\n\nThis project is released under the terms specified in the LICENSE file.\n\n---\n\n### Migration Note (2025)\n\nThe `dos/` directory is a work in progress and is not fully functional. The focus is on maintaining the modern Go version. Contributions to the DOS version are welcome but may require significant effort to bring it up to date.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobbiew%2Fmg_advent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobbiew%2Fmg_advent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobbiew%2Fmg_advent/lists"}