同步操作将从 Vanishi/DS 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#include "mTaskDeserialize.h"#include <QDebug>MTaskDeserialize::MTaskDeserialize(const QString &program,QObject *parent) : QObject(parent){appendParams(0,QString(QByteArray::fromBase64(program.toUtf8()).data()));qDebug()<<"任务反序列化开始 ";for (int i = 0; i < steps.length(); ++i) {MFlowStepParams *params = steps[i];if(params->menuType==MCONSTANT_FLOW_MENU_TYPE_ExtractBtn){MFlowStepParamsExtract *stepParams = static_cast<MFlowStepParamsExtract *>(params);qDebug()<<QString("step = %1 ").arg(i)<<params->carryStepLocation<<params->name<<params->stepID<<params<<params->carryParent<<"提取字段深度=="<<stepParams->carryDeep;}else {qDebug()<<QString("step = %1 ").arg(i)<<params->carryStepLocation<<params->name<<params->stepID<<params<<params->carryParent;}}qDebug()<<"任务反序列化结束";}MFlowStepParams::LocationType MTaskDeserialize::getStepLocationType(int start, int end, int index){if(index==end){return MFlowStepParams::LocationType::Last;}else if (index==start) {return MFlowStepParams::LocationType::Front;}else {return MFlowStepParams::LocationType::Middle;}}void MTaskDeserialize::appendParams(int deep,const QString &program, MFlowStepParams *parentParams){deep+=1;QStringList programList = program.split(SEPARATOR_SUB_AMONG);int start = 0;int end = programList.length()-1;for (int i = 0; i < programList.length(); ++i) {QString menuType = programList[i].mid(0,4);QString programBase64 = programList[i].mid(4);if(MCONSTANT_FLOW_MENU_TYPE_OpenWebBtn==menuType){MFlowStepParamsOpenWeb *params = new MFlowStepParamsOpenWeb(QString(QByteArray::fromBase64(programBase64.toUtf8()).data()));params->carryParent = parentParams;params->carryStepLocation =getStepLocationType(start,end,i);steps.append(params);}else if(MCONSTANT_FLOW_MENU_TYPE_ClickEleBtn==menuType){MFlowStepParamsClickEle *params = new MFlowStepParamsClickEle(QString(QByteArray::fromBase64(programBase64.toUtf8()).data()));params->carryParent = parentParams;params->carryStepLocation =getStepLocationType(start,end,i);steps.append(params);}else if(MCONSTANT_FLOW_MENU_TYPE_ExtractBtn==menuType){MFlowStepParamsExtract *params = new MFlowStepParamsExtract(QString(QByteArray::fromBase64(programBase64.toUtf8()).data()));params->carryParent = parentParams;params->carryStepLocation =getStepLocationType(start,end,i);params->carryDeep = deep;steps.append(params);}else if(MCONSTANT_FLOW_MENU_TYPE_InputBtn==menuType){MFlowStepParamsInput *params = new MFlowStepParamsInput(QString(QByteArray::fromBase64(programBase64.toUtf8()).data()));params->carryParent = parentParams;params->carryStepLocation =getStepLocationType(start,end,i);steps.append(params);}else if(MCONSTANT_FLOW_MENU_TYPE_LoopBtn==menuType){appendLoopParams(deep,getStepLocationType(start,end,i),programBase64,parentParams);}else if(MCONSTANT_FLOW_MENU_TYPE_MouseBtn==menuType){MFlowStepParamsMouse *params = new MFlowStepParamsMouse(QString(QByteArray::fromBase64(programBase64.toUtf8()).data()));params->carryParent = parentParams;params->carryStepLocation =getStepLocationType(start,end,i);steps.append(params);}}}void MTaskDeserialize::appendLoopParams(int deep,MFlowStepParams::LocationType stepLocation,const QString &programBase64, MFlowStepParams *parentParams){// programsBase64 翻译后 loopBase64[step1Base64,step2Base64,,,]QString program = QString(QByteArray::fromBase64(programBase64.toUtf8()).data());int subStart = program.indexOf(SEPARATOR_SUB_LEFT);int subEnd = program.indexOf(SEPARATOR_SUB_RIGHT);QString loopProgramBase64 = program.mid(0,subStart);// 循环左侧MFlowStepParamsLoop *params = new MFlowStepParamsLoop(QString(QByteArray::fromBase64(loopProgramBase64.toUtf8()).data()));params->carryParent = parentParams;params->carryStepLocation =stepLocation;steps.append(params);//循环内部stepQString subProgram = program.mid(subStart+1,subEnd-subStart-1);appendParams(deep,subProgram,params);//subProgram = step1Base64,step2Base64,step3Base64,,,}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。