remove blog

This commit is contained in:
Chris Grimmett 2024-02-27 13:29:49 -08:00
parent abd7873ec7
commit e8a223f8f9
5 changed files with 1 additions and 96 deletions

View File

@ -1,54 +0,0 @@
import Link from "next/link"
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"
import { faExternalLinkAlt } from "@fortawesome/free-solid-svg-icons"
export default async function Page() {
return (
<div className="content">
<div className="box">
<div className="block">
<h1>The Story of Futureporn</h1>
<p>2020 was a busy time for me. I started a small business, attended lots of support group meetings, and rode my bicycle more than ever before. I often found myself away from home during times when Melody was streaming on Chaturbate.</p>
<p>You probably know that unlike other video streaming platforms, Chaturbate doesnt store any VODs. When I missed a stream, I felt sad. I felt like I had missed out and theres no way Id ever find out what happened.</p>
<p>Im pretty handy with computer software. Creating programs and websites has been my biggest passion for my entire life. In order to never miss a ProjektMelody livestream again, I resolved to create some software that would automatically record Melodys Chaturbate streams.</p>
<p>I put the project on hold for a few months, because I didnt think I could make a website that could handle the traffic that the Science Team would generate.</p>
<p>I couldnt shake the idea, though. I wanted Futureporn to exist no matter what!</p>
<p>Ive been working on this project off and on for about a year and a half. Its gone through several iterations, and each iteration has taught me something new. Right now, the website is usable for finding and downloading ProjektMelody Chaturbate VODs. Every VOD has a link to Melodys tweet which originally announced the stream, and a title/description derived from said tweet. I have archived all of her known Chaturbate streams.</p>
<p>The project has evolved over time. Originally, I wanted to have a place to go when I missed one of Melodys livestreams. Now, the project is becoming a sort of a time capsule. Weve all seen how Melody has been de-platformed a half dozen times, and Ive taken this to heart. Platforms are a problem for data preservation! This is one of the reasons for why I chose to use the Inter-Planetary File System (<Link target="_blank" href="https://ipfs.io/">IPFS<FontAwesomeIcon icon={faExternalLinkAlt} className="fas fa-external-link-alt" /></Link>.)</p>
<p>IPFS can end 404s through pinning, a way of mirroring a file across several different computers. Its a way for computers to work together to serve content instead of working independently, thus gaining redundancy and performance benefits. I see a future where pinning files on IPFS becomes as easy as pinning a photo on Pinterest. Fans of ProjektMelody can pin the VODs on Futureporn, increasing that VODs replication and servability to future viewers.</p>
<p>But wait, theres more! I have been thinking about a bunch of other stuff that could be done with past VODs. I think the most exciting thing would be to use computer vision to parse Melodys vibrator activity from the video, and export to a data file. This data file could be used to send good vibes to a viewers vibrator in-sync with VOD playback. Feel what Melody feels! Very exciting, very sexy! This is a long-term goal for Futureporn.</p>
<p>I have several goals for Futureporn, as listed on the <Link href="/goals">Goals page</Link>. A bunch of them have to do with increasing video playback performance, user interface design, but theres a few that are pretty eccentric Serving ProjektMelody VODs to Mars, for example!</p>
<p>I hope this site is useful to all the Science Team!</p>
<article className="mt-5 message is-success">
<div className="message-body">
<p>Futureporn needs financial support to continue improving. If you enjoy this website, please consider <Link target="_blank" href="https://patreon.com/CJ_Clippy">becoming a patron<FontAwesomeIcon icon={faExternalLinkAlt} className="fas fa-external-link-alt" /></Link>.</p>
</div>
</article>
</div>
</div>
</div>
)
}

View File

@ -1,35 +0,0 @@
import Link from 'next/link';
import { siteUrl } from '@/lib/constants';
import { IBlogPost } from '@/lib/blog';
export default async function PostsPage() {
const res = await fetch(`${siteUrl}/api/blogs`);
const posts: IBlogPost[] = [
{
id: 1,
slug: '2021-10-29-the-story-of-futureporn',
title: 'The Story Of Futureporn'
}
]
return (
<div className="container mb-5">
<div className="content mb-5">
<h1>All Blog Posts</h1>
<hr style={{ width: '220px' }} />
<div style={{ paddingTop: '40px' }}>
{posts.map((post: IBlogPost) => (
<article key={post.slug}>
<Link href={`/blog/${post.slug}`}>
<h2>&gt; {post.title}</h2>
</Link>
</article>
))}
</div>
</div>
</div>
);
}

View File

@ -25,7 +25,6 @@ export default function Footer() {
<li><Link href="/tags">Tags</Link></li> <li><Link href="/tags">Tags</Link></li>
<li><Link href="/feed">RSS Feed</Link></li> <li><Link href="/feed">RSS Feed</Link></li>
<li><Link href="/api">API</Link></li> <li><Link href="/api">API</Link></li>
<li><Link href="/blog">Blog</Link></li>
<li><Link href="https://status.futureporn.net/" target="_blank"><span className="mr-1">Status</span><FontAwesomeIcon icon={faExternalLinkAlt} className="fab fa-external-link-alt"></FontAwesomeIcon></Link></li> <li><Link href="https://status.futureporn.net/" target="_blank"><span className="mr-1">Status</span><FontAwesomeIcon icon={faExternalLinkAlt} className="fab fa-external-link-alt"></FontAwesomeIcon></Link></li>
<li><Link href="/upload">Upload</Link></li> <li><Link href="/upload">Upload</Link></li>
<li><Link href="/profile">Profile</Link></li> <li><Link href="/profile">Profile</Link></li>

View File

@ -11,7 +11,7 @@ export default function Pager({ baseUrl, page, pageCount }: IPagerProps): React.
const getPagePath = (page: any): string => { const getPagePath = (page: any): string => {
const pageNumber = parseInt(page); const pageNumber = parseInt(page);
console.log(`pageNumber=${pageNumber}`) console.log(`pageNumber=${pageNumber}`);
return `${baseUrl}/${pageNumber}`; return `${baseUrl}/${pageNumber}`;
}; };

View File

@ -1,5 +0,0 @@
export interface IBlogPost {
slug: string;
title: string;
id: number;
}