feat(canvas): TapNow - 支持公开画布导入 (#255)
(cherry picked from commit 9b96135a5e409b4718e6204ab4212b7ef22635aa)
This commit is contained in:
1 parent
60bad10fc9
commit
275c59a766
13 files changed
+1087
-2
No files matched your search
@@ -0,0 +1,25 @@
|
||||
const TAPNOW_SHARE_ID_PATTERN = /^[A-Za-z0-9_-]{1,64}$/;
|
||||
const TAPNOW_SHARE_HOST = "app.tapnow.media";
|
||||
|
||||
export function parseTapNowShareID(value: string) {
|
||||
const trimmed = value.trim();
|
||||
if (!trimmed) return "";
|
||||
let candidate = trimmed;
|
||||
try {
|
||||
const parsed = new URL(trimmed);
|
||||
const hostname = parsed.hostname.toLowerCase().replace(/\.$/, "");
|
||||
if (hostname !== TAPNOW_SHARE_HOST || !/^\/tapflow\/view\/?[^/]*\/?$/.test(parsed.pathname)) return "";
|
||||
const parts = parsed.pathname.split("/").filter(Boolean);
|
||||
candidate = parts.at(-1) || "";
|
||||
} catch {
|
||||
candidate = trimmed;
|
||||
}
|
||||
return TAPNOW_SHARE_ID_PATTERN.test(candidate) ? candidate : "";
|
||||
}
|
||||
|
||||
export function formatTapNowBatchTime(value: string) {
|
||||
const date = new Date(value);
|
||||
if (Number.isNaN(date.getTime())) return "未知";
|
||||
const pad = (part: number) => String(part).padStart(2, "0");
|
||||
return `${date.getFullYear()}${pad(date.getMonth() + 1)}${pad(date.getDate())}${pad(date.getHours())}${pad(date.getMinutes())}`;
|
||||
}
|
||||
Reference in new issue
Block a user