1
0
Fork 0
filebot-presets/common/audio.groovy

39 lines
1.3 KiB
Groovy
Executable File

/** AUDIO (ejecución) **/
def bloqueAudio=''
def audiosMap = [:]
for (aud in audio) {
def shortDesc = aud.Language_String3 !=null ? aud.Language_String3
: aud.Title!=null ? (aud.Title=~/(?i).+spa.+/?'spa': aud.Title.substring(0,3).toLowerCase()) : 'und'
if (aud.Title!=null && aud.Title=~/(?i).*latin.*/) shortDesc='lat'
audiosMap[shortDesc] = audiosMap[shortDesc] ?: [:]
audiosMap[shortDesc][aud.Format] = audiosMap[shortDesc][aud.Format] ?: []
audiosMap[shortDesc][aud.Format] << aud
}
def groupedAudiosMap = [:]
for (audioElms in audiosMap) {
def k = audioElms.key
def v = audioElms.value
if (!k.contains('+') && countAudiosInMap(v)>1) k += '+'
def mQ = getMaxQuality(v)
def mQstr = (mQ==null || mQ.isEmpty()) ? 'und' : printAudio(mQ)
if (groupedAudiosMap.containsKey(mQstr)) groupedAudiosMap[mQstr].add(k)
else groupedAudiosMap[mQstr] = [k]
}
audiosMap=null
def temp=''
for (audioGroup in groupedAudiosMap) {
def k = audioGroup.key
def v = audioGroup.value
def gS = v.size()
def str=''
for (int i=0; i<gS; i++) {
str += (v[i]!=null?v[i]:'und') +', '
if (i==gS-1) {
str = removeLastComa(str)+' '
str += k+', '
}
}
bloqueAudio += str
}
groupedAudiosMap=null
bloqueAudio = '['+removeLastComa(bloqueAudio)+']'