diff --git a/.husky/prepare-commit-msg b/.husky/prepare-commit-msg new file mode 100755 index 00000000..f1a6f16f --- /dev/null +++ b/.husky/prepare-commit-msg @@ -0,0 +1,5 @@ +#!/bin/sh + +### BEGIN GPTCOMMIT HOOK ### +gptcommit prepare-commit-msg --commit-msg-file "$1" --commit-source "$2" --commit-sha "$3" +### END GPTCOMMIT HOOK ### diff --git a/src/components/main/MainFeed.tsx b/src/components/main/MainFeed.tsx index 3f657836..9a6ae461 100644 --- a/src/components/main/MainFeed.tsx +++ b/src/components/main/MainFeed.tsx @@ -9,9 +9,6 @@ import { CharacterFloatCard } from "~/components/common/CharacterFloatCard" import { useAccountState } from "@crossbell/connect-kit" import InfiniteScroll from "react-infinite-scroller" import { ExpandedNote } from "~/lib/types" -import { useGetScore } from "~/queries/page" -import { toCid } from "~/lib/ipfs-parser" -import { cn } from "~/lib/utils" import { useEffect, useState } from "react" import { Switch } from "@headlessui/react" import { setStorage, getStorage } from "~/lib/storage" @@ -26,16 +23,16 @@ const Post = ({ const router = useRouter() const { t } = useTranslation(["common", "site"]) const date = useDate() - const score = useGetScore({ - cid: toCid(post.metadata.uri || ""), - }) + + if ( + post.metadata?.content?.score?.number && + post.metadata.content.score.number <= filtering + ) { + return null + } return ( -
+
diff --git a/src/lib/types.ts b/src/lib/types.ts index a44b1367..63a7df6f 100644 --- a/src/lib/types.ts +++ b/src/lib/types.ts @@ -97,6 +97,10 @@ export type ExpandedNote = NoteEntity & { frontMatter?: Record slug?: string views?: number + score?: { + number?: number + reason?: string + } } } } diff --git a/src/models/home.model.ts b/src/models/home.model.ts index c75f71d1..5880e78a 100644 --- a/src/models/home.model.ts +++ b/src/models/home.model.ts @@ -1,7 +1,12 @@ import { ExpandedNote } from "~/lib/types" import { indexer } from "@crossbell/indexer" +import { toCid } from "~/lib/ipfs-parser" -const expandPage = async (page: ExpandedNote, useStat?: boolean) => { +const expandPage = async ( + page: ExpandedNote, + useStat?: boolean, + useScore?: boolean, +) => { if (page.metadata?.content) { if (page.metadata?.content?.content) { const { renderPageContent } = await import("~/markdown") @@ -28,6 +33,19 @@ const expandPage = async (page: ExpandedNote, useStat?: boolean) => { ).json() page.metadata.content.views = stat.viewDetailCount } + + if (useScore) { + try { + const score = ( + await ( + await fetch(`/api/score?cid=${toCid(page.metadata?.uri || "")}`) + ).json() + ).data + page.metadata.content.score = score + } catch (e) { + // do nothing + } + } } return page @@ -56,7 +74,7 @@ export async function getFeed({ const list = await Promise.all( result.list.map(async (page: any) => { - return expandPage(page, true) + return expandPage(page, false, true) }), ) diff --git a/src/models/page.model.ts b/src/models/page.model.ts index c65452c9..afa389a1 100644 --- a/src/models/page.model.ts +++ b/src/models/page.model.ts @@ -640,10 +640,6 @@ export async function getSummary({ ).data } -export async function getScore({ cid }: { cid: string }) { - return (await (await fetch(`/api/score?cid=${cid}`)).json()).data -} - export async function checkMirror(characterId: string) { const notes = await indexer.getNotes({ characterId, diff --git a/src/pages/api/score.ts b/src/pages/api/score.ts index dec6cdc9..5f17a97a 100644 --- a/src/pages/api/score.ts +++ b/src/pages/api/score.ts @@ -37,7 +37,7 @@ const getOriginalScore = async (cid: string) => { console.timeEnd(`fetching score ${cid}`) return { - score: parseInt(response.choices?.[0]?.message?.content?.trim()), + number: parseInt(response.choices?.[0]?.message?.content?.trim()), reason: response.choices?.[0]?.message?.content ?.trim() .replace(/^\d+([,.\s]*)/, "") @@ -54,7 +54,7 @@ const getOriginalScore = async (cid: string) => { export async function getScore(cid: string) { const score = await cacheGet({ - key: ["summary_score222", cid], + key: ["summary_score", cid], getValueFun: async () => { const meta = await prisma.metadata.findFirst({ where: { @@ -64,7 +64,7 @@ export async function getScore(cid: string) { if (meta) { if (meta?.ai_score !== null) { return { - score: meta.ai_score, + number: meta.ai_score, reason: meta.ai_score_reason, } } else { @@ -75,7 +75,7 @@ export async function getScore(cid: string) { uri: `ipfs://${cid}`, }, data: { - ai_score: score.score, + ai_score: score.number, ai_score_reason: score.reason, }, }) @@ -89,7 +89,7 @@ export async function getScore(cid: string) { await prisma.metadata.create({ data: { uri: `ipfs://${cid}`, - ai_score: score.score, + ai_score: score.number, ai_score_reason: score.reason, }, }) diff --git a/src/queries/page.ts b/src/queries/page.ts index 52a16aa5..9defdb0f 100644 --- a/src/queries/page.ts +++ b/src/queries/page.ts @@ -256,17 +256,6 @@ export function useGetSummary(input: { cid?: string; lang?: string }) { }) } -export function useGetScore(input: { cid?: string }) { - return useQuery(["getScore", input.cid], async () => { - if (!input.cid) { - return - } - return pageModel.getScore({ - cid: input.cid, - }) - }) -} - export function useGetMirrorXyz(input: { address: string }) { return useQuery(["getMirror", input.address], async () => { if (!input.address) {