Esempio n. 1
0
void IpBlocksLoader::load() {
	m_blocks.clear();
	const pair<bool,string> xml = loadIpBlocksXml();
	if (!xml.second.empty()) {
		bool retry = false;
		try {
		  SimpleXMLReader(this).fromXML(xml.second);
		}
		catch (const SimpleXMLException& e) {
			LOG_MESSAGE("Error parsing XML: " + e.getError());
			retry = true;
		}
		if (retry && xml.first) {
#ifdef _DEBUG
			m_operatorIds.clear();
#endif
			m_blocks.clear();
			try {
				SimpleXMLReader(this).fromXML(loadIpBlocksResourceXml());
			}
			catch (const SimpleXMLException& e) {
				LOG_MESSAGE("Error parsing resource XML: " + e.getError());
			}
		}
	}
}
string DirectoryListing::loadXML(const string& xml, bool updating) {
	setUtf8(true);

	ListLoader ll(getRoot(), updating);
	SimpleXMLReader(&ll).fromXML(xml);
	return ll.getBase();
}
Esempio n. 3
0
string DirectoryListing::loadXML(InputStream& is, bool updating, bool p_is_own_list)
{
	CFlyLog l_log("[loadXML]");
	ListLoader ll(this, getRoot(), updating, getUser(), p_is_own_list);
	//l_log.step("start parse");
	SimpleXMLReader(&ll).parse(is);
	l_log.step("Stop parse file:" + m_file);
	m_is_mediainfo = ll.isMediainfoList();
	m_is_own_list = p_is_own_list;
	return ll.getBase();
}
Esempio n. 4
0
void SimpleXML::fromXML(const string& aXML) {
    if(!root.children.empty()) {
        delete root.children[0];
        root.children.clear();
    }

    TagReader t(&root);
        SimpleXMLReader(&t).parse(aXML.c_str(), aXML.size(), false);

    if(root.children.size() != 1) {
        throw SimpleXMLException("Invalid XML file, missing or multiple root tags");
    }

    current = &root;
    resetCurrentChild();
}
Esempio n. 5
0
tstring HtmlToRtf::convert(const string& html, RichTextBox* box) {
	Parser parser(box);
	try { SimpleXMLReader(&parser).parse(html); }
	catch(const SimpleXMLException& e) { return Text::toT(e.getError()); }
	return parser.finalize();
}
Esempio n. 6
0
LRESULT PublicHubsFrame::onSelChangedISPTree(int /*idCtrl*/, LPNMHDR pnmh, BOOL& /*bHandled*/)
{
	NMTREEVIEW* p = (NMTREEVIEW*) pnmh;
	if (p->itemNew.state & TVIS_SELECTED)
	{
		CWaitCursor l_cursor_wait; //-V808
		m_ctrlHubs.DeleteAllItems();
		if (p->itemNew.lParam == e_HubListItem)
		{
			tstring buf;
			buf.resize(100);
			if (m_ctrlTree.GetItemText(p->itemNew.hItem, &buf[0], buf.size()))
			{
				const string l_url = Text::fromT(buf.c_str());
				CFlyLog l_log("Download Hub List");
				std::vector<byte> l_data;
				l_log.step("URL = " + l_url);
				CFlyHTTPDownloader l_http_downloader;
				//l_http_downloader.setInetFlag(INTERNET_FLAG_RESYNCHRONIZE);
				l_http_downloader.m_is_use_cache = true;
				if (l_http_downloader.getBinaryDataFromInet(l_url, l_data, 1000))
				{
					const string ext = Util::getFileExt(l_url);
					if (stricmp(ext, ".bz2") == 0)
					{
						std::vector<byte> l_out(l_data.size() * 20);
						size_t outSize = l_out.size();
						size_t sizeRead = l_data.size();
						UnBZFilter unbzip;
						try
						{
							unbzip(l_data.data(), (size_t &)sizeRead, &l_out[0], outSize);
							l_out[outSize] = 0;
							HubEntryList& l_list = m_publicListMatrix[l_url];
							l_list.clear();
							try
							{
								PubHubListXmlListLoader loader(l_list);
								SimpleXMLReader(&loader).parse((const char*)l_out.data(), outSize, false);
								m_hubs = l_list;
								updateList();
							}
							catch (const Exception& e)
							{
								l_log.step("XML parse error = " + e.getError());
							}
						}
						catch (const Exception& e)
						{
							l_log.step("Unpack error = " + e.getError());
						}
					}
				}
			}
		}
		else
		{
			TStringSet l_items;
			LoadTreeItems(l_items, p->itemNew.hItem);
			int cnt = 0;
			for (auto i = l_items.cbegin(); i != l_items.end(); ++i)
			{
				TStringList l;
				l.resize(COLUMN_LAST);
				l[COLUMN_SERVER] = *i;
				m_ctrlHubs.insert(cnt++, l, I_IMAGECALLBACK); // !SMT!-IP
			}
		}
		m_ctrlHubs.resort();
		updateStatus();
	}
	return 0;
}