#!/usr/bin/env python # -*- coding: utf-8 -*- #Author: Xu jia (sanfanling) #License:GPLv2.0 import re class lrc: def __init__(self,string): self.string=string def format(self,rule,simbol_1,simbol_2,simbol_3,horizontal=False): offsetList=re.search('\[offset:(.*?)\]',self.string) if(offsetList): try: self.offset=int(offsetList.group(1)) except: self.offset=0 else: self.offset=0 origin=re.findall('\[\d+:\d+.*?\n|\[\d+:\d+.*?$',self.string) new=[] for i in origin: part1=i.split(']')[-1] for j in re.findall('\[\d+:\d+.*?\]',i): new.append(j+part1) new1=[] for k in new: pp=k.split(']')[0][1:]#time tag, no ']' or '[' qq=k.split(']')[1].strip()#line of lyrics qq=re.sub('<|>','',qq) if(horizontal): if(qq==''): qq=' ' qq='!@#$%s' %qq else: if(qq==''): qq=' ' qq='

%s

' %qq searchGroup=re.search('(\d+):(\d+)(.*)',pp) a1=int(searchGroup.group(1))*60000 a2=int(searchGroup.group(2))*1000 try: tmp=searchGroup.group(3)[1:] a3=int(tmp)*10**(3-len(tmp)) except: a3=0 ms=str(a1+a2+a3-self.offset+10000000)+'$#$#'+qq new1.append(ms) new1.sort() tag=[] context=[] for e in new1: tag.append(int(e.split('$#$#')[0])-10000000) context.append(e.split('$#$#')[1]) ########## filter lyrics function ######### if(simbol_1=='yes'): cloneContext=context[:] lineIndex=-1 expre=unicode(rule,'utf8') if(simbol_3=='yes'): for l in cloneContext: lineIndex+=1 if(re.search(expre,l,re.I)): if(simbol_2=='yes'): if(horizontal): context[lineIndex]='!@#$ ' else: context[lineIndex]='

 

' else: del tag[lineIndex] del context[lineIndex] lineIndex-=1 else: for l in cloneContext: lineIndex+=1 if(re.search(expre,l)): if(simbol_2=='yes'): if(horizontal): context[lineIndex]='!@#$ ' else: context[lineIndex]='

 

' else: del tag[lineIndex] del context[lineIndex] lineIndex-=1 lrcFile='' for g in context: lrcFile=lrcFile+g return (tag,lrcFile)