config.js 11 KB
const basicConfig = {
  baseUrl: "http://cmstest.cnlive.com/cms",
};

const urls = {
  base: "http://test.mam.innerapi.cnlive.com/v1/inner/",
  onlineUrl: "https://api.cnlive.com/open/api2/vod_epg/material/",
  token: "material/getQNToken",
  save: "material/saveQNComplete",
  initFileOnline: "uploadFileInit?appId=1423_kbrrnni803",
  transcode: "pendingTranscodeTask?appId=1423_kbrrnni803",
};

const secretUrls = {
  // base: "https://api.cnlive.com/open/api2/vod_epg/videoPgc",
  base: "http://test.open.cnlive.com/openapi/api2/vod_epg/videoPgc",
  auth: "/getUploadAuth",
  init: "/uploadFileInit",
  callback: "/uploadCallback",
  finish: "/uploadSuccess",
  masterIdDev: 10505921,
  masterIdMaster: 10494974,
  appIdDev: "802_ji9ojo9w63",
  appIdMaster: "1423_kbrrnni803",
  appKeyDev: '06138c3527f48e7020261b9225660792d0a45d76b1cd4d',
  appKeyMaster: '459d0881107ea2ddff78fb1ab31b1f134cc331982807a7'
};

const cdnConfig = {
  useCdnDomain: true,
  disableStatisticsReport: true,
  retryCount: 6,
  region: qiniu.region.z1,
};

const putExtra = {
  fname: "",
  params: {},
  mimeType: null,
};

const formLabels = {
  channelId: '类\xa0\xa0\xa0\xa0\xa0\xa0\xa0型',
  songName: '歌曲名字',
  singer: '歌\xa0\xa0\xa0\xa0\xa0\xa0\xa0手',
  lyricist: '作\xa0\xa0\xa0\xa0\xa0\xa0\xa0词',
  songwriter: '作\xa0\xa0\xa0\xa0\xa0\xa0\xa0曲',
  redact: '编\xa0\xa0\xa0\xa0\xa0\xa0\xa0曲',
  mixing: '混\xa0\xa0\xa0\xa0\xa0\xa0\xa0音',
  lyric: '歌\xa0\xa0\xa0\xa0\xa0\xa0\xa0词',
  phone: '手机号码',
  name: '联系人姓名',
  audioId: '音\xa0\xa0\xa0\xa0\xa0\xa0\xa0频',
  audioFile: '音\xa0\xa0\xa0\xa0\xa0\xa0\xa0频',
}

// Rewrite Request Method
const request = axios.create({
  timeout: 10000,
});


// Init signature
const signFunction = function (api, list) {
  let sha1 = require('sha1')
  //数组合并
  let arrApi = ["appId=" + secretUrls.appIdMaster];
  // let arrApi = ["appId=" + secretUrls.appIdDev];
  arrApi = arrApi.concat(list); //对数组进行升序处理,并拼成一个字符串

  let stringSign = arrApi.sort().join("&"); //key要放在字符串最后,对字符串进行sha1加密处理,并转换为大写

  let signValue = sha1(stringSign + "&key=" + secretUrls.appKeyMaster).toUpperCase(); //生成最终的请求参数
  // let signValue = sha1(stringSign + "&key=" + secretUrls.appKeyDev).toUpperCase(); //生成最终的请求参数

  let apiStringSign = api + "?" + stringSign + "&sign=" + signValue;

  return apiStringSign;
};

const parseQueryString = function (url) {
  var reg_url = /^[^\?]+\?([\w\W]+)$/,
    reg_para = /([^&=]+)=([\w\W]*?)(&|$|#)/g,
    arr_url = reg_url.exec(url),
    ret = {};
  if (arr_url && arr_url[1]) {
    var str_para = arr_url[1],
      result;
    while ((result = reg_para.exec(str_para)) != null) {
      ret[result[1]] = result[2];
    }
  }
  return ret;
};

// File And Form Validate
const validateVideoSize = function (curSize) {
  const sizeLimitation = 1024 * 1024 * 500; // 500M
  return new Promise((resolve, reject) => {
    if (parseInt(curSize) <= sizeLimitation) {
      resolve("没超尺寸");
    } else {
      reject("文件过大");
    }
  });
};

const validateNameLength = function (name) {
  return new Promise((resolve, reject) => {
    if (name.length < 1 || name.length > 100) {
      reject("文件名称最小长度为2,上限长度为100!");
    } else {
      resolve("名字可以");
    }
  });
};

const validateVideoFormat = function (curFormat) {
  // const formats = [
  //   "mp3",
  //   "wma",
  //   "m4a",
  //   "flac",
  //   "aac",
  //   "ape",
  //   "wav",
  //   "wv",
  //   "dts",
  //   "ac3",
  //   "mmf",
  //   "amr",
  //   "m4r",
  //   "ogg",
  //   "mp2"
  // ];
  const formats = ["mp3", "flac", "wav", "ogg"];
  return new Promise((resolve, reject) => {
    if (formats.includes(curFormat)) {
      resolve("格式可以");
    } else {
      reject("文件格式不允许");
    }
  });
};

const validatePhone = (rules, value, callback) => {
  const reg = /^1(3|4|5|6|7|8|9)\d{9}$/;
  if (reg.test(value)) {
    callback();
  } else {
    callback(new Error("请填写格式正确的手机号码"));
  }
};

const validateName = (rules, value, callback) => {
  if (value.length < 1) {
    callback(new Error("请填写歌曲名称"));
  } else if (value.length > 100) {
    callback(new Error("歌曲名称长度应在1~100之间(含)"));
  } else {
    callback();
  }
};

const initVideoMd5 = function (e) {
  function i(e) {
    var i = (e >>> 0).toString(16);
    return "00000000".substr(0, 8 - i.length) + i;
  }

  function t(e) {
    for (var i = [], t = 0; t < e.length; t++) i = i.concat(c(e[t]));
    return i;
  }

  function r(e) {
    for (var i = [], t = 0; t < 8; t++) i.push(255 & e), (e >>>= 8);
    return i;
  }

  function l(e, i) {
    return ((e << i) & 4294967295) | (e >>> (32 - i));
  }

  function n(e, i, t) {
    return (e & i) | (~e & t);
  }

  function o(e, i, t) {
    return (t & e) | (~t & i);
  }

  function a(e, i, t) {
    return e ^ i ^ t;
  }

  function p(e, i, t) {
    return i ^ (e | ~t);
  }

  function f(e, i) {
    return (e[i + 3] << 24) | (e[i + 2] << 16) | (e[i + 1] << 8) | e[i];
  }

  function c(e) {
    for (var i = [], t = 0; t < e.length; t++)
      if (e.charCodeAt(t) <= 127) i.push(e.charCodeAt(t));
      else
        for (
          var r = encodeURIComponent(e.charAt(t)).substr(1).split("%"), l = 0;
          l < r.length;
          l++
        )
          i.push(parseInt(r[l], 16));
    return i;
  }

  function s() {
    for (var e = "", t = 0, r = 0, l = 3; l >= 0; l--)
      (r = arguments[l]),
        (t = 255 & r),
        (r >>>= 8),
        (t <<= 8),
        (t |= 255 & r),
        (r >>>= 8),
        (t <<= 8),
        (t |= 255 & r),
        (r >>>= 8),
        (t <<= 8),
        (t |= r),
        (e += i(t));
    return e;
  }

  function u(e) {
    for (var i = new Array(e.length), t = 0; t < e.length; t++) i[t] = e[t];
    return i;
  }

  function F(e, i) {
    return 4294967295 & (e + i);
  }

  function d() {
    function e(e, i, t, r) {
      var n = b;
      (b = h), (h = y), (y = F(y, l(F(g, F(e, F(i, t))), r))), (g = n);
    }

    var i = m.length;
    m.push(128);
    var t = m.length % 64;
    if (t > 56) {
      for (var c = 0; 64 - t > c; c++) m.push(0);
      t = m.length % 64;
    }
    for (c = 0; 56 - t > c; c++) m.push(0);
    m = m.concat(r(8 * i));
    var u = 1732584193;
    var d = 4023233417;
    var v = 2562383102;
    var O = 271733878;
    var g = 0;
    var y = 0;
    var h = 0;
    var b = 0;
    for (c = 0; c < m.length / 64; c++) {
      (g = u), (y = d), (h = v), (b = O);
      var A = 64 * c;
      e(n(y, h, b), 3614090360, f(m, A), 7),
        e(n(y, h, b), 3905402710, f(m, A + 4), 12),
        e(n(y, h, b), 606105819, f(m, A + 8), 17),
        e(n(y, h, b), 3250441966, f(m, A + 12), 22),
        e(n(y, h, b), 4118548399, f(m, A + 16), 7),
        e(n(y, h, b), 1200080426, f(m, A + 20), 12),
        e(n(y, h, b), 2821735955, f(m, A + 24), 17),
        e(n(y, h, b), 4249261313, f(m, A + 28), 22),
        e(n(y, h, b), 1770035416, f(m, A + 32), 7),
        e(n(y, h, b), 2336552879, f(m, A + 36), 12),
        e(n(y, h, b), 4294925233, f(m, A + 40), 17),
        e(n(y, h, b), 2304563134, f(m, A + 44), 22),
        e(n(y, h, b), 1804603682, f(m, A + 48), 7),
        e(n(y, h, b), 4254626195, f(m, A + 52), 12),
        e(n(y, h, b), 2792965006, f(m, A + 56), 17),
        e(n(y, h, b), 1236535329, f(m, A + 60), 22),
        e(o(y, h, b), 4129170786, f(m, A + 4), 5),
        e(o(y, h, b), 3225465664, f(m, A + 24), 9),
        e(o(y, h, b), 643717713, f(m, A + 44), 14),
        e(o(y, h, b), 3921069994, f(m, A), 20),
        e(o(y, h, b), 3593408605, f(m, A + 20), 5),
        e(o(y, h, b), 38016083, f(m, A + 40), 9),
        e(o(y, h, b), 3634488961, f(m, A + 60), 14),
        e(o(y, h, b), 3889429448, f(m, A + 16), 20),
        e(o(y, h, b), 568446438, f(m, A + 36), 5),
        e(o(y, h, b), 3275163606, f(m, A + 56), 9),
        e(o(y, h, b), 4107603335, f(m, A + 12), 14),
        e(o(y, h, b), 1163531501, f(m, A + 32), 20),
        e(o(y, h, b), 2850285829, f(m, A + 52), 5),
        e(o(y, h, b), 4243563512, f(m, A + 8), 9),
        e(o(y, h, b), 1735328473, f(m, A + 28), 14),
        e(o(y, h, b), 2368359562, f(m, A + 48), 20),
        e(a(y, h, b), 4294588738, f(m, A + 20), 4),
        e(a(y, h, b), 2272392833, f(m, A + 32), 11),
        e(a(y, h, b), 1839030562, f(m, A + 44), 16),
        e(a(y, h, b), 4259657740, f(m, A + 56), 23),
        e(a(y, h, b), 2763975236, f(m, A + 4), 4),
        e(a(y, h, b), 1272893353, f(m, A + 16), 11),
        e(a(y, h, b), 4139469664, f(m, A + 28), 16),
        e(a(y, h, b), 3200236656, f(m, A + 40), 23),
        e(a(y, h, b), 681279174, f(m, A + 52), 4),
        e(a(y, h, b), 3936430074, f(m, A), 11),
        e(a(y, h, b), 3572445317, f(m, A + 12), 16),
        e(a(y, h, b), 76029189, f(m, A + 24), 23),
        e(a(y, h, b), 3654602809, f(m, A + 36), 4),
        e(a(y, h, b), 3873151461, f(m, A + 48), 11),
        e(a(y, h, b), 530742520, f(m, A + 60), 16),
        e(a(y, h, b), 3299628645, f(m, A + 8), 23),
        e(p(y, h, b), 4096336452, f(m, A), 6),
        e(p(y, h, b), 1126891415, f(m, A + 28), 10),
        e(p(y, h, b), 2878612391, f(m, A + 56), 15),
        e(p(y, h, b), 4237533241, f(m, A + 20), 21),
        e(p(y, h, b), 1700485571, f(m, A + 48), 6),
        e(p(y, h, b), 2399980690, f(m, A + 12), 10),
        e(p(y, h, b), 4293915773, f(m, A + 40), 15),
        e(p(y, h, b), 2240044497, f(m, A + 4), 21),
        e(p(y, h, b), 1873313359, f(m, A + 32), 6),
        e(p(y, h, b), 4264355552, f(m, A + 60), 10),
        e(p(y, h, b), 2734768916, f(m, A + 24), 15),
        e(p(y, h, b), 1309151649, f(m, A + 52), 21),
        e(p(y, h, b), 4149444226, f(m, A + 16), 6),
        e(p(y, h, b), 3174756917, f(m, A + 44), 10),
        e(p(y, h, b), 718787259, f(m, A + 8), 15),
        e(p(y, h, b), 3951481745, f(m, A + 36), 21),
        (u = F(u, g)),
        (d = F(d, y)),
        (v = F(v, h)),
        (O = F(O, b));
    }
    return s(O, v, d, u).toUpperCase();
  }

  var m = null;
  var v = null;
  return (
    typeof e == "string"
      ? (m = c(e))
      : e.constructor == Array
      ? e.length === 0
        ? (m = e)
        : typeof e[0] == "string"
        ? (m = t(e))
        : typeof e[0] == "number"
        ? (m = e)
        : (v = typeof e[0])
      : typeof ArrayBuffer != "undefined"
      ? e instanceof ArrayBuffer
        ? (m = u(new Uint8Array(e)))
        : e instanceof Uint8Array || e instanceof Int8Array
        ? (m = u(e))
        : e instanceof Uint32Array ||
          e instanceof Int32Array ||
          e instanceof Uint16Array ||
          e instanceof Int16Array ||
          e instanceof Float32Array ||
          e instanceof Float64Array
        ? (m = u(new Uint8Array(e.buffer)))
        : (v = typeof e)
      : (v = typeof e),
    v && alert("MD5 type mismatch, cannot process " + v),
    d()
  );
};

export {
  initVideoMd5,
  validateName,
  validatePhone,
  validateVideoFormat,
  validateNameLength,
  validateVideoSize,
  signFunction,
  parseQueryString,
  request,
  putExtra,
  cdnConfig,
  basicConfig,
  urls,
  secretUrls,
  formLabels
};