示例#1
0
        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);
        }
示例#2
0
 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))));
 }
示例#3
0
        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));
 }