matchers

package
v1.1.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 21, 2021 License: MIT Imports: 4 Imported by: 74

Documentation

Index

Constants

View Source
const (
	ZstdMagicSkippableStart = 0x184D2A50
	ZstdMagicSkippableMask  = 0xFFFFFFF0
)
View Source
const (
	TYPE_DOC docType = iota
	TYPE_DOCX
	TYPE_XLS
	TYPE_XLSX
	TYPE_PPT
	TYPE_PPTX
	TYPE_OOXML
)

Variables

View Source
var (
	TypeWasm = newType("wasm", "application/wasm")
	TypeDex  = newType("dex", "application/vnd.android.dex")
	TypeDey  = newType("dey", "application/vnd.android.dey")
)
View Source
var (
	TypeEpub   = newType("epub", "application/epub+zip")
	TypeZip    = newType("zip", "application/zip")
	TypeTar    = newType("tar", "application/x-tar")
	TypeRar    = newType("rar", "application/vnd.rar")
	TypeGz     = newType("gz", "application/gzip")
	TypeBz2    = newType("bz2", "application/x-bzip2")
	Type7z     = newType("7z", "application/x-7z-compressed")
	TypeXz     = newType("xz", "application/x-xz")
	TypeZstd   = newType("zst", "application/zstd")
	TypePdf    = newType("pdf", "application/pdf")
	TypeExe    = newType("exe", "application/vnd.microsoft.portable-executable")
	TypeSwf    = newType("swf", "application/x-shockwave-flash")
	TypeRtf    = newType("rtf", "application/rtf")
	TypeEot    = newType("eot", "application/octet-stream")
	TypePs     = newType("ps", "application/postscript")
	TypeSqlite = newType("sqlite", "application/vnd.sqlite3")
	TypeNes    = newType("nes", "application/x-nintendo-nes-rom")
	TypeCrx    = newType("crx", "application/x-google-chrome-extension")
	TypeCab    = newType("cab", "application/vnd.ms-cab-compressed")
	TypeDeb    = newType("deb", "application/vnd.debian.binary-package")
	TypeAr     = newType("ar", "application/x-unix-archive")
	TypeZ      = newType("Z", "application/x-compress")
	TypeLz     = newType("lz", "application/x-lzip")
	TypeRpm    = newType("rpm", "application/x-rpm")
	TypeElf    = newType("elf", "application/x-executable")
	TypeDcm    = newType("dcm", "application/dicom")
	TypeIso    = newType("iso", "application/x-iso9660-image")
	TypeMachO  = newType("macho", "application/x-mach-binary") // Mach-O binaries have no common extension.
)
View Source
var (
	TypeMidi = newType("mid", "audio/midi")
	TypeMp3  = newType("mp3", "audio/mpeg")
	TypeM4a  = newType("m4a", "audio/m4a")
	TypeOgg  = newType("ogg", "audio/ogg")
	TypeFlac = newType("flac", "audio/x-flac")
	TypeWav  = newType("wav", "audio/x-wav")
	TypeAmr  = newType("amr", "audio/amr")
	TypeAac  = newType("aac", "audio/aac")
	TypeAiff = newType("aiff", "audio/x-aiff")
)
View Source
var (
	TypeDoc  = newType("doc", "application/msword")
	TypeDocx = newType("docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document")
	TypeXls  = newType("xls", "application/vnd.ms-excel")
	TypeXlsx = newType("xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
	TypePpt  = newType("ppt", "application/vnd.ms-powerpoint")
	TypePptx = newType("pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation")
)
View Source
var (
	TypeWoff  = newType("woff", "application/font-woff")
	TypeWoff2 = newType("woff2", "application/font-woff")
	TypeTtf   = newType("ttf", "application/font-sfnt")
	TypeOtf   = newType("otf", "application/font-sfnt")
)
View Source
var (
	TypeJpeg     = newType("jpg", "image/jpeg")
	TypeJpeg2000 = newType("jp2", "image/jp2")
	TypePng      = newType("png", "image/png")
	TypeGif      = newType("gif", "image/gif")
	TypeWebp     = newType("webp", "image/webp")
	TypeCR2      = newType("cr2", "image/x-canon-cr2")
	TypeTiff     = newType("tif", "image/tiff")
	TypeBmp      = newType("bmp", "image/bmp")
	TypeJxr      = newType("jxr", "image/vnd.ms-photo")
	TypePsd      = newType("psd", "image/vnd.adobe.photoshop")
	TypeIco      = newType("ico", "image/vnd.microsoft.icon")
	TypeHeif     = newType("heif", "image/heif")
	TypeDwg      = newType("dwg", "image/vnd.dwg")
)
View Source
var (
	TypeMp4  = newType("mp4", "video/mp4")
	TypeM4v  = newType("m4v", "video/x-m4v")
	TypeMkv  = newType("mkv", "video/x-matroska")
	TypeWebm = newType("webm", "video/webm")
	TypeMov  = newType("mov", "video/quicktime")
	TypeAvi  = newType("avi", "video/x-msvideo")
	TypeWmv  = newType("wmv", "video/x-ms-wmv")
	TypeMpeg = newType("mpg", "video/mpeg")
	TypeFlv  = newType("flv", "video/x-flv")
	Type3gp  = newType("3gp", "video/3gpp")
)
View Source
var Application = Map{
	TypeWasm: Wasm,
	TypeDex:  Dex,
	TypeDey:  Dey,
}
View Source
var Archive = Map{
	TypeEpub:   bytePrefixMatcher(epubMagic),
	TypeZip:    Zip,
	TypeTar:    Tar,
	TypeRar:    Rar,
	TypeGz:     bytePrefixMatcher(gzMagic),
	TypeBz2:    bytePrefixMatcher(bz2Magic),
	Type7z:     bytePrefixMatcher(sevenzMagic),
	TypeXz:     bytePrefixMatcher(xzMagic),
	TypeZstd:   Zst,
	TypePdf:    bytePrefixMatcher(pdfMagic),
	TypeExe:    bytePrefixMatcher(exeMagic),
	TypeSwf:    Swf,
	TypeRtf:    bytePrefixMatcher(rtfMagic),
	TypeEot:    Eot,
	TypePs:     bytePrefixMatcher(psMagic),
	TypeSqlite: bytePrefixMatcher(sqliteMagic),
	TypeNes:    bytePrefixMatcher(nesMagic),
	TypeCrx:    bytePrefixMatcher(crxMagic),
	TypeCab:    Cab,
	TypeDeb:    bytePrefixMatcher(debMagic),
	TypeAr:     bytePrefixMatcher(arMagic),
	TypeZ:      Z,
	TypeLz:     bytePrefixMatcher(lzMagic),
	TypeRpm:    Rpm,
	TypeElf:    Elf,
	TypeDcm:    Dcm,
	TypeIso:    Iso,
	TypeMachO:  MachO,
}
View Source
var MatcherKeys []types.Type
View Source
var Matchers = make(map[types.Type]TypeMatcher)

Store registered file type matchers

Functions

func Aac added in v1.0.6

func Aac(buf []byte) bool

func Aiff added in v1.1.3

func Aiff(buf []byte) bool

func Amr

func Amr(buf []byte) bool

func Avi

func Avi(buf []byte) bool

func Bmp

func Bmp(buf []byte) bool

func CR2

func CR2(buf []byte) bool

func Cab

func Cab(buf []byte) bool

func Dcm added in v1.0.8

func Dcm(buf []byte) bool

func Dex added in v1.1.1

func Dex(buf []byte) bool

Dex detects dalvik executable(DEX)

func Dey added in v1.1.1

func Dey(buf []byte) bool

Dey Optimized Dalvik Executable(ODEX)

func Doc added in v1.0.4

func Doc(buf []byte) bool

reference: https://bz.apache.org/ooo/show_bug.cgi?id=111457

func Docx added in v1.0.4

func Docx(buf []byte) bool

func Dwg added in v1.0.9

func Dwg(buf []byte) bool

func Elf added in v1.0.3

func Elf(buf []byte) bool

func Eot

func Eot(buf []byte) bool

func Flac

func Flac(buf []byte) bool

func Flv

func Flv(buf []byte) bool

func Gif

func Gif(buf []byte) bool

func Heif added in v1.0.8

func Heif(buf []byte) bool

func Ico

func Ico(buf []byte) bool

func Iso added in v1.0.9

func Iso(buf []byte) bool

func Jpeg

func Jpeg(buf []byte) bool

func Jpeg2000 added in v1.0.6

func Jpeg2000(buf []byte) bool

func Jxr

func Jxr(buf []byte) bool

func M4a

func M4a(buf []byte) bool

func M4v

func M4v(buf []byte) bool

func MachO added in v1.1.1

func MachO(buf []byte) bool

func Match3gp added in v1.0.9

func Match3gp(buf []byte) bool

func Midi

func Midi(buf []byte) bool

func Mkv

func Mkv(buf []byte) bool

func Mov

func Mov(buf []byte) bool

func Mp3

func Mp3(buf []byte) bool

func Mp4

func Mp4(buf []byte) bool

func Mpeg

func Mpeg(buf []byte) bool

func Ogg

func Ogg(buf []byte) bool

func Otf

func Otf(buf []byte) bool

func Png

func Png(buf []byte) bool

func Ppt added in v1.0.4

func Ppt(buf []byte) bool

func Pptx added in v1.0.4

func Pptx(buf []byte) bool

func Psd

func Psd(buf []byte) bool

func Rar

func Rar(buf []byte) bool

func Rpm added in v1.0.2

func Rpm(buf []byte) bool

func Swf

func Swf(buf []byte) bool

func Tar

func Tar(buf []byte) bool

func Tiff

func Tiff(buf []byte) bool

func Ttf

func Ttf(buf []byte) bool

func Wasm added in v1.0.7

func Wasm(buf []byte) bool

Wasm detects a Web Assembly 1.0 filetype.

func Wav

func Wav(buf []byte) bool

func Webm

func Webm(buf []byte) bool

func Webp

func Webp(buf []byte) bool

func Wmv

func Wmv(buf []byte) bool

func Woff

func Woff(buf []byte) bool

func Woff2

func Woff2(buf []byte) bool

func Xls added in v1.0.4

func Xls(buf []byte) bool

func Xlsx added in v1.0.4

func Xlsx(buf []byte) bool

func Z

func Z(buf []byte) bool

func Zip

func Zip(buf []byte) bool

func Zst added in v1.1.3

func Zst(buf []byte) bool

Zstandard compressed data is made of one or more frames. There are two frame formats defined by Zstandard: Zstandard frames and Skippable frames. See more details from https://tools.ietf.org/id/draft-kucherawy-dispatch-zstd-00.html#rfc.section.2

Types

type Map

type Map map[types.Type]Matcher

Type interface to store pairs of type with its matcher function

type Matcher

type Matcher func([]byte) bool

Matcher function interface as type alias

type TypeMatcher

type TypeMatcher func([]byte) types.Type

Type specific matcher function interface

func NewMatcher

func NewMatcher(kind types.Type, fn Matcher) TypeMatcher

Create and register a new type matcher function

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL