phanpy/src/utils/isMastodonLinkMaybe.js

18 lines
749 B
JavaScript
Raw Normal View History

2023-04-23 00:55:47 +08:00
export default function isMastodonLinkMaybe(url) {
2023-12-03 20:40:00 +08:00
try {
2024-07-21 19:06:38 +08:00
const { pathname, hash, hostname } = URL.parse(url);
2023-12-03 20:40:00 +08:00
return (
/^\/.*\/\d+$/i.test(pathname) ||
/^\/(@[^/]+|users\/[^/]+)\/(statuses|posts)\/\w+\/?$/i.test(pathname) || // GoToSocial, Takahe
2023-12-03 20:40:00 +08:00
/^\/notes\/[a-z0-9]+$/i.test(pathname) || // Misskey, Firefish
/^\/(notice|objects)\/[a-z0-9-]+$/i.test(pathname) || // Pleroma
2024-09-02 21:00:10 +08:00
/^\/@[^/]+\/post\/[a-z0-9\-_]+$/i.test(pathname) || // Threads
2024-07-05 16:19:04 +08:00
/^\/@[^/]+\/[a-z0-9]+[a-z0-9\-]+[a-z0-9]+$/i.test(pathname) || // Hollo
2024-07-21 19:06:38 +08:00
(hostname === 'fed.brid.gy' && pathname.startsWith('/r/http')) || // Bridgy Fed
2023-12-03 20:40:00 +08:00
/#\/[^\/]+\.[^\/]+\/s\/.+/i.test(hash) // Phanpy 🫣
);
} catch (e) {
return false;
}
2023-04-23 00:55:47 +08:00
}