bool HtmlBookmarksImporter::import(const QString &path) { #ifdef OTTER_ENABLE_QTWEBKIT QFile file(getSuggestedPath(path)); if (!file.open(QIODevice::ReadOnly)) { emit importFinished(BookmarksImport, FailedImport, 0); return false; } if (m_optionsWidget) { if (m_optionsWidget->hasToRemoveExisting()) { removeAllBookmarks(); if (m_optionsWidget->isImportingIntoSubfolder()) { setImportFolder(BookmarksManager::addBookmark(BookmarksModel::FolderBookmark, {{BookmarksModel::TitleRole, m_optionsWidget->getSubfolderName()}})); } } else { setAllowDuplicates(m_optionsWidget->areDuplicatesAllowed()); setImportFolder(m_optionsWidget->getTargetFolder()); } } QWebPage page; page.settings()->setAttribute(QWebSettings::JavascriptEnabled, false); page.mainFrame()->setHtml(file.readAll()); m_totalAmount = page.mainFrame()->findAllElements(QLatin1String("dt, hr")).count(); emit importStarted(BookmarksImport, m_totalAmount); BookmarksManager::getModel()->beginImport(getImportFolder(), page.mainFrame()->findAllElements(QLatin1String("a[href]")).count(), page.mainFrame()->findAllElements(QLatin1String("a[shortcuturl]")).count()); processElement(page.mainFrame()->documentElement().findFirst(QLatin1String("dl"))); BookmarksManager::getModel()->endImport(); emit importFinished(BookmarksImport, SuccessfullImport, m_totalAmount); file.close(); return true; #else return false; #endif }
bool HtmlBookmarksImporter::import(const QString &path) { #ifdef OTTER_ENABLE_QTWEBKIT QFile file(getSuggestedPath(path)); if (!file.open(QIODevice::ReadOnly)) { return false; } if (m_optionsWidget) { if (m_optionsWidget->hasToRemoveExisting()) { removeAllBookmarks(); if (m_optionsWidget->isImportingIntoSubfolder()) { setImportFolder(BookmarksManager::addBookmark(BookmarksModel::FolderBookmark, QUrl(), m_optionsWidget->getSubfolderName())); } } else { setAllowDuplicates(m_optionsWidget->allowDuplicates()); setImportFolder(m_optionsWidget->getTargetFolder()); } } QWebPage page; page.mainFrame()->setHtml(file.readAll()); processElement(page.mainFrame()->documentElement()); file.close(); return true; #else return false; #endif }
bool OpmlImporter::import(const QString &path) { QFile file(getSuggestedPath(path)); if (!file.open(QIODevice::ReadOnly)) { emit importFinished(FeedsImport, FailedImport, 0); return false; } emit importStarted(FeedsImport, -1); FeedsModel *model(new FeedsModel(path, this)); const int estimatedAmount((file.size() > 0) ? static_cast<int>(file.size() / 250) : 0); int totalAmount(0); if (model->getRootEntry()->rowCount() > 0) { FeedsModel::Entry *importFolderEntry(m_optionsWidget->getTargetFolder()); FeedsManager::getModel()->beginImport(importFolderEntry, estimatedAmount); importFolder(model->getRootEntry(), importFolderEntry, (m_optionsWidget ? m_optionsWidget->areDuplicatesAllowed() : true)); FeedsManager::getModel()->endImport(); } model->deleteLater(); emit importFinished(FeedsImport, SuccessfullImport, totalAmount); file.close(); return true; }
bool OperaNotesImporter::import(const QString &path) { QFile file(getSuggestedPath(path)); if (!file.open(QIODevice::ReadOnly)) { return false; } QTextStream stream(&file); stream.setCodec("UTF-8"); QString line(stream.readLine()); if (line != QLatin1String("Opera Hotlist version 2.0")) { return false; } if (m_optionsWidget) { setImportFolder(m_folderComboBox->getCurrentFolder()); } BookmarksItem *note(NULL); OperaNoteEntry type(NoEntry); bool isHeader(true); while (!stream.atEnd()) { line = stream.readLine(); if (isHeader && (line.isEmpty() || line.at(0) != QLatin1Char('#'))) { continue; } isHeader = false; if (line.startsWith(QLatin1String("#NOTE"))) { note = NotesManager::addNote(BookmarksModel::UrlBookmark, QUrl(), QString(), getCurrentFolder()); type = NoteEntry; } else if (line.startsWith(QLatin1String("#FOLDER"))) { note = NotesManager::addNote(BookmarksModel::FolderBookmark, QUrl(), QString(), getCurrentFolder()); type = FolderStartEntry; } else if (line.startsWith(QLatin1String("#SEPERATOR"))) { note = NotesManager::addNote(BookmarksModel::SeparatorBookmark, QUrl(), QString(), getCurrentFolder()); type = SeparatorEntry; } else if (line == QLatin1String("-")) { type = FolderEndEntry; } else if (line.startsWith(QLatin1String("\tURL=")) && note) { const QUrl url(line.section(QLatin1Char('='), 1, -1)); note->setData(url, BookmarksModel::UrlRole); } else if (line.startsWith(QLatin1String("\tNAME=")) && note) { note->setData(line.section(QLatin1Char('='), 1, -1).replace(QLatin1String("\x02\x02"), QLatin1String("\n")), BookmarksModel::DescriptionRole); } else if (line.startsWith(QLatin1String("\tCREATED=")) && note) { note->setData(QDateTime::fromTime_t(line.section(QLatin1Char('='), 1, -1).toUInt()), BookmarksModel::TimeAddedRole); } else if (line.isEmpty()) { if (note) { if (type == FolderStartEntry) { setCurrentFolder(note); } note = NULL; } else if (type == FolderEndEntry) { goToParent(); } type = NoEntry; } } file.close(); return true; }
bool OperaBookmarksImporter::import(const QString &path) { QFile file(getSuggestedPath(path)); if (!file.open(QIODevice::ReadOnly)) { return false; } QTextStream stream(&file); stream.setCodec("UTF-8"); QString line(stream.readLine()); if (line != QLatin1String("Opera Hotlist version 2.0")) { return false; } if (m_optionsWidget) { if (m_optionsWidget->hasToRemoveExisting()) { removeAllBookmarks(); if (m_optionsWidget->isImportingIntoSubfolder()) { setImportFolder(BookmarksManager::addBookmark(BookmarksModel::FolderBookmark, QUrl(), m_optionsWidget->getSubfolderName(), BookmarksManager::getModel()->getRootItem())); } else { setImportFolder(BookmarksManager::getModel()->getRootItem()); } } else { setAllowDuplicates(m_optionsWidget->allowDuplicates()); setImportFolder(m_optionsWidget->getTargetFolder()); } } BookmarksItem *bookmark(NULL); OperaBookmarkEntry type(NoEntry); bool isHeader(true); while (!stream.atEnd()) { line = stream.readLine(); if (isHeader && (line.isEmpty() || line.at(0) != QLatin1Char('#'))) { continue; } isHeader = false; if (line.startsWith(QLatin1String("#URL"))) { bookmark = BookmarksManager::addBookmark(BookmarksModel::UrlBookmark, QUrl(), QString(), getCurrentFolder()); type = UrlEntry; } else if (line.startsWith(QLatin1String("#FOLDER"))) { bookmark = BookmarksManager::addBookmark(BookmarksModel::FolderBookmark, QUrl(), QString(), getCurrentFolder()); type = FolderStartEntry; } else if (line.startsWith(QLatin1String("#SEPERATOR"))) { bookmark = BookmarksManager::addBookmark(BookmarksModel::SeparatorBookmark, QUrl(), QString(), getCurrentFolder()); type = SeparatorEntry; } else if (line == QLatin1String("-")) { type = FolderEndEntry; } else if (line.startsWith(QLatin1String("\tURL=")) && bookmark) { const QUrl url(line.section(QLatin1Char('='), 1, -1)); if (!allowDuplicates() && BookmarksManager::hasBookmark(url)) { bookmark->remove(); bookmark = NULL; } else { bookmark->setData(url, BookmarksModel::UrlRole); } } else if (line.startsWith(QLatin1String("\tNAME=")) && bookmark) { bookmark->setData(line.section(QLatin1Char('='), 1, -1), BookmarksModel::TitleRole); } else if (line.startsWith(QLatin1String("\tDESCRIPTION=")) && bookmark) { bookmark->setData(line.section(QLatin1Char('='), 1, -1).replace(QLatin1String("\x02\x02"), QLatin1String("\n")), BookmarksModel::DescriptionRole); } else if (line.startsWith(QLatin1String("\tSHORT NAME=")) && bookmark) { const QString keyword(line.section(QLatin1Char('='), 1, -1)); if (!BookmarksManager::hasKeyword(keyword)) { bookmark->setData(keyword, BookmarksModel::KeywordRole); } } else if (line.startsWith(QLatin1String("\tCREATED=")) && bookmark) { bookmark->setData(QDateTime::fromTime_t(line.section(QLatin1Char('='), 1, -1).toUInt()), BookmarksModel::TimeAddedRole); } else if (line.startsWith(QLatin1String("\tVISITED=")) && bookmark) { bookmark->setData(QDateTime::fromTime_t(line.section(QLatin1Char('='), 1, -1).toUInt()), BookmarksModel::TimeVisitedRole); } else if (line.isEmpty()) { if (bookmark) { if (type == FolderStartEntry) { setCurrentFolder(bookmark); } bookmark = NULL; } else if (type == FolderEndEntry) { goToParent(); } type = NoEntry; } } file.close(); return true; }
bool OperaSearchEnginesImporter::import(const QString &path) { Settings settings(getSuggestedPath(path), this); if (m_optionsWidget->isChecked()) { SettingsManager::setValue(SettingsManager::Search_SearchEnginesOrderOption, QStringList()); } const QStringList groups(settings.getGroups()); QStringList identifiers; QStringList keywords(SearchEnginesManager::getSearchKeywords()); settings.beginGroup(QLatin1String("Options")); const QVariant defaultEngine(settings.getValue(QLatin1String("Default Search"))); const QList<QFileInfo> allSearchEngines(QDir(SessionsManager::getReadableDataPath(QLatin1String("searches"))).entryInfoList()); for (int i = 0; i < allSearchEngines.count(); ++i) { identifiers.append(allSearchEngines.at(i).baseName()); } for (int i = 0; i < groups.count(); ++i) { if (groups.at(i).startsWith(QLatin1String("Search Engine "))) { settings.beginGroup(groups.at(i)); } else { continue; } if (settings.getValue(QLatin1String("Deleted")).toInt()) { continue; } SearchEnginesManager::SearchEngineDefinition searchEngine; searchEngine.identifier = Utils::createIdentifier(settings.getValue(QLatin1String("UNIQUEID")).toString(), identifiers); searchEngine.title = settings.getValue(QLatin1String("Name")).toString(); searchEngine.keyword = Utils::createIdentifier(settings.getValue(QLatin1String("Key")).toString(), keywords); searchEngine.encoding = settings.getValue(QLatin1String("Encoding")).toString(); searchEngine.resultsUrl.url = settings.getValue(QLatin1String("URL")).toString().replace(QLatin1String("%s"), QLatin1String("{searchTerms}")); if (settings.getValue(QLatin1String("Is post")).toInt()) { searchEngine.resultsUrl.method = QLatin1String("post"); searchEngine.resultsUrl.enctype = QLatin1String("application/x-www-form-urlencoded"); searchEngine.resultsUrl.parameters = QUrlQuery(settings.getValue(QLatin1String("Query")).toString().replace(QLatin1String("%s"), QLatin1String("{searchTerms}"))); } else { searchEngine.resultsUrl.method = QLatin1String("get"); } if (settings.getValue(QLatin1String("Suggest Protocol")).toString() == QLatin1String("JSON")) { searchEngine.suggestionsUrl.url = settings.getValue(QLatin1String("Suggest URL")).toString(); searchEngine.suggestionsUrl.method = QLatin1String("get"); } SearchEnginesManager::addSearchEngine(searchEngine, (settings.getValue(QLatin1String("UNIQUEID")) == defaultEngine)); identifiers.append(searchEngine.identifier); keywords.append(searchEngine.keyword); } return true; }