public override ContentInfo Use(Stream stream) { ContentInfo result = null; var buffer = ByteUtils.GetBuffer(stream, 2048); var s = (TextHelper.IsUnicode(buffer) ? Encoding.Unicode.GetString(buffer) : Encoding.ASCII.GetString(buffer)).ToLower(); if ( s.Contains("<!doctype html") || s.Contains("<html") || s.Contains("<head") || s.Contains("<body")) { result = ContentSpecs.First(t => t.ContentType == ContentTypes.HTML); } if ( s.Contains("<!doctype xhtml") || s.Contains("<xhtml") ) { result = ContentSpecs.First(t => t.ContentType == XHTML); } return(result); }
public virtual ContentInfo Use(Stream stream) { if (!SupportsMagics) { return(null); } return(ContentSpecs .FirstOrDefault(info => info.HasMagics && info.Magics.Any(magic => HasMagic(stream, magic.Bytes, magic.Offset)))); }
public override ContentInfo Use(Stream source) { ContentInfo result = null; var buffer = ByteUtils.GetBuffer(source, (int)source.Length); var isUnicode = TextHelper.IsUnicode(buffer); if (isUnicode) { return(ContentSpecs.First(t => t.ContentType == ContentTypes.Text)); } else { return(ContentSpecs.First(t => t.ContentType == ContentTypes.ASCII)); } return(null); }
public virtual bool Supports(long contentType) { return(ContentSpecs.Supports(contentType)); }
public virtual bool Supports(string extension) { return(ContentSpecs.Supports(extension)); }
public virtual ContentInfo Find(long contentType) { return(ContentSpecs.Find(contentType)); }
public virtual ContentInfo FindMime(string mime) { return(ContentSpecs.FindMime(mime)); }
public virtual ContentInfo Find(string extension) { return(ContentSpecs.Find(extension)); }