✨ v1 of FixBluesky #1
4 changed files with 18 additions and 12 deletions
5
.vscode/settings.json
vendored
5
.vscode/settings.json
vendored
|
|
@ -5,5 +5,8 @@
|
|||
"source.fixAll": "explicit",
|
||||
"source.organizeImports": "explicit"
|
||||
},
|
||||
"typescript.tsdk": "node_modules\\typescript\\lib"
|
||||
"typescript.tsdk": "node_modules\\typescript\\lib",
|
||||
"[typescript]": {
|
||||
"editor.defaultFormatter": "biomejs.biome"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { AppBskyActorDefs } from "@atproto/api";
|
||||
import type { AppBskyActorDefs } from "@atproto/api";
|
||||
|
||||
import { OEmbedTypes } from "../routes/getOEmbed.ts";
|
||||
import { Layout } from "./Layout.tsx";
|
||||
|
|
@ -12,7 +12,10 @@ interface ProfileProps {
|
|||
export const Profile = ({ profile, url, appDomain }: ProfileProps) => (
|
||||
<Layout url={url}>
|
||||
<meta name="twitter:creator" content={`@${profile.handle}`} />
|
||||
<meta property="og:description" content={profile.description ?? ""} />
|
||||
<meta
|
||||
property="og:description"
|
||||
content={profile.description ?? ""}
|
||||
/>
|
||||
<meta
|
||||
property="og:title"
|
||||
content={`${profile.displayName} (@${profile.handle})`}
|
||||
|
|
@ -21,11 +24,11 @@ export const Profile = ({ profile, url, appDomain }: ProfileProps) => (
|
|||
|
||||
<link
|
||||
type="application/json+oembed"
|
||||
href={`https://${appDomain}/oembed?type=${OEmbedTypes.Profile}&follows=${
|
||||
profile.followsCount
|
||||
}&posts=${profile.postsCount}&avatar=${encodeURIComponent(
|
||||
profile.avatar ?? ""
|
||||
)}`}
|
||||
href={`https://${appDomain}/oembed?type=${
|
||||
OEmbedTypes.Profile
|
||||
}&follows=${profile.followsCount}&posts=${
|
||||
profile.postsCount
|
||||
}&avatar=${encodeURIComponent(profile.avatar ?? "")}`}
|
||||
/>
|
||||
</Layout>
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { BskyAgent } from "@atproto/api";
|
||||
import type { BskyAgent } from "@atproto/api";
|
||||
|
||||
export interface fetchProfileOptions {
|
||||
user: string;
|
||||
|
|
@ -6,7 +6,7 @@ export interface fetchProfileOptions {
|
|||
|
||||
export async function fetchProfile(
|
||||
agent: BskyAgent,
|
||||
{ user }: fetchProfileOptions
|
||||
{ user }: fetchProfileOptions,
|
||||
) {
|
||||
return agent.getProfile({
|
||||
actor: user,
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { Handler } from "hono";
|
||||
import type { Handler } from "hono";
|
||||
import { HTTPException } from "hono/http-exception";
|
||||
import { Profile } from "../components/Profile.tsx";
|
||||
import { fetchProfile } from "../lib/fetchProfile.ts";
|
||||
|
|
@ -20,6 +20,6 @@ export const getProfile: Handler<
|
|||
profile={data}
|
||||
url={c.req.path}
|
||||
appDomain={process.env.FIXBLUESKY_APP_DOMAIN ?? "bsyy.app"}
|
||||
/>
|
||||
/>,
|
||||
);
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue