[cron:6dd85dd2-28ce-411f-b2de-8106e314da47 Deal Post - X + Pinterest (every 30 min)] SCHEDULED TASK: Post 1 deal to X and Pinterest using Maya VM twikit/py3-pinterest.

## CRITICAL: Use Maya VM, NOT Fred social-poster
- X: twikit v2.3.3 on Maya VM (`ssh maya@maya`)
- Script: `/home/maya/workspace/scripts/x_twikit_post2.py`
- Cookies: `/home/maya/workspace/x_cookies.json`

## Workflow
1. **Fetch deals with Python (NOT shell pipes with $):**
   ```python3
   import urllib.request, json
   req = urllib.request.Request('https://www.gottahavecoups.com/api/v1/deals?limit=20&sort=newest', headers={'User-Agent':'Mozilla/5.0'})
   data = json.loads(urllib.request.urlopen(req, timeout=15).read())
   deals = data if isinstance(data, list) else data.get('deals', [])
   for d in deals[:15]:
       print(f"{d['id']}|{d.get('title','')[:60]}|PRICE:{d.get('price','')}|{d.get('discount_percentage',0)}%")
   ```
2. Check hash: `python3 scripts/posted_db.py check <deal_id> x`
3. If POSTED:YES — SKIP, pick another
4. Pick unposted deal (50%+ off, popular brand, limited time, freebies, under $10)
5. Download share image: `wget -q "https://www.gottahavecoups.com/api/v1/share/image/<deal_id>" -O /tmp/deal_img.jpg`
6. **BUILD TWEET:** Hook + value + 5-8 hashtags + link LAST. KEEP UNDER 280 CHARS.
7. **MANDATORY VALIDATION:** `python3 scripts/validate_tweet.py '<tweet_text>'` — If INVALID, STOP and pick different deal.
8. **POST TO X (Maya VM twikit):**
   ```bash
   ssh maya@maya "cat > /tmp/tweet.txt << 'TWEET'
   <tweet text here>
   TWEET"
   scp /tmp/deal_img.jpg maya@maya:/tmp/deal_img.jpg
   ssh maya@maya "python3 /home/maya/workspace/scripts/x_twikit_post2.py <deal_id> --file /tmp/tweet.txt"
   ```
9. **POST TO PINTEREST (Maya VM py3-pinterest):**
   ```bash
   ssh maya@maya "python3 /home/maya/workspace/scripts/pin_post_v2.py <deal_id> '<title>' '<description>' 1134485031073239531"
   ```
10. Record posts: `python3 scripts/posted_db.py record <deal_id> x <tweet_id> <url>`
11. Log in memory/YYYY-MM-DD.md

## If X cookies expired
Run: `ssh maya@maya "DISPLAY=:0 python3 /home/maya/workspace/scripts/extract_x_cookies.py"`

## Tweet format (STRICT)
- Hook (emoji + deal highlight)
- Product name + price (with $, e.g., "$12.99")
- 5-8 hashtags
- Link LAST: gottahavecoups.com/deal/<id>
- KEEP UNDER 280 CHARS

## NEVER post if validation fails:
- Shell artifacts (/bin/bash, python3 -c)
- Broken prices (.20 instead of $10.20)
- Broken emojis (�)
- > 280 chars
Current time: Friday, February 13th, 2026 — 10:57 AM (UTC)

Return your summary as plain text; it will be delivered automatically. If the task explicitly calls for messaging a specific external recipient, note who/where it should go instead of sending it yourself.


The user wants me to post a deal to X and Pinterest as part of a scheduled cron task. Let me follow the workflow:

1. First, I need to fetch deals from the API
2. Check if they've been posted already
3. Pick an unposted deal
4. Download the share image
5. Build and validate a tweet
6. Post to X via Maya VM
7. Post to Pinterest via Maya VM
8. Record the posts

Let me start by fetching deals and checking what's been posted.

I'll execute this scheduled deal posting task. Let me fetch deals and work through the workflow.

exec

python3 -c "
import urllib.request, json
req = urllib.request.Request('https://www.gottahavecoups.com/api/v1/deals?limit=20&sort=newest', headers={'User-Agent':'Mozilla/5.0'})
data = json.loads(urllib.request.urlopen(req, timeout=15).read())
deals = data if isinstance(data, list) else data.get('deals', [])
for d in deals[:15]:
    print(f\"{d['id']}|{d.get('title','')[:60]}|PRICE:{d.get('price','')}|{d.get('discount_percentage',0)}%\")
"


34117|HPD Half Price Drapes Linen Sh...1 Panel),50W x 108L,Gardeni|PRICE:17.54|46%
34114|Dresden:Tuesday,February 13,1945|PRICE:1.99|85%
34115|The Red Limit:The Search for the Edge of the Universe|PRICE:2.99|76%
34116|Hearth & Harbor Wrapping Paper...Proof Wrapping Paper Organi|PRICE:15.88|45%
34108|Goliath Moo Moo Achoo!Game|PRICE:4.69|50%
34111|Cricut Expression Machine Stan...Mat,6" x 12",Green,2 Count|PRICE:4.79|36%
34107|The Modern Family Receipt Book...tiquarian Cookbook Collecti|PRICE:2.99|80%
34102|119.99 | 1601-Piece LEGO Harry Potter:Deathly Hallows - Malf|PRICE:119.99|20%
34101|15.6" Anyuse 1080p Ultra-Slim IPS Portable Monitor w/ USB-C |PRICE:46.99|None%
34098|Under Armour Men's UA Tech 2.0 Short Sleeve Shirt (Blue,Sele|PRICE:8.55|None%
34092|D'Angelico 6 String Solid-Body...ic Guitar,Right (DADATLTAZC|PRICE:682.93|63%
34093|Razer BlackShark V2 X Gaming Headset:Special Edition - 50mm |PRICE:34.99|None%
34087|Genuine Mopar Door Lock & Window Switch - 68298870AA|PRICE:30.68|41%
34083|The Complete Middle Eastern Cookbook|PRICE:9.99|38%
34084|Life Extension Enhanced Sleep...n-GMO,Vegetarian,30 Capsules|PRICE:8.1|40%


Let me check which of these deals haven't been posted yet. I'll check a few promising ones - looking for good discounts (50%+ off, under $10, etc.).

Good candidates:
- 34114: Dresden book $1.99 (85% off)
- 34107: Modern Family Receipt Book $2.99 (80% off)
- 34108: Goliath Moo Moo Achoo! Game $4.69 (50% off)

Let me check if these have been posted.

python3 scripts/posted_db.py check 34114 x && python3 scripts/posted_db.py check 34107 x && python3 scripts/posted_db.py check 34108 x


POSTED:NO
POSTED:NO
POSTED:NO


All three are unposted. Let me go with 34108 - the Goliath Moo Moo Achoo! Game at $4.69 with 50% off. It's a fun product name, good discount, under $10, and family-friendly.

Now I need to:
1. Get more details about this deal
2. Download the share image
3. Build the tweet
4. Validate it
5. Post to X and Pinterest via Maya VM

Let me get more details on this deal first.

All three are unposted. Let me get details on the best candidate — the Goliath Moo Moo Achoo! Game (50% off, $4.69, fun family product).

python3 -c "
import urllib.request, json
req = urllib.request.Request('https://www.gottahavecoups.com/api/v1/deals/34108', headers={'User-Agent':'Mozilla/5.0'})
data = json.loads(urllib.request.urlopen(req, timeout=15).read())
print(json.dumps(data, indent=2))
"


Goliath Moo Moo Achoo!Game

Amazon price drop:Goliath Moo Moo Achoo!Game - down 50.05% ($4.70) to $4.69 from $9.39

Goliath Moo Moo Achoo!Game


Perfect! This is a great deal:
- 50% off
- Only $4.69 (was $9.39)
- Fun family game
- Amazon product
- Hot/Featured deal

Now let me download the share image and build the tweet.

Great deal — 50% off, under $5, family game. Let me download the share image and build the tweet.

wget -q "https://www.gottahavecoups.com/api/v1/share/image/34108" -O /tmp/deal_img.jpg && ls -la /tmp/deal_img.jpg


-rw-rw-r-- 1 crogers2287 crogers2287 84603 Feb 13 10:57 /tmp/deal_img.jpg


Image downloaded. Now let me build the tweet. Need to keep it under 280 chars, with hook + value + hashtags + link last.

Draft:
🐮 MOO MOO ACHOO! This hilarious family game is HALF OFF! Was $9.39 → Now just $4.69 🎲

Perfect for game night with kids! 🎉

#gottahaveit #deals #amazonfinds #gamenight #familyfun #savings #couponcommunity

gottahavecoups.com/deal/34108

Let me count... that's well under 280. Let me validate it.

python3 scripts/validate_tweet.py '🐮 MOO MOO ACHOO! This hilarious family game is HALF OFF! Was $9.39 → Now just $4.69 🎲

Perfect for game night with kids! 🎉

#gottahaveit #deals #amazonfinds #gamenight #familyfun #savings #couponcommunity

gottahavecoups.com/deal/34108'


VALID


Tweet validated. Now I need to post to X via Maya VM. Let me:
1. Copy the tweet text to Maya VM
2. Copy the image to Maya VM
3. Run the twikit posting script

Tweet validated. Now posting to X via Maya VM...

ssh maya@maya "cat > /tmp/tweet.txt << 'TWEET'
🐮 MOO MOO ACHOO! This hilarious family game is HALF OFF! Was $9.39 → Now just $4.69 🎲

Perfect for game night with kids! 🎉

#gottahaveit #deals #amazonfinds #gamenight #familyfun #savings #couponcommunity

gottahavecoups.com/deal/34108
TWEET"


Warning: Permanently added 'maya' (ED25519) to the list of known hosts.


Good, tweet file created on Maya. Now let me copy the image and post.

scp /tmp/deal_img.jpg maya@maya:/tmp/deal_img.jpg && ssh maya@maya "python3 /home/maya/workspace/scripts/x_twikit_post2.py 34108 --file /tmp/tweet.txt"


Warning: Permanently added 'maya' (ED25519) to the list of known hosts.
Warning: Permanently added 'maya' (ED25519) to the list of known hosts.
Cookies loaded
Authenticated as: @GottaHaveCoups
Image downloaded: /home/maya/workspace/downloads/deal-34108.jpg (84603 bytes)
Uploading image...
Image uploaded, media_id: 2022263978643324928
Posting tweet...
SUCCESS! Tweet ID: 2022263982464152048
URL: https://x.com/GottaHaveCoups/status/2022263982464152048


Excellent! X post successful. Now let me post to Pinterest.

X post successful! Now posting to Pinterest...

ssh maya@maya "python3 /home/maya/workspace/scripts/pin_post_v2.py 34108 'Goliath Moo Moo Achoo! Game - 50% OFF' 'Hilarious family game now just $4.69 (was $9.39)! Perfect for game night with kids. 🐮🎲 #deals #amazonfinds #familyfun' 1134485031073239531"


Warning: Permanently added 'maya' (ED25519) to the list of known hosts.
Loaded 8 cookies
Boards: 200
Found 7 boards (raw type: dict)
Raw keys: ['all_boards', 'boards_shortlist', 'create_suggestions']
  🔥 Today’s Best Deals (id: 1134485031073239531)
  Limited Time Promo Codes (id: 1134485031073239590)
  Gifts Under $50 (id: 1134485031073239588)
  Amazon Deals & Coupons (id: 1134485031073239559)
  Home & Kitchen Savings (id: 1134485031073239570)
Image upload: 200
Image URL: https://i.pinimg.com/previews/lIUUGglT.jpeg
Pin create: 200
SUCCESS! Pin ID: 1134484962398653293


Excellent! Both posts successful. Now I need to:
1. Record the posts in the database
2. Log in memory/YYYY-MM-DD.md

Let me record the post.

Both posts successful! Recording to database and logging...

python3 scripts/posted_db.py record 34108 x 2022263982464152048 https://x.com/GottaHaveCoups/status/2022263982464152048

write

## 10:57 AM — Deal Posted: Goliath Moo Moo Achoo! Game

**Deal:** Goliath Moo Moo Achoo! Game (ID: 34108)
**Price:** $4.69 (was $9.39) — 50% OFF
**Platform:** Amazon

### X Post
- Tweet ID: 2022263982464152048
- URL: https://x.com/GottaHaveCoups/status/2022263982464152048
- Status: ✅ SUCCESS

### Pinterest Post
- Pin ID: 1134484962398653293
- Board: 🔥 Today's Best Deals
- Status: ✅ SUCCESS


Recorded 34108 for x


Successfully wrote 401 bytes to /home/crogers2287/.openclaw/workspace-ghc-marketing/memory/2026-02-13.md


Task complete. Let me summarize the results.

---

**SCHEDULED DEAL POST — COMPLETE ✅**

| Platform | Status | ID/Link |
|----------|--------|---------|
| **X (Twitter)** | ✅ Posted | [2022263982464152048](https://x.com/GottaHaveCoups/status/2022263982464152048) |
| **Pinterest** | ✅ Posted | Pin 1134484962398653293 |

**Deal Posted:** Goliath Moo Moo Achoo! Game
- **Price:** $4.69 (was $9.39) — **50% OFF**
- **Source:** Amazon
- **Record:** Saved to posted_deals.json
- **Log:** memory/2026-02-13.md

Next run: ~30 minutes (11:27 AM UTC)