void AnimatedSpritesheet::parse_json(string json_file) { //Create the JSON object JSONDoc json_doc(json_file); //Get animations Json::Value animations = json_doc.get("animations"); for(unsigned int i=0;i<animations.size();i++) { int start = animations[i]["start"].asInt(); int stop = animations[i]["stop"].asInt(); animations_[animations[i]["name"].asString()] = std::make_pair(start, stop); } ms_per_sprite_ = json_doc.get("ms_per_sprite").asInt(); }
void ThreadNet::udpSendMessage(const QJsonObject &jsonObj) { QByteArray data; QDataStream out(&data, QIODevice::WriteOnly); QJsonObject json_obj = jsonObj; json_obj.insert("index", QJsonValue(GlobalData::getRandomString(8))); json_obj.insert("msgType", Message); QJsonDocument json_doc(json_obj); out << json_doc.toJson(); qint64 ret = udp_socket->writeDatagram(data , data.length() , QHostAddress::Broadcast , udp_port); if(ret != 0 && ret != -1) { qDebug()<<"@ThreadNet::udpSendMessage(): sent!"; } }
void PHD2::sendJSONRPCRequest(const QString & method, const QJsonArray args) { QJsonObject jsonRPC; jsonRPC.insert("jsonrpc", "2.0"); jsonRPC.insert("method", method); if (args.empty() == false) jsonRPC.insert("params", args); jsonRPC.insert("id", methodID++); QJsonDocument json_doc(jsonRPC); emit newLog(json_doc.toJson(QJsonDocument::Compact)); tcpSocket->write(json_doc.toJson(QJsonDocument::Compact)); tcpSocket->write("\r\n"); }
void OnlineAstrometryParser::authenticate() { QNetworkRequest request; //request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); QUrl url(Options::astrometryAPIURL()); url.setPath("/api/login"); request.setUrl(url); QVariantMap apiReq; apiReq.insert("apikey", Options::astrometryAPIKey()); //QByteArray json = serializer.serialize(apiReq, &ok); QJsonObject json = QJsonObject::fromVariantMap(apiReq); QJsonDocument json_doc(json); QString json_request = QString("request-json=%1").arg(QString(json_doc.toJson(QJsonDocument::Compact))); workflowStage = AUTH_STAGE; networkManager->post(request, json_request.toUtf8()); }
///UDP Action void ThreadNet::udpSendHeartBeat() { QByteArray data; QDataStream out(&data, QIODevice::WriteOnly); QJsonObject json_obj; json_obj.insert("ip", GlobalData::g_localHostIP); json_obj.insert("key", GlobalData::settings_struct.profile_key_str); json_obj.insert("name", GlobalData::settings_struct.profile_name_str); json_obj.insert("avatar", GlobalData::settings_struct.profile_avatar_str); json_obj.insert("msgType", HeartBeat); QJsonDocument json_doc(json_obj); out << json_doc.toJson(); qint64 ret = udp_socket->writeDatagram(data , data.length() , QHostAddress::Broadcast , udp_port); if(ret != 0 && ret != -1) { qDebug()<<"@sendUsrEnter(): sent!"; } return; }
void OnlineAstrometryParser::uploadFile() { QNetworkRequest request; QFile *fitsFile = new QFile(filename); bool rc = fitsFile->open(QIODevice::ReadOnly); if (rc == false) { align->appendLogText(i18n("Failed to open file %1. %2", filename, fitsFile->errorString())); delete (fitsFile); emit solverFailed(); return; } QUrl url(Options::astrometryAPIURL()); url.setPath("/api/upload"); request.setUrl(url); QHttpMultiPart *reqEntity = new QHttpMultiPart(QHttpMultiPart::FormDataType); QVariantMap uploadReq; uploadReq.insert("publicly_visible", "n"); uploadReq.insert("allow_modifications", "n"); uploadReq.insert("session", sessionKey); uploadReq.insert("allow_commercial_use", "n"); uploadReq.insert("scale_units", "arcminwidth"); uploadReq.insert("scale_type", "ul"); uploadReq.insert("scale_lower", lowerScale); uploadReq.insert("scale_upper", upperScale); uploadReq.insert("center_ra", center_ra); uploadReq.insert("center_dec", center_dec); uploadReq.insert("radius", radius); if (downsample_factor != 0) uploadReq.insert("downsample_factor", downsample_factor); if (parity != -1) uploadReq.insert("parity", parity); QJsonObject json = QJsonObject::fromVariantMap(uploadReq); QJsonDocument json_doc(json); QHttpPart jsonPart; jsonPart.setHeader(QNetworkRequest::ContentTypeHeader, "application/text/plain"); jsonPart.setHeader(QNetworkRequest::ContentDispositionHeader, "form-data; name=\"request-json\""); jsonPart.setBody(json_doc.toJson(QJsonDocument::Compact)); QHttpPart filePart; filePart.setHeader(QNetworkRequest::ContentTypeHeader,"application/octet-stream"); filePart.setHeader(QNetworkRequest::ContentDispositionHeader, QString("form-data; name=\"file\"; filename=\"%1\"").arg(filename)); filePart.setBodyDevice(fitsFile); // Re-parent so that it get deleted later fitsFile->setParent(reqEntity); reqEntity->append(jsonPart); reqEntity->append(filePart); workflowStage = UPLOAD_STAGE; align->appendLogText(i18n("Uploading file...")); QNetworkReply *reply = networkManager->post(request, reqEntity); // The entity should be deleted when reply is finished reqEntity->setParent(reply); }