BOOL CWizKMDatabaseServer::data_download(const QString& strObjectGUID, const QString& strObjectType, int pos, int size, QByteArray& stream, int& nAllSize, BOOL& bEOF) { CWizKMDataDownloadParam param(m_kbInfo.strToken, m_kbInfo.strKbGUID, strObjectGUID, strObjectType, pos, size); // WIZKMDATAPART part; if (!Call(_T("data.download"), part, ¶m)) { TOLOG(_T("data.download failure!")); return FALSE; } // __int64 nStreamSize = part.stream.size(); if (part.nPartSize != nStreamSize) { TOLOG2(_T("part size does not match: stream_size=%1, part_size=%2"), WizInt64ToStr(nStreamSize), WizInt64ToStr(part.nPartSize)); return FALSE; } // QString strStreamMD5 = WizMd5StringNoSpaceJava(part.stream); if (0 != strStreamMD5.compare(part.strPartMD5, Qt::CaseInsensitive)) { TOLOG2(_T("part md5 does not match, stream_md5=%1, part_md5=%2"), strStreamMD5, part.strPartMD5); return FALSE; } // nAllSize = (int)part.nObjectSize; bEOF = part.bEOF; // stream.append(part.stream); return TRUE; }
BOOL CWizKMDatabaseServer::document_postData2(const WIZDOCUMENTDATAEX& data, UINT nParts, __int64& nServerVersion) { QString strObjMd5; // if (!data.arrayData.isEmpty() && (nParts & WIZKM_XMKRPC_DOCUMENT_PART_DATA)) { strObjMd5 = WizMd5StringNoSpaceJava(data.arrayData); if (!data_upload(data.strGUID, _T("document"), data.arrayData, strObjMd5, data.strTitle)) { TOLOG1(_T("Failed to upload note data: %1"), data.strTitle); return FALSE; } } // CWizKMDocumentPostDataParam param(WIZKM_WEBAPI_VERSION, m_kbInfo.strToken, m_kbInfo.strKbGUID, data.strGUID, nParts, data, data.arrayTagGUID, data.arrayParam, strObjMd5); // CWizXmlRpcResult ret; if (!Call(_T("document.postData"), ret, ¶m)) { TOLOG(_T("document.postData failure!")); return FALSE; } // if (CWizXmlRpcStructValue* pRet = ret.GetResultValue<CWizXmlRpcStructValue>()) { pRet->GetInt64(_T("version"), nServerVersion); } // return TRUE; }
bool CWizApiBase::callAttachmentPostData(const WIZDOCUMENTATTACHMENTDATAEX& data) { m_currentAttachment = data; int nParts = data.nObjectPart; Q_ASSERT(0 != nParts); QString info = data.strName; Q_EMIT processLog(tr("upload attachment info: ") + info); CWizApiTokenParam param(*this); CWizXmlRpcStructValue* pAttachmentStruct = new CWizXmlRpcStructValue(); param.AddStruct(_T("attachment"), pAttachmentStruct); bool bInfo = (nParts & WIZKM_XMKRPC_ATTACHMENT_PART_INFO) ? true : false; bool bData = (nParts & WIZKM_XMKRPC_ATTACHMENT_PART_DATA) ? true : false; pAttachmentStruct->AddString(_T("attachment_guid"), data.strGUID); pAttachmentStruct->AddBool(_T("attachment_info"), bInfo ? true : false); pAttachmentStruct->AddBool(_T("attachment_data"), bData ? true : false); bool bDataInfoAdded = false; const WIZDOCUMENTATTACHMENTDATAEX& infodata = data; if (bInfo) { pAttachmentStruct->AddString(_T("attachment_document_guid"), infodata.strDocumentGUID); pAttachmentStruct->AddString(_T("attachment_name"), infodata.strName); pAttachmentStruct->AddString(_T("attachment_url"), infodata.strURL); pAttachmentStruct->AddString(_T("attachment_description"), infodata.strDescription); pAttachmentStruct->AddTime(_T("dt_info_modified"), infodata.tInfoModified); pAttachmentStruct->AddString(_T("info_md5"), infodata.strInfoMD5); pAttachmentStruct->AddTime(_T("dt_data_modified"), infodata.tDataModified); pAttachmentStruct->AddString(_T("data_md5"), infodata.strDataMD5); bDataInfoAdded = true; } if (bData) { if (!bDataInfoAdded) { pAttachmentStruct->AddTime(_T("dt_data_modified"), infodata.tDataModified); pAttachmentStruct->AddString(_T("data_md5"), infodata.strDataMD5); bDataInfoAdded = true; } pAttachmentStruct->AddString(_T("attachment_zip_md5"), WizMd5StringNoSpaceJava(infodata.arrayData)); } return callXmlRpc(SyncMethod_PostAttachmentData, ¶m); }
bool processKeyAESCbc(const unsigned char* lpszKey, int nKeyLen, std::string& strKey) { if (!lpszKey || nKeyLen <= 0) return false; strKey = WizMd5StringNoSpaceJava(lpszKey, nKeyLen).toStdString(); if (strKey.length() != 32) { return false; } return true; }
bool CWizApiBase::callDocumentPostData(const WIZDOCUMENTDATAEX& data) { m_currentDocument = data; int nParts = m_currentDocument.nObjectPart; Q_ASSERT(0 != nParts); bool bInfo = (nParts & WIZKM_XMKRPC_DOCUMENT_PART_INFO) ? true : false; bool bParam = (nParts & WIZKM_XMKRPC_DOCUMENT_PART_PARAM) ? true : false; bool bData = (nParts & WIZKM_XMKRPC_DOCUMENT_PART_DATA) ? true : false; QString info = data.strTitle; Q_EMIT processLog(tr("upload document info:") + info); CWizApiTokenParam param(*this); CWizXmlRpcStructValue* pDocumentStruct = new CWizXmlRpcStructValue(); param.AddStruct(_T("document"), pDocumentStruct); pDocumentStruct->AddString(_T("document_guid"), data.strGUID); pDocumentStruct->AddBool(_T("document_info"), bInfo ? true : false); pDocumentStruct->AddBool(_T("document_data"), bData ? true : false); pDocumentStruct->AddBool(_T("document_param"), bParam ? true : false); bool bParamInfoAdded = false; bool bDataInfoAdded = false; const WIZDOCUMENTDATAEX& infodata = data; //m_currentDocument; if (bInfo) { pDocumentStruct->AddString(_T("document_title"), infodata.strTitle); pDocumentStruct->AddString(_T("document_category"), infodata.strLocation); pDocumentStruct->AddString(_T("document_filename"), infodata.strName); pDocumentStruct->AddString(_T("document_seo"), infodata.strSEO); pDocumentStruct->AddString(_T("document_url"), infodata.strURL); pDocumentStruct->AddString(_T("document_author"), infodata.strAuthor); pDocumentStruct->AddString(_T("document_keywords"), infodata.strKeywords); pDocumentStruct->AddString(_T("document_type"), infodata.strType); pDocumentStruct->AddString(_T("document_owner"), infodata.strOwner); pDocumentStruct->AddString(_T("document_filetype"), infodata.strFileType); pDocumentStruct->AddString(_T("document_styleguid"), infodata.strStyleGUID); pDocumentStruct->AddTime(_T("dt_created"), infodata.tCreated); pDocumentStruct->AddTime(_T("dt_modified"), infodata.tModified); pDocumentStruct->AddTime(_T("dt_accessed"), infodata.tAccessed); pDocumentStruct->AddInt(_T("document_iconindex"), infodata.nIconIndex); pDocumentStruct->AddInt(_T("document_protected"), infodata.nProtected); pDocumentStruct->AddInt(_T("document_readcount"), infodata.nReadCount); pDocumentStruct->AddInt(_T("document_attachment_count"), infodata.nAttachmentCount); pDocumentStruct->AddTime(_T("dt_info_modified"), infodata.tInfoModified); pDocumentStruct->AddString(_T("info_md5"), infodata.strInfoMD5); pDocumentStruct->AddTime(_T("dt_data_modified"), infodata.tDataModified); pDocumentStruct->AddString(_T("data_md5"), infodata.strDataMD5); pDocumentStruct->AddTime(_T("dt_param_modified"), infodata.tParamModified); pDocumentStruct->AddString(_T("param_md5"), infodata.strParamMD5); pDocumentStruct->AddString(_T("system_tags"), infodata.strSystemTags); pDocumentStruct->AddInt(_T("document_share"), infodata.nShareFlags); //m_db->GetDocumentTags(infodata.strGUID, infodata.arrayTagGUID); pDocumentStruct->AddStringArray(_T("document_tags"), infodata.arrayTagGUID); bParamInfoAdded = true; bDataInfoAdded = true; } if (bParam) { //m_db->GetDocumentParams(infodata.strGUID, infodata.arrayParam); if (!bParamInfoAdded) { pDocumentStruct->AddTime(_T("dt_param_modified"), infodata.tParamModified); pDocumentStruct->AddString(_T("param_md5"), infodata.strParamMD5); bParamInfoAdded = true; } pDocumentStruct->AddArray(_T("document_params"), infodata.arrayParam); } if (bData) { //if (!m_db->LoadDocumentData(m_currentDocument.strGUID, m_currentDocument.arrayData)) //{ // //skip this document // QString info2 = data.strTitle; // Q_EMIT processErrorLog(tr("Can not load document data: ") + info2); // onUploadObjectDataCompleted(data); // return false; //} if (!bDataInfoAdded) { pDocumentStruct->AddTime(_T("dt_data_modified"), infodata.tDataModified); pDocumentStruct->AddString(_T("data_md5"), infodata.strDataMD5); bDataInfoAdded = true; } pDocumentStruct->AddString(_T("document_zip_md5"), WizMd5StringNoSpaceJava(infodata.arrayData)); } return callXmlRpc(SyncMethod_PostDocumentData, ¶m); }