|
1 | 1 | // start test:
|
2 | 2 | var getOder = require('../models/random')
|
3 | 3 | var fs = require('fs')
|
4 |
| -var video_order =[]; |
5 |
| -var survey = []; |
6 |
| -var result = []; |
7 |
| -var count = 1; |
8 |
| -var timeoutObj; |
9 | 4 | var video_url = "https://github.com/eastOffice/QoEProject/raw/master/videos/";
|
10 | 5 |
|
11 |
| -var post_start = async (ctx, next) => { |
12 |
| - console.log(count); |
13 |
| - if(count != 1) { |
14 | 6 |
|
15 |
| - ctx.render('wait.html', { |
16 |
| - title:'Please wait' |
17 |
| - }); |
18 |
| - } |
19 |
| - else { |
20 |
| - timeoutObj = setTimeout(function() { |
21 |
| - count = 1; |
22 |
| - console.log('Time out, reset web page!'); |
23 |
| - }, 600000); |
24 |
| - // may be set a timer here |
25 |
| - // best sol is to use multi-process |
26 |
| - var mturkID = ctx.request.body.MTurkID; |
27 |
| - var device = ctx.request.body.device; |
28 |
| - var age = ctx.request.body.age; |
29 |
| - console.log(mturkID, device, age); |
| 7 | +var post_start = async (ctx, next) => { |
| 8 | + var mturkID = ctx.request.body.MTurkID; |
| 9 | + var device = ctx.request.body.device; |
| 10 | + var age = ctx.request.body.age; |
| 11 | + var video_order = getOder(1,13); |
| 12 | + console.log(mturkID, device, age); |
| 13 | + var start = new Date().getTime(); |
30 | 14 |
|
31 |
| - survey.push(mturkID, device, age); |
| 15 | + let user = { |
| 16 | + mturkID : mturkID, |
| 17 | + device : device, |
| 18 | + age : age, |
| 19 | + video_order : video_order, |
| 20 | + count : 1, |
| 21 | + result : [], |
| 22 | + time :[], |
| 23 | + start: start |
| 24 | + }; |
| 25 | + let value = Buffer.from(JSON.stringify(user)).toString('base64'); |
| 26 | + ctx.cookies.set('name', value); |
| 27 | + var video_src = video_url + video_order[0] + ".mp4"; |
| 28 | + // https://github.com/michaelliao/learn-javascript/raw/master/video/vscode-nodejs.mp4 |
| 29 | + // very interesting url! |
32 | 30 |
|
33 |
| - // var video_src = "../videos/" + video_order[0] + ".mp4"; |
34 |
| - //var video_src = "./videos/" + "xuefeng" + ".mp4"; |
35 |
| - video_order = getOder(1,13); |
36 |
| - var video_src = video_url + video_order[0] + ".mp4"; |
37 |
| - // https://github.com/michaelliao/learn-javascript/raw/master/video/vscode-nodejs.mp4 |
38 |
| - // very interesting url! |
39 |
| - //console.log(video_src); |
40 | 31 |
|
41 |
| - ctx.render('video.html', { |
42 |
| - title: '1/13', video_src : video_src |
43 |
| - }); |
44 |
| - } |
| 32 | + ctx.render('video.html', { |
| 33 | + title: '1/13', video_src : video_src |
| 34 | + }); |
45 | 35 | }
|
46 | 36 |
|
47 | 37 | var post_grade= async (ctx, next) => {
|
48 |
| - var title = count + "/13"; |
| 38 | + var user = ctx.state.user; |
| 39 | + var title = user.count + "/13"; |
49 | 40 | ctx.render('grade.html', {
|
50 |
| - title: title, count: count |
| 41 | + title: title, count: user.count |
51 | 42 | });
|
52 | 43 | }
|
53 | 44 |
|
54 | 45 |
|
55 | 46 | var post_back2video = async (ctx, next) => {
|
56 |
| - //var video_order = require('./start.js').video_order; |
57 |
| - var video_src = video_url + video_order[count - 1] + ".mp4"; |
58 |
| - var title = count +"/13"; |
| 47 | + var user = ctx.state.user; |
| 48 | + var video_src = video_url + user.video_order[user.count - 1] + ".mp4"; |
| 49 | + var title = user.count +"/13"; |
59 | 50 | ctx.render('video.html', {
|
60 | 51 | title: title, video_src: video_src
|
61 | 52 | });
|
62 | 53 | }
|
63 | 54 | var post_next = async (ctx, next) => {
|
64 |
| - //var video_order = require('./start.js').video_order; |
65 |
| - //var result = require('./start.js').result; |
| 55 | + var user = ctx.state.user; |
66 | 56 | var grade = ctx.request.body.sentiment;
|
67 |
| - result.push(grade); |
68 |
| - if(count < 13) { |
69 |
| - var video_src = video_url + video_order[count] + ".mp4"; |
70 |
| - count = count + 1; |
71 |
| - var title = count +"/13"; |
| 57 | + user.result.push(grade); |
| 58 | + var end = new Date().getTime(); |
| 59 | + var exe_time = end - user.start; |
| 60 | + user.time.push(exe_time); |
| 61 | + user.start = end; |
| 62 | + if(user.count < 13) { |
| 63 | + var video_src = video_url + user.video_order[user.count] + ".mp4"; |
| 64 | + user.count = user.count + 1; |
| 65 | + var title = user.count +"/13"; |
72 | 66 |
|
| 67 | + // set new cookie |
| 68 | + let value = Buffer.from(JSON.stringify(user)).toString('base64'); |
| 69 | + ctx.cookies.set('name', value); |
73 | 70 | ctx.render('video.html', {
|
74 | 71 | title: title, video_src: video_src
|
75 | 72 | });
|
76 | 73 | }
|
77 | 74 | else {
|
78 |
| - console.log(result); |
79 |
| - var filename = "./results/" + survey[0] + ".txt"; |
| 75 | + console.log(user.result); |
| 76 | + var filename = "./results/" + user.mturkID + ".txt"; |
80 | 77 | var write_data = [];
|
81 |
| - for(var i in video_order) { |
82 |
| - write_data[video_order[i] - 1] = result[i]; |
| 78 | + var write_time = []; |
| 79 | + for(var i in user.video_order) { |
| 80 | + write_data[user.video_order[i] - 1] = user.result[i]; |
| 81 | + write_time[user.video_order[i] - 1] = user.time[i]; |
83 | 82 | }
|
84 |
| - fs.writeFile(filename, survey + '\n' + write_data , function(err) { |
| 83 | + fs.writeFile(filename, write_data + '\n'+ write_time + '\n' + user.mturkID + '\n' + user.device + '\n' + user.age , function(err) { |
85 | 84 | if(err) {
|
86 | 85 | return console.log(err);
|
87 | 86 | }
|
88 | 87 | });
|
89 |
| - // re initialize |
90 |
| - count = 1; |
91 |
| - result =[]; |
92 |
| - survey =[]; |
93 |
| - video_order =[]; |
94 |
| - clearTimeout(timeoutObj); |
| 88 | + // clear cookie |
| 89 | + ctx.cookies.set('name',''); |
95 | 90 |
|
96 | 91 | var return_code = "0lMq2GKqLDSUgYAGc=";
|
97 | 92 | ctx.render('ending.html', {
|
|
0 commit comments