153 lines
4.3 KiB
Groovy
Executable File
153 lines
4.3 KiB
Groovy
Executable File
|
|
def server=true
|
|
def root = '/series/'
|
|
def rutaSeries = root+'NSeries/'
|
|
def ruta_docu = root+'Series_docu/'
|
|
def ruta_animacion = root+'Series_animacion/'
|
|
def ruta_anime = root+'Series_anime/'
|
|
def ruta_antiguas = root+'Series_antiguas/'
|
|
def ruta_esp = root+'Series_esp'
|
|
def ruta_teen = root+'Series_familiar'
|
|
def ruta_infantil = root+'Series_infantil'
|
|
def ruta_programastv = root+'programas_tv'
|
|
|
|
def rutaKO = root+'error/'
|
|
def ruta = rutaSeries
|
|
|
|
|
|
/* otras funciones */
|
|
def tieneGeneroAnimacion (generos) {
|
|
for (genero in generos) {
|
|
if (genero =~ /Anima[c|t]i\p{L}n/)
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
def tieneGeneroAnime (generos) {
|
|
for (genero in generos) {
|
|
if (genero =~ /Anime/)
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
def tieneGeneroFamilia (generos) {
|
|
for (genero in generos) {
|
|
if (genero =~ /Familia|Family/)
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
def tieneGeneroDocumental (generos) {
|
|
for (genero in generos) {
|
|
if (genero =~ /Documental|Documentary/)
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
def tieneGeneroReality (generos) {
|
|
for (genero in generos) {
|
|
if (genero =~ /Reality/)
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
def normalitzarText(txt) {
|
|
return txt.replaceAll(':','.').replaceAll('\\?','¿').replaceAll('\\"','-')
|
|
}
|
|
/**/
|
|
|
|
|
|
try { //empieza el script
|
|
|
|
try{
|
|
media
|
|
} catch (err) {throw new Exception("[no_media]")}
|
|
|
|
|
|
/**************************************/
|
|
/**** Carpeta / tipo contenido *******/
|
|
def generes
|
|
def errorNoGenero=false
|
|
try {generes=genres} catch (err) {errorNoGenero=true}
|
|
def certificacio
|
|
try {certificacio=certification} catch (err) {}
|
|
def esDocu = tieneGeneroDocumental(generes)
|
|
def esAnime = anime || tieneGeneroAnime(generes)
|
|
def esAnimacion = tieneGeneroAnimacion(generes)
|
|
def esTeen = tieneGeneroFamilia(generes) && (certificacio==null || certificacio =~ /TV-14|TV-P?G/)
|
|
//return certificacio + " - " + generes + " - so: " + esTeen
|
|
def esInfantil = esAnimacion && certificacio =~ /TV-Y|TV-Y7|TV-P?G/
|
|
def esReality = tieneGeneroReality(generes)
|
|
//esp?
|
|
def esEsp=false
|
|
def spanishNetwork
|
|
try{ spanishNetwork = info.Network.find(/(?i)\bTVE\b|\bmovistar\b|\bAtresmedia\b|\bcanal 9\b|\bPlayz\b|\bATRES\b|\bETB1\b|\bTV3\b|\btelecinco\b|\bcanal+\b|\bgalicia\b|\bfox españa\b|\blasexta\b|\bantena 3\b/ )} catch(e){}
|
|
if (spanishNetwork!=null || Country=='esp') esEsp=true
|
|
//tria
|
|
/*if (tenimCat) ruta = ruta_cat
|
|
else */if (esDocu) ruta = ruta_docu
|
|
else if (esReality) ruta = ruta_programastv
|
|
else if (esAnime) ruta = ruta_anime
|
|
else if (esInfantil) ruta = ruta_infantil
|
|
else if (esAnimacion) ruta = ruta_animacion
|
|
else if (esEsp) ruta = ruta_esp
|
|
else if (y < 1990) ruta = ruta_antiguas
|
|
else if (esTeen) ruta = ruta_teen
|
|
/****************************************/
|
|
/****************************************/
|
|
|
|
/****************************/
|
|
/**** Nombre de fichero *******/
|
|
def cuaTvdb = " {tvdb-"+id+"}"
|
|
def nombreSerie = '/' + normalitzarText(localize.English.ny) + cuaTvdb + '/'
|
|
def temporada = episode.special ?
|
|
'Specials'+'/' :
|
|
'Temporada '+ s.pad(2) + '/'
|
|
|
|
/****************************/
|
|
/**** RUTA FINAL *******/
|
|
|
|
def resultado = ruta + nombreSerie + temporada + fn
|
|
return resultado
|
|
|
|
|
|
} catch (err) {
|
|
|
|
/*
|
|
String str= err.getStackTrace().toString()
|
|
def pattern = ( str =~ /groovy.(\d+)./ )
|
|
return " Error at line number = " + pattern[0][1]
|
|
*/
|
|
|
|
def rutaMotivoErr
|
|
def msgErr = err.getMessage()
|
|
if (msgErr=="[formato_fichero_noestarndar]" || msgErr=="[video_roto]" || msgErr=="[no_media]")
|
|
rutaMotivoErr="/fichero/"
|
|
else if (msgErr=="[genero_no_especificado]" || msgErr=="[certificado_edad_no_especificado]") {
|
|
rutaMotivoErr="/themoviedb/"
|
|
} else if (msgErr.startsWith("[idioma_audio")) {
|
|
rutaMotivoErr="/audio/"
|
|
} else if (msgErr.startsWith("[bitrate_demasiado_alto]")) {
|
|
rutaMotivoErr="/bitrate/"
|
|
} else {
|
|
def errSplitted = msgErr.split("\\-")
|
|
if (errSplitted==null) {
|
|
rutaMotivoErr="/error_desconocido/"
|
|
} else {
|
|
return msgErr
|
|
def errType = errSplitted[0]
|
|
if (errType=="[formato_audio_no_encontrado")
|
|
rutaMotivoErr="/audio/"
|
|
else if (errType.startsWith("[idioma_audio"))
|
|
rutaMotivoErr="/idioma/"
|
|
else {
|
|
rutaMotivoErr="/error_desconocido/"
|
|
msgErr = "[error_inesperado]"
|
|
}
|
|
}
|
|
}
|
|
|
|
def resultado = rutaKO + rutaMotivoErr + msgErr + '/' + fn
|
|
|
|
return resultado
|
|
} |