commit 595297ce793b5fbff55914b0db9c91c1cc011737 Author: dojac Date: Sat May 30 06:34:19 2026 +0000 Initial commit: migrate existing website files diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c8b3c56 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +.DS_Store +Thumbs.db +*.log +*.tmp +/node_modules/ +.env diff --git a/.well-known/nostr.json b/.well-known/nostr.json new file mode 100644 index 0000000..550bd6e --- /dev/null +++ b/.well-known/nostr.json @@ -0,0 +1,8 @@ +{ + "names": { + "_": "b1b4258a36b34761ee4b06c3803b9678978063f0b52b1a00ea321cbcc0ef6f19", + "jenna": "375fd2b41652a738528b4eb5969d28aced8ad13569550f43b4596bfca7e7f1a2", + "Francis": "fa6c9e1b9978ac1e9a925314757e5117feb3ecd8a59747ac0740cab80ff963c6", + "joe": "f379b6ffe43fbd9acfe108e3112d14627c66a798910be92b4a2e1e0c6764235a" + } +} diff --git a/about/index.html b/about/index.html new file mode 100644 index 0000000..c4a16c6 --- /dev/null +++ b/about/index.html @@ -0,0 +1,143 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Very Fine Friends Podcast + + + + + + + +
+ +
+ +
+ + + +
+
+

About Us

+

We are friends.

+ +
+

Jenna

+

Jenna likes to keep her purse open, has never said the phrase "bonus improv" the same way twice, and loves Santa Claus.

+
+ +
+

Francis

+

Francis is a sweat suit expert, has been wronged many times, and has anxiety about the Amazon rainforest.

+
+ +
+

Joe

+

Joe is a master user of the improv suggestion mobile app. He would've also been named Joe if Francis was around at his birth.

+
+ +
+

Francis's ice

+

Usually makes an appearance at the end of the Invention of the Week segment.

+
+ +
+

Other Friends

+
+

Krissy

+

Episode 15

+
+
+

Blake

+

Episode 9

+
+ + +
+ +
+

Contact the Friends

+
+

Do you have a BIG QUESTION?

+

Email: veryfinefriends@gmail.com

+
+ +
+ + +
+ + +
+ + +
+ +
~ V.F.F.~
+ + + + + \ No newline at end of file diff --git a/assets/antennapod.png b/assets/antennapod.png new file mode 100644 index 0000000..1068673 Binary files /dev/null and b/assets/antennapod.png differ diff --git a/assets/apple.png b/assets/apple.png new file mode 100644 index 0000000..71f3848 Binary files /dev/null and b/assets/apple.png differ diff --git a/assets/baldy.jpeg b/assets/baldy.jpeg new file mode 100644 index 0000000..6184bbd Binary files /dev/null and b/assets/baldy.jpeg differ diff --git a/assets/cleveland_1.png b/assets/cleveland_1.png new file mode 100644 index 0000000..841fe3d Binary files /dev/null and b/assets/cleveland_1.png differ diff --git a/assets/cleveland_2.png b/assets/cleveland_2.png new file mode 100644 index 0000000..d5d3616 Binary files /dev/null and b/assets/cleveland_2.png differ diff --git a/assets/favicon.ico b/assets/favicon.ico new file mode 100644 index 0000000..76ff287 Binary files /dev/null and b/assets/favicon.ico differ diff --git a/assets/fountain.png b/assets/fountain.png new file mode 100644 index 0000000..14d19ad Binary files /dev/null and b/assets/fountain.png differ diff --git a/assets/going_to_jail.png b/assets/going_to_jail.png new file mode 100644 index 0000000..46724c6 Binary files /dev/null and b/assets/going_to_jail.png differ diff --git a/assets/instagram.png b/assets/instagram.png new file mode 100644 index 0000000..24b9402 Binary files /dev/null and b/assets/instagram.png differ diff --git a/assets/iotw_001.jpeg b/assets/iotw_001.jpeg new file mode 100644 index 0000000..a5007d5 Binary files /dev/null and b/assets/iotw_001.jpeg differ diff --git a/assets/iotw_002.jpeg b/assets/iotw_002.jpeg new file mode 100644 index 0000000..f60b9a9 Binary files /dev/null and b/assets/iotw_002.jpeg differ diff --git a/assets/iotw_003.jpeg b/assets/iotw_003.jpeg new file mode 100644 index 0000000..7eaf5fb Binary files /dev/null and b/assets/iotw_003.jpeg differ diff --git a/assets/iotw_004.jpeg b/assets/iotw_004.jpeg new file mode 100644 index 0000000..cabb57c Binary files /dev/null and b/assets/iotw_004.jpeg differ diff --git a/assets/iotw_005.jpeg b/assets/iotw_005.jpeg new file mode 100644 index 0000000..bbe6eec Binary files /dev/null and b/assets/iotw_005.jpeg differ diff --git a/assets/iotw_006.jpeg b/assets/iotw_006.jpeg new file mode 100644 index 0000000..42d4d0a Binary files /dev/null and b/assets/iotw_006.jpeg differ diff --git a/assets/iotw_007.jpeg b/assets/iotw_007.jpeg new file mode 100644 index 0000000..d386b59 Binary files /dev/null and b/assets/iotw_007.jpeg differ diff --git a/assets/iotw_008.jpeg b/assets/iotw_008.jpeg new file mode 100644 index 0000000..63e9e12 Binary files /dev/null and b/assets/iotw_008.jpeg differ diff --git a/assets/iotw_009.jpeg b/assets/iotw_009.jpeg new file mode 100644 index 0000000..6695d6f Binary files /dev/null and b/assets/iotw_009.jpeg differ diff --git a/assets/iotw_009_blake.jpeg b/assets/iotw_009_blake.jpeg new file mode 100644 index 0000000..5157a0f Binary files /dev/null and b/assets/iotw_009_blake.jpeg differ diff --git a/assets/iotw_010.jpeg b/assets/iotw_010.jpeg new file mode 100644 index 0000000..afe24fe Binary files /dev/null and b/assets/iotw_010.jpeg differ diff --git a/assets/iotw_011_a.jpeg b/assets/iotw_011_a.jpeg new file mode 100644 index 0000000..dabbd8a Binary files /dev/null and b/assets/iotw_011_a.jpeg differ diff --git a/assets/iotw_011_b.jpeg b/assets/iotw_011_b.jpeg new file mode 100644 index 0000000..d52c91a Binary files /dev/null and b/assets/iotw_011_b.jpeg differ diff --git a/assets/iotw_012.jpeg b/assets/iotw_012.jpeg new file mode 100644 index 0000000..006949b Binary files /dev/null and b/assets/iotw_012.jpeg differ diff --git a/assets/iotw_013.jpeg b/assets/iotw_013.jpeg new file mode 100644 index 0000000..88200fa Binary files /dev/null and b/assets/iotw_013.jpeg differ diff --git a/assets/iotw_014.jpeg b/assets/iotw_014.jpeg new file mode 100644 index 0000000..b33a3ae Binary files /dev/null and b/assets/iotw_014.jpeg differ diff --git a/assets/iotw_015.png b/assets/iotw_015.png new file mode 100644 index 0000000..2b4f589 Binary files /dev/null and b/assets/iotw_015.png differ diff --git a/assets/iotw_016.jpeg b/assets/iotw_016.jpeg new file mode 100644 index 0000000..57536b8 Binary files /dev/null and b/assets/iotw_016.jpeg differ diff --git a/assets/iotw_017.jpeg b/assets/iotw_017.jpeg new file mode 100644 index 0000000..5d7992d Binary files /dev/null and b/assets/iotw_017.jpeg differ diff --git a/assets/iotw_018.jpeg b/assets/iotw_018.jpeg new file mode 100644 index 0000000..0f6b9dc Binary files /dev/null and b/assets/iotw_018.jpeg differ diff --git a/assets/iotw_019.jpeg b/assets/iotw_019.jpeg new file mode 100644 index 0000000..77b9849 Binary files /dev/null and b/assets/iotw_019.jpeg differ diff --git a/assets/iotw_020.jpeg b/assets/iotw_020.jpeg new file mode 100644 index 0000000..ab19f36 Binary files /dev/null and b/assets/iotw_020.jpeg differ diff --git a/assets/iotw_021.jpeg b/assets/iotw_021.jpeg new file mode 100644 index 0000000..193fc44 Binary files /dev/null and b/assets/iotw_021.jpeg differ diff --git a/assets/iotw_022.jpeg b/assets/iotw_022.jpeg new file mode 100644 index 0000000..754afe9 Binary files /dev/null and b/assets/iotw_022.jpeg differ diff --git a/assets/iotw_023.jpeg b/assets/iotw_023.jpeg new file mode 100644 index 0000000..90a40dd Binary files /dev/null and b/assets/iotw_023.jpeg differ diff --git a/assets/iotw_024.jpeg b/assets/iotw_024.jpeg new file mode 100644 index 0000000..077c95b Binary files /dev/null and b/assets/iotw_024.jpeg differ diff --git a/assets/iotw_025.jpeg b/assets/iotw_025.jpeg new file mode 100644 index 0000000..5c3d669 Binary files /dev/null and b/assets/iotw_025.jpeg differ diff --git a/assets/iotw_026.jpeg b/assets/iotw_026.jpeg new file mode 100644 index 0000000..8c3472e Binary files /dev/null and b/assets/iotw_026.jpeg differ diff --git a/assets/iotw_027.jpeg b/assets/iotw_027.jpeg new file mode 100644 index 0000000..70b29a8 Binary files /dev/null and b/assets/iotw_027.jpeg differ diff --git a/assets/iotw_028.jpeg b/assets/iotw_028.jpeg new file mode 100644 index 0000000..389e397 Binary files /dev/null and b/assets/iotw_028.jpeg differ diff --git a/assets/iotw_029.jpeg b/assets/iotw_029.jpeg new file mode 100644 index 0000000..a4d97a6 Binary files /dev/null and b/assets/iotw_029.jpeg differ diff --git a/assets/iotw_030.jpeg b/assets/iotw_030.jpeg new file mode 100755 index 0000000..21d615a Binary files /dev/null and b/assets/iotw_030.jpeg differ diff --git a/assets/iotw_031.jpeg b/assets/iotw_031.jpeg new file mode 100755 index 0000000..97c4646 Binary files /dev/null and b/assets/iotw_031.jpeg differ diff --git a/assets/iotw_032.jpeg b/assets/iotw_032.jpeg new file mode 100644 index 0000000..b52447a Binary files /dev/null and b/assets/iotw_032.jpeg differ diff --git a/assets/iotw_033.jpeg b/assets/iotw_033.jpeg new file mode 100644 index 0000000..0aa73e3 Binary files /dev/null and b/assets/iotw_033.jpeg differ diff --git a/assets/iotw_034.jpeg b/assets/iotw_034.jpeg new file mode 100644 index 0000000..670f21b Binary files /dev/null and b/assets/iotw_034.jpeg differ diff --git a/assets/iotw_035.jpeg b/assets/iotw_035.jpeg new file mode 100644 index 0000000..95a7a83 Binary files /dev/null and b/assets/iotw_035.jpeg differ diff --git a/assets/iotw_036.jpeg b/assets/iotw_036.jpeg new file mode 100644 index 0000000..77cfbf7 Binary files /dev/null and b/assets/iotw_036.jpeg differ diff --git a/assets/iotw_037.jpeg b/assets/iotw_037.jpeg new file mode 100644 index 0000000..820b952 Binary files /dev/null and b/assets/iotw_037.jpeg differ diff --git a/assets/iotw_038.jpeg b/assets/iotw_038.jpeg new file mode 100644 index 0000000..90d117a Binary files /dev/null and b/assets/iotw_038.jpeg differ diff --git a/assets/iotw_039.jpeg b/assets/iotw_039.jpeg new file mode 100644 index 0000000..f97ad61 Binary files /dev/null and b/assets/iotw_039.jpeg differ diff --git a/assets/iotw_040.jpeg b/assets/iotw_040.jpeg new file mode 100644 index 0000000..e392b2b Binary files /dev/null and b/assets/iotw_040.jpeg differ diff --git a/assets/iotw_041.jpeg b/assets/iotw_041.jpeg new file mode 100644 index 0000000..a0d65d3 Binary files /dev/null and b/assets/iotw_041.jpeg differ diff --git a/assets/iotw_042.jpeg b/assets/iotw_042.jpeg new file mode 100644 index 0000000..6505e06 Binary files /dev/null and b/assets/iotw_042.jpeg differ diff --git a/assets/iotw_043.jpeg b/assets/iotw_043.jpeg new file mode 100644 index 0000000..2cd2013 Binary files /dev/null and b/assets/iotw_043.jpeg differ diff --git a/assets/jumble.png b/assets/jumble.png new file mode 100644 index 0000000..954aeeb Binary files /dev/null and b/assets/jumble.png differ diff --git a/assets/logo-2.png b/assets/logo-2.png new file mode 100644 index 0000000..4decdca Binary files /dev/null and b/assets/logo-2.png differ diff --git a/assets/logo-mid.png b/assets/logo-mid.png new file mode 100644 index 0000000..06b2137 Binary files /dev/null and b/assets/logo-mid.png differ diff --git a/assets/logo.ico b/assets/logo.ico new file mode 100644 index 0000000..76ff287 Binary files /dev/null and b/assets/logo.ico differ diff --git a/assets/logo.png b/assets/logo.png new file mode 100644 index 0000000..828f87a Binary files /dev/null and b/assets/logo.png differ diff --git a/assets/pocketcasts.svg b/assets/pocketcasts.svg new file mode 100644 index 0000000..f4796dd --- /dev/null +++ b/assets/pocketcasts.svg @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/assets/primal.png b/assets/primal.png new file mode 100644 index 0000000..08c0316 Binary files /dev/null and b/assets/primal.png differ diff --git a/assets/sandwich.png b/assets/sandwich.png new file mode 100644 index 0000000..24c8176 Binary files /dev/null and b/assets/sandwich.png differ diff --git a/assets/spotify.png b/assets/spotify.png new file mode 100644 index 0000000..5969679 Binary files /dev/null and b/assets/spotify.png differ diff --git a/assets/tiktok.png b/assets/tiktok.png new file mode 100644 index 0000000..b32c125 Binary files /dev/null and b/assets/tiktok.png differ diff --git a/assets/x.png b/assets/x.png new file mode 100644 index 0000000..839ae87 Binary files /dev/null and b/assets/x.png differ diff --git a/assets/youtube.png b/assets/youtube.png new file mode 100644 index 0000000..a37389d Binary files /dev/null and b/assets/youtube.png differ diff --git a/assets/youtubemusic.png b/assets/youtubemusic.png new file mode 100644 index 0000000..f3b761d Binary files /dev/null and b/assets/youtubemusic.png differ diff --git a/contact/index.html b/contact/index.html new file mode 100644 index 0000000..588ecb5 --- /dev/null +++ b/contact/index.html @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Very Fine Friends Podcast + + + + + + + +
+ +
+ +
+ + +
+

Contact Us

+
+

Do you have a BIG QUESTION?

+

Email: veryfinefriends@gmail.com

+
+ +
+ +

Follow Us

+ + +
+
+
+ +
~ V.F.F.~
+ + + + + diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000..3d079c3 Binary files /dev/null and b/favicon.ico differ diff --git a/hearmeroar b/hearmeroar new file mode 120000 index 0000000..51c1fb4 --- /dev/null +++ b/hearmeroar @@ -0,0 +1 @@ +./howdoyouspeakatnight \ No newline at end of file diff --git a/howdoyousleepatnight b/howdoyousleepatnight new file mode 120000 index 0000000..51c1fb4 --- /dev/null +++ b/howdoyousleepatnight @@ -0,0 +1 @@ +./howdoyouspeakatnight \ No newline at end of file diff --git a/howdoyouspeakatnight/index.html b/howdoyouspeakatnight/index.html new file mode 100644 index 0000000..3dde1e8 --- /dev/null +++ b/howdoyouspeakatnight/index.html @@ -0,0 +1,623 @@ + + + + + + Friends Like Us Podcast + + + +
+ +
+ +
+ +
+
+

Invention: How Do You Speak at Night

+
+
+

aka Hear Me Roar

+

aka How Do You Sleep at Night

+

patent pending (? actually not sure about that) by Francis

+
+ + + +
+ +
+

Episode 2 - Mission Impossible: Ghost Toe-tocal

+ +
+ +
+ + + +
+ + +
+
+ +

Invention of the Week

+

Every week we reveal an invention that's changed the world, sparked curiosity, or just made us laugh. From the practical to the peculiar, join us as we explore the stories behind humanity's most creative moments.

+ +
+

This Week's Feature

+

Discover how a simple idea transformed into something that touches millions of lives every day. Each invention has a story, and we're here to tell it.

+
+
+
+ + +
+
+ +

About Us

+

We are friends.

+ +
+

Jenna

+

Jenna says hello.

+
+ +
+

Francis

+

Francis says hi.

+
+ +
+

Joe

+

Joe just listens.

+
+
+
+ + +
+
+ +

Contact Us

+

We'd love to hear from you! Whether you have questions, topic suggestions, inventions to share, or just want to say hello, don't hesitate to reach out.

+ +
+

Get in Touch

+

Email: friendslikeusofficial@gmail.com

+
+ +
+

Follow Us

+

Instagram

+

TikTok

+

X

+

Nostr

+
+ +
+

Suggestions Welcome

+

Have an invention you'd like us to feature? A topic you're curious about? We love hearing your ideas and incorporating them into future episodes!

+
+
+
+
+ + + + diff --git a/index-1.html b/index-1.html new file mode 100644 index 0000000..8114bfc --- /dev/null +++ b/index-1.html @@ -0,0 +1,176 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Friends Like Us Podcast + + + + + + + +
+ +
+ +
+ + +
+ +
+
+ Friends Like Us Podcast Logo +
+

a podcast where friends talk about stuff

+
+ + + + +
+ +
+ +

Follow Us

+ + + +
+ +
+ +
+

Latest Episode

+ +
+ +
+ +
+ +
+ +
~ F.L.U.~
+ + + + + diff --git a/index.html b/index.html new file mode 100644 index 0000000..3a3060f --- /dev/null +++ b/index.html @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Very Fine Friends Podcast + + + + + + + +
+ +
+ +
+ + +
+ +
+
+ Very Fine Friends Podcast Logo +
+

a podcast where friends talk about stuff

+
+ + + + +
+ +
+ + + +
+ +
+ +
+

Latest Episode

+ +
+ + +
+ + + + +
+ +
+ +
~ V.F.F.~
+ + + + + diff --git a/inventions/index.html b/inventions/index.html new file mode 100644 index 0000000..6939a82 --- /dev/null +++ b/inventions/index.html @@ -0,0 +1,479 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Very Fine Friends Podcast + + + + + + + +
+ +
+ +
+ + +
+
+

Invention of the Week

+

Every week our resident inventor Francis pitches to Jenna what he's cooked up in the lab (and by lab we mean his head).

+ +
+ + + +

Episode 43 : Face-On

+

New Face

+

On Face

+

Laffy Taffy Nipples

+

Face Your Face

+

Face 2: The Facening

+

Going through a Face

+

Second Skin

+

About Face

+
+ + + +

Episode 42 : Minutes to Ours

+

Bag of Beans

+

Smooth Trade

+

Stuff Swap

+

What's Yours is Mine

+

Ours

+

The Power of Ours

+

Ours Power

+
+ + + +

Episode 41 : Wart Are You Up To

+

Notpples

+

Secret Sizzlers

+

Beyond Breasts

+

Auto Body

+

Girl Look at that Fake Body

+

Skintag You're It

+

Musical Skin Tags

+

Meester Potato Head

+
+ + + +

Episode 40 : Clothes for Business

+

No-Pack Rat

+

Check Checked

+

Checked Mate

+

Fold

+

Laundry

+

Launder

+

Threads Now

+

Instant Threads

+

Threadlocks

+

Fresh Fit

+

Traveloffity

+

Wear, You Down

+
+ + + +

Episode 39 : Ex-Wrecker

+

Height-Ya

+

Better Natties

+

Nat Even Close

+

Nat Even Thinking About You Anymore

+

Upgrade

+

Triple Ex

+

Wreck the Ex

+
+ + + +

Episode 38 : Cloud Car

+

Skyline

+

Fast and Up

+

Sky High

+

Sky Racer

+

Sky Swamp

+
+ + + +

Episode 37 : Frigid Bitch

+

Hot Thief

+

Wallaby Cool

+

Side Balks

+

Frigid Pharoah

+

Too Cool to be Hot

+

Hot and Happy

+
+ + + +

Episode 36 : Sunnyside Up

+

Egg-Content

+

How Do You Like Your Eggs?

+

Where in the World is Eggs San Diego?

+

Where in the World is Eggs Seattle?

+

Upward Egg

+

Fallopian Rooftop

+

Fallopian Tube Top

+
+ + + +

Episode 35 : Cage Your Rage

+

Rage Cage

+

Rage Bedroom

+

Flighth

+

Cortisoul

+

Courtisolve

+

Adrenalink

+

Epinefriend

+

Adrenrelax

+
+ + + +

Episode 34 : No-Contact Lense

+

Safe-C

+

She-Spy

+

EHC (Empty Handed Predator)

+

Jooby Jogger

+
+ + + +

Episode 33 : It's Moi

+

France Now

+

France Kiss

+

Hit or Kiss

+

Mystery Mouth

+

Soops Mucho

+

Super Smooch

+
+ + + +

Episode 32 : Metal Meal

+

State of Plate

+

Plate State

+

Taste Not Waste

+
+ + + +

Episode 31 : You Can Handle the Tooth

+

Bristley Bear

+

Paste Pump

+

Tooth Tubes

+

Jooby's Tooth Tubies

+
+ + + +

Episode 30 : Warm Welcome

+

Cool Welcome

+

Welcome Comfort

+
+ + + +

Episode 29 : Sleeper Beeper

+

Sleepaway

+

Sleepnot

+

Wake Up, Idiot

+

Snaaze

+

Reeeh

+
+ + + +

Episode 28 : Superway

+

Superbus

+

Weeeeeeeeee

+

Ussssssssss

+
+ + + +

Episode 27 : All UV Can Eat

+

Clean Fanny

+

Life Bidet

+

Pocket Full of Sunshine

+
+ + + +

Episode 26 : Taco Teats

+

Rain Teat Snow or Hail

+

Saucy Udders

+
+ + + +

Episode 25 : Wife Alert

+

Caught You

+

Fake Trust

+

Love Prison

+

You'll Be Mine Forever Whether You Like It or Not

+

Jeff's Folly

+

The Gunderson Account

+
+ + + +

Episode 24 : Sleep Cycle

+
+ + + +

Episode 23 : Date Rate

+

They Love

+

Bottomless Pit

+

doyouwanttodiealone.com

+

Picky Pals

+

Five Star Love

+

Rate Your Mate

+
+ + + +

Episode 22 : giftsfrommomanddata.com

+

Mom and Data

+
+ + + +

Episode 21 : Bag It Up

+

Yes Yum No Tum

+

Forever on the Lips, Never on the Hips

+

Taurus System

+
+ + + +

Episode 20 : Voice Me

+

Voicemail Modulator

+

Holdin' Message

+

Slide Into My VMs

+
+ + + +

Episode 19 : Right Distance Relationship

+

Cuddlebot

+

Hydraulic Kiss

+

Feel It

+

Far and Wide

+

It's You

+
+ + + +

Episode 18 : Draculater

+

Vamp-Bye-Er

+

Steak Stake

+

Dracu-la-la

+
+ + + +

Episode 17 : Gotcha Back

+

Hip-ee

+

Hip Baby

+

You're Hips

+

Hip To Be There

+

Hips Do Fly

+

Hips Don't Fly

+

No Chip Hips

+

Your Hips Don't Life Alert

+

Hang in There (new name from Episode 32)

+
+ + + +

Episode 16 : Bib-Babe

+

Bud Bib

+

Buddy B

+

B-Bud

+

Catch-Fall

+
+ + + +

Episode 15 : Gettin' Handsy

+

My Hands Are Down Here

+

Hands Across America

+
+ + + +

Episode 14 : Divorce the Night Away (It's Not Raining Men)

+

Guy Gone

+

Release the Squibs

+

Ex-Men

+
+ + + +

Episode 13 : Shoot, You're Shot!

+

Have a Ball

+
+ + + +

Episode 12 : Earth Catheter

+

Pipe Dreams

+

Pipe

+

Pipe Out

+
+ + +
+ + +

Episode 11 : Helium Suit

+

Step Up

+

Gelium Suit

+
+ + + +

Episode 10 : Pal Around

+

Homie-o

+

Homeo & Juliet

+

Homeostasis

+

Homies

+

Homi-In

+

Homie Closer

+

Homing in on Your Homies

+

Bud Laser

+

Bud Day

+
+ + +
+ + +

Episode 9 : Guahhnnnn!!

+

Gone Gun

+

Gahhnnn?

+
+ + + +

Episode 8 : Loose Tubes

+

Manytube

+

Polytube

+

Polydrink

+

DrinkTube

+

Don't Tie Your Tubes

+

Garage Drink

+

3-Car Beverage

+

Tubulips

+

Garage Milk

+

Camelmouth

+

Drinks-a-Lot

+

Omnitubes

+
+ + + +

Episode 7 : Meessor Hands

+
+ + + +

Episode 6 : Truth Lens

+
+ + + +

Episode 5 : Shark Toes

+

The Tent Toe

+

Cozy Toesies

+

Foot Shark

+

Toe Yarmulkes

+
+ + + +

Episode 4 : Achondom

+

Safe Sneeze

+
+ + + +

Episode 3 : Big Ball

+

Ball Bike

+

Pedal Metal

+

Hitch a Ride

+

Have a Ball

+

Take Me and Leave Me

+
+ + + +

Episode 2 : Hear Me Roar

+

How Do You Speak at Night

+

How Do you Sleep at Night

+
+ + + +

Episode 1 : Car Shade Sun Safe

+ + + +
+ +
+ + +
+ +
~ V.F.F.~
+ + + + + \ No newline at end of file diff --git a/main.js b/main.js new file mode 100644 index 0000000..e60760e --- /dev/null +++ b/main.js @@ -0,0 +1,57 @@ +// Navigation functionality +const hamburger = document.querySelector('.hamburger'); +const navMenu = document.querySelector('.nav-menu'); +const navItems = document.querySelectorAll('.nav-item'); +const navBrand = document.querySelector('.nav-brand'); +const backButtons = document.querySelectorAll('.back-button'); +const pageSections = document.querySelectorAll('.page-section'); + +// Hamburger menu toggle +hamburger.addEventListener('click', () => { + hamburger.classList.toggle('active'); + navMenu.classList.toggle('active'); +}); + +// Function to show specific page +function showPage(pageId) { + + // Close mobile menu if open + hamburger.classList.remove('active'); + navMenu.classList.remove('active'); +} + +// Brand (logo) click handler for home page +navBrand.addEventListener('click', (e) => { + const pageId = navBrand.getAttribute('data-page'); + showPage(pageId); +}); + +// Navigation item click handlers +navItems.forEach(item => { + item.addEventListener('click', (e) => { + const pageId = item.getAttribute('data-page'); + showPage(pageId); + }); +}); + +// Back button click handlers +backButtons.forEach(button => { + button.addEventListener('click', (e) => { + const pageId = button.getAttribute('data-page'); + showPage(pageId); + }); +}); + +// Close mobile menu when clicking outside +document.addEventListener('click', (e) => { + // Don't close menu if clicking inside an iframe or its container + if (e.target.closest('.episodes-embed-container') || + e.target.tagName === 'IFRAME' || + hamburger.contains(e.target) || + navMenu.contains(e.target)) { + return; + } + hamburger.classList.remove('active'); + navMenu.classList.remove('active'); +}); + diff --git a/namepython.py b/namepython.py new file mode 100644 index 0000000..c2f9157 --- /dev/null +++ b/namepython.py @@ -0,0 +1,25 @@ +from flask import Flask, request, jsonify, abort + +app = Flask(__name__) + +# Example: Load from file, database, etc. Here, using a hardcoded dict. +names = { + "jenna": "b1b4258a36b34761ee4b06c3803b9678978063f0b52b1a00ea321cbcc0ef6f19", + "daann": "261028e6ca5448334bc3882a4a18080da0aa0d9c9a860ca18c933c74981dcda0" +} + +@app.route('/.well-known/nostr.json') +def nostr_json(): + username = request.args.get('name') + if not username: + # Optionally, return an empty mapping or 400 + return jsonify({"names": {}}) + if username in names: + return jsonify({"names": {username: names[username]}}) + else: + # If user is not found, return empty or 404 + return jsonify({"names": {}}) + # Or: abort(404) + +if __name__ == '__main__': + app.run(host="0.0.0.0", port=8000) diff --git a/otherstuff/index.html b/otherstuff/index.html new file mode 100644 index 0000000..dee0da9 --- /dev/null +++ b/otherstuff/index.html @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Very Fine Friends Podcast + + + + + + + +
+ +
+ +
+ + +
+
+

Other Stuff

+

This is where we put stuff when we don't know where else to put it.

+ +
+ +

Francis's (Reenacted) Legal Win

+ +

Episode 13

+ +
+
+
+ +

Pamphlet: A Cleveland in my Stead

+ +

Episode 12

+ +
+ +
+
+
+ +

"All in a Day's Work" Sandwich

+ +

Episode 6

+ +
+
+
+ +

Which One of Us is Gonna Be Bald?

+ +

Episode 6

+ +
+
+
+ +
+ +
+ + +
+ +
~ V.F.F.~
+ + + + + \ No newline at end of file diff --git a/secretwords/index.html b/secretwords/index.html new file mode 100644 index 0000000..b67b649 --- /dev/null +++ b/secretwords/index.html @@ -0,0 +1,949 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Very Fine Friends Podcast + + + + + + + +
+ +
+ +
+ + + +
+
+

Secret Words

+

Points tracker, so the ultimate winner can be decided right before we die.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
JennaJennaFrancisFrancis
WordSGODTTDOGSWord
TOTAL4114½9872½66771240
E43theatrics
(shrinkage)
1001210001maturity
(laughable)
E42fiberglass
(stamina)
1240710001tenacious
(personnel)
E41primordial
(humanitarian)
1000141021proprietor
(thyroid)
E40filibuster
(panty)
1001210001butts
(mosquitos)
E39paperweight
(molest)
1000110001yearning
(cognac)
E38cloistered
(accordance)
1000141021masterpiece
(antagonistic)
E37marathon
(stalking)
1200310001destitute
(anarchy)
E36semantics
(evasions)
1000141021talisman
(jackasses)
E35sideburns
(infighting)
1030410001middleman
(commercialism)
E34outstanding
(baste)
1000110001addled
(seg)
E33newsstands
(chronology)
1001200000seaboard
(extradited)
E32cattle
(deceptions)
1211510001hostage
(pyramids)
E31generating
(firestorm)
1001210001anorexia
(inconsolable)
E30schmooze
(railroads)
1000110001improvised
(yikes)
E29construed
(hierarchy)
1000110001materialistic
(rambunctious)
E28consenting
(fourteen)
1000110001einstein
(masturbation)
E27blatantly
(crocodiles)
1000131101omelets
(orphaned)
E26parental
(kindling)
1201431101overachiever
(expunged)
E25artistry
(domesticity)
1000100000overestimate
(amendments)
E24festivals
(agonized)
1000121001anecdotes
(bestseller)
E23inheritance
(folklore)
1201410001crevasse
(libido)
E22spectator
(withheld)
1000110001bloodline
(trance)
E21commuted
(fielding)
1000110001decompose
(footprints)
E20withering
(fascination)
1000141021indeterminate
(abundantly)
E19brittle
(newcomers)
1000110001slaying
(giveaway)
E18carcass
(antibodies)
1201420101coiled
(opportunities)
E17procrastination
(synapses)
1000110001purification
(cancellations)
E16sociology120-32-101electrodes
E15decapitated100-13-021sovereign
E14stockings100-11-001conquering
E13vertebrae100-11-001memorabilia
E12separation0½0-½1-001flavor
E11whiny100-11-001neighborhoods
E10entity100-13-201earlobe
E09hydrogen100-11-001harass
E08trimmings100-11-001licks
E07vouching100-11-001legwork
E06confluence100-12-020stiletto
E05workstation100-12-101demeaning
E04flotation101-21-001reunions
E03eerie000-01-001fingerprints
E02honed100-11-001kidnappers
E01massaged100-11-001shrinkage
Other FriendsOther Friends
FriendFriendTDOGSWord
E15KrissyKrissy3-021cumulative
E09BlakeBlake1-001urine
+ + + + +
+
+ +

Key:

+
    +
  • S(aid) = Said their word
  • +
  • G(ot'em) = Correctly identified other's word (worth two points)
  • +
  • O(ther) = Number of times other one said their word
  • +
  • D(ecoy) = Other one guessed the decoy word as secret word or correctly identified it as the decoy word
  • +
  • T(otal) = Total points in the episode
  • +
+
+

Helpful tip: on mobile, rotate to landscape to see all the columns.

+
+ +
+ + + + + + + + + + \ No newline at end of file diff --git a/styles.css b/styles.css new file mode 100644 index 0000000..27814f5 --- /dev/null +++ b/styles.css @@ -0,0 +1,631 @@ +/* CSS Reset */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; + font-family: inherit; +} + +/* CSS Custom Properties */ +:root { + --primary-color: #003454; + --primary-hover: #004a66; + --background-color: #e3c5c5; + --text-color: #333; + --white-overlay: rgba(255, 255, 255, 0.9); + --white-semi: rgba(255, 255, 255, 0.3); + --spotify-color: #4A817B; + --border-radius: 6px; + --transition: 0.3s ease; + --shadow-light: 0 2px 5px rgba(0, 0, 0, 0.1); + --shadow-medium: 0 10px 30px rgba(0, 0, 0, 0.2); + --shadow-heavy: 0 10px 30px rgba(0, 0, 0, 0.3); + --max-width: 800px; + --container-width: 1200px; +} + + +/* Base Styles */ +body { + display: grid; + grid-template-rows: auto 1fr auto; + min-height: 100vh; + background-color: var(--background-color); + color: var(--text-color); + font-family: Arial, sans-serif; + line-height: 1.6; + margin: 0; + padding: 0; +} + + +/* Header */ +header { + background-color: var(--white-overlay); + padding: 1rem 1rem; + position: sticky; + top: 0; + box-shadow: var(--shadow-light); + max-height: fit-content; +} + +.nav-container { + display: flex; + justify-content: space-between; + align-items: center; + max-width: var(--container-width); + margin: 0 auto; +} + +.nav-brand { + font-size: 1.5rem; + font-weight: bold; + color: var(--primary-color); + cursor: pointer; + transition: color var(--transition); +} + +.nav-brand:hover { + color: var(--primary-hover); + text-decoration: none; +} + +.nav-menu { + display: flex; + list-style: none; + gap: 1rem; +} + +.nav-item { + cursor: pointer; + padding: 0.5rem 0.5rem; + border-radius: var(--border-radius); + transition: background-color var(--transition); +} + +.nav-item:hover { + background-color: rgba(0, 52, 84, 0.1); + text-decoration: none; +} + +.hamburger { + display: none; + flex-direction: column; + cursor: pointer; + padding: 1px; +} + +.hamburger span { + width: 25px; + height: 3px; + background-color: var(--text-color); + margin: 3px 0; + transition: var(--transition); +} + +.footer { + flex-shrink: 0; /* Prevents footer from shrinking */ + margin-top: auto; /* Pushes footer to bottom */ +} + +.bottom-banner { + text-align: center; + padding: 10px; + font-size: 14px; + font-family: "Courier", "Courier New", "Lucida Console", "Liberation Mono", monospace; + color: white; + background-image: linear-gradient(to right, #4A817B, #003454) +} + + +/* Main Content */ +.page-section { + display: block; + padding: 2rem; + max-width: var(--max-width); + margin: 0 auto; + flex: 1 0 auto; + width: 100%; +} + +.content-page { + display: flex; + flex-direction: column; + max-width: var(--max-width); + margin: 0 auto; +} + +/* Hero Section */ +.hero { + text-align: center; + padding: 3rem 0; +} + +.logo-container { + margin-bottom: 2rem; +} + +.logo-image { + max-width: 300px; + height: auto; + border-radius: var(--border-radius); + box-shadow: var(--shadow-medium); +} + +.description { + font-size: 1.5rem; + color: var(--primary-color); + margin-bottom: 0; +} + +/* Interactive Elements */ +.back-button { + background-color: var(--primary-color); + color: white; + border: none; + padding: 0.5rem 1rem; + border-radius: var(--border-radius); + cursor: pointer; + margin-bottom: 2rem; + font-size: 1rem; + transition: background-color var(--transition); +} + +.back-button:hover { + background-color: var(--primary-hover); +} + +.platform-button { + display: flex; + flex-direction: column; + align-items: center; + padding: 15px; + background: #f8f8f8; + border: 2px solid transparent; + border-radius: var(--border-radius); + text-decoration: none; + transition: all var(--transition); + cursor: pointer; + +} + +.platform-button:hover { + background: #fff; + border-color: #667eea; + transform: translateY(-3px); + box-shadow: 0 10px 20px rgba(102, 126, 234, 0.2); +} + +/* Typography */ +h1 { + color: var(--primary-color); + margin-bottom: 1.5rem; + font-size: 2.5rem; + text-align: center; +} + +h3 { + color: var(--primary-color); + margin-bottom: 1rem; + text-align: center; +} + +p { + margin-bottom: 1rem; + font-size: 1.1rem; +} + +a { + color: var(--primary-color); + text-decoration: none; +} + +a:hover { + text-decoration: none; +} + +/* Content Cards */ +.host-info, +.contact-info, +.socials { + margin: 2rem 0; + padding: 1.5rem; + background-color: var(--white-semi); + border-radius: var(--border-radius); + box-shadow: var(--shadow-heavy); +} + +.socials { + align-items: center; + margin: 0 auto; +} + +.podcast-container { + background: rgba(255, 255, 255, 0.95); + border-radius: var(--border-radius); + padding: 30px; + max-width: 768px; + width: 100%; + box-shadow: var(--shadow-heavy); + align-items: center; + margin: 0 auto; +} + +/* Grid Layouts */ +.platform-links { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(60px, 1fr)); + gap: 10px; + margin-bottom: 30px; +} + +.social-links { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(40px, 1fr)); + gap: 10px; +} + +/* Media Elements */ +.episodes-embed-container { + width: 100%; + margin: 0 auto; + max-width: var(--max-width); + position: relative; + border-radius: var(--border-radius); + overflow: hidden; + contain: layout style; + will-change: transform; +} + +.episodes-embed-container iframe { + width: 100%; + max-height: 400px; + border: none; + border-radius: var(--border-radius); + display: block; + transform: translateZ(0); + backface-visibility: hidden; +} + +.iframespotify-wrapper { + position: relative; + width: 100%; + padding-bottom: 70%; /* Adjust ratio based on content */ + border-radius: var(--border-radius); +} + +.iframespotify-wrapper iframe { + position: absolute; + left: 0; + width: 100% !important; + height: 100% !important; + border-radius: var(--border-radius); +} + +.iframespotify-wrapper h3 { + color: #ffffff; + text-align: center; + margin: 0; + padding: 1rem; + background-color: var(--spotify-color); + border-radius: var(--border-radius); + font-size: 1.4rem; + font-weight: 900; +} + +/* Icons */ +.platform-icon { + width: 64px; + height: 64px; + margin-bottom: 18px; + display: block; + border-radius: var(--border-radius); +} + +.socials-icon { + height: 36px; + display: block; + border-radius: var(--border-radius); +} + +/* Text Styling */ +.platform-name, +.rss-feed { + font-size: 14px; + color: var(--text-color); + text-align: center; +} + +.platform-name { + font-weight: 500; +} + +.rss-feed { + margin-top: 10px; +} + +.rss-link { + color: #667eea; + word-break: break-all; + text-decoration: none; +} + +.rss-link:hover { + text-decoration: underline; +} + +/* Images */ +.fit-picture { + max-height: 480px; + max-width: 720px; + display: block; + margin: auto; + border: 5px solid var(--primary-hover); + border-radius: var(--border-radius); +} + +.fit-guest-picture { + max-width: 360px; + border: 3px solid var(--spotify-color) +} + +/* Tables */ +table { + table-layout: fixed; + border-collapse: collapse; + margin: 20px auto; + font-family: Arial, sans-serif; + font-size: 0.9rem; +} + +th, td { + border: 1px transparent; + padding: 4px; + text-align: center; +} + +col.col1 { width: 100px; } +col.col2 { width: 110px; } +col.col3 { width: 40px; } +col.col4 { width: 40px; } +col.col5 { width: 40px; } +col.col6 { width: 40px; } +col.col7 { width: 50px; } +col.col8 { width: 50px; } +col.col9 { width: 40px; } +col.col10 { width: 40px; } +col.col11 { width: 40px; } +col.col12 { width: 40px; } +col.col13 { width: 110px; } + +.header, +.bold { + font-weight: bold; + border: 1.5px solid darkgreen; +} + +.merged-header { + background-color: #f0f0f0; + border: 1.0px solid var(--primary-color); +} + +.header-friends { + column-span: 5; +} + +.positive { + background-color: #d4f6d4; +} + +.negative { + background-color: #c46c6c; +} + +.zero { + background-color: lightgray; +} + +.text-header-cell, +.episode-cell { + text-align: center; + color: var(--primary-color); +} + +.text-cell { + text-align: center; + background-color: var(--primary-color); + color: lightgray; + border: 1.5px solid green; +} + +.last-row { + font-weight: bold; + border: 1.5px solid darkgreen; +} + +.last-row-totals { + font-weight: bold; + border: 5px solid darkgreen; +} + +.desktop-row { + display: table-cell; + } + +.mobile-row { + display: none; + } + +/* Media Queries */ +@media (max-width: 768px) { + .nav-menu { + position: fixed; + left: -100%; + top: 70px; + flex-direction: column; + background-color: rgba(255, 255, 255, 0.95); + width: 100%; + text-align: center; + transition: var(--transition); + box-shadow: 0 10px 27px rgba(0, 0, 0, 0.05); + padding: 1rem; + z-index: 1000; + } + + .nav-menu.active { + left: 0; + } + + .nav-item { + margin: 0.25rem; + padding: 0.25rem; + } + + .hamburger { + display: flex; + } + + .hamburger.active span:nth-child(2) { + opacity: 0; + } + + .hamburger.active span:nth-child(1) { + transform: translateY(8px) rotate(45deg); + } + + .hamburger.active span:nth-child(3) { + transform: translateY(-8px) rotate(-45deg); + } + + header { + padding: 1rem; + } + + .page-section { + padding: 1rem; + } + + .hero { + padding: 2rem 0; + } + + .logo-image { + max-width: 250px; + } + + .description { + font-size: 1.2rem; + } + + table { + font-size: small; + } + +/* + + th[colspan="5"], th[colspan="10"] { + display: none; + } + + th[colspan="4"] { + display: table-cell; + } + + th[colspan="2"], td[colspan="2"] { + display: table-cell; + } + + td[colspan="9"], td[colspan="5"] { + display: none; + } + + td[colspan="4"] { + display: table-cell; + } + +*/ + + .header-friends { + column-span: 2; + } + + .desktop-row { + display: none; + } + + .mobile-row { + display: table-cell; + } + + col.col1 { width: 20%; } + col.col2 { width: 30%; } + col.col3 { width: 10%; } + col.col4 { width: 10%; } + col.col5 { width: 30%; } + + + h1 { + font-size: 2rem; + } + + .iframespotify-wrapper h3 { + font-size: 1.2rem; + padding: 0.8rem; + } + + .platform-links, + .social-links { + grid-template-columns: repeat(3, 1fr); + } + + .fit-picture { + max-width: 100%; + height: auto; + } + + .fit-guest-picture { + max-width: 75%; + height: auto; + } +} + +@media (max-width: 480px) { + table { + font-size: 0.75rem; + } + + .logo-image { + max-width: 200px; + } + + .description { + font-size: 1rem; + } + + h1 { + font-size: 1.8rem; + } + + .iframespotify-wrapper h3 { + font-size: 1.2rem; + padding: 0.8rem; + } + + .platform-links { + grid-template-columns: repeat(2, 1fr); + } + + .social-links { + grid-template-columns: repeat(3, 1fr); + } + + .fit-picture { + max-width: 100%; + height: auto; + } + + .fit-guest-picture { + max-width: 75%; + height: auto; + } +} \ No newline at end of file