mirror of
https://github.com/GopeedLab/gopeed.git
synced 2026-11-04 15:49:49 +00:00
297 lines
5.1 KiB
Dart
297 lines
5.1 KiB
Dart
findIcon(String filename) {
|
|
String res = 'file';
|
|
String ext = filename.substring(filename.lastIndexOf('.') + 1);
|
|
for (var iconMap in iconMaps) {
|
|
if (iconMap['extensions'].contains(ext)) {
|
|
res = iconMap['thumbnail'];
|
|
break;
|
|
}
|
|
}
|
|
return res;
|
|
}
|
|
|
|
const List iconMaps = [
|
|
//media
|
|
{
|
|
'extensions': [
|
|
'jpg',
|
|
'png',
|
|
'gif',
|
|
'bmp',
|
|
'jpeg',
|
|
'jpe',
|
|
'jif',
|
|
'jfif',
|
|
'jfi',
|
|
'webp',
|
|
'tiff',
|
|
'tif',
|
|
'ico',
|
|
'svg',
|
|
'webp'
|
|
],
|
|
'type': 'Image',
|
|
'thumbnail': 'file_image'
|
|
},
|
|
{
|
|
'extensions': [
|
|
'mp4',
|
|
'webm',
|
|
'mpg',
|
|
'mp2',
|
|
'mpeg',
|
|
'mpe',
|
|
'mpv',
|
|
'ocg',
|
|
'm4p',
|
|
'm4v',
|
|
'avi',
|
|
'wmv',
|
|
'mov',
|
|
'qt',
|
|
'flv',
|
|
'swf',
|
|
'mkv',
|
|
'rmvb',
|
|
'rm',
|
|
'vob',
|
|
'3gp',
|
|
'm4s',
|
|
'ts'
|
|
],
|
|
'type': 'Video',
|
|
'thumbnail': 'file_video'
|
|
},
|
|
{
|
|
'extensions': [
|
|
'mp3',
|
|
'ogg',
|
|
'ogm',
|
|
'wav',
|
|
'.aac',
|
|
'.ape',
|
|
'.flac',
|
|
'.flav',
|
|
'.m4a',
|
|
'.wma'
|
|
],
|
|
'type': 'Audio',
|
|
'thumbnail': 'file_audio'
|
|
},
|
|
//compressed
|
|
{
|
|
'extensions': [
|
|
'7z',
|
|
'brotli',
|
|
'bzip2',
|
|
'gz',
|
|
'gzip',
|
|
'rar',
|
|
'tgz',
|
|
'xz',
|
|
'zip',
|
|
'zstd',
|
|
'deb',
|
|
'msi',
|
|
'snap',
|
|
'iso',
|
|
'dmg',
|
|
'dockerfile',
|
|
'dockerignore'
|
|
],
|
|
'type': 'Archive',
|
|
'thumbnail': 'file_archive'
|
|
},
|
|
//office relative
|
|
{
|
|
'extensions': ['pdf'],
|
|
'type': 'Portable Document Format',
|
|
'thumbnail': 'file_pdf'
|
|
},
|
|
{
|
|
'extensions': ['txt', 'docb', 'rtf'],
|
|
'type': 'Document',
|
|
'thumbnail': 'doc_text'
|
|
},
|
|
{
|
|
'extensions': ['doc', 'docm', 'dot', 'dotm', 'docx'],
|
|
'type': 'Word Document',
|
|
'thumbnail': 'file_word'
|
|
},
|
|
|
|
{
|
|
'extensions': ['xlsx', 'xls', 'xlsb', 'xls', 'ods', 'fods', 'csv'],
|
|
'type': 'Excel Document',
|
|
'thumbnail': 'file_excel'
|
|
},
|
|
{
|
|
'extensions': [
|
|
'pot',
|
|
'potm',
|
|
'potx',
|
|
'ppam',
|
|
'pps',
|
|
'ppsm',
|
|
'ppsx',
|
|
'ppt',
|
|
'pptn',
|
|
'pptx'
|
|
],
|
|
'type': 'Powerpoint Document',
|
|
'thumbnail': 'file_powerpoint'
|
|
},
|
|
//windows
|
|
{
|
|
'extensions': ['exe'],
|
|
'type': 'Microsoft',
|
|
'thumbnail': 'windows'
|
|
},
|
|
//android
|
|
{
|
|
'extensions': ['apk'],
|
|
'type': 'Android',
|
|
'thumbnail': 'android'
|
|
},
|
|
//other
|
|
{
|
|
'extensions': ['lnk'],
|
|
'type': 'Shortcut',
|
|
'thumbnail': 'link_ext'
|
|
},
|
|
{
|
|
'extensions': [
|
|
'ini',
|
|
'dlc',
|
|
'config',
|
|
'conf',
|
|
'properties',
|
|
'prop',
|
|
'settings',
|
|
'option',
|
|
'props',
|
|
'toml',
|
|
'prefs',
|
|
'sln.dotsettings',
|
|
'sln.dotsettings.user',
|
|
'cfg'
|
|
],
|
|
'type': 'Settings',
|
|
'thumbnail': 'cog_alt'
|
|
},
|
|
{
|
|
'extensions': ['html', 'htm', 'xhtml', 'html_vm'],
|
|
'type': 'html',
|
|
'thumbnail': 'html5'
|
|
},
|
|
//code relative
|
|
// {
|
|
// 'extensions': ['sh', 'bat'],
|
|
// 'type': 'Batch',
|
|
// 'thumbnail': 'power_shell'
|
|
// },
|
|
// {
|
|
// 'extensions': [
|
|
// 'js',
|
|
// 'jsx',
|
|
// 'json',
|
|
// 'tsbuildinfo',
|
|
// 'json5',
|
|
// 'jsonl',
|
|
// 'ndjson'
|
|
// ],
|
|
// 'type': 'JavaScript',
|
|
// 'thumbnail': 'js'
|
|
// },
|
|
// {
|
|
// 'extensions': ['ts', 'tsx'],
|
|
// 'type': 'TypeScript',
|
|
// 'thumbnail': 'type_script_language'
|
|
// },
|
|
//
|
|
// {
|
|
// 'extensions': ['asp', 'aspx', 'php', 'jsp'],
|
|
// 'type': 'HyperText Markup Language',
|
|
// 'thumbnail': 'file_a_s_p_x'
|
|
// },
|
|
// {
|
|
// 'extensions': [
|
|
// 'accdb',
|
|
// 'db',
|
|
// 'db3',
|
|
// 'mdb',
|
|
// 'pdb',
|
|
// 'pgsql',
|
|
// 'pkb',
|
|
// 'pks',
|
|
// 'postgres',
|
|
// 'psql',
|
|
// 'sql',
|
|
// 'sqlite',
|
|
// 'sqlite3'
|
|
// ],
|
|
// 'type': 'Database',
|
|
// 'thumbnail': 'database'
|
|
// },
|
|
//
|
|
// {
|
|
// 'extensions': ['exe'],
|
|
// 'type': 'Executable',
|
|
// 'thumbnail': 'product'
|
|
// },
|
|
// {
|
|
// 'extensions': [
|
|
// 'c',
|
|
// 'h',
|
|
// 'cc',
|
|
// 'cpp',
|
|
// 'cxx',
|
|
// 'c++',
|
|
// 'cp',
|
|
// 'mm',
|
|
// 'mii',
|
|
// 'ii',
|
|
// 'dart',
|
|
// 'go'
|
|
// ],
|
|
// 'type': 'other Program language',
|
|
// 'thumbnail': 'file_code'
|
|
// },
|
|
// {
|
|
// 'extensions': ['py', 'py3', 'pyc', 'pylintrc', 'python-version'],
|
|
// 'type': 'Python Program',
|
|
// 'thumbnail': 'py'
|
|
// },
|
|
// {
|
|
// 'extensions': ['md', 'markdown', 'rst'],
|
|
// 'type': 'Markdown',
|
|
// 'thumbnail': 'mark_down_language'
|
|
// },
|
|
// {
|
|
// 'extensions': ['yml', 'yaml'],
|
|
// 'type': 'Yet Anoter Markup Language',
|
|
// 'thumbnail': 'file_y_m_l'
|
|
// },
|
|
//
|
|
// {
|
|
// 'type': 'Visual Studio',
|
|
// 'extensions': [
|
|
// 'csproj',
|
|
// 'ruleset',
|
|
// 'sln',
|
|
// 'suo',
|
|
// 'vb',
|
|
// 'vbs',
|
|
// 'vcxitems',
|
|
// 'vcxitems.filters',
|
|
// 'vcxproj',
|
|
// 'vcxproj.filters'
|
|
// ],
|
|
// 'thumbnail': 'visual_studio_for_windows'
|
|
// },
|
|
// {
|
|
// 'extensions': ['java'],
|
|
// 'type': 'Java Program',
|
|
// 'thumbnail': 'file_j_a_v_a'
|
|
// },
|
|
];
|