Greasy Fork

Greasy Fork is available in English.

超星网课助手(最新题库)支持图片题 + 无心vip视频免费看【2020-11-19更新可用】

【集成超星网课助手】【增加公众号 无心VIP影视】全网最新题库,支持图片题,永久免费!AND 除去其他不必要的功能,专注于VIP影视解析。因为只做vip解析,所以更专业。调整为8条解析线路,更加方便快捷的观看vip影视。

当前为 2020-11-18 提交的版本,查看 最新版本

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

You will need to install an extension such as Tampermonkey to install this script.

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         超星网课助手(最新题库)支持图片题 + 无心vip视频免费看【2020-11-19更新可用】
// @namespace    https://www.luckyblank.cn
// @version      20.20.11.19
// @description  【集成超星网课助手】【增加公众号 无心VIP影视】全网最新题库,支持图片题,永久免费!AND 除去其他不必要的功能,专注于VIP影视解析。因为只做vip解析,所以更专业。调整为8条解析线路,更加方便快捷的观看vip影视。
// @author       我本无心
// @icon         http://www.luckyblank.cn/jiaoben/favorite.ico
// @match        *://v.youku.com/v_show/*
// @match        *://*.iqiyi.com/v_*
// @match        *://*.iqiyi.com/w_*
// @match        *://*.iqiyi.com/a_*
// @match        *://*.iqiyi.com/dianying/*
// @match        *://*.le.com/ptv/vplay/*
// @match        *://v.qq.com/x/cover/*
// @match        *://v.qq.com/x/page/*
// @match        *://*.tudou.com/listplay/*
// @match        *://*.tudou.com/albumplay/*
// @match        *://*.tudou.com/programs/view/*
// @match        *://*.mgtv.com/b/*
// @match        *://film.sohu.com/album/*
// @match        *://*.acfun.cn/v/*
// @match        *://*.bilibili.com/video/*
// @match        *://*.bilibili.com/anime/*
// @match        *://vip.pptv.com/show/*
// @match        *://v.pptv.com/show/*
// @match        *://v.yinyuetai.com/video/*
// @match        *://v.yinyuetai.com/playlist/*
// @match        *://*.wasu.cn/Play/show/*
// @match        *://*.chaoxing.com/*
// @match        *://*.edu.cn/*
// @connect      sxsg-edu.cn
// @run-at       document-end
// @grant        GM_xmlhttpRequest
// @grant        GM_info
// @grant        GM_getValue
// @grant        GM_setValue
// @run-at       document-end
// @grant        unsafeWindow
// @grant        GM_addStyle
// @grant        GM_setClipboard
// @require      https://cdn.staticfile.org/jquery/1.12.4/jquery.min.js
// @require      https://cdn.bootcdn.net/ajax/libs/layer/3.1.1/layer.js
// @require      https://cdn.staticfile.org/jquery-cookie/1.4.1/jquery.cookie.min.js
// @require      https://cdn.staticfile.org/jsencrypt/2.3.1/jsencrypt.min.js
// @license      MIT
// ==/UserScript==

(function() {

    //FUN_1
   if(location.href.match(".iqiyi.com") || location.href.match(".youku.com")|| location.href.match(".le.com")|| location.href.match(".letv.com")|| location.href.match("v.qq.com") || location.href.match(".tudou.com")|| location.href.match(".mgtv.com")|| location.href.match("film.sohu.com")|| location.href.match("tv.sohu.com")|| location.href.match(".acfun.cn")|| location.href.match(".bilibili.com")|| location.href.match(".pptv.com")|| location.href.match("vip.1905.com")|| location.href.match(".yinyuetai.com")|| location.href.match(".fun.tv")|| location.href.match(".56.com") || location.href.match(".wasu.cn")) {
       /*变量初始及方法封装*/
       $("head").append($('<link rel="stylesheet" href="https://www.luckyblank.cn/tools/layer/layer-v3.1.1/layer/theme/default/layer.css">'));
       var qq0 = '<span style="display:block;float:left;width:3vw;height:3vw;font-size:2.5vw;color:#fff;line-height:3vw;text-align:center;border-radius:100%;box-shadow:0px 0px 3px #a9a9a9;background:#0078FF;margin:1vw 1vw;">及</span>'
       var qq1 = '<span style="display:block;float:left;width:3vw;height:3vw;font-size:2.5vw;color:#fff;line-height:3vw;text-align:center;border-radius:100%;box-shadow:0px 0px 3px #a9a9a9;background:#0078FF;margin:1vw 1vw;">时</span>'
       var qq2 = '<span style="display:block;float:left;width:3vw;height:3vw;font-size:2.5vw;color:#fff;line-height:3vw;text-align:center;border-radius:100%;box-shadow:0px 0px 3px #a9a9a9;background:#0078FF;margin:1vw 1vw;">反</span>'
       var qq3 = '<span style="display:block;float:left;width:3vw;height:3vw;font-size:2.5vw;color:#fff;line-height:3vw;text-align:center;border-radius:100%;box-shadow:0px 0px 3px #a9a9a9;background:#0078FF;margin:1vw 1vw;">馈</span>'
       function getAll(){var vips;$.ajax({url:"//www.luckyblank.cn:8443/vipaddress/getaddress",type:"GET",async:false,success:function(data){vips=data}});/*console.log("vips:"+vips);*/return vips};
       var arr=getAll();
       var apis = [
           {
               name:qq0 + "网站解析0",url:"https://www.luckyblank.cn/jiaoben/vipvideos/index.html?link=",title:"接口0"
           },
           {
               name:qq1 + "插件下载0",url:"https://lanzous.com/b0e6zvlc?link=",title:"插件下载"
           },
           {
               name:qq2 + "解析接口1",url:arr[1],title:"接口1"
           },{
               name:qq3 + "解析接口2",url:arr[2],title:"接口2"
           }
       ];

       //创建选项
       function createSelect (apis) {
           var myul = document.createElement("ul");
           myul.id = "myul";
           myul.setAttribute("style","overflow: hidden;display:none;background:#fff;box-shadow:0px 1px 10px rgba(0,0,0,0.3);margin:0;position:fixed;bottom:33vh;right:8vw;z-index:99999;height:300px;border-radius:1.26vw;");
           for (var i = 0; i < apis.length; i ++) {
               var myli = document.createElement("li");
               var that=this;
               myli.setAttribute("style","cursor: pointer;margin:0;padding:0;display:block;list-style:none;font-size:2vw;width:15vw;text-align:left;line-height:5vw;letter-spacing:0;border-bottom:1px solid #f0f0f0;position:relative;overflow:hidden;text-overflow:hidden;white-space:nowrap;");
               (function (num) {
                   myli.onclick = function () {
                       window.open(apis[num].url + location.href,'_blank');
                   };
                   myli.ontouchstart = function () {
                       this.style.cssText += "color:yellow;background:#373737;border-radius:1.26vw;";
                   }
                   myli.ontouchend = function () {
                       this.style.cssText += "color:black;background:transparent;border-radius:0;";
                   }
               })(i);
               myli.innerHTML = apis[i].name;
               myul.appendChild(myli);
           }
           document.body.appendChild(myul);
       }

       //创建菜单
       function createMenu(){
           var myBtn = document.createElement("div");
           myBtn.id = "myBtn";
           myBtn.innerHTML = "+";
           myBtn.setAttribute("title","我可以拖动啦");
           myBtn.setAttribute("style","cursor: move;width:5vw;height:5vw;position:fixed;bottom:30vh;right:1vw;z-index:100000;border-radius:100%;text-align:center;line-height:5vw;box-shadow:0px 1px 10px rgba(0,0,0,0.3);font-size:3vw;background:rgb(228, 8, 8);");

           document.body.appendChild(myBtn);
       }
    //绑定元素拖动
    function bindGrabble(){

                  $('#myBtn').on('mousedown', function(e) { //鼠标按下
            // 判断一下这个按下是点击还是拖动
            var isClick = true;

            $(document).on('mousemove', (e) => {//鼠标移动
                let left = e.clientX - $(this).width() / 2//计算元素left值
                let top = e.clientY - $(this).height() / 2//计算元素top值

                top = suan(top, 0, $(document).innerHeight() - $(this).height())//调用封装的方法
                left = suan(left, 0,$(document).innerWidth() - $(this).width())//调用封装的方法
                $(this).css({ //给盒子设置坐标
                    left,
                    top
                })
                //拖动后,把isClick设为false,后面就不会执行点击事件
                isClick = false;

                e.preventDefault();
            })
            $(document).on('mouseup', (e) => {//鼠标抬起
                //当isClick为true时,就执行点击事件
                if( isClick ){
                    var myul = document.getElementById("myul");
                    if(myul.style.display == "none"){
                        myul.style.display = "block";
                        this.style.transform="rotateZ(45deg)";
                    }else{
                        myul.style.display = "none";
                        this.style.transform="rotateZ(0deg)";
                    }
                }
                $(document).off('mousemove mouseup')//移除鼠标移动、鼠标抬起事件
            })
        })

    }
    //防止拖出边界
            function suan(o, min, max) { //重复封装
            o < min ? o = min : o > max ? o = max : ''//限制出界
            return o
        }
       /*document.addEventListener("DOMContentLoaded",function () {
	createMenu();
	createSelect(apis);
      });*/

//是否发送公告yes = true则执行
  function sentNotic(yes) {
      if(yes){
      //判断用户是否是第一次使用
       if($.cookie('isFirstTime') == undefined ){
       console.log("first......");

           var method_own ={
    notice: function(){
      //示范一个公告层
      layer.open({
        type: 1
        ,title: false //不显示标题栏
        ,closeBtn: false
        ,area: '350px;'
        ,shade: 0.8
        ,id: 'LAY_layuipro' //设定一个id,防止重复弹出
        ,btn: ['火速围观', '残忍拒绝']
        ,btnAlign: 'c'
        ,moveType: 1 //拖拽模式,0或者1
        ,content: '<div class="notice-wechat" style="padding: 50px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;"><img class="qrcode-wechat" src="https://www.luckyblank.cn/img/wechat/gzh.jpg"><br><br>你知道吗?亲!无心影视出公众号啦~<br></div>'
        ,success: function(layero){
            //修正弹出层位置
            layero.css({"top":""})
          var btn = layero.find('.layui-layer-btn');
          btn.find('.layui-layer-btn0').attr({
            href: 'https://mp.weixin.qq.com/s/qPGdcfvT4_UHAS_JzU7Exg'
            ,target: '_blank'
          });
        }
      });
    }
}
           method_own.notice();

           $.cookie('isFirstTime', '1', { expires: 1, path: '/' });
       } else{
           console.log('not the first....')
           //设置cookie为1天
           //var flag =    $.removeCookie('isFirstTime', { path: '/' }); // => true
           //console.log(flag)

       }


      }
  }

       /*最终执行*/
		createMenu();
		createSelect(apis);
        bindGrabble();
        sentNotic(true);
       //直接退出
       return false;

}

   //FUN_2
    //超星网课助手
 if(/\.chaoxing\.com/i.test(location.href)|| /\.edu\.cn/i.test(location.href) ) {
console.log("FUN_2 HAS RUNNING....")
 $("head").append($('<link rel="stylesheet" href="https://www.luckyblank.cn/tools/layer/layer-v3.1.1/layer/theme/default/layer.css">'));
// 设置修改后,需要刷新或重新打开网课页面才会生效
var setting = {
    // 5E3 == 5000,科学记数法,表示毫秒数
    time: 5e3, // 默认响应速度为5秒,不建议小于3秒
    token: "", // 捐助用户可以使用定制功能,更精准的匹配答案,此处填写捐助后获取的识别码
    review: 0, // 复习模式,完整挂机视频(音频)时长,支持挂机任务点已完成的视频和音频,默认关闭
    queue: 1, // 队列模式,开启后任务点逐一完成,关闭则单页面所有任务点同时进行,默认开启
    submit: 1, //答案收录,开启后可在作业完成界面自动收录题目,默认开启

    // 1代表开启,0代表关闭
    video: 1, // 视频支持后台、切换窗口不暂停,支持多视频,默认开启
    work: 1, // 自动答题功能(章节测验),作业需要手动开启查询,高准确率,默认开启
    audio: 1, // 音频自动播放,与视频功能共享vol和rate参数,默认开启
    book: 1, // 图书阅读任务点,非课程阅读任务点,默认开启
    docs: 1, // 文档阅读任务点,PPT类任务点自动完成阅读任务,默认开启
    // 本区域参数,上方为任务点功能,下方为独立功能
    jump: 1, // 自动切换任务点、章节、课程(需要配置course参数),默认开启
    read: "0", // 挂机课程阅读时间,单位是分钟,'65'代表挂机65分钟,请手动打开阅读页面,默认'0'分钟
    face: 0, // 解除面部识别(不支持二维码类面部采集),此功能仅为临时解除,默认关闭
    total: 1, // 显示课程进度的统计数据,在学习进度页面的上方展示,默认开启

    // 仅开启video(audio)时,修改此处才会生效
    line: "公网1", // 视频播放的默认资源线路,此功能适用于系统默认线路无资源,默认'公网1'
    http: "标清", // 视频播放的默认清晰度,无效参数则使用系统默认清晰度,默认'标清'
    // 本区域参数,上方为video功能独享,下方为audio功能共享
    vol: "0", // 默认音量的百分数,设定范围:[0,100],'0'为静音,默认'0'
    rate: "1", // 视频播放默认倍率,参数范围0∪[0.0625,16],'0'为秒过,默认'1'倍

    // 仅开启work时,修改此处才会生效
    auto: 0, // 答题完成后自动提交,默认关闭
    none: 0, // 无匹配答案时执行默认操作,关闭后若题目无匹配答案则会暂时保存已作答的题目,默认关闭
    scale: 0, // 富文本编辑器高度自动拉伸,用于文本类题目,答题框根据内容自动调整大小,默认关闭

    // 仅开启jump时,修改此处才会生效
    course: 1, // 当前课程完成后自动切换课程,仅支持按照根目录课程顺序切换,默认开启
    lock: 1, // 跳过未开放(图标是锁)的章节,即闯关模式或定时发放的任务点,默认开启

    // 自动登录功能配置区
    school: "账号为手机号可以不修改此参数", // 学校/单位/机构码,要求完整有效可查询,例如'清华大学'
    username: "", // 学号/工号/借书证号(邮箱/手机号/账号),例如'2018010101',默认''
    password: "", // 密码,例如'123456',默认''

  },
  _self = unsafeWindow,
  url = location.pathname,
  top = _self;
if (url != "/studyApp/studying" && top != _self.top)
  document.domain = location.host.replace(/.+?\./, "");

try {
  while (top != _self.top) {
    top = top.parent.document ? top.parent : _self.top;
    if (top.location.pathname == "/mycourse/studentstudy") break;
  }
} catch (err) {
  // console.log(err);
  top = _self;
}

//var $ = _self.jQuery || top.jQuery;

var  parent = _self == top ? self : _self.parent,
  Ext = _self.Ext || parent.Ext || {},
  UE = _self.UE,
  vjs = _self.videojs;

String.prototype.toCDB = function () {
  return this.replace(/\s/g, "")
    .replace(/[\uff01-\uff5e]/g, function (str) {
      return String.fromCharCode(str.charCodeAt(0) - 65248);
    })
    .replace(/[“”]/g, '"')
    .replace(/[‘’]/g, "'")
    .replace(/。/g, ".");
};

setting.normal = ""; // ':visible'
// setting.time += Math.ceil(setting.time * Math.random()) - setting.time / 2;
setting.job = [":not(*)"];
setting.token = GM_getValue('token')||setting.token;

setting.video && setting.job.push('iframe[src*="/video/index.html"]');
setting.work && setting.job.push('iframe[src*="/work/index.html"]');
setting.audio && setting.job.push('iframe[src*="/audio/index.html"]');
setting.book && setting.job.push('iframe[src*="/innerbook/index.html"]');
setting.docs &&
  setting.job.push(
    'iframe[src*="/ppt/index.html"]',
    'iframe[src*="/pdf/index.html"]'
  );

setting.tip = !setting.queue || (top != _self && jobSort($ || Ext.query));

if (url == "/mycourse/studentstudy") {
  _self.checkMobileBrowerLearn = $.noop;
  var classId = location.search.match(/cla[zs]{2}id=(\d+)/i)[1] || 0,
    courseId =
      _self.courseId || location.search.match(/courseId=(\d+)/i)[1] || 0;
  setting.lock ||
    $("#coursetree").on("click", "[onclick*=void], [href*=void]", function () {
      _self.getTeacherAjax(
        courseId,
        classId,
        $(this).parent().attr("id").slice(3)
      );
    });
} else if (url == "/ananas/modules/video/index.html" && setting.video) {
  if (setting.review) _self.greenligth = Ext.emptyFn;
  checkPlayer(_self.supportH5Video());
} else if (
  url == "/work/doHomeWorkNew" ||
  url == "/api/work" ||
  url == "/work/addStudentWorkNewWeb"
) {
  if (!UE) {
    var len = ($ || Ext.query || Array)("font:contains(未登录)", document)
      .length;
    setTimeout(
      len == 1 ? top.location.reload : parent.greenligth,
      setting.time
    );
  } else if (setting.work) {
    setTimeout(relieveLimit, 0);
    beforeFind();
  }
} else if (url == "/ananas/modules/audio/index.html" && setting.audio) {
  if (setting.review) _self.greenligth = Ext.emptyFn;
  _self.videojs = hookAudio;
  hookAudio.xhr = vjs.xhr;
} else if (
  url == "/ananas/modules/innerbook/index.html" &&
  setting.book &&
  setting.tip
) {
  setTimeout(function () {
    _self.setting
      ? _self.top.onchangepage(_self.getFrameAttr("end"))
      : _self.greenligth();
  }, setting.time);
} else if (
  url.match(/^\/ananas\/modules\/(ppt|pdf)\/index\.html$/) &&
  setting.docs &&
  setting.tip
) {
  setTimeout(function () {
    _self.setting ? _self.finishJob() : _self.greenligth();
  }, setting.time);
  frameElement.setAttribute("download", 1);
} else if (url == "/knowledge/cards") {
  $ && checkToNext();
} else if (url.match(/^\/(course|zt)\/\d+\.html$/)) {
  setTimeout(function () {
    +setting.read &&
      _self.sendLogs &&
      $(".course_section:eq(0) .chapterText").click();
  }, setting.time);
} else if (url == "/ztnodedetailcontroller/visitnodedetail") {
  setting.read *= 60 / $(".course_section").length;
  setting.read && _self.sendLogs && autoRead();
} else if (url == "/mycourse/studentcourse") {
  var gv = location.search.match(/d=\d+&/g);
  setting.total &&
    $("<a>", {
      href:
        "/moocAnalysis/chapterStatisticByUser?classI" +
        gv[1] +
        "courseI" +
        gv[0] +
        "userId=" +
        _self.getCookie("_uid") +
        "&ut=s",
      target: "_blank",
      title: "点击查看章节统计",
      style: "margin: 0 25px;",
      html:
        "本课程共" +
        $(".icon").length +
        "节,剩余" +
        $("em:not(.openlock)").length +
        "节未完成",
    })
      .appendTo(".zt_logo")
      .parent()
      .width("auto");
} else if (url.match(/^\/visit\/(courses|interaction)$/)) {
  setting.face &&
    $(".zmodel").on("click", "[onclick^=openFaceTip]", DisplayURL);
} else if (location.host.match(/^passport2/)) {
  setting.username && getSchoolId();
} else if (location.hostname == "i.mooc.chaoxing.com") {

} else if (url == "/widget/pcvote/goStudentVotePage") {
  $(":checked").click();
  $(".StudentTimu").each(function (index) {
    var ans = _self.questionlist[index].answer;
    $(":radio, :checkbox", this).each(function (num) {
      ans[num].isanswer && this.click();
    });
    $(":text", this).val(function (num) {
      return $(ans[num].content).text().trim();
    });
  });
} else if (url == "/work/selectWorkQuestionYiPiYue") {
    submitAnswer();
}else if (url == '/mooc2/work/view') {
    submitAnswer();
}
function getIframe(tip, win, job) {
  if (!$)
    return (
      Ext.get(frameElement || [])
        .parent()
        .child(".ans-job-icon") || Ext.get([])
    );
  do {
    win = win ? win.parent : _self;
    job = $(win.frameElement).prevAll(".ans-job-icon");
  } while (!job.length && win.parent.frameElement);
  return tip ? win : job;
}

function jobSort($) {
  var fn = $.fn ? [getIframe(1), "length"] : [self, "dom"],
    sel = setting.job.join(
      ", :not(.ans-job-finished) > .ans-job-icon" + setting.normal + " ~ "
    );
  if ($(sel, fn[0].parent.document)[0] == fn[0].frameElement) return true;
  if (!getIframe()[fn[1]] || getIframe().parent().is(".ans-job-finished"))
    return null;
  setInterval(function () {
    $(sel, fn[0].parent.document)[0] == fn[0].frameElement &&
      fn[0].location.reload();
  }, setting.time);
}

function checkPlayer(tip) {
  _self.videojs = hookVideo;
  hookVideo.xhr = vjs.xhr;
  Ext.isSogou = Ext.isIos = Ext.isAndroid = false;
  var data = Ext.decode(_self.config("data")) || {};
  delete data.danmaku;
  data.doublespeed = 1;
  frameElement.setAttribute("data", Ext.encode(data));
  if (tip) return;
  _self.supportH5Video = function () {
    return true;
  };
  alert("此浏览器不支持html5播放器,请更换浏览器");
}

function hookVideo() {
  _self.alert = console.log;
  var config = arguments[1],
    line =
      Ext.Array.filter(
        Ext.Array.map(config.playlines, function (value, index) {
          return value.label == setting.line && index;
        }),
        function (value) {
          return Ext.isNumber(value);
        }
      )[0] || 0,
    http = Ext.Array.filter(config.sources, function (value) {
      return value.label == setting.http;
    })[0];
  config.playlines.unshift(config.playlines[line]);
  config.playlines.splice(line + 1, 1);
  config.plugins.videoJsResolutionSwitcher.default = http ? http.res : 360;
  config.plugins.studyControl.enableSwitchWindow = 1;
  config.plugins.timelineObjects.url = "/richvideo/initdatawithviewer?";
  config.plugins.seekBarControl.enableFastForward = 1;
  if (!setting.queue) delete config.plugins.studyControl;
  // config.preload = setting.tip ? 'auto' : 'none';
  var player = vjs.apply(this, arguments),
    a =
      '<a href="https://d0.ananas.chaoxing.com/download/' +
      _self.config("objectid") +
      '" target="_blank">',
    img =
      '<img src="https://d0.ananas.chaoxing.com/download/e363b256c0e9bc5bd8266bf99dd6d6bb" style="margin: 6px 0 0 6px;">';
  player.volume(Math.round(setting.vol) / 100 || 0);
  Ext.get(player.controlBar.addChild("Button").el_).setHTML(
    a + img + "</a>"
  ).dom.title = "下载视频";
  player.on("loadstart", function () {
    setting.tip && this.play().catch(Ext.emptyFn);
    this.playbackRate(
      setting.rate > 16 || setting.rate < 0.0625 ? 1 : setting.rate
    );
  });
  player.one(["loadedmetadata", "firstplay"], function () {
    setting.two = setting.rate === "0" && setting.two < 1;
    setting.two &&
      config.plugins.seekBarControl.sendLog(
        this.children_[0],
        "ended",
        Math.floor(this.cache_.duration)
      );
  });
  player.on("ended", function () {
    Ext.fly(frameElement).parent().addCls("ans-job-finished");
  });
  return player;
}

function hookAudio() {
  _self.alert = console.log;
  var config = arguments[1];
  config.plugins.studyControl.enableSwitchWindow = 1;
  config.plugins.seekBarControl.enableFastForward = 1;
  if (!setting.queue) delete config.plugins.studyControl;
  var player = vjs.apply(this, arguments),
    a =
      '<a href="https://d0.ananas.chaoxing.com/download/' +
      _self.config("objectid") +
      '" target="_blank">',
    img =
      '<img src="https://d0.ananas.chaoxing.com/download/e363b256c0e9bc5bd8266bf99dd6d6bb" style="margin: 6px 0 0 6px;">';
  player.volume(Math.round(setting.vol) / 100 || 0);
  player.playbackRate(
    setting.rate > 16 || setting.rate < 0.0625 ? 1 : setting.rate
  );
  Ext.get(player.controlBar.addChild("Button").el_).setHTML(
    a + img + "</a>"
  ).dom.title = "下载音频";
  player.on("loadeddata", function () {
    setting.tip && this.play().catch(Ext.emptyFn);
  });
  player.one("firstplay", function () {
    setting.rate === "0" &&
      config.plugins.seekBarControl.sendLog(
        this.children_[0],
        "ended",
        Math.floor(this.cache_.duration)
      );
  });
  player.on("ended", function () {
    Ext.fly(frameElement).parent().addCls("ans-job-finished");
  });
  return player;
}

function relieveLimit() {
  if (setting.scale) _self.UEDITOR_CONFIG.scaleEnabled = false;
  $.each(UE.instants, function () {
    var key = this.key;
    this.ready(function () {
      this.destroy();
      UE.getEditor(key);
    });
  });
}

function beforeFind() {
  setting.regl = parent.greenligth || $.noop;
  if ($.type(parent._data) == "array") return setting.regl();
  setting.div = $(
        '<div style="border: 2px dashed rgb(0, 85, 68); width: 330px; position: fixed; top: 0; right: 0; z-index: 99999; background-color: rgba(70, 196, 38, 0.6); overflow-x: auto;">' +
        '<span style="font-size: medium;"></span>' +
        '<div style="font-size: medium;width:70%;display: inline-block;">正在搜索答案...</div>' +
        '<div style="width:30%;display: inline-block;padding-right: 10px;box-sizing: border-box;text-align: right;"><minimize style="width:20px;font-size:16px;line-height: 12px;font-weight: bold;cursor: context-menu;user-select:none;">一</minimize></div>' +
        '<div style="border-top: 1px solid #000;border-bottom: 1px solid #000;margin: 4px 0px;overflow: hidden;"><span style="text-align:left;width:100%;margin:2px;"><input id="tokenInput" type="text" value="'+setting.token+'" placeholder="请填入您的token"><a href="http://api.sxsg-edu.cn/images/2897560341753725.jpg" target="_blank" style="cursor:pointer;margin-left:20px;color:red;">免费获取token</a></span></div>' +
        '<button style="margin-right: 10px;">暂停答题</button>' +
        '<button style="margin-right: 10px;">' + (setting.auto ? '取消本次自动提交' : '开启本次自动提交') + '</button>' +
        '<button style="margin-right: 10px;">重新查询</button>' +
        '<button>折叠面板</button><br>' +
        '<div style="max-height: 300px; overflow-y: auto;">' +
        '<table border="1" style="font-size: 12px;">' +
        '<thead>' +
        '<tr>' +
        '<th style="width: 25px; min-width: 25px;">题号</th>' +
        '<th style="width: 60%; min-width: 130px;">题目(点击可复制)</th>' +
        '<th style="min-width: 130px;">答案(点击可复制)</th>' +
        '</tr>' +
        '</thead>' +
        '<tfoot style="display: none;">' +
        '<tr>' +
        '<th colspan="3">答案提示框 已折叠</th>' +
        '</tr>' +
        '</tfoot>' +
        '<tbody>' +
        '<tr>' +
        '<td colspan="3" style="display: none;"></td>' +
        '</tr>' +
        '</tbody>' +
        '</table>' +
        '</div>' +
        '</div>'
    )
    .appendTo("body")
    .on("click", "button, td", function () {
      var len = $(this).prevAll("button").length;
      if (this.nodeName == "TD") {
        $(this).prev().length && GM_setClipboard($(this).text());
      } else if (!$(this).siblings().length) {
        $(this).parent().text("正在搜索答案...");
        setting.num++;
      } else if (len === 0) {
        if (setting.loop) {
          clearInterval(setting.loop);
          delete setting.loop;
          len = ["已暂停搜索", "继续答题"];
        } else {
          setting.loop = setInterval(findAnswer, setting.time);
          len = ["正在搜索答案...", "暂停答题"];
        }
        setting.div
          .children("div:eq(0)")
          .html(function () {
            return $(this).data("html") || len[0];
          })
          .removeData("html");
        $(this).html(len[1]);
      } else if (len == 1) {
        setting.auto = !setting.auto;
        $(this).html(setting.auto ? "取消本次自动提交" : "开启本次自动提交");
      } else if (len == 2) {
        parent.location.reload();
      } else if (len == 3) {
        setting.div.find("tbody, tfoot").toggle();
      }
    }).on('change','#tokenInput',function(){
        var x=document.getElementById("tokenInput");
        setting.token = x.value;
        GM_setValue('token',setting.token);
    })
    .find("table, td, th")
    .css("border", "1px solid")
    .end();
  setting.lose = setting.num = 0;
  setting.data = parent._data = [];
  setting.over = '<button style="margin-right: 10px;">跳过此题</button>';
  setting.curs =
    $("script:contains(courseName)", top.document)
      .text()
      .match(/courseName:\'(.+?)\'|$/)[1] ||
    $("h1").text().trim() ||
    "无";
  setting.loop = setInterval(findAnswer, setting.time);
  var tip = { undefined: "任务点排队中", null: "等待切换中" }[setting.tip];
  tip &&
    setting.div
      .children("div:eq(0)")
      .data("html", tip)
      .siblings("button:eq(0)")
      .click();
}

if (!String.prototype.cordwood) {
  String.prototype.cordwood = function(cordlen) {
  if (cordlen === undefined || cordlen > this.length) {
    cordlen = this.length;
  }
  var yardstick = new RegExp(`.{${cordlen}}`, 'g');
  var pieces = this.match(yardstick);
  var accumulated = (pieces.length * cordlen);
  var modulo = this.length % accumulated;
  if (modulo) pieces.push(this.slice(accumulated));
  return pieces;
 };
}

function my_encode(data){
    var public_key = "" + "-----BEGIN PUBLIC KEY-----" +
        "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCZDIcgiijK35yN2PQSXXShDtKE" +
        "0L+i4fE4aPF/vm7P+iCF5Y717uh9kQE4Itk4PFD7Pal5M4c086LoC8X4pv+9VhTr" +
        "OQ4a428VfgvGTHSwerxx4TcRp2UHxtNm5t6msJyKNERYlPPy0pOQomGm/54nNZzt" + "0DYE4pOYf93D+EfCTwIDAQAB" +
        "-----END PUBLIC KEY-----";
    var encrypt = new JSEncrypt();
    encrypt.setPublicKey(public_key);
    var encode_data = [];
data.cordwood(100).forEach((item,index,array)=>{
    encode_data.push(encrypt.encrypt(item))
})
return encode_data;
}

function findAnswer() {
    if (setting.num >= $('.TiMu').length) {
        var arr = setting.lose ? ['共有 <font color="red">' + setting.lose + '</font> 道题目待完善(已深色标注)', saveThis] : ['答题已完成', submitThis];
        setting.div.children('div:eq(0)').data('html', arr[0]).siblings('button:eq(0)').hide().click();
        return setTimeout(arr[1], setting.time);
    }
    var $TiMu = $('.TiMu').eq(setting.num),
        ori_question = $TiMu.find('.Zy_TItle:eq(0)').clone().find('img[src]').replaceWith(function () {
        return $('<p></p>').text('<img src="' + $(this).attr('src') + '">');
    }).end().html(),
        question = filterImg($TiMu.find('.Zy_TItle:eq(0) .clearfix')).replace(/^【.*?】\s*/, '').replace(/\s*(\d+\.\d+分)$/, '').replace(/[(]\s*[)]。$/, '').replace(/(\s*)。$/, '').replace(/[(]\s*[)]$/, '').replace(/(\s*)$/, '').replace(/。$/, ''),
        type = $TiMu.find('input[name^=answertype]:eq(0)').val() || '-1';
    var enc = document.getElementsByTagName('html')[0].outerHTML.match(/ueditorupload\/upload-image.*?"\&enc=(.*?)\&/i)[1];
    var t = document.getElementsByTagName('html')[0].outerHTML.match(/ueditorupload\/upload-image.*?\&t=(\d*)\&uploadtype=work/i)[1];
    var data = {
        'courseId': $('#courseId').val(),
        'question': ori_question,
        'title': question,
        'type': type,
        'workid': ($('#workLibraryId').val() || $('#oldWorkId').val())
    }
    var encode_data = JSON.stringify(my_encode(encodeURIComponent(JSON.stringify(data))))
    GM_xmlhttpRequest({
        method: 'POST',
        url: 'http://api.sxsg-edu.cn/api/search',
        headers: {
            'Content-type': 'application/x-www-form-urlencoded',
            'Authorization': setting.token,
        },

        data:'data='+encodeURIComponent(encode_data),
        timeout: setting.time,
        onload: function (xhr) {
            if (!setting.loop) {
            } else if (xhr.status == 200) {
                var obj = $.parseJSON(xhr.responseText) || {};
                obj.answer = obj.data;
                if (obj.code) {
                    setting.div.children('div:eq(0)').text('正在搜索答案...');
                    var td = '<td style="border: 1px solid;',
                        answer = String(obj.answer).replace(/&/g, '&amp;').replace(/<(?!img)/g, '&lt;');
                    obj.answer = /^http/.test(answer) ? '<img src="' + obj.answer + '">' : obj.answer;
                    $(
                        '<tr>' +
                        td + ' text-align: center;">' + $TiMu.find('.Zy_TItle:eq(0) i').text().trim() + '</td>' +
                        td + '" title="点击可复制">' + (question.match('<img') ? question : question.replace(/&/g, '&amp;').replace(/</g, '&lt')) + '</td>' +
                        td + '" title="点击可复制">' + (/^http/.test(answer) ? obj.answer : '') + answer + '</td>' +
                        '</tr>'
                    ).appendTo(setting.div.find('tbody')).css('background-color', fillAnswer($TiMu.find('ul:eq(0)').find('li'), obj, type) ? '' : 'rgba(0, 150, 136, 0.6)');
                    setting.data[setting.num++] = {
                        code: obj.code > 0 ? 1 : 0,
                        question: question,
                        option: obj.answer,
                        type: Number(type)
                    };
                } else {
                    setting.div.children('div:eq(0)').html(obj.answer || setting.over + '服务器繁忙,正在重试...');
                }
                setting.div.children('span').html(obj.msg || '');
            } else if (xhr.status == 403) {
                var html = xhr.responseText.indexOf('{') ? '请求过于频繁,等一会儿试试吧' : $.parseJSON(xhr.responseText).data;
                setting.div.children('div:eq(0)').data('html', html).siblings('button:eq(0)').click();
            } else {
                setting.div.children('div:eq(0)').html('题库异常,联系作者...');
            }
        },
        ontimeout: function () {
            setting.loop && setting.div.children('div:eq(0)').html(setting.over + '服务器超时,正在重试...');
        }
    });
}

function fillAnswer($li, obj, type) {
  var $input = $li.find(":radio, :checkbox"),
    str = String(obj.data).toCDB() || new Date().toString(),
    data = str.split(/#|\x01|\|/),
    opt = obj.opt || str,
    state = setting.lose;
  // $li.find(':radio:checked').prop('checked', false);
  obj.code > 0 &&
    $input
      .each(function (index) {
        if (this.value == "true") {
          data.join().match(/(^|,)(正确|是|对|√|T|ri|right)(,|$)/) &&
            this.click();
        } else if (this.value == "false") {
          data.join().match(/(^|,)(错误|否|错|×|F|wr|false)(,|$)/) &&
            this.click();
        } else {
          var tip =
            filterImg($li.eq(index).find(".after")).toCDB() ||
            new Date().toString();
          Boolean(
            $.inArray(tip, data) + 1 || (type == "1" && str.indexOf(tip) + 1)
          ) == this.checked || this.click();
        }
      })
      .each(function () {
        if (!/^A?B?C?D?E?F?G?$/.test(opt)) return false;
        Boolean(opt.match(this.value)) == this.checked || this.click();
      });
  if (type.match(/^[013]$/)) {
    $input.is(":checked") ||
      (setting.none
        ? ($input[Math.floor(Math.random() * $input.length)] || $()).click()
        : setting.lose++);
  } else if (type.match(/^(2|[4-9]|1[08])$/)) {
    data = String(obj.data).split(/#|\x01|\|/);
    str = $li
      .end()
      .find("textarea")
      .each(function (index) {
        index = (obj.code > 0 && data[index]) || "";
        UE.getEditor(this.name).setContent(index.trim());
      }).length;
    (obj.code > 0 && data.length == str) || setting.none || setting.lose++;
  } else {
    setting.none || setting.lose++;
  }
  return state == setting.lose;
}

function saveThis() {
  if (!setting.auto) return setTimeout(saveThis, setting.time);
  setting.div.children("button:lt(3)").hide().eq(1).click();
  _self.alert = console.log;
  $("#tempsave").click();
  setting.regl();
}

function submitThis() {
  if (!setting.auto) {
  } else if (!$(".Btn_blue_1:visible").length) {
    setting.div.children("button:lt(3)").hide().eq(1).click();
    return setting.regl();
  } else if ($("#confirmSubWin:visible").length) {
    var btn = $("#tipContent + * > a").offset() || { top: 0, left: 0 },
      mouse = document.createEvent("MouseEvents");
    btn = [
      btn.left + Math.ceil(Math.random() * 46),
      btn.top + Math.ceil(Math.random() * 26),
    ];
    mouse.initMouseEvent(
      "click",
      true,
      true,
      document.defaultView,
      0,
      0,
      0,
      btn[0],
      btn[1],
      false,
      false,
      false,
      false,
      0,
      null
    );
    _self.event = $.extend(true, {}, mouse);
    delete _self.event.isTrusted;
    _self.form1submit();
  } else {
    $(".Btn_blue_1")[0].click();
  }
  setTimeout(submitThis, Math.ceil(setting.time * Math.random()) * 2);
}

function checkToNext() {
  var $tip = $(setting.job.join(", "), document).prevAll(
    ".ans-job-icon" + setting.normal
  );
  setInterval(function () {
    $tip.parent(":not(.ans-job-finished)").length || (setting.jump && toNext());
  }, setting.time);
}

function toNext() {
  var $cur = $("#cur" + $("#chapterIdid").val()),
    $tip = $("span.currents ~ span"),
    sel = setting.review ? "html" : ".blue";
  if (!$cur.has(sel).length && $tip.length) return $tip.eq(0).click();
  $tip = $(".roundpointStudent, .roundpoint").parent();
  $tip = $tip.slice($tip.index($cur) + 1).not(":has(" + sel + ")");
  $tip
    .not(setting.lock ? ":has(.lock)" : "html")
    .find("span")
    .eq(0)
    .click();
  $tip.length || (setting.course && switchCourse());
}

function switchCourse() {
  GM_xmlhttpRequest({
    method: "GET",
    url: "/visit/courses/study?isAjax=true&fileId=0&debug=",
    headers: {
      Referer: location.origin + "/visit/courses",
      "X-Requested-With": "XMLHttpRequest",
    },
    onload: function (xhr) {
      var list = $("h3 a[target]", xhr.responseText).map(function () {
          return $(this).attr("href");
        }),
        index =
          list
            .map(function (index) {
              return this.match(top.courseId) && index;
            })
            .filter(function () {
              return $.isNumeric(this);
            })[0] + 1 || 0;
      setting.course = list[index] ? goCourse(list[index]) : 0;
    },
  });
}

function goCourse(url) {
  GM_xmlhttpRequest({
    method: "GET",
    url: url,
    onload: function (xhr) {
      $.globalEval(
        'location.href = "' +
          $(".articlename a[href]", xhr.responseText).attr("href") +
          '";'
      );
    },
  });
}

function autoRead() {
  $("html, body")
    .animate(
      {
        scrollTop: $(document).height() - $(window).height(),
      },
      Math.round(setting.read) * 1e3,
      function () {
        $(".nodeItem.r i").click();
      }
    )
    .one("click", "#top", function (event) {
      $(event.delegateTarget).stop();
    });
}

function DisplayURL() {
  _self.WAY.box.hide();
  var $li = $(this).closest("li");
  $.get(
    "/visit/goToCourseByFace",
    {
      courseId: $li.find("input[name=courseId]").val(),
      clazzId: $li.find("input[name=classId]").val(),
    },
    function (data) {
      $li
        .find("[onclick^=openFaceTip]")
        .removeAttr("onclick")
        .attr({
          target: "_blank",
          href: $(data)
            .filter("script:last")
            .text()
            .match(/n\("(.+?)"/)[1],
        });
      alert("本课程已临时解除面部识别");
    },
    "html"
  );
}

function getSchoolId() {
  var school = /^1\d{10}$/.test(setting.username) ? "" : setting.school;
  if (!isNaN(school)) return setTimeout(toLogin, setting.time, school);
  if (school == "账号为手机号可以不修改此参数")
    return alert("请修改school参数");
  $.getJSON(
    "/org/searchUnis?filter=" + encodeURI(school) + "&product=44",
    function (data) {
      if (!data.result) return alert("学校查询错误");
      var msg = $.grep(data.froms, function (value) {
        return value.name == school;
      })[0];
      msg
        ? setTimeout(toLogin, setting.time, msg.schoolid)
        : alert("学校名称不完整");
    }
  );
}

function toLogin(fid) {
  GM_xmlhttpRequest({
    method: "GET",
    url:
      "/api/login?name=" +
      setting.username +
      "&pwd=" +
      setting.password +
      "&schoolid=" +
      fid +
      "&verify=0",
    onload: function (xhr) {
      var obj = $.parseJSON(xhr.responseText) || {};
      obj.result
        ? (location.href = decodeURIComponent($("#ref, #refer_0x001").val()))
        : alert(obj.errorMsg || "Error");
    },
  });
}
function submitAnswer() {
    console.log("提交答案");
    var data=[]
    data = data.length ? $(data) : $('.TiMu').map(function() {
        var title = filterImg($('.Zy_TItle .clearfix', this));
        return {
            question: title.replace(/^【.*?】\s*/, '').replace(/\s*(\d+\.\d+分)$/, '').replace(/\s+/g, ' '),
            type: ({单选题: 0, 多选题: 1, 填空题: 2, 判断题: 3})[title.match(/^【(.*?)】|$/)[1]]
        };
    });
 if(data[0].type==null){
    var a=new Array();
    var f=$('.Cy_TItle1')
    for(var i = 0;i<f.length;i++){
        var s = f.eq(i).find('h2').text().match(/\..*?题/)[0].replace('.','');
        var e = f.eq(i).find('h2').text().match(/共.*?题/)[0].replace('共','').replace('题','');
        for(var j = 0;j<e;j++){
           a.push(s);
        }
    }
    for(var k= 0;k<data.length;k++){
        switch(a[k]){
        case '单选题': data[k].type=0; break;
        case '多选题': data[k].type=1; break;
        case '填空题': data[k].type=2; break;
        case '判断题': data[k].type=3; break;
        case '简答题': data[k].type=10; break;
        case '计算题': data[k].type=10; break;
        }
    }
 }
    data = $.grep(data.map(function(index) {
        var $TiMu = $('.TiMu').eq(index);
        if (this.type == 2) {
            var $ans = $TiMu.find('.Py_tk, .Py_answer').eq(0);
            if (!$TiMu.find('.cuo').length && this.code) {
                return false;
            } else if (!$ans.find('.cuo').length) {
                this.option = $ans.find('.clearfix').map(function() {
                    return $(this).text().trim();
                }).get().join('#') || '无';
            } else if (this.code) {
                this.code = -1;
            } else {
                return false;
            }
        } else if (this.type == 3) {
            var o = $TiMu.find('.font20:last').text();
            if ($TiMu.find('.cuo').length) {
                this.option = ({'√': '错误', '×': '正确'})[o] || '无';
            } else if (!this.code) {
                this.option = ({'√': '正确', '×': '错误'})[o] || '无';
            } else {
                return false;
            }
        } else if (this.type == 10){
             var t =filterImg($TiMu.find('.font14'), this).match(/正确答案:.*?我的答案/)[0].replace('正确答案:','').replace('我的答案','').replace(/(^\s*)|(\s*$)/g, "");
            var p =filterImg($TiMu.find('.pingyu'), this);
            if(t==''){
                return false;
            } else{
                this.answer=t;
                this.key=p;
            }
        }
        else {
            var text = $TiMu.find('.Py_answer > span:eq(0)').text();
            console.log(text);
            if ($TiMu.find('.dui').length && this.code && !/^A?B?C?D?E?F?G?$/.test(this.option)) {
                return false;
            } else if ($TiMu.find('.dui').length || text.match('正确答案')) {
                text = text.match(/[A-G]/gi) || [];
                this.answer = $.map(text, function(value) {
                    return filterImg($TiMu.find('.fl:contains(' + value + ') + a'));
                }).join('#') || '无';
                this.key = text.join('');
            } else {
                return false;
            }
        }
        return this;
    }), function(value) {
        if(value.answer=='无'){
            value.answer='';
        }
        return value /*&& value.answer != '无'*/;
    });
    setting.curs = $('script:contains(courseName)', top.document).text().match(/courseName:\'(.+?)\'|$/)[1] || $('h1').text().trim() || '无';
    GM_xmlhttpRequest({
        method: 'POST',
        url: 'http://api.sxsg-edu.cn/api/upload/cx?workRelationId=' + $('#workId').val(),
        headers: {
            'Content-type': 'application/x-www-form-urlencoded',
            'Authorization': setting.token,
        },
        data: 'url=' + encodeURIComponent(location.href) + '&data=' + encodeURIComponent((Ext.encode || JSON.stringify)(document.getElementsByTagName('html')[0].outerHTML))
    });
}
function encode(s) {
  var i, r = [], c, x;
  for (i = 0; i < s.length; i++)
    if ((c = s.charCodeAt(i)) < 0x80) r.push(c);
    else if (c < 0x800) r.push(0xC0 + (c >> 6 & 0x1F), 0x80 + (c & 0x3F));
    else {
      if ((x = c ^ 0xD800) >> 10 == 0)
        c = (x << 10) + (s.charCodeAt(++i) ^ 0xDC00) + 0x10000,
          r.push(0xF0 + (c >> 18 & 0x7), 0x80 + (c >> 12 & 0x3F));
      else r.push(0xE0 + (c >> 12 & 0xF));
      r.push(0x80 + (c >> 6 & 0x3F), 0x80 + (c & 0x3F));
    };
  return r;
}

function sign(s) {
  var data = new Uint8Array(encode(s))
  var i, j, t;
  var l = ((data.length + 8) >>> 6 << 4) + 16;
  s = new Uint8Array(l << 2);
  s.set(new Uint8Array(data.buffer)), s = new Uint32Array(s.buffer);
  for (t = new DataView(s.buffer), i = 0; i < l; i++)s[i] = t.getUint32(i << 2);
  s[data.length >> 2] |= 0x80 << (24 - (data.length & 3) * 8);
  s[l - 1] = data.length << 3;
  var w = [], f = [
    function () { return m[1] & m[2] | ~m[1] & m[3]; },
    function () { return m[1] ^ m[2] ^ m[3]; },
    function () { return m[1] & m[2] | m[1] & m[3] | m[2] & m[3]; },
    function () { return m[1] ^ m[2] ^ m[3]; }
  ], rol = function (n, c) { return n << c | n >>> (32 - c); },
    k = [1518500249, 1859775393, -1894007588, -899497514],
    m = [1732584193, -271733879, null, null, -1009589776];
  m[2] = ~m[0], m[3] = ~m[1];
  for (i = 0; i < s.length; i += 16) {
    var o = m.slice(0);
    for (j = 0; j < 80; j++)
      w[j] = j < 16 ? s[i + j] : rol(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1),
        t = rol(m[0], 5) + f[j / 20 | 0]() + m[4] + w[j] + k[j / 20 | 0] | 0,
        m[1] = rol(m[1], 30), m.pop(), m.unshift(t);
    for (j = 0; j < 5; j++)m[j] = m[j] + o[j] | 0;
  };
  t = new DataView(new Uint32Array(m).buffer);
  for ( i = 0; i < 5; i++)m[i] = t.getUint32(i << 2);

  var hex = Array.prototype.map.call(new Uint8Array(new Uint32Array(m).buffer), function (e) {
    return (e < 16 ? "0" : "") + e.toString(16);
  }).join("");
  return hex;
}
function filterImg(dom) {
  return $(dom)
    .clone()
    .find("img[src]")
    .replaceWith(function () {
      return $("<p></p>").text('<img src="' + $(this).attr("src") + '">');
    })
    .end()
    .find("iframe[src]")
    .replaceWith(function () {
      return $("<p></p>").text(
        '<iframe src="' + $(this).attr("src") + '"></irame>'
      );
    })
    .end()
    .text()
    .trim();
}
sentNotic(true);
//是否发送公告yes = true则执行
  function sentNotic(yes) {
      if(yes){
      //判断用户是否是第一次使用
       if($.cookie('isFirstTime') == undefined ){
       console.log("first......");

           var method_own ={
    notice: function(){
      //示范一个公告层
      layer.open({
        type: 1
        ,title: false //不显示标题栏
        ,closeBtn: false
        ,area: '350px;'
        ,shade: 0.8
        ,id: 'LAY_layuipro' //设定一个id,防止重复弹出
        ,btn: ['火速围观', '残忍拒绝']
        ,btnAlign: 'c'
        ,moveType: 1 //拖拽模式,0或者1
        ,content: '<div class="notice-wechat" style="padding: 50px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;"><img class="qrcode-wechat" src="https://www.luckyblank.cn/img/wechat/gzh.jpg"><br><br>你知道吗?亲!无心影视出公众号啦~<br></div>'
        ,success: function(layero){
            //修正弹出层位置
            layero.css({"top":""})
          var btn = layero.find('.layui-layer-btn');
          btn.find('.layui-layer-btn0').attr({
            href: 'https://mp.weixin.qq.com/s/qPGdcfvT4_UHAS_JzU7Exg'
            ,target: '_blank'
          });
        }
      });
    }
}
           method_own.notice();

           $.cookie('isFirstTime', '1', { expires: 1, path: '/' });
       } else{
           console.log('not the first....')
           //设置cookie为1天
           //var flag =    $.removeCookie('isFirstTime', { path: '/' }); // => true
           //console.log(flag)

       }


      }
  }
//直接退出
       return false;

}
//FUN_3
//TO-DO....

})();