cookieParser.ts 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. // Shared cookie parser utilities
  2. export type CookieData = {
  3. name: string;
  4. value: string;
  5. domain: string;
  6. path: string;
  7. };
  8. // Domain map used by different platforms
  9. const domainMap: Record<string, string> = {
  10. douyin: '.douyin.com',
  11. xiaohongshu: '.xiaohongshu.com',
  12. weixin_video: '.qq.com',
  13. toutiao: '.toutiao.com',
  14. baijiahao: '.baidu.com',
  15. qie: '.qq.com',
  16. dayuhao: '.alibaba.com',
  17. };
  18. export function parseCookieString(cookieString: string, platform: string): CookieData[] {
  19. const domain = domainMap[platform] || `.${platform}.com`;
  20. const cookies: CookieData[] = [];
  21. const pairs = cookieString.split(';');
  22. for (const pair of pairs) {
  23. const trimmed = pair.trim();
  24. if (!trimmed) continue;
  25. const eqIndex = trimmed.indexOf('=');
  26. if (eqIndex === -1) continue;
  27. const name = trimmed.substring(0, eqIndex).trim();
  28. const value = trimmed.substring(eqIndex + 1).trim();
  29. if (name && value) {
  30. cookies.push({ name, value, domain, path: '/' });
  31. }
  32. }
  33. return cookies;
  34. }