#!/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]