Add sH5V
sH5V project: https://github.com/910JQK/sH5V This commit merges pull request #1
This commit is contained in:
		
							parent
							
								
									6926b88eab
								
							
						
					
					
						commit
						f6d4e06c34
					
				
					 1 changed files with 28 additions and 1 deletions
				
			
		|  | @ -91,6 +91,13 @@ def ProbeCommentFormat(f): | |||
|     if tmp == '[': | ||||
|         f.seek(0) | ||||
|         return 'Acfun' | ||||
|     elif tmp == '{': | ||||
|         tmp = f.read(17) | ||||
|         f.seek(0) | ||||
|         if tmp == '"root":{"total":"': | ||||
|             return 'sH5V' | ||||
|         else: | ||||
|             return None | ||||
|     elif tmp == '<': | ||||
|         tmp = f.read(39) | ||||
|         f.seek(0) | ||||
|  | @ -172,6 +179,26 @@ def ReadCommentsBilibili(f, fontsize): | |||
|             continue | ||||
| 
 | ||||
| 
 | ||||
| def ReadCommentsSH5V (f, fontsize): | ||||
|     'Output format: [(timeline, timestamp, no, comment, pos, color, size, height, width)]' | ||||
|     comment_element = json.load(f) | ||||
|     i = 0 | ||||
|     for comment in comment_element["root"]["bgs"] : | ||||
|         try: | ||||
|             c_at = str(comment['at']) | ||||
|             c_type = str(comment['type']) | ||||
|             c_date = str(comment['timestamp']) | ||||
|             c_color = str(comment['color']) | ||||
|             c = str(comment['text']) | ||||
|             size = fontsize | ||||
|             #print(c_at,' ',round(float(c_at),2),' ',c) | ||||
|             yield (float(c_at), int(c_date), i, c, {'0': 0, '1': 0, '4': 2, '5': 1}[c_type], int(c_color[1:],16), size, (c.count('\n')+1)*size, CalculateLength(c)*size) | ||||
|             i += 1 | ||||
|         except (AssertionError, AttributeError, IndexError, TypeError, ValueError): | ||||
|             logging.warning(_('Invalid comment: %r') % comment) | ||||
|             continue | ||||
| 
 | ||||
| 
 | ||||
| def ConvertTimestamp(timestamp): | ||||
|     hour, minute = divmod(timestamp, 3600) | ||||
|     minute, second = divmod(minute, 60) | ||||
|  | @ -232,7 +259,7 @@ if __name__ == '__main__': | |||
|     comments = [] | ||||
|     for i in args.file: | ||||
|         with open(i, 'r', encoding='utf-8') as f: | ||||
|             CommentProcesser = {None: None, 'Niconico': ReadCommentsNiconico, 'Acfun': ReadCommentsAcfun, 'Bilibili': ReadCommentsBilibili}[ProbeCommentFormat(f)] | ||||
|             CommentProcesser = {None: None, 'Niconico': ReadCommentsNiconico, 'Acfun': ReadCommentsAcfun, 'Bilibili': ReadCommentsBilibili, 'sH5V': ReadCommentsSH5V}[ProbeCommentFormat(f)] | ||||
|             if not CommentProcesser: | ||||
|                 raise ValueError(_('Unknown comment file format: %s') % i) | ||||
|             for comment in CommentProcesser(f, args.fontsize): | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 910JQK
						910JQK