picURL added to oracleimporter and carddatabase

This commit is contained in:
marcus 2009-08-10 23:47:27 +02:00
parent e79b19413a
commit aaa56acfd1
4 changed files with 38 additions and 4 deletions

View file

@ -54,8 +54,8 @@ void SetList::sortByKey()
qSort(begin(), end(), CompareFunctor());
}
CardInfo::CardInfo(CardDatabase *_db, const QString &_name, const QString &_manacost, const QString &_cardtype, const QString &_powtough, const QString &_text, const QStringList &_colors, int _tableRow, const SetList &_sets)
: db(_db), name(_name), sets(_sets), manacost(_manacost), cardtype(_cardtype), powtough(_powtough), text(_text), colors(_colors), tableRow(_tableRow), pixmap(NULL)
CardInfo::CardInfo(CardDatabase *_db, const QString &_name, const QString &_manacost, const QString &_cardtype, const QString &_powtough, const QString &_text, const QStringList &_colors, int _tableRow, const SetList &_sets, const QString &_picURL)
: db(_db), name(_name), sets(_sets), manacost(_manacost), cardtype(_cardtype), powtough(_powtough), text(_text), colors(_colors), tableRow(_tableRow), pixmap(NULL), picURL(_picURL)
{
for (int i = 0; i < sets.size(); i++)
sets[i]->append(this);
@ -194,6 +194,7 @@ QXmlStreamWriter &operator<<(QXmlStreamWriter &xml, const CardInfo *info)
xml.writeTextElement("pt", info->getPowTough());
xml.writeTextElement("tablerow", QString::number(info->getTableRow()));
xml.writeTextElement("text", info->getText());
xml.writeTextElement("picURL", info->getPicURL());
xml.writeEndElement(); // card
return xml;

View file

@ -42,6 +42,7 @@ private:
QString powtough;
QString text;
QStringList colors;
QString picURL;
int tableRow;
QPixmap *pixmap;
QMap<int, QPixmap *> scaledPixmapCache;
@ -54,7 +55,8 @@ public:
const QString &_text = QString(),
const QStringList &_colors = QStringList(),
int _tableRow = 0,
const SetList &_sets = SetList());
const SetList &_sets = SetList(),
const QString &_picURL = QString());
~CardInfo();
QString getName() const { return name; }
SetList getSets() const { return sets; }
@ -63,9 +65,11 @@ public:
QString getPowTough() const { return powtough; }
QString getText() const { return text; }
QStringList getColors() const { return colors; }
QString getPicURL() const { return picURL; }
QString getMainCardType() const;
int getTableRow() const { return tableRow; }
void setTableRow(int _tableRow) { tableRow = _tableRow; }
void setPicURL(QString _picURL) { picURL = _picURL; }
void addToSet(CardSet *set);
QPixmap *loadPixmap();
QPixmap *getPixmap(QSize size);

View file

@ -73,6 +73,7 @@ OracleImporter::OracleImporter()
setsToDownload << SetToDownload("PR", "Promo cards", "pr.txt");
setsToDownload << SetToDownload("UG", "Unglued", "http://www.crystalkeep.com/magic/rules/oracle/oracle-ug.txt");
setsToDownload << SetToDownload("UNH", "Unhinged", "http://www.crystalkeep.com/magic/rules/oracle/oracle-uh.txt");
setsToDownload << SetToDownload("M10", "Magic 2010", "http://www.crystalkeep.com/magic/rules/oracle/oracle-m10.txt");
colorOverride.insert("Ancestral Vision", QStringList("U"));
colorOverride.insert("Crimson Kobolds", QStringList("R"));
@ -203,6 +204,10 @@ void OracleImporter::importOracleFile(CardSet *set)
QString cardname = in.readLine();
if (cardname.isEmpty())
continue;
if (cardname.contains("XX")){
cardname.remove("XX");
}
QString manacost = in.readLine();
QString cardtype, powtough;
QStringList text;
@ -238,7 +243,7 @@ void OracleImporter::importOracleFile(CardSet *set)
colors = colorOverride.value(cardname);
card = new CardInfo(this, cardname, manacost, cardtype, powtough, text.join("\n"), colors);
card->setPicURL(getURLFromName(normalizeName(cardname)));
int tableRow = 1;
QString mainCardType = card->getMainCardType();
if (tableRowOverride.contains(cardname))
@ -259,6 +264,28 @@ void OracleImporter::importOracleFile(CardSet *set)
qDebug(QString("%1: %2 cards imported").arg(set->getLongName()).arg(cards).toLatin1());
}
QString OracleImporter::normalizeName(QString cardname)
{
QString normalized = cardname;
normalized.remove("'",Qt::CaseInsensitive);
normalized.remove("//",Qt::CaseInsensitive);
normalized.remove(",",Qt::CaseInsensitive);
normalized.remove(":",Qt::CaseInsensitive);
normalized.remove(".",Qt::CaseInsensitive);
normalized.remove(QRegExp("\\(.*\\)"));
normalized = normalized.trimmed();
normalized = normalized.simplified();
normalized = normalized.replace(" ", "_");
normalized = normalized.replace("-", "_");
return normalized;
}
QString OracleImporter::getURLFromName(QString normalizedName)
{
return "http://www.wizards.com/global/images/magic/general/"+normalizedName+".jpg";
}
void OracleImporter::downloadNextFile()
{
if (setIndex == -1) {

View file

@ -29,6 +29,8 @@ private:
QBuffer *buffer;
QHttp *http;
QProgressDialog *progressDialog;
QString normalizeName(QString);
QString getURLFromName(QString);
private slots:
void httpRequestFinished(int requestId, bool error);
void readResponseHeader(const QHttpResponseHeader &responseHeader);