languages.ts 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. 'use strict';
  2. const localeCC: { [id: string]: string; } =
  3. {
  4. enUS: 'en', enGB: 'en',
  5. esLA: 'es', esES: 'es',
  6. ptPT: 'pt', ptBR: 'pt',
  7. frFR: 'fr',
  8. deDE: 'de',
  9. itIT: 'it',
  10. ruRU: 'ru',
  11. };
  12. export function localeToCC(locale: string): string
  13. {
  14. let ret = localeCC.enGB;
  15. if (locale in localeCC)
  16. {
  17. ret = localeCC[locale];
  18. }
  19. return ret;
  20. }
  21. const dubignore_regexp: { [id: string]: RegExp; } =
  22. {
  23. en: /\(.*Dub(?:bed)?.*\)|(?:\(RU\))|\(Russian\)/i,
  24. fr: /\(.*Dub(?:bed)?.*\)|(?:\(RU\))|\(?Doublage.*\)|\(Russian\)?/,
  25. de: /\(.*isch\)|\(Dubbed\)|\(RU\)|\(Russian\)/
  26. };
  27. export function get_diregexp(config: IConfig): RegExp
  28. {
  29. let ret = dubignore_regexp.en;
  30. if (config.crlang in dubignore_regexp)
  31. {
  32. ret = dubignore_regexp[config.crlang];
  33. }
  34. return ret;
  35. }
  36. const episodes_regexp: { [id: string]: RegExp; } =
  37. {
  38. en: /Episode\s+((OVA)|(PV )?[S0-9][\-P0-9.]*[a-fA-F]?)\s*$/i,
  39. fr: /Épisode\s+((OVA)|(PV )?[S0-9][\-P0-9.]*[a-fA-F]?)\s*$/i,
  40. de: /Folge\s+((OVA)|(PV )?[S0-9][\-P0-9.]*[a-fA-F]?)\s*$/i,
  41. es: /Episodio\s+((OVA)|(PV )?[S0-9][\-P0-9.]*[a-fA-F]?)\s*$/i,
  42. it: /Episodio\s+((OVA)|(PV )?[S0-9][\-P0-9.]*[a-fA-F]?)\s*$/i,
  43. pt: /Episódio\s+((OVA)|(PV )?[S0-9][\-P0-9.]*[a-fA-F]?)\s*$/i,
  44. ru: /Серия\s+((OVA)|(PV )?[S0-9][\-P0-9.]*[a-fA-F]?)\s*$/i,
  45. };
  46. export function get_epregexp(config: IConfig): RegExp
  47. {
  48. let ret = episodes_regexp.en;
  49. if (config.crlang in episodes_regexp)
  50. {
  51. ret = episodes_regexp[config.crlang];
  52. }
  53. return ret;
  54. }