# data_migration **Repository Path**: chen_changshun/data_migration ## Basic Information - **Project Name**: data_migration - **Description**: 数据迁移工具 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: dev - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-01-05 - **Last Updated**: 2024-01-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### npm install "gulpjs/gulp-cli#4.0" -g npm install "gulpjs/gulp#4.0" -g https://sixinpic.kuaishou.com/rest/v2/app/download?resourceId=25glkln5j4hu1jl6twmb3pvsu1gp6ogcxb7po26kjpxngzgun03ss3.jpeg&w=440&h=&userId=140000015593736&did=web_djrzfdd9amupp9empk9d3s1pam3kbn8g&kuaishou.shop.im_st=ChNrdWFpc2hvdS5zaG9wLmltLnN0EqABmK8TyFgCJHjBpuNeFUeGY-AUaYxvN31e88IhjIonj-WvWt0Ep7dj8mgmc54plp73mxC1ma28mAMD2OhDn1VnnJ9SvUxo70bXzzsuEaxkRfobWh9DARvk9WmPnii1KFXrZRBdnlV72BUatu5IrG9uCwoOncLm7fuS3JQPa_B569OtpGNjR5fFnM1cNao6gdJkTo1XSckB1ERfjahVgbbpsRoSE-RWyiZY86_ZVXnwOrKaJcW-IiAIbTLHcITLkyRmuGkmCk_hbuFnIDiE_svWno-oYsTVKSgFMAE&kpn=KUAISHOU.KWAIXIAODIAN.WEB&imsdkver=2.11.18&sub-biz=MERCHANT&platform=H5 wsConnectError: 连接错误 wsConnectClose: 连接失败 wsBizConnectClose: 业务连接失败 queryNickError: 搜索昵称失败 changeUserStart: 切换用户开始 changeUser: 切换用户成功 changeUserError: 切换用户失败 recv: 收消息 godSendfindNickSuccess: 查找用户昵称 godSendStart: AI发送开始 godSendError: AI发送失败 godSendEnd: AI发送成功 MessageSendError: 快手发送返回失败 MessageSend: 快手发送返回 customerMsg: 客服发送消息 cacheFindNickSuccess: 缓存查询昵称成功 cacheFindNickError: 缓存查询昵称失败 ExtensionJsLoadError: 插件js加载失败 QueryVersionError: js版本查询失败 ```json { // 清单文件的版本,这个必须写,而且必须是2 "manifest_version": 2, // 插件的名称 "name": "小微小店助手", // 插件的版本 "version": "1.0.2", // 插件描述 "description": "__MSG_pluginDesc__", // 图标,一般偷懒全部用一个尺寸的也没问题 "icons": { "16": "img/icon.png", "48": "img/icon.png", "128": "img/icon.png" }, // 会一直常驻的后台JS或后台页面 "background": { // 2种指定方式,如果指定JS,那么会自动生成一个背景页 "page": "background.html" //"scripts": ["js/background.js"] }, // 当某些特定页面打开才显示的图标 "page_action": { "default_icon": "img/icon.png", "default_title": "店铺助手" // "default_popup": "popup.html" }, // 需要直接注入页面的JS "content_scripts": [ { "matches": ["http://im.kwaixiaodian.com/*", "https://im.kwaixiaodian.com/*"], // "" 表示匹配所有地址 // "matches": [""], // 多个JS按顺序注入 "js": ["js/content-script.js"], // 代码注入的时间,可选值: "document_start", "document_end", or "document_idle",最后一个表示页面空闲时,默认document_idle "run_at": "document_start" } ], // 权限申请 "permissions": [ "contextMenus", // 右键菜单 "tabs", // 标签 "cookies", "notifications", // 通知 "webRequest", // web请求 "webRequestBlocking", // 阻塞式web请求 "storage", // 插件本地存储 "http://*/*", // 可以通过executeScript或者insertCSS访问的网站 "https://*/*" // 可以通过executeScript或者insertCSS访问的网站 ], // 普通页面能够直接访问的插件资源列表,如果不设置是无法直接访问的 "web_accessible_resources": ["js/inject.js"], // 默认语言 "default_locale": "zh_CN" } ``` ``` %0AAks%3A//24hlf1stfo88qvdohbjkhfi2uhdallhle1fxtbsesqn7u5bovle1kj.jpg/1%10%80%05%18d%20%99%E7%01 ``` ```js }) (function anonymous(Reader,types,util ) { return function KsImDataUpdatePushPayload$decode(r,l){ if(!(r instanceof Reader)) r=Reader.create(r) var c=l===undefined?r.len:r.pos+l,m=new this.ctor while(r.pos>>3){ case 1: m.type=r.int32() break case 2: m.content=r.bytes() break default: r.skipType(t&7) break } } return m } }) (function anonymous(Reader,types,util ) { return function SessionFolderDataUpdate$decode(r,l){ if(!(r instanceof Reader)) r=Reader.create(r) var c=l===undefined?r.len:r.pos+l,m=new this.ctor while(r.pos>>3){ case 1: if(!(m.sessionFolderBasic&&m.sessionFolderBasic.length)) m.sessionFolderBasic=[] m.sessionFolderBasic.push(types[0].decode(r,r.uint32())) break case 2: if(!(m.added&&m.added.length)) m.added=[] m.added.push(types[1].decode(r,r.uint32())) break case 3: if(!(m.removed&&m.removed.length)) m.removed=[] m.removed.push(types[2].decode(r,r.uint32())) break default: r.skipType(t&7) break } } return m } }) (function anonymous(Reader,types,util ) { return function SessionReferenceUpdateItem$decode(r,l){ if(!(r instanceof Reader)) r=Reader.create(r) var c=l===undefined?r.len:r.pos+l,m=new this.ctor while(r.pos>>3){ case 1: m.sessionReference=types[0].decode(r,r.uint32()) break case 2: m.sessionFolderId=r.string() break default: r.skipType(t&7) break } } return m } }) (function anonymous(Reader,types,util ) { return function SessionReference$decode(r,l){ if(!(r instanceof Reader)) r=Reader.create(r) var c=l===undefined?r.len:r.pos+l,m=new this.ctor while(r.pos>>3){ case 1: m.chatTarget=types[0].decode(r,r.uint32()) break case 2: m.priority=r.int64() break default: r.skipType(t&7) break } } return m } }) (function anonymous(Reader,types,util ) { return function ChatTarget$decode(r,l){ if(!(r instanceof Reader)) r=Reader.create(r) var c=l===undefined?r.len:r.pos+l,m=new this.ctor while(r.pos>>3){ case 1: m.targetId=r.string() break case 2: m.targetType=r.int32() break default: r.skipType(t&7) break } } return m } }) ``` ```js // -------- start ----------mock // import packTextMessage from './types/text' // import packetImageMessage from './types/image' // import packetGoodsLinkMessage from './types/goodsLink' // import { getKsWs } from '../lib/tool' // setTimeout(async () => { // const ksWs = getKsWs() // for(let i=0;i<20;i++){ // const msg = packTextMessage("623598733", String(i)) // ksWs.__send(msg) // } // 图片消息 // packetImageMessage('http://127.0.0.1:3301/test_static/1.png', '2073130807').then(res => { // console.log('发送图片') // ksWs.__send(res) // const msg = packTextMessage('2073130807', 'text') // ksWs.__send(msg) // packetGoodsLinkMessage( // '2073130807', // '420704853355' // ).then(res=>{ // ksWs.__send(res) // }) // }) // packetGoodsLinkMessage( // '2073130807', // '420704853355' // ).then(res=>{ // ksWs.__send(res) // }) // const msg = packTextMessage('2073130807', '123') // console.log('---------------------------------123------------------------------------------') // console.log(msg) // ksWs.__send(msg) // }, 5000) ``` {"buyerId":"2073130807","buyerNick":"2073130807","messageContent":"{\"answer\":\"亲亲,看到您的订单 还未付款,如果是对宝贝还有疑问,请随时咨询我哦!您付款后我们会优先为您安排发货哦!\\t \",\"metaData\":{\"aiContextConf\":\"{\\\"onFinalTimeDuty\\\":false,\\\"onHolidayDuty\\\":false,\\\"onNightDuty\\\":false}\"},\"msgConfInfo\":{\"answerMode\":0,\"answerStyle\":\"\\\\U\",\"chatMsgType\":0,\"dutyToHuman\":false,\"imServerMsgType\":1,\"lightMsg\":false,\"needHuman\":false,\"needLimit\":true,\"notConfigureAnswer\":false,\"otherMap\":{\"pointTurns\":\"1\",\"pointRemindContentId\":\"272505\",\"pointRemindConfigId\":\"102005\",\"pointRemindTurnId\":\"60068\"},\"remindMsg\":true,\"remindType\":2,\"sendType\":0,\"testMsg\":false},\"msgDetailList\":[{\"extra\":{\"ANSWER_MODEL_MSG\":\"ANSWER_MODEL_MSG\",\"FONT_UNDERLINE_STYLE\":1},\"type\":0,\"value\":\"亲亲,看到您的订单 还未付款,如果是对宝贝还有疑问,请随时咨询我哦!您付款后我们会优先为您安排发货哦! \"}],\"msgId\":\"1603245581036\",\"svrTime\":1603245581036,\"tokenInfo\":{\"buyerNick\":\"754618702\",\"finalBuyerNick\":\"cnkwai##754618702\",\"mainAccount\":\"cnkwai1981647355\",\"mainAccountStr\":\"1981647355\",\"platFormStr\":\"cnkwai\",\"sellerNick\":\"1981647355:阳乐\",\"size\":4,\"subMainAccount\":\"cnkwai##1981647355:阳乐\",\"subNick\":\"阳乐\",\"toPlatFormStr\":\"cnkwai\"}}","sellerNick":"墨白","shopId":"1981647355","type":10007} 邀好评方案 ``` case 'Message.PullOld': // data = downstreamPullOldResponse$decode(new decodeArray(payload.payloadData)) // logger.info('--[Message.PullOld]', data) // if (!window.cacheEvaluationList) { // break // } // let cacheEvaMsg = window.cacheEvaluationList && window.cacheEvaluationList.find(i => { // return String(i.globalSendSeqId) === String(oldSeq.seqId) // }) // if (!cacheEvaMsg) { // break // } // data = downstreamPullOldResponse$decode(new decodeArray(payload.payloadData)) // for (let i = data.messages.length - 1; i >= 0; i--) { // let msg = data.messages[i] // if (String(msg.contentType) === '100') { // logger.info('Message-one', msg) // let res = downstreamMessageEvaluation$decode(new decodeArray(msg.content)) // if(cacheEvaMsg.readSeq !== res.seqId){ // continue // } // if (res.seqId - res.eSeqId === 0) { // Notiflix.Notify.Warning(`等待用户${msg.toUser.uid}评价`); // break // } // logger.info('结果数据', res.seqId - res.eSeqId) // if(window.cacheRepeatEvaluate && window.cacheRepeatEvaluate[msg.seqId]){ // Notiflix.Notify.Info(`用户${msg.toUser.uid}修改了评价`); // break // }else{ // window.cacheRepeatEvaluate[msg.seqId] = cacheEvaMsg // } // if (res.seqId - res.eSeqId === 2) { // Notiflix.Notify.Success(`用户${msg.toUser.uid}发来好评`); // break // } // Notiflix.Notify.Info(`用户${msg.toUser.uid}评价非好评,请继续努力`); // break // } // } // break; // case 'Push.DataUpdate': // data = downstreamKsImDataUpdatePushPayload$decode(new decodeArray(payload.payloadData)) // logger.info(`--[Push.DataUpdate]`, data) // let content // if (data.content && data.content.length > 0) { // switch (String(data.type)) { // case '7': // // 可以对右侧用户列表增删(有问题) // content = downstreamSessionFolderDataUpdate$decode(new decodeArray(data.content)) // break; // case '4': // content = downstreamMessageRead$decode(new decodeArray(data.content)) // if (!window.cacheEvaluationList) { // window.cacheEvaluationList = [] // } // if (!window.cacheRepeatEvaluate){ // window.cacheRepeatEvaluate = {} // } // getKsWs().send(packetPullOldMsg(content.strTargetId, content.readSeq, (globalSendSeqId) => { // window.cacheEvaluationList.push({ // ...content, // globalSendSeqId // }) // })) // break; // default: // break // } // } // // logger.info('--[Push.DataUpdate]', data, payload.payloadData, content) // // window.__KsOnmessage({ // // data: new Blob([packet.buf.buffer]) // // }) // break; ``` // -------- start ----------mock // setTimeout(() => { // document.querySelector('.icon-sub-account').onclick = function () { // console.log(123) // xwApp.newKsClient.sendImage({ // targetId: 1831493885, // url: 'https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=3228549874,2173006364&fm=26&gp=0.jpg' // }) // } // }, 10000) import packTextMessage from './msg/types/text' import { getKsWs } from './lib/tool' setTimeout(async () => { document.querySelector('.subaccount-avatar').onclick = function () { const ksWs = getKsWs() const msg = packTextMessage('2065522391', '123') ksWs.__send(msg) } }, 5000) setup().decode() function di(e, t) { var n = Yn[e]; if (!n) throw new Error("Please provide response message proto command"); return n.decode(t) } // 考虑未来兼容性,弃用hash校验 // if (('onhashchange' in window) && ((typeof document.documentMode === 'undefined') || document.documentMode == 8)) { // // 浏览器支持onhashchange事件 // window.onhashchange = hashChange; // TODO,对应新的hash执行的操作函数 // } else { // // 不支持则用定时器检测的办法 // function intervalHashChange () { // setTimeout(() => { // // 检测hash值或其中某一段是否更改的函数, 在低版本的iE浏览器中通过window.location.hash取出的指和其它的浏览器不同,要注意 // var ischanged = isHashChanged(); // if (ischanged) { // hashChange(); // TODO,对应新的hash执行的操作函数 // } // intervalHashChange() // }, 150) // } // intervalHashChange() // } function test(){ xwApp.imTask.addTask({ run: async (callbackFn) => { await xwApp.newKsClient.sendImage({ targetId: '2065522391', url: 'https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=2397164785,2770340123&fm=26&gp=0.jpg', callback: callbackFn }) } }) xwApp.imTask.addTask({ run: async (callbackFn) => { xwApp.newKsClient.sendText({ targetId: '2065522391', title: 'nihao', callback: callbackFn }) } }) xwApp.imTask.addTask({ run: async (callbackFn) => { await xwApp.newKsClient.sendImage({ targetId: '2065522391', url: 'https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=2397164785,2770340123&fm=26&gp=0.jpg', callback: callbackFn }) } }) xwApp.imTask.addTask({ run: async (callbackFn) => { xwApp.newKsClient.sendText({ targetId: '2065522391', title: 'nihao', callback: callbackFn }) } }) window.test = () => { const data = [ {"aiAnswerExtra":{"aiAnswerType":"ANSWER_MODEL_MSG"},"buyerId":"1831493885","buyerNick":"mobai","customerNick":"麻椒的快手小店","kwaiShopId":"1981647355","messageContent":"{\"userToken\":\"cnkwai##1981647355:麻椒的快手小店##cnkwai##mobai\",\"msgObject\":{\"toid\":{\"nick\":\"mobai\",\"appkey\":\"cnkwai\"},\"msgs\":[{\"metadata\":{\"replaySceneType\":5001,\"replayScene\":5,\"curTime\":1612236217858,\"ansSceneId\":15},\"needHuman\":false,\"answer\":\"亲,根据您提供的信息给您打款失败,请您检查信息是否正确,并及时联系客服处理~\",\"answerStyle\":\"\\\\U\",\"pointInfo\":{},\"sendType\":0,\"msgid\":\"19cceb77a3da48bb84cfc771b8653e020\",\"msgBody\":[{\"extra\":{\"ANSWER_MSG_ID\":\"19cceb77a3da48bb84cfc771b8653e020\",\"CLIENT_HUMAN_SEND_MSG\":\"CLIENT_HUMAN_SEND_MSG\",\"AI_ANSWER_MSG\":\"AI_ANSWER_MSG\"},\"type\":1,\"value\":\"https://cdn.weierai.com/IMG/SHP55005333015732330242AC1100020/867a184047d50bcbbb3d520498c9de0a.jpg?width=1920&height=1200\"},{\"extra\":{\"ANSWER_MSG_ID\":\"19cceb77a3da48bb84cfc771b8653e020\",\"CLIENT_HUMAN_SEND_MSG\":\"CLIENT_HUMAN_SEND_MSG\",\"FONT_UNDERLINE_STYLE\":1,\"AI_ANSWER_MSG\":\"AI_ANSWER_MSG\"},\"type\":0,\"value\":\"亲,根据您提供的信息给您打款失败,请您检查信息是否正确,并及时联系客服处理~\"}],\"chatMsgType\":0}],\"metaData\":{\"$ref\":\"$.msgObject.msgs[0].metadata\"}},\"isFirst\":false,\"imServerMsgType\":1,\"isLight\":false,\"imServerUser\":{\"nick\":\"mobai\",\"appkey\":\"cnkwai\"},\"IS_TEST\":false,\"questionInfo\":{\"openId\":\"r9mZ9xHdC3y9gQx0mN0GeTWIXf577hWeGiPZkZRToJU\"},\"isNeedLimit\":false}","type":10009}, {"aiAnswerExtra":{"aiAnswerType":"ANSWER_MODEL_MSG"},"buyerId":"1831493885","buyerNick":"mobai","customerNick":"麻椒的快手小店","kwaiShopId":"1981647355","messageContent":"{\"userToken\":\"cnkwai##1981647355:麻椒的快手小店##cnkwai##mobai\",\"msgObject\":{\"toid\":{\"nick\":\"mobai\",\"appkey\":\"cnkwai\"},\"msgs\":[{\"metadata\":{\"replaySceneType\":5001,\"replayScene\":5,\"curTime\":1612236217902,\"ansSceneId\":15},\"needHuman\":false,\"answer\":\"亲,根据您提供的信息已成功打款,请及时查收~\",\"answerStyle\":\"\\\\U\",\"pointInfo\":{},\"sendType\":0,\"msgid\":\"1b8a3711184a4d9fb48e5508c12b788c0\",\"msgBody\":[{\"extra\":{\"ANSWER_MSG_ID\":\"1b8a3711184a4d9fb48e5508c12b788c0\",\"CLIENT_HUMAN_SEND_MSG\":\"CLIENT_HUMAN_SEND_MSG\",\"AI_ANSWER_MSG\":\"AI_ANSWER_MSG\"},\"type\":1,\"value\":\"https://cdn.weierai.com/IMG/SHP55005333015732330242AC1100020/2dca3b7c7e5789b89684da757b9381dd.jpg?width=1920&height=1080\"},{\"extra\":{\"ANSWER_MSG_ID\":\"1b8a3711184a4d9fb48e5508c12b788c0\",\"CLIENT_HUMAN_SEND_MSG\":\"CLIENT_HUMAN_SEND_MSG\",\"FONT_UNDERLINE_STYLE\":1,\"AI_ANSWER_MSG\":\"AI_ANSWER_MSG\"},\"type\":0,\"value\":\"亲,根据您提供的信息已成功打款,请及时查收~\"}],\"chatMsgType\":0}],\"metaData\":{\"$ref\":\"$.msgObject.msgs[0].metadata\"}},\"isFirst\":false,\"imServerMsgType\":1,\"isLight\":false,\"imServerUser\":{\"nick\":\"mobai\",\"appkey\":\"cnkwai\"},\"IS_TEST\":false,\"questionInfo\":{\"openId\":\"r9mZ9xHdC3y9gQx0mN0GeTWIXf577hWeGiPZkZRToJU\"},\"isNeedLimit\":false}","type":10009} ] for (let i = 0; i < data.length; i++ ) { setTimeout(() => { console.log(data[i]) handleBizWsMessageTask(data[i]) }, i*100) } } }