useful 脚本——西华大学选课脚本

  |   0 评论   |   0 浏览

最近学校选课,由于选课有些麻烦,懒得自己去点,自己去蹲守,于是乎想到一个办法,写个脚本自动的去代替我点击选课,岂不美哉!

演示测试视频

于是我写了个JS脚本,可以使用油猴或者修改后直接放在控制台中运行

#欢迎各位大佬指正

1.西华大学抢课脚本

  • 目前只针对于 通识课选课能用
  • 脚本放在study文件夹下面
 /**
   * 西华大学一键式选课脚本
   * 此脚本只能简单的代替你点击选课
   * 不保证成功率 
   * 使用此脚本是您自愿使用的造成的损失作者概不负责·
   * @author WDF
   * 有问题请联系我
   * @QQ 2921235963
   */

2.使用教程

1.安装油猴 
2.将脚本拷贝到油猴脚本中
3.修改课程你要选择的课程名称

Ps:如果你没有油猴
    1.修改脚本中你要选的课程
    2.ctrl+A => ctrl+c 复制代码
    3.按F12 => 打开控制台 => 粘贴脚本 => 按enter即可

github链接

// ==UserScript==
// @name         西华大学选课脚本
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       WDF
// @match        http://*/*
// @grant        none
// ==/UserScript==

(function() {
  'use strict';
  /**
   * 西华大学一键式选课脚本
   * 此脚本只能简单的帮你抢你能选的课
   * 使用此脚本是您自愿使用的造成的损失作者概不负责·
   * @author WDF
   * 有问题请联系我
   * @QQ 2921235963
   */
   // 换上你自己的课程名称
  let courseName = ["网球"]

  document.getElementsByClassName("panel panel-info")[0].getElementsByClassName("nav nav-tabs sl_nav_tabs")[0].getElementsByTagName("li")[1].getElementsByTagName("a")[0].click()

  let o = document.getElementById("more")
  for (let i = 0; i < 10; i++) {
    setTimeout(() => {
      o.getElementsByTagName("a")[0].click()
    }, 1000)
  }

  let cnt = 0

  // 等待加载出课程
  setTimeout(() => {
    console.log('loading...')

    //进入选课界面
    let courseList = document.getElementsByClassName("panel panel-info")
    for (let j = 0; j < courseName.length; j++) {
      cnt = cnt +1
      if (j>0)
        console.log(courseName[j-1] + '选课成功!\n')

      console.log('当前准备选择的课程:' + courseName[j])
      let i
      // 搜索课程
      for (i = 1; i < courseList.length; i++) {
        setTimeout(() => {
        }, 1000)

        let oo = courseList[i].getElementsByClassName("panel-heading kc_head")[0].getElementsByClassName("panel-title")[0]
        let thisText = oo.getElementsByClassName("kcmc")[0].getElementsByTagName("a")[0].innerText

        if (courseName[j] == thisText) {
          courseList[i].getElementsByClassName("panel-heading kc_head")[0].getElementsByClassName("panel-title")[0].click()
          break;
        }
      }
      let flag = false
      const timer = setInterval(() => {
        if (flag)
          clearInterval(timer)
        // 获取当前课程列表
        let list = courseList[i].getElementsByClassName("panel-body table-responsive")[0].getElementsByClassName("table table-hover")[0].getElementsByClassName("body_tr")

        for (let k = 0; k < list.length; k++) {
          // console.log(list[k].getElementsByClassName("jxbmc")[0].innerText)
          let o = list[k].getElementsByClassName("an")[0].getElementsByClassName("btn btn-primary btn-sm")[0]
          if (o == null)
            o = list[k].getElementsByClassName("an")[0].getElementsByClassName("btn btn-danger btn-sm")[0]
          // console.log(k+"---"+o.innerText)
          if (o.innerText == "选课") {
            o.click()
            setTimeout(() => {
              let content = document.getElementsByClassName("modal-content")[0]
              if (content != null) {
                let message = content.getElementsByClassName("modal-body")[0].getElementsByClassName("bootbox-body")[0].getElementsByClassName("alert alert-modal")[0].innerText

                if (message=="一门课程最多可选1个志愿!")
                  clearInterval(timer)
                var ok_btn = content.getElementsByClassName("modal-footer ui-draggable-handle")[0].getElementsByClassName("btn btn-sm btn-default")[0]
                if (ok_btn != null)
                  ok_btn.click()
              }
            }, 750)
          } else {
            flag = true
            clearInterval(timer)
          }
          if (flag)
            break
        }
      }, 1500)

    }
  }, 2000)
  if(cnt==courseName.length)
    console.log('选课成功')

})();

3.如果你觉得此脚本对你有用 可以请我喝一杯奶茶

wx

zfb9c44370b010da854.jpg


标题:useful 脚本——西华大学选课脚本
作者:SherlockOuO
地址:https://www.sherlockouo.com/articles/2020/06/29/1593442613751.html