示例#1
0
        public ActionResult <List <Course> > getCoursTable()
        {
            Console.WriteLine("getting CourseTable");
            JwCrawler.initAttributes();

            // 得到当前的http请求
            var    req           = HttpContext.Request;
            string tokenToDecode = req.Headers["Authorization"].ToString().Split(' ').Last();     // 获取token
            // 解码的token转化为json对象
            JObject token    = (JObject)JsonConvert.DeserializeObject(DecodeJwt.decode(tokenToDecode));
            string  token_id = token["sub"].ToString();     // 拿到id

            Console.WriteLine($"id frome token: {token_id}");

            // 根据id从数据库里面查询密码
            User query = db.users.FirstOrDefault(
                o => o.id == Convert.ToInt64(token_id)
                );

            // 调用爬虫
            JwCrawler.initAttributes();
            JwCrawler.login(query.id, getPwdEncrypted(query.portalpwd, JwCrawler.dynamicPwdEncryptSalt).Result);
            JwCrawler.loginJw();    // 登录教务
            List <Course> courses = CourseTableCrawler.crawlCourseTable();

            JwCrawler.logout();
            return(courses);
        }
        public ActionResult suspendNetwork()
        {
            JwCrawler.initAttributes();

            // 得到当前的http请求
            var    req           = HttpContext.Request;
            string tokenToDecode = req.Headers["Authorization"].ToString().Split(' ').Last();     // 获取token
            // 解码的token转化为json对象
            JObject token    = (JObject)JsonConvert.DeserializeObject(DecodeJwt.decode(tokenToDecode));
            string  token_id = token["sub"].ToString();     // 拿到id

            Console.WriteLine($"id frome token: {token_id}");

            // 根据id从数据库里面查询密码
            User query = db.users.FirstOrDefault(
                o => o.id == Convert.ToInt64(token_id)
                );

            // 调用爬虫
            JwCrawler.initAttributes();
            JwCrawler.login(query.id, getPwdEncrypted(query.portalpwd, JwCrawler.dynamicPwdEncryptSalt).Result);

            NetworkCrawler.CrawlNetorkStatus(query.id);
            NetworkCrawler.suspendNetwork(query.id);
            JwCrawler.logout();
            return(Ok());
        }
        public ActionResult <List <CourseScore> > getCourseScore()
        {
            Console.WriteLine("getting CourseScore");
            JwCrawler.initAttributes();

            // 得到当前的http请求
            var    req           = HttpContext.Request;
            string tokenToDecode = req.Headers["Authorization"].ToString().Split(' ').Last();     // 获取token
            // 解码的token转化为json对象
            JObject token    = (JObject)JsonConvert.DeserializeObject(DecodeJwt.decode(tokenToDecode));
            string  token_id = token["sub"].ToString();     // 拿到id

            Console.WriteLine($"id frome token: {token_id}");

            // 根据id从数据库里面查询密码
            User query = db.users.FirstOrDefault(
                o => o.id == Convert.ToInt64(token_id)
                );

            // 调用爬虫
            JwCrawler.initAttributes();
            JwCrawler.login(query.id, getPwdEncrypted(query.portalpwd, JwCrawler.dynamicPwdEncryptSalt).Result);
            JwCrawler.loginJw();
            List <CourseScore> score = CourseScoreCrawler.crawlCourseScore(Convert.ToInt64(token_id));

            JwCrawler.logout();
            // 成绩顺便保存到数据库中
            foreach (CourseScore s in score)
            {
                CourseScore sQuery = db.courseScore.Where(
                    o =>
                    o.courseid == s.courseid &&
                    o.userid == s.userid
                    ).FirstOrDefault();

                if (sQuery == null && s.score != -1)
                {
                    db.courseScore.Add(s);
                }
            }

            db.SaveChanges();
            return(score);
        }
示例#4
0
        public ActionResult <User> GetUserInfo()
        {
            Console.WriteLine("receive post request");
            User user;

            try {
                // 得到当前的http请求
                var    req           = HttpContext.Request;
                string tokenToDecode = req.Headers["Authorization"].ToString().Split(' ').Last();     // 获取token
                // 解码的token转化为json对象
                JObject token    = (JObject)JsonConvert.DeserializeObject(DecodeJwt.decode(tokenToDecode));
                string  token_id = token["sub"].ToString();     // 拿到id
                Console.WriteLine($"id frome token: {token_id}");

                // 根据id从数据库里面查询密码
                user = db.users.FirstOrDefault(
                    o => o.id == Convert.ToInt64(token_id)
                    );
            }
            catch (Exception e) {
                return(BadRequest(e.InnerException.Message));
            }
            return(user);
        }