diff --git a/src/app/api/tweet/route.ts b/src/app/api/tweet/route.ts deleted file mode 100644 index 5553b156..00000000 --- a/src/app/api/tweet/route.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { getTweet, Tweet } from "react-tweet/api" - -import { cacheGet } from "~/lib/redis.server" -import { getQuery, NextServerResponse } from "~/lib/server-helper" - -export async function GET(req: Request): Promise { - let { id: tweetId } = getQuery(req) - const res = new NextServerResponse() - - if (!tweetId) { - return res.status(400).json({ error: "Bad request." }) - } - - try { - const tweet = (await cacheGet({ - key: `tweet/${tweetId}`, - noUpdate: true, - expireTime: 60 * 60 * 24 * 3, - getValueFun: async () => await getTweet(tweetId), - })) as Tweet | undefined - return res.status(tweet ? 200 : 404).json({ data: tweet ?? null }) - } catch (error: any) { - console.error(error) - return res.status(400).json({ error: error?.message ?? "Bad request." }) - } -} diff --git a/src/components/ui/Tweet.tsx b/src/components/ui/Tweet.tsx deleted file mode 100644 index e5e15d7d..00000000 --- a/src/components/ui/Tweet.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import dynamic from "next/dynamic" -import Image from "next/image" -import type { TwitterComponents } from "react-tweet" - -import { SITE_URL } from "~/lib/env" - -const ReactTweet = dynamic(async () => (await import("react-tweet")).Tweet) - -const components: TwitterComponents = { - AvatarImg: (props) => avatar, - MediaImg: (props) => tweet-media, -} - -export default function Tweet({ id }: { id: string }) { - return ( -
- -
- ) -} diff --git a/src/markdown/embed-transformers/Tweet.ts b/src/markdown/embed-transformers/Tweet.ts deleted file mode 100644 index 3108e21d..00000000 --- a/src/markdown/embed-transformers/Tweet.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { match } from "path-to-regexp" - -import type { Transformer } from "../rehype-embed" -import { isHostIncludes } from "./utils" - -export const TweetTransformer: Transformer = { - name: "Tweet", - shouldTransform(url) { - const { host, pathname } = url - - return isHostIncludes("twitter.com", host) && pathname.includes("/status/") - }, - getHTML(url) { - const { pathname } = url - const matched = match<{ id: string }>("/:user/status/:id")(pathname) - if (!matched) return - return `` - }, -} diff --git a/src/markdown/embed-transformers/index.ts b/src/markdown/embed-transformers/index.ts index 8c65b8d6..cc7bf5db 100644 --- a/src/markdown/embed-transformers/index.ts +++ b/src/markdown/embed-transformers/index.ts @@ -4,12 +4,10 @@ import { CodeSandboxTransformer } from "./CodeSandBox" import { GitHubRepoTransformer } from "./GitHub" import { NetEaseMusicTransformer } from "./NetEaseMusic" import { SpotifyTransformer } from "./Spotify" -import { TweetTransformer } from "./Tweet" import { YouTubeTransformer } from "./YouTube" export const transformers: Transformer[] = [ CodeSandboxTransformer, - TweetTransformer, GitHubRepoTransformer, YouTubeTransformer, NetEaseMusicTransformer, diff --git a/src/markdown/index.ts b/src/markdown/index.ts index da8372e6..94c76ab3 100644 --- a/src/markdown/index.ts +++ b/src/markdown/index.ts @@ -55,7 +55,6 @@ import sanitizeScheme from "./sanitize-schema" const Style = dynamic(() => import("~/components/common/Style")) const Mention = dynamic(() => import("~/components/ui/Mention")) const Mermaid = dynamic(() => import("~/components/ui/Mermaid")) -const Tweet = dynamic(() => import("~/components/ui/Tweet")) const GithubRepo = dynamic(() => import("~/components/ui/GithubRepo")) const APlayer = dynamic(() => import("~/components/ui/APlayer")) @@ -230,7 +229,6 @@ export const renderPageContent = ( mermaid: Mermaid, audio: APlayer, video: DPlayer, - tweet: Tweet, "github-repo": GithubRepo, style: Style, } as any,