Example #1
0
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);
		}
	}
}
Example #2
0
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);
	}
}
Example #3
0
bool ModuleSettings::IsDirty() {
  TRACE2("MD5 of Settings: ",data.md5);
  TRACE2("Calculated MD5:  ",CalcMd5());
  return CalcMd5()!=data.md5;
}
Example #4
0
void ModuleSettings::UpdateMd5() {
  strncpy(data.md5,CalcMd5().c_str(),32);
}