正在显示
2 个修改的文件
包含
101 行增加
和
101 行删除
1 | { | 1 | { |
2 | - "GETCLASSURL":"http://139.196.126.156:8081/getLogs/recordClassList", | ||
3 | - "GETCLASSURLPARAMETER":{ | ||
4 | - "siteId":["beidatest","funexenglish"], | ||
5 | - "key":"xdymp4record20191225", | ||
6 | - "page":1, | ||
7 | - "maxMedia":1 | ||
8 | - }, | ||
9 | - "PROJECTWINCATALOG":"F:/project/web_capture_release/win-x64", | ||
10 | - "PROJECTCATALOG":"F:/project/web_capture_release", | ||
11 | - "BACKMEDIACONFIG":{ | ||
12 | - "url" : "https://pclive.xuedianyun.com/pcBase/pclive2/dev/index.html", | ||
13 | - "recordMp4":true, | ||
14 | - "classId":"", | ||
15 | - "userId":0, | ||
16 | - "userName":"", | ||
17 | - "userRole":"normal", | ||
18 | - "portalIP":"saas.xuedianyun.com", | ||
19 | - "portalPort":80, | ||
20 | - "channels":2, | ||
21 | - "playRecord":1, | ||
22 | - "d":21600000, | ||
23 | - "s":3000, | ||
24 | - "fa":15, | ||
25 | - "k":0, | ||
26 | - "w":1280, | ||
27 | - "h":720 | ||
28 | - } | ||
29 | -} | ||
2 | + "GETCLASSURL": "http://139.196.126.156:8081/getLogs/recordClassList", | ||
3 | + "GETCLASSURLPARAMETER": { | ||
4 | + "siteId": [], | ||
5 | + "key": "xdymp4record20191225", | ||
6 | + "page": 1, | ||
7 | + "maxMedia": 1 | ||
8 | + }, | ||
9 | + "PROJECTWINCATALOG": "F:/project/web_capture_release/win-x64", | ||
10 | + "PROJECTCATALOG": "F:/project/web_capture_release", | ||
11 | + "BACKMEDIACONFIG": { | ||
12 | + "url": "https://pclive.xuedianyun.com/pcBase/pclive2/dev/index.html", | ||
13 | + "recordMp4": true, | ||
14 | + "classId": "", | ||
15 | + "userId": 0, | ||
16 | + "userName": "", | ||
17 | + "userRole": "normal", | ||
18 | + "portalIP": "saas.xuedianyun.com", | ||
19 | + "portalPort": 80, | ||
20 | + "channels": 2, | ||
21 | + "playRecord": 1, | ||
22 | + "d": 21600000, | ||
23 | + "s": 3000, | ||
24 | + "fa": 15, | ||
25 | + "k": 0, | ||
26 | + "w": 1280, | ||
27 | + "h": 720 | ||
28 | + } | ||
29 | +} |
1 | var express = require('express'); | 1 | var express = require('express'); |
2 | var router = express.Router(); | 2 | var router = express.Router(); |
3 | -const {spawn, exec} = require('child_process'); | 3 | +const { spawn, exec } = require('child_process'); |
4 | const fs = require("fs"); | 4 | const fs = require("fs"); |
5 | var path = require('path') | 5 | var path = require('path') |
6 | 6 | ||
@@ -8,7 +8,7 @@ const method = require("../config/method") | @@ -8,7 +8,7 @@ const method = require("../config/method") | ||
8 | const config = require("../config/config") | 8 | const config = require("../config/config") |
9 | 9 | ||
10 | // const { GETCLASSURL, GETCLASSURLPARAMETER, PROJECTCATALOG, PROJECTWINCATALOG, BACKMEDIACONFIG } = config | 10 | // const { GETCLASSURL, GETCLASSURLPARAMETER, PROJECTCATALOG, PROJECTWINCATALOG, BACKMEDIACONFIG } = config |
11 | -const {YesterdayTime, getRequestClassIds, dayTimeYMD} = method | 11 | +const { YesterdayTime, getRequestClassIds, dayTimeYMD } = method |
12 | 12 | ||
13 | let siteIds = [] | 13 | let siteIds = [] |
14 | 14 | ||
@@ -29,11 +29,11 @@ class MediaCreat { | @@ -29,11 +29,11 @@ class MediaCreat { | ||
29 | 29 | ||
30 | // 取出所有数据 | 30 | // 取出所有数据 |
31 | async allData() { | 31 | async allData() { |
32 | - const {startTime, endTime} = YesterdayTime() | 32 | + const { startTime, endTime } = YesterdayTime() |
33 | let fileConfig = new MediaCreat().getConfigFileJson() | 33 | let fileConfig = new MediaCreat().getConfigFileJson() |
34 | if (!fileConfig) return false | 34 | if (!fileConfig) return false |
35 | className = siteIds.shift() | 35 | className = siteIds.shift() |
36 | - const {GETCLASSURL, GETCLASSURLPARAMETER} = JSON.parse(fileConfig) | 36 | + const { GETCLASSURL, GETCLASSURLPARAMETER } = JSON.parse(fileConfig) |
37 | let page = 1 | 37 | let page = 1 |
38 | if (className) { | 38 | if (className) { |
39 | let result = await getRequestClassIds(GETCLASSURL, className, GETCLASSURLPARAMETER.key, startTime, endTime, page) | 39 | let result = await getRequestClassIds(GETCLASSURL, className, GETCLASSURLPARAMETER.key, startTime, endTime, page) |
@@ -42,7 +42,7 @@ class MediaCreat { | @@ -42,7 +42,7 @@ class MediaCreat { | ||
42 | classid.push(result.data.data.list[j]) | 42 | classid.push(result.data.data.list[j]) |
43 | parentData[result.data.data.siteId].add(result.data.data.list[j]['classId']) | 43 | parentData[result.data.data.siteId].add(result.data.data.list[j]['classId']) |
44 | } | 44 | } |
45 | - const {siteId, list, totalPage} = result.data.data | 45 | + const { siteId, list, totalPage } = result.data.data |
46 | for (let i = page += 1; i <= totalPage; i++) { | 46 | for (let i = page += 1; i <= totalPage; i++) { |
47 | let result = await getRequestClassIds(GETCLASSURL, className, GETCLASSURLPARAMETER.key, startTime, endTime, i) | 47 | let result = await getRequestClassIds(GETCLASSURL, className, GETCLASSURLPARAMETER.key, startTime, endTime, i) |
48 | for (let j = 0; j < result.data.data.list.length; j++) { | 48 | for (let j = 0; j < result.data.data.list.length; j++) { |
@@ -123,7 +123,7 @@ class MediaCreat { | @@ -123,7 +123,7 @@ class MediaCreat { | ||
123 | this.wrieLog(" 课堂录制开始:------>" + id) | 123 | this.wrieLog(" 课堂录制开始:------>" + id) |
124 | let fileConfig = this.getConfigFileJson() | 124 | let fileConfig = this.getConfigFileJson() |
125 | if (!fileConfig) return false | 125 | if (!fileConfig) return false |
126 | - const {BACKMEDIACONFIG, PROJECTWINCATALOG, PROJECTCATALOG} = JSON.parse(fileConfig) | 126 | + const { BACKMEDIACONFIG, PROJECTWINCATALOG, PROJECTCATALOG } = JSON.parse(fileConfig) |
127 | let mediaDir = PROJECTCATALOG + "/media/" | 127 | let mediaDir = PROJECTCATALOG + "/media/" |
128 | let classDir = PROJECTCATALOG + "/media/" + siteId | 128 | let classDir = PROJECTCATALOG + "/media/" + siteId |
129 | let ymdDir = PROJECTCATALOG + "/media/" + siteId + "/" + dayTimeYMD().ymd | 129 | let ymdDir = PROJECTCATALOG + "/media/" + siteId + "/" + dayTimeYMD().ymd |
@@ -140,73 +140,73 @@ class MediaCreat { | @@ -140,73 +140,73 @@ class MediaCreat { | ||
140 | // export DISPLAY=:7 | 140 | // export DISPLAY=:7 |
141 | // let url = `${path.resolve(__dirname, PROJECTWINCATALOG+"/web_capture_c")} -o=${ymdDir}/${id}.mp4 -u="${BACKMEDIACONFIG.url}?classId=${id}&recordMp4=${BACKMEDIACONFIG.recordMp4}&userId=${BACKMEDIACONFIG.userId}&userName=${BACKMEDIACONFIG.userName}&userRole=${BACKMEDIACONFIG.userRole}&portalIP=${BACKMEDIACONFIG.portalIP}&portalPort=${BACKMEDIACONFIG.portalPort}&channels=${BACKMEDIACONFIG.channels}&playRecord=${BACKMEDIACONFIG.playRecord}" -d=${BACKMEDIACONFIG.d} -s=${BACKMEDIACONFIG.s} -fa=${BACKMEDIACONFIG.fa} -k=${BACKMEDIACONFIG.k} -w=${BACKMEDIACONFIG.w} -h=${BACKMEDIACONFIG.h}` | 141 | // let url = `${path.resolve(__dirname, PROJECTWINCATALOG+"/web_capture_c")} -o=${ymdDir}/${id}.mp4 -u="${BACKMEDIACONFIG.url}?classId=${id}&recordMp4=${BACKMEDIACONFIG.recordMp4}&userId=${BACKMEDIACONFIG.userId}&userName=${BACKMEDIACONFIG.userName}&userRole=${BACKMEDIACONFIG.userRole}&portalIP=${BACKMEDIACONFIG.portalIP}&portalPort=${BACKMEDIACONFIG.portalPort}&channels=${BACKMEDIACONFIG.channels}&playRecord=${BACKMEDIACONFIG.playRecord}" -d=${BACKMEDIACONFIG.d} -s=${BACKMEDIACONFIG.s} -fa=${BACKMEDIACONFIG.fa} -k=${BACKMEDIACONFIG.k} -w=${BACKMEDIACONFIG.w} -h=${BACKMEDIACONFIG.h}` |
142 | // console.log("url", url) | 142 | // console.log("url", url) |
143 | - let url = `${PROJECTWINCATALOG}/web_capture_c -o=${ymdDir}/${id}.mp4 -u="${BACKMEDIACONFIG.url}?classId=${id}&recordMp4=${BACKMEDIACONFIG.recordMp4}&userId=${BACKMEDIACONFIG.userId}&userName=${BACKMEDIACONFIG.userName}&userRole=${BACKMEDIACONFIG.userRole}&portalIP=${BACKMEDIACONFIG.portalIP}&portalPort=${BACKMEDIACONFIG.portalPort}&channels=${BACKMEDIACONFIG.channels}&playRecord=${BACKMEDIACONFIG.playRecord}" -d=${BACKMEDIACONFIG.d} -s=${BACKMEDIACONFIG.s} -fa=${BACKMEDIACONFIG.fa} -k=${BACKMEDIACONFIG.k} -w=${BACKMEDIACONFIG.w} -h=${BACKMEDIACONFIG.h} -k=0` | 143 | + let url = `${PROJECTWINCATALOG}/web_capture_c -o=${ymdDir}/${id}.mp4 -u="${BACKMEDIACONFIG.url}?classId=${id}&recordMp4=${BACKMEDIACONFIG.recordMp4}&userId=${BACKMEDIACONFIG.userId}&userName=${BACKMEDIACONFIG.userName}&userRole=${BACKMEDIACONFIG.userRole}&portalIP=${BACKMEDIACONFIG.portalIP}&portalPort=${BACKMEDIACONFIG.portalPort}&channels=${BACKMEDIACONFIG.channels}&playRecord=${BACKMEDIACONFIG.playRecord}&language=zh-cn" -d=${BACKMEDIACONFIG.d} -s=${BACKMEDIACONFIG.s} -fa=${BACKMEDIACONFIG.fa} -k=${BACKMEDIACONFIG.k} -w=${BACKMEDIACONFIG.w} -h=${BACKMEDIACONFIG.h}` |
144 | // console.log("url", url) | 144 | // console.log("url", url) |
145 | // console.log("PROJECTWINCATALOG", PROJECTWINCATALOG) | 145 | // console.log("PROJECTWINCATALOG", PROJECTWINCATALOG) |
146 | - exec(url, {maxBuffer:1073741824},(err, stdout, stderr) => { | 146 | + exec(url, { maxBuffer: 1073741824 }, (err, stdout, stderr) => { |
147 | // setTimeout(()=>{ | 147 | // setTimeout(()=>{ |
148 | - if (err != null) { | ||
149 | - this.wrieLog(" 错误" + id +":" + err) | ||
150 | - this.wrieLog(" 错误 stdout" + id +":" + stdout) | ||
151 | - this.wrieLog(" 错误 stderr" + id +":" + stderr) | ||
152 | - // if (files.indexOf(id + ".mp4") == -1) { | ||
153 | - // // //当前课堂没有写入到文件夹,进入重录 | ||
154 | - // this.wrieLog(" 课堂录制未发现该" + id + "课堂号") | ||
155 | - // this.recordingCreat(id, siteId) | ||
156 | - // // return false | ||
157 | - // } | ||
158 | - // if (classid.length) { | ||
159 | - // setTimeout(()=>{ | ||
160 | - // let shiftData = classid.shift() | ||
161 | - // this.wrieLog(" 录制下一节课 课堂号:" + shiftData['classId']) | ||
162 | - // this.recordingCreat(shiftData['classId'], shiftData['siteId']) | ||
163 | - // },20000) | ||
164 | - // // clearInterval(interValGetFile) | ||
165 | - // } | ||
166 | - return | ||
167 | - } | ||
168 | - let files = fs.readdirSync(ymdDir); | ||
169 | - // let interValGetFile = setInterval(()=>{ | ||
170 | - if (files.indexOf(id + ".mp4") == -1) { | ||
171 | - this.wrieLog(" 课堂录制未发现该" + id + "课堂号") | ||
172 | - }else{ | ||
173 | - if (classid.length) { | ||
174 | - setTimeout(()=>{ | ||
175 | - let shiftData = classid.shift() | ||
176 | - this.wrieLog(" 录制下一节课 课堂号:" + shiftData['classId']) | ||
177 | - this.recordingCreat(shiftData['classId'], shiftData['siteId']) | ||
178 | - },60*1000*5) | ||
179 | - // clearInterval(interValGetFile) | ||
180 | - }else{ | ||
181 | - this.wrieLog("录制结束:------>") | ||
182 | - fs.writeFile(ymdDir + "/download.json", `{ "code": "0", "success": "ok"}`, function (err) { | ||
183 | - if (err) { | ||
184 | - console.log(err); | ||
185 | - } | ||
186 | - }); | ||
187 | - // clearInterval(interValGetFile) | ||
188 | - } | ||
189 | - } | ||
190 | - // },3000) | 148 | + if (err != null) { |
149 | + this.wrieLog(" 错误" + id + ":" + err) | ||
150 | + this.wrieLog(" 错误 stdout" + id + ":" + stdout) | ||
151 | + this.wrieLog(" 错误 stderr" + id + ":" + stderr) | ||
191 | // if (files.indexOf(id + ".mp4") == -1) { | 152 | // if (files.indexOf(id + ".mp4") == -1) { |
192 | // // //当前课堂没有写入到文件夹,进入重录 | 153 | // // //当前课堂没有写入到文件夹,进入重录 |
193 | // this.wrieLog(" 课堂录制未发现该" + id + "课堂号") | 154 | // this.wrieLog(" 课堂录制未发现该" + id + "课堂号") |
194 | // this.recordingCreat(id, siteId) | 155 | // this.recordingCreat(id, siteId) |
195 | // // return false | 156 | // // return false |
196 | - // } else { | ||
197 | - // if (classid.length) { | 157 | + // } |
158 | + // if (classid.length) { | ||
159 | + // setTimeout(()=>{ | ||
198 | // let shiftData = classid.shift() | 160 | // let shiftData = classid.shift() |
199 | // this.wrieLog(" 录制下一节课 课堂号:" + shiftData['classId']) | 161 | // this.wrieLog(" 录制下一节课 课堂号:" + shiftData['classId']) |
200 | // this.recordingCreat(shiftData['classId'], shiftData['siteId']) | 162 | // this.recordingCreat(shiftData['classId'], shiftData['siteId']) |
201 | - // } else { | ||
202 | - // this.wrieLog("录制结束:------>") | ||
203 | - // fs.writeFile(ymdDir + "/download.json", `{ "code": "0", "success": "ok"}`, function (err) { | ||
204 | - // if (err) { | ||
205 | - // console.log(err); | ||
206 | - // } | ||
207 | - // }); | ||
208 | - // } | 163 | + // },20000) |
164 | + // // clearInterval(interValGetFile) | ||
209 | // } | 165 | // } |
166 | + return | ||
167 | + } | ||
168 | + let files = fs.readdirSync(ymdDir); | ||
169 | + // let interValGetFile = setInterval(()=>{ | ||
170 | + if (files.indexOf(id + ".mp4") == -1) { | ||
171 | + this.wrieLog(" 课堂录制未发现该" + id + "课堂号") | ||
172 | + } else { | ||
173 | + if (classid.length) { | ||
174 | + setTimeout(() => { | ||
175 | + let shiftData = classid.shift() | ||
176 | + this.wrieLog(" 录制下一节课 课堂号:" + shiftData['classId']) | ||
177 | + this.recordingCreat(shiftData['classId'], shiftData['siteId']) | ||
178 | + }, 60 * 1000 * 5) | ||
179 | + // clearInterval(interValGetFile) | ||
180 | + } else { | ||
181 | + this.wrieLog("录制结束:------>") | ||
182 | + fs.writeFile(ymdDir + "/download.json", `{ "code": "0", "success": "ok"}`, function (err) { | ||
183 | + if (err) { | ||
184 | + console.log(err); | ||
185 | + } | ||
186 | + }); | ||
187 | + // clearInterval(interValGetFile) | ||
188 | + } | ||
189 | + } | ||
190 | + // },3000) | ||
191 | + // if (files.indexOf(id + ".mp4") == -1) { | ||
192 | + // // //当前课堂没有写入到文件夹,进入重录 | ||
193 | + // this.wrieLog(" 课堂录制未发现该" + id + "课堂号") | ||
194 | + // this.recordingCreat(id, siteId) | ||
195 | + // // return false | ||
196 | + // } else { | ||
197 | + // if (classid.length) { | ||
198 | + // let shiftData = classid.shift() | ||
199 | + // this.wrieLog(" 录制下一节课 课堂号:" + shiftData['classId']) | ||
200 | + // this.recordingCreat(shiftData['classId'], shiftData['siteId']) | ||
201 | + // } else { | ||
202 | + // this.wrieLog("录制结束:------>") | ||
203 | + // fs.writeFile(ymdDir + "/download.json", `{ "code": "0", "success": "ok"}`, function (err) { | ||
204 | + // if (err) { | ||
205 | + // console.log(err); | ||
206 | + // } | ||
207 | + // }); | ||
208 | + // } | ||
209 | + // } | ||
210 | // },20000) | 210 | // },20000) |
211 | }) | 211 | }) |
212 | // console.log("/web_capture_c",path.resolve(__dirname, PROJECTWINCATALOG+"./web_capture_c")) | 212 | // console.log("/web_capture_c",path.resolve(__dirname, PROJECTWINCATALOG+"./web_capture_c")) |
@@ -267,18 +267,18 @@ class MediaCreat { | @@ -267,18 +267,18 @@ class MediaCreat { | ||
267 | router.get('/', async function (req, res, next) { | 267 | router.get('/', async function (req, res, next) { |
268 | if (classid.length > 0) { | 268 | if (classid.length > 0) { |
269 | // 有正在录制中的课堂,禁止重复 | 269 | // 有正在录制中的课堂,禁止重复 |
270 | - res.send({code: "1", message: "有正在录制中的课堂", data: classid}); | 270 | + res.send({ code: "1", message: "有正在录制中的课堂", data: classid }); |
271 | return | 271 | return |
272 | } | 272 | } |
273 | new MediaCreat().wrieLog("脚本录制开始:------>") | 273 | new MediaCreat().wrieLog("脚本录制开始:------>") |
274 | let fileConfig = new MediaCreat().getConfigFileJson() | 274 | let fileConfig = new MediaCreat().getConfigFileJson() |
275 | if (!fileConfig) return false | 275 | if (!fileConfig) return false |
276 | 276 | ||
277 | - const {GETCLASSURLPARAMETER} = JSON.parse(fileConfig) | 277 | + const { GETCLASSURLPARAMETER } = JSON.parse(fileConfig) |
278 | siteIds = GETCLASSURLPARAMETER.siteId | 278 | siteIds = GETCLASSURLPARAMETER.siteId |
279 | - if(siteIds.length == 0){ | 279 | + if (siteIds.length == 0) { |
280 | new MediaCreat().wrieLog("脚本录制,未配置siteId:------>" + siteIds) | 280 | new MediaCreat().wrieLog("脚本录制,未配置siteId:------>" + siteIds) |
281 | - res.send({code: "1",message:"未配置siteId",data:siteIds}); | 281 | + res.send({ code: "1", message: "未配置siteId", data: siteIds }); |
282 | return | 282 | return |
283 | } | 283 | } |
284 | let result = await new MediaCreat().allData() | 284 | let result = await new MediaCreat().allData() |
@@ -300,12 +300,12 @@ router.get('/', async function (req, res, next) { | @@ -300,12 +300,12 @@ router.get('/', async function (req, res, next) { | ||
300 | return false | 300 | return false |
301 | } | 301 | } |
302 | } | 302 | } |
303 | - res.send({code: "0"}); | 303 | + res.send({ code: "0" }); |
304 | } else { | 304 | } else { |
305 | - res.send({code: "1", message: "无录制数据"}); | 305 | + res.send({ code: "1", message: "无录制数据" }); |
306 | } | 306 | } |
307 | - }else { | ||
308 | - res.send({code: "1", message: "无录制数据"}); | 307 | + } else { |
308 | + res.send({ code: "1", message: "无录制数据" }); | ||
309 | } | 309 | } |
310 | }); | 310 | }); |
311 | 311 | ||
@@ -318,10 +318,10 @@ router.post('/recording', async function (req, res, next) { | @@ -318,10 +318,10 @@ router.post('/recording', async function (req, res, next) { | ||
318 | new MediaCreat().wrieLog("录制启动:------>") | 318 | new MediaCreat().wrieLog("录制启动:------>") |
319 | let fileConfig = new MediaCreat().getConfigFileJson() | 319 | let fileConfig = new MediaCreat().getConfigFileJson() |
320 | if (!fileConfig) return false | 320 | if (!fileConfig) return false |
321 | - let {classId, maxMedia} = req.body | 321 | + let { classId, maxMedia } = req.body |
322 | if (classid.length > 0) { | 322 | if (classid.length > 0) { |
323 | // 有正在录制中的课堂,禁止重复 | 323 | // 有正在录制中的课堂,禁止重复 |
324 | - res.send({code: "1", message: "有正在录制中的课堂", data: classid}); | 324 | + res.send({ code: "1", message: "有正在录制中的课堂", data: classid }); |
325 | return | 325 | return |
326 | } | 326 | } |
327 | if (classId && classId.length) { | 327 | if (classId && classId.length) { |
@@ -338,9 +338,9 @@ router.post('/recording', async function (req, res, next) { | @@ -338,9 +338,9 @@ router.post('/recording', async function (req, res, next) { | ||
338 | return false | 338 | return false |
339 | } | 339 | } |
340 | } | 340 | } |
341 | - res.send({code: "0"}); | 341 | + res.send({ code: "0" }); |
342 | } else { | 342 | } else { |
343 | - res.send({code: "1", message: "无录制数据"}); | 343 | + res.send({ code: "1", message: "无录制数据" }); |
344 | } | 344 | } |
345 | 345 | ||
346 | }) | 346 | }) |
-
请 注册 或 登录 后发表评论