var system=require("../../../system");
const CtlBase = require("../../ctl.base");
const crypto = require('crypto');
var fs=require("fs");
var accesskey='3KV9nIwW8qkTGlrPmAe3HnR3fzM6r5';
var accessKeyId='LTAI4GC5tSKvqsH2hMqj6pvd';
var url="https://gsb-zc.oss-cn-beijing.aliyuncs.com";
class UploadCtl extends CtlBase{
  constructor(){
    super("common",CtlBase.getServiceName(UploadCtl));
    this.cmdPdf2HtmlPattern = "docker run -i --rm -v /tmp/:/pdf 0c  pdf2htmlEX --zoom 1.3 '{fileName}'";
    this.restS=system.getObject("util.execClient");
    this.cmdInsertToFilePattern = "sed -i 's/id=\"page-container\"/id=\"page-container\" contenteditable=\"true\"/'";
    this.workloadSve = system.getObject("service.common.workloadSve");
    this.ossClient=system.getObject("util.ossClient");
    //sed -i  's/1111/&BBB/' /tmp/input.txt
    //sed 's/{position}/{content}/g' {path}
  }
   async getOssConfig(){
    var policyText = {
        "expiration":"2119-12-31T16:00:00.000Z",
        "conditions":[
          ["content-length-range",0,1048576000],
          ["starts-with","$key","zc"]
        ]
    };
    var b = new Buffer(JSON.stringify(policyText));
    var policyBase64 = b.toString('base64');
    var signature= crypto.createHmac('sha1',accesskey).update(policyBase64).digest().toString('base64'); //base64

    var data={
        OSSAccessKeyId:accessKeyId,
        policy:policyBase64,
        Signature:signature,
        Bucket:'gsb-zc',
        success_action_status:201,
        url:url
   };

   return data;
  };
   async upfile(srckey,dest){
     var oss=system.getObject("util.ossClient");
     var result=await oss.upfile(srckey,"/tmp/"+dest);
     return result;
   };
   async downfile(srckey){
     var oss=system.getObject("util.ossClient");
     var downfile=await oss.downfile(srckey).then(function(){
       downfile="/tmp/"+srckey;
       return downfile;
     });
     return downfile;
   };
   async pdf2html(obj){
     var srckey=obj.key;
     var downfile=await this.downfile(srckey);
     var cmd=this.cmdPdf2HtmlPattern.replace(/\{fileName\}/g, srckey);
     var rtn=await this.restS.exec(cmd);
     var path="/tmp/"+srckey.split(".pdf")[0]+".html";
     var a=await this.insertToFile(path);
     fs.unlink("/tmp/"+srckey);
     var result=await this.upfile(srckey.split(".pdf")[0]+".html",srckey.split(".pdf")[0]+".html");
     return result.url;
   };
   async insertToFile(path){
      var cmd=this.cmdInsertToFilePattern+" "+path;
      return await this.restS.exec(cmd);
   };


    // async paramXlsx(queryobj,qobj,req) {
    //     try {
    //      let url = 'https://gsb-zc.oss-cn-beijing.aliyuncs.com/%E6%B5%8B%E8%AF%95';
    //      let userID = '1123;
    //         var rs = await this.workloadSve.paramXlsx(userID,url);
    //         if (rs.code == 0) {
    //             return system.getErrResult2(rs.msg || "文件解析失败");
    //         }
    //         return system.getResult2(rs);
    //     } catch (e) {
    //         console.log(e);
    //         return system.getErrResult2("您的网络不稳, 请稍后重试")
    //     }
    // }
}
module.exports=UploadCtl;
