示例#1
0
        public Mobi ReadWithoutText()
        {
            if (this._disposed)
            {
                throw new ObjectDisposedException("stream");
            }

            var structure = this.ReadStructure();
            var result    = new Mobi
            {
                Structure = structure,
                Title     = structure.FullName,
            };

            if (structure.ExthHeader != null)
            {
                var exthHeader = structure.ExthHeader;
                result.Creator     = exthHeader.RecordList.FirstOrDefault(p => p.Type == ExthRecordType.Author)?.DataAsString();
                result.Publisher   = exthHeader.RecordList.FirstOrDefault(p => p.Type == ExthRecordType.Publisher)?.DataAsString();
                result.Description = exthHeader.RecordList.FirstOrDefault(p => p.Type == ExthRecordType.Description)?.DataAsString();
                result.Subject     = exthHeader.RecordList.FirstOrDefault(p => p.Type == ExthRecordType.Subject)?.DataAsString();
                result.Date        = exthHeader.RecordList.FirstOrDefault(p => p.Type == ExthRecordType.PublishingDate)?.DataAsString();
                result.Contributor = exthHeader.RecordList.FirstOrDefault(p => p.Type == ExthRecordType.Contributor)?.DataAsString();
                result.Rights      = exthHeader.RecordList.FirstOrDefault(p => p.Type == ExthRecordType.Rights)?.DataAsString();
                result.Type        = exthHeader.RecordList.FirstOrDefault(p => p.Type == ExthRecordType.Type)?.DataAsString();
                result.Source      = exthHeader.RecordList.FirstOrDefault(p => p.Type == ExthRecordType.Source)?.DataAsString();
                result.Language    = exthHeader.RecordList.FirstOrDefault(p => p.Type == ExthRecordType.Language)?.DataAsString();
            }

            this.RefreshPalmDBRecordList(structure.PalmDB.RecordInfoList);

            result.Cover = this.ReadCover(structure);

            return(result);
        }
示例#2
0
        public bool TryRead(out Mobi mobi)
        {
            bool result;

            try
            {
                mobi   = this.Read();
                result = true;
            }
            catch (Exception)
            {
                mobi   = null;
                result = false;
            }

            return(result);
        }