Something went wrong. Try again.
Schedule posts and reposts to Bluesky (and other PDSes) with Cloudflare workers. skyscheduler.work
scheduling social-media cloudflare bsky service cloudflare-workers bsky-tool bluesky
Something went wrong. Try again.
2.7 kB · 63 lines
TypeScript
at main
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364import { POSTING_TIME_INTERVAL, REPOSTING_TIME_INTERVAL } from "../config";import { EmbedDataType, RepostType } from "../enums";import { ACCOUNT_EXPIRE_FORCE_LOGOUT, BSKY_GIF_MIME_TYPES, BSKY_IMG_MIME_TYPES, BSKY_NAME_LOOKUP_LIMIT, BSKY_NAME_TYPE_AHEAD_CHARS, BSKY_VIDEO_FILE_EXTS, BSKY_VIDEO_LENGTH_LIMIT, BSKY_VIDEO_MIME_TYPES, GIF_UPLOAD_ALLOWED, MAX_ALT_TEXT, MAX_FILES_PER_POST, MAX_GIF_LENGTH_LIMIT, MAX_LENGTH, MAX_THUMBNAIL_SIZE, R2_FILE_SIZE_LIMIT} from "../limits";import { didCaptureRegex, domainRegexCheck, postRecordURI } from "../validation/regexCases";
export const CONST_SCRIPT_VERSION: number = 20;
export const constScriptStr: string = `/js/consts.js?v=${CONST_SCRIPT_VERSION}`;export function makeConstScript(): string { const makeStringArray = (typeMap: string[]) => { return typeMap.map((type) => `"${type}"`).join(); };
const fileTypeArray = [...BSKY_IMG_MIME_TYPES, ...BSKY_VIDEO_MIME_TYPES]; if (GIF_UPLOAD_ALLOWED) { fileTypeArray.push(...BSKY_GIF_MIME_TYPES); }
return `/*eslint no-unused-vars: "off"*//* Application constant variable definitions */const DEFINITION_VERSION=${CONST_SCRIPT_VERSION};const fileTypesSupported = [${makeStringArray(fileTypeArray)}];const imageTypes = [${makeStringArray(BSKY_IMG_MIME_TYPES)}];const videoTypes = [${makeStringArray(BSKY_VIDEO_MIME_TYPES)}];const videoFileExts = [${makeStringArray(BSKY_VIDEO_FILE_EXTS)}];const gifTypes = [${makeStringArray(BSKY_GIF_MIME_TYPES)}];const MAX_LENGTH=${MAX_LENGTH};const MAX_ALT_LENGTH=${MAX_ALT_TEXT};const MAX_VIDEO_LENGTH=${BSKY_VIDEO_LENGTH_LIMIT}; /* in seconds */const MAX_GIF_LENGTH=${MAX_GIF_LENGTH_LIMIT}; /* in seconds */const MAX_AUTO_COMPLETE_NAMES=${BSKY_NAME_LOOKUP_LIMIT};const MIN_CHAR_AUTO_COMPLETE_NAMES=${BSKY_NAME_TYPE_AHEAD_CHARS};const FILE_DROP_MAX_SIZE=${R2_FILE_SIZE_LIMIT};const FILE_DROP_MAX_THUMB_SIZE=${MAX_THUMBNAIL_SIZE};const FILE_DROP_MAX_FILES=${MAX_FILES_PER_POST};/* Regexes */const ATPROTO_RECORD_REGEX=${postRecordURI};const DOMAIN_REGEX=${domainRegexCheck};const DID_CAPTURE_REGEX=${didCaptureRegex};/* Interval settings */const POSTING_TIME_INTERVAL=${POSTING_TIME_INTERVAL};const REPOSTING_TIME_INTERVAL=${REPOSTING_TIME_INTERVAL};/* EmbedDataType enum */const IMAGE_DATA_TYPE=${EmbedDataType.Image};const VIDEO_DATA_TYPE=${EmbedDataType.Video};const WEBLINK_DATA_TYPE=${EmbedDataType.WebLink};const RECORD_DATA_TYPE=${EmbedDataType.Record};/* RepostType enum */const REPOST_TYPE_NONE=${RepostType.None};const REPOST_TYPE_EXISTING=${RepostType.ExistingPost};const REPOST_TYPE_FUTURE=${RepostType.FuturePost};const ACCOUNT_EXPIRE_TIMEOUT=${Math.abs(ACCOUNT_EXPIRE_FORCE_LOGOUT)};`;}