打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
破解尔雅通识课快进限制(2015.03.02再次更新) | 写给未来的回忆录

如果您的选修课网址类似于http://****.tsk.erya100.com/***

请在每刷完一课后等待1分钟到两分钟后再刷下一集,不然会一直卡在同一课

不要使用新版播放器

1
javascript:(function(){var a=document.createElement('script');a.src='http://git.oschina.net/ccccchen/fuckerya/raw/master/erya20140412.js';document.body.appendChild(a)})();

如果您的选修课网址类似于 http://mc.erya100.com/***  (不能使用上面的)

尔雅后台验证代码又变了,播放器也修改了。。。。提交的数据居然加了MD5,还真是蛋疼!!!

放出自动挂机代码,一科一次性挂完。。至于另外的科目,您得自己想法子多开了(比如开一个chrome,然后再开一个Firefox,再来一个IE。。您就可以一次性看完3科了)

1
javascript:(function(){var a=document.createElement('script');a.src='http://git.oschina.net/ccccchen/fuckerya/raw/master/eryamc20140503.js';document.body.appendChild(a)})();

至于有童鞋反应弹广告的问题,那只是我加了点广告代码,赚点网站的维护费用。如果您觉得不爽,自行去淘宝花钱找人代刷,我可以很负责人的告诉你,那些所谓的代挂的,好多照样是用我的代码,其中有个2B为了让我把公布的免费代码撤了,居然冒充某学校教务处威胁我。。。

还有,代码如何运行自行看教程

【教程】各种浏览器运行所谓「JS代码/脚本」的方法

强烈建意各位看官使用如下现代浏览器,触摸更精彩的web世界

chrome:https://www.google.com/intl/zh-CN/chrome/browser/

firefox:http://firefox.com.cn/download/

opera:http://www.opera.com/zh-cn/computer

ie9+:http://windows.microsoft.com/zh-cn/windows/downloads

代码使用方法视频教程:

去优酷观看://v.youku.com/v_show/id_XNTA4OTQ3MjIw.html

======================以下内容已过期==================================

为了这东西,折腾两天了

好久没玩破解了 ,把常用的破解套路也忘了。。。这圈子兜得。。。   唉   总算皇天不负有心人  还是给解决了

给位童鞋   加紧了,指不定哪天尔雅又蛋疼了  

更新内容

①针对尔雅修改代码  重新破解视频快进

②在作业页面运行代码,可对每题进行快速百度搜索

注意的是,每集看完,不要去点击播放器上面的下一集按钮,而是要点击运行代码后出现的这个按钮  切记  否则无效

     

代码如下:(失效)

1
javascript:(function(){var s=document.createElement('script'),t=new Date().getTime();s.src='http://0.tiebaimg.duapp.com/ccc5.js?'+t;document.body.appendChild(s)})();

=============================================================================

    学校用的是尔雅通识课的网络课程,播放器做了限制,无法快进,而且看完一集还要自己去点下一集,所以只能老老实实看完每一课。

   去年自己选修的时候没想到去解决快进的问题,而是用易语言写了个鼠标自动点击工具,当看完一集后自动点击进入下一集,这样,大概一两天的时间可以把课程挂完。

今天,同学找我要那个工具,我发给他后,他说用不了了,我进入网站看了下,原来播放器做了鼠标点击的限制,没办法,只能想想别的办法了。

   突然想到已经看过的课程是可以快进的,那么是否能快进必然是受后台或JS动态控制的,于是乎debug查看了下网站加载的JS文件 发现这个JS文件 http://*.tsk.erya100.com/flash/videoplay/flash_main.js

  其中很醒目的代码

/** 是否允许用户拖动: 0不允许,1允许  */

var canDrag;

生怕别人不知道这个变量干啥的,作者把注释都给出来了

接着查找关键字canDrag,看看是哪个函数传入这个参数,找到参数_canDrag

又见到注释了,作者老好人啊

* ***********************************************************/

/**

* 发布视频–js调用

* @param  xiaoL 校园网视频地址

* @param  gongL 公网视频地址

* @param  _subtitle 字幕字符串

* @param  _isSend 是否向后台(java)发送请求: 0不发送;1发送

* @param  _sendURL 交互地址

* @param  _canDrag 是否允许用户拖动: 0不允许,1允许

* @param  _hasNextVideo 是否有下一集: 0不是,1是

* @param  _nextVideoUrl 下一集地址

* @param  _isLogin 是否登录(是则显示作业/下一集面板)

*/

关键字 _canDrag的查找它吧

看到函数了

1
2
3
function publishVideo(_xiaoL, _gongL, _subtitleG, _subtitleX, _isSend, _sendURL, _canDrag, _hasNextVideo, _nextVideoUrl, _startTime, _zuoyeNum, _zuoyeURL, _curVideo) {
    thisMovie("flashplayer").flash_publish(_xiaoL, _gongL, _subtitleG, _subtitleG, _isSend, _sendURL, _canDrag, _hasNextVideo, _nextVideoUrl, _startTime, _zuoyeNum, _zuoyeURL, _curVideo //切换的集数
    );

好吧,就是它了publishVideo,去html文档中找找它的调用吧

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
function toCourseVideo(courseId,videoId)
{
if(!(courseId&&videoId)||courseId.length<=0||videoId.length<=0)return;
if(iscommiting)
{
    alert("请求处理中,请稍候...");
    return;
}
iscommiting=true;
 $.ajax({
        type:"POST",  
        data:
        {
            courseId:courseId,
            videoId:videoId
        }, 
        async: true,   
        cache: false,    
        url: "/courseAction!getCourseVideo",
        dataType:"text"
        contentType:"application/x-www-form-urlencoded; charset=UTF-8",
        timeout : 30000,
        success:function(data)
        {
            iscommiting=false;
            if(data&&data.length>0){
                 $("#video_list").html(data);
                 cur_video=$("#span_cur_video").attr("cur_video");
                 init_scroll();
                 publishVideo($("#span_localflv").attr("localflv"),
                        $("#span_flv").attr("flv")+"?t="+new Date().getTime(),
                        $("#span_subtitle").attr("subtitle"),
                        $("#span_localsubtitle").attr("localsubtitle"),
                        $("#span_isSend").attr("issend"),
                        $("#span_recieveurl").attr("recieveurl"),
                        $("#span_isSend").attr("candrag"),
                        $("#span_nextVideoId").attr("nextvideoid"),
                        $("#span_nextVideourl").attr("nextvideourl"),
                        $("#span_vbai").attr("vbai"),
                        $("#span_currentVideoExamineCount").attr("currentVideoExamineCount"),
                        $("#span_homeworkurl").attr("homeworkurl"),
                        cur_video
                        );
            }else
            {
                alert("服务器忙,请稍候再试或者重新刷新页面。");
            }
        } ,
        error : function(e)
        {
            iscommiting=false;
            alert("服务器忙,请稍候再试或者重新刷新页面。");
        }
    });
}

第三十行调用到了publishVideo函数,点击某一课程的时候调用toCourseVideo函数,然后ajax请求服务器,返回数据,从返回数据中取出一些数据传入publishVideo函数中,我们要修改的就是函数publishVideo传入的参数,让ajax无论返回啥数据我们都让其进度条可以被拖动

修改后的代码如下 修改了第36行 本来应该是传入

$("#span_isSend").attr("candrag")

的结果,我们现在限制为1

那么无论如何,我们都可以都可以拖动进度条了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
function toCourseVideo(courseId,videoId)
{
if(!(courseId&&videoId)||courseId.length<=0||videoId.length<=0)return;
if(iscommiting)
{
    alert("请求处理中,请稍候...");
    return;
}
iscommiting=true;
 $.ajax({
        type:"POST"
        data:
        {
            courseId:courseId,
            videoId:videoId
        },
        async: true,  
        cache: false,   
        url: "/courseAction!getCourseVideo",
        dataType:"text",
        contentType:"application/x-www-form-urlencoded; charset=UTF-8",
        timeout : 30000,
        success:function(data)
        {
            iscommiting=false;
            if(data&&data.length>0){
                 $("#video_list").html(data);
                 cur_video=$("#span_cur_video").attr("cur_video");
                 init_scroll();
                 publishVideo($("#span_localflv").attr("localflv"),
                        $("#span_flv").attr("flv")+"?t="+new Date().getTime(),
                        $("#span_subtitle").attr("subtitle"),
                        $("#span_localsubtitle").attr("localsubtitle"),
                        $("#span_isSend").attr("issend"),
                        $("#span_recieveurl").attr("recieveurl"),
                        1,
                        $("#span_nextVideoId").attr("nextvideoid"),
                        $("#span_nextVideourl").attr("nextvideourl"),
                        $("#span_vbai").attr("vbai"),
                        $("#span_currentVideoExamineCount").attr("currentVideoExamineCount"),
                        $("#span_homeworkurl").attr("homeworkurl"),
                        cur_video
                        );
            }else
            {
                alert("服务器忙,请稍候再试或者重新刷新页面。");
            }
        } ,
        error : function(e)
        {
            iscommiting=false;
            alert("服务器忙,请稍候再试或者重新刷新页面。");
        }
    });
}

运行上面的代码,覆盖原有的函数,然后我们随便点击下前面看过的课程,然后再点回正在看的课程就可以拖动进度条了,这样做的目的是初始化函数

如果还在看第一节课,那么就再执行下如下代码吧

1
2
var current = $('#currli .zcblks1 #cur_stat').attr('url');
eval(current);

重新加载下当前视频,实现代码初始化

Over

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
采用Jquery+Ajax+PHP+MySQL实现分类列表管理 下
第21章 jquery控制页面元素和事件处理-参考题
简单的音乐播放器制作
如何快速学习freemarker以及使用经验
怎样制作一个小巧带阴历的万年历?
Jquery操作复选框(CheckBox)的取值赋值实现代码
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服