Subversion Repositories basico

Compare Revisions

Ignore whitespace Rev 355 → Rev 356

/branches/BR-0.4/basico/data/res/extensions.json
1,0 → 0,0
{"x3d": ["application/vnd.hzn-3d-crossword", "3D Crossword Plugi"], "3gp": ["video/3gpp", "3G"], "3g2": ["video/3gpp2", "3GP"], "mseq": ["application/vnd.mseq", "3GPP MSEQ Fil"], "pwn": ["application/vnd.3m.post-it-notes", "3M Post It Note"], "plb": ["application/vnd.3gpp.pic-bw-large", "3rd Generation Partnership Project - Pic Larg"], "psb": ["application/vnd.3gpp.pic-bw-small", "3rd Generation Partnership Project - Pic Smal"], "pvb": ["application/vnd.3gpp.pic-bw-var", "3rd Generation Partnership Project - Pic Va"], "tcap": ["application/vnd.3gpp2.tcap", "3rd Generation Partnership Project - Transaction Capabilities Application Par"], "7z": ["application/x-7z-compressed", "7-Zi"], "abw": ["application/x-abiword", "AbiWor"], "ace": ["application/x-ace-compressed", "Ace Archiv"], "acc": ["application/vnd.americandynamics.acc", "Active Content Compressio"], "acu": ["application/vnd.acucobol", "ACU Cobo"], "atc": ["application/vnd.acucorp", "ACU Cobo"], "adp": ["audio/adpcm", "Adaptive differential pulse-code modulatio"], "aab": ["application/x-authorware-bin", "Adobe (Macropedia) Authorware - Binary Fil"], "aam": ["application/x-authorware-map", "Adobe (Macropedia) Authorware - Ma"], "aas": ["application/x-authorware-seg", "Adobe (Macropedia) Authorware - Segment Fil"], "air": ["application/vnd.adobe.air-application-installer-package+zip", "Adobe AIR Applicatio"], "swf": ["application/x-shockwave-flash", "Adobe Flas"], "fxp": ["application/vnd.adobe.fxp", "Adobe Flex Projec"], "pdf": ["application/pdf", "Adobe Portable Document Forma"], "ppd": ["application/vnd.cups-ppd", "Adobe PostScript Printer Description File Forma"], "dir": ["application/x-director", "Adobe Shockwave Playe"], "xdp": ["application/vnd.adobe.xdp+xml", "Adobe XML Data Packag"], "xfdf": ["application/vnd.adobe.xfdf", "Adobe XML Forms Data Forma"], "aac": ["audio/x-aac", "Advanced Audio Coding (AAC"], "ahead": ["application/vnd.ahead.space", "Ahead AIR Applicatio"], "azf": ["application/vnd.airzip.filesecure.azf", "AirZip FileSECUR"], "azs": ["application/vnd.airzip.filesecure.azs", "AirZip FileSECUR"], "azw": ["application/vnd.amazon.ebook", "Amazon Kindle eBook forma"], "ami": ["application/vnd.amiga.ami", "AmigaD"], "/A": ["application/andrew-inset", "Andrew Toolki"], "apk": ["application/vnd.android.package-archive", "Android Package Archiv"], "cii": ["application/vnd.anser-web-certificate-issue-initiation", "ANSER-WEB Terminal Client - Certificate Issu"], "fti": ["application/vnd.anser-web-funds-transfer-initiation", "ANSER-WEB Terminal Client - Web Funds Transfe"], "atx": ["application/vnd.antix.game-component", "Antix Game Playe"], "mpkg": ["application/vnd.apple.installer+xml", "Apple Installer Packag"], "aw": ["application/applixware", "Applixwar"], "les": ["application/vnd.hhe.lesson-player", "Archipelago Lesson Playe"], "swi": ["application/vnd.aristanetworks.swi", "Arista Networks Software Imag"], "s": ["text/x-asm", "Assembler Source Fil"], "atomcat": ["application/atomcat+xml", "Atom Publishing Protoco"], "atomsvc": ["application/atomsvc+xml", "Atom Publishing Protocol Service Documen"], "xml": ["application/xml", "XML - Extensible Markup Languag"], "atom": ["application/atom+xml", "Atom Syndication Forma"], "ac": ["application/pkix-attr-cert", "Attribute Certificat"], "aif": ["audio/x-aiff", "Audio Interchange File Forma"], "avi": ["video/x-msvideo", "Audio Video Interleave (AVI"], "aep": ["application/vnd.audiograph", "Audiograp"], "dxf": ["image/vnd.dxf", "AutoCAD DX"], "dwf": ["model/vnd.dwf", "Autodesk Design Web Format (DWF"], "par": ["text/plain-bas", "BAS Partitur Forma"], "bcpio": ["application/x-bcpio", "Binary CPIO Archiv"], "bin": ["application/octet-stream", "Binary Dat"], "bmp": ["image/bmp", "Bitmap Image Fil"], "torrent": ["application/x-bittorrent", "BitTorren"], "cod": ["application/vnd.rim.cod", "Blackberry COD Fil"], "mpm": ["application/vnd.blueice.multipass", "Blueice Research Multipas"], "bmi": ["application/vnd.bmi", "BMI Drawing Data Interchang"], "sh": ["application/x-sh", "Bourne Shell Scrip"], "btif": ["image/prs.btif", "BTI"], "rep": ["application/vnd.businessobjects", "BusinessObject"], "bz": ["application/x-bzip", "Bzip Archiv"], "bz2": ["application/x-bzip2", "Bzip2 Archiv"], "csh": ["application/x-csh", "C Shell Scrip"], "c": ["text/x-c", "C Source Fil"], "cdxml": ["application/vnd.chemdraw+xml", "CambridgeSoft Chem Dra"], "css": ["text/css", "Cascading Style Sheets (CSS"], "cdx": ["chemical/x-cdx", "ChemDraw eXchange fil"], "cml": ["chemical/x-cml", "Chemical Markup Languag"], "csml": ["chemical/x-csml", "Chemical Style Markup Languag"], "cdbcmsg": ["application/vnd.contact.cmsg", "CIM Databas"], "cla": ["application/vnd.claymore", "Claymore Data File"], "c4g": ["application/vnd.clonk.c4group", "Clonk Gam"], "sub": ["image/vnd.dvb.subtitle", "Close Captioning - Subtitl"], "cdmia": ["application/cdmi-capability", "Cloud Data Management Interface (CDMI) - Capabilit"], "cdmic": ["application/cdmi-container", "Cloud Data Management Interface (CDMI) - Contaime"], "cdmid": ["application/cdmi-domain", "Cloud Data Management Interface (CDMI) - Domai"], "cdmio": ["application/cdmi-object", "Cloud Data Management Interface (CDMI) - Objec"], "cdmiq": ["application/cdmi-queue", "Cloud Data Management Interface (CDMI) - Queu"], "c11amc": ["application/vnd.cluetrust.cartomobile-config", "ClueTrust CartoMobile - Confi"], "c11amz": ["application/vnd.cluetrust.cartomobile-config-pkg", "ClueTrust CartoMobile - Config Packag"], "ras": ["image/x-cmu-raster", "CMU Imag"], "dae": ["model/vnd.collada+xml", "COLLAD"], "csv": ["text/csv", "Comma-Seperated Value"], "cpt": ["application/mac-compactpro", "Compact Pr"], "wmlc": ["application/vnd.wap.wmlc", "Compiled Wireless Markup Language (WMLC"], "cgm": ["image/cgm", "Computer Graphics Metafil"], "ice": ["x-conference/x-cooltalk", "CoolTal"], "cmx": ["image/x-cmx", "Corel Metafile Exchange (CMX"], "xar": ["application/vnd.xara", "CorelXAR"], "cmc": ["application/vnd.cosmocaller", "CosmoCalle"], "cpio": ["application/x-cpio", "CPIO Archiv"], "clkx": ["application/vnd.crick.clicker", "CrickSoftware - Clicke"], "clkk": ["application/vnd.crick.clicker.keyboard", "CrickSoftware - Clicker - Keyboar"], "clkp": ["application/vnd.crick.clicker.palette", "CrickSoftware - Clicker - Palett"], "clkt": ["application/vnd.crick.clicker.template", "CrickSoftware - Clicker - Templat"], "clkw": ["application/vnd.crick.clicker.wordbank", "CrickSoftware - Clicker - Wordban"], "wbs": ["application/vnd.criticaltools.wbs+xml", "Critical Tools - PERT Chart EXPER"], "cryptonote": ["application/vnd.rig.cryptonote", "CryptoNot"], "cif": ["chemical/x-cif", "Crystallographic Interchange Forma"], "cmdf": ["chemical/x-cmdf", "CrystalMaker Data Forma"], "cu": ["application/cu-seeme", "CU-SeeM"], "cww": ["application/prs.cww", "CU-Write"], "curl": ["text/vnd.curl", "Curl - Apple"], "dcurl": ["text/vnd.curl.dcurl", "Curl - Detached Apple"], "mcurl": ["text/vnd.curl.mcurl", "Curl - Manifest Fil"], "scurl": ["text/vnd.curl.scurl", "Curl - Source Cod"], "car": ["application/vnd.curl.car", "CURL Apple"], "pcurl": ["application/vnd.curl.pcurl", "CURL Apple"], "cmp": ["application/vnd.yellowriver-custom-menu", "CustomMen"], "dssc": ["application/dssc+der", "Data Structure for the Security Suitability of Cryptographic Algorithm"], "xdssc": ["application/dssc+xml", "Data Structure for the Security Suitability of Cryptographic Algorithm"], "deb": ["application/x-debian-package", "Debian Packag"], "uva": ["audio/vnd.dece.audio", "DECE Audi"], "uvi": ["image/vnd.dece.graphic", "DECE Graphi"], "uvh": ["video/vnd.dece.hd", "DECE High Definition Vide"], "uvm": ["video/vnd.dece.mobile", "DECE Mobile Vide"], "uvu": ["video/vnd.uvvu.mp4", "DECE MP"], "uvp": ["video/vnd.dece.pd", "DECE PD Vide"], "uvs": ["video/vnd.dece.sd", "DECE SD Vide"], "uvv": ["video/vnd.dece.video", "DECE Vide"], "dvi": ["application/x-dvi", "Device Independent File Format (DVI"], "seed": ["application/vnd.fdsn.seed", "Digital Siesmograph Networks - SEED Datafile"], "dtb": ["application/x-dtbook+xml", "Digital Talking Boo"], "res": ["application/x-dtbresource+xml", "Digital Talking Book - Resource Fil"], "ait": ["application/vnd.dvb.ait", "Digital Video Broadcastin"], "svc": ["application/vnd.dvb.service", "Digital Video Broadcastin"], "eol": ["audio/vnd.digital-winds", "Digital Winds Musi"], "djvu": ["image/vnd.djvu", "DjV"], "dtd": ["application/xml-dtd", "Document Type Definitio"], "mlp": ["application/vnd.dolby.mlp", "Dolby Meridian Lossless Packin"], "wad": ["application/x-doom", "Doom Video Gam"], "dpg": ["application/vnd.dpgraph", "DPGrap"], "dra": ["audio/vnd.dra", "DRA Audi"], "dfac": ["application/vnd.dreamfactory", "DreamFactor"], "dts": ["audio/vnd.dts", "DTS Audi"], "dtshd": ["audio/vnd.dts.hd", "DTS High Definition Audi"], "dwg": ["image/vnd.dwg", "DWG Drawin"], "geo": ["application/vnd.dynageo", "DynaGe"], "es": ["application/ecmascript", "ECMAScrip"], "mag": ["application/vnd.ecowin.chart", "EcoWin Char"], "mmr": ["image/vnd.fujixerox.edmics-mmr", "EDMICS 200"], "rlc": ["image/vnd.fujixerox.edmics-rlc", "EDMICS 200"], "exi": ["application/exi", "Efficient XML Interchang"], "mgz": ["application/vnd.proteus.magazine", "EFI Proteu"], "epub": ["application/epub+zip", "Electronic Publicatio"], "eml": ["message/rfc822", "Email Messag"], "nml": ["application/vnd.enliven", "Enliven Viewe"], "xpr": ["application/vnd.is-xpr", "Express by Infosee"], "xif": ["image/vnd.xiff", "eXtended Image File Format (XIFF"], "xfdl": ["application/vnd.xfdl", "Extensible Forms Description Languag"], "emma": ["application/emma+xml", "Extensible MultiModal Annotatio"], "ez2": ["application/vnd.ezpix-album", "EZPix Secure Photo Albu"], "ez3": ["application/vnd.ezpix-package", "EZPix Secure Photo Albu"], "fst": ["image/vnd.fst", "FAST Search & Transfer AS"], "fvt": ["video/vnd.fvt", "FAST Search & Transfer AS"], "fbs": ["image/vnd.fastbidsheet", "FastBid Shee"], "fe_launch": ["application/vnd.denovo.fcselayout-link", "FCS Express Layout Lin"], "f4v": ["video/x-f4v", "Flash Vide"], "flv": ["video/x-flv", "Flash Vide"], "fpx": ["image/vnd.fpx", "FlashPi"], "npx": ["image/vnd.net-fpx", "FlashPi"], "flx": ["text/vnd.fmi.flexstor", "FLEXSTO"], "fli": ["video/x-fli", "FLI/FLC Animation Forma"], "ftc": ["application/vnd.fluxtime.clip", "FluxTime Cli"], "fdf": ["application/vnd.fdf", "Forms Data Forma"], "f": ["text/x-fortran", "Fortran Source Fil"], "mif": ["application/vnd.mif", "FrameMaker Interchange Forma"], "fm": ["application/vnd.framemaker", "FrameMaker Normal Forma"], "fh": ["image/x-freehand", "FreeHand M"], "fsc": ["application/vnd.fsc.weblaunch", "Friendly Software Corporatio"], "fnc": ["application/vnd.frogans.fnc", "Frogans Playe"], "ltf": ["application/vnd.frogans.ltf", "Frogans Playe"], "ddd": ["application/vnd.fujixerox.ddd", "Fujitsu - Xerox 2D CAD Dat"], "xdw": ["application/vnd.fujixerox.docuworks", "Fujitsu - Xerox DocuWork"], "xbd": ["application/vnd.fujixerox.docuworks.binder", "Fujitsu - Xerox DocuWorks Binde"], "oas": ["application/vnd.fujitsu.oasys", "Fujitsu Oasy"], "oa2": ["application/vnd.fujitsu.oasys2", "Fujitsu Oasy"], "oa3": ["application/vnd.fujitsu.oasys3", "Fujitsu Oasy"], "fg5": ["application/vnd.fujitsu.oasysgp", "Fujitsu Oasy"], "bh2": ["application/vnd.fujitsu.oasysprs", "Fujitsu Oasy"], "spl": ["application/x-futuresplash", "FutureSplash Animato"], "fzs": ["application/vnd.fuzzysheet", "FuzzyShee"], "g3": ["image/g3fax", "G3 Fax Imag"], "gmx": ["application/vnd.gmx", "GameMaker Active"], "gtw": ["model/vnd.gtw", "Gen-Trix Studi"], "txd": ["application/vnd.genomatix.tuxedo", "Genomatix Tuxedo Framewor"], "ggb": ["application/vnd.geogebra.file", "GeoGebr"], "ggt": ["application/vnd.geogebra.tool", "GeoGebr"], "gdl": ["model/vnd.gdl", "Geometric Description Language (GDL"], "gex": ["application/vnd.geometry-explorer", "GeoMetry Explore"], "gxt": ["application/vnd.geonext", "GEONExT and JSXGrap"], "g2w": ["application/vnd.geoplan", "Geoplan"], "g3w": ["application/vnd.geospace", "Geospac"], "gsf": ["application/x-font-ghostscript", "Ghostscript Fon"], "bdf": ["application/x-font-bdf", "Glyph Bitmap Distribution Forma"], "gtar": ["application/x-gtar", "GNU Tar File"], "texinfo": ["application/x-texinfo", "GNU Texinfo Documen"], "gnumeric": ["application/x-gnumeric", "Gnumeri"], "kml": ["application/vnd.google-earth.kml+xml", "Google Earth - KM"], "kmz": ["application/vnd.google-earth.kmz", "Google Earth - Zipped KM"], "gqf": ["application/vnd.grafeq", "GrafE"], "gif": ["image/gif", "Graphics Interchange Forma"], "gv": ["text/vnd.graphviz", "Graphvi"], "gac": ["application/vnd.groove-account", "Groove - Accoun"], "ghf": ["application/vnd.groove-help", "Groove - Hel"], "gim": ["application/vnd.groove-identity-message", "Groove - Identity Messag"], "grv": ["application/vnd.groove-injector", "Groove - Injecto"], "gtm": ["application/vnd.groove-tool-message", "Groove - Tool Messag"], "tpl": ["application/vnd.groove-tool-template", "Groove - Tool Templat"], "vcg": ["application/vnd.groove-vcard", "Groove - Vcar"], "h261": ["video/h261", "H.26"], "h263": ["video/h263", "H.26"], "h264": ["video/h264", "H.26"], "hpid": ["application/vnd.hp-hpid", "Hewlett Packard Instant Deliver"], "hps": ["application/vnd.hp-hps", "Hewlett-Packard's WebPrintSmar"], "hdf": ["application/x-hdf", "Hierarchical Data Forma"], "rip": ["audio/vnd.rip", "Hit'n'Mi"], "hbci": ["application/vnd.hbci", "Homebanking Computer Interface (HBCI"], "jlt": ["application/vnd.hp-jlyt", "HP Indigo Digital Press - Job Layout Languat"], "pcl": ["application/vnd.hp-pcl", "HP Printer Command Languag"], "hpgl": ["application/vnd.hp-hpgl", "HP-GL/2 and HP RT"], "hvs": ["application/vnd.yamaha.hv-script", "HV Scrip"], "hvd": ["application/vnd.yamaha.hv-dic", "HV Voice Dictionar"], "hvp": ["application/vnd.yamaha.hv-voice", "HV Voice Paramete"], "sfd-hdstx": ["application/vnd.hydrostatix.sof-data", "Hydrostatix Master Suit"], "stk": ["application/hyperstudio", "Hyperstudi"], "hal": ["application/vnd.hal+xml", "Hypertext Application Languag"], "html": ["text/html", "HyperText Markup Language (HTML"], "irm": ["application/vnd.ibm.rights-management", "IBM DB2 Rights Manage"], "sc": ["application/vnd.ibm.secure-container", "IBM Electronic Media Management System - Secure Containe"], "ics": ["text/calendar", "iCalenda"], "icc": ["application/vnd.iccprofile", "ICC profil"], "ico": ["image/x-icon", "Icon Imag"], "igl": ["application/vnd.igloader", "igLoade"], "ief": ["image/ief", "Image Exchange Forma"], "ivp": ["application/vnd.immervision-ivp", "ImmerVision PURE Player"], "ivu": ["application/vnd.immervision-ivu", "ImmerVision PURE Player"], "rif": ["application/reginfo+xml", "IMS Network"], "3dml": ["text/vnd.in3d.3dml", "In3D - 3DM"], "spot": ["text/vnd.in3d.spot", "In3D - 3DM"], "igs": ["model/iges", "Initial Graphics Exchange Specification (IGES"], "i2g": ["application/vnd.intergeo", "Interactive Geometry Softwar"], "cdy": ["application/vnd.cinderella", "Interactive Geometry Software Cinderell"], "xpw": ["application/vnd.intercon.formnet", "Intercon FormNe"], "fcs": ["application/vnd.isac.fcs", "International Society for Advancement of Cytometr"], "ipfix": ["application/ipfix", "Internet Protocol Flow Information Expor"], "cer": ["application/pkix-cert", "Internet Public Key Infrastructure - Certificat"], "pki": ["application/pkixcmp", "Internet Public Key Infrastructure - Certificate Management Protocol"], "crl": ["application/pkix-crl", "Internet Public Key Infrastructure - Certificate Revocation List"], "pkipath": ["application/pkix-pkipath", "Internet Public Key Infrastructure - Certification Pat"], "igm": ["application/vnd.insors.igm", "IOCOM Visimee"], "rcprofile": ["application/vnd.ipunplugged.rcprofile", "IP Unplugged Roaming Clien"], "irp": ["application/vnd.irepository.package+xml", "iRepository / Lucidoc Edito"], "jad": ["text/vnd.sun.j2me.app-descriptor", "J2ME App Descripto"], "jar": ["application/java-archive", "Java Archiv"], "class": ["application/java-vm", "Java Bytecode Fil"], "jnlp": ["application/x-java-jnlp-file", "Java Network Launching Protoco"], "ser": ["application/java-serialized-object", "Java Serialized Objec"], "java": ["text/x-java-source", "Java Source Fil"], "js": ["application/javascript", "JavaScrip"], "json": ["application/json", "JavaScript Object Notation (JSON"], "joda": ["application/vnd.joost.joda-archive", "Joda Archiv"], "jpm": ["video/jpm", "JPEG 2000 Compound Image File Forma"], "jpeg": ["image/jpeg", "JPEG Imag"], "jpg": ["image/jpeg", "JPEG Imag"], "jpgv": ["video/jpeg", "JPGVide"], "ktz": ["application/vnd.kahootz", "Kahoot"], "mmd": ["application/vnd.chipnuts.karaoke-mmd", "Karaoke on Chipnuts Chipset"], "karbon": ["application/vnd.kde.karbon", "KDE KOffice Office Suite - Karbo"], "chrt": ["application/vnd.kde.kchart", "KDE KOffice Office Suite - KChar"], "kfo": ["application/vnd.kde.kformula", "KDE KOffice Office Suite - Kformul"], "flw": ["application/vnd.kde.kivio", "KDE KOffice Office Suite - Kivi"], "kon": ["application/vnd.kde.kontour", "KDE KOffice Office Suite - Kontou"], "kpr": ["application/vnd.kde.kpresenter", "KDE KOffice Office Suite - Kpresente"], "ksp": ["application/vnd.kde.kspread", "KDE KOffice Office Suite - Ksprea"], "kwd": ["application/vnd.kde.kword", "KDE KOffice Office Suite - Kwor"], "htke": ["application/vnd.kenameaapp", "Kenamea Ap"], "kia": ["application/vnd.kidspiration", "Kidspiratio"], "kne": ["application/vnd.kinar", "Kinar Application"], "sse": ["application/vnd.kodak-descriptor", "Kodak Storyshar"], "lasxml": ["application/vnd.las.las+xml", "Laser App Enterpris"], "latex": ["application/x-latex", "LaTe"], "lbd": ["application/vnd.llamagraphics.life-balance.desktop", "Life Balance - Desktop Editio"], "lbe": ["application/vnd.llamagraphics.life-balance.exchange+xml", "Life Balance - Exchange Forma"], "jam": ["application/vnd.jam", "Lightspeed Audio La"], "123": ["application/vnd.lotus-1-2-3", "Lotus 1-2-"], "apr": ["application/vnd.lotus-approach", "Lotus Approac"], "pre": ["application/vnd.lotus-freelance", "Lotus Freelanc"], "nsf": ["application/vnd.lotus-notes", "Lotus Note"], "org": ["application/vnd.lotus-organizer", "Lotus Organize"], "scm": ["application/vnd.lotus-screencam", "Lotus Screenca"], "lwp": ["application/vnd.lotus-wordpro", "Lotus Wordpr"], "lvp": ["audio/vnd.lucent.voice", "Lucent Voic"], "m3u": ["audio/x-mpegurl", "M3U (Multimedia Playlist"], "m4v": ["video/x-m4v", "M4"], "hqx": ["application/mac-binhex40", "Macintosh BinHex 4."], "portpkg": ["application/vnd.macports.portpkg", "MacPorts Port Syste"], "mgp": ["application/vnd.osgeo.mapguide.package", "MapGuide DBXM"], "mrc": ["application/marc", "MARC Format"], "mrcx": ["application/marcxml+xml", "MARC21 XML Schem"], "mxf": ["application/mxf", "Material Exchange Forma"], "nbp": ["application/vnd.wolfram.player", "Mathematica Notebook Playe"], "ma": ["application/mathematica", "Mathematica Notebook"], "mathml": ["application/mathml+xml", "Mathematical Markup Languag"], "mbox": ["application/mbox", "Mbox database file"], "mc1": ["application/vnd.medcalcdata", "MedCal"], "mscml": ["application/mediaservercontrol+xml", "Media Server Control Markup Languag"], "cdkey": ["application/vnd.mediastation.cdkey", "MediaRemot"], "mwf": ["application/vnd.mfer", "Medical Waveform Encoding Forma"], "mfm": ["application/vnd.mfmp", "Melody Format for Mobile Platfor"], "msh": ["model/mesh", "Mesh Data Typ"], "mads": ["application/mads+xml", "Metadata Authority Description Schem"], "mets": ["application/mets+xml", "Metadata Encoding and Transmission Standar"], "mods": ["application/mods+xml", "Metadata Object Description Schem"], "meta4": ["application/metalink4+xml", "Metalin"], "potm": ["application/vnd.ms-powerpoint.template.macroenabled.12", "Micosoft PowerPoint - Macro-Enabled Template Fil"], "docm": ["application/vnd.ms-word.document.macroenabled.12", "Micosoft Word - Macro-Enabled Documen"], "dotm": ["application/vnd.ms-word.template.macroenabled.12", "Micosoft Word - Macro-Enabled Templat"], "mcd": ["application/vnd.mcd", "Micro CADAM Helix D&"], "flo": ["application/vnd.micrografx.flo", "Micrograf"], "igx": ["application/vnd.micrografx.igx", "Micrografx iGrafx Professiona"], "es3": ["application/vnd.eszigno3+xml", "MICROSEC e-Szign"], "mdb": ["application/x-msaccess", "Microsoft Acces"], "asf": ["video/x-ms-asf", "Microsoft Advanced Systems Format (ASF"], "exe": ["application/x-dosexec", "Microsoft Applicatio"], "cil": ["application/vnd.ms-artgalry", "Microsoft Artgalr"], "cab": ["application/vnd.ms-cab-compressed", "Microsoft Cabinet Fil"], "ims": ["application/vnd.ms-ims", "Microsoft Class Serve"], "application": ["application/x-ms-application", "Microsoft ClickOnc"], "clp": ["application/x-msclip", "Microsoft Clipboard Cli"], "mdi": ["image/vnd.ms-modi", "Microsoft Document Imaging Forma"], "eot": ["application/vnd.ms-fontobject", "Microsoft Embedded OpenTyp"], "xls": ["application/vnd.ms-excel", "Microsoft Exce"], "xlam": ["application/vnd.ms-excel.addin.macroenabled.12", "Microsoft Excel - Add-In Fil"], "xlsb": ["application/vnd.ms-excel.sheet.binary.macroenabled.12", "Microsoft Excel - Binary Workboo"], "xltm": ["application/vnd.ms-excel.template.macroenabled.12", "Microsoft Excel - Macro-Enabled Template Fil"], "xlsm": ["application/vnd.ms-excel.sheet.macroenabled.12", "Microsoft Excel - Macro-Enabled Workboo"], "chm": ["application/vnd.ms-htmlhelp", "Microsoft Html Help Fil"], "crd": ["application/x-mscardfile", "Microsoft Information Car"], "lrm": ["application/vnd.ms-lrm", "Microsoft Learning Resource Modul"], "mvb": ["application/x-msmediaview", "Microsoft MediaVie"], "mny": ["application/x-msmoney", "Microsoft Mone"], "pptx": ["application/vnd.openxmlformats-officedocument.presentationml.presentation", "Microsoft Office - OOXML - Presentatio"], "sldx": ["application/vnd.openxmlformats-officedocument.presentationml.slide", "Microsoft Office - OOXML - Presentation (Slide"], "ppsx": ["application/vnd.openxmlformats-officedocument.presentationml.slideshow", "Microsoft Office - OOXML - Presentation (Slideshow"], "potx": ["application/vnd.openxmlformats-officedocument.presentationml.template", "Microsoft Office - OOXML - Presentation Templat"], "xlsx": ["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Microsoft Office - OOXML - Spreadshee"], "xltx": ["application/vnd.openxmlformats-officedocument.spreadsheetml.template", "Microsoft Office - OOXML - Spreadsheet Teplat"], "docx": ["application/vnd.openxmlformats-officedocument.wordprocessingml.document", "Microsoft Office - OOXML - Word Documen"], "dotx": ["application/vnd.openxmlformats-officedocument.wordprocessingml.template", "Microsoft Office - OOXML - Word Document Templat"], "obd": ["application/x-msbinder", "Microsoft Office Binde"], "thmx": ["application/vnd.ms-officetheme", "Microsoft Office System Release Them"], "onetoc": ["application/onenote", "Microsoft OneNot"], "py": ["text/x-python", "Python Source Fil"], "pyc": ["text/x-python", "Python Compiled Fil"], "pya": ["audio/vnd.ms-playready.media.pya", "Microsoft PlayReady Ecosyste"], "pyv": ["video/vnd.ms-playready.media.pyv", "Microsoft PlayReady Ecosystem Vide"], "ppt": ["application/vnd.ms-powerpoint", "Microsoft PowerPoin"], "ppam": ["application/vnd.ms-powerpoint.addin.macroenabled.12", "Microsoft PowerPoint - Add-in fil"], "sldm": ["application/vnd.ms-powerpoint.slide.macroenabled.12", "Microsoft PowerPoint - Macro-Enabled Open XML Slid"], "pptm": ["application/vnd.ms-powerpoint.presentation.macroenabled.12", "Microsoft PowerPoint - Macro-Enabled Presentation Fil"], "ppsm": ["application/vnd.ms-powerpoint.slideshow.macroenabled.12", "Microsoft PowerPoint - Macro-Enabled Slide Show Fil"], "mpp": ["application/vnd.ms-project", "Microsoft Projec"], "pub": ["application/x-mspublisher", "Microsoft Publishe"], "scd": ["application/x-msschedule", "Microsoft Schedule"], "xap": ["application/x-silverlight-app", "Microsoft Silverligh"], "stl": ["application/vnd.ms-pki.stl", "Microsoft Trust UI Provider - Certificate Trust Lin"], "cat": ["application/vnd.ms-pki.seccat", "Microsoft Trust UI Provider - Security Catalo"], "vsd": ["application/vnd.visio", "Microsoft Visi"], "wm": ["video/x-ms-wm", "Microsoft Windows Medi"], "wma": ["audio/x-ms-wma", "Microsoft Windows Media Audi"], "wax": ["audio/x-ms-wax", "Microsoft Windows Media Audio Redirecto"], "wmx": ["video/x-ms-wmx", "Microsoft Windows Media Audio/Video Playlis"], "wmd": ["application/x-ms-wmd", "Microsoft Windows Media Player Download Packag"], "wpl": ["application/vnd.ms-wpl", "Microsoft Windows Media Player Playlis"], "wmz": ["application/x-ms-wmz", "Microsoft Windows Media Player Skin Packag"], "wmv": ["video/x-ms-wmv", "Microsoft Windows Media Vide"], "wvx": ["video/x-ms-wvx", "Microsoft Windows Media Video Playlis"], "wmf": ["application/x-msmetafile", "Microsoft Windows Metafil"], "trm": ["application/x-msterminal", "Microsoft Windows Terminal Service"], "doc": ["application/msword", "Microsoft Wor"], "wri": ["application/x-mswrite", "Microsoft Wordpa"], "wps": ["application/vnd.ms-works", "Microsoft Work"], "xbap": ["application/x-ms-xbap", "Microsoft XAML Browser Applicatio"], "xps": ["application/vnd.ms-xpsdocument", "Microsoft XML Paper Specificatio"], "mid": ["audio/midi", "MIDI - Musical Instrument Digital Interfac"], "mpy": ["application/vnd.ibm.minipay", "MiniPa"], "afp": ["application/vnd.ibm.modcap", "MO:DCA-"], "rms": ["application/vnd.jcp.javame.midlet-rms", "Mobile Information Device Profil"], "tmo": ["application/vnd.tmobile-livetv", "MobileT"], "prc": ["application/x-mobipocket-ebook", "Mobipocke"], "mbk": ["application/vnd.mobius.mbk", "Mobius Management Systems - Basket fil"], "dis": ["application/vnd.mobius.dis", "Mobius Management Systems - Distribution Databas"], "plc": ["application/vnd.mobius.plc", "Mobius Management Systems - Policy Definition Language Fil"], "mqy": ["application/vnd.mobius.mqy", "Mobius Management Systems - Query Fil"], "msl": ["application/vnd.mobius.msl", "Mobius Management Systems - Script Languag"], "txf": ["application/vnd.mobius.txf", "Mobius Management Systems - Topic Index Fil"], "daf": ["application/vnd.mobius.daf", "Mobius Management Systems - UniversalArchiv"], "fly": ["text/vnd.fly", "mod_fly / fly.cg"], "mpc": ["application/vnd.mophun.certificate", "Mophun Certificat"], "mpn": ["application/vnd.mophun.application", "Mophun V"], "mj2": ["video/mj2", "Motion JPEG 200"], "mpga": ["audio/mpeg", "MPEG Audi"], "mxu": ["video/vnd.mpegurl", "MPEG Ur"], "mpeg": ["video/mpeg", "MPEG Vide"], "m21": ["application/mp21", "MPEG-2"], "mp4a": ["audio/mp4", "MPEG-4 Audi"], "mp4": ["application/mp4", "MPEG"], "m3u8": ["application/vnd.apple.mpegurl", "Multimedia Playlist Unicod"], "mus": ["application/vnd.musician", "MUsical Score Interpreted Code Invented for the ASCII designation of Notatio"], "msty": ["application/vnd.muvee.style", "Muvee Automatic Video Editin"], "mxml": ["application/xv+xml", "MXM"], "ngdat": ["application/vnd.nokia.n-gage.data", "N-Gage Game Dat"], "n-gage": ["application/vnd.nokia.n-gage.symbian.install", "N-Gage Game Installe"], "ncx": ["application/x-dtbncx+xml", "Navigation Control file for XML (for ePub"], "nc": ["application/x-netcdf", "Network Common Data Form (NetCDF"], "nlu": ["application/vnd.neurolanguage.nlu", "neuroLanguag"], "dna": ["application/vnd.dna", "New Moon Liftoff/DN"], "nnd": ["application/vnd.noblenet-directory", "NobleNet Director"], "nns": ["application/vnd.noblenet-sealer", "NobleNet Seale"], "nnw": ["application/vnd.noblenet-web", "NobleNet We"], "rpst": ["application/vnd.nokia.radio-preset", "Nokia Radio Application - Prese"], "rpss": ["application/vnd.nokia.radio-presets", "Nokia Radio Application - Prese"], "n3": ["text/n3", "Notation"], "edm": ["application/vnd.novadigm.edm", "Novadigm's RADIA and EDM product"], "edx": ["application/vnd.novadigm.edx", "Novadigm's RADIA and EDM product"], "ext": ["application/vnd.novadigm.ext", "Novadigm's RADIA and EDM product"], "gph": ["application/vnd.flographit", "NpGraphI"], "ecelp4800": ["audio/vnd.nuera.ecelp4800", "Nuera ECELP 480"], "ecelp7470": ["audio/vnd.nuera.ecelp7470", "Nuera ECELP 747"], "ecelp9600": ["audio/vnd.nuera.ecelp9600", "Nuera ECELP 960"], "oda": ["application/oda", "Office Document Architectur"], "ogx": ["application/ogg", "Og"], "oga": ["audio/ogg", "Ogg Audi"], "ogv": ["video/ogg", "Ogg Vide"], "dd2": ["application/vnd.oma.dd2+xml", "OMA Download Agent"], "oth": ["application/vnd.oasis.opendocument.text-web", "Open Document Text We"], "opf": ["application/oebps-package+xml", "Open eBook Publication Structur"], "qbo": ["application/vnd.intu.qbo", "Open Financial Exchang"], "oxt": ["application/vnd.openofficeorg.extension", "Open Office Extensio"], "osf": ["application/vnd.yamaha.openscoreformat", "Open Score Forma"], "weba": ["audio/webm", "Open Web Media Project - Audi"], "webm": ["video/webm", "Open Web Media Project - Vide"], "odc": ["application/vnd.oasis.opendocument.chart", "OpenDocument Char"], "otc": ["application/vnd.oasis.opendocument.chart-template", "OpenDocument Chart Templat"], "odb": ["application/vnd.oasis.opendocument.database", "OpenDocument Databas"], "odf": ["application/vnd.oasis.opendocument.formula", "OpenDocument Formul"], "odft": ["application/vnd.oasis.opendocument.formula-template", "OpenDocument Formula Templat"], "odg": ["application/vnd.oasis.opendocument.graphics", "OpenDocument Graphic"], "otg": ["application/vnd.oasis.opendocument.graphics-template", "OpenDocument Graphics Templat"], "odi": ["application/vnd.oasis.opendocument.image", "OpenDocument Imag"], "oti": ["application/vnd.oasis.opendocument.image-template", "OpenDocument Image Templat"], "odp": ["application/vnd.oasis.opendocument.presentation", "OpenDocument Presentatio"], "otp": ["application/vnd.oasis.opendocument.presentation-template", "OpenDocument Presentation Templat"], "ods": ["application/vnd.oasis.opendocument.spreadsheet", "OpenDocument Spreadshee"], "ots": ["application/vnd.oasis.opendocument.spreadsheet-template", "OpenDocument Spreadsheet Templat"], "odt": ["application/vnd.oasis.opendocument.text", "OpenDocument Tex"], "odm": ["application/vnd.oasis.opendocument.text-master", "OpenDocument Text Maste"], "ott": ["application/vnd.oasis.opendocument.text-template", "OpenDocument Text Templat"], "ktx": ["image/ktx", "OpenGL Textures (KTX"], "sxc": ["application/vnd.sun.xml.calc", "OpenOffice - Calc (Spreadsheet"], "stc": ["application/vnd.sun.xml.calc.template", "OpenOffice - Calc Template (Spreadsheet"], "sxd": ["application/vnd.sun.xml.draw", "OpenOffice - Draw (Graphics"], "std": ["application/vnd.sun.xml.draw.template", "OpenOffice - Draw Template (Graphics"], "sxi": ["application/vnd.sun.xml.impress", "OpenOffice - Impress (Presentation"], "sti": ["application/vnd.sun.xml.impress.template", "OpenOffice - Impress Template (Presentation"], "sxm": ["application/vnd.sun.xml.math", "OpenOffice - Math (Formula"], "sxw": ["application/vnd.sun.xml.writer", "OpenOffice - Writer (Text - HTML"], "sxg": ["application/vnd.sun.xml.writer.global", "OpenOffice - Writer (Text - HTML"], "stw": ["application/vnd.sun.xml.writer.template", "OpenOffice - Writer Template (Text - HTML"], "otf": ["application/x-font-otf", "OpenType Font Fil"], "osfpvg": ["application/vnd.yamaha.openscoreformat.osfpvg+xml", "OSFPV"], "dp": ["application/vnd.osgi.dp", "OSGi Deployment Packag"], "pdb": ["application/vnd.palm", "PalmOS Dat"], "p": ["text/x-pascal", "Pascal Source Fil"], "paw": ["application/vnd.pawaafile", "PawaaFIL"], "pclxl": ["application/vnd.hp-pclxl", "PCL 6 Enhanced (Formely PCL XL"], "efif": ["application/vnd.picsel", "Pcsel eFIF Fil"], "pcx": ["image/x-pcx", "PCX Imag"], "psd": ["image/vnd.adobe.photoshop", "Photoshop Documen"], "prf": ["application/pics-rules", "PICSRule"], "pic": ["image/x-pict", "PICT Imag"], "chat": ["application/x-chat", "pIRC"], "p10": ["application/pkcs10", "PKCS #10 - Certification Request Standar"], "p12": ["application/x-pkcs12", "PKCS #12 - Personal Information Exchange Syntax Standar"], "p7m": ["application/pkcs7-mime", "PKCS #7 - Cryptographic Message Syntax Standar"], "p7s": ["application/pkcs7-signature", "PKCS #7 - Cryptographic Message Syntax Standar"], "p7r": ["application/x-pkcs7-certreqresp", "PKCS #7 - Cryptographic Message Syntax Standard (Certificate Request Response"], "p7b": ["application/x-pkcs7-certificates", "PKCS #7 - Cryptographic Message Syntax Standard (Certificates"], "p8": ["application/pkcs8", "PKCS #8 - Private-Key Information Syntax Standar"], "plf": ["application/vnd.pocketlearn", "PocketLearn Viewer"], "pnm": ["image/x-portable-anymap", "Portable Anymap Imag"], "pbm": ["image/x-portable-bitmap", "Portable Bitmap Forma"], "pcf": ["application/x-font-pcf", "Portable Compiled Forma"], "pfr": ["application/font-tdpfr", "Portable Font Resourc"], "pgn": ["application/x-chess-pgn", "Portable Game Notation (Chess Games"], "pgm": ["image/x-portable-graymap", "Portable Graymap Forma"], "png": ["image/png", "Portable Network Graphics (PNG"], "ppm": ["image/x-portable-pixmap", "Portable Pixmap Forma"], "pskcxml": ["application/pskc+xml", "Portable Symmetric Key Containe"], "pml": ["application/vnd.ctc-posml", "PosM"], "ai": ["application/postscript", "PostScrip"], "pfa": ["application/x-font-type1", "PostScript Font"], "pbd": ["application/vnd.powerbuilder6", "PowerBuilde"], "": ["application/pgp-encrypted", "Pretty Good Privac"], "pgp": ["application/pgp-signature", "Pretty Good Privacy - Signatur"], "box": ["application/vnd.previewsystems.box", "Preview Systems ZipLock/VBo"], "ptid": ["application/vnd.pvi.ptid1", "Princeton Video Imag"], "pls": ["application/pls+xml", "Pronunciation Lexicon Specificatio"], "str": ["application/vnd.pg.format", "Proprietary P&G Standard Reporting Syste"], "ei6": ["application/vnd.pg.osasli", "Proprietary P&G Standard Reporting Syste"], "dsc": ["text/prs.lines.tag", "PRS Lines Ta"], "psf": ["application/x-font-linux-psf", "PSF Font"], "qps": ["application/vnd.publishare-delta-tree", "PubliShare Object"], "wg": ["application/vnd.pmi.widget", "Qualcomm's Plaza Mobile Interne"], "qxd": ["application/vnd.quark.quarkxpress", "QuarkXpres"], "esf": ["application/vnd.epson.esf", "QUASS Stream Playe"], "msf": ["application/vnd.epson.msf", "QUASS Stream Playe"], "ssf": ["application/vnd.epson.ssf", "QUASS Stream Playe"], "qam": ["application/vnd.epson.quickanime", "QuickAnime Playe"], "qfx": ["application/vnd.intu.qfx", "Quicke"], "qt": ["video/quicktime", "Quicktime Vide"], "rar": ["application/x-rar-compressed", "RAR Archiv"], "ram": ["audio/x-pn-realaudio", "Real Audio Soun"], "rmp": ["audio/x-pn-realaudio-plugin", "Real Audio Soun"], "rsd": ["application/rsd+xml", "Really Simple Discover"], "rm": ["application/vnd.rn-realmedia", "RealMedi"], "bed": ["application/vnd.realvnc.bed", "RealVN"], "mxl": ["application/vnd.recordare.musicxml", "Recordare Application"], "musicxml": ["application/vnd.recordare.musicxml+xml", "Recordare Application"], "rnc": ["application/relax-ng-compact-syntax", "Relax NG Compact Synta"], "rdz": ["application/vnd.data-vision.rdz", "RemoteDocs R-Viewe"], "rdf": ["application/rdf+xml", "Resource Description Framewor"], "rp9": ["application/vnd.cloanto.rp9", "RetroPlatform Playe"], "jisp": ["application/vnd.jisp", "RhymBo"], "rtf": ["application/rtf", "Rich Text Forma"], "rtx": ["text/richtext", "Rich Text Format (RTF"], "link66": ["application/vnd.route66.link66+xml", "ROUTE 66 Location Based Service"], "rss": ["application/rss+xml", "RSS - Really Simple Syndicatio"], "shf": ["application/shf+xml", "S Hexdump Forma"], "st": ["application/vnd.sailingtracker.track", "SailingTracke"], "svg": ["image/svg+xml", "Scalable Vector Graphics (SVG"], "sus": ["application/vnd.sus-calendar", "ScheduleU"], "sru": ["application/sru+xml", "Search/Retrieve via URL Response Forma"], "setpay": ["application/set-payment-initiation", "Secure Electronic Transaction - Paymen"], "setreg": ["application/set-registration-initiation", "Secure Electronic Transaction - Registratio"], "sema": ["application/vnd.sema", "Secured eMai"], "semd": ["application/vnd.semd", "Secured eMai"], "semf": ["application/vnd.semf", "Secured eMai"], "see": ["application/vnd.seemail", "SeeMai"], "snf": ["application/x-font-snf", "Server Normal Forma"], "spq": ["application/scvp-vp-request", "Server-Based Certificate Validation Protocol - Validation Policies - Reques"], "spp": ["application/scvp-vp-response", "Server-Based Certificate Validation Protocol - Validation Policies - Respons"], "scq": ["application/scvp-cv-request", "Server-Based Certificate Validation Protocol - Validation Reques"], "scs": ["application/scvp-cv-response", "Server-Based Certificate Validation Protocol - Validation Respons"], "sdp": ["application/sdp", "Session Description Protoco"], "etx": ["text/x-setext", "Setex"], "movie": ["video/x-sgi-movie", "SGI Movi"], "ifm": ["application/vnd.shana.informed.formdata", "Shana Informed Fille"], "itp": ["application/vnd.shana.informed.formtemplate", "Shana Informed Fille"], "iif": ["application/vnd.shana.informed.interchange", "Shana Informed Fille"], "ipk": ["application/vnd.shana.informed.package", "Shana Informed Fille"], "tfi": ["application/thraud+xml", "Sharing Transaction Fraud Dat"], "shar": ["application/x-shar", "Shell Archiv"], "rgb": ["image/x-rgb", "Silicon Graphics RGB Bitma"], "slt": ["application/vnd.epson.salt", "SimpleAnimeLite Playe"], "aso": ["application/vnd.accpac.simply.aso", "Simply Accountin"], "imp": ["application/vnd.accpac.simply.imp", "Simply Accounting - Data Impor"], "twd": ["application/vnd.simtech-mindmapper", "SimTech MindMappe"], "csp": ["application/vnd.commonspace", "Sixth Floor Media - CommonSpac"], "saf": ["application/vnd.yamaha.smaf-audio", "SMAF Audi"], "mmf": ["application/vnd.smaf", "SMAF Fil"], "spf": ["application/vnd.yamaha.smaf-phrase", "SMAF Phras"], "teacher": ["application/vnd.smart.teacher", "SMART Technologies App"], "svd": ["application/vnd.svd", "SourceView Documen"], "rq": ["application/sparql-query", "SPARQL - Quer"], "srx": ["application/sparql-results+xml", "SPARQL - Result"], "gram": ["application/srgs", "Speech Recognition Grammar Specificatio"], "grxml": ["application/srgs+xml", "Speech Recognition Grammar Specification - XM"], "ssml": ["application/ssml+xml", "Speech Synthesis Markup Languag"], "skp": ["application/vnd.koan", "SSEYO Koan Play Fil"], "sgml": ["text/sgml", "Standard Generalized Markup Language (SGML"], "sdc": ["application/vnd.stardivision.calc", "StarOffice - Cal"], "sda": ["application/vnd.stardivision.draw", "StarOffice - Dra"], "sdd": ["application/vnd.stardivision.impress", "StarOffice - Impres"], "smf": ["application/vnd.stardivision.math", "StarOffice - Mat"], "sdw": ["application/vnd.stardivision.writer", "StarOffice - Write"], "sgl": ["application/vnd.stardivision.writer-global", "StarOffice - Writer (Global"], "sm": ["application/vnd.stepmania.stepchart", "StepMani"], "sit": ["application/x-stuffit", "Stuffit Archiv"], "sitx": ["application/x-stuffitx", "Stuffit Archiv"], "sdkm": ["application/vnd.solent.sdkm+xml", "SudokuMagi"], "xo": ["application/vnd.olpc-sugar", "Sugar Linux Application Bundl"], "au": ["audio/basic", "Sun Audio - Au file forma"], "wqd": ["application/vnd.wqd", "SundaHus W"], "sis": ["application/vnd.symbian.install", "Symbian Install Packag"], "smi": ["application/smil+xml", "Synchronized Multimedia Integration Languag"], "xsm": ["application/vnd.syncml+xml", "SyncM"], "bdm": ["application/vnd.syncml.dm+wbxml", "SyncML - Device Managemen"], "xdm": ["application/vnd.syncml.dm+xml", "SyncML - Device Managemen"], "sv4cpio": ["application/x-sv4cpio", "System V Release 4 CPIO Archiv"], "sv4crc": ["application/x-sv4crc", "System V Release 4 CPIO Checksum Dat"], "sbml": ["application/sbml+xml", "Systems Biology Markup Languag"], "tsv": ["text/tab-separated-values", "Tab Seperated Value"], "tiff": ["image/tiff", "Tagged Image File Forma"], "tao": ["application/vnd.tao.intent-module-archive", "Tao Inten"], "tar": ["application/x-tar", "Tar File (Tape Archive"], "tcl": ["application/x-tcl", "Tcl Scrip"], "tex": ["application/x-tex", "Te"], "tfm": ["application/x-tex-tfm", "TeX Font Metri"], "tei": ["application/tei+xml", "Text Encoding and Interchang"], "txt": ["text/plain", "Text Fil"], "dxp": ["application/vnd.spotfire.dxp", "TIBCO Spotfir"], "sfs": ["application/vnd.spotfire.sfs", "TIBCO Spotfir"], "tsd": ["application/timestamped-data", "Time Stamped Data Envelop"], "tpt": ["application/vnd.trid.tpt", "TRI Systems Confi"], "mxs": ["application/vnd.triscape.mxs", "Triscape Map Explore"], "t": ["text/troff", "trof"], "tra": ["application/vnd.trueapp", "True BASI"], "ttf": ["application/x-font-ttf", "TrueType Fon"], "ttl": ["text/turtle", "Turtle (Terse RDF Triple Language"], "umj": ["application/vnd.umajin", "UMAJI"], "uoml": ["application/vnd.uoml+xml", "Unique Object Markup Languag"], "unityweb": ["application/vnd.unity", "Unity 3"], "ufd": ["application/vnd.ufdl", "Universal Forms Description Languag"], "uri": ["text/uri-list", "URI Resolution Service"], "utz": ["application/vnd.uiq.theme", "User Interface Quartz - Theme (Symbian"], "ustar": ["application/x-ustar", "Ustar (Uniform Standard Tape Archive"], "uu": ["text/x-uuencode", "UUEncod"], "vcs": ["text/x-vcalendar", "vCalenda"], "vcf": ["text/x-vcard", "vCar"], "vcd": ["application/x-cdlink", "Video C"], "vsf": ["application/vnd.vsf", "Viewport"], "wrl": ["model/vrml", "Virtual Reality Modeling Languag"], "vcx": ["application/vnd.vcx", "VirtualCatalo"], "mts": ["model/vnd.mts", "Virtue MT"], "vtu": ["model/vnd.vtu", "Virtue VT"], "vis": ["application/vnd.visionary", "Visionar"], "viv": ["video/vnd.vivo", "Viv"], "ccxml": ["application/ccxml+xml", "Voice Browser Call Contro"], "vxml": ["application/voicexml+xml", "VoiceXM"], "src": ["application/x-wais-source", "WAIS Sourc"], "wbxml": ["application/vnd.wap.wbxml", "WAP Binary XML (WBXML"], "wbmp": ["image/vnd.wap.wbmp", "WAP Bitamp (WBMP"], "wav": ["audio/x-wav", "Waveform Audio File Format (WAV"], "davmount": ["application/davmount+xml", "Web Distributed Authoring and Versionin"], "woff": ["application/x-font-woff", "Web Open Font Forma"], "wspolicy": ["application/wspolicy+xml", "Web Services Polic"], "webp": ["image/webp", "WebP Imag"], "wtb": ["application/vnd.webturbo", "WebTurb"], "wgt": ["application/widget", "Widget Packaging and XML Configuratio"], "hlp": ["application/winhlp", "WinHel"], "wml": ["text/vnd.wap.wml", "Wireless Markup Language (WML"], "wmls": ["text/vnd.wap.wmlscript", "Wireless Markup Language Script (WMLScript"], "wmlsc": ["application/vnd.wap.wmlscriptc", "WMLScrip"], "wpd": ["application/vnd.wordperfect", "Wordperfec"], "stf": ["application/vnd.wt.stf", "Worldtal"], "wsdl": ["application/wsdl+xml", "WSDL - Web Services Description Languag"], "xbm": ["image/x-xbitmap", "X BitMa"], "xpm": ["image/x-xpixmap", "X PixMa"], "xwd": ["image/x-xwindowdump", "X Window Dum"], "der": ["application/x-x509-ca-cert", "X.509 Certificat"], "fig": ["application/x-xfig", "Xfi"], "xhtml": ["application/xhtml+xml", "XHTML - The Extensible HyperText Markup Languag"], "xdf": ["application/xcap-diff+xml", "XML Configuration Access Protocol - XCAP Dif"], "xenc": ["application/xenc+xml", "XML Encryption Syntax and Processin"], "xer": ["application/patch-ops-error+xml", "XML Patch Framewor"], "rl": ["application/resource-lists+xml", "XML Resource List"], "rs": ["application/rls-services+xml", "XML Resource List"], "rld": ["application/resource-lists-diff+xml", "XML Resource Lists Dif"], "xslt": ["application/xslt+xml", "XML Transformation"], "xop": ["application/xop+xml", "XML-Binary Optimized Packagin"], "xpi": ["application/x-xpinstall", "XPInstall - Mozill"], "xspf": ["application/xspf+xml", "XSPF - XML Shareable Playlist Forma"], "xul": ["application/vnd.mozilla.xul+xml", "XUL - XML User Interface Languag"], "xyz": ["chemical/x-xyz", "XYZ File Forma"], "yaml": ["text/yaml", "YAML Ain't Markup Language / Yet Another Markup Languag"], "yang": ["application/yang", "YANG Data Modeling Languag"], "yin": ["application/yin+xml", "YIN (YANG - XML"], "zir": ["application/vnd.zul", "Z.U.L. Geometr"], "zip": ["application/zip", "Zip Archiv"], "zmm": ["application/vnd.handheld-entertainment+xml", "ZVUE Media Manage"], "zaz": ["application/vnd.zzazz.deck+xml", "Zzazz Dec"]}
{"#noext#": ["text/plain", "Text File"], "x3d": ["application/vnd.hzn-3d-crossword", "3D Crossword Plugin"], "3gp": ["video/3gpp", "3GPP audio/video container"], "3g2": ["video/3gpp2", "3GPP2 audio/video container"], "mseq": ["application/vnd.mseq", "3GPP MSEQ File"], "pwn": ["application/vnd.3m.post-it-notes", "3M Post It Notes"], "plb": ["application/vnd.3gpp.pic-bw-large", "3rd Generation Partnership Project - Pic Large"], "psb": ["application/vnd.3gpp.pic-bw-small", "3rd Generation Partnership Project - Pic Small"], "pvb": ["application/vnd.3gpp.pic-bw-var", "3rd Generation Partnership Project - Pic Var"], "tcap": ["application/vnd.3gpp2.tcap", "3rd Generation Partnership Project - Transaction Capabilities Application Part"], "7z": ["application/x-7z-compressed", "7-zip archive"], "abw": ["application/x-abiword", "AbiWord document"], "ace": ["application/x-ace-compressed", "Ace Archive"], "acc": ["application/vnd.americandynamics.acc", "Active Content Compression"], "acu": ["application/vnd.acucobol", "ACU Cobol"], "atc": ["application/vnd.acucorp", "ACU Cobol"], "adp": ["audio/adpcm", "Adaptive differential pulse-code modulation"], "aab": ["application/x-authorware-bin", "Adobe (Macropedia) Authorware - Binary File"], "aam": ["application/x-authorware-map", "Adobe (Macropedia) Authorware - Map"], "aas": ["application/x-authorware-seg", "Adobe (Macropedia) Authorware - Segment File"], "air": ["application/vnd.adobe.air-application-installer-package+zip", "Adobe AIR Application"], "swf": ["application/x-shockwave-flash", "Small web format (SWF) or Adobe Flash document"], "fxp": ["application/vnd.adobe.fxp", "Adobe Flex Project"], "pdf": ["application/pdf", "Adobe Portable Document Format (PDF)"], "ppd": ["application/vnd.cups-ppd", "Adobe PostScript Printer Description File Format"], "dir": ["application/x-director", "Adobe Shockwave Player"], "xdp": ["application/vnd.adobe.xdp+xml", "Adobe XML Data Package"], "xfdf": ["application/vnd.adobe.xfdf", "Adobe XML Forms Data Format"], "aac": ["audio/aac", "AAC audio"], "ahead": ["application/vnd.ahead.space", "Ahead AIR Application"], "azf": ["application/vnd.airzip.filesecure.azf", "AirZip FileSECURE"], "azs": ["application/vnd.airzip.filesecure.azs", "AirZip FileSECURE"], "azw": ["application/vnd.amazon.ebook", "Amazon Kindle eBook format"], "ami": ["application/vnd.amiga.ami", "AmigaDE"], "/A": ["application/andrew-inset", "Andrew Toolkit"], "apk": ["application/vnd.android.package-archive", "Android Package Archive"], "cii": ["application/vnd.anser-web-certificate-issue-initiation", "ANSER-WEB Terminal Client - Certificate Issue"], "fti": ["application/vnd.anser-web-funds-transfer-initiation", "ANSER-WEB Terminal Client - Web Funds Transfer"], "atx": ["application/vnd.antix.game-component", "Antix Game Player"], "mpkg": ["application/vnd.apple.installer+xml", "Apple Installer Package"], "aw": ["application/applixware", "Applixware"], "les": ["application/vnd.hhe.lesson-player", "Archipelago Lesson Player"], "swi": ["application/vnd.aristanetworks.swi", "Arista Networks Software Image"], "s": ["text/x-asm", "Assembler Source File"], "atomcat": ["application/atomcat+xml", "Atom Publishing Protocol"], "atomsvc": ["application/atomsvc+xml", "Atom Publishing Protocol Service Document"], "xml": ["application/xml", "XML"], "atom": ["application/atom+xml", "Atom Syndication Format"], "ac": ["application/pkix-attr-cert", "Attribute Certificate"], "aif": ["audio/x-aiff", "Audio Interchange File Format"], "avi": ["video/x-msvideo", "AVI: Audio Video Interleave"], "aep": ["application/vnd.audiograph", "Audiograph"], "dxf": ["image/vnd.dxf", "AutoCAD DXF"], "dwf": ["model/vnd.dwf", "Autodesk Design Web Format (DWF)"], "par": ["text/plain-bas", "BAS Partitur Format"], "bcpio": ["application/x-bcpio", "Binary CPIO Archive"], "bin": ["application/octet-stream", "Any kind of binary data"], "bmp": ["image/bmp", "Windows OS/2 Bitmap Graphics"], "torrent": ["application/x-bittorrent", "BitTorrent"], "cod": ["application/vnd.rim.cod", "Blackberry COD File"], "mpm": ["application/vnd.blueice.multipass", "Blueice Research Multipass"], "bmi": ["application/vnd.bmi", "BMI Drawing Data Interchange"], "sh": ["application/x-sh", "Bourne shell script"], "btif": ["image/prs.btif", "BTIF"], "rep": ["application/vnd.businessobjects", "BusinessObjects"], "bz": ["application/x-bzip", "BZip archive"], "bz2": ["application/x-bzip2", "BZip2 archive"], "csh": ["application/x-csh", "C-Shell script"], "c": ["text/x-c", "C Source File"], "cdxml": ["application/vnd.chemdraw+xml", "CambridgeSoft Chem Draw"], "css": ["text/css", "Cascading Style Sheets (CSS)"], "cdx": ["chemical/x-cdx", "ChemDraw eXchange file"], "cml": ["chemical/x-cml", "Chemical Markup Language"], "csml": ["chemical/x-csml", "Chemical Style Markup Language"], "cdbcmsg": ["application/vnd.contact.cmsg", "CIM Database"], "cla": ["application/vnd.claymore", "Claymore Data Files"], "c4g": ["application/vnd.clonk.c4group", "Clonk Game"], "sub": ["image/vnd.dvb.subtitle", "Close Captioning - Subtitle"], "cdmia": ["application/cdmi-capability", "Cloud Data Management Interface (CDMI) - Capability"], "cdmic": ["application/cdmi-container", "Cloud Data Management Interface (CDMI) - Contaimer"], "cdmid": ["application/cdmi-domain", "Cloud Data Management Interface (CDMI) - Domain"], "cdmio": ["application/cdmi-object", "Cloud Data Management Interface (CDMI) - Object"], "cdmiq": ["application/cdmi-queue", "Cloud Data Management Interface (CDMI) - Queue"], "c11amc": ["application/vnd.cluetrust.cartomobile-config", "ClueTrust CartoMobile - Config"], "c11amz": ["application/vnd.cluetrust.cartomobile-config-pkg", "ClueTrust CartoMobile - Config Package"], "ras": ["image/x-cmu-raster", "CMU Image"], "dae": ["model/vnd.collada+xml", "COLLADA"], "csv": ["text/csv", "Comma-separated values (CSV)"], "cpt": ["application/mac-compactpro", "Compact Pro"], "wmlc": ["application/vnd.wap.wmlc", "Compiled Wireless Markup Language (WMLC)"], "cgm": ["image/cgm", "Computer Graphics Metafile"], "ice": ["x-conference/x-cooltalk", "CoolTalk"], "cmx": ["image/x-cmx", "Corel Metafile Exchange (CMX)"], "xar": ["application/vnd.xara", "CorelXARA"], "car": ["application/octet-stream", "SAP Compressed File (Old)"], "cmc": ["application/vnd.cosmocaller", "CosmoCaller"], "cpio": ["application/x-cpio", "CPIO Archive"], "clkx": ["application/vnd.crick.clicker", "CrickSoftware - Clicker"], "clkk": ["application/vnd.crick.clicker.keyboard", "CrickSoftware - Clicker - Keyboard"], "clkp": ["application/vnd.crick.clicker.palette", "CrickSoftware - Clicker - Palette"], "clkt": ["application/vnd.crick.clicker.template", "CrickSoftware - Clicker - Template"], "clkw": ["application/vnd.crick.clicker.wordbank", "CrickSoftware - Clicker - Wordbank"], "wbs": ["application/vnd.criticaltools.wbs+xml", "Critical Tools - PERT Chart EXPERT"], "cryptonote": ["application/vnd.rig.cryptonote", "CryptoNote"], "cif": ["chemical/x-cif", "Crystallographic Interchange Format"], "cmdf": ["chemical/x-cmdf", "CrystalMaker Data Format"], "cu": ["application/cu-seeme", "CU-SeeMe"], "cww": ["application/prs.cww", "CU-Writer"], "curl": ["text/vnd.curl", "Curl - Applet"], "dcurl": ["text/vnd.curl.dcurl", "Curl - Detached Applet"], "mcurl": ["text/vnd.curl.mcurl", "Curl - Manifest File"], "scurl": ["text/vnd.curl.scurl", "Curl - Source Code"], "pcurl": ["application/vnd.curl.pcurl", "CURL Applet"], "cmp": ["application/vnd.yellowriver-custom-menu", "CustomMenu"], "dssc": ["application/dssc+der", "Data Structure for the Security Suitability of Cryptographic Algorithms"], "xdssc": ["application/dssc+xml", "Data Structure for the Security Suitability of Cryptographic Algorithms"], "deb": ["application/x-debian-package", "Debian Package"], "uva": ["audio/vnd.dece.audio", "DECE Audio"], "uvi": ["image/vnd.dece.graphic", "DECE Graphic"], "uvh": ["video/vnd.dece.hd", "DECE High Definition Video"], "uvm": ["video/vnd.dece.mobile", "DECE Mobile Video"], "uvu": ["video/vnd.uvvu.mp4", "DECE MP4"], "uvp": ["video/vnd.dece.pd", "DECE PD Video"], "uvs": ["video/vnd.dece.sd", "DECE SD Video"], "uvv": ["video/vnd.dece.video", "DECE Video"], "dvi": ["application/x-dvi", "Device Independent File Format (DVI)"], "seed": ["application/vnd.fdsn.seed", "Digital Siesmograph Networks - SEED Datafiles"], "dtb": ["application/x-dtbook+xml", "Digital Talking Book"], "res": ["application/x-dtbresource+xml", "Digital Talking Book - Resource File"], "ait": ["application/vnd.dvb.ait", "Digital Video Broadcasting"], "svc": ["application/vnd.dvb.service", "Digital Video Broadcasting"], "eol": ["audio/vnd.digital-winds", "Digital Winds Music"], "djvu": ["image/vnd.djvu", "DjVu"], "dtd": ["application/xml-dtd", "Document Type Definition"], "mlp": ["application/vnd.dolby.mlp", "Dolby Meridian Lossless Packing"], "wad": ["application/x-doom", "Doom Video Game"], "dpg": ["application/vnd.dpgraph", "DPGraph"], "dra": ["audio/vnd.dra", "DRA Audio"], "dfac": ["application/vnd.dreamfactory", "DreamFactory"], "dts": ["audio/vnd.dts", "DTS Audio"], "dtshd": ["audio/vnd.dts.hd", "DTS High Definition Audio"], "dwg": ["image/vnd.dwg", "DWG Drawing"], "geo": ["application/vnd.dynageo", "DynaGeo"], "es": ["application/ecmascript", "ECMAScript"], "mag": ["application/vnd.ecowin.chart", "EcoWin Chart"], "mmr": ["image/vnd.fujixerox.edmics-mmr", "EDMICS 2000"], "rlc": ["image/vnd.fujixerox.edmics-rlc", "EDMICS 2000"], "exi": ["application/exi", "Efficient XML Interchange"], "mgz": ["application/vnd.proteus.magazine", "EFI Proteus"], "epub": ["application/epub+zip", "Electronic publication (EPUB)"], "eml": ["message/rfc822", "Email Message"], "nml": ["application/vnd.enliven", "Enliven Viewer"], "xpr": ["application/vnd.is-xpr", "Express by Infoseek"], "xif": ["image/vnd.xiff", "eXtended Image File Format (XIFF)"], "xfdl": ["application/vnd.xfdl", "Extensible Forms Description Language"], "emma": ["application/emma+xml", "Extensible MultiModal Annotation"], "ez2": ["application/vnd.ezpix-album", "EZPix Secure Photo Album"], "ez3": ["application/vnd.ezpix-package", "EZPix Secure Photo Album"], "fst": ["image/vnd.fst", "FAST Search & Transfer ASA"], "fvt": ["video/vnd.fvt", "FAST Search & Transfer ASA"], "fbs": ["image/vnd.fastbidsheet", "FastBid Sheet"], "fe_launch": ["application/vnd.denovo.fcselayout-link", "FCS Express Layout Link"], "f4v": ["video/x-f4v", "Flash Video"], "flv": ["video/x-flv", "Flash Video"], "fpx": ["image/vnd.fpx", "FlashPix"], "npx": ["image/vnd.net-fpx", "FlashPix"], "flx": ["text/vnd.fmi.flexstor", "FLEXSTOR"], "fli": ["video/x-fli", "FLI/FLC Animation Format"], "ftc": ["application/vnd.fluxtime.clip", "FluxTime Clip"], "fdf": ["application/vnd.fdf", "Forms Data Format"], "f": ["text/x-fortran", "Fortran Source File"], "mif": ["application/vnd.mif", "FrameMaker Interchange Format"], "fm": ["application/vnd.framemaker", "FrameMaker Normal Format"], "fh": ["image/x-freehand", "FreeHand MX"], "fsc": ["application/vnd.fsc.weblaunch", "Friendly Software Corporation"], "fnc": ["application/vnd.frogans.fnc", "Frogans Player"], "ltf": ["application/vnd.frogans.ltf", "Frogans Player"], "ddd": ["application/vnd.fujixerox.ddd", "Fujitsu - Xerox 2D CAD Data"], "xdw": ["application/vnd.fujixerox.docuworks", "Fujitsu - Xerox DocuWorks"], "xbd": ["application/vnd.fujixerox.docuworks.binder", "Fujitsu - Xerox DocuWorks Binder"], "oas": ["application/vnd.fujitsu.oasys", "Fujitsu Oasys"], "oa2": ["application/vnd.fujitsu.oasys2", "Fujitsu Oasys"], "oa3": ["application/vnd.fujitsu.oasys3", "Fujitsu Oasys"], "fg5": ["application/vnd.fujitsu.oasysgp", "Fujitsu Oasys"], "bh2": ["application/vnd.fujitsu.oasysprs", "Fujitsu Oasys"], "spl": ["application/x-futuresplash", "FutureSplash Animator"], "fzs": ["application/vnd.fuzzysheet", "FuzzySheet"], "g3": ["image/g3fax", "G3 Fax Image"], "gmx": ["application/vnd.gmx", "GameMaker ActiveX"], "gtw": ["model/vnd.gtw", "Gen-Trix Studio"], "txd": ["application/vnd.genomatix.tuxedo", "Genomatix Tuxedo Framework"], "ggb": ["application/vnd.geogebra.file", "GeoGebra"], "ggt": ["application/vnd.geogebra.tool", "GeoGebra"], "gdl": ["model/vnd.gdl", "Geometric Description Language (GDL)"], "gex": ["application/vnd.geometry-explorer", "GeoMetry Explorer"], "gxt": ["application/vnd.geonext", "GEONExT and JSXGraph"], "g2w": ["application/vnd.geoplan", "GeoplanW"], "g3w": ["application/vnd.geospace", "GeospacW"], "gsf": ["application/x-font-ghostscript", "Ghostscript Font"], "bdf": ["application/x-font-bdf", "Glyph Bitmap Distribution Format"], "gtar": ["application/x-gtar", "GNU Tar Files"], "texinfo": ["application/x-texinfo", "GNU Texinfo Document"], "gnumeric": ["application/x-gnumeric", "Gnumeric"], "kml": ["application/vnd.google-earth.kml+xml", "Google Earth - KML"], "kmz": ["application/vnd.google-earth.kmz", "Google Earth - Zipped KML"], "gqf": ["application/vnd.grafeq", "GrafEq"], "gif": ["image/gif", "Graphics Interchange Format (GIF)"], "gv": ["text/vnd.graphviz", "Graphviz"], "gac": ["application/vnd.groove-account", "Groove - Account"], "ghf": ["application/vnd.groove-help", "Groove - Help"], "gim": ["application/vnd.groove-identity-message", "Groove - Identity Message"], "grv": ["application/vnd.groove-injector", "Groove - Injector"], "gtm": ["application/vnd.groove-tool-message", "Groove - Tool Message"], "tpl": ["application/vnd.groove-tool-template", "Groove - Tool Template"], "vcg": ["application/vnd.groove-vcard", "Groove - Vcard"], "h261": ["video/h261", "H.261"], "h263": ["video/h263", "H.263"], "h264": ["video/h264", "H.264"], "hpid": ["application/vnd.hp-hpid", "Hewlett Packard Instant Delivery"], "hps": ["application/vnd.hp-hps", "Hewlett-Packard's WebPrintSmart"], "hdf": ["application/x-hdf", "Hierarchical Data Format"], "rip": ["audio/vnd.rip", "Hit'n'Mix"], "hbci": ["application/vnd.hbci", "Homebanking Computer Interface (HBCI)"], "jlt": ["application/vnd.hp-jlyt", "HP Indigo Digital Press - Job Layout Languate"], "pcl": ["application/vnd.hp-pcl", "HP Printer Command Language"], "hpgl": ["application/vnd.hp-hpgl", "HP-GL/2 and HP RTL"], "hvs": ["application/vnd.yamaha.hv-script", "HV Script"], "hvd": ["application/vnd.yamaha.hv-dic", "HV Voice Dictionary"], "hvp": ["application/vnd.yamaha.hv-voice", "HV Voice Parameter"], "sfd-hdstx": ["application/vnd.hydrostatix.sof-data", "Hydrostatix Master Suite"], "stk": ["application/hyperstudio", "Hyperstudio"], "hal": ["application/vnd.hal+xml", "Hypertext Application Language"], "html": ["text/html", "HyperText Markup Language (HTML)"], "irm": ["application/vnd.ibm.rights-management", "IBM DB2 Rights Manager"], "sc": ["application/vnd.ibm.secure-container", "IBM Electronic Media Management System - Secure Container"], "ics": ["text/calendar", "iCalendar format"], "icc": ["application/vnd.iccprofile", "ICC profile"], "ico": ["image/vnd.microsoft.icon", "Icon format"], "igl": ["application/vnd.igloader", "igLoader"], "ief": ["image/ief", "Image Exchange Format"], "ivp": ["application/vnd.immervision-ivp", "ImmerVision PURE Players"], "ivu": ["application/vnd.immervision-ivu", "ImmerVision PURE Players"], "rif": ["application/reginfo+xml", "IMS Networks"], "3dml": ["text/vnd.in3d.3dml", "In3D - 3DML"], "spot": ["text/vnd.in3d.spot", "In3D - 3DML"], "igs": ["model/iges", "Initial Graphics Exchange Specification (IGES)"], "i2g": ["application/vnd.intergeo", "Interactive Geometry Software"], "cdy": ["application/vnd.cinderella", "Interactive Geometry Software Cinderella"], "xpw": ["application/vnd.intercon.formnet", "Intercon FormNet"], "fcs": ["application/vnd.isac.fcs", "International Society for Advancement of Cytometry"], "ipfix": ["application/ipfix", "Internet Protocol Flow Information Export"], "cer": ["application/pkix-cert", "Internet Public Key Infrastructure - Certificate"], "pki": ["application/pkixcmp", "Internet Public Key Infrastructure - Certificate Management Protocole"], "crl": ["application/pkix-crl", "Internet Public Key Infrastructure - Certificate Revocation Lists"], "pkipath": ["application/pkix-pkipath", "Internet Public Key Infrastructure - Certification Path"], "igm": ["application/vnd.insors.igm", "IOCOM Visimeet"], "rcprofile": ["application/vnd.ipunplugged.rcprofile", "IP Unplugged Roaming Client"], "irp": ["application/vnd.irepository.package+xml", "iRepository / Lucidoc Editor"], "jad": ["text/vnd.sun.j2me.app-descriptor", "J2ME App Descriptor"], "jar": ["application/java-archive", "Java Archive (JAR)"], "class": ["application/java-vm", "Java Bytecode File"], "jnlp": ["application/x-java-jnlp-file", "Java Network Launching Protocol"], "ser": ["application/java-serialized-object", "Java Serialized Object"], "java": ["text/x-java-source", "Java Source File"], "js": ["text/javascript", "JavaScript"], "json": ["application/json", "JSON format"], "joda": ["application/vnd.joost.joda-archive", "Joda Archive"], "jpm": ["video/jpm", "JPEG 2000 Compound Image File Format"], "jpeg": ["image/jpeg", "JPEG images"], "jpg": ["image/jpeg", "JPEG images"], "jpgv": ["video/jpeg", "JPGVideo"], "ktz": ["application/vnd.kahootz", "Kahootz"], "mmd": ["application/vnd.chipnuts.karaoke-mmd", "Karaoke on Chipnuts Chipsets"], "karbon": ["application/vnd.kde.karbon", "KDE KOffice Office Suite - Karbon"], "chrt": ["application/vnd.kde.kchart", "KDE KOffice Office Suite - KChart"], "kfo": ["application/vnd.kde.kformula", "KDE KOffice Office Suite - Kformula"], "flw": ["application/vnd.kde.kivio", "KDE KOffice Office Suite - Kivio"], "kon": ["application/vnd.kde.kontour", "KDE KOffice Office Suite - Kontour"], "kpr": ["application/vnd.kde.kpresenter", "KDE KOffice Office Suite - Kpresenter"], "ksp": ["application/vnd.kde.kspread", "KDE KOffice Office Suite - Kspread"], "kwd": ["application/vnd.kde.kword", "KDE KOffice Office Suite - Kword"], "htke": ["application/vnd.kenameaapp", "Kenamea App"], "kia": ["application/vnd.kidspiration", "Kidspiration"], "kne": ["application/vnd.kinar", "Kinar Applications"], "sse": ["application/vnd.kodak-descriptor", "Kodak Storyshare"], "lasxml": ["application/vnd.las.las+xml", "Laser App Enterprise"], "latex": ["application/x-latex", "LaTeX"], "lbd": ["application/vnd.llamagraphics.life-balance.desktop", "Life Balance - Desktop Edition"], "lbe": ["application/vnd.llamagraphics.life-balance.exchange+xml", "Life Balance - Exchange Format"], "jam": ["application/vnd.jam", "Lightspeed Audio Lab"], ".123": ["application/vnd.lotus-1-2-3", "Lotus 1-2-3"], "apr": ["application/vnd.lotus-approach", "Lotus Approach"], "pre": ["application/vnd.lotus-freelance", "Lotus Freelance"], "nsf": ["application/vnd.lotus-notes", "Lotus Notes"], "org": ["application/vnd.lotus-organizer", "Lotus Organizer"], "scm": ["application/vnd.lotus-screencam", "Lotus Screencam"], "lwp": ["application/vnd.lotus-wordpro", "Lotus Wordpro"], "lvp": ["audio/vnd.lucent.voice", "Lucent Voice"], "m3u": ["audio/x-mpegurl", "M3U (Multimedia Playlist)"], "m4v": ["video/x-m4v", "M4v"], "hqx": ["application/mac-binhex40", "Macintosh BinHex 4.0"], "portpkg": ["application/vnd.macports.portpkg", "MacPorts Port System"], "mp3": ["audio/mpeg", "MP3 audio"], "mp4": ["application/mp4", "MPEG4"], "mgp": ["application/vnd.osgeo.mapguide.package", "MapGuide DBXML"], "mrc": ["application/marc", "MARC Formats"], "mrcx": ["application/marcxml+xml", "MARC21 XML Schema"], "mxf": ["application/mxf", "Material Exchange Format"], "nbp": ["application/vnd.wolfram.player", "Mathematica Notebook Player"], "ma": ["application/mathematica", "Mathematica Notebooks"], "mathml": ["application/mathml+xml", "Mathematical Markup Language"], "mbox": ["application/mbox", "Mbox database files"], "mc1": ["application/vnd.medcalcdata", "MedCalc"], "mscml": ["application/mediaservercontrol+xml", "Media Server Control Markup Language"], "cdkey": ["application/vnd.mediastation.cdkey", "MediaRemote"], "mwf": ["application/vnd.mfer", "Medical Waveform Encoding Format"], "mfm": ["application/vnd.mfmp", "Melody Format for Mobile Platform"], "msh": ["model/mesh", "Mesh Data Type"], "mads": ["application/mads+xml", "Metadata Authority Description Schema"], "mets": ["application/mets+xml", "Metadata Encoding and Transmission Standard"], "mods": ["application/mods+xml", "Metadata Object Description Schema"], "meta4": ["application/metalink4+xml", "Metalink"], "potm": ["application/vnd.ms-powerpoint.template.macroenabled.12", "Micosoft PowerPoint - Macro-Enabled Template File"], "docm": ["application/vnd.ms-word.document.macroenabled.12", "Micosoft Word - Macro-Enabled Document"], "dotm": ["application/vnd.ms-word.template.macroenabled.12", "Micosoft Word - Macro-Enabled Template"], "mcd": ["application/vnd.mcd", "Micro CADAM Helix D&D"], "flo": ["application/vnd.micrografx.flo", "Micrografx"], "igx": ["application/vnd.micrografx.igx", "Micrografx iGrafx Professional"], "es3": ["application/vnd.eszigno3+xml", "MICROSEC e-Szign\u00a2"], "mdb": ["application/x-msaccess", "Microsoft Access"], "asf": ["video/x-ms-asf", "Microsoft Advanced Systems Format (ASF)"], "exe": ["application/x-dosexec", "Microsoft Application"], "cil": ["application/vnd.ms-artgalry", "Microsoft Artgalry"], "cab": ["application/vnd.ms-cab-compressed", "Microsoft Cabinet File"], "ims": ["application/vnd.ms-ims", "Microsoft Class Server"], "application": ["application/x-ms-application", "Microsoft ClickOnce"], "clp": ["application/x-msclip", "Microsoft Clipboard Clip"], "mdi": ["image/vnd.ms-modi", "Microsoft Document Imaging Format"], "eot": ["application/vnd.ms-fontobject", "MS Embedded OpenType fonts"], "xls": ["application/vnd.ms-excel", "Microsoft Excel"], "xlam": ["application/vnd.ms-excel.addin.macroenabled.12", "Microsoft Excel - Add-In File"], "xlsb": ["application/vnd.ms-excel.sheet.binary.macroenabled.12", "Microsoft Excel - Binary Workbook"], "xltm": ["application/vnd.ms-excel.template.macroenabled.12", "Microsoft Excel - Macro-Enabled Template File"], "xlsm": ["application/vnd.ms-excel.sheet.macroenabled.12", "Microsoft Excel - Macro-Enabled Workbook"], "chm": ["application/vnd.ms-htmlhelp", "Microsoft Html Help File"], "crd": ["application/x-mscardfile", "Microsoft Information Card"], "lrm": ["application/vnd.ms-lrm", "Microsoft Learning Resource Module"], "mvb": ["application/x-msmediaview", "Microsoft MediaView"], "mny": ["application/x-msmoney", "Microsoft Money"], "pptx": ["application/vnd.openxmlformats-officedocument.presentationml.presentation", "Microsoft PowerPoint (OpenXML)"], "sldx": ["application/vnd.openxmlformats-officedocument.presentationml.slide", "Microsoft Office - OOXML - Presentation (Slide)"], "ppsx": ["application/vnd.openxmlformats-officedocument.presentationml.slideshow", "Microsoft Office - OOXML - Presentation (Slideshow)"], "potx": ["application/vnd.openxmlformats-officedocument.presentationml.template", "Microsoft Office - OOXML - Presentation Template"], "xlsx": ["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Microsoft Excel (OpenXML)"], "xltx": ["application/vnd.openxmlformats-officedocument.spreadsheetml.template", "Microsoft Office - OOXML - Spreadsheet Teplate"], "docx": ["application/vnd.openxmlformats-officedocument.wordprocessingml.document", "Microsoft Word (OpenXML)"], "dotx": ["application/vnd.openxmlformats-officedocument.wordprocessingml.template", "Microsoft Office - OOXML - Word Document Template"], "obd": ["application/x-msbinder", "Microsoft Office Binder"], "thmx": ["application/vnd.ms-officetheme", "Microsoft Office System Release Theme"], "onetoc": ["application/onenote", "Microsoft OneNote"], "py": ["text/x-python", "Python Source File"], "pyc": ["text/x-python", "Python Compiled File"], "pya": ["audio/vnd.ms-playready.media.pya", "Microsoft PlayReady Ecosystem"], "pyv": ["video/vnd.ms-playready.media.pyv", "Microsoft PlayReady Ecosystem Video"], "ppt": ["application/vnd.ms-powerpoint", "Microsoft PowerPoint"], "ppam": ["application/vnd.ms-powerpoint.addin.macroenabled.12", "Microsoft PowerPoint - Add-in file"], "sldm": ["application/vnd.ms-powerpoint.slide.macroenabled.12", "Microsoft PowerPoint - Macro-Enabled Open XML Slide"], "pptm": ["application/vnd.ms-powerpoint.presentation.macroenabled.12", "Microsoft PowerPoint - Macro-Enabled Presentation File"], "ppsm": ["application/vnd.ms-powerpoint.slideshow.macroenabled.12", "Microsoft PowerPoint - Macro-Enabled Slide Show File"], "mpp": ["application/vnd.ms-project", "Microsoft Project"], "pub": ["application/x-mspublisher", "Microsoft Publisher"], "scd": ["application/x-msschedule", "Microsoft Schedule+"], "xap": ["application/x-silverlight-app", "Microsoft Silverlight"], "stl": ["application/vnd.ms-pki.stl", "Microsoft Trust UI Provider - Certificate Trust Link"], "cat": ["application/vnd.ms-pki.seccat", "Microsoft Trust UI Provider - Security Catalog"], "vsd": ["application/vnd.visio", "Microsoft Visio"], "wm": ["video/x-ms-wm", "Microsoft Windows Media"], "wma": ["audio/x-ms-wma", "Microsoft Windows Media Audio"], "wax": ["audio/x-ms-wax", "Microsoft Windows Media Audio Redirector"], "wmx": ["video/x-ms-wmx", "Microsoft Windows Media Audio/Video Playlist"], "wmd": ["application/x-ms-wmd", "Microsoft Windows Media Player Download Package"], "wpl": ["application/vnd.ms-wpl", "Microsoft Windows Media Player Playlist"], "wmz": ["application/x-ms-wmz", "Microsoft Windows Media Player Skin Package"], "wmv": ["video/x-ms-wmv", "Microsoft Windows Media Video"], "wvx": ["video/x-ms-wvx", "Microsoft Windows Media Video Playlist"], "wmf": ["application/x-msmetafile", "Microsoft Windows Metafile"], "trm": ["application/x-msterminal", "Microsoft Windows Terminal Services"], "doc": ["application/msword", "Microsoft Word"], "wri": ["application/x-mswrite", "Microsoft Wordpad"], "wps": ["application/vnd.ms-works", "Microsoft Works"], "xbap": ["application/x-ms-xbap", "Microsoft XAML Browser Application"], "xps": ["application/vnd.ms-xpsdocument", "Microsoft XML Paper Specification"], "mid": ["audio/midi audio/x-midi", "Musical Instrument Digital Interface (MIDI)"], "mpy": ["application/vnd.ibm.minipay", "MiniPay"], "afp": ["application/vnd.ibm.modcap", "MO:DCA-P"], "rms": ["application/vnd.jcp.javame.midlet-rms", "Mobile Information Device Profile"], "tmo": ["application/vnd.tmobile-livetv", "MobileTV"], "prc": ["application/x-mobipocket-ebook", "Mobipocket"], "mbk": ["application/vnd.mobius.mbk", "Mobius Management Systems - Basket file"], "dis": ["application/vnd.mobius.dis", "Mobius Management Systems - Distribution Database"], "plc": ["application/vnd.mobius.plc", "Mobius Management Systems - Policy Definition Language File"], "mqy": ["application/vnd.mobius.mqy", "Mobius Management Systems - Query File"], "msl": ["application/vnd.mobius.msl", "Mobius Management Systems - Script Language"], "txf": ["application/vnd.mobius.txf", "Mobius Management Systems - Topic Index File"], "daf": ["application/vnd.mobius.daf", "Mobius Management Systems - UniversalArchive"], "fly": ["text/vnd.fly", "mod_fly / fly.cgi"], "mpc": ["application/vnd.mophun.certificate", "Mophun Certificate"], "mpn": ["application/vnd.mophun.application", "Mophun VM"], "mj2": ["video/mj2", "Motion JPEG 2000"], "mpga": ["audio/mpeg", "MPEG Audio"], "mxu": ["video/vnd.mpegurl", "MPEG Url"], "mpeg": ["video/mpeg", "MPEG Video"], "m21": ["application/mp21", "MPEG-21"], "mp4a": ["audio/mp4", "MPEG-4 Audio"], "m3u8": ["application/vnd.apple.mpegurl", "Multimedia Playlist Unicode"], "mus": ["application/vnd.musician", "MUsical Score Interpreted Code Invented for the ASCII designation of Notation"], "msty": ["application/vnd.muvee.style", "Muvee Automatic Video Editing"], "mxml": ["application/xv+xml", "MXML"], "ngdat": ["application/vnd.nokia.n-gage.data", "N-Gage Game Data"], "n-gage": ["application/vnd.nokia.n-gage.symbian.install", "N-Gage Game Installer"], "ncx": ["application/x-dtbncx+xml", "Navigation Control file for XML (for ePub)"], "nc": ["application/x-netcdf", "Network Common Data Form (NetCDF)"], "nlu": ["application/vnd.neurolanguage.nlu", "neuroLanguage"], "dna": ["application/vnd.dna", "New Moon Liftoff/DNA"], "nnd": ["application/vnd.noblenet-directory", "NobleNet Directory"], "nns": ["application/vnd.noblenet-sealer", "NobleNet Sealer"], "nnw": ["application/vnd.noblenet-web", "NobleNet Web"], "rpst": ["application/vnd.nokia.radio-preset", "Nokia Radio Application - Preset"], "rpss": ["application/vnd.nokia.radio-presets", "Nokia Radio Application - Preset"], "n3": ["text/n3", "Notation3"], "edm": ["application/vnd.novadigm.edm", "Novadigm's RADIA and EDM products"], "edx": ["application/vnd.novadigm.edx", "Novadigm's RADIA and EDM products"], "ext": ["application/vnd.novadigm.ext", "Novadigm's RADIA and EDM products"], "gph": ["application/vnd.flographit", "NpGraphIt"], "ecelp4800": ["audio/vnd.nuera.ecelp4800", "Nuera ECELP 4800"], "ecelp7470": ["audio/vnd.nuera.ecelp7470", "Nuera ECELP 7470"], "ecelp9600": ["audio/vnd.nuera.ecelp9600", "Nuera ECELP 9600"], "oda": ["application/oda", "Office Document Architecture"], "ogx": ["application/ogg", "OGG"], "oga": ["audio/ogg", "OGG audio"], "ogv": ["video/ogg", "OGG video"], "dd2": ["application/vnd.oma.dd2+xml", "OMA Download Agents"], "oth": ["application/vnd.oasis.opendocument.text-web", "Open Document Text Web"], "opf": ["application/oebps-package+xml", "Open eBook Publication Structure"], "qbo": ["application/vnd.intu.qbo", "Open Financial Exchange"], "oxt": ["application/vnd.openofficeorg.extension", "Open Office Extension"], "osf": ["application/vnd.yamaha.openscoreformat", "Open Score Format"], "weba": ["audio/webm", "WEBM audio"], "webm": ["video/webm", "WEBM video"], "odc": ["application/vnd.oasis.opendocument.chart", "OpenDocument Chart"], "otc": ["application/vnd.oasis.opendocument.chart-template", "OpenDocument Chart Template"], "odb": ["application/vnd.oasis.opendocument.database", "OpenDocument Database"], "odf": ["application/vnd.oasis.opendocument.formula", "OpenDocument Formula"], "odft": ["application/vnd.oasis.opendocument.formula-template", "OpenDocument Formula Template"], "odg": ["application/vnd.oasis.opendocument.graphics", "OpenDocument Graphics"], "otg": ["application/vnd.oasis.opendocument.graphics-template", "OpenDocument Graphics Template"], "odi": ["application/vnd.oasis.opendocument.image", "OpenDocument Image"], "oti": ["application/vnd.oasis.opendocument.image-template", "OpenDocument Image Template"], "odp": ["application/vnd.oasis.opendocument.presentation", "OpenDocument presentation document"], "otp": ["application/vnd.oasis.opendocument.presentation-template", "OpenDocument Presentation Template"], "ods": ["application/vnd.oasis.opendocument.spreadsheet", "OpenDocument spreadsheet document"], "ots": ["application/vnd.oasis.opendocument.spreadsheet-template", "OpenDocument Spreadsheet Template"], "odt": ["application/vnd.oasis.opendocument.text", "OpenDocument text document"], "odm": ["application/vnd.oasis.opendocument.text-master", "OpenDocument Text Master"], "ott": ["application/vnd.oasis.opendocument.text-template", "OpenDocument Text Template"], "ktx": ["image/ktx", "OpenGL Textures (KTX)"], "sxc": ["application/vnd.sun.xml.calc", "OpenOffice - Calc (Spreadsheet)"], "stc": ["application/vnd.sun.xml.calc.template", "OpenOffice - Calc Template (Spreadsheet)"], "sxd": ["application/vnd.sun.xml.draw", "OpenOffice - Draw (Graphics)"], "std": ["application/vnd.sun.xml.draw.template", "OpenOffice - Draw Template (Graphics)"], "sxi": ["application/vnd.sun.xml.impress", "OpenOffice - Impress (Presentation)"], "sti": ["application/vnd.sun.xml.impress.template", "OpenOffice - Impress Template (Presentation)"], "sxm": ["application/vnd.sun.xml.math", "OpenOffice - Math (Formula)"], "sxw": ["application/vnd.sun.xml.writer", "OpenOffice - Writer (Text - HTML)"], "sxg": ["application/vnd.sun.xml.writer.global", "OpenOffice - Writer (Text - HTML)"], "stw": ["application/vnd.sun.xml.writer.template", "OpenOffice - Writer Template (Text - HTML)"], "otf": ["font/otf", "OpenType font"], "osfpvg": ["application/vnd.yamaha.openscoreformat.osfpvg+xml", "OSFPVG"], "dp": ["application/vnd.osgi.dp", "OSGi Deployment Package"], "pdb": ["application/vnd.palm", "PalmOS Data"], "p": ["text/x-pascal", "Pascal Source File"], "paw": ["application/vnd.pawaafile", "PawaaFILE"], "pclxl": ["application/vnd.hp-pclxl", "PCL 6 Enhanced (Formely PCL XL)"], "efif": ["application/vnd.picsel", "Pcsel eFIF File"], "pcx": ["image/x-pcx", "PCX Image"], "psd": ["image/vnd.adobe.photoshop", "Photoshop Document"], "prf": ["application/pics-rules", "PICSRules"], "pic": ["image/x-pict", "PICT Image"], "chat": ["application/x-chat", "pIRCh"], "p10": ["application/pkcs10", "PKCS #10 - Certification Request Standard"], "p12": ["application/x-pkcs12", "PKCS #12 - Personal Information Exchange Syntax Standard"], "p7m": ["application/pkcs7-mime", "PKCS #7 - Cryptographic Message Syntax Standard"], "p7s": ["application/pkcs7-signature", "PKCS #7 - Cryptographic Message Syntax Standard"], "p7r": ["application/x-pkcs7-certreqresp", "PKCS #7 - Cryptographic Message Syntax Standard (Certificate Request Response)"], "p7b": ["application/x-pkcs7-certificates", "PKCS #7 - Cryptographic Message Syntax Standard (Certificates)"], "p8": ["application/pkcs8", "PKCS #8 - Private-Key Information Syntax Standard"], "plf": ["application/vnd.pocketlearn", "PocketLearn Viewers"], "pnm": ["image/x-portable-anymap", "Portable Anymap Image"], "pbm": ["image/x-portable-bitmap", "Portable Bitmap Format"], "pcf": ["application/x-font-pcf", "Portable Compiled Format"], "pfr": ["application/font-tdpfr", "Portable Font Resource"], "pgn": ["application/x-chess-pgn", "Portable Game Notation (Chess Games)"], "pgm": ["image/x-portable-graymap", "Portable Graymap Format"], "png": ["image/png", "Portable Network Graphics"], "ppm": ["image/x-portable-pixmap", "Portable Pixmap Format"], "pskcxml": ["application/pskc+xml", "Portable Symmetric Key Container"], "pml": ["application/vnd.ctc-posml", "PosML"], "ai": ["application/postscript", "PostScript"], "pfa": ["application/x-font-type1", "PostScript Fonts"], "pbd": ["application/vnd.powerbuilder6", "PowerBuilder"], "": ["application/pgp-encrypted", "Pretty Good Privacy"], "pgp": ["application/pgp-signature", "Pretty Good Privacy - Signature"], "box": ["application/vnd.previewsystems.box", "Preview Systems ZipLock/VBox"], "ptid": ["application/vnd.pvi.ptid1", "Princeton Video Image"], "pls": ["application/pls+xml", "Pronunciation Lexicon Specification"], "str": ["application/vnd.pg.format", "Proprietary P&G Standard Reporting System"], "ei6": ["application/vnd.pg.osasli", "Proprietary P&G Standard Reporting System"], "dsc": ["text/prs.lines.tag", "PRS Lines Tag"], "psf": ["application/x-font-linux-psf", "PSF Fonts"], "qps": ["application/vnd.publishare-delta-tree", "PubliShare Objects"], "wg": ["application/vnd.pmi.widget", "Qualcomm's Plaza Mobile Internet"], "qxd": ["application/vnd.quark.quarkxpress", "QuarkXpress"], "esf": ["application/vnd.epson.esf", "QUASS Stream Player"], "msf": ["application/vnd.epson.msf", "QUASS Stream Player"], "ssf": ["application/vnd.epson.ssf", "QUASS Stream Player"], "qam": ["application/vnd.epson.quickanime", "QuickAnime Player"], "qfx": ["application/vnd.intu.qfx", "Quicken"], "qt": ["video/quicktime", "Quicktime Video"], "rar": ["application/x-rar-compressed", "RAR archive"], "ram": ["audio/x-pn-realaudio", "Real Audio Sound"], "rmp": ["audio/x-pn-realaudio-plugin", "Real Audio Sound"], "rsd": ["application/rsd+xml", "Really Simple Discovery"], "rm": ["application/vnd.rn-realmedia", "RealMedia"], "bed": ["application/vnd.realvnc.bed", "RealVNC"], "mxl": ["application/vnd.recordare.musicxml", "Recordare Applications"], "musicxml": ["application/vnd.recordare.musicxml+xml", "Recordare Applications"], "rnc": ["application/relax-ng-compact-syntax", "Relax NG Compact Syntax"], "rdz": ["application/vnd.data-vision.rdz", "RemoteDocs R-Viewer"], "rdf": ["application/rdf+xml", "Resource Description Framework"], "rp9": ["application/vnd.cloanto.rp9", "RetroPlatform Player"], "jisp": ["application/vnd.jisp", "RhymBox"], "rtf": ["application/rtf", "Rich Text Format (RTF)"], "rtx": ["text/richtext", "Rich Text Format (RTF)"], "link66": ["application/vnd.route66.link66+xml", "ROUTE 66 Location Based Services"], "rss": ["application/rss+xml", "RSS - Really Simple Syndication"], "shf": ["application/shf+xml", "S Hexdump Format"], "st": ["application/vnd.sailingtracker.track", "SailingTracker"], "svg": ["image/svg+xml", "Scalable Vector Graphics (SVG)"], "sus": ["application/vnd.sus-calendar", "ScheduleUs"], "sru": ["application/sru+xml", "Search/Retrieve via URL Response Format"], "setpay": ["application/set-payment-initiation", "Secure Electronic Transaction - Payment"], "setreg": ["application/set-registration-initiation", "Secure Electronic Transaction - Registration"], "sema": ["application/vnd.sema", "Secured eMail"], "semd": ["application/vnd.semd", "Secured eMail"], "semf": ["application/vnd.semf", "Secured eMail"], "see": ["application/vnd.seemail", "SeeMail"], "snf": ["application/x-font-snf", "Server Normal Format"], "spq": ["application/scvp-vp-request", "Server-Based Certificate Validation Protocol - Validation Policies - Request"], "spp": ["application/scvp-vp-response", "Server-Based Certificate Validation Protocol - Validation Policies - Response"], "scq": ["application/scvp-cv-request", "Server-Based Certificate Validation Protocol - Validation Request"], "scs": ["application/scvp-cv-response", "Server-Based Certificate Validation Protocol - Validation Response"], "sdp": ["application/sdp", "Session Description Protocol"], "etx": ["text/x-setext", "Setext"], "movie": ["video/x-sgi-movie", "SGI Movie"], "ifm": ["application/vnd.shana.informed.formdata", "Shana Informed Filler"], "itp": ["application/vnd.shana.informed.formtemplate", "Shana Informed Filler"], "iif": ["application/vnd.shana.informed.interchange", "Shana Informed Filler"], "ipk": ["application/vnd.shana.informed.package", "Shana Informed Filler"], "tfi": ["application/thraud+xml", "Sharing Transaction Fraud Data"], "shar": ["application/x-shar", "Shell Archive"], "rgb": ["image/x-rgb", "Silicon Graphics RGB Bitmap"], "slt": ["application/vnd.epson.salt", "SimpleAnimeLite Player"], "aso": ["application/vnd.accpac.simply.aso", "Simply Accounting"], "imp": ["application/vnd.accpac.simply.imp", "Simply Accounting - Data Import"], "twd": ["application/vnd.simtech-mindmapper", "SimTech MindMapper"], "csp": ["application/vnd.commonspace", "Sixth Floor Media - CommonSpace"], "saf": ["application/vnd.yamaha.smaf-audio", "SMAF Audio"], "mmf": ["application/vnd.smaf", "SMAF File"], "spf": ["application/vnd.yamaha.smaf-phrase", "SMAF Phrase"], "teacher": ["application/vnd.smart.teacher", "SMART Technologies Apps"], "svd": ["application/vnd.svd", "SourceView Document"], "rq": ["application/sparql-query", "SPARQL - Query"], "srx": ["application/sparql-results+xml", "SPARQL - Results"], "gram": ["application/srgs", "Speech Recognition Grammar Specification"], "grxml": ["application/srgs+xml", "Speech Recognition Grammar Specification - XML"], "ssml": ["application/ssml+xml", "Speech Synthesis Markup Language"], "skp": ["application/vnd.koan", "SSEYO Koan Play File"], "sgml": ["text/sgml", "Standard Generalized Markup Language (SGML)"], "sdc": ["application/vnd.stardivision.calc", "StarOffice - Calc"], "sda": ["application/vnd.stardivision.draw", "StarOffice - Draw"], "sdd": ["application/vnd.stardivision.impress", "StarOffice - Impress"], "smf": ["application/vnd.stardivision.math", "StarOffice - Math"], "sdw": ["application/vnd.stardivision.writer", "StarOffice - Writer"], "sgl": ["application/vnd.stardivision.writer-global", "StarOffice - Writer (Global)"], "sm": ["application/vnd.stepmania.stepchart", "StepMania"], "sit": ["application/x-stuffit", "Stuffit Archive"], "sitx": ["application/x-stuffitx", "Stuffit Archive"], "sdkm": ["application/vnd.solent.sdkm+xml", "SudokuMagic"], "xo": ["application/vnd.olpc-sugar", "Sugar Linux Application Bundle"], "au": ["audio/basic", "Sun Audio - Au file format"], "wqd": ["application/vnd.wqd", "SundaHus WQ"], "sis": ["application/vnd.symbian.install", "Symbian Install Package"], "smi": ["application/smil+xml", "Synchronized Multimedia Integration Language"], "xsm": ["application/vnd.syncml+xml", "SyncML"], "bdm": ["application/vnd.syncml.dm+wbxml", "SyncML - Device Management"], "xdm": ["application/vnd.syncml.dm+xml", "SyncML - Device Management"], "sv4cpio": ["application/x-sv4cpio", "System V Release 4 CPIO Archive"], "sv4crc": ["application/x-sv4crc", "System V Release 4 CPIO Checksum Data"], "sbml": ["application/sbml+xml", "Systems Biology Markup Language"], "tsv": ["text/tab-separated-values", "Tab Seperated Values"], "tiff": ["image/tiff", "Tagged Image File Format (TIFF)"], "tao": ["application/vnd.tao.intent-module-archive", "Tao Intent"], "tar": ["application/x-tar", "Tape Archive (TAR)"], "tcl": ["application/x-tcl", "Tcl Script"], "tex": ["application/x-tex", "TeX"], "tfm": ["application/x-tex-tfm", "TeX Font Metric"], "tei": ["application/tei+xml", "Text Encoding and Interchange"], "txt": ["text/plain", "Text File"], "dxp": ["application/vnd.spotfire.dxp", "TIBCO Spotfire"], "sfs": ["application/vnd.spotfire.sfs", "TIBCO Spotfire"], "tsd": ["application/timestamped-data", "Time Stamped Data Envelope"], "tpt": ["application/vnd.trid.tpt", "TRI Systems Config"], "mxs": ["application/vnd.triscape.mxs", "Triscape Map Explorer"], "t": ["text/troff", "troff"], "tra": ["application/vnd.trueapp", "True BASIC"], "ttf": ["font/ttf", "TrueType Font"], "ttl": ["text/turtle", "Turtle (Terse RDF Triple Language)"], "umj": ["application/vnd.umajin", "UMAJIN"], "uoml": ["application/vnd.uoml+xml", "Unique Object Markup Language"], "unityweb": ["application/vnd.unity", "Unity 3d"], "ufd": ["application/vnd.ufdl", "Universal Forms Description Language"], "uri": ["text/uri-list", "URI Resolution Services"], "utz": ["application/vnd.uiq.theme", "User Interface Quartz - Theme (Symbian)"], "ustar": ["application/x-ustar", "Ustar (Uniform Standard Tape Archive)"], "uu": ["text/x-uuencode", "UUEncode"], "vcs": ["text/x-vcalendar", "vCalendar"], "vcf": ["text/x-vcard", "vCard"], "vcd": ["application/x-cdlink", "Video CD"], "vsf": ["application/vnd.vsf", "Viewport+"], "wrl": ["model/vrml", "Virtual Reality Modeling Language"], "vcx": ["application/vnd.vcx", "VirtualCatalog"], "mts": ["model/vnd.mts", "Virtue MTS"], "vtu": ["model/vnd.vtu", "Virtue VTU"], "vis": ["application/vnd.visionary", "Visionary"], "viv": ["video/vnd.vivo", "Vivo"], "ccxml": ["application/ccxml+xml", "Voice Browser Call Control"], "vxml": ["application/voicexml+xml", "VoiceXML"], "src": ["application/x-wais-source", "WAIS Source"], "wbxml": ["application/vnd.wap.wbxml", "WAP Binary XML (WBXML)"], "wbmp": ["image/vnd.wap.wbmp", "WAP Bitamp (WBMP)"], "wav": ["audio/wav", "Waveform Audio Format"], "davmount": ["application/davmount+xml", "Web Distributed Authoring and Versioning"], "woff": ["font/woff", "Web Open Font Format (WOFF)"], "wspolicy": ["application/wspolicy+xml", "Web Services Policy"], "webp": ["image/webp", "WEBP image"], "wtb": ["application/vnd.webturbo", "WebTurbo"], "wgt": ["application/widget", "Widget Packaging and XML Configuration"], "hlp": ["application/winhlp", "WinHelp"], "wml": ["text/vnd.wap.wml", "Wireless Markup Language (WML)"], "wmls": ["text/vnd.wap.wmlscript", "Wireless Markup Language Script (WMLScript)"], "wmlsc": ["application/vnd.wap.wmlscriptc", "WMLScript"], "wpd": ["application/vnd.wordperfect", "Wordperfect"], "sar": ["application/octet-stream", "SAP Compressed File"], "stf": ["application/vnd.wt.stf", "Worldtalk"], "wsdl": ["application/wsdl+xml", "WSDL - Web Services Description Language"], "xbm": ["image/x-xbitmap", "X BitMap"], "xpm": ["image/x-xpixmap", "X PixMap"], "xwd": ["image/x-xwindowdump", "X Window Dump"], "der": ["application/x-x509-ca-cert", "X.509 Certificate"], "fig": ["application/x-xfig", "Xfig"], "xhtml": ["application/xhtml+xml", "XHTML"], "xdf": ["application/xcap-diff+xml", "XML Configuration Access Protocol - XCAP Diff"], "xenc": ["application/xenc+xml", "XML Encryption Syntax and Processing"], "xer": ["application/patch-ops-error+xml", "XML Patch Framework"], "rl": ["application/resource-lists+xml", "XML Resource Lists"], "rs": ["application/rls-services+xml", "XML Resource Lists"], "rld": ["application/resource-lists-diff+xml", "XML Resource Lists Diff"], "xslt": ["application/xslt+xml", "XML Transformations"], "xop": ["application/xop+xml", "XML-Binary Optimized Packaging"], "xpi": ["application/x-xpinstall", "XPInstall - Mozilla"], "xspf": ["application/xspf+xml", "XSPF - XML Shareable Playlist Format"], "xul": ["application/vnd.mozilla.xul+xml", "XUL"], "xyz": ["chemical/x-xyz", "XYZ File Format"], "yaml": ["text/yaml", "YAML Ain't Markup Language / Yet Another Markup Language"], "yang": ["application/yang", "YANG Data Modeling Language"], "yin": ["application/yin+xml", "YIN (YANG - XML)"], "zir": ["application/vnd.zul", "Z.U.L. Geometry"], "zip": ["application/zip", "ZIP archive"], "zmm": ["application/vnd.handheld-entertainment+xml", "ZVUE Media Manager"], "zaz": ["application/vnd.zzazz.deck+xml", "Zzazz Deck"], "arc": ["application/x-freearc", "Archive document (multiple files embedded)"], "htm": ["text/html", "HyperText Markup Language (HTML)"], "jsonld": ["application/ld+json", "JSON-LD format"], "midi": ["audio/midi audio/x-midi", "Musical Instrument Digital Interface (MIDI)"], "mjs": ["text/javascript", "JavaScript module"], "tif": ["image/tiff", "Tagged Image File Format (TIFF)"], "woff2": ["font/woff2", "Web Open Font Format (WOFF)"], "glade": ["application/x-glade", "GTK UI Designer"]}
/branches/BR-0.4/basico/services/srv_attachment.py
11,6 → 11,7
import json
import uuid
import glob
import shutil
from os.path import sep as SEP
 
from basico.core.mod_env import FILE, LPATH
29,18 → 30,24
self.srvutl = self.get_service('Utils')
 
 
def gen_aid(self, sid):
def gen_tid(self, sid='000000000'):
'''
Generate new attachment id (same as for annotations)
'''
return "%s@%s" % (sid, str(uuid.uuid4()))
return "%s@T%s" % (sid, str(uuid.uuid4()))
 
 
def create(self, path, metadata):
ATTACHMENT_FILE_METADATA = LPATH['ATTACHMENTS'] + attachment['AID'] + '.json'
ATTACHMENT_FILE_CONTENT = LPATH['ATTACHMENTS'] + attachment['AID'] # No extension needed
attachment['Created'] = self.srvutl.timestamp()
 
def create(self, path, aid):
sid = self.get_sid(aid)
tid = self.gen_tid(sid)
metadata = self.srvutl.get_file_metadata(path)
metadata['AID'] = aid
metadata['TID'] = tid
metadata['Source'] = path
metadata['Created'] = self.srvutl.timestamp()
ATTACHMENT_FILE_METADATA = LPATH['ATTACHMENTS'] + tid + '.json'
ATTACHMENT_FILE_CONTENT = LPATH['ATTACHMENTS'] + tid # No extension needed
# copy attachment file to attachemnts database
shutil.copy(path, ATTACHMENT_FILE_CONTENT)
 
48,8 → 55,7
with open(ATTACHMENT_FILE_METADATA, 'w') as fa:
json.dump(metadata, fa)
 
title = self.get_title(attachment['AID'])
self.log.info("Attachment '%s' (%s) created" % (title, attachment['AID']))
self.log.info("Attachment '%s' (%s) created" % (metadata['Title'], metadata['TID']))
 
 
def delete(self, aid):
87,7 → 93,7
if '@' in aid:
return aid[:aid.find('@')]
else:
return aid # aid = sid
return '0000000000'
 
 
def get_metadata_from_aid(self, aid=None):
/branches/BR-0.4/basico/services/srv_callbacks.py
47,6 → 47,7
self.srvant = self.get_service('Annotation')
self.srvbnr = self.get_service('BNR')
self.srvclt = self.get_service('Collections')
self.srvatc = self.get_service('Attachment')
 
 
def gui_visor_switch_page(self, notebook, page, page_num):
863,3 → 864,43
else:
# ~ stack_main.show_all()
vpaned.set_position(600)
 
 
def gui_attachment_add(self, *args):
# Get Annotation ID (AID) from widget, if any
widget_annotation = self.srvgui.get_widget('widget_annotation')
aid = widget_annotation.get_aid_from_widget()
 
# Get attachments fro filechooser dialog
attachments = self.gui_attachment_show_filechooser()
 
# Add them to Basico database
if attachments is not None:
for attachment in attachments:
# only allow files (avoid directories)
if os.path.isfile(attachment):
self.srvatc.create(attachment, aid)
else:
self.log.warning("No files selected to attach")
 
def gui_attachment_show_filechooser(self):
filenames = None
parentwin = self.srvgui.get_window()
dialog = Gtk.FileChooserDialog(title="Open file(s) ...",
parent=parentwin,
action=Gtk.FileChooserAction.OPEN,
buttons=("_Cancel",
Gtk.ResponseType.CANCEL,
"_Open", Gtk.ResponseType.ACCEPT))
dialog.set_select_multiple(True)
response = dialog.run()
if response == Gtk.ResponseType.ACCEPT:
filenames = dialog.get_filenames()
i = 0
while i < len(filenames):
filename = filenames[i]
self.log.debug("%s was selected", filename)
i += 1
dialog.destroy()
return filenames
/branches/BR-0.4/basico/services/srv_utils.py
7,10 → 7,11
# Description: Generic functions service
"""
 
import os
import os
import re
import sys
import json
from stat import ST_SIZE
import subprocess
import tarfile
import zipfile
35,6 → 36,13
self.load_extensions()
 
 
def get_services(self):
"""
Missing method docstring (missing-docstring)
"""
self.srvdtb = self.get_service('DB')
 
def load_extensions(self):
with open(FILE['EXT'], 'r') as fext:
self.extensions = json.load(fext)
41,16 → 49,78
self.log.debug("%d extensions loaded", len(self.extensions))
 
 
def get_services(self):
"""
Missing method docstring (missing-docstring)
"""
self.srvdtb = self.get_service('DB')
def get_file_metadata(self, path):
self.log.debug("Getting metadata from: %s", path)
metadata = {}
metadata['Title'] = self.get_file_name_with_ext(path)
metadata['Basename'] = self.get_file_basename(path)
metadata['Extension'] = self.get_file_extension(path)
metadata['Size'] = self.get_file_size(path)
metadata['Description'] = self.get_file_description(metadata['Extension'])
metadata['Mimetype'] = self.get_file_mimetype(metadata['Extension'])
metadata['Doctype'] = self.get_file_doctype(metadata['Mimetype'])
return metadata
 
def get_file_size(self, path):
# Get size in bytes
size = os.stat(path)[ST_SIZE]
self.log.debug("\tSize: %s", str(size))
return size
 
 
def get_file_extension(self, path):
# Get extension
rest, extension = os.path.splitext(path)
ext = (extension[1:]).lower()
self.log.debug("\tExtension: %s", ext)
if (len(ext) != 0):
return '%s' % ext
else:
return '#noext#'
 
 
def get_file_basename(self, path):
# Get basename
rest, extension = os.path.splitext(path)
basename = os.path.basename(rest)
self.log.debug("\tBasename: %s", basename)
return basename
 
 
def get_file_name_with_ext(self, path):
# Filename
basename = self.get_file_basename(path)
extension = self.get_file_extension(path)
if extension == '#noext#':
extension = ''
title = '%s.%s' % (basename, extension)
self.log.debug("\tTitle: %s", title)
return title
 
def get_file_mimetype(self, ext):
try:
mimetype, description = self.extensions[ext]
self.log.debug("\tMimetype: %s", mimetype)
return mimetype
except Exception as error:
self.log.error(error)
return None
 
 
def get_file_doctype(self, mimetype):
mtype = mimetype[:mimetype.rfind('/')]
doctype = mtype.title()
self.log.debug("\tDoctype: %s", doctype)
return doctype
 
 
def get_file_description(self, ext):
try:
filetype, description = self.extensions[ext]
self.log.debug("\tDescription: %s", description)
return description
except:
return None
70,33 → 140,48
total, used, free = self.get_disk_usage(path)
return used/total
 
 
def get_kilobytes(self, integer_bytes):
kilo, bites = divmod(int(abs(integer_bytes)), 1_024)
# ~ self.log.debug("%d bytes -> %d Kb", integer_bytes, kilo)
return kilo
 
 
def get_megabytes(self, integer_bytes):
kilo = self.get_kilobytes(integer_bytes)
mega, kilo = divmod(kilo, 1_024)
# ~ self.log.debug("%d bytes -> %d Mb", integer_bytes, mega)
return mega
 
 
def get_gigabytes(self, integer_bytes):
mega = self.get_megabytes(integer_bytes)
giga, mega = divmod(mega, 1_024)
# ~ self.log.debug("%d bytes -> %d Gb", integer_bytes, giga)
return giga
 
 
def get_human_sizes(self, integer_bytes):
if integer_bytes < 1024:
return "%d bytes" % integer_bytes
elif integer_bytes > 1024 and integer_bytes < (1024*1024):
return "%d Kb" % self.get_kilobytes(integer_bytes)
elif integer_bytes > 1024*1024 and integer_bytes < (1024*1024*1024):
return "%d Mb" % self.get_megabytes(integer_bytes)
elif integer_bytes > 1024*1024*1024 and integer_bytes < (1024*1024*1024*1024):
return "%d Gb" % self.get_gigabytes(integer_bytes)
 
def get_disk_usage_human(self, path):
"""
Get disk usage as a fraction for using with Gtk.Progressbar)
Some bytes borrowed from:
https://github.com/juancarlospaco/anglerfish/blob/master/anglerfish/bytes2human.py
"""
def get_kilobytes(integer_bytes):
kilo, bites = divmod(int(abs(integer_bytes)), 1_024)
# ~ self.log.debug("%d bytes -> %d Kb", integer_bytes, kilo)
return kilo
 
def get_megabytes(integer_bytes):
kilo = get_kilobytes(integer_bytes)
mega, kilo = divmod(kilo, 1_024)
# ~ self.log.debug("%d bytes -> %d Mb", integer_bytes, mega)
return mega
 
def get_gigabytes(integer_bytes):
mega = get_megabytes(integer_bytes)
giga, mega = divmod(mega, 1_024)
# ~ self.log.debug("%d bytes -> %d Gb", integer_bytes, giga)
return giga
"""
total, used, free = self.get_disk_usage(path)
tgb = get_gigabytes(total)
ugb = get_gigabytes(used)
fgb = get_gigabytes(total-used)
tgb = self.get_gigabytes(total)
ugb = self.get_gigabytes(used)
fgb = self.get_gigabytes(total-used)
humansize = "Using %dGb of %dGb (Free space: %dGb)" % (int(ugb), int(tgb), int(fgb))
return humansize
 
/branches/BR-0.4/basico/widgets/wdg_annot.py
149,7 → 149,7
tool.set_icon_name('basico-attachment')
tool.set_tooltip_markup('<b>Attach any document to this annotation</b>')
popover = self.srvgui.add_widget('gtk_button_annotation_toolbar_attachment', Gtk.Popover.new(tool))
# ~ tool.connect('clicked', self.srvclb.gui_annotation_widget_show)
tool.connect('clicked', self.srvclb.gui_attachment_add)
self.tool_bar.insert(tool, -1)
 
# Separator
/branches/BR-0.4/basico/widgets/wdg_attachment.py
0,0 → 1,304
#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
# File: wdg_attachment.py
# Author: Tomás Vírseda
# License: GPL v3
# Description: Attachment Widget
"""
 
import html
import gi
gi.require_version('Gtk', '3.0')
gi.require_version('Gdk', '3.0')
gi.require_version('Pango', '1.0')
gi.require_version('GdkPixbuf', '2.0')
gi.require_version('GtkSource', '3.0')
from gi.repository import Gtk
from gi.repository import Pango
from gi.repository.GdkPixbuf import Pixbuf
from gi.repository import GtkSource
from basico.core.mod_env import LPATH, ATYPES
from basico.core.mod_wdg import BasicoWidget
 
 
class AttachmentWidget(BasicoWidget, Gtk.VBox):
"""
Attachment Widget
"""
def __init__(self, app, sid='0000000000'):
super().__init__(app, __class__.__name__)
Gtk.VBox.__init__(self)
self.app = app
self.sid = sid
self.get_services()
self.__setup()
 
 
def get_services(self):
"""Load services to be used in this class
"""
self.srvgui = self.get_service("GUI")
self.srvicm = self.get_service("IM")
self.srvuif = self.get_service("UIF")
self.srvclt = self.get_service('Collections')
self.srvclb = self.get_service('Callbacks')
self.srvant = self.get_service('Annotation')
self.srvutl = self.get_service('Utils')
 
 
def __setup(self):
# Setup Widget properties
self.set_property('margin-left', 3)
self.set_property('margin-right', 3)
self.set_hexpand(True)
self.set_vexpand(True)
 
# Annotation container (body)
self.container_body = self.srvgui.add_widget('gtk_vbox_annotation_container', Gtk.VBox())
self.container_body.set_border_width(3)
self.pack_start(self.container_body, True, True, 3)
 
self.__setup_header()
self.__setup_body()
self.__setup_footer()
 
 
def __setup_header(self):
# Annotation Header
container = self.srvgui.get_widget('gtk_vbox_annotation_container')
header = Gtk.VBox()
separator = Gtk.Separator()
# ~ header.pack_start(separator, False, False, 0)
toolbar = AnnotationToolbar(self.app, self.sid)
header.pack_start(toolbar, False, False, 0)
hbox = Gtk.HBox()
a_lbl_aid = Gtk.Label()
a_lbl_aid.set_property('xalign', 1.0)
a_lbl_aid.modify_font(Pango.FontDescription('Monospace 10'))
a_lbl_aid.set_markup('<b>Annotation Id:</b>')
a_aid = self.srvgui.add_widget('gtk_label_aid', Gtk.Label())
a_aid.set_property('xalign', 1.0)
a_aid.set_selectable(True)
a_aid.modify_font(Pango.FontDescription('Monospace 10'))
separator = Gtk.Separator()
hbox.pack_start(a_lbl_aid, False, False, 0)
hbox.pack_start(a_aid, False, False, 0)
hbox.set_no_show_all(True)
hbox.hide()
# ~ header.pack_start(hbox, False, False, 0)
# ~ header.pack_start(a_wdg_human_timestamp, True, True, 0)
# ~ header.pack_start(separator, False, False, 3)
header.show_all()
container.pack_start(header, False, False, 0)
 
 
def __setup_body(self):
vbox = Gtk.VBox()
 
# Hidden metadata
hhbox = Gtk.HBox()
 
a_timestamp = self.srvgui.add_widget('gtk_label_timestamp', Gtk.Label(self.srvutl.timestamp()))
a_timestamp.set_sensitive(False)
self.srvuif.set_widget_visibility('gtk_label_timestamp', False)
hhbox.pack_start(a_timestamp, False, False, 0)
vbox.pack_start(hhbox, False, False, 0)
 
 
# Main hbox
mhbox = Gtk.HBox()
 
vboxl = Gtk.VBox()
vboxl.set_vexpand(True)
vboxr = Gtk.VBox()
vboxr.set_vexpand(True)
 
# Title
a_title = self.srvgui.add_widget('gtk_entry_annotation_title', Gtk.Entry())
a_title.set_placeholder_text("Type a title here...")
a_title.modify_font(Pango.FontDescription('Monospace 10'))
vboxl.pack_start(a_title, False, False, 0)
 
# Text
scroller = Gtk.ScrolledWindow()
scroller.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
scroller.set_shadow_type(Gtk.ShadowType.IN)
scroller.set_hexpand(True)
scroller.set_vexpand(True)
a_text = self.srvgui.add_widget('gtk_textview_annotation_text', GtkSource.View.new_with_buffer(GtkSource.Buffer()))
a_text.set_wrap_mode(Gtk.WrapMode.WORD)
a_text.modify_font(Pango.FontDescription('Monospace 10'))
a_text.set_vexpand(True)
a_text.set_left_margin(6)
a_text.set_top_margin(6)
a_text.set_right_margin(6)
a_text.set_bottom_margin(6)
a_text.set_show_line_marks(True)
a_text.set_show_line_numbers(True)
a_text.set_highlight_current_line(True)
a_textbuffer = a_text.get_buffer()
a_textbuffer.set_text('')
scroller.add(a_text)
vboxl.pack_start(scroller, True, True, 3)
 
# Url
hbox = Gtk.HBox()
 
## url entry
a_link = self.srvgui.add_widget('gtk_entry_annotation_link', Gtk.Entry())
a_link.set_placeholder_text("Type a url here...")
hbox.pack_start(a_link, True, True, 3)
 
## url button
a_link_button = self.srvgui.add_widget('gtk_link_button_annotation_link', Gtk.LinkButton())
a_link_button.set_relief(Gtk.ReliefStyle.NORMAL)
a_link_button.set_label('Visit')
hbox.pack_start(a_link_button, False, False, 3)
 
# url type
a_link_type_model = Gtk.ListStore(str)
self.srvgui.add_widget('annotation_link_type_Intranet', a_link_type_model.append(['Intranet']))
self.srvgui.add_widget('annotation_link_type_SAP Blog', a_link_type_model.append(['SAP Blog']))
self.srvgui.add_widget('annotation_link_type_SAP Document', a_link_type_model.append(['SAP Document']))
self.srvgui.add_widget('annotation_link_type_SAP Help', a_link_type_model.append(['SAP Help']))
self.srvgui.add_widget('annotation_link_type_SAP Incident', a_link_type_model.append(['SAP Incident']))
self.srvgui.add_widget('annotation_link_type_SAP Questions and Answers', a_link_type_model.append(['SAP Questions and Answers']))
self.srvgui.add_widget('annotation_link_type_SAP Wiki', a_link_type_model.append(['SAP Wiki']))
active = self.srvgui.add_widget('annotation_link_type_Website', a_link_type_model.append(['Website']))
a_link_type = Gtk.ComboBox.new_with_model(a_link_type_model)
a_link_type.set_active_iter(active)
self.srvgui.add_widget('gtk_combobox_annotation_link_type', a_link_type)
renderer_text = Gtk.CellRendererText()
a_link_type.pack_start(renderer_text, True)
a_link_type.add_attribute(renderer_text, "text", 0)
hbox.pack_start(a_link_type, False, False, 0)
vboxl.pack_start(hbox, False, False, 3)
 
mhbox.pack_start(vboxl, True, True, 6)
mhbox.pack_start(vboxr, False, False, 0)
vbox.pack_start(mhbox, True, True, 3)
self.container_body.add(vbox)
 
 
def __setup_footer(self):
# Buttons Accept/Cancel
hbox = Gtk.HBox()
accept = self.srvgui.add_widget('gtk_button_accept_annotation', Gtk.Button('Accept'))
accept.connect('clicked', self.srvclb.action_annotation_accept, self.sid)
accept.set_property('always-show-image', True)
icon = self.srvicm.get_new_image_icon('basico-check-accept', 24, 24)
accept.set_image(icon)
cancel = self.srvgui.add_widget('gtk_button_cancel_annotation', Gtk.Button('Cancel'))
cancel.connect('clicked', self.srvclb.action_annotation_cancel)
cancel.set_property('always-show-image', True)
icon = self.srvicm.get_new_image_icon('basico-check-cancel', 24, 24)
cancel.set_image(icon)
hbox.pack_start(accept, True, False, 3)
hbox.pack_start(cancel, True, False, 3)
self.pack_start(hbox, False, False, 3)
 
 
def set_aid_to_widget(self, aid):
"""
C:237, 4: Missing method docstring (missing-docstring)
"""
a_aid = self.srvgui.get_widget('gtk_label_aid')
a_aid.set_text(aid)
 
 
def get_aid_from_widget(self):
"""
C:237, 4: Missing method docstring (missing-docstring)
"""
a_aid = self.srvgui.get_widget('gtk_label_aid')
return a_aid.get_text()
 
 
def set_metadata_to_widget(self, aid, action):
"""
C:237, 4: Missing method docstring (missing-docstring)
"""
self.set_aid_to_widget(aid)
sid = self.srvant.get_sid(aid)
title = self.srvgui.get_widget('gtk_label_annotation_sid')
if sid == '0000000000':
title.set_markup('<big><b>Annotation</b></big>')
self.srvuif.statusbar_msg("Creating new annotation")
else:
title.set_markup('<big><b>Annotation for SAP Note %s</b></big>' % str(int(sid)))
self.srvuif.statusbar_msg("Creating/Editing new annotation for SAP Note %s" % str(int(sid)))
 
if action == 'create':
pass
elif action == 'edit':
annotation = self.srvant.get_metadata_from_aid(aid)
if annotation is not None:
ANNOTATION_FILE_CONTENT = LPATH['ANNOTATIONS'] + aid + '.adoc'
a_wdg_aid = self.srvgui.get_widget('gtk_label_aid')
a_wdg_timestamp = self.srvgui.get_widget('gtk_label_timestamp')
a_wdg_title = self.srvgui.get_widget('gtk_entry_annotation_title')
a_wdg_type = self.srvgui.get_widget('gtk_combobox_annotation_type')
a_wdg_category = self.srvgui.get_widget('gtk_combobox_annotation_category')
a_wdg_priority = self.srvgui.get_widget('gtk_combobox_annotation_priority')
a_wdg_human_timestamp = self.srvgui.get_widget('gtk_label_human_timestamp')
a_wdg_timestamp_created = self.srvgui.get_widget('gtk_label_timestamp_created')
a_wdg_text = self.srvgui.get_widget('gtk_textview_annotation_text')
a_wdg_link = self.srvgui.get_widget('gtk_entry_annotation_link')
a_wdg_link_button = self.srvgui.get_widget('gtk_link_button_annotation_link')
a_wdg_link_type = self.srvgui.get_widget('gtk_combobox_annotation_link_type')
 
a_wdg_aid.set_text(annotation['AID'])
a_wdg_timestamp.set_text(annotation['Timestamp'])
a_wdg_title.set_text(html.escape(annotation['Title']))
a_wdg_type.set_active_iter(self.srvgui.get_widget('annotation_type_%s' % annotation['Type']))
try:
a_wdg_category.set_active_iter(self.srvgui.get_widget('annotation_category_%s' % annotation['Category']))
except:
a_wdg_category.set_active_iter(self.srvgui.get_widget('annotation_category_Inbox'))
 
try:
a_wdg_priority.set_active_iter(self.srvgui.get_widget('annotation_priority_%s' % annotation['Priority']))
except:
a_wdg_priority.set_active_iter(self.srvgui.get_widget('annotation_priority_Normal'))
self.srvuif.set_textview_text(a_wdg_text, open(ANNOTATION_FILE_CONTENT).read())
a_wdg_link.set_text(annotation['Link'])
a_wdg_link_button.set_uri(annotation['Link'])
a_wdg_link_type.set_active_iter(self.srvgui.get_widget('annotation_link_type_%s' % annotation['LinkType']))
human_timestamp = self.srvutl.get_human_date_from_timestamp(annotation['Timestamp'])
a_wdg_human_timestamp.set_markup('<b>%s</b>' % human_timestamp)
a_wdg_timestamp_created.set_text(annotation['Created'])
 
 
def get_metadata_from_widget(self):
"""
C:237, 4: Missing method docstring (missing-docstring)
"""
annotation = {}
a_wdg_aid = self.srvgui.get_widget('gtk_label_aid')
a_wdg_timestamp = self.srvgui.get_widget('gtk_label_timestamp')
a_wdg_timestamp_created = self.srvgui.get_widget('gtk_label_timestamp_created')
a_wdg_title = self.srvgui.get_widget('gtk_entry_annotation_title')
a_wdg_type = self.srvgui.get_widget('gtk_combobox_annotation_type')
a_wdg_category = self.srvgui.get_widget('gtk_combobox_annotation_category')
a_wdg_priority = self.srvgui.get_widget('gtk_combobox_annotation_priority')
a_wdg_text = self.srvgui.get_widget('gtk_textview_annotation_text')
a_wdg_link = self.srvgui.get_widget('gtk_entry_annotation_link')
a_wdg_link_type = self.srvgui.get_widget('gtk_combobox_annotation_link_type')
 
annotation['AID'] = a_wdg_aid.get_text()
annotation['Timestamp'] = a_wdg_timestamp.get_text()
annotation['Created'] = a_wdg_timestamp_created.get_text()
annotation['Title'] = a_wdg_title.get_text()
annotation['Component'] = 'Annotation'
annotation['Type'] = self.srvuif.get_combobox_text(a_wdg_type, 1)
annotation['Category'] = self.srvuif.get_combobox_text(a_wdg_category, 1)
annotation['Priority'] = self.srvuif.get_combobox_text(a_wdg_priority, 1)
annotation['Content'] = self.srvuif.get_textview_text(a_wdg_text)
annotation['Link'] = a_wdg_link.get_text()
annotation['LinkType'] = self.srvuif.get_combobox_text(a_wdg_link_type, 0)
 
return annotation
/branches/BR-0.4/basico/widgets/wdg_visor_attachments.py
1,7 → 1,7
#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
# File: wdg_visor_annotations.py
# File: wdg_visor_attachments.py
# Author: Tomás Vírseda
# License: GPL v3
# Description: Attachments Visor
50,6 → 50,7
for atype in ATYPES:
self.icons['type'][atype.lower()] = self.srvicm.get_pixbuf_icon('basico-attachment-type-%s' % atype.lower())
self.log.debug("Attachments Visor initialized")
self.populate_attachments()
 
 
def get_services(self):
62,64 → 63,16
self.srvuif = self.get_service("UIF")
self.srvutl = self.get_service("Utils")
self.srvatc = self.get_service('Attachment')
 
 
def get_treeview(self):
return self.treeview
 
 
def sort_by_timestamp(self):
self.sorted_model.set_sort_column_id(11, Gtk.SortType.DESCENDING)
self.sorted_model.set_sort_column_id(2, Gtk.SortType.DESCENDING)
 
 
def set_visible_categories(self, togglebutton):
types = self.srvgui.get_widget('gtk_togglebutton_types')
revealer = self.srvgui.get_widget('gtk_revealer_annotations_categories')
 
active = togglebutton.get_active()
if active:
types.set_active(False)
revealer.set_reveal_child(active)
 
 
def set_visible_types(self, togglebutton):
categories = self.srvgui.get_widget('gtk_togglebutton_categories')
revealer = self.srvgui.get_widget('gtk_revealer_annotations_types')
 
active = togglebutton.get_active()
if active:
categories.set_active(False)
revealer.set_reveal_child(active)
 
 
def set_visible_priority(self, togglebutton):
categories = self.srvgui.get_widget('gtk_togglebutton_categories')
revealer = self.srvgui.get_widget('gtk_revealer_annotations_priority')
 
active = togglebutton.get_active()
if active:
priority.set_active(False)
revealer.set_reveal_child(active)
 
 
def set_visible_category(self, togglebutton, title):
active = togglebutton.get_active()
self.srvgui.set_key_value('ANNOTATIONS_CATEGORY_%s_VISIBLE' % title.upper(), active)
self.populate_annotations()
 
 
def set_visible_annotation_type(self, togglebutton, atype):
active = togglebutton.get_active()
self.srvgui.set_key_value('ANNOTATIONS_TYPE_%s_VISIBLE' % atype.upper(), active)
self.populate_annotations()
 
 
def set_visible_priority(self, togglebutton, title):
active = togglebutton.get_active()
self.srvgui.set_key_value('ANNOTATIONS_PRIORITY_%s_VISIBLE' % title.upper(), active)
self.populate_annotations()
 
 
def setup_visor(self):
scr = Gtk.ScrolledWindow()
scr.set_hexpand(True)
142,20 → 95,17
# Setup model
self.model = Gtk.TreeStore(
int, # key
str, # TID (Attachment ID)
Pixbuf, # Icon
int, # checkbox
str, # sid
str, # title
str, # component
str, # category
str, # type
str, # priority
str, # last update
str, # Annotation Id (extra key)
str, # Timestamp updated
str, # Annotation created
str, # Timestamp created
str, # SAP Note
str, # Title
str, # Description
str, # Added
str, # Added (timestamp)
str, # Size
int, # Size (int)
str, # Mimetype
str, # Document Type
)
 
# Setup columns
170,13 → 120,13
hbox.show_all()
return hbox
 
# SAP Note key
# TID (Attachment ID)
self.renderer_key = Gtk.CellRendererText()
self.column_key = Gtk.TreeViewColumn('Key', self.renderer_key, text=0)
self.column_key = Gtk.TreeViewColumn('TID', self.renderer_key, text=0)
self.column_key.set_visible(False)
self.column_key.set_expand(False)
self.column_key.set_clickable(False)
self.column_key.set_sort_indicator(True)
# ~ self.column_key.set_clickable(False)
# ~ self.column_key.set_sort_indicator(False)
self.treeview.append_column(self.column_key)
 
# Icon
183,78 → 133,66
self.renderer_icon = Gtk.CellRendererPixbuf()
self.renderer_icon.set_alignment(0.0, 0.5)
self.column_icon = Gtk.TreeViewColumn('', self.renderer_icon, pixbuf=1)
widget = get_column_header_widget('', 'basico-empty')
self.column_icon.set_widget(widget)
# ~ widget = get_column_header_widget('', 'basico-attachment')
# ~ self.column_icon.set_widget(widget)
self.column_icon.set_visible(True)
self.column_icon.set_expand(False)
self.column_icon.set_clickable(False)
self.column_icon.set_sort_indicator(True)
# ~ self.column_icon.set_clickable(False)
# ~ self.column_icon.set_sort_indicator(True)
self.treeview.append_column(self.column_icon)
 
# SAP Note Checkbox
self.renderer_checkbox = Gtk.CellRendererToggle()
self.renderer_checkbox.connect("toggled", self.toggle_checkbox)
self.column_checkbox = Gtk.TreeViewColumn('', self.renderer_checkbox, active=2)
self.column_checkbox.set_sizing(Gtk.TreeViewColumnSizing.AUTOSIZE)
self.column_checkbox.set_visible(False)
self.column_checkbox.set_expand(False)
self.column_checkbox.set_clickable(True)
self.column_checkbox.set_sort_indicator(True)
self.column_checkbox.set_property('spacing', 50)
self.treeview.append_column(self.column_checkbox)
 
# SAP Note Id
self.renderer_sid = Gtk.CellRendererText()
self.renderer_sid.set_property('xalign', 1.0)
self.renderer_sid.set_property('height', 36)
self.renderer_sid.set_property('background', '#F0E3E3')
self.column_sid = Gtk.TreeViewColumn('SAP Note Id', self.renderer_sid, markup=3)
widget = get_column_header_widget('SAP Note Id', 'basico-sid')
self.column_sid.set_widget(widget)
self.column_sid = Gtk.TreeViewColumn('SAP Note', self.renderer_sid, markup=2)
# ~ widget = get_column_header_widget('SAP Note', 'basico-sid')
# ~ self.column_sid.set_widget(widget)
self.column_sid.set_visible(True)
self.column_sid.set_sizing(Gtk.TreeViewColumnSizing.AUTOSIZE)
self.column_sid.set_expand(False)
self.column_sid.set_clickable(True)
self.column_sid.set_sort_indicator(True)
self.column_sid.set_sort_column_id(0)
self.column_sid.set_sort_column_id(2)
self.treeview.append_column(self.column_sid)
 
# SAP Note title
# Attachment Title
self.renderer_title = Gtk.CellRendererText()
self.renderer_title.set_property('background', '#FFFEEA')
self.renderer_title.set_property('ellipsize', Pango.EllipsizeMode.MIDDLE)
self.column_title = Gtk.TreeViewColumn('Title', self.renderer_title, markup=4)
widget = get_column_header_widget('Title', 'basico-tag')
self.column_title.set_widget(widget)
self.column_title = Gtk.TreeViewColumn('Title', self.renderer_title, markup=3)
# ~ widget = get_column_header_widget('Title', 'basico-tag')
# ~ self.column_title.set_widget(widget)
self.column_title.set_visible(True)
self.column_title.set_sizing(Gtk.TreeViewColumnSizing.FIXED)
self.column_title.set_expand(True)
self.column_title.set_clickable(True)
self.column_title.set_sort_indicator(True)
self.column_title.set_sort_column_id(4)
self.column_title.set_sort_column_id(3)
self.treeview.append_column(self.column_title)
 
# SAP Note Component
# Description
self.renderer_component = Gtk.CellRendererText()
self.renderer_component.set_property('background', '#E3E3F0')
self.column_component = Gtk.TreeViewColumn('Component', self.renderer_component, markup=5)
widget = get_column_header_widget('Component', 'basico-component')
self.column_component.set_widget(widget)
self.column_component = Gtk.TreeViewColumn('Description', self.renderer_component, markup=4)
# ~ widget = get_column_header_widget('Description', 'basico-component')
# ~ self.column_component.set_widget(widget)
self.column_component.set_visible(True)
self.column_component.set_sizing(Gtk.TreeViewColumnSizing.FIXED)
self.column_component.set_expand(False)
self.column_component.set_clickable(True)
self.column_component.set_sort_indicator(True)
self.column_component.set_sort_column_id(5)
self.column_component.set_sort_column_id(4)
self.treeview.append_column(self.column_component)
 
# SAP Note Category
# Added
self.renderer_category = Gtk.CellRendererText()
self.renderer_category.set_property('background', '#E3F1E3')
self.column_category = Gtk.TreeViewColumn('Category', self.renderer_category, markup=6)
widget = get_column_header_widget('Category', 'basico-category')
self.column_category = Gtk.TreeViewColumn('Added', self.renderer_category, markup=5)
widget = get_column_header_widget('Added', 'basico-category')
self.column_category.set_widget(widget)
self.column_category.set_visible(False)
self.column_category.set_visible(True)
self.column_category.set_sizing(Gtk.TreeViewColumnSizing.AUTOSIZE)
self.column_category.set_expand(False)
self.column_category.set_clickable(True)
262,22 → 200,16
self.column_category.set_sort_column_id(6)
self.treeview.append_column(self.column_category)
 
# SAP Note Type
# Added (timestamp)
self.renderer_type = Gtk.CellRendererText()
self.renderer_type.set_property('background', '#DADAFF')
self.column_type = Gtk.TreeViewColumn('Type', self.renderer_type, markup=7)
self.column_type.set_visible(True)
self.column_type.set_expand(False)
self.column_type.set_sizing(Gtk.TreeViewColumnSizing.AUTOSIZE)
self.column_type.set_clickable(True)
self.column_type.set_sort_indicator(True)
self.column_type.set_sort_column_id(7)
self.column_type = Gtk.TreeViewColumn('Added', self.renderer_type, text=6)
self.column_type.set_visible(False)
self.treeview.append_column(self.column_type)
 
# SAP Note Priority
# Size
self.renderer_priority = Gtk.CellRendererText()
self.renderer_priority.set_property('background', '#e4f1f1')
self.column_priority = Gtk.TreeViewColumn('Priority', self.renderer_priority, markup=8)
self.column_priority = Gtk.TreeViewColumn('Size', self.renderer_priority, markup=7)
self.column_priority.set_visible(True)
self.column_priority.set_expand(False)
self.column_priority.set_clickable(True)
285,64 → 217,27
self.column_priority.set_sort_column_id(8)
self.treeview.append_column(self.column_priority)
 
# Annotation Updated On
self.renderer_updated = Gtk.CellRendererText()
self.renderer_updated.set_property('background', '#FFE6D1')
self.column_updated = Gtk.TreeViewColumn('Updated', self.renderer_updated, markup=9)
self.column_updated.set_visible(True)
self.column_updated.set_expand(False)
self.column_updated.set_sizing(Gtk.TreeViewColumnSizing.AUTOSIZE)
self.column_updated.set_clickable(True)
self.column_updated.set_sort_indicator(True)
self.column_updated.set_sort_column_id(11)
self.column_updated.set_sort_order(Gtk.SortType.DESCENDING)
self.model.set_sort_column_id(11, Gtk.SortType.DESCENDING)
self.treeview.append_column(self.column_updated)
# Size (int)
self.renderer_sizeint = Gtk.CellRendererText()
self.renderer_sizeint.set_property('background', '#FFE6D1')
self.column_sizeint = Gtk.TreeViewColumn('SizeInt', self.renderer_sizeint, text=8)
self.column_sizeint.set_visible(False)
self.column_sizeint.set_clickable(True)
self.column_sizeint.set_sort_indicator(True)
self.column_sizeint.set_sort_column_id(8)
self.treeview.append_column(self.column_sizeint)
 
# Annotation Id
# Mimetype
self.renderer_annotation = Gtk.CellRendererText()
self.column_annotation = Gtk.TreeViewColumn('Annotation Id', self.renderer_annotation, markup=10)
self.column_annotation = Gtk.TreeViewColumn('Mimetype', self.renderer_annotation, markup=9)
self.column_annotation.set_visible(False)
self.column_annotation.set_expand(False)
self.column_annotation.set_clickable(False)
self.column_annotation.set_sort_indicator(True)
self.treeview.append_column(self.column_annotation)
 
# Timestamp updated
# Document Type
self.renderer_timestamp = Gtk.CellRendererText()
self.column_timestamp = Gtk.TreeViewColumn('Timestamp updated', self.renderer_timestamp, text=11)
self.column_timestamp = Gtk.TreeViewColumn('Document type', self.renderer_timestamp, text=10)
self.column_timestamp.set_visible(False)
self.column_timestamp.set_expand(False)
self.column_timestamp.set_clickable(False)
self.column_timestamp.set_sort_indicator(True)
self.column_timestamp.set_sort_column_id(11)
self.column_timestamp.set_sort_order(Gtk.SortType.ASCENDING)
self.treeview.append_column(self.column_timestamp)
 
# Annotation Created On
self.renderer_updated = Gtk.CellRendererText()
self.renderer_updated.set_property('background', '#FFE6D1')
self.column_updated = Gtk.TreeViewColumn('Created', self.renderer_updated, markup=12)
self.column_updated.set_visible(True)
self.column_updated.set_expand(False)
self.column_updated.set_sizing(Gtk.TreeViewColumnSizing.AUTOSIZE)
self.column_updated.set_clickable(True)
self.column_updated.set_sort_indicator(True)
self.column_updated.set_sort_column_id(13)
self.column_updated.set_sort_order(Gtk.SortType.DESCENDING)
self.model.set_sort_column_id(11, Gtk.SortType.DESCENDING)
self.treeview.append_column(self.column_updated)
 
# Timestamp
self.renderer_timestamp = Gtk.CellRendererText()
self.column_timestamp = Gtk.TreeViewColumn('Timestamp created', self.renderer_timestamp, text=13)
self.column_timestamp.set_visible(False)
self.column_timestamp.set_expand(False)
self.column_timestamp.set_clickable(False)
self.column_timestamp.set_sort_indicator(True)
self.column_timestamp.set_sort_column_id(11)
self.column_timestamp.set_sort_order(Gtk.SortType.ASCENDING)
self.treeview.append_column(self.column_timestamp)
# Treeview properties
self.treeview.set_can_focus(False)
354,8 → 249,6
self.treeview.set_enable_tree_lines(True)
self.treeview.set_level_indentation(10)
self.treeview.connect('button_press_event', self.right_click)
 
 
# DOC: In order to have a Gtk.Widged with sorting and filtering
# capabilities, you have to filter the model first, and use this
373,7 → 266,7
# Selection
self.selection = self.treeview.get_selection()
self.selection.set_mode(Gtk.SelectionMode.SINGLE)
self.selection.connect('changed', self.row_changed)
# ~ self.selection.connect('changed', self.row_changed)
 
# Set model (filtered and sorted)
self.sorted_model.set_sort_column_id(9, Gtk.SortType.ASCENDING)
409,13 → 302,13
return match
 
 
def update_total_annotations_count(self):
def update_total_attachments_count(self):
statusbar = self.srvgui.get_widget('widget_statusbar')
lblnotescount = self.srvgui.get_widget('gtk_label_total_notes')
total = self.srvant.get_total()
total = self.srvatc.get_total()
count = len(self.visible_filter)
lblnotescount.set_markup("<b>%d/<big>%d annotations</big></b>" % (count, total))
msg = 'View populated with %d annotations' % count
lblnotescount.set_markup("<b>%d/<big>%d attachments</big></b>" % (count, total))
msg = 'View populated with %d attachments' % count
self.srvuif.statusbar_msg(msg)
 
 
423,29 → 316,29
return self.visible_filter
 
 
def row_changed(self, selection):
try:
model, treeiter = selection.get_selected()
if treeiter is not None:
component = model[treeiter][5]
if component == 'Annotation':
aid = model[treeiter][10]
is_valid = self.srvant.is_valid(aid)
if is_valid:
self.srvclb.action_annotation_edit(aid)
else:
aid = None
self.srvuif.set_widget_visibility('gtk_vbox_container_annotations', False)
except Exception as error:
head = "Error reading annotation's contents"
body = "<i>%s</i>\n\n" % error
body += "As a workaround, a new file will be created"
dialog = self.srvuif.message_dialog_error(head, body)
self.log.debug(error)
self.log.debug(self.get_traceback())
dialog.run()
dialog.destroy()
#FIXME: create an empty file for contents
# ~ def row_changed(self, selection):
# ~ try:
# ~ model, treeiter = selection.get_selected()
# ~ if treeiter is not None:
# ~ component = model[treeiter][5]
# ~ if component == 'Annotation':
# ~ aid = model[treeiter][10]
# ~ is_valid = self.srvant.is_valid(aid)
# ~ if is_valid:
# ~ self.srvclb.action_annotation_edit(aid)
# ~ else:
# ~ aid = None
# ~ self.srvuif.set_widget_visibility('gtk_vbox_container_annotations', False)
# ~ except Exception as error:
# ~ head = "Error reading annotation's contents"
# ~ body = "<i>%s</i>\n\n" % error
# ~ body += "As a workaround, a new file will be created"
# ~ dialog = self.srvuif.message_dialog_error(head, body)
# ~ self.log.debug(error)
# ~ self.log.debug(self.get_traceback())
# ~ dialog.run()
# ~ dialog.destroy()
# ~ #FIXME: create an empty file for contents
 
 
def toggle_checkbox(self, cell, path):
453,33 → 346,30
self.model[path][2] = not self.model[path][2]
 
 
def get_node(self, key, icon, checkbox, sid, title, component, category='', sntype='', priority='', updated='', aid='', ts_updated='', created='', ts_created=''):
def get_node(self, key, icon, sid, title, description, added, timestamp, size, sizeint, mimetype, doctype):
# Add completion entries
completion = self.srvgui.get_widget('gtk_entrycompletion_visor')
completion_model = completion.get_model()
title = self.srvutl.clean_html(title)
completion_model.append([title])
# ~ completion = self.srvgui.get_widget('gtk_entrycompletion_visor')
# ~ completion_model = completion.get_model()
# ~ title = self.srvutl.clean_html(title)
# ~ completion_model.append([title])
 
node = []
node.append(key)
node.append(icon)
node.append(checkbox)
node.append(sid)
node.append(title)
node.append(component)
node.append(category)
node.append(sntype)
node.append(priority)
node.append(updated)
node.append(aid) # Extra key for annotations id (aid)
node.append(ts_updated)
node.append(created)
node.append(ts_created)
node.append(description)
node.append(added)
node.append(timestamp)
node.append(size)
node.append(sizeint)
node.append(mimetype)
node.append(doctype)
return node
 
 
def set_bag(self, annotations):
self.bag = annotations
def set_bag(self, attachments):
self.bag = attachments
 
 
def get_bag(self):
488,78 → 378,51
 
def reload(self):
bag = self.get_bag()
self.populate_annotations(bag)
self.populate_attachments(bag)
 
 
def populate_annotations(self, annotations=None):
self.column_sid.set_visible(False)
self.column_checkbox.set_visible(False)
self.column_category.set_visible(True)
self.column_component.set_visible(False)
completion = self.srvgui.get_widget('gtk_entrycompletion_visor')
completion_model = completion.get_model()
completion_model.clear()
def populate_attachments(self, attachments=None):
# ~ completion = self.srvgui.get_widget('gtk_entrycompletion_visor')
# ~ completion_model = completion.get_model()
# ~ completion_model.clear()
 
self.treeview.set_model(None)
self.model.clear()
 
if annotations is None:
annotations = self.srvant.get_all()
if attachments is None:
attachments = self.srvatc.get_all()
else:
self.set_bag(annotations)
self.set_bag(attachments)
 
dcats = {}
snpids = {}
nodes = []
for fname in annotations:
for fname in attachments:
try:
with open(fname, 'r') as fa:
try:
annotation = json.load(fa)
category = annotation['Category']
atype = annotation['Type']
cat_key = 'ANNOTATIONS_CATEGORY_%s_VISIBLE' % category.upper()
type_key = 'ANNOTATIONS_TYPE_%s_VISIBLE' % atype.upper()
category_active = self.srvgui.get_key_value(cat_key)
metadata = json.load(fa)
sid = self.srvatc.get_sid(metadata['TID'])
try:
type_active = self.srvgui.get_key_value(type_key)
except Exception as error:
self.log.error(error)
type_active = True
if category_active:
if type_active:
ppid = None
sid = self.srvant.get_sid(annotation['AID'])
try:
icon = self.icons['type']['%s' % atype.lower()]
except:
icon = None
if sid != '0000000000':
title = "<b>[SAP Note %d]</b> %s" % (int(sid), annotation['Title'])
else:
title = annotation['Title']
 
try:
annotation['Priority']
except:
annotation['Priority'] = 'Normal'
 
node = self.get_node( 0,
icon,
False,
str(int(sid)),
title,
annotation['Component'],
annotation['Category'],
annotation['Type'],
annotation['Priority'],
self.srvutl.fuzzy_date_from_timestamp(annotation['Timestamp']),
annotation['AID'],
annotation['Timestamp'],
self.srvutl.fuzzy_date_from_timestamp(annotation['Created']),
annotation['Created']
)
nodes.append(node)
sid = str(int(sid))
except:
sid = ''
self.log.debug(metadata['TID'])
if sid == '0000000000':
sid = ''
node = self.get_node( metadata['TID'],
None,
sid,
metadata['Title'],
metadata['Description'],
self.srvutl.fuzzy_date_from_timestamp(metadata['Created']),
metadata['Created'],
str(self.srvutl.get_human_sizes(int(metadata['Size']))),
int(metadata['Size']),
metadata['Mimetype'],
metadata['Doctype'],
)
nodes.append(node)
except Exception as error:
self.log.error(error)
self.log.error(self.get_traceback())
566,15 → 429,15
except Exception as error:
# Whenever an annotation is deleted, after reloading
# the view, it fails. Then, skip it
self.log.error("Annotation: %s", fname)
self.log.error("Attachment: %s", fname)
self.log.error(error)
 
for node in nodes:
self.model.append(ppid, node)
self.model.append(None, node)
 
self.treeview.set_model(self.sorted_model)
self.sort_by_timestamp()
self.update_total_annotations_count()
self.update_total_attachments_count()
 
 
def show_widgets(self):
604,7 → 467,7
 
 
def build_popover(self, aid, popover, component):
sid = self.srvant.get_sid(aid)
sid = self.srvatc.get_sid(aid)
 
def get_popover_button(text, icon_name):
button = Gtk.Button()
/branches/BR-0.4/basico/widgets/wdg_visor_toolbar.py
56,7 → 56,7
tool.set_icon_name('basico-attachment')
tool.set_tooltip_markup('<b>Attach any document to this annotation</b>')
popover = self.srvgui.add_widget('gtk_button_main_toolbar_attachment', Gtk.Popover.new(tool))
# ~ tool.connect('clicked', self.srvclb.gui_annotation_widget_show)
tool.connect('clicked', self.srvclb.gui_attachment_add)
self.tool_bar.insert(tool, -1)
 
# Filter entry