Skip to content

Book-gigs-project: helper scripts + gig-scraper import#6

Open
JoshuaVSherman wants to merge 7 commits into
devfrom
book-gigs-project
Open

Book-gigs-project: helper scripts + gig-scraper import#6
JoshuaVSherman wants to merge 7 commits into
devfrom
book-gigs-project

Conversation

@JoshuaVSherman
Copy link
Copy Markdown
Contributor

Summary

This branch consolidates two batches of work that support the JoshMariaMusic gig booking project:

  1. Helper scripts (commit 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).
  2. gig-scraper import (commit 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 as gig-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-scraper directory was originally created by gemini-cli as scratch during the May 5–9 sprint. It worked but had:

  • No git history
  • Multiple _v2 / _v3 file versions (now consolidated)
  • A hardcoded local path in one script
  • node_modules committed in directory tree
  • Non-regenerable outputs (Phone Call Priority List, Cleaned Venues.txt) only existing locally

The 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 install runs cleanly
  • npx playwright install succeeds (one-time browser binaries, ~200 MB)
  • npm run fetch:songs succeeds (lightest smoke test — no browser launch)
  • npm run scrape:gigs succeeds and produces gigs data
  • Existing helper scripts under scripts/ are unaffected

🤖 Generated with Claude Code

JoshuaVSherman and others added 7 commits May 8, 2026 07:27
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant