================================================================================
                        MARCUS-WEB SCRIPTS CHEAT SHEET
================================================================================

FIRST TIME SETUP
----------------
After cloning on a new machine:

    cd marcus-web
    ./scripts/setup.sh

This creates a .venv and installs dependencies (just 'requests').

Then either activate the venv:

    source .venv/bin/activate
    python scripts/import_letterboxd.py

Or run directly:

    .venv/bin/python scripts/import_letterboxd.py



MOVIES (Frank's Couch)
----------------------
Import a movie from Letterboxd:

    python scripts/import_letterboxd.py

    --latest      Import most recent without picking
    --theater     Skip straight to theater questions
    --home        Skip straight to home video questions
    --list        Just show recent movies, don't import

Workflow: Log movie on Letterboxd → Run script → Pick movie → Answer prompts
Creates: content/posts/<movie-slug>.md + downloads poster


BEER CALLS (Luna Juice - Weekly Thursday Meetups)
-------------------------------------------------
Add a beer call to the yearly log:

    python scripts/new_beercall.py

    --date 2024-12-30    Specific date (for Beer Crawl, holidays, etc)
    --list               Just show recent Untappd checkins

Workflow: Run script → It checks Untappd for where you were → Pick venue → Done
Appends to: content/posts/beercall/2024.md (or 2025.md, etc - auto-created)


LUNA JUICE EVENTS (Festivals, Special Occasions)
------------------------------------------------
Create a standalone beer event post:

    python scripts/new_lunajuice.py
    python scripts/new_lunajuice.py "Beer Festival 2025"

Creates: content/posts/beercall/<event-slug>.md


VENUE DATABASE
--------------
Known venues are stored in: scripts/venues.json
New venues are added automatically when you enter them.


TECH POSTS (Fun Center)
-----------------------
Create a new technology blog post:

    python scripts/new_techpost.py
    python scripts/new_techpost.py "My Post Title"

Prompts for:
  - Type: How I Did It / Grinds My Gears / Quick Tip
  - Tags: suggests common ones, you add more
  - Summary: one-liner

Creates a skeleton outline based on post type so you just fill in the blanks.


MASTODON COMMENTS
-----------------
After publishing a post and tooting about it:

1. Get the Mastodon post ID from the URL (the number at the end)
2. Add to your post's front matter:

   mastodon_id: "123456789"

3. Rebuild site - comments will show with count

To block a reply:

   mastodon_blocked:
     - "https://tilde.zone/@someone/123456789"


GOPHER / PHLOG (SDF Gopherspace)
--------------------------------
Posts can be published to gopher by adding `phlog: true` to frontmatter.

Deploy to gopher (after --gopher-only for first run, then use --gopher):

    ./scripts/remote_publish.sh --gopher       # Hugo + Gopher
    ./scripts/remote_publish.sh --gopher-only  # Gopher only

What it does:
  1. Converts posts with `phlog: true` to plain text (70 char wrap)
  2. Generates gophermaps for each category
  3. Rsyncs to ~/gopher/blog/ on SDF

URLs after deployment:
  - Gopher root:    gopher://sdf.org/1/users/mnw/
  - Blog index:     gopher://sdf.org/1/users/mnw/blog/
  - Frank's Couch:  gopher://sdf.org/1/users/mnw/blog/franks-couch/
  - Fun Center:     gopher://sdf.org/1/users/mnw/blog/fun-center/
  - Web proxy:      https://gopher.floodgap.com/gopher/gw?a=gopher://sdf.org/1/users/mnw/

Gopher scripts (in scripts/gopher/):
  - convert_to_gopher.py     Markdown → gopher plain text
  - generate_gophermaps.py   Build category menus
  - ascii_art.py             Headers/footers
  - update_root_gophermap.py Update main gophermap (one-time)

References:
  - SDF Gopher Setup: https://wiki.sdf.org/doku.php?id=gopher_site_setup_and_hosting_features
  - Tilde.town Guide: https://tilde.town/wiki/editing-your-homepage/gopher.html


PUBLISHING / REMOTE DEPLOY
--------------------------
Push changes to SDF and build:

    ./scripts/remote_publish.sh              # Hugo only
    ./scripts/remote_publish.sh --gopher     # Hugo + Gopher
    ./scripts/remote_publish.sh --gopher-only # Gopher only

The script handles git commit/push prompts automatically.


================================================================================
