コード例 #1
0
ファイル: oracleimporter.cpp プロジェクト: Quiesco/cockatrice
void OracleImporter::readSetsFromXml(QXmlStreamReader &xml)
{
    allSets.clear();

    QString edition;
    QString editionLong;
    QString editionURL;
    while (!xml.atEnd()) {
        if (xml.readNext() == QXmlStreamReader::EndElement)
            break;
        if (xml.name() == "set") {
            QString shortName, longName;
            bool import = xml.attributes().value("import").toString().toInt();
            while (!xml.atEnd()) {
                if (xml.readNext() == QXmlStreamReader::EndElement)
                    break;
                if (xml.name() == "name")
                    edition = xml.readElementText();
                else if (xml.name() == "longname")
                    editionLong = xml.readElementText();
                else if (xml.name() == "url")
                    editionURL = xml.readElementText();
            }
            allSets << SetToDownload(edition, editionLong, editionURL, import);
            edition = editionLong = editionURL = QString();
        } else if (xml.name() == "picture_url")
            pictureUrl = xml.readElementText();
        else if (xml.name() == "picture_url_hq")
            pictureUrlHq = xml.readElementText();
        else if (xml.name() == "picture_url_stripped")
            pictureUrlStripped = xml.readElementText();
        else if (xml.name() == "set_url")
            setUrl = xml.readElementText();
    }
}
コード例 #2
0
bool OracleImporter::readSetsFromByteArray(const QByteArray &data)
{
    QList<SetToDownload> newSetList;
    
    bool ok;
    setsMap = QtJson::Json::parse(QString(data), ok).toMap();
    if (!ok) {
        qDebug() << "error: QtJson::Json::parse()";
        return 0;
    }
    
    QListIterator<QVariant> it(setsMap.values());
    QVariantMap map;

    QString edition;
    QString editionLong;
    QVariant editionCards;
    QString setType;
    QDate releaseDate;
    bool import;

    while (it.hasNext()) {
        map = it.next().toMap();
        edition = map.value("code").toString();
        editionLong = map.value("name").toString();
        editionCards = map.value("cards");
        setType = map.value("type").toString();
        // capitalize set type
        if(setType.length() > 0)
            setType[0] = setType[0].toUpper();
        releaseDate = map.value("releaseDate").toDate();

        // core and expansion sets are marked to be imported by default
        import = (0 == QString::compare(setType, QString("core"), Qt::CaseInsensitive) ||
            0 == QString::compare(setType, QString("expansion"), Qt::CaseInsensitive));

        newSetList.append(SetToDownload(edition, editionLong, editionCards, import, setType, releaseDate));
    }

    qSort(newSetList);

    if (newSetList.isEmpty())
        return false;
    allSets = newSetList;
    return true;
}
コード例 #3
0
bool OracleImporter::readSetsFromXml(QXmlStreamReader &xml)
{
	QList<SetToDownload> newSetList;
	
	QString edition;
	QString editionLong;
	QString editionURL;
	while (!xml.atEnd()) {
		if (xml.readNext() == QXmlStreamReader::EndElement)
			break;
		if (xml.name() == "set") {
			bool import = xml.attributes().value("import").toString().toInt();
			while (!xml.atEnd()) {
				if (xml.readNext() == QXmlStreamReader::EndElement)
					break;
				if (xml.name() == "name")
					edition = xml.readElementText();
				else if (xml.name() == "longname")
					editionLong = xml.readElementText();
				else if (xml.name() == "url")
					editionURL = xml.readElementText();
			}
			newSetList.append(SetToDownload(edition, editionLong, editionURL, import));
			edition = editionLong = editionURL = QString();
		} else if (xml.name() == "picture_url")
			pictureUrl = xml.readElementText();
		else if (xml.name() == "picture_url_hq")
			pictureUrlHq = xml.readElementText();
		else if (xml.name() == "picture_url_st")
			pictureUrlSt = xml.readElementText();
		else if (xml.name() == "set_url")
			setUrl = xml.readElementText();
	}
	if (newSetList.isEmpty())
		return false;
	allSets = newSetList;
	return true;
}