
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
}