diff --git a/.env.example b/.env.example index ac3f5b9..3c0509e 100644 --- a/.env.example +++ b/.env.example @@ -3,6 +3,7 @@ SPOTIFY_CLIENT_SECRET= SPOTIFY_REFRESH_TOKEN= NEXT_PUBLIC_SITE_URL= GITHUB_ACCESS_TOKEN= +GITHUB_USER_ID= GITHUB_USERNAME= GITHUB_CLIENT_ID= GITHUB_SECRET= diff --git a/.env.gpg b/.env.gpg index 10e53cb..3c65502 100644 Binary files a/.env.gpg and b/.env.gpg differ diff --git a/app/actions/comments.ts b/app/actions/comments.ts index 0c6bf9b..1f302f1 100644 --- a/app/actions/comments.ts +++ b/app/actions/comments.ts @@ -4,6 +4,7 @@ import {auth, signIn} from '@/auth' import {createClient} from '@/lib/supabase/server' import {z} from 'zod' import {sendNotification} from '@/lib/ntfy' +import {extractUserId} from '@/lib/github' export async function loginWithGitHub() { await signIn('github') @@ -22,15 +23,6 @@ const notificationBody = (comment: { id: number, content: string }, user: { name headers: { Authorization: `Bearer ${process.env.NTFY_TOKEN}` } - }, - { - action: 'http', - label: 'Delete comment', - url: `${process.env.NEXT_PUBLIC_SITE_URL}/api/comments/moderate/${comment.id}`, - method: 'DELETE', - headers: { - Authorization: `Bearer ${process.env.NTFY_TOKEN}` - } } ] } @@ -64,6 +56,7 @@ export async function addComment(prevState: { message: string }, formData: FormD try { const supabase = await createClient() const session = await auth() + const isMe = process.env.GITHUB_USER_ID === extractUserId(session?.user?.image ?? '') if (!session?.user) { return {message: authorisation_error} @@ -78,7 +71,7 @@ export async function addComment(prevState: { message: string }, formData: FormD const {data: newComment, error} = await supabase .from('comments') - .insert({content: comment, article_id: article?.id, user_id: user?.id, parent_id: parent_id}) + .insert({content: comment, article_id: article?.id, user_id: user?.id, parent_id: parent_id, published: isMe}) .select('*') .single() diff --git a/app/context/CommentFormProvider.tsx b/app/context/CommentFormProvider.tsx index 7220f8e..d4a8916 100644 --- a/app/context/CommentFormProvider.tsx +++ b/app/context/CommentFormProvider.tsx @@ -19,7 +19,7 @@ export default function CommentFormProvider({children}: { children: ReactNode }) const [replyTo, setReplyTo] = useState(null) const [commentLength, setCommentLength] = useState(0) const commentFormRef = useRef(null) - const commentMaxLength = 300 + const commentMaxLength = 500 const focusCommentForm = () => { commentFormRef.current?.focus() diff --git a/lib/github.ts b/lib/github.ts index 5ab3dc8..8f5fdda 100644 --- a/lib/github.ts +++ b/lib/github.ts @@ -46,4 +46,8 @@ export async function getPinnedRepos() { }) as PinnedReposResponse return response.data.user.pinnedItems.nodes +} + +export function extractUserId(avatarUrl: string) { + return new URL(avatarUrl).pathname.split('/')[2] } \ No newline at end of file