IronKinoko / agefans-enhance

增强 agefans 等网站播放功能,实现自动换集、画中画、历史记录、断点续播、弹幕等功能
https://greasyfork.org/scripts/424023
MIT License
121 stars 6 forks source link

获取全部视频链接 经常失败 #10

Closed PYUDNG closed 3 years ago

PYUDNG commented 3 years ago

首先感谢作者实现了这个功能,谢谢!

不知道是不是更新cookie后的访问超时问题,经常显示加载出错,重试。可以试试出错后自动重试,参照agefans自己的代码里的超时自动重试三次:

function __getset_play(_in_id, cb_getplay_url, cb_cnt){
    //
    const _url = window.location.href;
    const _rand = Math.random();
    const _getplay_url = cb_getplay_url();
    if(dettchk()){
      $.get(_getplay_url, function(_in_data, _in_status){
          if('err:timeout' == _in_data){
            if(cb_cnt > 0){
              __getplay_pck();
              __getplay_pck2();
              return __getset_play(_in_id, cb_getplay_url, cb_cnt-1);
            }else {
              return false;
            }
          }

          //
          if(__ipchk_getplay(_in_data)){
            return false;
          }

          //
          const _json_obj = JSON.parse(_in_data);
          const _purl = _json_obj['purl'];
          const _vurl = _json_obj['vurl'];
          const _play_ex = _json_obj['ex'];
          const vlt_lr = __get_vlt_lr(_play_ex);

          //
          if(__qpic_chkvurl_converting(_vurl)){
            return false;
          }

          //
          const _playid = _json_obj['playid'];
          var _vurlp2_getplay_url = '';
          if(_playid.indexOf('<play>PC-') >= 0){
              _vurlp2_getplay_url = ('&getplay_url=' + encodeURIComponent(_getplay_url));
          }

          //
          if(__qlive_play(_playid, _vurl, __qlive_play_callbak, _in_id, _json_obj, cb_getplay_url)){
            return (true + 1);
          }

          //
          document.getElementById(_in_id).src = ___make_url_vlt_param(_purl + _vurl + _vurlp2_getplay_url, vlt_lr);
          //
          return true;
      });
    }
    //
    return false;
}

感谢作者!

PYUDNG commented 3 years ago

代码来自:s_playpre.js | 地址:https://cdn.radius-america.com/age/static/js/s_playpre.js?ver=202102251329

IronKinoko commented 3 years ago

其实有人反馈短时间内调用多了会被限制,批量拉取链接其实有点危险的。为保证正常的观看,所以没提供自动的重试,改用手动重试了