Files
torrent-indexer/schema/audio.go
Felipe Marinho 455f734c8a Feat/Add post processors + refactor project (#37)
* chg: feat: clean known patterns from title

* chg: refactor: remove duplicated code, and improve maintainability

* chg: feat: add audio tagging post-processor

* chg: refactor: add generic parallelMap function

* chg: refactor: move more function to common locations

* chg: docs: add func docs
2025-07-24 01:03:38 -03:00

256 lines
4.8 KiB
Go

package schema
import "strings"
type Audio string
const (
AudioPortuguese = "Português"
AudioPortuguese2 = "Portugues"
AudioPortuguese3 = "PT-BR"
AudioPortuguese4 = "Dublado"
AudioEnglish = "Inglês"
AudioEnglish2 = "Ingles"
AudioSpanish = "Espanhol"
AudioFrench = "Francês"
AudioFrench2 = "Frances"
AudioGerman = "Alemão"
AudioGerman2 = "Alemao"
AudioItalian = "Italiano"
AudioJapanese = "Japonês"
AudioJapanese2 = "Japones"
AudioKorean = "Coreano"
AudioMandarin = "Mandarim"
AudioMandarin2 = "Chinês"
AudioMandarin3 = "Chines"
AudioRussian = "Russo"
AudioSwedish = "Sueco"
AudioSwedish2 = "Suéco"
AudioUkrainian = "Ucraniano"
AudioPolish = "Polaco"
AudioPolish2 = "Polonês"
AudioPolish3 = "Polones"
AudioThai = "Tailandês"
AudioThai2 = "Tailandes"
AudioTurkish = "Turco"
AudioHindi = "Hindi"
AudioFarsi = "Persa"
AudioFarsi2 = "Farsi"
AudioFarsi3 = "Iraniano"
AudioMalay = "Malaio"
AudioDutch = "Holandês"
AudioDutch2 = "Holandes"
AudioFinnish = "Finlandês"
AudioFinnish2 = "Finlandes"
AudioDanish = "Dinamarquês"
AudioDanish2 = "Dinamarques"
AudioNorwegian = "Norueguês"
AudioNorwegian2 = "Noruegues"
AudioIcelandic = "Islandês"
AudioIcelandic2 = "Islandes"
AudioGreek = "Grego"
AudioArabic = "Árabe"
AudioArabic2 = "Arabe"
AudioHebrew = "Hebraico"
AudioVietnamese = "Vietnamita"
AudioIndonesian = "Indonésio"
AudioIndonesian2 = "Indonesio"
AudioFilipino = "Filipino"
AudioBengali = "Bengali"
AudioTamil = "Tamil"
AudioTelugu = "Telugu"
AudioGujarati = "Gujarati"
AudioMarathi = "Marathi"
)
var AudioList = []Audio{
AudioPortuguese,
AudioPortuguese2,
AudioPortuguese3,
AudioPortuguese4,
AudioEnglish,
AudioEnglish2,
AudioSpanish,
AudioFrench,
AudioFrench2,
AudioGerman,
AudioGerman2,
AudioItalian,
AudioJapanese,
AudioJapanese2,
AudioKorean,
AudioMandarin,
AudioMandarin2,
AudioMandarin3,
AudioRussian,
AudioSwedish,
AudioSwedish2,
AudioUkrainian,
AudioPolish,
AudioPolish2,
AudioPolish3,
AudioThai,
AudioThai2,
AudioTurkish,
AudioHindi,
AudioFarsi,
AudioFarsi2,
AudioFarsi3,
AudioMalay,
AudioDutch,
AudioDutch2,
AudioFinnish,
AudioFinnish2,
AudioDanish,
AudioDanish2,
AudioNorwegian,
AudioNorwegian2,
AudioIcelandic,
AudioIcelandic2,
AudioGreek,
AudioArabic,
AudioArabic2,
AudioHebrew,
AudioVietnamese,
AudioIndonesian,
AudioIndonesian2,
AudioFilipino,
AudioBengali,
AudioTamil,
AudioTelugu,
AudioGujarati,
AudioMarathi,
}
func (a Audio) String() string {
return a.toTag()
}
func GetAudioFromString(s string) *Audio {
for _, a := range AudioList {
if strings.EqualFold(string(a), s) {
return &a
}
}
return nil
}
func (a Audio) toTag() string {
switch a {
case AudioPortuguese:
return "brazilian"
case AudioPortuguese2:
return "brazilian"
case AudioPortuguese3:
return "brazilian"
case AudioPortuguese4:
return "brazilian"
case AudioEnglish:
return "eng"
case AudioEnglish2:
return "eng"
case AudioSpanish:
return "spa"
case AudioFrench:
return "fra"
case AudioFrench2:
return "fra"
case AudioGerman:
return "deu"
case AudioGerman2:
return "deu"
case AudioItalian:
return "ita"
case AudioJapanese:
return "jpn"
case AudioJapanese2:
return "jpn"
case AudioKorean:
return "kor"
case AudioMandarin:
return "chi"
case AudioMandarin2:
return "chi"
case AudioMandarin3:
return "chi"
case AudioRussian:
return "rus"
case AudioSwedish:
return "swe"
case AudioSwedish2:
return "swe"
case AudioUkrainian:
return "ukr"
case AudioPolish:
return "pol"
case AudioPolish2:
return "pol"
case AudioPolish3:
return "pol"
case AudioThai:
return "tha"
case AudioThai2:
return "tha"
case AudioTurkish:
return "tur"
case AudioHindi:
return "hin"
case AudioFarsi:
return "fas"
case AudioFarsi2:
return "fas"
case AudioFarsi3:
return "fas"
case AudioMalay:
return "msa"
case AudioDutch:
return "nld"
case AudioDutch2:
return "nld"
case AudioFinnish:
return "fin"
case AudioFinnish2:
return "fin"
case AudioDanish:
return "dan"
case AudioDanish2:
return "dan"
case AudioNorwegian:
return "nor"
case AudioNorwegian2:
return "nor"
case AudioIcelandic:
return "isl"
case AudioIcelandic2:
return "isl"
case AudioGreek:
return "ell"
case AudioArabic:
return "ara"
case AudioArabic2:
return "ara"
case AudioHebrew:
return "heb"
case AudioVietnamese:
return "vie"
case AudioIndonesian:
return "ind"
case AudioIndonesian2:
return "ind"
case AudioFilipino:
return "fil"
case AudioBengali:
return "ben"
case AudioTamil:
return "tam"
case AudioTelugu:
return "tel"
case AudioGujarati:
return "guj"
case AudioMarathi:
return "mar"
default:
return ""
}
}