提交 2a9d474c 编写于 作者: H hjdhnx

升级了

上级 4e0cadfd
......@@ -552,6 +552,10 @@ class CMS:
except Exception as e:
logger.info(f'首页推荐执行js获取列表出错:{e}')
else:
if p == '*' and self.一级:
p = self.一级
self.double = False
logger.info(f'首页推荐继承一级: {p}')
p = p.strip().split(';') # 解析
if not self.double and len(p) < 5:
return self.blank()
......
3.9.6beta2
\ No newline at end of file
3.9.7
\ No newline at end of file
......@@ -20,8 +20,7 @@ var rule = {
lazy:'',
limit:6,
double:false,
推荐:'.item-box&&ul&&li;a&&title;img&&data-original;;a&&href',
推荐:'*',
一级:'.item-box&&ul&&li;a&&title;img&&data-original;;a&&href',
二级:'*',
//搜索:'.search-video-box&&ul&&li;h3&&Text;img&&src;;a&&href',
}
\ No newline at end of file
......@@ -432,6 +432,7 @@ const defaultParser = {
},
};
/**
* pdfh原版优化,能取style属性里的图片链接
* @param html 源码
......@@ -1022,6 +1023,10 @@ function homeVodParse(homeVodObj){
// setItem('MY_URL',MY_URL);
console.log(MY_URL);
let p = homeVodObj.推荐;
if(p==='*' && rule.一级){
p = rule.一级;
homeVodObj.double = false;
}
if(!p||typeof(p)!=='string'){
return '{}'
}
......
此差异已折叠。
import './util-ym.js'
import dr from './drpy.js'
import './util.ym.js'
import dr from './drpy.min.js'
__JS_SPIDER__ = dr.DRPY()
\ No newline at end of file
import 'assets://js/lib/uri.min.js'
import cheerio from 'assets://js/lib/cheerio.min.js';
import 'assets://js/lib/crypto-js.js'
import 'assets://js/lib/dayjs.min.js'
import _ from 'assets://js/lib/underscore-esm-min.js'
var charStr = 'abacdefghjklmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ0123456789';
export function randIndex(min, max, i) {
......@@ -23,155 +21,6 @@ export function randomStr(len) {
}
return _str;
}
if (typeof Object.assign != 'function') {
Object.assign = function () {
var target = arguments[0];
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
for (var key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
}
return target;
};
}
if (!String.prototype.includes) {
String.prototype.includes = function (search, start) {
if (typeof start !== 'number') {
start = 0;
}
if (start + search.length > this.length) {
return false;
} else {
return this.indexOf(search, start) !== -1;
}
};
}
if (!Array.prototype.includes) {
Object.defineProperty(Array.prototype, 'includes', {
value: function (searchElement, fromIndex) {
if (this == null) {//this是空或者未定义,抛出错误
throw new TypeError('"this" is null or not defined');
}
var o = Object(this);//将this转变成对象
var len = o.length >>> 0;//无符号右移0位,获取对象length属性,如果未定义就会变成0
if (len === 0) {//length为0直接返回false未找到目标值
return false;
}
var n = fromIndex | 0;//查找起始索引
var k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);//计算正确起始索引,因为有可能是负值
while (k < len) {//从起始索引处开始循环
if (o[k] === searchElement) {//如果某一位置与寻找目标相等,返回true,找到了
return true;
}
k++;
}
return false;//未找到,返回false
}
});
}
if (typeof String.prototype.startsWith != 'function') {
String.prototype.startsWith = function (prefix) {
return this.slice(0, prefix.length) === prefix;
};
}
if (typeof String.prototype.endsWith != 'function') {
String.prototype.endsWith = function (suffix) {
return this.indexOf(suffix, this.length - suffix.length) !== -1;
};
}
Object.prototype.myValues = function (obj) {
if (obj == null) {
throw new TypeError("Cannot convert undefined or null to object");
}
var res = []
for (var k in obj) {
if (obj.hasOwnProperty(k)) {//需判断是否是本身的属性
res.push(obj[k]);
}
}
return res;
}
if (typeof Object.prototype.values != 'function') {
Object.prototype.values = function (obj) {
if (obj == null) {
throw new TypeError("Cannot convert undefined or null to object");
}
var res = []
for (var k in obj) {
if (obj.hasOwnProperty(k)) {//需判断是否是本身的属性
res.push(obj[k]);
}
}
return res;
}
}
if (typeof Array.prototype.join != 'function') {
Array.prototype.join = function (emoji) {
// emoji = emoji||',';
emoji = emoji || '';
let self = this;
let str = "";
let i = 0;
if (!Array.isArray(self)) { throw String(self) + 'is not Array' }
if (self.length === 0) { return '' }
if (self.length === 1) { return String(self[0]) }
i = 1;
str = this[0];
for (; i < self.length; i++) {
str += String(emoji) + String(self[i]);
}
return str;
};
}
String.prototype.rstrip = function (chars) {
let regex = new RegExp(chars + "$");
return this.replace(regex, "");
};
Array.prototype.append = Array.prototype.push;
String.prototype.strip = String.prototype.trim;
export function 是否正版(vipUrl) {
let flag = new RegExp('qq\.com|iqiyi\.com|youku\.com|mgtv\.com|bilibili\.com|sohu\.com|ixigua\.com|pptv\.com|miguvideo\.com|le\.com|1905\.com|fun\.tv');
return flag.test(vipUrl);
}
export function urlDeal(vipUrl) {
if (!vipUrl) {
return ''
}
if (!是否正版(vipUrl)) {
return vipUrl
}
if (!/miguvideo/.test(vipUrl)) {
vipUrl = vipUrl.split('#')[0].split('?')[0];
}
return vipUrl
}
export function urlencode(str) {
str = (str + '').toString();
return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28').
replace(/\)/g, '%29').replace(/\*/g, '%2A').replace(/%20/g, '+');
}
export function base64Encode(text) {
return CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(text));
}
export function base64Decode(text) {
return CryptoJS.enc.Utf8.stringify(CryptoJS.enc.Base64.parse(text));
}
export function urljoin(base, url) {
base = base || '';
......@@ -195,10 +44,6 @@ export function urljoin(base, url) {
return u.toString();
}
export function md5(src) {
return CryptoJS.MD5(src).toString();
}
const DOM_CHECK_ATTR = /(url|src|href|data-original|data-src)$/;
const SELECT_REGEX = /:eq|:lt|:gt|#/g;
const SELECT_REGEX_A = /:eq|:lt|:gt/g;
......@@ -284,17 +129,30 @@ export function pdfa(html, parse) {
return result;
}
const defaultParser = {
pdfh:pdfh,
pdfa:pdfa,
pd(html,parse,uri){
let ret = this.pdfh(html,parse);
if(typeof(uri)==='undefined'||!uri){
uri = '';
}
if(DOM_CHECK_ATTR.test(parse)){
if(/http/.test(ret)){
ret = ret.substr(ret.indexOf('http'));
}else{
ret = urljoin(MY_URL,ret)
}
}
return ret
},
};
globalThis.randIndex = randIndex;
globalThis.randomStr = randomStr;
globalThis.urljoin = urljoin;
globalThis.joinUrl = urljoin;
globalThis.urljoin2 = urljoin;
globalThis.是否正版 = 是否正版;
globalThis.urlDeal = urlDeal;
globalThis.urlencode = urlencode;
globalThis.encodeUrl = urlencode;
globalThis.base64Encode = base64Encode;
globalThis.base64Decode = base64Decode;
globalThis.pdfa = pdfa;
globalThis.pdfh = pdfh;
globalThis.md5 = md5;
\ No newline at end of file
globalThis.defaultParser = defaultParser;
globalThis.pdfa = defaultParser.pdfa;
globalThis.pdfh = defaultParser.pdfh;
globalThis.pd = defaultParser.pd;
\ No newline at end of file
......@@ -50,6 +50,9 @@
###### 2022/10/14
- [X] todo:推荐支持* 自动集成一级定位
- [X] todo:辅助嗅探
- [X] done:推荐支持* 自动继承一级定位(参考短视频.js)
- [X] done:drpy.js优化,drpy.ym.js完美支持pythonbox及俊版tvb
- [X] 升级版本至3.9.7
###### 2022/10/13
- [X] 3.9.5修复凌云影视源并增加短视模板
- [X] 增加秋霞影视,ddys等半成品(优化代码兼容取style属性的情况自动提取链接)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册