postiz-app/libraries/helpers/src/utils/count.length.ts
2025-05-31 21:44:16 +07:00

39 lines
868 B
TypeScript

// @ts-ignore
import twitter from 'twitter-text';
export const textSlicer = (
integrationType: string,
end: number,
text: string
): { start: number; end: number } => {
if (integrationType !== 'x') {
return {
start: 0,
end,
};
}
const { validRangeEnd, valid } = twitter.parseTweet(text, {
version: 3,
maxWeightedTweetLength: end,
scale: 100,
defaultWeight: 200,
emojiParsingEnabled: true,
transformedURLLength: 23,
ranges: [
{ start: 0, end: 4351, weight: 100 },
{ start: 8192, end: 8205, weight: 100 },
{ start: 8208, end: 8223, weight: 100 },
{ start: 8242, end: 8247, weight: 100 },
],
});
return {
start: 0,
end: valid ? end : validRangeEnd,
};
};
export const weightedLength = (text: string): number => {
return twitter.parseTweet(text).weightedLength;
};