/* String formatting */

export const removeReleaseYearFromName = (name: string) =>
  name.replace(/\([0-9]{4}\)/g, "");

export const removeSymbolsFromName = (name: string) =>
  name.replace(/[^A-Za-z 0-9]/g, "");

export const removeSpecialEditionFromName = (name: string) =>
  name.replace(
    /(The |Digital )?(GOTY|Deluxe|Standard|Ultimate|Definitive|Enhanced|Collector's|Premium|Digital|Limited|Game of the Year|Reloaded|[0-9]{4}) Edition/g,
    ""
  );

export const removeDuplicateSpaces = (name: string) =>
  name.replace(/\s{2,}/g, " ");

export const removeTrash = (title: string) =>
  title.replace(/\(.*\)|\[.*]/g, "").replace(/:/g, "");

/* Formatters per repacker */

export const fitGirlFormatter = (title: string) =>
  title.replace(/\(.*\)/g, "").trim();

export const kaosKrewFormatter = (title: string) =>
  title
    .replace(/(v\.?[0-9])+([0-9]|\.)+/, "")
    .replace(
      /(\.Build\.[0-9]*)?(\.MULTi[0-9]{1,2})?(\.REPACK-KaOs|\.UPDATE-KaOs)?/g,
      ""
    )
    .replace(/\./g, " ")
    .trim();

export const empressFormatter = (title: string) =>
  title
    .replace(/-EMPRESS/, "")
    .replace(/\./g, " ")
    .trim();

export const dodiFormatter = (title: string) =>
  title.replace(/\(.*?\)/g, "").trim();

export const xatabFormatter = (title: string) =>
  title
    .replace(/RePack от xatab|RePack от Decepticon|R.G. GOGFAN/, "")
    .replace(/[\u0400-\u04FF]/g, "")
    .replace(/(v\.?([0-9]| )+)+([0-9]|\.|-|_|\/|[a-zA-Z]| )+/, "");

export const tinyRepacksFormatter = (title: string) => title;
export const onlinefixFormatter = (title: string) =>
  title.replace("по сети", "").trim();

export const gogFormatter = (title: string) =>
  title.replace(/(v\.[0-9]+|v[0-9]+\.|v[0-9]{4})+.+/, "");
