FbImportBook::FbImportBook(FbImportZip & owner, wxZipEntry & entry) : m_parser(NULL) , m_database(owner.GetDatabase()) , m_filename(entry.GetInternalName()) , m_filetype(Ext(m_filename)) , m_message(owner.GetFilename() + wxT(": ") + m_filename) , m_filesize(entry.GetSize()) , m_archive(owner.GetId()) , m_ok(false) { if (m_filetype == wxT("fbd")) return; wxLogMessage(_("Import zip entry %s"), m_filename.c_str()); if (!(m_ok = owner.OpenEntry(entry))) return; if (m_filetype == wxT("fb2")) { m_parser = new FbImportReaderFB2(owner, m_md5sum.IsEmpty()); m_md5sum = m_parser->GetMd5(); } else if (m_filetype == wxT("epub")) { m_md5sum = CalcMd5(owner); if (!owner.OpenEntry(entry)) return; wxString rootfile = FbRootReaderEPUB(owner).GetRoot(); if (!owner.OpenEntry(entry)) return; m_parser = new FbDataReaderEPUB(owner, rootfile); } else { m_md5sum = CalcMd5(owner); wxZipEntry * info = owner.GetInfo(m_filename); if (info && owner.OpenEntry(*info)) { m_parser = new FbImportReaderFB2(owner); } } }
FbImportBook::FbImportBook(FbImportThread & owner, wxInputStream & in, const wxString & filename) : m_parser(NULL) , m_database(*owner.GetDatabase()) , m_filename(owner.GetRelative(filename)) , m_filepath(owner.GetAbsolute(filename)) , m_filetype(Ext(m_filename)) , m_message(filename) , m_filesize(in.GetLength()) , m_archive(0) , m_ok(false) { wxLogMessage(_("Import file %s"), m_filename.c_str()); m_ok = in.IsOk(); if (!m_ok) return; if (m_filetype == wxT("fb2")) { m_parser = new FbImportReaderFB2(in, true); m_md5sum = m_parser->GetMd5(); } else if (m_filetype == wxT("epub")) { m_md5sum = CalcMd5(in); in.SeekI(0); wxString rootfile = FbRootReaderEPUB(in).GetRoot(); in.SeekI(0); m_parser = new FbDataReaderEPUB(in, rootfile); } else { m_md5sum = CalcMd5(in); } }
bool ModuleSettings::IsDirty() { TRACE2("MD5 of Settings: ",data.md5); TRACE2("Calculated MD5: ",CalcMd5()); return CalcMd5()!=data.md5; }
void ModuleSettings::UpdateMd5() { strncpy(data.md5,CalcMd5().c_str(),32); }