Advertisement
Guest User

Untitled

a guest
Sep 30th, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.57 KB | None | 0 0
  1. var request = require('request');
  2. var querystring = require('querystring');
  3. var cheerio = require('cheerio');
  4. var courses = [];
  5. var async = require('async');
  6. var form = {
  7. username: '3500190',
  8. password: '1093866620'
  9. };
  10.  
  11. var formData = querystring.stringify(form);
  12. var contentLength = formData.length;
  13. var cookieJar = request.jar();
  14. var name ='';
  15. var Total_Absence = '';
  16. var myUrls=[];
  17. var obj ={}; //important
  18. var objects = [];
  19.  
  20. var student ={
  21. name:'',
  22. courses:[],
  23. links:[]
  24. };
  25.  
  26. exports.handler = function() {
  27. async.waterfall([
  28. function(callback) {
  29. request({
  30. headers: {
  31. 'Content-Length': contentLength,
  32. 'Content-Type': 'application/x-www-form-urlencoded'
  33. },
  34. followAllRedirects: true,
  35. uri: 'http://lms.yic.edu.sa/moodle/login/',
  36. body: formData,
  37. method: 'POST',
  38. jar: cookieJar
  39. },
  40. function (err, res, body) {
  41. if(err) {
  42. console.log(err);
  43. callback(true);
  44. return;
  45. }
  46. console.log('first api');
  47. $ = cheerio.load(body);
  48. $('h4','#region-main').each(function(){
  49. var course = this.children[0].data;
  50. student.courses.push(course);
  51. var url = this.parent.parent.children[1].children[0].children[0].children[0].children[1].children[0].attribs.href+'&tab=attendance&att_week=1';
  52. student.links.push(url);
  53. });//end of each course loop
  54. name = $('a.dropdown-toggle','#essentialnavbar').text();
  55. student.name = name;
  56. return callback(false, student); //callback(err,data);
  57. }); //end of request
  58. },
  59. function(argv1,callback) {
  60. for (i in argv1.links) {
  61. request({uri:argv1.links[i],
  62. jar: cookieJar,
  63. followAllRedirects: true,
  64. method: 'GET'},(err,res,body)=>{
  65. console.log('second api');
  66. if(err) {console.log(err);callback(true);return; }
  67. $ = cheerio.load(body);
  68. var course = $('#page-navbar').find('span');
  69. var courseName =course[5].children[0].children[0].children[0].data
  70. $('tr','#region-main').each(function(){
  71. Total_Absence=this.children[3].children[0].data;
  72. if(Total_Absence!=null){
  73. if(Total_Absence.indexOf('Hours')!=-1){
  74. for (var i=0; i < argv1.courses.length; i++) {
  75. if (argv1.courses[i].includes(courseName.split(' ').slice(0,1))) {
  76. obj = [argv1.courses[i],Total_Absence];
  77. objects.push(obj);
  78. //This is the most important obj in class
  79. }
  80. }
  81. }
  82. }
  83. });//end of each absence loop
  84. });//end of request loop
  85. }//end of links loop
  86. return callback(false, objects);
  87. }
  88. ],
  89. function (err, results) {
  90. if(err) { console.log(err); res.send(500,"Server Error"); return; }
  91. console.log({api1:results[0], api2:results[1]});
  92. }
  93. );
  94.  
  95.  
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement