From 8cbe69d74913ed2dcce435a94385b606530d450c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andri=20=C3=93skarsson?=
Date: Sun, 29 Dec 2024 17:05:09 +0100
Subject: [PATCH] moderation tooling
---
apps/web/package.json | 6 +-
.../astro/layout.astro} | 11 +-
.../src/components/react/astro-wrapper.tsx | 9 ++
.../react/bluesky/classify-buttons.tsx | 47 ++++++++
.../react/bluesky/embed-external.tsx | 16 +++
.../components/react/bluesky/embed-image.tsx | 17 +++
.../src/components/react/bluesky/embed.tsx | 28 +++++
.../web/src/components/react/bluesky/logo.tsx | 14 +++
.../components/react/bluesky/post-content.tsx | 73 ++++++++++++
.../components/react/bluesky/post-list.tsx | 27 +++++
.../components/react/bluesky/post-view.tsx | 106 ++++++++++++++++++
.../web/src/components/react/bluesky/post.tsx | 11 ++
.../components/react/bluesky/use-bsky-api.ts | 0
apps/web/src/env.d.ts | 1 +
apps/web/src/middleware.ts | 45 ++++++++
apps/web/src/pages/_react/jetstream.tsx | 27 -----
apps/web/src/pages/_react/post-moderator.tsx | 67 -----------
apps/web/src/pages/admin/untagged.astro | 19 ++++
apps/web/src/pages/feed/[rkey]/index.astro | 40 ++++---
apps/web/src/pages/feed/index.astro | 26 +++--
apps/web/src/pages/index.astro | 8 +-
apps/web/src/pages/mrq.astro | 24 ----
.../xrpc/app.bsky.feed.getFeedSkeleton.ts | 4 +-
apps/web/tsconfig.json | 11 +-
bun.lockb | Bin 438192 -> 438952 bytes
.../atproto/domain/get-moderation-queue.ts | 2 +-
packages/atproto/domain/get-public-posts.ts | 24 ++++
packages/atproto/index.ts | 1 +
28 files changed, 503 insertions(+), 161 deletions(-)
rename apps/web/src/{layouts/Layout.astro => components/astro/layout.astro} (67%)
create mode 100644 apps/web/src/components/react/astro-wrapper.tsx
create mode 100644 apps/web/src/components/react/bluesky/classify-buttons.tsx
create mode 100644 apps/web/src/components/react/bluesky/embed-external.tsx
create mode 100644 apps/web/src/components/react/bluesky/embed-image.tsx
create mode 100644 apps/web/src/components/react/bluesky/embed.tsx
create mode 100644 apps/web/src/components/react/bluesky/logo.tsx
create mode 100644 apps/web/src/components/react/bluesky/post-content.tsx
create mode 100644 apps/web/src/components/react/bluesky/post-list.tsx
create mode 100644 apps/web/src/components/react/bluesky/post-view.tsx
create mode 100644 apps/web/src/components/react/bluesky/post.tsx
create mode 100644 apps/web/src/components/react/bluesky/use-bsky-api.ts
delete mode 100644 apps/web/src/pages/_react/jetstream.tsx
delete mode 100644 apps/web/src/pages/_react/post-moderator.tsx
create mode 100644 apps/web/src/pages/admin/untagged.astro
delete mode 100644 apps/web/src/pages/mrq.astro
create mode 100644 packages/atproto/domain/get-public-posts.ts
diff --git a/apps/web/package.json b/apps/web/package.json
index 14b22bf..838457a 100644
--- a/apps/web/package.json
+++ b/apps/web/package.json
@@ -14,7 +14,7 @@
"@astrojs/node": "^9.0.0",
"@astrojs/react": "4.1.2",
"@astrojs/tailwind": "5.1.4",
- "@atproto/api": "^0.13.19",
+ "@atproto/api": "^0.13.23",
"@atproto/lexicon": "^0.4.3",
"@atproto/oauth-client-browser": "^0.3.3",
"@atproto/oauth-client-node": "^0.2.3",
@@ -26,9 +26,11 @@
"react": "^19.0.0",
"react-bluesky-embed": "^0.5.0",
"react-dom": "^19.0.0",
+ "tailwind-merge": "^2.6.0",
"tailwindcss": "^3.4.16"
},
"devDependencies": {
- "@types/express": "^5.0.0"
+ "@types/express": "^5.0.0",
+ "@types/react": "^19"
}
}
diff --git a/apps/web/src/layouts/Layout.astro b/apps/web/src/components/astro/layout.astro
similarity index 67%
rename from apps/web/src/layouts/Layout.astro
rename to apps/web/src/components/astro/layout.astro
index 32b27f0..7f47a16 100644
--- a/apps/web/src/layouts/Layout.astro
+++ b/apps/web/src/components/astro/layout.astro
@@ -1,5 +1,12 @@
---
-import "../base.css";
+import "../../base.css";
+
+interface Props {
+ title?: string;
+}
+
+const props = Astro.props;
+const title = props.title ? `Technical | ${props.title}` : `Technical`;
---
@@ -9,7 +16,7 @@ import "../base.css";
- Astro Basics
+ {title}
diff --git a/apps/web/src/components/react/astro-wrapper.tsx b/apps/web/src/components/react/astro-wrapper.tsx
new file mode 100644
index 0000000..610d044
--- /dev/null
+++ b/apps/web/src/components/react/astro-wrapper.tsx
@@ -0,0 +1,9 @@
+import { StrictMode, Suspense, type ReactNode } from "react";
+
+export function AstroWrapper({ children }: { children: ReactNode }) {
+ return (
+ loading
}>
+ {children}
+
+ );
+}
diff --git a/apps/web/src/components/react/bluesky/classify-buttons.tsx b/apps/web/src/components/react/bluesky/classify-buttons.tsx
new file mode 100644
index 0000000..9e9ab68
--- /dev/null
+++ b/apps/web/src/components/react/bluesky/classify-buttons.tsx
@@ -0,0 +1,47 @@
+import { actions } from "astro:actions";
+import { useState } from "react";
+import { twMerge } from "tailwind-merge";
+
+const classifyButtonClass =
+ "min-h-5 min-w-5 bg-gray-700 rounded-md py-1.5 px-3 text-white disabled:bg-gray-400 disabled:text-gray-800";
+
+export function ClassifyButtons({
+ postUri,
+ classification,
+ onClassified,
+}: {
+ postUri: string;
+ classification: boolean | undefined;
+ onClassified: (isTech: boolean) => void;
+}) {
+ const [loading, setLoading] = useState(false);
+
+ async function onClassifyHandler(isMatch: boolean) {
+ setLoading(true);
+ await actions.classifyManually({
+ match: isMatch,
+ postUri: postUri,
+ tag: "tech",
+ });
+ setLoading(false);
+ onClassified(isMatch);
+ }
+ return (
+
+
+
+
+ );
+}
diff --git a/apps/web/src/components/react/bluesky/embed-external.tsx b/apps/web/src/components/react/bluesky/embed-external.tsx
new file mode 100644
index 0000000..047a668
--- /dev/null
+++ b/apps/web/src/components/react/bluesky/embed-external.tsx
@@ -0,0 +1,16 @@
+import { AppBskyEmbedExternal } from "@atproto/api";
+
+export function EmbedExternal({ embed }: { embed: AppBskyEmbedExternal.View }) {
+ return (
+
+ {embed.external.thumb && (
+
+ )}
+ {embed.external.uri}
+
+ );
+}
diff --git a/apps/web/src/components/react/bluesky/embed-image.tsx b/apps/web/src/components/react/bluesky/embed-image.tsx
new file mode 100644
index 0000000..ce836c6
--- /dev/null
+++ b/apps/web/src/components/react/bluesky/embed-image.tsx
@@ -0,0 +1,17 @@
+import { AppBskyEmbedImages } from "@atproto/api";
+
+export function EmbedImage({ embed }: { embed: AppBskyEmbedImages.View }) {
+ return (
+
+ {embed.images.map((image) => (
+

+ ))}
+
+ );
+}
diff --git a/apps/web/src/components/react/bluesky/embed.tsx b/apps/web/src/components/react/bluesky/embed.tsx
new file mode 100644
index 0000000..3dfc644
--- /dev/null
+++ b/apps/web/src/components/react/bluesky/embed.tsx
@@ -0,0 +1,28 @@
+import {
+ AppBskyEmbedExternal,
+ AppBskyEmbedImages,
+ AppBskyFeedDefs,
+} from "@atproto/api";
+import { EmbedExternal } from "~react/bluesky/embed-external";
+import { EmbedImage } from "~react/bluesky/embed-image";
+
+export function Embed({ embed }: { embed: AppBskyFeedDefs.PostView["embed"] }) {
+ if (AppBskyEmbedImages.isView(embed)) {
+ return ;
+ }
+ if (AppBskyEmbedExternal.isView(embed)) {
+ return ;
+ }
+ /*
+ if (AppBskyEmbedRecord.isView(embed)) {
+ return record
;
+ }
+
+ if (AppBskyEmbedVideo.isView(embed)) {
+ return video
;
+ }
+ */
+ const type = embed?.$type as string;
+
+ return [TODO] {type}
;
+}
diff --git a/apps/web/src/components/react/bluesky/logo.tsx b/apps/web/src/components/react/bluesky/logo.tsx
new file mode 100644
index 0000000..689ba9d
--- /dev/null
+++ b/apps/web/src/components/react/bluesky/logo.tsx
@@ -0,0 +1,14 @@
+export const BlueskyLogo = (props: React.SVGProps) => (
+
+);
diff --git a/apps/web/src/components/react/bluesky/post-content.tsx b/apps/web/src/components/react/bluesky/post-content.tsx
new file mode 100644
index 0000000..f6fc2fb
--- /dev/null
+++ b/apps/web/src/components/react/bluesky/post-content.tsx
@@ -0,0 +1,73 @@
+import { AppBskyFeedPost, AppBskyRichtextFacet, RichText } from "@atproto/api";
+
+export function PostContent({
+ record,
+}: {
+ record: AppBskyFeedPost.Record | null;
+}) {
+ if (!record) return null;
+
+ const rt = new RichText({
+ text: record.text,
+ facets: record.facets,
+ });
+
+ const richText = [];
+ let counter = 0;
+ for (const segment of rt.segments()) {
+ if (
+ segment.link &&
+ AppBskyRichtextFacet.validateLink(segment.link).success
+ ) {
+ richText.push(
+
+ {segment.text}
+
+ );
+ } else if (
+ segment.mention &&
+ AppBskyRichtextFacet.validateMention(segment.mention).success
+ ) {
+ richText.push(
+
+ {segment.text}
+
+ );
+ } else if (
+ segment.tag &&
+ AppBskyRichtextFacet.validateTag(segment.tag).success
+ ) {
+ richText.push(
+
+ {segment.text}
+
+ );
+ } else {
+ richText.push(segment.text);
+ }
+
+ counter++;
+ }
+ return (
+
+ {richText}
+
+ );
+}
diff --git a/apps/web/src/components/react/bluesky/post-list.tsx b/apps/web/src/components/react/bluesky/post-list.tsx
new file mode 100644
index 0000000..3575577
--- /dev/null
+++ b/apps/web/src/components/react/bluesky/post-list.tsx
@@ -0,0 +1,27 @@
+import type { AppBskyFeedDefs } from "@atproto/api";
+import { PostView } from "~react/bluesky/post-view";
+
+export function BskyPostList({
+ posts,
+ mayClassify,
+}: {
+ posts: Array;
+ mayClassify?: boolean;
+}) {
+ return (
+
+ {posts.map((post) => (
+
+ ))}
+
+ );
+}
+
+function mockPromise(): Promise {
+ console.log("promise called");
+ return new Promise((resolve) => {
+ setTimeout(() => {
+ resolve(true);
+ }, 500);
+ });
+}
diff --git a/apps/web/src/components/react/bluesky/post-view.tsx b/apps/web/src/components/react/bluesky/post-view.tsx
new file mode 100644
index 0000000..dce18b8
--- /dev/null
+++ b/apps/web/src/components/react/bluesky/post-view.tsx
@@ -0,0 +1,106 @@
+import { AppBskyFeedDefs, AppBskyFeedPost, AtUri } from "@atproto/api";
+import { useState } from "react";
+import { PostContent } from "react-bluesky-embed";
+import { twMerge } from "tailwind-merge";
+import { ClassifyButtons } from "~react/bluesky/classify-buttons";
+import { Embed } from "~react/bluesky/embed";
+import { BlueskyLogo } from "~react/bluesky/logo";
+
+export function PostView({
+ view,
+ mayClassify,
+}: {
+ view: AppBskyFeedDefs.PostView;
+ mayClassify?: boolean;
+}) {
+ const [isClassified, setIsClassified] = useState(
+ undefined
+ );
+
+ function handleClassified(isTech: boolean) {
+ setIsClassified(isTech);
+ }
+
+ if (!view) {
+ console.log("no view", view);
+ return null;
+ }
+
+ const authorLink = `https://bsky.app/profile/${view.author.did}`;
+ const atUri = new AtUri(view.uri);
+ const postLink = `${authorLink}/post/${atUri.rkey}`;
+
+ return (
+
+
+
+
+
+ {view.embed &&
}
+
+
+ {new Date(view.indexedAt).toLocaleString()}
+
+
+ Read
+
+
+
+ {isClassified !== undefined && (
+
+
+
+ )}
+ {mayClassify && (
+
+ )}
+
+ );
+}
diff --git a/apps/web/src/components/react/bluesky/post.tsx b/apps/web/src/components/react/bluesky/post.tsx
new file mode 100644
index 0000000..10a1067
--- /dev/null
+++ b/apps/web/src/components/react/bluesky/post.tsx
@@ -0,0 +1,11 @@
+export function BskyPost({}: {
+ actor: {
+ name: string;
+ handle: string;
+ avatarUri: string;
+ };
+ text: string;
+ embeds?: Array;
+}) {
+ return post
;
+}
diff --git a/apps/web/src/components/react/bluesky/use-bsky-api.ts b/apps/web/src/components/react/bluesky/use-bsky-api.ts
new file mode 100644
index 0000000..e69de29
diff --git a/apps/web/src/env.d.ts b/apps/web/src/env.d.ts
index 84f106a..c324f7e 100644
--- a/apps/web/src/env.d.ts
+++ b/apps/web/src/env.d.ts
@@ -1,5 +1,6 @@
declare namespace App {
interface Locals {
at: import("@andrioid/atproto").AtContext;
+ mayClassify: boolean;
}
}
diff --git a/apps/web/src/middleware.ts b/apps/web/src/middleware.ts
index 9e82f23..2bac31f 100644
--- a/apps/web/src/middleware.ts
+++ b/apps/web/src/middleware.ts
@@ -1,4 +1,5 @@
import { createAtContext, type AtContext } from "@andrioid/atproto";
+import type { APIContext } from "astro";
import { defineMiddleware } from "astro:middleware";
let atContext: AtContext | undefined;
try {
@@ -9,7 +10,51 @@ try {
process.exit(1);
}
+// This is only until I get Bluesky oauth running
+const USER = "andri";
+const PASSWORD = "devandri";
+
export const onRequest = defineMiddleware((context, next) => {
context.locals.at = atContext;
+ context.locals.mayClassify = isAuthorized(context);
+ // Doesn't apply to API urls
+ const url = new URL(context.request.url);
+
+ if (url.pathname.match(/(^\/admin)/)) {
+ // Lock it down a bit
+ const basicAuth = context.request.headers.get("authorization");
+
+ if (isAuthorized(context)) {
+ return next();
+ } else {
+ return new Response("Auth required", {
+ status: 401,
+ headers: {
+ "WWW-authenticate": 'Basic realm="Secure Area"',
+ },
+ });
+ }
+ }
+
return next();
});
+
+function isAuthorized(context: APIContext): boolean {
+ const basicAuth = context.request.headers.get("authorization");
+
+ if (basicAuth) {
+ // Get the auth value from string "Basic authValue"
+ const authValue = basicAuth.split(" ")[1] ?? "username:password";
+
+ // Decode the Base64 encoded string via atob (https://developer.mozilla.org/en-US/docs/Web/API/atob)
+ // Get the username and password. NB: the decoded string is in the form "username:password"
+ const [username, pwd] = atob(authValue).split(":");
+
+ // check if the username and password are valid
+ if (username === USER && pwd === PASSWORD) {
+ // forward request
+ return true;
+ }
+ }
+ return false;
+}
diff --git a/apps/web/src/pages/_react/jetstream.tsx b/apps/web/src/pages/_react/jetstream.tsx
deleted file mode 100644
index a11aa67..0000000
--- a/apps/web/src/pages/_react/jetstream.tsx
+++ /dev/null
@@ -1,27 +0,0 @@
-import { useEffect, useState } from "react";
-
-export function JetStream() {
- const [filter, setFilter] = useState();
-
- useEffect(() => {
- return; // later
- const wss = new WebSocket(
- "wss://jetstream2.us-east.bsky.network/subscribe?wantedCollections=app.bsky.feed.post"
- );
- wss.addEventListener("open", () => {
- console.log("wss open");
- });
- wss.addEventListener("message", (ev) => {
- const data = ev.data as string;
- if (data.match(/bluesky/)) {
- console.log("post", JSON.parse(data));
- }
- });
-
- return () => {
- wss.close();
- };
- }, []);
-
- return Welcome to the stream
;
-}
diff --git a/apps/web/src/pages/_react/post-moderator.tsx b/apps/web/src/pages/_react/post-moderator.tsx
deleted file mode 100644
index 07d5d8c..0000000
--- a/apps/web/src/pages/_react/post-moderator.tsx
+++ /dev/null
@@ -1,67 +0,0 @@
-import { AtUri } from "@atproto/api";
-import { actions } from "astro:actions";
-import { useState } from "react";
-
-export function PostModerator({
- postId,
- text,
-}: {
- postId: string;
- text: string;
-}) {
- const [moderated, setModerated] = useState(false);
-
- const atUri = new AtUri(postId);
- const postUrl = `https://bsky.app/profile/${atUri.hostname}/post/${atUri.rkey}`;
-
- async function onClassifyHandler(isMatch: boolean) {
- await actions.classifyManually({
- match: isMatch,
- postUri: postId,
- tag: "tech",
- });
- setModerated(true);
- }
-
- return (
-
- {moderated ? (
-
- ) : (
- <>
-
-
-
-
-
- >
- )}
-
- );
-}
diff --git a/apps/web/src/pages/admin/untagged.astro b/apps/web/src/pages/admin/untagged.astro
new file mode 100644
index 0000000..ad4104e
--- /dev/null
+++ b/apps/web/src/pages/admin/untagged.astro
@@ -0,0 +1,19 @@
+---
+import { getModerationPosts, getPublicPosts } from "@andrioid/atproto";
+
+import Layout from "~astro/layout.astro";
+import { BskyPostList } from "~react/bluesky/post-list";
+const { at } = Astro.locals;
+const posts = await getModerationPosts(at);
+const pmap = posts.map((p) => p.postId);
+const bmap = await getPublicPosts(pmap);
+---
+
+
+
+
Untagged recent
+
+ Loading
+
+
+
diff --git a/apps/web/src/pages/feed/[rkey]/index.astro b/apps/web/src/pages/feed/[rkey]/index.astro
index 5ee225e..1dbaa57 100644
--- a/apps/web/src/pages/feed/[rkey]/index.astro
+++ b/apps/web/src/pages/feed/[rkey]/index.astro
@@ -1,38 +1,36 @@
---
-import { AtUri, DEFAULT_FEED_ACTOR, feeds } from "@andrioid/atproto";
-import { PostThread } from "react-bluesky-embed";
-import Layout from "../../../layouts/Layout.astro";
+import { DEFAULT_FEED_ACTOR, feeds, getPublicPosts } from "@andrioid/atproto";
+import Layout from "~astro/layout.astro";
+import { BskyPostList } from "~react/bluesky/post-list";
+
const { rkey } = Astro.params;
const feed = feeds.find((f) => f.rkey === rkey);
if (!feed) {
console.log("404");
return Astro.redirect("/404");
}
-const posts = await feed.handler({
+const postUris = await feed.handler({
ctx: Astro.locals.at,
actorDid: DEFAULT_FEED_ACTOR,
});
+const posts = await getPublicPosts(postUris);
+const mayClassify = Astro.locals.mayClassify;
---
-
+
+
{feed.record.displayName}
+ {
+ feed.record.description && (
+
{feed.record.description}
+ )
+ }
- {
- posts.map((post) => {
- const aturi = new AtUri(post);
- const did = aturi.hostname;
- const rkey = aturi.rkey;
- return (
-
- );
- })
- }
+
diff --git a/apps/web/src/pages/feed/index.astro b/apps/web/src/pages/feed/index.astro
index 29cfce5..6848530 100644
--- a/apps/web/src/pages/feed/index.astro
+++ b/apps/web/src/pages/feed/index.astro
@@ -1,15 +1,23 @@
---
import { feeds } from "@andrioid/atproto";
-import Layout from "../../layouts/Layout.astro";
+import Layout from "~astro/layout.astro";
---
-
Feeds
- {
- feeds.map((feed: any) => (
-
- ))
- }
+
diff --git a/apps/web/src/pages/index.astro b/apps/web/src/pages/index.astro
index 5646c60..608bef4 100644
--- a/apps/web/src/pages/index.astro
+++ b/apps/web/src/pages/index.astro
@@ -1,10 +1,8 @@
---
-import Layout from "../layouts/Layout.astro";
-import { JetStream } from "./_react/jetstream";
+import Layout from "~astro/layout.astro";
// Welcome to Astro! Wondering what to do next? Check out the Astro documentation at https://docs.astro.build
// Don't want to use any of this? Delete everything in this file, the `assets`, `components`, and `layouts` directories, and start fresh.
+return Astro.redirect("/feed");
---
-
-
-
+
Nothing here
diff --git a/apps/web/src/pages/mrq.astro b/apps/web/src/pages/mrq.astro
deleted file mode 100644
index fd5d3e1..0000000
--- a/apps/web/src/pages/mrq.astro
+++ /dev/null
@@ -1,24 +0,0 @@
----
-import { getModerationPosts } from "@andrioid/atproto";
-import Layout from "../layouts/Layout.astro";
-import { PostModerator } from "./_react/post-moderator";
-const { at } = Astro.locals;
-const posts = await getModerationPosts(at);
----
-
-
-
- {
- posts.map((r) => (
-
- ))
- }
-
-
-
-
diff --git a/apps/web/src/pages/xrpc/app.bsky.feed.getFeedSkeleton.ts b/apps/web/src/pages/xrpc/app.bsky.feed.getFeedSkeleton.ts
index 10de4c6..81784b3 100644
--- a/apps/web/src/pages/xrpc/app.bsky.feed.getFeedSkeleton.ts
+++ b/apps/web/src/pages/xrpc/app.bsky.feed.getFeedSkeleton.ts
@@ -38,7 +38,7 @@ export const GET: APIRoute = async ({ request: req, locals }) => {
function HTTPError(msg: string = "You are holding it wrong") {
return new Response(msg, {
- status: 400,
- statusText: "Invalid arguments",
+ status: 401,
+ statusText: msg,
});
}
diff --git a/apps/web/tsconfig.json b/apps/web/tsconfig.json
index ce144a2..bfbbf05 100644
--- a/apps/web/tsconfig.json
+++ b/apps/web/tsconfig.json
@@ -1,5 +1,14 @@
{
+ "compilerOptions": {
+ "baseUrl": ".",
+ "paths": {
+ "~react/*": ["./src/components/react/*"],
+ "~astro/*": ["./src/components/astro/*"],
+ "~/*": ["./*"],
+ }
+ },
"extends": "astro/tsconfigs/strict",
"include": [".astro/types.d.ts", "**/*", "./src/env.d.ts"],
- "exclude": ["dist"]
+ "exclude": ["dist"],
+
}
diff --git a/bun.lockb b/bun.lockb
index a57c68e87802828d8177dc20b7b7c1521974491c..d76d67f93ee6cbfd38fdcd64d5f0608b54a46b59 100755
GIT binary patch
delta 81059
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∓y
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