Rename Conf.url() to Conf.local(), replace it with a URL of localDomain
This commit is contained in:
parent
5ec40f285d
commit
be6aa89c39
|
@ -21,8 +21,11 @@ const Conf = {
|
||||||
get publishRelays() {
|
get publishRelays() {
|
||||||
return ['wss://relay.mostr.pub'];
|
return ['wss://relay.mostr.pub'];
|
||||||
},
|
},
|
||||||
|
get url() {
|
||||||
|
return new URL(Conf.localDomain);
|
||||||
|
},
|
||||||
/** Merges the path with the localDomain. */
|
/** Merges the path with the localDomain. */
|
||||||
url(path: string): string {
|
local(path: string): string {
|
||||||
if (path.startsWith('/')) {
|
if (path.startsWith('/')) {
|
||||||
// Path is a path.
|
// Path is a path.
|
||||||
return new URL(path, Conf.localDomain).toString();
|
return new URL(path, Conf.localDomain).toString();
|
||||||
|
|
|
@ -3,7 +3,7 @@ import { Conf } from '@/config.ts';
|
||||||
import type { Context } from '@/deps.ts';
|
import type { Context } from '@/deps.ts';
|
||||||
|
|
||||||
function instanceController(c: Context) {
|
function instanceController(c: Context) {
|
||||||
const { host, protocol } = new URL(Conf.localDomain);
|
const { host, protocol } = Conf.url;
|
||||||
|
|
||||||
return c.json({
|
return c.json({
|
||||||
uri: host,
|
uri: host,
|
||||||
|
|
|
@ -31,7 +31,7 @@ const acctSchema = z.custom<URL>((value) => value instanceof URL)
|
||||||
.transform((uri) => uri.pathname)
|
.transform((uri) => uri.pathname)
|
||||||
.pipe(z.string().email('Invalid acct'))
|
.pipe(z.string().email('Invalid acct'))
|
||||||
.transform((acct) => acct.split('@') as [username: string, host: string])
|
.transform((acct) => acct.split('@') as [username: string, host: string])
|
||||||
.refine(([_username, host]) => host === new URL(Conf.localDomain).hostname, {
|
.refine(([_username, host]) => host === Conf.url.hostname, {
|
||||||
message: 'Host must be local',
|
message: 'Host must be local',
|
||||||
path: ['resource', 'acct'],
|
path: ['resource', 'acct'],
|
||||||
});
|
});
|
||||||
|
@ -66,7 +66,7 @@ interface RenderWebfingerOpts {
|
||||||
|
|
||||||
/** Present Nostr user on Webfinger. */
|
/** Present Nostr user on Webfinger. */
|
||||||
function renderWebfinger({ pubkey, username, subject }: RenderWebfingerOpts): Webfinger {
|
function renderWebfinger({ pubkey, username, subject }: RenderWebfingerOpts): Webfinger {
|
||||||
const apId = Conf.url(`/users/${username}`);
|
const apId = Conf.local(`/users/${username}`);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
subject,
|
subject,
|
||||||
|
@ -92,7 +92,7 @@ function renderWebfinger({ pubkey, username, subject }: RenderWebfingerOpts): We
|
||||||
}
|
}
|
||||||
|
|
||||||
const hostMetaController: AppController = (c) => {
|
const hostMetaController: AppController = (c) => {
|
||||||
const template = Conf.url('/.well-known/webfinger?resource={uri}');
|
const template = Conf.local('/.well-known/webfinger?resource={uri}');
|
||||||
|
|
||||||
c.header('content-type', 'application/xrd+xml');
|
c.header('content-type', 'application/xrd+xml');
|
||||||
return c.body(
|
return c.body(
|
||||||
|
|
|
@ -28,7 +28,7 @@ function auth98(opts: Auth98Opts = {}): AppMiddleware {
|
||||||
.refine((event) => {
|
.refine((event) => {
|
||||||
const url = findTag(event.tags, 'u')?.[1];
|
const url = findTag(event.tags, 'u')?.[1];
|
||||||
try {
|
try {
|
||||||
return url === Conf.url(c.req.url);
|
return url === Conf.local(c.req.url);
|
||||||
} catch (_e) {
|
} catch (_e) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@ const linkifyOpts: linkify.Opts = {
|
||||||
render: {
|
render: {
|
||||||
hashtag: ({ content }) => {
|
hashtag: ({ content }) => {
|
||||||
const tag = content.replace(/^#/, '');
|
const tag = content.replace(/^#/, '');
|
||||||
const href = Conf.url(`/tags/${tag}`);
|
const href = Conf.local(`/tags/${tag}`);
|
||||||
return `<a class=\"mention hashtag\" href=\"${href}\" rel=\"tag\"><span>#</span>${tag}</a>`;
|
return `<a class=\"mention hashtag\" href=\"${href}\" rel=\"tag\"><span>#</span>${tag}</a>`;
|
||||||
},
|
},
|
||||||
url: ({ content }) => {
|
url: ({ content }) => {
|
||||||
|
@ -17,7 +17,7 @@ const linkifyOpts: linkify.Opts = {
|
||||||
const pubkey = getDecodedPubkey(decoded);
|
const pubkey = getDecodedPubkey(decoded);
|
||||||
if (pubkey) {
|
if (pubkey) {
|
||||||
const name = pubkey.substring(0, 8);
|
const name = pubkey.substring(0, 8);
|
||||||
const href = Conf.url(`/users/${pubkey}`);
|
const href = Conf.local(`/users/${pubkey}`);
|
||||||
return `<span class="h-card"><a class="u-url mention" href="${href}" rel="ugc">@<span>${name}</span></a></span>`;
|
return `<span class="h-card"><a class="u-url mention" href="${href}" rel="ugc">@<span>${name}</span></a></span>`;
|
||||||
} else {
|
} else {
|
||||||
return '';
|
return '';
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { nip19, verifySignature, z } from '@/deps.ts';
|
import { verifySignature, z } from '@/deps.ts';
|
||||||
|
|
||||||
import type { Event } from './event.ts';
|
import type { Event } from './event.ts';
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,6 @@ async function toAccount(event: Event<0>, opts: ToAccountOpts = {}) {
|
||||||
|
|
||||||
const { pubkey } = event;
|
const { pubkey } = event;
|
||||||
const { name, nip05, picture, banner, about }: MetaContent = parseMetaContent(event);
|
const { name, nip05, picture, banner, about }: MetaContent = parseMetaContent(event);
|
||||||
const { origin } = new URL(Conf.localDomain);
|
|
||||||
const npub = nip19.npubEncode(pubkey);
|
const npub = nip19.npubEncode(pubkey);
|
||||||
|
|
||||||
let parsed05: Nip05 | undefined;
|
let parsed05: Nip05 | undefined;
|
||||||
|
@ -65,7 +64,7 @@ async function toAccount(event: Event<0>, opts: ToAccountOpts = {}) {
|
||||||
}
|
}
|
||||||
: undefined,
|
: undefined,
|
||||||
statuses_count: 0,
|
statuses_count: 0,
|
||||||
url: `${origin}/users/${pubkey}`,
|
url: Conf.local(`/users/${pubkey}`),
|
||||||
username: parsed05?.nickname || npub.substring(0, 8),
|
username: parsed05?.nickname || npub.substring(0, 8),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -82,13 +81,12 @@ async function toMention(pubkey: string) {
|
||||||
url: account.url,
|
url: account.url,
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
const { origin } = new URL(Conf.localDomain);
|
|
||||||
const npub = nip19.npubEncode(pubkey);
|
const npub = nip19.npubEncode(pubkey);
|
||||||
return {
|
return {
|
||||||
id: pubkey,
|
id: pubkey,
|
||||||
acct: npub,
|
acct: npub,
|
||||||
username: npub.substring(0, 8),
|
username: npub.substring(0, 8),
|
||||||
url: `${origin}/users/${pubkey}`,
|
url: Conf.local(`/users/${pubkey}`),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -147,8 +145,8 @@ async function toStatus(event: Event<1>) {
|
||||||
tags: [],
|
tags: [],
|
||||||
emojis: toEmojis(event),
|
emojis: toEmojis(event),
|
||||||
poll: null,
|
poll: null,
|
||||||
uri: `${Conf.localDomain}/posts/${event.id}`,
|
uri: Conf.local(`/posts/${event.id}`),
|
||||||
url: `${Conf.localDomain}/posts/${event.id}`,
|
url: Conf.local(`/posts/${event.id}`),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue