Files
2019-01-16 20:23:02 +08:00

266 lines
3.9 KiB
Python

#!/usr/bin/env python
# encoding: utf-8
import os
FILE_TYPE_KEYS = {
'ogv': 0,
'mp4': 0,
'mpg': 0,
'mpeg': 0,
'avi': 0,
'rm': 0,
'rmvb': 0,
'mov': 0,
'wmv': 0,
'asf': 0,
'dat': 0,
'mkv': 0,
'asx': 0,
'wvx': 0,
'm2v': 0,
'lza': 0,
'mlv': 0,
'ivf': 0,
'flc': 0,
'fla': 0,
'fsp': 0,
'dvm': 0,
'dvd': 0,
'dv': 0,
'dir': 0,
'dif': 0,
'dff': 0,
'cmf': 0,
'cel': 0,
'byu': 0,
'at': 0,
'anim': 0,
'anm': 0,
'fli': 0,
'flt': 0,
'gl': 0,
'mng': 0,
'mpv': 0,
'msl': 0,
'qt': 0,
'qtx': 0,
'rgb': 0,
'spl': 0,
'spa': 0,
'str': 0,
'viv': 0,
'vivo': 0,
'yuv': 0,
'xas': 0,
'mpe': 0,
'vob': 0,
'flv': 0,
'divx': 0,
'3gp': 0,
'swf': 0,
'f4v': 0,
'ts': 0,
'm2ts': 0,
'm4v': 0,
'srt': 0,
'ac3': 0,
'mmm': 0,
'm1v': 0,
'tp': 0,
'3g2': 0,
'oga': 1,
'mp3': 1,
'wma': 1,
'flac': 1,
'ape': 1,
'wav': 1,
'midi': 1,
'ogg': 1,
'aac': 1,
'amr': 1,
'aif': 1,
'au': 1,
'm4p': 1,
'm4r': 1,
'm4a': 1,
'm4b': 1,
'mp1': 1,
'mp2': 1,
'm3u': 1,
'pls': 1,
'ra': 1,
'mpa': 1,
'snd': 1,
'voc': 1,
'ins': 1,
'cda': 1,
'mid': 1,
'vqf': 1,
'ram': 1,
'wax': 1,
'png': 2,
'jpg': 2,
'jpeg': 2,
'gif': 2,
'ico': 2,
'ilbm': 2,
'lbm': 2,
'iff': 2,
'ppm': 2,
'tif': 2,
'webp': 2,
'gifv': 2,
'bmp': 2,
'tiff': 2,
'psd': 2,
'svg': 2,
'pcx': 2,
'dxf': 2,
'emf': 2,
'raw': 2,
'wmf': 2,
'pcd': 2,
'azw3': 3,
'mobi': 3,
'azw': 3,
'pdf': 3,
'chm': 3,
'txt': 3,
'epub': 3,
'prc': 3,
'azw1': 3,
'azk': 3,
'doc': 3,
'docx': 3,
'ppt': 3,
'pptx': 3,
'rtf': 3,
'tex': 3,
'ltx': 3,
'wps': 3,
'odf': 3,
'mht': 3,
'mhtml': 3,
'html': 3,
'htm': 3,
'shtml': 3,
'xhtml': 3,
'hlp': 3,
'xls': 3,
'xlsx': 3,
'cbz': 3,
'cbr': 3,
'cb7': 3,
'cba': 3,
'cbt': 3,
'djvu': 3,
'fb2': 3,
'py': 3,
'js': 3,
'pl': 3,
'xml': 3,
'csv': 3,
'asp': 3,
'exe': 4,
'com': 4,
'bin': 4,
'dll': 4,
'a': 4,
'so': 4,
'msi': 4,
'cmd': 4,
'apk': 4,
'jar': 4,
'crx': 4,
'lnk': 4,
'cer': 4,
'crt': 4,
'der': 4,
'vbs': 4,
'bat': 4,
'reg': 4,
'rgss3a': 4,
'nsa': 4,
'obb': 4,
'inf': 4,
'sav': 4,
'srm': 4,
'ress': 4,
'nes': 4,
'tga': 4,
'pak': 4,
'wolf': 4,
'ttf': 4,
'otf': 4,
'fon': 4,
'rpgsave': 4,
'rvdata2': 4,
'rvdata': 4,
'rpgmvp': 4,
'gmk': 4,
'gm6': 4,
'rar': 5,
'zip': 5,
'7z': 5,
'arj': 5,
'gz': 5,
'z': 5,
'iso': 5,
'tar': 5,
'01': 5,
'001': 5,
'r01': 5,
'r001': 5,
'z01': 5,
'z001': 5,
'isz': 5,
'r02': 5,
'r03': 5,
'dmg': 5,
'tgz': 5,
'chd': 5,
'cab': 5,
'cdr': 5,
'wbs': 5,
'lzma': 5,
'mds': 5,
'gho': 5,
'ima': 5,
'nrg': 5,
'pkg': 5,
'b5i': 5,
'mdx': 5,
'vmdk': 5,
'sql': 5,
'ace': 5,
'bzip2': 5,
'gzip': 5,
'hqx': 5,
}
def get_file_type(l):
"""
获取资源类型,根据后缀名粗略的将资源分为以下7种:
0: 视频
1: 音频
2: 图片
3: 文档
4: 二进制文件
5: 存档文件
6: 未知
:param l: MetadataModel中的l
:return:
"""
t = [0 for _ in range(7)]
for x in l:
n = os.path.splitext(x.get('n').lower())[1][1:]
try:
p = FILE_TYPE_KEYS[n]
except KeyError:
p = 6
t[p] += x.get('l') * (10 if p == 4 else 1)
return sorted(range(len(t)), key=lambda k: t[k], reverse=True)[0]