summaryrefslogtreecommitdiffstats
path: root/deluge/ui/webui/templates/ajax/static/js/deluge-mime.js
blob: 7b75acab3f20b70d670ada603e4905b8a74e5c20 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
/*
Script: deluge-mime.js
    Library for converting mimetypes to extensions and vica versa.

License:
    General Public License v3

Copyright:
    Damien Churchill (c) 2008 <damoxc@gmail.com>


    Object: Deluge.Mime
        Object containing all mime related functions.

*/

Deluge.Mime = {
    types_map: new Hash({
        '.doc':      'application/msword',
        '.dot':      'application/msword',
        '.wiz':      'application/msword',
        '.a':        'application/octet-stream',
        '.bin':      'application/octet-stream',
        '.dll':      'application/octet-stream',
        '.exe':      'application/octet-stream',
        '.o':        'application/octet-stream',
        '.obj':      'application/octet-stream',
        '.so':       'application/octet-stream',
        '.oda':      'application/oda',
        '.pdf':      'application/pdf',
        '.p7c':      'application/pkcs7-mime',
        '.ai':       'application/postscript',
        '.eps':      'application/postscript',
        '.ps':       'application/postscript',
        '.xlb':      'application/vnd.ms-excel',
        '.xls':      'application/vnd.ms-excel',
        '.pot':      'application/vnd.ms-powerpoint',
        '.ppa':      'application/vnd.ms-powerpoint',
        '.pps':      'application/vnd.ms-powerpoint',
        '.ppt':      'application/vnd.ms-powerpoint',
        '.pwz':      'application/vnd.ms-powerpoint',
        '.bcpio':    'application/x-bcpio',
        '.cpio':     'application/x-cpio',
        '.csh':      'application/x-csh',
        '.dvi':      'application/x-dvi',
        '.gtar':     'application/x-gtar',
        '.hdf':      'application/x-hdf',
        '.js':       'application/x-javascript',
        '.latex':    'application/x-latex',
        '.mif':      'application/x-mif',
        '.cdf':      'application/x-netcdf',
        '.nc':       'application/x-netcdf',
        '.p12':      'application/x-pkcs12',
        '.pfx':      'application/x-pkcs12',
        '.ram':      'application/x-pn-realaudio',
        '.pyc':      'application/x-python-code',
        '.pyo':      'application/x-python-code',
        '.sh':       'application/x-sh',
        '.shar':     'application/x-shar',
        '.swf':      'application/x-shockwave-flash',
        '.sv4cpio':  'application/x-sv4cpio',
        '.sv4crc':   'application/x-sv4crc',
        '.tar':      'application/x-tar',
        '.tcl':      'application/x-tcl',
        '.tex':      'application/x-tex',
        '.texi':     'application/x-texinfo',
        '.texinfo':  'application/x-texinfo',
        '.roff':     'application/x-troff',
        '.t':        'application/x-troff',
        '.tr':       'application/x-troff',
        '.man':      'application/x-troff-man',
        '.me':       'application/x-troff-me',
        '.ms':       'application/x-troff-ms',
        '.ustar':    'application/x-ustar',
        '.src':      'application/x-wais-source',
        '.rdf':      'application/xml',
        '.wsdl':     'application/xml',
        '.xpdl':     'application/xml',
        '.xsl':      'application/xml',
        '.zip':      'application/zip',
        '.au':       'audio/basic',
        '.snd':      'audio/basic',
        '.mp2':      'audio/mpeg',
        '.mp3':      'audio/mpeg',
        '.aif':      'audio/x-aiff',
        '.aifc':     'audio/x-aiff',
        '.aiff':     'audio/x-aiff',
        '.ra':       'audio/x-pn-realaudio',
        '.wav':      'audio/x-wav',
        '.gif':      'image/gif',
        '.ief':      'image/ief',
        '.jpe':      'image/jpeg',
        '.jpeg':     'image/jpeg',
        '.jpg':      'image/jpeg',
        '.png':      'image/png',
        '.tif':      'image/tiff',
        '.tiff':     'image/tiff',
        '.ras':      'image/x-cmu-raster',
        '.bmp':      'image/x-ms-bmp',
        '.pnm':      'image/x-portable-anymap',
        '.pbm':      'image/x-portable-bitmap',
        '.pgm':      'image/x-portable-graymap',
        '.ppm':      'image/x-portable-pixmap',
        '.rgb':      'image/x-rgb',
        '.xbm':      'image/x-xbitmap',
        '.xpm':      'image/x-xpixmap',
        '.xwd':      'image/x-xwindowdump',
        '.eml':      'message/rfc822',
        '.mht':      'message/rfc822',
        '.mhtml':    'message/rfc822',
        '.nws':      'message/rfc822',
        '.css':      'text/css',
        '.htm':      'text/html',
        '.html':     'text/html',
        '.bat':      'text/plain',
        '.c':        'text/plain',
        '.h':        'text/plain',
        '.ksh':      'text/plain',
        '.pl':       'text/plain',
        '.txt':      'text/plain',
        '.rtx':      'text/richtext',
        '.tsv':      'text/tab-separated-values',
        '.py':       'text/x-python',
        '.etx':      'text/x-setext',
        '.sgm':      'text/x-sgml',
        '.sgml':     'text/x-sgml',
        '.vcf':      'text/x-vcard',
        '.xml':      'text/xml',
        '.m1v':      'video/mpeg',
        '.mpa':      'video/mpeg',
        '.mpe':      'video/mpeg',
        '.mpeg':     'video/mpeg',
        '.mpg':      'video/mpeg',
        '.mov':      'video/quicktime',
        '.qt':       'video/quicktime',
        '.avi':      'video/x-msvideo',
        '.movie':    'video/x-sgi-movie'
    }),
    
    getMimeType: function(filename) {
        var extension = filename.match(/^.*(\.\w+)$/)
        if (extension) extension = extension[1]
        else return null;
        
        if (this.types_map.has(extension)) return this.types_map[extension];
        else return null;
    }
}