1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- import re
- class parser:
- def __init__(self):
- print("Address of self = ",id(self))
- def check_image_count(self,image_list, text):
- pair_obj = findTag(text)
- if pair_obj['code'] == 1:
- if len(image_list)!=len(pair_obj['pair']):
- return {'msg':'圖片與標籤數量不一致!','code':-1}
- else:
- return {code:1}
- else:
- return pair_obj
-
- def findTag(self,text):
- left_tag = [m.start() for m in re.finditer('{', text)]
- right_tag = [m.start() for m in re.finditer('}', text)]
- if len(left_tag)!=len(right_tag):
- return {'msg':'圖片標籤錯誤,左右數量不符','code':-1}
- pair = []
- for idx in range(len(left_tag)):
- pair.append({'left':left_tag[idx],'right':right_tag[idx]})
- obj = {'code':1,'pair':pair}
- return obj
- def replace_list(self,text):
- rep_ls = []
- pair_obj = self.findTag(text)
- for p in pair_obj['pair']:
- rep_ls.append(text[p['left']:p['right']+1])
- return rep_ls
-
- def image_clip_info(self,dict_in):
- #if 'image_idx' in dic:
- # new_dic['image_obj'] = {'start':dic['start'],'idx':dic['image_idx']}
- stopPoint = 0 # sec
- time_info = []
- img_idx = 1 #start from 1
- for dic in dict_in:
- if 'image_obj' in dic:
- time_info.append({'index':img_idx,'start':dic['start']})
- img_idx += 1
- stopPoint = dic['start']+dic['duration']
-
- for idx in range(len(time_info)-1):
- time_info[idx]['duration'] = time_info[idx+1]['start']-time_info[idx]['start']
- time_info[:-1]['duration'] = stopPoint
- #index start duration
- return time_info
-
-
|