提交 fa57eaeb authored 作者: 王鹏飞's avatar 王鹏飞

chore: update

上级 0c468741
This source diff could not be displayed because it is too large. You can view the blob instead.
const fs = require('fs') const fs = require('fs')
const conf = require('../config') const conf = require('../config')
const com = require('@god/node-com') const com = require('@ezijing/node-com')
const Proxy = com.Proxy const Proxy = com.Proxy
const ckeditorUpload = (req, res) => { const ckeditorUpload = (req, res) => {
/* 文件上传 ckeditor4.5以上返回格式 */ /* 文件上传 ckeditor4.5以上返回格式 */
function sendHtml (url, msg) { function sendHtml(url, msg) {
res.json({ res.json({
'uploaded': url ? 1 : 0, uploaded: url ? 1 : 0,
'fileName': 'image', fileName: 'image',
'url': url, url: url,
'error': { error: {
'message': msg message: msg,
} },
}) })
} }
if (req.files.length) { if (req.files.length) {
if (!req.files[0].mimetype.startsWith('image')) { sendHtml('', '文件类型错误,请上传图片'); return } if (!req.files[0].mimetype.startsWith('image')) {
if (req.files[0].size > 10 * 1024 * 1024) { sendHtml('', '图片大小超限'); return } sendHtml('', '文件类型错误,请上传图片')
return
}
if (req.files[0].size > 10 * 1024 * 1024) {
sendHtml('', '图片大小超限')
return
}
req.files[0].fieldname = 'file' req.files[0].fieldname = 'file'
Proxy.reqHttps({ Proxy.reqHttps(
hostname: req.headers.reqhost, // 直接传 host,会被 kong的nginx接管,不能再调用,所以改为自定义host {
path: '/api/lms/util/upload-file', hostname: req.headers.reqhost, // 直接传 host,会被 kong的nginx接管,不能再调用,所以改为自定义host
method: 'POST', path: '/api/lms/util/upload-file',
data: req.body || {}, method: 'POST',
query: req.query || {}, data: req.body || {},
files: req.files, query: req.query || {},
headers: { files: req.files,
'tenant': req.headers.tenant, headers: {
'Cookie': req.headers.cookie || '', tenant: req.headers.tenant,
'User-Agent': req.headers['user-agent'], Cookie: req.headers.cookie || '',
'Content-Type': 'multipart/form-data' 'User-Agent': req.headers['user-agent'],
} 'Content-Type': 'multipart/form-data',
}, function (str, obj) { },
try { },
const _json = JSON.parse(str) function (str, obj) {
if (_json.success) { try {
sendHtml(_json.url, '') const _json = JSON.parse(str)
} else { if (_json.success) {
sendHtml('', '上传错误,请重试') sendHtml(_json.url, '')
} else {
sendHtml('', '上传错误,请重试')
}
} catch (e) {
sendHtml('', '上传错误,请重试1')
} }
} catch (e) {
sendHtml('', '上传错误,请重试1')
} }
}) )
} }
} }
module.exports = { module.exports = {
ckeditorUpload: ckeditorUpload ckeditorUpload: ckeditorUpload,
} }
var com = require('@god/node-com') var com = require('@ezijing/node-com')
var _ReqHttp = com.Proxy.reqHttp var _ReqHttp = com.Proxy.reqHttp
var _MD5 = com.Tool.md5 var _MD5 = com.Tool.md5
...@@ -9,7 +9,7 @@ var conf = { ...@@ -9,7 +9,7 @@ var conf = {
StreamAppId: 1400255568, StreamAppId: 1400255568,
bizid: '33393', bizid: '33393',
sessionId: '', sessionId: '',
outStreamId: '' outStreamId: '',
} }
/* 根据腾讯云 - 创建混流 */ /* 根据腾讯云 - 创建混流 */
var getFlow = function (req, res) { var getFlow = function (req, res) {
...@@ -41,79 +41,83 @@ var _concelFlow = function (req, res) { ...@@ -41,79 +41,83 @@ var _concelFlow = function (req, res) {
/* 处理 混流建立 方式 */ /* 处理 混流建立 方式 */
var _dealCreateData = function (req, _time) { var _dealCreateData = function (req, _time) {
conf.sessionId = 'ne4MjXHKFce1yIwNMkKv9QtV6_hy0RoT' || _MD5('zyx_' + _time) conf.sessionId = 'ne4MjXHKFce1yIwNMkKv9QtV6_hy0RoT' || _MD5('zyx_' + _time)
conf.outStreamId = '33393_ca44d26966c309105baca4dbd10bb279' || ('stream_' + conf.sessionId) conf.outStreamId = '33393_ca44d26966c309105baca4dbd10bb279' || 'stream_' + conf.sessionId
console.log(_time, conf.AppId, conf.sessionId, conf.outStreamId, req.body) console.log(_time, conf.AppId, conf.sessionId, conf.outStreamId, req.body)
return JSON.stringify({ return JSON.stringify({
'timestamp': _time, // UNIX 时间戳数 timestamp: _time, // UNIX 时间戳数
'eventId': _time, // 取随机数即可,标识一次网络请求 eventId: _time, // 取随机数即可,标识一次网络请求
'interface': { interface: {
'interfaceName': 'Mix_StreamV2', // 固定值 interfaceName: 'Mix_StreamV2', // 固定值
'para': { para: {
'app_id': conf.AppId, // 填写直播 APPID app_id: conf.AppId, // 填写直播 APPID
'interface': 'mix_streamv2.start_mix_stream_advanced', // 固定值 interface: 'mix_streamv2.start_mix_stream_advanced', // 固定值
// 'interface': 'mix_streamv2.cancel_mix_stream', // 固定值 // 'interface': 'mix_streamv2.cancel_mix_stream', // 固定值
'mix_stream_template_id': 0, mix_stream_template_id: 0,
'mix_stream_session_id': conf.sessionId, // 标识一次网络请求 mix_stream_session_id: conf.sessionId, // 标识一次网络请求
'output_stream_id': conf.outStreamId, // 填输出流 ID output_stream_id: conf.outStreamId, // 填输出流 ID
'output_stream_type': 0, // 生成新流时,写1 output_stream_type: 0, // 生成新流时,写1
'input_stream_list': [{ input_stream_list: [
// 背景画面 {
'input_stream_id': '33393_ca44d26966c309105baca4dbd10bb279', // 流 ID // 背景画面
'layout_params': { input_stream_id: '33393_ca44d26966c309105baca4dbd10bb279', // 流 ID
'image_layer': 1, // 图层号,背景填1 layout_params: {
'image_width': 640, image_layer: 1, // 图层号,背景填1
'image_height': 360 image_width: 640,
} image_height: 360,
}, { },
// 小画面1 },
'input_stream_id': '33393_9806f61c2d2193106b5bad448e80c3d8', // 流 ID {
'layout_params': { // 小画面1
'image_layer': 2, // 图层标识号 input_stream_id: '33393_9806f61c2d2193106b5bad448e80c3d8', // 流 ID
'image_width': 120, // 画面宽度 layout_params: {
'image_height': 90, // 画面高度 image_layer: 2, // 图层标识号
'location_x': 10, // x偏移:相对于背景画面左上角的横向偏移 image_width: 120, // 画面宽度
'location_y': 10 // y偏移:相对于背景画面左上角的纵向偏移 image_height: 90, // 画面高度
} location_x: 10, // x偏移:相对于背景画面左上角的横向偏移
}] location_y: 10, // y偏移:相对于背景画面左上角的纵向偏移
} },
} },
],
},
},
}) })
} }
/* 处理 混流取消 方式 */ /* 处理 混流取消 方式 */
var _dealCancelData = function (req, _time) { var _dealCancelData = function (req, _time) {
return JSON.stringify({ return JSON.stringify({
'timestamp': _time, // UNIX 时间戳数 timestamp: _time, // UNIX 时间戳数
'eventId': _time, // 混流事件ID,取时间戳即可 eventId: _time, // 混流事件ID,取时间戳即可
'interface': { interface: {
'interfaceName': 'Mix_StreamV2', // 固定值 interfaceName: 'Mix_StreamV2', // 固定值
'para': { para: {
'app_id': conf.AppId, app_id: conf.AppId,
'interface': 'mix_streamv2.cancel_mix_stream', // 取消混流 interface: 'mix_streamv2.cancel_mix_stream', // 取消混流
// 'interface': 'mix_streamv2.start_mix_stream_advanced', // 取消混流 // 'interface': 'mix_streamv2.start_mix_stream_advanced', // 取消混流
'mix_stream_session_id': conf.sessionId, mix_stream_session_id: conf.sessionId,
'output_stream_id': conf.outStreamId output_stream_id: conf.outStreamId,
} },
} },
}) })
} }
/* 鉴权 - 返回参数 */ /* 鉴权 - 返回参数 */
var _getOpt = function (_time) { var _getOpt = function (_time) {
/* 定义鉴权 */ /* 定义鉴权 */
var str = 'appid=' + conf.AppId + '&interface=Mix_StreamV2&t=' + (_time + 60) + '&sign=' + _MD5(conf.AppSecret + (_time + 60)) var str =
'appid=' + conf.AppId + '&interface=Mix_StreamV2&t=' + (_time + 60) + '&sign=' + _MD5(conf.AppSecret + (_time + 60))
var opt = { var opt = {
hostname: 'fcgi.video.qcloud.com', hostname: 'fcgi.video.qcloud.com',
path: '/common_access?' + str, path: '/common_access?' + str,
method: 'POST', method: 'POST',
headers: { headers: {
'Content-Type': 'application/json' 'Content-Type': 'application/json',
}, },
data: {} data: {},
} }
return opt return opt
} }
module.exports = { module.exports = {
getFlow getFlow,
} }
const fs = require('fs') const fs = require('fs')
const path = require('path') const path = require('path')
const com = require('@god/node-com') const com = require('@ezijing/node-com')
const Proxy = com.Proxy const Proxy = com.Proxy
const getData = (req, res) => { const getData = (req, res) => {
Proxy.reqHttps({ Proxy.reqHttps(
hostname: 'lms-api.ezijing.com', {
path: '/v2/education/courses/' + req.path.replace(/\/abc\/test\/cba\//gi, ''), hostname: 'lms-api.ezijing.com',
data: {}, path: '/v2/education/courses/' + req.path.replace(/\/abc\/test\/cba\//gi, ''),
query: {}, data: {},
headers: { query: {},
'Host': 'lms-api.ezijing.com', headers: {
'tenant': req.headers.tenant, Host: 'lms-api.ezijing.com',
'token': req.headers.token, tenant: req.headers.tenant,
'apikey': req.headers.apikey, token: req.headers.token,
'User-Agent': req.headers['user-agent'], apikey: req.headers.apikey,
'Content-Type': 'application/x-www-form-urlencoded' 'User-Agent': req.headers['user-agent'],
'Content-Type': 'application/x-www-form-urlencoded',
},
},
function (str, cookieStr) {
console.error('接口读取数据', req.headers.token, str)
res.status(200).json(JSON.parse(str))
} }
}, function (str, cookieStr) { )
console.error('接口读取数据', req.headers.token, str)
res.status(200).json(JSON.parse(str))
})
} }
module.exports = { module.exports = {
getData: getData getData: getData,
} }
const fs = require('fs') const fs = require('fs')
const path = require('path') const path = require('path')
const com = require('@god/node-com') const com = require('@ezijing/node-com')
const Proxy = com.Proxy const Proxy = com.Proxy
const md5 = com.Tool.md5 const md5 = com.Tool.md5
const use = (req, res) => { const use = (req, res) => {
Proxy.reqHttps({ Proxy.reqHttps(
hostname: 'zws-api.ezijing.com', {
path: req.baseUrl, hostname: 'zws-api.ezijing.com',
method: req.method, path: req.baseUrl,
data: req.body || {}, method: req.method,
query: req.query || {}, data: req.body || {},
headers: { query: req.query || {},
'Host': 'zws-api.ezijing.com', headers: {
'Cookie': req.headers.cookie || '', Host: 'zws-api.ezijing.com',
'apikey': 'CXOIO7njD7o3RScs7MSHhvxeG4hbwX2S', Cookie: req.headers.cookie || '',
'User-Agent': req.headers['user-agent'], apikey: 'CXOIO7njD7o3RScs7MSHhvxeG4hbwX2S',
'Content-Type': 'application/x-www-form-urlencoded' 'User-Agent': req.headers['user-agent'],
'Content-Type': 'application/x-www-form-urlencoded',
},
},
function (str, obj) {
console.error('获取cookie - 123456789', req.headers.cookie)
if (/image/gi.test(obj.resHeader['content-type'])) {
// 这种方式不够高级,还要先生成一个图片文件,能不能直接返回一个文档流
res.header('Content-Type', obj.resHeader['content-type'])
str = str.replace(/^data:image\/\w+;base64,/, '')
let bf = new Buffer(str, 'base64')
fs.writeFileSync('upload_tmp/image.' + md5(bf) + '.png', bf)
fs.createReadStream('upload_tmp/image.' + md5(bf) + '.png').pipe(res)
// 直接返回 base64字符串
// res.header('Content-Type', 'text/plain')
// res.status(200).send(str)
} else {
res.status(200).json(JSON.parse(str))
}
} }
}, function (str, obj) { )
console.error('获取cookie - 123456789', req.headers.cookie)
if (/image/gi.test(obj.resHeader['content-type'])) {
// 这种方式不够高级,还要先生成一个图片文件,能不能直接返回一个文档流
res.header('Content-Type', obj.resHeader['content-type'])
str = str.replace(/^data:image\/\w+;base64,/, "")
let bf = new Buffer(str, 'base64')
fs.writeFileSync('upload_tmp/image.' + md5(bf) + '.png', bf)
fs.createReadStream('upload_tmp/image.' + md5(bf) + '.png').pipe(res)
// 直接返回 base64字符串
// res.header('Content-Type', 'text/plain')
// res.status(200).send(str)
} else {
res.status(200).json(JSON.parse(str))
}
})
} }
module.exports = { module.exports = {
use: use use: use,
} }
// var com = require('@ezijing/node-com')
// var com = require('@god/node-com')
var callback = function (req, res) { var callback = function (req, res) {
var _body = req.body || {} var _body = req.body || {}
console.log(JSON.stringify(_body)) console.log(JSON.stringify(_body))
res.status(200).json({ 'msg': '正常' }) res.status(200).json({ msg: '正常' })
} }
module.exports = { module.exports = {
callback: callback callback: callback,
} }
var com = require('@ezijing/node-com')
var com = require('@god/node-com')
var _MD5 = com.Tool.md5 var _MD5 = com.Tool.md5
...@@ -11,14 +10,17 @@ var isRun = function (req, res) { ...@@ -11,14 +10,17 @@ var isRun = function (req, res) {
var apikey = req.headers.apikey || '' var apikey = req.headers.apikey || ''
var timestamp = Math.floor(new Date().getTime() / 100000000) + '00000000' var timestamp = Math.floor(new Date().getTime() / 100000000) + '00000000'
var md5Str = _MD5('godzyx.com' + timestamp) var md5Str = _MD5('godzyx.com' + timestamp)
if (operate === '1') { res.status(200).json({ 'MD5-auth': md5Str }); return } if (operate === '1') {
res.status(200).json({ 'MD5-auth': md5Str })
return
}
if (apikey === md5Str) { if (apikey === md5Str) {
res.status(200).json({ 'msg': '数据正在处理' }) res.status(200).json({ msg: '数据正在处理' })
} else { } else {
res.status(200).json({ 'msg': '拒绝访问该接口' }) res.status(200).json({ msg: '拒绝访问该接口' })
} }
} }
module.exports = { module.exports = {
isRun: isRun isRun: isRun,
} }
...@@ -38,7 +38,7 @@ function getsignature (req, res) { ...@@ -38,7 +38,7 @@ function getsignature (req, res) {
share_json.jsapi_ticket = JSON.parse(body).ticket share_json.jsapi_ticket = JSON.parse(body).ticket
share_json.noncestr = Math.random().toString(36).substr(2, 15) // 随机字符串 share_json.noncestr = Math.random().toString(36).substr(2, 15) // 随机字符串
share_json.timestamp = parseInt(new Date().getTime() / 1000) + '' // 事件戳 share_json.timestamp = parseInt(new Date().getTime() / 1000) + '' // 事件戳
share_json.url = req.body.url || req.headers.referer share_json.url = encodeURIComponent(req.body.url || req.headers.referer)
let str1 = 'jsapi_ticket=' + share_json.jsapi_ticket + '&noncestr=' + share_json.noncestr + '&timestamp=' + share_json.timestamp + '&url=' + share_json.url let str1 = 'jsapi_ticket=' + share_json.jsapi_ticket + '&noncestr=' + share_json.noncestr + '&timestamp=' + share_json.timestamp + '&url=' + share_json.url
let token = sha1(str1) let token = sha1(str1)
return err ? reject(err) : res.send({ return err ? reject(err) : res.send({
......
const fs = require('fs') const fs = require('fs')
const path = require('path') const path = require('path')
const com = require('@god/node-com') const com = require('@ezijing/node-com')
const _mkdir = com.Tool.Directory.mkdir const _mkdir = com.Tool.Directory.mkdir
...@@ -10,7 +10,7 @@ const getTable = (req, res) => { ...@@ -10,7 +10,7 @@ const getTable = (req, res) => {
_mkdir(path1.replace(/\/[^\/]*?$/gi, ''), () => { _mkdir(path1.replace(/\/[^\/]*?$/gi, ''), () => {
fs.writeFileSync(path1, JSON.stringify({}), 'utf8') fs.writeFileSync(path1, JSON.stringify({}), 'utf8')
}) })
res.status(200).json({ 'msg': '文件不存在,创建文件' }) res.status(200).json({ msg: '文件不存在,创建文件' })
return return
} }
let _json = JSON.parse(fs.readFileSync(path1).toString() || '{}') let _json = JSON.parse(fs.readFileSync(path1).toString() || '{}')
...@@ -21,7 +21,7 @@ const setTable = (req, res) => { ...@@ -21,7 +21,7 @@ const setTable = (req, res) => {
let path1 = path.resolve(process.cwd(), '../node-server-data/cloud-class.json') let path1 = path.resolve(process.cwd(), '../node-server-data/cloud-class.json')
if (!fs.existsSync(path1)) { if (!fs.existsSync(path1)) {
_mkdir(path1) _mkdir(path1)
res.status(200).json({ 'msg': '文件不存在,创建文件' }) res.status(200).json({ msg: '文件不存在,创建文件' })
return return
} }
let _json = JSON.parse(fs.readFileSync(path1).toString() || '{}') let _json = JSON.parse(fs.readFileSync(path1).toString() || '{}')
...@@ -38,5 +38,5 @@ const setTable = (req, res) => { ...@@ -38,5 +38,5 @@ const setTable = (req, res) => {
module.exports = { module.exports = {
getTable: getTable, getTable: getTable,
setTable: setTable setTable: setTable,
} }
const fs = require('fs') const fs = require('fs')
const path = require('path') const path = require('path')
const com = require('@god/node-com') const com = require('@ezijing/node-com')
const _mkdir = com.Tool.Directory.mkdir const _mkdir = com.Tool.Directory.mkdir
...@@ -10,7 +10,7 @@ const get = (req, res) => { ...@@ -10,7 +10,7 @@ const get = (req, res) => {
_mkdir(path1.replace(/\/[^\/]*?$/gi, ''), () => { _mkdir(path1.replace(/\/[^\/]*?$/gi, ''), () => {
fs.writeFileSync(path1, JSON.stringify({}), 'utf8') fs.writeFileSync(path1, JSON.stringify({}), 'utf8')
}) })
res.status(200).json({ 'msg': '文件不存在,创建文件' }) res.status(200).json({ msg: '文件不存在,创建文件' })
return return
} }
let _json = JSON.parse(fs.readFileSync(path1).toString() || '{}') let _json = JSON.parse(fs.readFileSync(path1).toString() || '{}')
...@@ -23,7 +23,7 @@ const set = (req, res) => { ...@@ -23,7 +23,7 @@ const set = (req, res) => {
let path1 = path.resolve(process.cwd(), '../node-server-data/wxchart-success.json') let path1 = path.resolve(process.cwd(), '../node-server-data/wxchart-success.json')
if (!fs.existsSync(path1)) { if (!fs.existsSync(path1)) {
_mkdir(path1.replace(/\/[^\/]*?$/gi, '')) _mkdir(path1.replace(/\/[^\/]*?$/gi, ''))
res.status(200).json({ 'msg': '文件不存在,创建文件' }) res.status(200).json({ msg: '文件不存在,创建文件' })
return return
} }
let _json = JSON.parse(fs.readFileSync(path1).toString() || '{}') let _json = JSON.parse(fs.readFileSync(path1).toString() || '{}')
...@@ -36,5 +36,5 @@ const set = (req, res) => { ...@@ -36,5 +36,5 @@ const set = (req, res) => {
module.exports = { module.exports = {
get: get, get: get,
set: set set: set,
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论