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 }