search: escape @ signs in matchers

This commit is contained in:
Alex Gleason 2024-08-07 16:05:04 -05:00
parent ff900341d5
commit d3780037df
No known key found for this signature in database
GPG key ID: 7211D1F99744FBB7

View file

@ -40,10 +40,10 @@ function extractBech32(value: string): string | undefined {
case 'http:': case 'http:':
case 'https:': { case 'https:': {
const accountUriMatch = match<{ acct: string }>('/users/:acct')(uri.pathname); const accountUriMatch = match<{ acct: string }>('/users/:acct')(uri.pathname);
const accountUrlMatch = match<{ acct: string }>('/@:acct')(uri.pathname); const accountUrlMatch = match<{ acct: string }>('/\\@:acct')(uri.pathname);
const statusUriMatch = match<{ acct: string; id: string }>('/users/:acct/statuses/:id')(uri.pathname); const statusUriMatch = match<{ acct: string; id: string }>('/users/:acct/statuses/:id')(uri.pathname);
const statusUrlMatch = match<{ acct: string; id: string }>('/@:acct/:id')(uri.pathname); const statusUrlMatch = match<{ acct: string; id: string }>('/\\@:acct/:id')(uri.pathname);
const soapboxMatch = match<{ acct: string; id: string }>('/@:acct/posts/:id')(uri.pathname); const soapboxMatch = match<{ acct: string; id: string }>('/\\@:acct/posts/:id')(uri.pathname);
const nostrMatch = match<{ bech32: string }>('/:bech32')(uri.pathname); const nostrMatch = match<{ bech32: string }>('/:bech32')(uri.pathname);
if (accountUriMatch) { if (accountUriMatch) {
bech32 = accountUriMatch.params.acct; bech32 = accountUriMatch.params.acct;