Book-gigs-project: helper scripts + gig-scraper import#6
Open
JoshuaVSherman wants to merge 7 commits into
Open
Book-gigs-project: helper scripts + gig-scraper import#6JoshuaVSherman wants to merge 7 commits into
JoshuaVSherman wants to merge 7 commits into
Conversation
Moved the scratch Playwright + xlsx scrapers that were sitting at ~/WebJamApps/gig-scraper/ into this repo so the scripts get version history and a defined home. Consolidated the V1/V2/V3 script versions down to one canonical file each, fixed a hardcoded path in scrape_songs.js, added a README documenting the scripts and the npm aliases, and added a .gitignore for node_modules / debug output. Non-regenerable outputs (Phone Call Priority List, Cleaned Venues) were uploaded to My Drive/GEMINI/ rather than into this repo. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Adds scripts/gmail_helper.py — Gmail send via the existing gmail-mcp OAuth tokens, reusable across CollegeLutheran, JoshMariaMusic, MariaParty projects (no app passwords needed). Adds scripts/send_daily_devotional.py — CollegeLutheran daily Prayer Ventures sender. Runs from cron at 06:00 ET, reads today's petition file from Drive, emails it to Josh. Exits 0 cleanly when the file doesn't exist (gemma extracts monthly). Also adds Python entries to .gitignore. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
gemma cannot reliably read its own queue (it hallucinates file contents when asked to read gemma-tasks.txt). This wrapper reads the file via the Drive REST API, extracts ONE task block, and either prints it or pipes a focused prompt to gemma. Also supports --done to delete the first task after the user approves the work. Reuses the existing google-drive-mcp OAuth tokens; no new auth setup. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Companion to send_daily_devotional.py. Downloads the month's Prayer Ventures PDF from cdn.elca.org, parses 1-31 daily petitions out via pdftotext + a layout-aware regex parser (handles multi-column print layout and embedded page footers), and uploads each as day-<NN>.txt to My Drive/CollegeLutheran/devotional/PV_<YYYY-MM>/. Idempotent: re-runs upsert by (folder, filename) — no duplicates. Supports --dry-run to preview parser output without uploading, and --month YYYY-MM to extract a specific month manually. Wired into cron at 05:00 ET on the 1st of each month, an hour before the daily sender runs at 06:00. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
gemma-cli previously lived as a sibling repo-less directory at ~/WebJamApps/gemma-cli/. It is now a subdirectory of this repo so the recent Claude Opus customizations (cli.py /next + /done + /reset handlers, queue.py, session-memory threading in llm.py) have version history and a defined home. The original location (~/WebJamApps/gemma-cli) is now a symlink to ~/WebJamApps/web-jam-tools/gemma-cli/. This keeps the existing venv (absolute paths baked in) and any external references (wrapper script at ~/.local/bin/gemma, etc.) working with zero changes. README updated with the symlink setup and the rationale. .gitignore extended to cover .venv/ and *.egg-info/ for the Python subtree. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- scripts/send_and_capture.js, update_leads.js, update_xlsx_outcomes.js: one-off Gemini CLI booking-research scratch scripts from May 9-12; preserved alongside the other one-off scripts already in scripts/ for reference + version history. - WebJamApps.code-workspace: multi-root VSCode workspace pointing at this repo and its sibling project repos. Maintainer's machine has a symlink at ~/WebJamApps/WebJamApps.code-workspace pointing here so the relative folder paths inside still resolve. README updated with the setup recipe for fresh checkouts. No secrets or credentials included (verified by grep). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This branch consolidates two batches of work that support the JoshMariaMusic gig booking project:
937f38f, pre-existing on the branch from 2026-05-08) — calendar/tasks/Dropbox utilities used during the May 8 booking sprint (calendar conflict checks, follow-up reminders, Dropbox xlsx updates, freezer inventory scheduling, video conversion).05b7b07, 2026-05-13) — moved the Playwright + xlsx scrapers from~/WebJamApps/gig-scraper/(which was scratch space at the root of the workspace) into this repo asgig-scraper/. Consolidated V1/V2/V3 script duplicates down to one canonical file each, fixed a hardcoded path, added a README, npm aliases, and a.gitignore.Background
The
gig-scraperdirectory was originally created bygemini-clias scratch during the May 5–9 sprint. It worked but had:_v2/_v3file versions (now consolidated)node_modulescommitted in directory treePhone Call Priority List,Cleaned Venues.txt) only existing locallyThe non-regenerable outputs were uploaded to
My Drive/GEMINI/before the move; everything else is now versioned here.CLAUDE.md and GEMINI.md on Drive were updated to reference the new location and include the npm aliases.
Test plan
cd web-jam-tools/gig-scraper && npm installruns cleanlynpx playwright installsucceeds (one-time browser binaries, ~200 MB)npm run fetch:songssucceeds (lightest smoke test — no browser launch)npm run scrape:gigssucceeds and produces gigs datascripts/are unaffected🤖 Generated with Claude Code