bool WebUploader::getArenaCurrentAndGames(QNetworkReply *reply, QList<GameResult> &list, bool getCards) { //Ejemplo html //<div class='col-md-5' id='nameDate'> //<h1><img src='images/32icon-dru.gif' /> Druid Arena</h1> QString html(reply->readAll()); if(html.contains(QRegularExpression( "<div.*id='nameDate'>\n<h1>.*" "(Druid|Hunter|Mage|Paladin|Priest|Rogue|Shaman|Warlock|Warrior)" " Arena</h1>" ), match)) { arenaCurrentHero = Utility::heroToLogNumber(match->captured(1)); //Ejemplo html //<div id='gameListArea'><ul class='list-group'> //<a name='gameList'></a><li class='list-group-item match-list'><span class='glyphicon glyphicon-remove fail matchStatus pull-left'></span> <span class='helpText matchSupLabel'>Game 2:</span><a href='#' onClick="showGame(2771882)" data-toggle='modal' data-target='#showGame'><span class='matchLabel'>vs Mage</span> </a><span class='helpText'>(<span class='glyphicon glyphicon-plus'></span> Extra card)</span><div class='pull-right'><a onClick="showGame(2771882)" data-toggle='modal' data-target='#showGame' class='btn btn-xs btn-info'><span class='glyphicon glyphicon-paperclip'></span> Game notes</a> <a onClick="deleteGame(2771882)" href='#' class='btn btn-xs btn-danger'><span class='glyphicon glyphicon-trash'></span></a></div></li> // <li class='list-group-item match-list'><span class='glyphicon glyphicon-ok success matchStatus pull-left'></span> <span class='helpText matchSupLabel'>Game 1:</span><a href='#' onClick="showGame(2771880)" data-toggle='modal' data-target='#showGame'><span class='matchLabel'>vs Rogue</span> </a><span class='helpText'>(<span class='glyphicon glyphicon-play-circle'></span> Played first)</span><div class='pull-right'><a onClick="showGame(2771880)" data-toggle='modal' data-target='#showGame' class='btn btn-xs btn-info'><span class='glyphicon glyphicon-paperclip'></span> Game notes</a> <a onClick="deleteGame(2771880)" href='#' class='btn btn-xs btn-danger'><span class='glyphicon glyphicon-trash'></span></a></div></li> //</ul> //</div></div> QRegularExpression re( "<li.*>.*(fail|success).*Game (\\d+).*" "vs (Druid|Hunter|Mage|Paladin|Priest|Rogue|Shaman|Warlock|Warrior).*" "(Extra card|Played first).*</li>"); QRegularExpressionMatchIterator reIterator = re.globalMatch(html); while (reIterator.hasNext()) { QRegularExpressionMatch match = reIterator.next(); list.prepend(createGameResult(match, arenaCurrentHero)); } qDebug() << "WebUploader: " << "Leida arena en progreso: " << QString(match->captured(1)) << " con " << QString::number(list.count()) << " juegos"; if(getCards) { GetArenaCards(html); } return true; } else { return false; } }
int main() { /* GameResultDirection direction = createGameResultDirection(); setUserID_GameResultDirection(&direction, 16); ReciprocateData* command = commandCreate_GameResult(&direction); std::cout << *static_cast<const int*>(getKeyValue(*command, key_GameResult_userID)) << std::endl; */ GameResult result = createGameResult(); for (int i = 0; i < 2; ++i) { result.adversaryID[i] = i; } result.matchupNumber = "matchupNumber"; result.time = 1000; result.teamID = 1500; result.oppositionTeamID = 1501; result.victory = "win!"; result.firstHalfGoal = 2; result.secondHalfGoal = 5; result.firstHalfLoss = 1; result.secondHalfLoss = 4; result.homeAndAway = "home"; result.isDefault = false; ReciprocateData* data = storage_GameResult(result, key_GameResult); // std::vector<int> node; // node.push_back(2); // std::cout << *static_cast<const int*>(getKeyValue(*data, key_GameResult_adversaryID, node)) << std::endl; GameResult converted = convertToGameResult(data); std::cout << converted.adversaryID[0] << std::endl; std::cout << converted.adversaryID[1] << std::endl; std::cout << converted.time << std::endl; std::cout << converted.teamID << std::endl; std::cout << converted.oppositionTeamID << std::endl; std::cout << converted.victory << std::endl; std::cout << converted.firstHalfGoal << std::endl; return 0; }