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