void RSSEditPopup::parseAndSave(void) { if (m_editing) { QString title = m_titleEdit->GetText(); QString desc = m_descEdit->GetText(); QString author = m_authorEdit->GetText(); QString link = m_urlEdit->GetText(); QString filename = m_thumbImage->GetFilename(); bool download; if (m_download->GetCheckState() == MythUIStateType::Full) download = true; else download = false; removeFromDB(m_urlText, VIDEO_PODCAST); if (insertInDB(new RSSSite(title, filename, VIDEO_PODCAST, desc, link, author, download, QDateTime::currentDateTime()))) emit saving(); Close(); } else { m_manager = new QNetworkAccessManager(); QUrl qurl(m_urlEdit->GetText()); m_reply = m_manager->get(QNetworkRequest(qurl)); connect(m_manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(slotCheckRedirect(QNetworkReply*))); } }
void MythNewsConfig::toggleItem(MythUIButtonListItem *item) { QMutexLocker locker(&m_lock); if (!item ) return; NewsSiteItem *site = qVariantValue<NewsSiteItem*>(item->GetData()); if (!site) return; bool checked = (item->state() == MythUIButtonListItem::FullChecked); if (!checked) { if (insertInDB(site)) { site->inDB = true; item->setChecked(MythUIButtonListItem::FullChecked); } } else { if (removeFromDB(site)) { site->inDB = false; item->setChecked(MythUIButtonListItem::NotChecked); } } }
bool insertInDB(RSSSite* site) { if (!site) return false; return insertInDB(site->GetTitle(), site->GetImage(), site->GetDescription(), site->GetURL(), site->GetAuthor(), site->GetDownload(), site->GetUpdated(), site->GetType()); }
void MythNewsEditor::Save(void) { { QMutexLocker locker(&m_lock); if (m_editing && !m_siteName.isEmpty()) removeFromDB(m_siteName); insertInDB(m_nameEdit->GetText(), m_urlEdit->GetText(), m_iconEdit->GetText(), "custom", (m_podcastCheck->GetCheckState() == MythUIStateType::Full)); } Close(); }
void RSSEditPopup::slotSave(QNetworkReply* reply) { QDomDocument document; document.setContent(reply->read(reply->bytesAvailable()), true); QString text = document.toString(); QString title = m_titleEdit->GetText(); QString description = m_descEdit->GetText(); QString author = m_authorEdit->GetText(); QString file = m_thumbImage->GetFilename(); bool download; if (m_download->GetCheckState() == MythUIStateType::Full) download = true; else download = false; VERBOSE(VB_GENERAL|VB_EXTRA, QString("Text to Parse: %1").arg(text)); QDomElement root = document.documentElement(); QDomElement channel = root.firstChildElement ("channel"); if (!channel.isNull ()) { Parse parser; if (title.isEmpty()) title = channel.firstChildElement("title").text().trimmed(); if (description.isEmpty()) description = channel.firstChildElement("description").text(); if (author.isEmpty()) author = parser.GetAuthor(channel); if (author.isEmpty()) author = channel.firstChildElement("managingEditor").text(); if (author.isEmpty()) author = channel.firstChildElement("webMaster").text(); QString thumbnailURL = channel.firstChildElement("image").attribute("url"); if (thumbnailURL.isEmpty()) { QDomElement thumbElem = channel.firstChildElement("image"); if (!thumbElem.isNull()) thumbnailURL = thumbElem.firstChildElement("url").text(); } if (thumbnailURL.isEmpty()) { QDomNodeList nodes = channel.elementsByTagNameNS( "http://www.itunes.com/dtds/podcast-1.0.dtd", "image"); if (nodes.size()) { thumbnailURL = nodes.at(0).toElement().attributeNode("href").value(); if (thumbnailURL.isEmpty()) thumbnailURL = nodes.at(0).toElement().text(); } } bool download; if (m_download->GetCheckState() == MythUIStateType::Full) download = true; else download = false; QDateTime updated = QDateTime::currentDateTime(); QString filename(""); if (file.isEmpty()) filename = file; QString link = m_urlEdit->GetText(); if (!thumbnailURL.isEmpty() && filename.isEmpty()) { QString fileprefix = GetConfDir(); QDir dir(fileprefix); if (!dir.exists()) dir.mkdir(fileprefix); fileprefix += "/MythNetvision"; dir = QDir(fileprefix); if (!dir.exists()) dir.mkdir(fileprefix); fileprefix += "/sitecovers"; dir = QDir(fileprefix); if (!dir.exists()) dir.mkdir(fileprefix); QFileInfo fi(thumbnailURL); QString rawFilename = fi.fileName(); filename = QString("%1/%2").arg(fileprefix).arg(rawFilename); bool exists = QFile::exists(filename); if (!exists) HttpComms::getHttpFile(filename, thumbnailURL, 20000, 1, 2); } if (insertInDB(new RSSSite(title, filename, VIDEO_PODCAST, description, link, author, download, QDateTime::currentDateTime()))) emit saving(); } Close(); }
void RSSEditPopup::SlotSave(QNetworkReply* reply) { QDomDocument document; document.setContent(reply->read(reply->bytesAvailable()), true); QString text = document.toString(); QString title = m_titleEdit->GetText(); QString description = m_descEdit->GetText(); QString author = m_authorEdit->GetText(); QString file = m_thumbImage->GetFilename(); LOG(VB_GENERAL, LOG_DEBUG, QString("Text to Parse: %1").arg(text)); QDomElement root = document.documentElement(); QDomElement channel = root.firstChildElement ("channel"); if (!channel.isNull()) { Parse parser; if (title.isEmpty()) title = channel.firstChildElement("title").text().trimmed(); if (description.isEmpty()) description = channel.firstChildElement("description").text(); if (author.isEmpty()) author = parser.GetAuthor(channel); if (author.isEmpty()) author = channel.firstChildElement("managingEditor").text(); if (author.isEmpty()) author = channel.firstChildElement("webMaster").text(); QString thumbnailURL = channel.firstChildElement("image").attribute("url"); if (thumbnailURL.isEmpty()) { QDomElement thumbElem = channel.firstChildElement("image"); if (!thumbElem.isNull()) thumbnailURL = thumbElem.firstChildElement("url").text(); } if (thumbnailURL.isEmpty()) { QDomNodeList nodes = channel.elementsByTagNameNS( "http://www.itunes.com/dtds/podcast-1.0.dtd", "image"); if (nodes.size()) { thumbnailURL = nodes.at(0).toElement().attributeNode("href").value(); if (thumbnailURL.isEmpty()) thumbnailURL = nodes.at(0).toElement().text(); } } bool download; if (m_download->GetCheckState() == MythUIStateType::Full) download = true; else download = false; QDateTime updated = MythDate::current(); QString filename(""); if (!file.isEmpty()) filename = file; else if (!thumbnailURL.isEmpty()) filename = thumbnailURL; QString link = m_urlEdit->GetText(); RSSSite site(title, filename, VIDEO_PODCAST, description, link, author, download, MythDate::current()); if (insertInDB(&site)) emit Saving(); } Close(); }