29 this.get('/documents/:id/transcript', ({transcripts}, request) => { |
29 this.get('/documents/:id/transcript', ({transcripts}, request) => { |
30 let id = decodeURIComponent(decodeURIComponent(request.params.id)); |
30 let id = decodeURIComponent(decodeURIComponent(request.params.id)); |
31 return transcripts.find(id).transcript; |
31 return transcripts.find(id).transcript; |
32 }); |
32 }); |
33 |
33 |
34 this.get('/stats/languages', 'languages'); |
34 this.get('/stats/languages', ({languages}, request) => { |
|
35 let qParams = request.queryParams['discourse']; |
|
36 if(qParams) { |
|
37 var res = []; |
|
38 let allLanguages = languages.all().models; |
|
39 let i=0; |
|
40 while(i<allLanguages.length && res.length < (allLanguages.length/Math.pow(2,qParams.length))) { |
|
41 let d = allLanguages[i++]; |
|
42 d.count = Math.max(Math.floor(d.count / 2), 1); |
|
43 res.push(d); |
|
44 } |
|
45 |
|
46 return new Collection('language', res); |
|
47 } else { |
|
48 return languages.all(); |
|
49 } |
|
50 |
|
51 }); |
35 |
52 |
36 this.get('/stats/geostats', 'geostats'); |
53 this.get('/stats/geostats', 'geostats'); |
37 |
54 |
38 this.get('/stats/themes', 'themes'); |
55 this.get('/stats/themes', 'themes'); |
39 |
56 |
40 this.get('/stats/discourses', ({discourses}, request) => { |
57 this.get('/stats/discourses', ({discourses}, request) => { |
41 console.log("DISCOURSES", request.queryParams, discourses.all(), discourses.all().models); |
|
42 |
58 |
43 if(request.queryParams['discourse']) { |
59 let qParams = request.queryParams['discourse']; |
|
60 if(qParams) { |
44 var res = []; |
61 var res = []; |
45 request.queryParams.discourse.forEach( did => { |
|
46 let d = discourses.find(did); |
|
47 if(d) { |
|
48 res.push(d); |
|
49 } |
|
50 }); |
|
51 let allDiscourses = discourses.all().models; |
62 let allDiscourses = discourses.all().models; |
52 let i=0; |
63 let i=0; |
53 while(i<allDiscourses.length && res.length < (allDiscourses.length/2)) { |
64 while(i<allDiscourses.length && res.length < (allDiscourses.length/Math.pow(2,qParams.length))) { |
54 let d = allDiscourses[i++]; |
65 let d = allDiscourses[i++]; |
55 if(!_.contains(request.queryParams.discourse, d.id)) { |
66 if(!_.contains(request.queryParams.discourse, d.id)) { |
56 d.count = Math.floor(d.count / 2); |
67 d.count = Math.max(Math.floor(d.count / 2), 1); |
57 res.push(d); |
68 res.push(d); |
58 } |
69 } |
59 } |
70 } |
60 console.log("DISCOURSES", request.queryParams, { modelName: "discourse", models: res }); |
71 |
61 //return discourses.all(); |
|
62 return new Collection('discourse', res); |
72 return new Collection('discourse', res); |
63 } else { |
73 } else { |
64 return discourses.all(); |
74 return discourses.all(); |
65 } |
75 } |
66 }); |
76 }); |