diff --git a/api/mime.py b/api/mime.py index a9af2c5931..69d7854118 100644 --- a/api/mime.py +++ b/api/mime.py @@ -1,424 +1,438 @@ - import os -mime_str = """ -3gp video/3gpp -aab application/x-authoware-bin -aam application/x-authoware-map -aas application/x-authoware-seg -ai application/postscript -aif audio/x-aiff -aifc audio/x-aiff -aiff audio/x-aiff -als audio/X-Alpha5 -amc application/x-mpeg -ani application/octet-stream -asc text/plain -asd application/astound -asf video/x-ms-asf -asn application/astound -asp application/x-asap -asx video/x-ms-asf -au audio/basic -avb application/octet-stream -avi video/x-msvideo -awb audio/amr-wb -bcpio application/x-bcpio -bin application/octet-stream -bld application/bld -bld2 application/bld2 -bmp application/x-MS-bmp -bpk application/octet-stream -bz2 application/x-bzip2 -cal image/x-cals -ccn application/x-cnc -cco application/x-cocoa -cdf application/x-netcdf -cgi magnus-internal/cgi -chat application/x-chat -class application/octet-stream -clp application/x-msclip -cmx application/x-cmx -co application/x-cult3d-object -cod image/cis-cod -cpio application/x-cpio -cpt application/mac-compactpro -crd application/x-mscardfile -csh application/x-csh -csm chemical/x-csml -csml chemical/x-csml -css text/css -cur application/octet-stream -dcm x-lml/x-evm -dcr application/x-director -dcx image/x-dcx -dhtml text/html -dir application/x-director -dll application/octet-stream -dmg application/octet-stream -dms application/octet-stream -doc application/msword -dot application/x-dot -dvi application/x-dvi -dwf drawing/x-dwf -dwg application/x-autocad -dxf application/x-autocad -dxr application/x-director -ebk application/x-expandedbook -emb chemical/x-embl-dl-nucleotide -embl chemical/x-embl-dl-nucleotide -eps application/postscript -epub application/epub+zip -eri image/x-eri -es audio/echospeech -esl audio/echospeech -etc application/x-earthtime -etx text/x-setext -evm x-lml/x-evm -evy application/x-envoy -exe application/octet-stream -fh4 image/x-freehand -fh5 image/x-freehand -fhc image/x-freehand -fif image/fif -fm application/x-maker -fpx image/x-fpx -fvi video/isivideo -gau chemical/x-gaussian-input -gca application/x-gca-compressed -gdb x-lml/x-gdb -gif image/gif -gps application/x-gps -gtar application/x-gtar -gz application/x-gzip -hdf application/x-hdf -hdm text/x-hdml -hdml text/x-hdml -hlp application/winhlp -hqx application/mac-binhex40 -htm text/html -html text/html -hts text/html -ice x-conference/x-cooltalk -ico application/octet-stream -ief image/ief -ifm image/gif -ifs image/ifs -imy audio/melody -ins application/x-NET-Install -ips application/x-ipscript -ipx application/x-ipix -it audio/x-mod -itz audio/x-mod -ivr i-world/i-vrml -j2k image/j2k -jad text/vnd.sun.j2me.app-descriptor -jam application/x-jam -jar application/java-archive -jnlp application/x-java-jnlp-file -jpe image/jpeg -jpeg image/jpeg -jpg image/jpeg -jpz image/jpeg -js application/x-javascript -jwc application/jwc -kjx application/x-kjx -lak x-lml/x-lak -latex application/x-latex -lcc application/fastman -lcl application/x-digitalloca -lcr application/x-digitalloca -lgh application/lgh -lha application/octet-stream -lml x-lml/x-lml -lmlpack x-lml/x-lmlpack -lsf video/x-ms-asf -lsx video/x-ms-asf -lzh application/x-lzh -m13 application/x-msmediaview -m14 application/x-msmediaview -m15 audio/x-mod -m3u audio/x-mpegurl -m3url audio/x-mpegurl -ma1 audio/ma1 -ma2 audio/ma2 -ma3 audio/ma3 -ma5 audio/ma5 -man application/x-troff-man -map magnus-internal/imagemap -mbd application/mbedlet -mct application/x-mascot -mdb application/x-msaccess -mdz audio/x-mod -me application/x-troff-me -mel text/x-vmel -mi application/x-mif -mid audio/midi -midi audio/midi -mif application/x-mif -mil image/x-cals -mio audio/x-mio -mmf application/x-skt-lbs -mng video/x-mng -mny application/x-msmoney -moc application/x-mocha -mocha application/x-mocha -mod audio/x-mod -mof application/x-yumekara -mol chemical/x-mdl-molfile -mop chemical/x-mopac-input -mov video/quicktime -movie video/x-sgi-movie -mp2 audio/x-mpeg -mp3 audio/x-mpeg -mp4 video/mp4 -mpc application/vnd.mpohun.certificate -mpe video/mpeg -mpeg video/mpeg -mpg video/mpeg -mpg4 video/mp4 -mpga audio/mpeg -mpn application/vnd.mophun.application -mpp application/vnd.ms-project -mps application/x-mapserver -mrl text/x-mrml -mrm application/x-mrm -ms application/x-troff-ms -mts application/metastream -mtx application/metastream -mtz application/metastream -mzv application/metastream -nar application/zip -nbmp image/nbmp -nc application/x-netcdf -ndb x-lml/x-ndb -ndwn application/ndwn -nif application/x-nif -nmz application/x-scream -nokia-op-logo image/vnd.nok-oplogo-color -npx application/x-netfpx -nsnd audio/nsnd -nva application/x-neva1 -oda application/oda -oom application/x-AtlasMate-Plugin -pac audio/x-pac -pae audio/x-epac -pan application/x-pan -pbm image/x-portable-bitmap -pcx image/x-pcx -pda image/x-pda -pdb chemical/x-pdb -pdf application/pdf -pfr application/font-tdpfr -pgm image/x-portable-graymap -pict image/x-pict -pm application/x-perl -pmd application/x-pmd -png image/png -pnm image/x-portable-anymap -pnz image/png -pot application/vnd.ms-powerpoint -ppm image/x-portable-pixmap -pps application/vnd.ms-powerpoint -ppt application/vnd.ms-powerpoint -pqf application/x-cprplayer -pqi application/cprplayer -prc application/x-prc -proxy application/x-ns-proxy-autoconfig -ps application/postscript -ptlk application/listenup -pub application/x-mspublisher -pvx video/x-pv-pvx -qcp audio/vnd.qcelp -qt video/quicktime -qti image/x-quicktime -qtif image/x-quicktime -r3t text/vnd.rn-realtext3d -ra audio/x-pn-realaudio -ram audio/x-pn-realaudio -rar application/octet-stream -ras image/x-cmu-raster -rdf application/rdf+xml -rf image/vnd.rn-realflash -rgb image/x-rgb -rlf application/x-richlink -rm audio/x-pn-realaudio -rmf audio/x-rmf -rmm audio/x-pn-realaudio -rmvb audio/x-pn-realaudio -rnx application/vnd.rn-realplayer -roff application/x-troff -rp image/vnd.rn-realpix -rpm audio/x-pn-realaudio-plugin -rt text/vnd.rn-realtext -rte x-lml/x-gps -rtf application/rtf -rtg application/metastream -rtx text/richtext -rv video/vnd.rn-realvideo -rwc application/x-rogerwilco -s3m audio/x-mod -s3z audio/x-mod -sca application/x-supercard -scd application/x-msschedule -sdf application/e-score -sea application/x-stuffit -sgm text/x-sgml -sgml text/x-sgml -sh application/x-sh -shar application/x-shar -shtml magnus-internal/parsed-html -shw application/presentations -si6 image/si6 -si7 image/vnd.stiwap.sis -si9 image/vnd.lgtwap.sis -sis application/vnd.symbian.install -sit application/x-stuffit -skd application/x-Koan -skm application/x-Koan -skp application/x-Koan -skt application/x-Koan -slc application/x-salsa -smd audio/x-smd -smi application/smil -smil application/smil -smp application/studiom -smz audio/x-smd -snd audio/basic -spc text/x-speech -spl application/futuresplash -spr application/x-sprite -sprite application/x-sprite -sdp application/sdp -spt application/x-spt -src application/x-wais-source -stk application/hyperstudio -stm audio/x-mod -sv4cpio application/x-sv4cpio -sv4crc application/x-sv4crc -svf image/vnd -svg image/svg-xml -svh image/svh -svr x-world/x-svr -swf application/x-shockwave-flash -swfl application/x-shockwave-flash -t application/x-troff -tad application/octet-stream -talk text/x-speech -tar application/x-tar -taz application/x-tar -tbp application/x-timbuktu -tbt application/x-timbuktu -tcl application/x-tcl -tex application/x-tex -texi application/x-texinfo -texinfo application/x-texinfo -tgz application/x-tar -thm application/vnd.eri.thm -tif image/tiff -tiff image/tiff -tki application/x-tkined -tkined application/x-tkined -toc application/toc -toy image/toy -tr application/x-troff -trk x-lml/x-gps -trm application/x-msterminal -tsi audio/tsplayer -tsp application/dsptype -tsv text/tab-separated-values -ttf application/octet-stream -ttz application/t-time -txt text/plain -ult audio/x-mod -ustar application/x-ustar -uu application/x-uuencode -uue application/x-uuencode -vcd application/x-cdlink -vcf text/x-vcard -vdo video/vdo -vib audio/vib -viv video/vivo -vivo video/vivo -vmd application/vocaltec-media-desc -vmf application/vocaltec-media-file -vmi application/x-dreamcast-vms-info -vms application/x-dreamcast-vms -vox audio/voxware -vqe audio/x-twinvq-plugin -vqf audio/x-twinvq -vql audio/x-twinvq -vre x-world/x-vream -vrml x-world/x-vrml -vrt x-world/x-vrt -vrw x-world/x-vream -vts workbook/formulaone -wav audio/x-wav -wax audio/x-ms-wax -wbmp image/vnd.wap.wbmp -web application/vnd.xara -wi image/wavelet -wis application/x-InstallShield -wm video/x-ms-wm -wma audio/x-ms-wma -wmd application/x-ms-wmd -wmf application/x-msmetafile -wml text/vnd.wap.wml -wmlc application/vnd.wap.wmlc -wmls text/vnd.wap.wmlscript -wmlsc application/vnd.wap.wmlscriptc -wmlscript text/vnd.wap.wmlscript -wmv video/x-ms-wmv -wmx video/x-ms-wmx -wmz application/x-ms-wmz -wpng image/x-up-wpng -wpt x-lml/x-gps -wri application/x-mswrite -wrl x-world/x-vrml -wrz x-world/x-vrml -ws text/vnd.wap.wmlscript -wsc application/vnd.wap.wmlscriptc -wv video/wavelet -wvx video/x-ms-wvx -wxl application/x-wxl -x-gzip application/x-gzip -xar application/vnd.xara -xbm image/x-xbitmap -xdm application/x-xdma -xdma application/x-xdma -xdw application/vnd.fujixerox.docuworks -xht application/xhtml+xml -xhtm application/xhtml+xml -xhtml application/xhtml+xml -xla application/vnd.ms-excel -xlc application/vnd.ms-excel -xll application/x-excel -xlm application/vnd.ms-excel -xls application/vnd.ms-excel -xlt application/vnd.ms-excel -xlw application/vnd.ms-excel -xm audio/x-mod -xml text/xml -xmz audio/x-mod -xpi application/x-xpinstall -xpm image/x-xpixmap -xsit text/xml -xsl text/xml -xul text/xul -xwd image/x-xwindowdump -xyz chemical/x-pdb -yz1 application/x-yz1 -z application/x-compress -zac application/x-zaurus-zac -zip application/zip -""" - -MIME_MAP = {} - -for line in mime_str.splitlines(): - pair = line.split() - if len(pair) == 2: - MIME_MAP[pair[0]] = pair[1] +MIME_MAP = { + '3gp': 'video/3gpp', + 'aab': 'application/x-authoware-bin', + 'aam': 'application/x-authoware-map', + 'aas': 'application/x-authoware-seg', + 'ai': 'application/postscript', + 'aif': 'audio/x-aiff', + 'aifc': 'audio/x-aiff', + 'aiff': 'audio/x-aiff', + 'als': 'audio/X-Alpha5', + 'amc': 'application/x-mpeg', + 'ani': 'application/octet-stream', + 'asc': 'text/plain', + 'asd': 'application/astound', + 'asf': 'video/x-ms-asf', + 'asn': 'application/astound', + 'asp': 'application/x-asap', + 'asx': 'video/x-ms-asf', + 'au': 'audio/basic', + 'avb': 'application/octet-stream', + 'avi': 'video/x-msvideo', + 'awb': 'audio/amr-wb', + 'bcpio': 'application/x-bcpio', + 'bin': 'application/octet-stream', + 'bld': 'application/bld', + 'bld2': 'application/bld2', + 'bmp': 'application/x-MS-bmp', + 'bpk': 'application/octet-stream', + 'bz2': 'application/x-bzip2', + 'c': 'text/x-c', + 'cal': 'image/x-cals', + 'cc': 'text/x-c++', + 'ccn': 'application/x-cnc', + 'cco': 'application/x-cocoa', + 'cdf': 'application/x-netcdf', + 'cgi': 'magnus-internal/cgi', + 'chat': 'application/x-chat', + 'class': 'application/octet-stream', + 'clp': 'application/x-msclip', + 'cmx': 'application/x-cmx', + 'co': 'application/x-cult3d-object', + 'cod': 'image/cis-cod', + 'cpio': 'application/x-cpio', + 'cpp': 'text/x-c++', + 'cpt': 'application/mac-compactpro', + 'crd': 'application/x-mscardfile', + 'cs': 'text/x-csharp', + 'csh': 'text/x-csh', + 'csm': 'chemical/x-csml', + 'csml': 'chemical/x-csml', + 'css': 'text/css', + 'cur': 'application/octet-stream', + 'dcm': 'x-lml/x-evm', + 'dcr': 'application/x-director', + 'dcx': 'image/x-dcx', + 'dhtml': 'text/html', + 'dir': 'application/x-director', + 'dll': 'application/octet-stream', + 'dmg': 'application/octet-stream', + 'dms': 'application/octet-stream', + 'doc': 'application/msword', + 'docx': 'application/msword', + 'dot': 'application/x-dot', + 'dvi': 'application/x-dvi', + 'dwf': 'drawing/x-dwf', + 'dwg': 'application/x-autocad', + 'dxf': 'application/x-autocad', + 'dxr': 'application/x-director', + 'ebk': 'application/x-expandedbook', + 'emb': 'chemical/x-embl-dl-nucleotide', + 'embl': 'chemical/x-embl-dl-nucleotide', + 'eps': 'application/postscript', + 'epub': 'application/epub+zip', + 'eri': 'image/x-eri', + 'es': 'audio/echospeech', + 'esl': 'audio/echospeech', + 'etc': 'application/x-earthtime', + 'etx': 'text/x-setext', + 'evm': 'x-lml/x-evm', + 'evy': 'application/x-envoy', + 'exe': 'application/octet-stream', + 'fh4': 'image/x-freehand', + 'fh5': 'image/x-freehand', + 'fhc': 'image/x-freehand', + 'fif': 'image/fif', + 'fm': 'application/x-maker', + 'fpx': 'image/x-fpx', + 'fvi': 'video/isivideo', + 'gau': 'chemical/x-gaussian-input', + 'gca': 'application/x-gca-compressed', + 'gdb': 'x-lml/x-gdb', + 'gif': 'image/gif', + 'gps': 'application/x-gps', + 'gtar': 'application/x-gtar', + 'gz': 'application/x-gzip', + 'h': 'text/x-c++hdr', + 'hdf': 'application/x-hdf', + 'hdm': 'text/x-hdml', + 'hdml': 'text/x-hdml', + 'hlp': 'application/winhlp', + 'hqx': 'application/mac-binhex40', + 'htm': 'text/html', + 'html': 'text/html', + 'hts': 'text/html', + 'ice': 'x-conference/x-cooltalk', + 'ico': 'application/octet-stream', + 'ief': 'image/ief', + 'ifm': 'image/gif', + 'ifs': 'image/ifs', + 'imy': 'audio/melody', + 'ins': 'application/x-NET-Install', + 'ips': 'application/x-ipscript', + 'ipx': 'application/x-ipix', + 'it': 'audio/x-mod', + 'itz': 'audio/x-mod', + 'ivr': 'i-world/i-vrml', + 'j2k': 'image/j2k', + 'jad': 'text/vnd.sun.j2me.app-descriptor', + 'jam': 'application/x-jam', + 'jar': 'application/java-archive', + 'jnlp': 'application/x-java-jnlp-file', + 'jpe': 'image/jpeg', + 'jpeg': 'image/jpeg', + 'jpg': 'image/jpeg', + 'jpz': 'image/jpeg', + 'js': 'application/x-javascript', + 'jwc': 'application/jwc', + 'kjx': 'application/x-kjx', + 'lak': 'x-lml/x-lak', + 'latex': 'application/x-latex', + 'lcc': 'application/fastman', + 'lcl': 'application/x-digitalloca', + 'lcr': 'application/x-digitalloca', + 'lgh': 'application/lgh', + 'lha': 'application/octet-stream', + 'lml': 'x-lml/x-lml', + 'lmlpack': 'x-lml/x-lmlpack', + 'lsf': 'video/x-ms-asf', + 'lsx': 'video/x-ms-asf', + 'lzh': 'application/x-lzh', + 'm13': 'application/x-msmediaview', + 'm14': 'application/x-msmediaview', + 'm15': 'audio/x-mod', + 'm3u': 'audio/x-mpegurl', + 'm3url': 'audio/x-mpegurl', + 'm4': 'application/x-m4', + 'ma1': 'audio/ma1', + 'ma2': 'audio/ma2', + 'ma3': 'audio/ma3', + 'ma5': 'audio/ma5', + 'man': 'application/x-troff-man', + 'map': 'magnus-internal/imagemap', + 'markdown': 'text/x-markdown', + 'mbd': 'application/mbedlet', + 'mct': 'application/x-mascot', + 'md': 'text/x-markdown', + 'mdb': 'application/x-msaccess', + 'mdz': 'audio/x-mod', + 'me': 'application/x-troff-me', + 'mel': 'text/x-vmel', + 'mi': 'application/x-mif', + 'mid': 'audio/midi', + 'midi': 'audio/midi', + 'mif': 'application/x-mif', + 'mil': 'image/x-cals', + 'mio': 'audio/x-mio', + 'mmf': 'application/x-skt-lbs', + 'mng': 'video/x-mng', + 'mny': 'application/x-msmoney', + 'moc': 'application/x-mocha', + 'mocha': 'application/x-mocha', + 'mod': 'audio/x-mod', + 'mof': 'application/x-yumekara', + 'mol': 'chemical/x-mdl-molfile', + 'mop': 'chemical/x-mopac-input', + 'mov': 'video/quicktime', + 'movie': 'video/x-sgi-movie', + 'mp2': 'audio/x-mpeg', + 'mp3': 'audio/x-mpeg', + 'mp4': 'video/mp4', + 'mpc': 'application/vnd.mpohun.certificate', + 'mpe': 'video/mpeg', + 'mpeg': 'video/mpeg', + 'mpg': 'video/mpeg', + 'mpg4': 'video/mp4', + 'mpga': 'audio/mpeg', + 'mpn': 'application/vnd.mophun.application', + 'mpp': 'application/vnd.ms-project', + 'mps': 'application/x-mapserver', + 'mrl': 'text/x-mrml', + 'mrm': 'application/x-mrm', + 'ms': 'application/x-troff-ms', + 'mts': 'application/metastream', + 'mtx': 'application/metastream', + 'mtz': 'application/metastream', + 'mzv': 'application/metastream', + 'nar': 'application/zip', + 'nbmp': 'image/nbmp', + 'nc': 'application/x-netcdf', + 'ndb': 'x-lml/x-ndb', + 'ndwn': 'application/ndwn', + 'nif': 'application/x-nif', + 'nmz': 'application/x-scream', + 'nokia-op-logo': 'image/vnd.nok-oplogo-color', + 'npx': 'application/x-netfpx', + 'nsnd': 'audio/nsnd', + 'nva': 'application/x-neva1', + 'oda': 'application/oda', + 'odb': 'application/vnd.oasis.opendocument.database', + 'odf': 'application/vnd.oasis.opendocument.formula', + 'odg': 'application/vnd.oasis.opendocument.graphics', + 'odi': 'application/vnd.oasis.opendocument.image', + 'odp': 'application/vnd.oasis.opendocument.presentation', + 'ods': 'application/vnd.oasis.opendocument.spreadsheet', + 'odt': 'application/vnd.oasis.opendocument.text', + 'oom': 'application/x-AtlasMate-Plugin', + 'oth': 'application/vnd.oasis.opendocument.text-web', + 'pac': 'audio/x-pac', + 'pae': 'audio/x-epac', + 'pan': 'application/x-pan', + 'pbm': 'image/x-portable-bitmap', + 'pcx': 'image/x-pcx', + 'pda': 'image/x-pda', + 'pdb': 'chemical/x-pdb', + 'pdf': 'application/pdf', + 'pfr': 'application/font-tdpfr', + 'pgm': 'image/x-portable-graymap', + 'php': 'application/x-php', + 'pict': 'image/x-pict', + 'pm': 'application/x-perl', + 'pmd': 'application/x-pmd', + 'png': 'image/png', + 'pnm': 'image/x-portable-anymap', + 'pnz': 'image/png', + 'pot': 'application/vnd.ms-powerpoint', + 'ppm': 'image/x-portable-pixmap', + 'pps': 'application/vnd.ms-powerpoint', + 'ppt': 'application/vnd.ms-powerpoint', + 'pptx': 'application/vnd.ms-powerpoint', + 'pqf': 'application/x-cprplayer', + 'pqi': 'application/cprplayer', + 'prc': 'application/x-prc', + 'proxy': 'application/x-ns-proxy-autoconfig', + 'ps': 'application/postscript', + 'ptlk': 'application/listenup', + 'pub': 'application/x-mspublisher', + 'pvx': 'video/x-pv-pvx', + 'py': 'text/x-python', + 'pyc': 'application/x-python-bytecode', + 'qcp': 'audio/vnd.qcelp', + 'qt': 'video/quicktime', + 'qti': 'image/x-quicktime', + 'qtif': 'image/x-quicktime', + 'r3t': 'text/vnd.rn-realtext3d', + 'ra': 'audio/x-pn-realaudio', + 'ram': 'audio/x-pn-realaudio', + 'rar': 'application/x-rar', + 'ras': 'image/x-cmu-raster', + 'rdf': 'application/rdf+xml', + 'rf': 'image/vnd.rn-realflash', + 'rgb': 'image/x-rgb', + 'rlf': 'application/x-richlink', + 'rm': 'audio/x-pn-realaudio', + 'rmf': 'audio/x-rmf', + 'rmm': 'audio/x-pn-realaudio', + 'rmvb': 'audio/x-pn-realaudio', + 'rnx': 'application/vnd.rn-realplayer', + 'roff': 'application/x-troff', + 'rp': 'image/vnd.rn-realpix', + 'rpm': 'audio/x-pn-realaudio-plugin', + 'rt': 'text/vnd.rn-realtext', + 'rte': 'x-lml/x-gps', + 'rtf': 'application/rtf', + 'rtg': 'application/metastream', + 'rtx': 'text/richtext', + 'rv': 'video/vnd.rn-realvideo', + 'rwc': 'application/x-rogerwilco', + 's3m': 'audio/x-mod', + 's3z': 'audio/x-mod', + 'sca': 'application/x-supercard', + 'scd': 'application/x-msschedule', + 'sdf': 'application/e-score', + 'sdp': 'application/sdp', + 'sea': 'application/x-stuffit', + 'sgm': 'text/x-sgml', + 'sgml': 'text/x-sgml', + 'sh': 'text/x-sh', + 'shar': 'application/x-shar', + 'shtml': 'magnus-internal/parsed-html', + 'shw': 'application/presentations', + 'si6': 'image/si6', + 'si7': 'image/vnd.stiwap.sis', + 'si9': 'image/vnd.lgtwap.sis', + 'sis': 'application/vnd.symbian.install', + 'sit': 'application/x-stuffit', + 'skd': 'application/x-Koan', + 'skm': 'application/x-Koan', + 'skp': 'application/x-Koan', + 'skt': 'application/x-Koan', + 'slc': 'application/x-salsa', + 'smd': 'audio/x-smd', + 'smi': 'application/smil', + 'smil': 'application/smil', + 'smp': 'application/studiom', + 'smz': 'audio/x-smd', + 'snd': 'audio/basic', + 'spc': 'text/x-speech', + 'spl': 'application/futuresplash', + 'spr': 'application/x-sprite', + 'sprite': 'application/x-sprite', + 'spt': 'application/x-spt', + 'src': 'application/x-wais-source', + 'stk': 'application/hyperstudio', + 'stm': 'audio/x-mod', + 'sv4cpio': 'application/x-sv4cpio', + 'sv4crc': 'application/x-sv4crc', + 'svf': 'image/vnd', + 'svg': 'image/svg-xml', + 'svh': 'image/svh', + 'svr': 'x-world/x-svr', + 'swf': 'application/x-shockwave-flash', + 'swfl': 'application/x-shockwave-flash', + 't': 'application/x-troff', + 'tad': 'application/octet-stream', + 'talk': 'text/x-speech', + 'tar': 'application/x-tar', + 'taz': 'application/x-tar', + 'tbp': 'application/x-timbuktu', + 'tbt': 'application/x-timbuktu', + 'tcl': 'application/x-tcl', + 'tex': 'application/x-tex', + 'texi': 'application/x-texinfo', + 'texinfo': 'application/x-texinfo', + 'tgz': 'application/x-tar', + 'thm': 'application/vnd.eri.thm', + 'tif': 'image/tiff', + 'tiff': 'image/tiff', + 'tki': 'application/x-tkined', + 'tkined': 'application/x-tkined', + 'toc': 'application/toc', + 'toy': 'image/toy', + 'tr': 'application/x-troff', + 'trk': 'x-lml/x-gps', + 'trm': 'application/x-msterminal', + 'tsi': 'audio/tsplayer', + 'tsp': 'application/dsptype', + 'tsv': 'text/tab-separated-values', + 'ttf': 'application/octet-stream', + 'ttz': 'application/t-time', + 'txt': 'text/plain', + 'ult': 'audio/x-mod', + 'ustar': 'application/x-ustar', + 'uu': 'application/x-uuencode', + 'uue': 'application/x-uuencode', + 'vcd': 'application/x-cdlink', + 'vcf': 'text/x-vcard', + 'vdo': 'video/vdo', + 'vib': 'audio/vib', + 'viv': 'video/vivo', + 'vivo': 'video/vivo', + 'vmd': 'application/vocaltec-media-desc', + 'vmf': 'application/vocaltec-media-file', + 'vmi': 'application/x-dreamcast-vms-info', + 'vms': 'application/x-dreamcast-vms', + 'vox': 'audio/voxware', + 'vqe': 'audio/x-twinvq-plugin', + 'vqf': 'audio/x-twinvq', + 'vql': 'audio/x-twinvq', + 'vre': 'x-world/x-vream', + 'vrml': 'x-world/x-vrml', + 'vrt': 'x-world/x-vrt', + 'vrw': 'x-world/x-vream', + 'vts': 'workbook/formulaone', + 'wav': 'audio/x-wav', + 'wax': 'audio/x-ms-wax', + 'wbmp': 'image/vnd.wap.wbmp', + 'web': 'application/vnd.xara', + 'wi': 'image/wavelet', + 'wis': 'application/x-InstallShield', + 'wm': 'video/x-ms-wm', + 'wma': 'audio/x-ms-wma', + 'wmd': 'application/x-ms-wmd', + 'wmf': 'application/x-msmetafile', + 'wml': 'text/vnd.wap.wml', + 'wmlc': 'application/vnd.wap.wmlc', + 'wmls': 'text/vnd.wap.wmlscript', + 'wmlsc': 'application/vnd.wap.wmlscriptc', + 'wmlscript': 'text/vnd.wap.wmlscript', + 'wmv': 'video/x-ms-wmv', + 'wmx': 'video/x-ms-wmx', + 'wmz': 'application/x-ms-wmz', + 'wpng': 'image/x-up-wpng', + 'wpt': 'x-lml/x-gps', + 'wri': 'application/x-mswrite', + 'wrl': 'x-world/x-vrml', + 'wrz': 'x-world/x-vrml', + 'ws': 'text/vnd.wap.wmlscript', + 'wsc': 'application/vnd.wap.wmlscriptc', + 'wv': 'video/wavelet', + 'wvx': 'video/x-ms-wvx', + 'wxl': 'application/x-wxl', + 'x-gzip': 'application/x-gzip', + 'xar': 'application/vnd.xara', + 'xbm': 'image/x-xbitmap', + 'xdm': 'application/x-xdma', + 'xdma': 'application/x-xdma', + 'xdw': 'application/vnd.fujixerox.docuworks', + 'xht': 'application/xhtml+xml', + 'xhtm': 'application/xhtml+xml', + 'xhtml': 'application/xhtml+xml', + 'xla': 'application/vnd.ms-excel', + 'xlc': 'application/vnd.ms-excel', + 'xll': 'application/x-excel', + 'xlm': 'application/vnd.ms-excel', + 'xls': 'application/vnd.ms-excel', + 'xlt': 'application/vnd.ms-excel', + 'xlw': 'application/vnd.ms-excel', + 'xm': 'audio/x-mod', + 'xml': 'text/xml', + 'xmz': 'audio/x-mod', + 'xpi': 'application/x-xpinstall', + 'xpm': 'image/x-xpixmap', + 'xsit': 'text/xml', + 'xsl': 'text/xml', + 'xul': 'text/xul', + 'xwd': 'image/x-xwindowdump', + 'xyz': 'chemical/x-pdb', + 'yz1': 'application/x-yz1', + 'z': 'application/x-compress', + 'zac': 'application/x-zaurus-zac', + 'zip': 'application/zip', + 'zsh': 'text/x-zsh' + } def get_file_mime(name): try: @@ -429,5 +443,6 @@ def get_file_mime(name): except Exception, e: return None + if __name__ == "__main__": print MIME_MAP diff --git a/api/views.py b/api/views.py index 98db65adc2..1d0f659eca 100644 --- a/api/views.py +++ b/api/views.py @@ -49,11 +49,12 @@ json_content_type = 'application/json; charset=utf-8' HTTP_ERRORS = { '400':'Bad arguments', - '401':'Repo is not encrypted', + '401':'Login required', '402':'Incorrect password', '403':'Can not access repo', '404':'Repo not found', '405':'Query password set error', + '406':'Repo is not encrypted', '407':'Method not supported', '408':'Login failed', '410':'Path does not exist', @@ -76,6 +77,7 @@ HTTP_ERRORS = { def api_error(request, code='499', msg=None): err_resp = { 'error_msg': msg if msg is not None else HTTP_ERRORS[code] } + print "===============,", code, err_resp return HttpResponse(json.dumps(err_resp), status=code, content_type=json_content_type) @@ -89,10 +91,7 @@ def api_user_passes_test(test_func): def _wrapped_view(obj, request, *args, **kwargs): if test_func(request.user): return view_func(obj, request, *args, **kwargs) - json_content_type = 'application/json; charset=utf-8' - - return HttpResponse(json.dumps('login required'), status=401, - content_type=json_content_type) + return api_error (request, '401') return wraps(view_func, assigned=available_attrs(view_func))(_wrapped_view) return decorator @@ -191,7 +190,7 @@ def set_repo_password(request, repo, password): if e.msg == 'Bad arguments': return api_error(request, '400') elif e.msg == 'Repo is not encrypted': - return api_error(request, '401') + return api_error(request, '406') elif e.msg == 'Incorrect password': return api_error(request, '402') elif e.msg == 'Internal server error':