脚本喵-刷课脚本分享 脚本喵-刷课脚本分享
首页
刷课脚本
通用教程
网课代学
首页
刷课脚本
通用教程
网课代学
  • 西安教师培训网刷课脚本分享
  • 迪尔集团有限公司(高新区)公需课刷课脚本分享
  • 广东二师在线刷课脚本分享
  • 新疆兵团卫生专业技术人员法律法规知识培训服务平台刷课脚本分享
  • 贵州执业药师继续教育在线培训刷课脚本分享
  • 青海大学继续教育学院刷课脚本分享
  • 河北干部网络学院刷课脚本分享
  • 曲阜市技工学校(曲阜市)继续教育公需课刷课脚本分享
  • 全国体育传统特色学校体育师资培训平台刷课脚本分享
  • 宁阳县继续医学教育培训网刷课脚本分享
  • 陕西干部网络学院刷课脚本分享
  • 职业成长自动轮播学习脚本分享
  • 和田地区专业技术人员继续教育刷课脚本分享
  • 合肥市中小学、幼儿园教师远程培训刷课脚本分享
  • 内蒙古自治区中医药(蒙医药)继续教育刷课脚本分享
  • 自贡市专业技术人员继续教育学习平台刷课脚本分享
  • 专业技术人才人工智能通识继续教育网络公益课堂刷课脚本分享
  • 周口市专业技术人员继续教育刷课脚本分享
  • 吉林省中盛佳源专技培训网刷课脚本分享
  • 菏泽市继续教育刷课脚本分享
  • 国家中小学智慧教育平台刷课脚本分享
  • 滁州市专业技术人员继续教育刷课脚本分享
  • 新疆医学教育网刷课脚本分享
  • 潍坊科技学院继续教育刷课脚本分享
  • 韶关市中小学教师培训平台刷课脚本分享
  • 广西柳州事业单位工作人员培训刷课脚本分享
    • 昌吉州教育云刷课脚本分享
    • 温州市住房和城乡建设行业专业技术人员继续教育刷课脚本分享
    • 广西教师培训管理信息系统刷课脚本分享
    • 成都继续医学教育平台刷课脚本分享
    • 乌兰浩特市专业技术人员继续教育刷课脚本分享
    • 乌鲁木齐职业大学教师培训刷课脚本分享
    • 伊犁师范大学继续教育学院刷课脚本分享
    • 汶上县委党校公需课刷课脚本分享
    • 西北大学现代学院教师在线学习刷课脚本分享
    • 沈阳理工大学教师发展中心刷课脚本分享
    • 刷课脚本
    脚本喵
    目录

    广西柳州事业单位工作人员培训刷课脚本分享

    代学业务

    如需代学,请点击联系客服

    柳州事业单位培训 gxlz.ischinese.cn

    # 平台情况

    广西柳州事业单位工作人员培训网络平台,网址 https://gxlz.ischinese.cn/secondary ,柳州这边在事业单位上班的朋友应该都不陌生。这个平台是专门给柳州市事业单位工作人员做培训的,什么公需科目、专业科目都有,每年都得完成规定的学时。

    前两天柳州鱼峰区的韦哥微信找我,说他在柳州某区直单位上班,每年这个培训平台都把他搞得够呛。韦哥平时在单位忙得要死,各种材料、报表、会议,白天根本没空看视频。晚上回家还得辅导小孩写作业,等忙完都十点多了,哪还有精力盯着电脑刷课。

    韦哥跟我吐槽说,有次他硬撑着看到十一点多,看着看着就睡着了,醒来发现视频卡在那儿不动了,之前看的那个进度也没保存住,等于白看。他说那个平台的视频播放器有点奇怪,进度条总是卡,有时候明明看完了却不记学时,还得重新刷一遍。嗯...这个确实挺烦人的,我研究了一下发现是平台对视频播放状态检测比较严格,稍有中断就不算数。

    柳州这个平台课程还挺多的,课程质量其实还行,但架不住量大啊,每门课动不动就十几二十集。

    # 脚本功能

    针对柳州事业单位培训平台的特点,脚本实现了以下功能:

    视频自动播放,打开课程页面后自动开始播放,不用手动点。自动切换下一节,检测到视频快播完时自动跳到下一个。防掉线模拟,定期模拟鼠标移动,避免系统判定长时间无操作。倍速调节,1倍到2倍速可选。进度实时显示,控制面板上能看到当前状态和已完成数量。课程目录智能识别,自动跳过已经完成的章节。

    脚本安装地址: 暂时下架

    # 代学服务

    提示

    如需代学,请联系客服,支持闲鱼交易。

    微信联系:yizhituziang

    QQ联系:2422270452

    - img: /img/weixin.jpg
      name: 微信联系:yizhituziang
    - img: /img/qq.jpg
      name: QQ联系:2422270452
    

    # 使用感受

    韦哥用了差不多两周了,跟我说轻松太多了。现在每天晚上把浏览器挂着,自己在旁边刷刷手机或者陪孩子,回来一看进度已经跑了不少。他说再也不用定闹钟提醒自己切下一集了,之前那种半夜被闹钟吵醒的感觉真的太痛苦了。

    不过有个事得说一下,柳州这个平台有些课程后面带在线测验或者考试,脚本暂时帮不了你,得自己做。还有如果你们单位要求人脸识别验证,那也得自己来。韦哥说他大部分课程都能自动刷,就几门带测验的自己做了,也不算太麻烦。

    对了韦哥还提醒了一个事,用脚本的时候浏览器窗口不能最小化,得开着但可以缩小放到旁边。他之前试过最小化,结果有些浏览器会自动暂停视频播放,这个坑要注意。

    # 使用场景

    白天在单位忙得脚不沾地的,像韦哥那样写材料开会连轴转的。课程内容之前就学过的,走个流程拿学时就行。想省时间早点完成任务的,开个1.5倍速挂着自动跑。

    # 技术细节

    柳州事业单位培训平台用的是ischinese系列框架,界面是传统的在线教育风格。脚本通过定时检测video元素状态来判断播放进度,配合课程列表的DOM结构找到下一节。

    防掉线这块比较关键,因为平台对长时间不操作检测比较严格。脚本会生成随机鼠标移动轨迹,间隔时间也做了随机化处理,不会太规律被系统发现。另外加了视频暂停检测,如果视频意外停止会自动尝试恢复播放。还有个细节,这个平台的进度条有时候会卡,脚本额外加了进度检测机制,如果发现进度长时间不动会自动刷新页面重新加载。

    整体方案针对柳州平台做了专门适配,韦哥用了两周基本没出什么问题。

    # 常见问题

    脚本安装地址暂时下架,有需要代学的朋友看页面底部联系方式。

    倍速怎么选?建议1.5倍,柳州这边网络还行,太快了怕视频加载跟不上。

    浏览器用什么好?Chrome或Edge最稳,其他浏览器可能有些兼容问题。

    进度没同步怎么办?刷新一下页面,平台会自动保存学习进度。

    在线测验能自动做吗?暂时不支持,得自己看题目做。

    视频看完了不记学时?这个是平台的问题,有时候需要刷新页面才会更新,脚本会自动处理。

    # 结束语

    柳州事业单位工作人员培训平台是柳州地区事业单位人员每年都要用的,韦哥之前为了刷课经常熬到半夜,用了脚本之后终于不用专门守在电脑前了。柳州是工业城市,事业单位工作人员本来就很忙,脚本能帮你省去大部分盯屏幕的时间,让你能把精力放在工作和生活上。

    # 核心代码

    (function() {
        'use strict';
    
        const CFG = {
            site: 'gxlz.ischinese.cn',
            scanMs: 2600,
            jumpMs: 3300,
            aliveMs: 11000,
            donePct: 88,
            storeKey: 'gxlz_auto_cfg'
        };
    
        let rec = {
            on: false,
            cnt: 0,
            rate: 1.0,
            lastAct: Date.now(),
            missCnt: 0,
            stuckCnt: 0,
            lastPct: 0
        };
    
        function out(msg) {
            console.log('[柳州事业单位] ' + msg);
        }
    
        function load() {
            const s = localStorage.getItem(CFG.storeKey);
            if (s) {
                try {
                    const d = JSON.parse(s);
                    rec.on = d.active !== false;
                } catch (e) {
                    rec.on = true;
                }
            } else {
                rec.on = true;
            }
        }
    
        function save() {
            localStorage.setItem(CFG.storeKey, JSON.stringify({
                active: rec.on,
                speed: rec.rate
            }));
        }
    
        function boot() {
            load();
            if (rec.on) {
                out('柳州事业单位培训自动学习已启动');
                run();
            }
            panel();
        }
    
        function getVid() {
            const sels = [
                'video',
                '#playBox video',
                '.course-video video',
                '.train-video video',
                '.video-js video',
                '.vjs-tech',
                'video.ischinese-player'
            ];
            for (const s of sels) {
                const el = document.querySelector(s);
                if (el && el.duration > 0 && el.offsetParent !== null) {
                    return el;
                }
            }
            return null;
        }
    
        function getBox() {
            const sels = [
                '#playBox',
                '.course-player',
                '.train-player',
                '.video-wrapper',
                '.player-box',
                '.ischinese-player'
            ];
            for (const s of sels) {
                const el = document.querySelector(s);
                if (el) return el;
            }
            return document.body;
        }
    
        function pct(v) {
            if (!v || !v.duration) return 0;
            return (v.currentTime / v.duration) * 100;
        }
    
        function play(v) {
            if (!v) return false;
            try {
                if (v.paused) {
                    var p = v.play();
                    if (p && p.catch) {
                        p.catch(function() {
                            v.muted = true;
                            v.play().catch(function() {});
                        });
                    }
                }
                return true;
            } catch (e) {
                return false;
            }
        }
    
        function speed(v, r) {
            if (!v) return;
            try {
                v.playbackRate = r;
                rec.rate = r;
                out('倍速调整为 ' + r + 'x');
            } catch (e) {
                out('倍速设置失败');
            }
        }
    
        function alive() {
            var now = Date.now();
            if (now - rec.lastAct > CFG.aliveMs) {
                var box = getBox();
                var b = box.getBoundingClientRect();
                var x = b.left + Math.random() * b.width;
                var y = b.top + Math.random() * b.height;
    
                var mv = new MouseEvent('mousemove', {
                    clientX: x, clientY: y, bubbles: true
                });
                document.dispatchEvent(mv);
    
                setTimeout(function() {
                    var ck = new MouseEvent('click', {
                        clientX: x, clientY: y, bubbles: true
                    });
                    document.dispatchEvent(ck);
                }, 450);
    
                rec.lastAct = now;
                out('模拟操作完成,保持在线');
            }
        }
    
        function nextBtn() {
            var kws = ['.next-btn', '.btn-next', '.next-lesson', '[class*="next"]'];
            for (var i = 0; i < kws.length; i++) {
                var btns = document.querySelectorAll(kws[i]);
                for (var j = 0; j < btns.length; j++) {
                    if (btns[j].offsetParent !== null && !btns[j].disabled) {
                        return btns[j];
                    }
                }
            }
            return null;
        }
    
        function items() {
            return document.querySelectorAll(
                '.chapter-item, .lesson-item, .course-chapter, .section-row, .catalog-item'
            );
        }
    
        function isDone(el) {
            return el.querySelector('.finished, .done, .complete, .status-ok') !== null;
        }
    
        function isCur(el) {
            return el.classList.contains('active') || el.classList.contains('current');
        }
    
        function goNext() {
            var btn = nextBtn();
            if (btn) {
                btn.click();
                rec.cnt++;
                out('已切换下一节,完成 ' + rec.cnt + ' 节');
                setTimeout(run, CFG.jumpMs);
                return;
            }
    
            var list = items();
            var found = false;
            for (var i = 0; i < list.length; i++) {
                var cur = isCur(list[i]);
                var done = isDone(list[i]);
    
                if (cur) {
                    found = true;
                    continue;
                }
                if (found && !done) {
                    list[i].click();
                    rec.cnt++;
                    out('跳转到下一未完成章节');
                    setTimeout(run, CFG.jumpMs);
                    return;
                }
            }
            out('全部章节已完成');
        }
    
        function checkStuck(curPct) {
            if (Math.abs(curPct - rec.lastPct) < 0.1) {
                rec.stuckCnt++;
                if (rec.stuckCnt > 8) {
                    out('进度可能卡住,尝试刷新页面');
                    rec.stuckCnt = 0;
                    location.reload();
                }
            } else {
                rec.stuckCnt = 0;
            }
            rec.lastPct = curPct;
        }
    
        function loop() {
            var v = getVid();
    
            if (!v) {
                rec.missCnt++;
                if (rec.missCnt > 15) {
                    out('找不到视频,请确认在课程播放页面');
                }
                setTimeout(loop, CFG.scanMs);
                return;
            }
    
            rec.missCnt = 0;
            play(v);
    
            var p = pct(v);
            checkStuck(p);
    
            if (p >= CFG.donePct) {
                out('当前视频播放至 ' + p.toFixed(1) + '%,准备跳转');
                goNext();
                return;
            }
    
            alive();
            setTimeout(loop, CFG.scanMs);
        }
    
        function mkPanel() {
            if (document.getElementById('gxlz-panel')) return;
    
            var d = document.createElement('div');
            d.id = 'gxlz-panel';
            d.style.cssText = 'position:fixed;top:120px;right:20px;width:210px;background:#fff;border-radius:8px;box-shadow:0 2px 12px rgba(0,0,0,0.15);padding:16px;z-index:99999;font-size:14px;';
            d.innerHTML = '<div style="font-weight:bold;margin-bottom:12px;color:#333;">柳州事业单位自动刷课</div>' +
                '<div style="margin-bottom:8px;"><span style="color:#666;">状态:</span><span id="gxlz-st" style="color:#52c41a;">运行中</span></div>' +
                '<div style="margin-bottom:8px;"><span style="color:#666;">完成:</span><span id="gxlz-dn" style="color:#1890ff;">0</span> 节</div>' +
                '<div style="margin-bottom:12px;"><span style="color:#666;">倍速:</span><select id="gxlz-sp" style="padding:2px 6px;border-radius:4px;"><option value="1">1倍速</option><option value="1.5" selected>1.5倍速</option><option value="2">2倍速</option></select></div>' +
                '<button id="gxlz-tg" style="width:100%;padding:8px;background:#ff4d4f;color:#fff;border:none;border-radius:4px;cursor:pointer;">停止脚本</button>';
    
            document.body.appendChild(d);
    
            document.getElementById('gxlz-sp').onchange = function() {
                rec.rate = parseFloat(this.value);
                var v = getVid();
                if (v) speed(v, rec.rate);
                save();
            };
    
            document.getElementById('gxlz-tg').onclick = function() {
                rec.on = !rec.on;
                this.textContent = rec.on ? '停止脚本' : '启动脚本';
                this.style.background = rec.on ? '#ff4d4f' : '#52c41a';
                document.getElementById('gxlz-st').textContent = rec.on ? '运行中' : '已停止';
                document.getElementById('gxlz-st').style.color = rec.on ? '#52c41a' : '#999';
                save();
                if (rec.on) {
                    out('脚本重新启动');
                    run();
                }
            };
        }
    
        function panel() {
            mkPanel();
            setInterval(function() {
                var el = document.getElementById('gxlz-dn');
                if (el) el.textContent = rec.cnt;
            }, 2000);
        }
    
        function run() {
            loop();
        }
    
        if (document.readyState === 'loading') {
            document.addEventListener('DOMContentLoaded', boot);
        } else {
            boot();
        }
    })();
    
    #柳州#gxlz.ischinese.cn#事业单位#继续教育
    韶关市中小学教师培训平台刷课脚本分享
    昌吉州教育云刷课脚本分享

    ← 韶关市中小学教师培训平台刷课脚本分享 昌吉州教育云刷课脚本分享→

    最近更新
    01
    伊犁师范大学继续教育学院刷课脚本分享
    02
    汶上县委党校公需课刷课脚本分享
    03
    西北大学现代学院教师在线学习刷课脚本分享
    更多文章>
    Copyright © 2025-2026
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式