| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 | 
							- 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
 
-         added_idx = []
 
-         for dic in dict_in:
 
-             if 'image_obj' in dic :
 
-                 if dic['image_obj']['idx'] not in added_idx:
 
-                     added_idx.append(dic['image_obj']['idx'])
 
-                     time_info.append({'index':img_idx,'start':dic['start']})
 
-                     img_idx += 1
 
-             if dic['start']+dic['duration'] > stopPoint:
 
-                 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 - time_info[-1]['start']
 
-         #index start duration
 
-         return time_info               
 
 
  |