Advertisement
Guest User

Untitled

a guest
Feb 21st, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.85 KB | None | 0 0
  1. var MongoClient = require('mongodb').MongoClient;
  2. MongoClient.connect(process.env.DATABASE_URI, function(err, db) {
  3. if (err) {
  4. response.error(err);
  5. return;
  6. }
  7.  
  8. var CountriesCollection = db.collection("Pais");
  9. CountriesCollection.find({}, {
  10. "code_tatoeba": 1,
  11. "idioma": 1,
  12. "bandera_file": 1
  13. }).toArray(function(error, countries) {
  14.  
  15. var PortugueseCountries = [],
  16. ItalianCountries = [],
  17. SpanishCountries = [],
  18. FrenchCountries = [],
  19. EnglishCountries = [],
  20. RussianCountries = [],
  21. GermanCountries = [];
  22.  
  23. for (var i = 0; i < countries.length; i++) {
  24. switch (countries[i].idioma) {
  25. case "Português":
  26. PortugueseCountries.push("Pais$" + countries[i]._id);
  27. break;
  28. case "Italiano":
  29. ItalianCountries.push("Pais$" + countries[i]._id);
  30. break;
  31. case "Español":
  32. SpanishCountries.push("Pais$" + countries[i]._id);
  33. break;
  34. case "Français":
  35. FrenchCountries.push("Pais$" + countries[i]._id);
  36. break;
  37. case "Pусский":
  38. RussianCountries.push("Pais$" + countries[i]._id);
  39. break;
  40. case "Deutsch":
  41. GermanCountries.push("Pais$" + countries[i]._id);
  42. break;
  43. case "English":
  44. EnglishCountries.push("Pais$" + countries[i]._id);
  45. break;
  46.  
  47. }
  48. }
  49.  
  50. var AudiosCollection = db.collection("Audios");
  51. AudiosCollection.count({
  52. "_p_pais": {
  53. $in: PortugueseCountries
  54. }
  55. }, function(error, countPortugueseAudios) {
  56. var limitPortuguese = 2;
  57. var skipPortuguese = getSkipCountryCount(countPortugueseAudios, limitPortuguese);
  58. var queries = generateQueryForAudiosRecommendation(PortugueseCountries, limitPortuguese, skipPortuguese);
  59. AudiosCollection.find(queries[0], queries[1]).toArray(function(error, PortugueseAudios) {
  60.  
  61. AudiosCollection.count({
  62. "_p_pais": {
  63. $in: ItalianCountries
  64. }
  65. }, function(error, countItalianAudios) {
  66. var limitItalian = 1;
  67. var skipItalian = getSkipCountryCount(countItalianAudios, limitItalian);
  68. queries = generateQueryForAudiosRecommendation(ItalianCountries, limitItalian, skipItalian);
  69. AudiosCollection.find(queries[0], queries[1]).toArray(function(error, ItalianAudios) {
  70.  
  71. AudiosCollection.count({
  72. "_p_pais": {
  73. $in: SpanishCountries
  74. }
  75. }, function(error, countSpanishAudios) {
  76. var limitSpanish = 3;
  77. var skipSpanish = getSkipCountryCount(countSpanishAudios, limitSpanish);
  78. queries = generateQueryForAudiosRecommendation(SpanishCountries, limitSpanish, skipSpanish);
  79. AudiosCollection.find(queries[0], queries[1]).toArray(function(error, SpanishAudios) {
  80.  
  81. AudiosCollection.count({
  82. "_p_pais": {
  83. $in: FrenchCountries
  84. }
  85. }, function(error, countFrenchAudios) {
  86. var limitFrench = 3;
  87. var skipFrench = getSkipCountryCount(countFrenchAudios, limitFrench);
  88. queries = generateQueryForAudiosRecommendation(FrenchCountries, limitFrench, skipFrench);
  89. AudiosCollection.find(queries[0], queries[1]).toArray(function(error, FrenchAudios) {
  90.  
  91. AudiosCollection.count({
  92. "_p_pais": {
  93. $in: RussianCountries
  94. }
  95. }, function(error, countRussianAudios) {
  96. var limitRussian = 1;
  97. var skipRussian = getSkipCountryCount(countRussianAudios, limitRussian);
  98. queries = generateQueryForAudiosRecommendation(RussianCountries, limitRussian, skipRussian);
  99. AudiosCollection.find(queries[0], queries[1]).toArray(function(error, RussianAudios) {
  100.  
  101. AudiosCollection.count({
  102. "_p_pais": {
  103. $in: GermanCountries
  104. }
  105. }, function(error, countGermanAudios) {
  106. var limitGerman = 2;
  107. var skipGerman = getSkipCountryCount(countGermanAudios, limitGerman);
  108. queries = generateQueryForAudiosRecommendation(GermanCountries, limitGerman, skipGerman);
  109. AudiosCollection.find(queries[0], queries[1]).toArray(function(error, GermanAudios) {
  110.  
  111. AudiosCollection.count({
  112. "_p_pais": {
  113. $in: EnglishCountries
  114. }
  115. }, function(error, countEnglishAudios) {
  116. var limitEnglish = 3;
  117. var skipEnglish = getSkipCountryCount(countEnglishAudios, limitEnglish);
  118. queries = generateQueryForAudiosRecommendation(EnglishCountries, limitEnglish, skipEnglish);
  119. AudiosCollection.find(queries[0], queries[1]).toArray(function(error, EnglishAudios) {
  120.  
  121. var audios = [];
  122. PortugueseAudios.forEach(function(audio) {
  123. audios.push(audio);
  124. });
  125. ItalianAudios.forEach(function(audio) {
  126. audios.push(audio);
  127. });
  128. SpanishAudios.forEach(function(audio) {
  129. audios.push(audio);
  130. });
  131. FrenchAudios.forEach(function(audio) {
  132. audios.push(audio);
  133. });
  134. RussianAudios.forEach(function(audio) {
  135. audios.push(audio);
  136. });
  137. GermanAudios.forEach(function(audio) {
  138. audios.push(audio);
  139. });
  140. EnglishAudios.forEach(function(audio) {
  141. audios.push(audio);
  142. });
  143.  
  144. for (var i = 0; i < audios.length; i++) {
  145. for (var j = 0; j < countries.length; j++) {
  146. if ("Pais$" + countries[j]._id == audios[i]._p_pais) {
  147. audios[i].image = process.env.filesPath + countries[j].bandera_file;
  148. audios[i].word = audios[i].palabra;
  149. delete audios[i]._p_pais;
  150. delete audios[i].palabra;
  151.  
  152. j = countries.length;
  153. }
  154. }
  155. }
  156.  
  157. response.success(shuffle(audios));
  158. });
  159. });
  160. });
  161. });
  162. });
  163. });
  164. });
  165. });
  166. });
  167. });
  168. });
  169. });
  170. });
  171. });
  172. });
  173. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement