From f6335674cc2380c00699cca12224b36ab4faeeb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=81=8D=E5=85=AE=E6=83=9A=E5=85=AE?= <1173718158@qq.com> Date: Wed, 25 Dec 2024 19:18:14 +0800 Subject: [PATCH] . --- .../cishu/file-extension-to-mime-types.json | 819 ++++++++++++++++++ py/LunaTranslator/cishu/mdict.py | 54 +- 2 files changed, 861 insertions(+), 12 deletions(-) create mode 100644 py/LunaTranslator/cishu/file-extension-to-mime-types.json diff --git a/py/LunaTranslator/cishu/file-extension-to-mime-types.json b/py/LunaTranslator/cishu/file-extension-to-mime-types.json new file mode 100644 index 00000000..97e5959e --- /dev/null +++ b/py/LunaTranslator/cishu/file-extension-to-mime-types.json @@ -0,0 +1,819 @@ +{ + ".123" : "application/vnd.lotus-1-2-3", + ".3dml" : "text/vnd.in3d.3dml", + ".3g2" : "video/3gpp2", + ".3gp" : "video/3gpp", + ".a" : "application/octet-stream", + ".aab" : "application/x-authorware-bin", + ".aac" : "audio/x-aac", + ".aam" : "application/x-authorware-map", + ".aas" : "application/x-authorware-seg", + ".abw" : "application/x-abiword", + ".acc" : "application/vnd.americandynamics.acc", + ".ace" : "application/x-ace-compressed", + ".acu" : "application/vnd.acucobol", + ".acutc" : "application/vnd.acucorp", + ".adp" : "audio/adpcm", + ".aep" : "application/vnd.audiograph", + ".afm" : "application/x-font-type1", + ".afp" : "application/vnd.ibm.modcap", + ".ai" : "application/postscript", + ".aif" : "audio/x-aiff", + ".aifc" : "audio/x-aiff", + ".aiff" : "audio/x-aiff", + ".air" : "application/vnd.adobe.air-application-installer-package+zip", + ".ami" : "application/vnd.amiga.ami", + ".apk" : "application/vnd.android.package-archive", + ".application" : "application/x-ms-application", + ".apr" : "application/vnd.lotus-approach", + ".asc" : "application/pgp-signature", + ".asf" : "video/x-ms-asf", + ".asm" : "text/x-asm", + ".aso" : "application/vnd.accpac.simply.aso", + ".asx" : "video/x-ms-asf", + ".atc" : "application/vnd.acucorp", + ".atom" : "application/atom+xml", + ".atomcat" : "application/atomcat+xml", + ".atomsvc" : "application/atomsvc+xml", + ".atx" : "application/vnd.antix.game-component", + ".au" : "audio/basic", + ".avi" : "video/x-msvideo", + ".aw" : "application/applixware", + ".azf" : "application/vnd.airzip.filesecure.azf", + ".azs" : "application/vnd.airzip.filesecure.azs", + ".azw" : "application/vnd.amazon.ebook", + ".bat" : "application/x-msdownload", + ".bcpio" : "application/x-bcpio", + ".bdf" : "application/x-font-bdf", + ".bdm" : "application/vnd.syncml.dm+wbxml", + ".bh2" : "application/vnd.fujitsu.oasysprs", + ".bin" : "application/octet-stream", + ".bmi" : "application/vnd.bmi", + ".bmp" : "image/bmp", + ".book" : "application/vnd.framemaker", + ".box" : "application/vnd.previewsystems.box", + ".boz" : "application/x-bzip2", + ".bpk" : "application/octet-stream", + ".btif" : "image/prs.btif", + ".bz" : "application/x-bzip", + ".bz2" : "application/x-bzip2", + ".c" : "text/x-c", + ".c4d" : "application/vnd.clonk.c4group", + ".c4f" : "application/vnd.clonk.c4group", + ".c4g" : "application/vnd.clonk.c4group", + ".c4p" : "application/vnd.clonk.c4group", + ".c4u" : "application/vnd.clonk.c4group", + ".cab" : "application/vnd.ms-cab-compressed", + ".car" : "application/vnd.curl.car", + ".cat" : "application/vnd.ms-pki.seccat", + ".cc" : "text/x-c", + ".cct" : "application/x-director", + ".ccxml" : "application/ccxml+xml", + ".cdbcmsg" : "application/vnd.contact.cmsg", + ".cdf" : "application/x-netcdf", + ".cdkey" : "application/vnd.mediastation.cdkey", + ".cdx" : "chemical/x-cdx", + ".cdxml" : "application/vnd.chemdraw+xml", + ".cdy" : "application/vnd.cinderella", + ".cer" : "application/pkix-cert", + ".cgm" : "image/cgm", + ".chat" : "application/x-chat", + ".chm" : "application/vnd.ms-htmlhelp", + ".chrt" : "application/vnd.kde.kchart", + ".cif" : "chemical/x-cif", + ".cii" : "application/vnd.anser-web-certificate-issue-initiation", + ".cil" : "application/vnd.ms-artgalry", + ".cla" : "application/vnd.claymore", + ".class" : "application/java-vm", + ".clkk" : "application/vnd.crick.clicker.keyboard", + ".clkp" : "application/vnd.crick.clicker.palette", + ".clkt" : "application/vnd.crick.clicker.template", + ".clkw" : "application/vnd.crick.clicker.wordbank", + ".clkx" : "application/vnd.crick.clicker", + ".clp" : "application/x-msclip", + ".cmc" : "application/vnd.cosmocaller", + ".cmdf" : "chemical/x-cmdf", + ".cml" : "chemical/x-cml", + ".cmp" : "application/vnd.yellowriver-custom-menu", + ".cmx" : "image/x-cmx", + ".cod" : "application/vnd.rim.cod", + ".com" : "application/x-msdownload", + ".conf" : "text/plain", + ".cpio" : "application/x-cpio", + ".cpp" : "text/x-c", + ".cpt" : "application/mac-compactpro", + ".crd" : "application/x-mscardfile", + ".crl" : "application/pkix-crl", + ".crt" : "application/x-x509-ca-cert", + ".csh" : "application/x-csh", + ".csml" : "chemical/x-csml", + ".csp" : "application/vnd.commonspace", + ".css" : "text/css", + ".cst" : "application/x-director", + ".csv" : "text/csv", + ".cu" : "application/cu-seeme", + ".curl" : "text/vnd.curl", + ".cww" : "application/prs.cww", + ".cxt" : "application/x-director", + ".cxx" : "text/x-c", + ".daf" : "application/vnd.mobius.daf", + ".dataless" : "application/vnd.fdsn.seed", + ".davmount" : "application/davmount+xml", + ".dcr" : "application/x-director", + ".dcurl" : "text/vnd.curl.dcurl", + ".dd2" : "application/vnd.oma.dd2+xml", + ".ddd" : "application/vnd.fujixerox.ddd", + ".deb" : "application/x-debian-package", + ".def" : "text/plain", + ".deploy" : "application/octet-stream", + ".der" : "application/x-x509-ca-cert", + ".dfac" : "application/vnd.dreamfactory", + ".dic" : "text/x-c", + ".diff" : "text/plain", + ".dir" : "application/x-director", + ".dis" : "application/vnd.mobius.dis", + ".dist" : "application/octet-stream", + ".distz" : "application/octet-stream", + ".djv" : "image/vnd.djvu", + ".djvu" : "image/vnd.djvu", + ".dll" : "application/x-msdownload", + ".dmg" : "application/octet-stream", + ".dms" : "application/octet-stream", + ".dna" : "application/vnd.dna", + ".doc" : "application/msword", + ".docm" : "application/vnd.ms-word.document.macroenabled.12", + ".docx" : "application/vnd.openxmlformats-officedocument.wordprocessingml.document", + ".dot" : "application/msword", + ".dotm" : "application/vnd.ms-word.template.macroenabled.12", + ".dotx" : "application/vnd.openxmlformats-officedocument.wordprocessingml.template", + ".dp" : "application/vnd.osgi.dp", + ".dpg" : "application/vnd.dpgraph", + ".dsc" : "text/prs.lines.tag", + ".dtb" : "application/x-dtbook+xml", + ".dtd" : "application/xml-dtd", + ".dts" : "audio/vnd.dts", + ".dtshd" : "audio/vnd.dts.hd", + ".dump" : "application/octet-stream", + ".dvi" : "application/x-dvi", + ".dwf" : "model/vnd.dwf", + ".dwg" : "image/vnd.dwg", + ".dxf" : "image/vnd.dxf", + ".dxp" : "application/vnd.spotfire.dxp", + ".dxr" : "application/x-director", + ".ecelp4800" : "audio/vnd.nuera.ecelp4800", + ".ecelp7470" : "audio/vnd.nuera.ecelp7470", + ".ecelp9600" : "audio/vnd.nuera.ecelp9600", + ".ecma" : "application/ecmascript", + ".edm" : "application/vnd.novadigm.edm", + ".edx" : "application/vnd.novadigm.edx", + ".efif" : "application/vnd.picsel", + ".ei6" : "application/vnd.pg.osasli", + ".elc" : "application/octet-stream", + ".eml" : "message/rfc822", + ".emma" : "application/emma+xml", + ".eol" : "audio/vnd.digital-winds", + ".eot" : "application/vnd.ms-fontobject", + ".eps" : "application/postscript", + ".epub" : "application/epub+zip", + ".es3" : "application/vnd.eszigno3+xml", + ".esf" : "application/vnd.epson.esf", + ".et3" : "application/vnd.eszigno3+xml", + ".etx" : "text/x-setext", + ".exe" : "application/x-msdownload", + ".ext" : "application/vnd.novadigm.ext", + ".ez" : "application/andrew-inset", + ".ez2" : "application/vnd.ezpix-album", + ".ez3" : "application/vnd.ezpix-package", + ".f" : "text/x-fortran", + ".f4v" : "video/x-f4v", + ".f77" : "text/x-fortran", + ".f90" : "text/x-fortran", + ".fbs" : "image/vnd.fastbidsheet", + ".fdf" : "application/vnd.fdf", + ".fe_launch" : "application/vnd.denovo.fcselayout-link", + ".fg5" : "application/vnd.fujitsu.oasysgp", + ".fgd" : "application/x-director", + ".fh" : "image/x-freehand", + ".fh4" : "image/x-freehand", + ".fh5" : "image/x-freehand", + ".fh7" : "image/x-freehand", + ".fhc" : "image/x-freehand", + ".fig" : "application/x-xfig", + ".fli" : "video/x-fli", + ".flo" : "application/vnd.micrografx.flo", + ".flv" : "video/x-flv", + ".flw" : "application/vnd.kde.kivio", + ".flx" : "text/vnd.fmi.flexstor", + ".fly" : "text/vnd.fly", + ".fm" : "application/vnd.framemaker", + ".fnc" : "application/vnd.frogans.fnc", + ".for" : "text/x-fortran", + ".fpx" : "image/vnd.fpx", + ".frame" : "application/vnd.framemaker", + ".fsc" : "application/vnd.fsc.weblaunch", + ".fst" : "image/vnd.fst", + ".ftc" : "application/vnd.fluxtime.clip", + ".fti" : "application/vnd.anser-web-funds-transfer-initiation", + ".fvt" : "video/vnd.fvt", + ".fzs" : "application/vnd.fuzzysheet", + ".g3" : "image/g3fax", + ".gac" : "application/vnd.groove-account", + ".gdl" : "model/vnd.gdl", + ".geo" : "application/vnd.dynageo", + ".gex" : "application/vnd.geometry-explorer", + ".ggb" : "application/vnd.geogebra.file", + ".ggt" : "application/vnd.geogebra.tool", + ".ghf" : "application/vnd.groove-help", + ".gif" : "image/gif", + ".gim" : "application/vnd.groove-identity-message", + ".gmx" : "application/vnd.gmx", + ".gnumeric" : "application/x-gnumeric", + ".gph" : "application/vnd.flographit", + ".gqf" : "application/vnd.grafeq", + ".gqs" : "application/vnd.grafeq", + ".gram" : "application/srgs", + ".gre" : "application/vnd.geometry-explorer", + ".grv" : "application/vnd.groove-injector", + ".grxml" : "application/srgs+xml", + ".gsf" : "application/x-font-ghostscript", + ".gtar" : "application/x-gtar", + ".gtm" : "application/vnd.groove-tool-message", + ".gtw" : "model/vnd.gtw", + ".gv" : "text/vnd.graphviz", + ".gz" : "application/x-gzip", + ".h" : "text/x-c", + ".h261" : "video/h261", + ".h263" : "video/h263", + ".h264" : "video/h264", + ".hbci" : "application/vnd.hbci", + ".hdf" : "application/x-hdf", + ".hh" : "text/x-c", + ".hlp" : "application/winhlp", + ".hpgl" : "application/vnd.hp-hpgl", + ".hpid" : "application/vnd.hp-hpid", + ".hps" : "application/vnd.hp-hps", + ".hqx" : "application/mac-binhex40", + ".htke" : "application/vnd.kenameaapp", + ".htm" : "text/html", + ".html" : "text/html", + ".hvd" : "application/vnd.yamaha.hv-dic", + ".hvp" : "application/vnd.yamaha.hv-voice", + ".hvs" : "application/vnd.yamaha.hv-script", + ".icc" : "application/vnd.iccprofile", + ".ice" : "x-conference/x-cooltalk", + ".icm" : "application/vnd.iccprofile", + ".ico" : "image/x-icon", + ".ics" : "text/calendar", + ".ief" : "image/ief", + ".ifb" : "text/calendar", + ".ifm" : "application/vnd.shana.informed.formdata", + ".iges" : "model/iges", + ".igl" : "application/vnd.igloader", + ".igs" : "model/iges", + ".igx" : "application/vnd.micrografx.igx", + ".iif" : "application/vnd.shana.informed.interchange", + ".imp" : "application/vnd.accpac.simply.imp", + ".ims" : "application/vnd.ms-ims", + ".in" : "text/plain", + ".ipk" : "application/vnd.shana.informed.package", + ".irm" : "application/vnd.ibm.rights-management", + ".irp" : "application/vnd.irepository.package+xml", + ".iso" : "application/octet-stream", + ".itp" : "application/vnd.shana.informed.formtemplate", + ".ivp" : "application/vnd.immervision-ivp", + ".ivu" : "application/vnd.immervision-ivu", + ".jad" : "text/vnd.sun.j2me.app-descriptor", + ".jam" : "application/vnd.jam", + ".jar" : "application/java-archive", + ".java" : "text/x-java-source", + ".jisp" : "application/vnd.jisp", + ".jlt" : "application/vnd.hp-jlyt", + ".jnlp" : "application/x-java-jnlp-file", + ".joda" : "application/vnd.joost.joda-archive", + ".jpe" : "image/jpeg", + ".jpeg" : "image/jpeg", + ".jpg" : "image/jpeg", + ".jpgm" : "video/jpm", + ".jpgv" : "video/jpeg", + ".jpm" : "video/jpm", + ".js" : "application/javascript", + ".json" : "application/json", + ".kar" : "audio/midi", + ".karbon" : "application/vnd.kde.karbon", + ".kfo" : "application/vnd.kde.kformula", + ".kia" : "application/vnd.kidspiration", + ".kil" : "application/x-killustrator", + ".kml" : "application/vnd.google-earth.kml+xml", + ".kmz" : "application/vnd.google-earth.kmz", + ".kne" : "application/vnd.kinar", + ".knp" : "application/vnd.kinar", + ".kon" : "application/vnd.kde.kontour", + ".kpr" : "application/vnd.kde.kpresenter", + ".kpt" : "application/vnd.kde.kpresenter", + ".ksh" : "text/plain", + ".ksp" : "application/vnd.kde.kspread", + ".ktr" : "application/vnd.kahootz", + ".ktz" : "application/vnd.kahootz", + ".kwd" : "application/vnd.kde.kword", + ".kwt" : "application/vnd.kde.kword", + ".latex" : "application/x-latex", + ".lbd" : "application/vnd.llamagraphics.life-balance.desktop", + ".lbe" : "application/vnd.llamagraphics.life-balance.exchange+xml", + ".les" : "application/vnd.hhe.lesson-player", + ".lha" : "application/octet-stream", + ".link66" : "application/vnd.route66.link66+xml", + ".list" : "text/plain", + ".list3820" : "application/vnd.ibm.modcap", + ".listafp" : "application/vnd.ibm.modcap", + ".log" : "text/plain", + ".lostxml" : "application/lost+xml", + ".lrf" : "application/octet-stream", + ".lrm" : "application/vnd.ms-lrm", + ".ltf" : "application/vnd.frogans.ltf", + ".lvp" : "audio/vnd.lucent.voice", + ".lwp" : "application/vnd.lotus-wordpro", + ".lzh" : "application/octet-stream", + ".m13" : "application/x-msmediaview", + ".m14" : "application/x-msmediaview", + ".m1v" : "video/mpeg", + ".m2a" : "audio/mpeg", + ".m2v" : "video/mpeg", + ".m3a" : "audio/mpeg", + ".m3u" : "audio/x-mpegurl", + ".m4u" : "video/vnd.mpegurl", + ".m4v" : "video/x-m4v", + ".ma" : "application/mathematica", + ".mag" : "application/vnd.ecowin.chart", + ".maker" : "application/vnd.framemaker", + ".man" : "text/troff", + ".mathml" : "application/mathml+xml", + ".mb" : "application/mathematica", + ".mbk" : "application/vnd.mobius.mbk", + ".mbox" : "application/mbox", + ".mc1" : "application/vnd.medcalcdata", + ".mcd" : "application/vnd.mcd", + ".mcurl" : "text/vnd.curl.mcurl", + ".mdb" : "application/x-msaccess", + ".mdi" : "image/vnd.ms-modi", + ".me" : "text/troff", + ".mesh" : "model/mesh", + ".mfm" : "application/vnd.mfmp", + ".mgz" : "application/vnd.proteus.magazine", + ".mht" : "message/rfc822", + ".mhtml" : "message/rfc822", + ".mid" : "audio/midi", + ".midi" : "audio/midi", + ".mif" : "application/vnd.mif", + ".mime" : "message/rfc822", + ".mj2" : "video/mj2", + ".mjp2" : "video/mj2", + ".mlp" : "application/vnd.dolby.mlp", + ".mmd" : "application/vnd.chipnuts.karaoke-mmd", + ".mmf" : "application/vnd.smaf", + ".mmr" : "image/vnd.fujixerox.edmics-mmr", + ".mny" : "application/x-msmoney", + ".mobi" : "application/x-mobipocket-ebook", + ".mov" : "video/quicktime", + ".movie" : "video/x-sgi-movie", + ".mp2" : "audio/mpeg", + ".mp2a" : "audio/mpeg", + ".mp3" : "audio/mpeg", + ".mp4" : "video/mp4", + ".mp4a" : "audio/mp4", + ".mp4s" : "application/mp4", + ".mp4v" : "video/mp4", + ".mpa" : "video/mpeg", + ".mpc" : "application/vnd.mophun.certificate", + ".mpe" : "video/mpeg", + ".mpeg" : "video/mpeg", + ".mpg" : "video/mpeg", + ".mpg4" : "video/mp4", + ".mpga" : "audio/mpeg", + ".mpkg" : "application/vnd.apple.installer+xml", + ".mpm" : "application/vnd.blueice.multipass", + ".mpn" : "application/vnd.mophun.application", + ".mpp" : "application/vnd.ms-project", + ".mpt" : "application/vnd.ms-project", + ".mpy" : "application/vnd.ibm.minipay", + ".mqy" : "application/vnd.mobius.mqy", + ".mrc" : "application/marc", + ".ms" : "text/troff", + ".mscml" : "application/mediaservercontrol+xml", + ".mseed" : "application/vnd.fdsn.mseed", + ".mseq" : "application/vnd.mseq", + ".msf" : "application/vnd.epson.msf", + ".msh" : "model/mesh", + ".msi" : "application/x-msdownload", + ".msl" : "application/vnd.mobius.msl", + ".msty" : "application/vnd.muvee.style", + ".mts" : "model/vnd.mts", + ".mus" : "application/vnd.musician", + ".musicxml" : "application/vnd.recordare.musicxml+xml", + ".mvb" : "application/x-msmediaview", + ".mwf" : "application/vnd.mfer", + ".mxf" : "application/mxf", + ".mxl" : "application/vnd.recordare.musicxml", + ".mxml" : "application/xv+xml", + ".mxs" : "application/vnd.triscape.mxs", + ".mxu" : "video/vnd.mpegurl", + ".n-gage" : "application/vnd.nokia.n-gage.symbian.install", + ".nb" : "application/mathematica", + ".nc" : "application/x-netcdf", + ".ncx" : "application/x-dtbncx+xml", + ".ngdat" : "application/vnd.nokia.n-gage.data", + ".nlu" : "application/vnd.neurolanguage.nlu", + ".nml" : "application/vnd.enliven", + ".nnd" : "application/vnd.noblenet-directory", + ".nns" : "application/vnd.noblenet-sealer", + ".nnw" : "application/vnd.noblenet-web", + ".npx" : "image/vnd.net-fpx", + ".nsf" : "application/vnd.lotus-notes", + ".nws" : "message/rfc822", + ".o" : "application/octet-stream", + ".oa2" : "application/vnd.fujitsu.oasys2", + ".oa3" : "application/vnd.fujitsu.oasys3", + ".oas" : "application/vnd.fujitsu.oasys", + ".obd" : "application/x-msbinder", + ".obj" : "application/octet-stream", + ".oda" : "application/oda", + ".odb" : "application/vnd.oasis.opendocument.database", + ".odc" : "application/vnd.oasis.opendocument.chart", + ".odf" : "application/vnd.oasis.opendocument.formula", + ".odft" : "application/vnd.oasis.opendocument.formula-template", + ".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", + ".oga" : "audio/ogg", + ".ogg" : "audio/ogg", + ".ogv" : "video/ogg", + ".ogx" : "application/ogg", + ".onepkg" : "application/onenote", + ".onetmp" : "application/onenote", + ".onetoc" : "application/onenote", + ".onetoc2" : "application/onenote", + ".opf" : "application/oebps-package+xml", + ".oprc" : "application/vnd.palm", + ".org" : "application/vnd.lotus-organizer", + ".osf" : "application/vnd.yamaha.openscoreformat", + ".osfpvg" : "application/vnd.yamaha.openscoreformat.osfpvg+xml", + ".otc" : "application/vnd.oasis.opendocument.chart-template", + ".otf" : "application/x-font-otf", + ".otg" : "application/vnd.oasis.opendocument.graphics-template", + ".oth" : "application/vnd.oasis.opendocument.text-web", + ".oti" : "application/vnd.oasis.opendocument.image-template", + ".otm" : "application/vnd.oasis.opendocument.text-master", + ".otp" : "application/vnd.oasis.opendocument.presentation-template", + ".ots" : "application/vnd.oasis.opendocument.spreadsheet-template", + ".ott" : "application/vnd.oasis.opendocument.text-template", + ".oxt" : "application/vnd.openofficeorg.extension", + ".p" : "text/x-pascal", + ".p10" : "application/pkcs10", + ".p12" : "application/x-pkcs12", + ".p7b" : "application/x-pkcs7-certificates", + ".p7c" : "application/pkcs7-mime", + ".p7m" : "application/pkcs7-mime", + ".p7r" : "application/x-pkcs7-certreqresp", + ".p7s" : "application/pkcs7-signature", + ".pas" : "text/x-pascal", + ".pbd" : "application/vnd.powerbuilder6", + ".pbm" : "image/x-portable-bitmap", + ".pcf" : "application/x-font-pcf", + ".pcl" : "application/vnd.hp-pcl", + ".pclxl" : "application/vnd.hp-pclxl", + ".pct" : "image/x-pict", + ".pcurl" : "application/vnd.curl.pcurl", + ".pcx" : "image/x-pcx", + ".pdb" : "application/vnd.palm", + ".pdf" : "application/pdf", + ".pfa" : "application/x-font-type1", + ".pfb" : "application/x-font-type1", + ".pfm" : "application/x-font-type1", + ".pfr" : "application/font-tdpfr", + ".pfx" : "application/x-pkcs12", + ".pgm" : "image/x-portable-graymap", + ".pgn" : "application/x-chess-pgn", + ".pgp" : "application/pgp-encrypted", + ".pic" : "image/x-pict", + ".pkg" : "application/octet-stream", + ".pki" : "application/pkixcmp", + ".pkipath" : "application/pkix-pkipath", + ".pl" : "text/plain", + ".plb" : "application/vnd.3gpp.pic-bw-large", + ".plc" : "application/vnd.mobius.plc", + ".plf" : "application/vnd.pocketlearn", + ".pls" : "application/pls+xml", + ".pml" : "application/vnd.ctc-posml", + ".png" : "image/png", + ".pnm" : "image/x-portable-anymap", + ".portpkg" : "application/vnd.macports.portpkg", + ".pot" : "application/vnd.ms-powerpoint", + ".potm" : "application/vnd.ms-powerpoint.template.macroenabled.12", + ".potx" : "application/vnd.openxmlformats-officedocument.presentationml.template", + ".ppa" : "application/vnd.ms-powerpoint", + ".ppam" : "application/vnd.ms-powerpoint.addin.macroenabled.12", + ".ppd" : "application/vnd.cups-ppd", + ".ppm" : "image/x-portable-pixmap", + ".pps" : "application/vnd.ms-powerpoint", + ".ppsm" : "application/vnd.ms-powerpoint.slideshow.macroenabled.12", + ".ppsx" : "application/vnd.openxmlformats-officedocument.presentationml.slideshow", + ".ppt" : "application/vnd.ms-powerpoint", + ".pptm" : "application/vnd.ms-powerpoint.presentation.macroenabled.12", + ".pptx" : "application/vnd.openxmlformats-officedocument.presentationml.presentation", + ".pqa" : "application/vnd.palm", + ".prc" : "application/x-mobipocket-ebook", + ".pre" : "application/vnd.lotus-freelance", + ".prf" : "application/pics-rules", + ".ps" : "application/postscript", + ".psb" : "application/vnd.3gpp.pic-bw-small", + ".psd" : "image/vnd.adobe.photoshop", + ".psf" : "application/x-font-linux-psf", + ".ptid" : "application/vnd.pvi.ptid1", + ".pub" : "application/x-mspublisher", + ".pvb" : "application/vnd.3gpp.pic-bw-var", + ".pwn" : "application/vnd.3m.post-it-notes", + ".pwz" : "application/vnd.ms-powerpoint", + ".py" : "text/x-python", + ".pya" : "audio/vnd.ms-playready.media.pya", + ".pyc" : "application/x-python-code", + ".pyo" : "application/x-python-code", + ".pyv" : "video/vnd.ms-playready.media.pyv", + ".qam" : "application/vnd.epson.quickanime", + ".qbo" : "application/vnd.intu.qbo", + ".qfx" : "application/vnd.intu.qfx", + ".qps" : "application/vnd.publishare-delta-tree", + ".qt" : "video/quicktime", + ".qwd" : "application/vnd.quark.quarkxpress", + ".qwt" : "application/vnd.quark.quarkxpress", + ".qxb" : "application/vnd.quark.quarkxpress", + ".qxd" : "application/vnd.quark.quarkxpress", + ".qxl" : "application/vnd.quark.quarkxpress", + ".qxt" : "application/vnd.quark.quarkxpress", + ".ra" : "audio/x-pn-realaudio", + ".ram" : "audio/x-pn-realaudio", + ".rar" : "application/x-rar-compressed", + ".ras" : "image/x-cmu-raster", + ".rcprofile" : "application/vnd.ipunplugged.rcprofile", + ".rdf" : "application/rdf+xml", + ".rdz" : "application/vnd.data-vision.rdz", + ".rep" : "application/vnd.businessobjects", + ".res" : "application/x-dtbresource+xml", + ".rgb" : "image/x-rgb", + ".rif" : "application/reginfo+xml", + ".rl" : "application/resource-lists+xml", + ".rlc" : "image/vnd.fujixerox.edmics-rlc", + ".rld" : "application/resource-lists-diff+xml", + ".rm" : "application/vnd.rn-realmedia", + ".rmi" : "audio/midi", + ".rmp" : "audio/x-pn-realaudio-plugin", + ".rms" : "application/vnd.jcp.javame.midlet-rms", + ".rnc" : "application/relax-ng-compact-syntax", + ".roff" : "text/troff", + ".rpm" : "application/x-rpm", + ".rpss" : "application/vnd.nokia.radio-presets", + ".rpst" : "application/vnd.nokia.radio-preset", + ".rq" : "application/sparql-query", + ".rs" : "application/rls-services+xml", + ".rsd" : "application/rsd+xml", + ".rss" : "application/rss+xml", + ".rtf" : "application/rtf", + ".rtx" : "text/richtext", + ".s" : "text/x-asm", + ".saf" : "application/vnd.yamaha.smaf-audio", + ".sbml" : "application/sbml+xml", + ".sc" : "application/vnd.ibm.secure-container", + ".scd" : "application/x-msschedule", + ".scm" : "application/vnd.lotus-screencam", + ".scq" : "application/scvp-cv-request", + ".scs" : "application/scvp-cv-response", + ".scurl" : "text/vnd.curl.scurl", + ".sda" : "application/vnd.stardivision.draw", + ".sdc" : "application/vnd.stardivision.calc", + ".sdd" : "application/vnd.stardivision.impress", + ".sdkd" : "application/vnd.solent.sdkm+xml", + ".sdkm" : "application/vnd.solent.sdkm+xml", + ".sdp" : "application/sdp", + ".sdw" : "application/vnd.stardivision.writer", + ".see" : "application/vnd.seemail", + ".seed" : "application/vnd.fdsn.seed", + ".sema" : "application/vnd.sema", + ".semd" : "application/vnd.semd", + ".semf" : "application/vnd.semf", + ".ser" : "application/java-serialized-object", + ".setpay" : "application/set-payment-initiation", + ".setreg" : "application/set-registration-initiation", + ".sfd-hdstx" : "application/vnd.hydrostatix.sof-data", + ".sfs" : "application/vnd.spotfire.sfs", + ".sgl" : "application/vnd.stardivision.writer-global", + ".sgm" : "text/sgml", + ".sgml" : "text/sgml", + ".sh" : "application/x-sh", + ".shar" : "application/x-shar", + ".shf" : "application/shf+xml", + ".si" : "text/vnd.wap.si", + ".sic" : "application/vnd.wap.sic", + ".sig" : "application/pgp-signature", + ".silo" : "model/mesh", + ".sis" : "application/vnd.symbian.install", + ".sisx" : "application/vnd.symbian.install", + ".sit" : "application/x-stuffit", + ".sitx" : "application/x-stuffitx", + ".skd" : "application/vnd.koan", + ".skm" : "application/vnd.koan", + ".skp" : "application/vnd.koan", + ".skt" : "application/vnd.koan", + ".sl" : "text/vnd.wap.sl", + ".slc" : "application/vnd.wap.slc", + ".sldm" : "application/vnd.ms-powerpoint.slide.macroenabled.12", + ".sldx" : "application/vnd.openxmlformats-officedocument.presentationml.slide", + ".slt" : "application/vnd.epson.salt", + ".smf" : "application/vnd.stardivision.math", + ".smi" : "application/smil+xml", + ".smil" : "application/smil+xml", + ".snd" : "audio/basic", + ".snf" : "application/x-font-snf", + ".so" : "application/octet-stream", + ".spc" : "application/x-pkcs7-certificates", + ".spf" : "application/vnd.yamaha.smaf-phrase", + ".spl" : "application/x-futuresplash", + ".spot" : "text/vnd.in3d.spot", + ".spp" : "application/scvp-vp-response", + ".spq" : "application/scvp-vp-request", + ".spx" : "audio/ogg", + ".src" : "application/x-wais-source", + ".srx" : "application/sparql-results+xml", + ".sse" : "application/vnd.kodak-descriptor", + ".ssf" : "application/vnd.epson.ssf", + ".ssml" : "application/ssml+xml", + ".stc" : "application/vnd.sun.xml.calc.template", + ".std" : "application/vnd.sun.xml.draw.template", + ".stf" : "application/vnd.wt.stf", + ".sti" : "application/vnd.sun.xml.impress.template", + ".stk" : "application/hyperstudio", + ".stl" : "application/vnd.ms-pki.stl", + ".str" : "application/vnd.pg.format", + ".stw" : "application/vnd.sun.xml.writer.template", + ".sus" : "application/vnd.sus-calendar", + ".susp" : "application/vnd.sus-calendar", + ".sv4cpio" : "application/x-sv4cpio", + ".sv4crc" : "application/x-sv4crc", + ".svd" : "application/vnd.svd", + ".svg" : "image/svg+xml", + ".svgz" : "image/svg+xml", + ".swa" : "application/x-director", + ".swf" : "application/x-shockwave-flash", + ".swi" : "application/vnd.arastra.swi", + ".sxc" : "application/vnd.sun.xml.calc", + ".sxd" : "application/vnd.sun.xml.draw", + ".sxg" : "application/vnd.sun.xml.writer.global", + ".sxi" : "application/vnd.sun.xml.impress", + ".sxm" : "application/vnd.sun.xml.math", + ".sxw" : "application/vnd.sun.xml.writer", + ".t" : "text/troff", + ".tao" : "application/vnd.tao.intent-module-archive", + ".tar" : "application/x-tar", + ".tcap" : "application/vnd.3gpp2.tcap", + ".tcl" : "application/x-tcl", + ".teacher" : "application/vnd.smart.teacher", + ".tex" : "application/x-tex", + ".texi" : "application/x-texinfo", + ".texinfo" : "application/x-texinfo", + ".text" : "text/plain", + ".tfm" : "application/x-tex-tfm", + ".tgz" : "application/x-gzip", + ".tif" : "image/tiff", + ".tiff" : "image/tiff", + ".tmo" : "application/vnd.tmobile-livetv", + ".torrent" : "application/x-bittorrent", + ".tpl" : "application/vnd.groove-tool-template", + ".tpt" : "application/vnd.trid.tpt", + ".tr" : "text/troff", + ".tra" : "application/vnd.trueapp", + ".trm" : "application/x-msterminal", + ".tsv" : "text/tab-separated-values", + ".ttc" : "application/x-font-ttf", + ".ttf" : "application/x-font-ttf", + ".twd" : "application/vnd.simtech-mindmapper", + ".twds" : "application/vnd.simtech-mindmapper", + ".txd" : "application/vnd.genomatix.tuxedo", + ".txf" : "application/vnd.mobius.txf", + ".txt" : "text/plain", + ".u32" : "application/x-authorware-bin", + ".udeb" : "application/x-debian-package", + ".ufd" : "application/vnd.ufdl", + ".ufdl" : "application/vnd.ufdl", + ".umj" : "application/vnd.umajin", + ".unityweb" : "application/vnd.unity", + ".uoml" : "application/vnd.uoml+xml", + ".uri" : "text/uri-list", + ".uris" : "text/uri-list", + ".urls" : "text/uri-list", + ".ustar" : "application/x-ustar", + ".utz" : "application/vnd.uiq.theme", + ".uu" : "text/x-uuencode", + ".vcd" : "application/x-cdlink", + ".vcf" : "text/x-vcard", + ".vcg" : "application/vnd.groove-vcard", + ".vcs" : "text/x-vcalendar", + ".vcx" : "application/vnd.vcx", + ".vis" : "application/vnd.visionary", + ".viv" : "video/vnd.vivo", + ".vor" : "application/vnd.stardivision.writer", + ".vox" : "application/x-authorware-bin", + ".vrml" : "model/vrml", + ".vsd" : "application/vnd.visio", + ".vsf" : "application/vnd.vsf", + ".vss" : "application/vnd.visio", + ".vst" : "application/vnd.visio", + ".vsw" : "application/vnd.visio", + ".vtu" : "model/vnd.vtu", + ".vxml" : "application/voicexml+xml", + ".w3d" : "application/x-director", + ".wad" : "application/x-doom", + ".wav" : "audio/x-wav", + ".wax" : "audio/x-ms-wax", + ".wbmp" : "image/vnd.wap.wbmp", + ".wbs" : "application/vnd.criticaltools.wbs+xml", + ".wbxml" : "application/vnd.wap.wbxml", + ".wcm" : "application/vnd.ms-works", + ".wdb" : "application/vnd.ms-works", + ".wiz" : "application/msword", + ".wks" : "application/vnd.ms-works", + ".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", + ".wmv" : "video/x-ms-wmv", + ".wmx" : "video/x-ms-wmx", + ".wmz" : "application/x-ms-wmz", + ".wpd" : "application/vnd.wordperfect", + ".wpl" : "application/vnd.ms-wpl", + ".wps" : "application/vnd.ms-works", + ".wqd" : "application/vnd.wqd", + ".wri" : "application/x-mswrite", + ".wrl" : "model/vrml", + ".wsdl" : "application/wsdl+xml", + ".wspolicy" : "application/wspolicy+xml", + ".wtb" : "application/vnd.webturbo", + ".wvx" : "video/x-ms-wvx", + ".x32" : "application/x-authorware-bin", + ".x3d" : "application/vnd.hzn-3d-crossword", + ".xap" : "application/x-silverlight-app", + ".xar" : "application/vnd.xara", + ".xbap" : "application/x-ms-xbap", + ".xbd" : "application/vnd.fujixerox.docuworks.binder", + ".xbm" : "image/x-xbitmap", + ".xdm" : "application/vnd.syncml.dm+xml", + ".xdp" : "application/vnd.adobe.xdp+xml", + ".xdw" : "application/vnd.fujixerox.docuworks", + ".xenc" : "application/xenc+xml", + ".xer" : "application/patch-ops-error+xml", + ".xfdf" : "application/vnd.adobe.xfdf", + ".xfdl" : "application/vnd.xfdl", + ".xht" : "application/xhtml+xml", + ".xhtml" : "application/xhtml+xml", + ".xhvml" : "application/xv+xml", + ".xif" : "image/vnd.xiff", + ".xla" : "application/vnd.ms-excel", + ".xlam" : "application/vnd.ms-excel.addin.macroenabled.12", + ".xlb" : "application/vnd.ms-excel", + ".xlc" : "application/vnd.ms-excel", + ".xlm" : "application/vnd.ms-excel", + ".xls" : "application/vnd.ms-excel", + ".xlsb" : "application/vnd.ms-excel.sheet.binary.macroenabled.12", + ".xlsm" : "application/vnd.ms-excel.sheet.macroenabled.12", + ".xlsx" : "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + ".xlt" : "application/vnd.ms-excel", + ".xltm" : "application/vnd.ms-excel.template.macroenabled.12", + ".xltx" : "application/vnd.openxmlformats-officedocument.spreadsheetml.template", + ".xlw" : "application/vnd.ms-excel", + ".xml" : "application/xml", + ".xo" : "application/vnd.olpc-sugar", + ".xop" : "application/xop+xml", + ".xpdl" : "application/xml", + ".xpi" : "application/x-xpinstall", + ".xpm" : "image/x-xpixmap", + ".xpr" : "application/vnd.is-xpr", + ".xps" : "application/vnd.ms-xpsdocument", + ".xpw" : "application/vnd.intercon.formnet", + ".xpx" : "application/vnd.intercon.formnet", + ".xsl" : "application/xml", + ".xslt" : "application/xslt+xml", + ".xsm" : "application/vnd.syncml+xml", + ".xspf" : "application/xspf+xml", + ".xul" : "application/vnd.mozilla.xul+xml", + ".xvm" : "application/xv+xml", + ".xvml" : "application/xv+xml", + ".xwd" : "image/x-xwindowdump", + ".xyz" : "chemical/x-xyz", + ".zaz" : "application/vnd.zzazz.deck+xml", + ".zip" : "application/zip", + ".zir" : "application/vnd.zul", + ".zirz" : "application/vnd.zul", + ".zmm" : "application/vnd.handheld-entertainment+xml" +} \ No newline at end of file diff --git a/py/LunaTranslator/cishu/mdict.py b/py/LunaTranslator/cishu/mdict.py index 5326da4d..e79ef050 100644 --- a/py/LunaTranslator/cishu/mdict.py +++ b/py/LunaTranslator/cishu/mdict.py @@ -3,6 +3,24 @@ from cishu.cishubase import DictTree from myutils.config import isascii from traceback import print_exc from myutils.audioplayer import bass_decode +import json, os + +cachejson = None + + +def query_mime(ext): + # https://gist.github.com/AshHeskes/6038140 + global cachejson + if not cachejson: + with open( + os.path.join( + os.path.dirname(__file__), "file-extension-to-mime-types.json" + ), + "r", + encoding="utf8", + ) as ff: + cachejson = json.load(ff) + return cachejson.get(ext, "application/octet-stream") class FlexBuffer: @@ -2285,7 +2303,9 @@ class mdict(cishubase): ext = ".mp3" varname = "var_" + hashlib.md5(file_content).hexdigest() audiob64vals[varname] = base64.b64encode(file_content).decode() - return 3, "javascript:mdict_play_sound('{}',{})".format(ext[1:], varname) + return 3, "javascript:mdict_play_sound('{}',{})".format( + query_mime(ext), varname + ) file_content = self.parse_url_in_mdd(index, url) if not file_content: return @@ -2378,11 +2398,15 @@ class mdict(cishubase): csscollect: dict, ): base = os.path.dirname(fn) - matches = re.findall('src="([^"]+)"', html_content) - matches += re.findall('href="([^"]+)"', html_content) - matches += re.findall("""href='([^']+)'""", html_content) - matches += re.findall("""src='([^']+)'""", html_content) - for url in matches: + matches = [] + for _type, patt in ( + ("src", 'src="([^"]+)"'), + ("href", 'href="([^"]+)"'), + ("src", """src='([^']+)'"""), + ("href", """href='([^']+)'"""), + ): + matches += [(_type, _) for _ in re.findall(patt, html_content)] + for _type_1, url in matches: if url.startswith("#"): # a href # 页内跳转 continue try: @@ -2391,6 +2415,7 @@ class mdict(cishubase): print_exc() print("unknown", fn, url) continue + print(url, file_content) if not file_content: print(fn, url) continue @@ -2406,7 +2431,11 @@ class mdict(cishubase): html_content = html_content.replace(url, "") elif _type == 0: varname = "var_" + hashlib.md5(file_content).hexdigest() - hrefsrcvals[varname] = base64.b64encode(file_content).decode() + hrefsrcvals[varname] = ( + _type_1, + query_mime(os.path.splitext(url)[1].lower()), + base64.b64encode(file_content).decode(), + ) html_content = html_content.replace(url, varname) return '