IU Available Courses Grabber

A script to get the information of classes on IU system

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         IU Available Courses Grabber
// @namespace    http://tampermonkey.net/
// @version      0.3
// @description  A script to get the information of classes on IU system
// @author       You
// @include https://eduportal.iu.edu.sa/iu/ui/student/homeIndex.faces
// @include https://eduportal.iu.edu.sa/iu/ui/student/*/*/*
// @include http://eduportal.iu.edu.sa/iu/ui/student/*
// @include https://eduportal.iu.edu.sa/iu/ui/student/student_schedule/index/studentScheduleIndex.faces
// @icon         https://www.google.com/s2/favicons?sz=64&domain=edu.sa
// @require            https://openuserjs.org/src/libs/sizzle/GM_config.js
// @grant              GM_getValue
// @grant              GM_setValue
// @license Mozilla Public License 2.0 
// ==/UserScript==
/* globals $, GM_config */

(function() {
    'use strict';
    var rows = document.getElementById("myForm:offeredCoursesTable").getElementsByTagName("tbody")[0];
    var sections = [];
    for (var course of rows.getElementsByTagName("tr")) {
        var section_items = course.children;
        var section_course = section_items.item(1).innerText;
        var section_number = section_items.item(2).innerText;
        var section_type = section_items.item(3).innerText; // "نظري او عملي"
        var section_credit = section_items.item(4).innerText;
        var section_availability = section_items.item(5).firstChild.innerText; // "مفتوحة او مغلقة"
        var section_details = section_items.item(6).firstChild.children; // inside an anchor element
        var section_instructor = section_details.item(0).value;
        var section_times = section_details.item(1).value;
        var section = {section_number:section_number, section_course:section_course, section_type:section_type, section_credit:section_credit,
                       section_availability:section_availability, section_times:section_times, section_instructor:section_instructor}
        sections.push(section);
    }
    const string = JSON.stringify(sections);
    console.log(string);
})();