// ==UserScript==
// @name Jav综合工具(社区公开版)
// @name:zh-CN Jav综合工具(社区公开版)
// @namespace urn:jav-all-in-one:community-edition
// @version 1.7.0
// @description 影片信息排版、封面/预览图轮播、磁力整理与收藏、论坛回复资源扫描、JavBus/JavDB 同步及可选预告片诊断
// @description:zh-CN 影片信息排版、封面/预览图轮播、磁力整理与收藏、论坛回复资源扫描、JavBus/JavDB 同步及可选预告片诊断
// @author 社区维护版(详见 NOTICE)
// @license GPL-3.0-only
// @homepageURL https://github.com/snyb12138/jav-all-in-one
// @supportURL https://github.com/snyb12138/jav-all-in-one/issues
// @downloadURL https://raw.githubusercontent.com/snyb12138/jav-all-in-one/main/jav-all-in-one.user.js
// @updateURL https://raw.githubusercontent.com/snyb12138/jav-all-in-one/main/jav-all-in-one.user.js
// javbus
// @match *://javbus.com/*
// @match *://*.javbus.com/*
// javdb
// @match *://javdb.com/*
// @match *://*.javdb.com/*
// @match *://javdb368.com/*
// @match *://*.javdb368.com/*
// @match *://www.javdb.com/*
// javlib
// @include *://*.javlib.com/*
// @include *://*.javlibrary.com/*
// @match *://*.javlib.com/*
// @match *://*.javlibrary.com/*
// @match *://j12lib.com/*
// @match *://*.j12lib.com/*
// @match *://r86m.com/*
// @match *://*.r86m.com/*
// avmoo avsox (2026-09 avmoo.shop/avsox.click/avheat.shop 已改版为 Vue SPA 动态加载)
// @match *://avmoo.shop/*/movie/*
// @match *://avsox.click/*/movie/*
// @match *://avheat.shop/*/movie/*
// @match *://avmoo.shop/*/movies/*
// @match *://avsox.click/*/movies/*
// @match *://avheat.shop/*/movies/*
// 98
// @match https://www.sehuatang.net/thread-*
// @match https://www.sehuatang.net/forum.php?mod=viewthread&tid=*
// @match https://www.tanhuazu.com/threads/*
// javbooks aabb1802.com mm18news.com mm18vc.com
// @match *://javbooks.com/content*censored/*.htm
// @match *://jmvbt.com/content*censored/*.htm
// @include /^https:\/\/jbk008\.com\/serchinfo\_(censored|uncensored)\/topicsbt/
// msin适配
// @match *://db.msin.jp/jp.page/movie?id=*
// @match *://db.msin.jp/page/movie?id=*
// 匹配有码厂商详情页
// @match *://xslist.org/search?query=*
// 脚本3追加站点
// @match *://onejav.com/*
// @match *://*.onejav.com/*
// @match *://jav321.com/video/*
// @match *://*.jav321.com/video/*
// @match *://javstore.net/*
// @match *://*.javstore.net/*
// @match *://115.com/*
// @match *://*.115.com/*
// @match *://*.quark.cn/list*
// @match *://dmm.com/*
// @match *://*.dmm.com/*
// @match *://dmm.co.jp/*
// @match *://*.dmm.co.jp/*
// @grant GM_xmlhttpRequest
// @grant GM_getValue
// @grant GM_setValue
// @grant GM_addValueChangeListener
// @grant GM_notification
// @grant GM_addStyle
// @grant GM_registerMenuCommand
// @grant GM_openInTab
// @grant GM_deleteValue
// @grant GM_setClipboard
// @grant GM_info
// @require https://code.jquery.com/jquery-3.6.3.min.js
// @require https://cdn.jsdelivr.net/gh/bolin-dev/JavPack@3de5843453cbaca9b74ca7e02929d15ec0da1a73/libs/JavPack.Grant.lib.js
// @require https://cdn.jsdelivr.net/gh/bolin-dev/JavPack@3de5843453cbaca9b74ca7e02929d15ec0da1a73/libs/JavPack.Magnet.lib.js
// @require https://cdn.jsdelivr.net/gh/bolin-dev/JavPack@3de5843453cbaca9b74ca7e02929d15ec0da1a73/libs/JavPack.Util.lib.js
// @require https://cdn.jsdelivr.net/gh/bolin-dev/JavPack@3de5843453cbaca9b74ca7e02929d15ec0da1a73/libs/JavPack.Req.lib.js
// @require https://cdn.jsdelivr.net/gh/bolin-dev/JavPack@3de5843453cbaca9b74ca7e02929d15ec0da1a73/libs/JavPack.Req115.lib.js
// @require https://lib.baomitu.com/lovefield/2.1.12/lovefield.min.js
// @require https://lib.baomitu.com/limonte-sweetalert2/9.17.2/sweetalert2.all.min.js
// @connect self
// @connect 115.com
// @connect quark.cn
// @connect javbus.com
// @connect javdb.com
// @connect javdb368.com
// @connect javlibrary.com
// @connect javlib.com
// @connect j12lib.com
// @connect r86m.com
// @connect javfree.me
// @connect memojav.com
// @connect jav321.com
// @connect javstore.net
// @connect blogjav.net
// @connect bing.com
// @connect pixhost.to
// @connect pixhost.org
// @connect imagetwist.com
// @connect btsow.motorcycles
// @connect btdig.com
// @connect nyaa.si
// @connect torrentkitty.one
// @connect dmm.com
// @connect dmm.co.jp
// @connect mgstage.com
// @connect tokyo-hot.com
// @connect aventertainments.com
// @connect 1pondo.tv
// @connect eroxjapanz.com
// @connect 10musume.com
// @connect caribbeancom.com
// @connect pacopacomama.com
// @connect legsjapan.com
// @connect heyzo.com
// @connect fc2.com
// @connect attackers.net
// @connect av-e-body.com
// @connect av-opera.jp
// @connect befreebe.com
// @connect bi-av.com
// @connect bibian-av.com
// @connect dasdas.jp
// @connect fitch-av.com
// @connect hajimekikaku.com
// @connect hhh-av.com
// @connect honnaka.jp
// @connect ideapocket.com
// @connect kawaiikawaii.jp
// @connect kirakira-av.com
// @connect madonna-av.com
// @connect miman.jp
// @connect mko-labo.net
// @connect moodyz.com
// @connect muku.tv
// @connect mvg.jp
// @connect nanpa-japan.jp
// @connect oppai-av.com
// @connect premium-beauty.com
// @connect rookie-av.jp
// @connect s1s1s1.com
// @connect tameikegoro.jp
// @connect to-satsu.com
// @connect v-av.com
// @connect wanz-factory.com
// @connect ec.sod.co.jp
// @noframes
// @run-at document-end
// ==/UserScript==
/**
* - 2026-10-22:v1.7.0 正式公开版:Violentmonkey/Tampermonkey 实机验收通过;加入 GitHub 安装、更新与问题反馈地址
* - 2026-10-22:v1.7.0-rc2 修复公开版默认关闭外部预览源时连带禁用 JavBus 封面/原生样品图轮播;轮播保持启用,开关只控制 JavFree/MemoJAV 请求
* - 2026-10-22:v1.7.0-rc1 GitHub 公开候选版:移除 @connect * 和跨站泛匹配,联网域名改为安装时明示清单;账户查询默认关闭;公开版暂不包含 Emby
* - 2026-10-22:v1.6.12 清理 JavBus 帖子页顶部 .bcpic/.bcpic2 占位,以及精选主题附近 .banner300 和回复框上方 .banner728 广告
* - 2026-10-22:v1.6.11 补齐 JavBus 旧版 .ad-list/.ad-table,并按 #urad2/bootstr 标记精确移除详情页“推荐”广告标题与相邻三列广告
* - 2026-10-22:v1.6.10 新增 JavBus 精确广告过滤:处理 .ad-box/.ad-item 与动态插入,保留 iframe、播放器和资源区,并提供菜单开关
* - 2026-10-22:v1.6.9 外站磁力查询结果按番号与来源做页面内缓存,重复切换不再请求或闪现查询提示
* - 2026-10-22:v1.6.8 JavBus 详情页默认立即显示原生磁力;仅在用户选择外站后启动外站回退查询
* - 2026-10-22:v1.6.7 修复磁力来源回退循环变量未初始化,导致全部外站永久停留在 Loading
* - 2026-10-21:v1.6.6 磁力外站来源自动回退:优先展示实际返回磁力的来源,无结果来源仍保留供手动切换
* - 2026-10-21:v1.6.5 修复 JavBus 竖向样品图被裁切、原图因 referrer 策略降级为缩略图,以及双重全屏弹窗
* - 2026-10-21:v1.6.4 修复封面尚未完成解码时宽高混用,导致轮播容器被压成黑线的问题
* - 2026-10-21:v1.6.3 预告片默认关闭并提供菜单开关;JavBus 原生磁力改为与外部站点平级的独立来源
* - 2026-10-21:v1.6.2 将 JavBus 原生样品图并入封面轮播;把原站磁力投稿入口移动到整合磁力表末尾并保留原事件
* - 2026-10-21:v1.6.1 锁定轮播前的原封面列宽度,修复长图或横图把影片信息挤到下一行
* - 2026-10-21:v1.6.0 预览图整合进原封面框:第 0 页保留网站封面、等比例翻页、单击全屏,长图支持滚动查看
* - 2026-10-21:v1.5.4 修正紧凑信息栏换行;恢复旧版左右布局,并把 JavBus 原生磁力安全合并到右侧聚合磁力表
* - 2026-10-21:v1.5.3 JavBus 详情页加入紧凑影片信息与统一资源区,原生磁力表、分页预览图和资源收藏夹共用同一入口
* - 2026-10-21:v1.5.2 预览图改为单张分页并优先加载当前页;预告片失败时自动回退,全部失败后自动隐藏播放器
* - 2026-10-21:v1.5.1 修复多来源图片状态停留在“验证中”;显示逐来源结果;修正 HEYZO 官网样片地址及播放器路由
* - 2026-10-21:v1.5.0 新增安全多来源预览图内核:独立会话/generation、适配器白名单、重定向复验、图片 Content-Type 验证与成功结果缓存
* - 2026-10-21:v1.4.1 资源收藏夹支持 JavDB 读写与跨站存储变化监听;论坛扫描和列表标记仍限 JavBus
* - 2026-10-21:v1.4.0 资源收藏夹 schema v2:磁力标签/排序/过滤、可追溯多来源、双层 revision、同源 BroadcastChannel 通知与列表页收藏状态
* - 2026-10-20:v1.3.0 合并“回复资源”与磁力收藏夹:扫描结果一键导入、粘贴自动整理、持久化去重与跨标签同步
* - 2026-10-21:v1.3.2 改进 CANDIDATES_EXHAUSTED 展示:区分来源缺失、访问受阻、诊断未完成与其他不可用;不改变来源解析顺序
* - 2026-10-20:v1.2.0 新增 JavBus 帖子回复资源汇总:番号/磁力提取、规范化去重、楼层回跳与跨页扫描
* - 2026-10-20:v1.1.1 修复数字下划线番号被标题正文污染并误送 DMM;1Pondo MP4 改用 HTTPS
* - 2026-10-20:预告片诊断基线 v1:PreviewSession/generation、幂等释放、MediaSource 所有权、来源域名边界校验、三路网络诊断与可复制日志;不改变现有来源解析顺序
* - 2026-09-27:新增115网盘资源匹配 感谢JavPack提供的115接口,github.com/bolin-dev/jav-pack-script ,左键进115vod/右键进网盘;备用搜索走 webapi.115.com(两个接口都需浏览器已登录115),失败(115未登录或资源)显示查询失败
* - 2026-09-27:长缩略图换源:优先 javfree.me 图集,旧 javstore/memojav 做备用,补齐 javbooks/sehuatang/since 三站,右侧加“隐藏/展开”按钮,收起整组截图
* - 2026-09-27:Emby脱敏:移除内网地址/API Key,改为油猴菜单配置,持久保存,升级不丢失,未配置时静默跳过;页面右下角常驻“Emby设置”按钮(已配置显示“Emby已配置”)点开面板填地址+密钥,保存后自动刷新生效
* - 2026-09-27:适配 avmoo.shop/avsox.click/avheat.shop
* - 2026-09-27:db.msin.jp网站已失效太久,移除相关代码,部分备注保留
* - 2024-12-03:cc3001.dmm.com域名污染严重,大部分网友访问异常,更换为cc3001.dmm.com(推荐使用分流规则解决此问题)
* - 2023-11-18:新增支持m3u8格式
* - 2023-10-20:新增 emby跳转(若库中存在),代码引用自 https://sleazyfork.org/zh-CN/scripts/474687-javlib-emby-highlighter-and-redirector
* - 2023-08-19:新增视频长缩略图,如有则显示
* - 2023-05-11:番号系列对象数组暂定4个数值,依次为:番号系列前缀\是否加00\分辨率\车牌后缀,为了更快更精准,加了后面两个,但是这个校对工程太大,将是一个长期核验的大工程!
* - 2023-04-15 匹配几乎全部fanxi(番号系列),预览片来自Fanza(dmm)\MGStage\FC2,因数据太多(1万条左右的番号系列),还有7000多条番号系列要测试,全部测试完成大约需要半年以上,后期也会不断完善规则!
* 本次更新后番号规则更齐全:1\大部分采用正则匹配预览片地址,2\部分无规则使用固定地址匹配,3\调用mgs播放页,4\调用msin播放页,5\匹配fc2播放地址,6\madonna厂商部分资源适配官网
* - 2023-01-28 新增支持 db.msin.jp
* - 2023-01-07 新增支持 98sehuatang
* - 2022-11-14 新增支持 avmoo、avsox
* - 2022-11-13 新增支持javbooks,原站调用dmm必须JP源IP,新增免翻预览
* - 2022-11-01 新增支持javdb,补足db已有预览片不足,legsjapan全系列数据静态支持
* - 2022-09-15 重新对片花地址进行修正,支持bus和图书馆,并公开分享脚本,期待愈加完善
* - 以下为历史记录
* - 2022-03-08
* 脚本由 https://greasyfork.org/zh-CN/scripts/400267-javbus 二次修改以兼容老司机脚本
* - 只保留 预告片 功能,其它剔除
* - 可根据电脑分辨率自行调整播放器宽度,高度会自适应(搜索1120px修改合适值)
* - (脚本是在和老司机脚本做兼容,不保证兼容其它脚本,水平有限,仅作自用,不予公开)
*/
// ---------- 预告片总开关 ----------
// 预告片来源仍在修复中:新安装与未设置过的用户默认关闭,避免页面打开时自动发起媒体请求。
const TRAILER_ENABLED_KEY = 'jav_preview_video_enabled_v1';
function isTrailerEnabled () {
try { return GM_getValue(TRAILER_ENABLED_KEY, false) === true; }
catch (error) { return false; }
}
try {
const trailerEnabled = isTrailerEnabled();
GM_registerMenuCommand((trailerEnabled ? '关闭' : '启用') + '预告片加载(刷新生效)', function () {
GM_setValue(TRAILER_ENABLED_KEY, !trailerEnabled);
try { GM_notification('预告片加载已' + (!trailerEnabled ? '启用' : '关闭') + ',刷新页面生效'); } catch (error) {}
});
} catch (error) { console.warn('[trailer-toggle] menu registration failed', error); }
// ---------- 公开版联网权限 ----------
// @connect 清单会在安装时由脚本管理器统一展示。公开版不使用 @connect *:
// 未列入清单的自定义磁力站或 Emby 地址会被拒绝,而不会在运行中继续逐站请求授权。
const ACCOUNT_INTEGRATIONS_ENABLED_KEY = 'jav_account_integrations_enabled_v1';
function areAccountIntegrationsEnabled () {
try { return GM_getValue(ACCOUNT_INTEGRATIONS_ENABLED_KEY, false) === true; }
catch (error) { return false; }
}
function publicPermissionSummary () {
return [
'Jav综合工具公开版权限说明',
'',
'1. 页面:仅在元数据 @match/@include 明示的网站运行,并禁止在 iframe 中运行。',
'2. 联网:仅允许元数据 @connect 明示的来源;不允许任意域名。',
'3. 账户:115/夸克查询默认关闭,可在脚本菜单中主动启用。',
'4. 本地:收藏夹、缓存和功能开关保存在脚本管理器存储中。',
'5. 隐私:脚本不上传诊断日志;启用外部来源后会把当前番号发送给相应服务。',
'',
'完整域名清单可在脚本编辑器顶部的 @connect 区域或仓库 PERMISSIONS.md 查看。',
].join('\n');
}
try {
const accountIntegrationsEnabled = areAccountIntegrationsEnabled();
GM_registerMenuCommand((accountIntegrationsEnabled ? '关闭' : '启用') + ' 115/夸克账户查询(刷新生效)', function () {
GM_setValue(ACCOUNT_INTEGRATIONS_ENABLED_KEY, !accountIntegrationsEnabled);
try { GM_notification('115/夸克账户查询已' + (!accountIntegrationsEnabled ? '启用' : '关闭') + ',刷新页面生效'); } catch (error) {}
});
GM_registerMenuCommand('查看联网权限清单', function () {
window.alert(publicPermissionSummary());
});
} catch (error) { console.warn('[public-permissions] menu registration failed', error); }
// ---------- Emby 跳转配置 ----------
// 公开严格版不申请任意局域网/私有地址权限,故不开放 Emby 配置。
// 后续如提供 Emby 伴随模块,应独立声明用户实际使用的服务器域名,并通过请求头传递凭据。
try {
GM_registerMenuCommand('Emby:公开严格版未启用', function () {
window.alert('为避免申请任意局域网地址权限,公开严格版暂不启用 Emby。后续可使用独立伴随模块。');
});
} catch (e) { console.log('[emby] register menu failed', e); }
function insertEmbyJump () { return; }
// ---------- v1.5 安全多来源预览图 ----------
const SecureImagePreview = (function () {
'use strict';
const VERSION = '1.3.2';
const ENABLE_KEY = 'longThumb_enabled';
const CACHE_KEY = 'jav_preview_image_cache_v1';
const CACHE_SCHEMA = 1;
const DEFAULT_CACHE_TTL = 7 * 24 * 60 * 60 * 1000;
const MAX_CACHE_ENTRIES = 100;
const MAX_IMAGES_PER_SOURCE = 12;
const MAX_HTML_CHARS = 2 * 1024 * 1024;
let currentGeneration = 0;
let activeSession = null;
let styleMounted = false;
let menuMounted = false;
function normalizeCode (value) {
return String(value || '').trim().toUpperCase().replace(/_/g, '-').replace(/\s+/g, '');
}
function isIpAddress (value) {
return /^\d{1,3}(?:\.\d{1,3}){3}$/.test(value) || value.includes(':');
}
function normalizeAllowedHost (value) {
const raw = String(value || '').trim().toLowerCase().replace(/\.$/, '');
if (!raw || raw.includes('/') || raw.includes(':')) { return ''; }
return raw;
}
function hostMatches (hostname, allowed) {
const host = String(hostname || '').toLowerCase().replace(/\.$/, '');
const rule = normalizeAllowedHost(allowed);
if (!host || !rule) { return false; }
if (isIpAddress(host) || isIpAddress(rule) || host === 'localhost' || rule === 'localhost') {
return host === rule;
}
return host === rule || host.endsWith('.' + rule);
}
function validateUrl (rawUrl, adapter, baseUrl, stage) {
try {
const url = new URL(String(rawUrl || ''), baseUrl || location.href);
if (url.protocol !== 'https:') {
return { ok: false, stage: stage || 'initial', reason: 'protocol', url: url.href };
}
if (url.username || url.password) {
return { ok: false, stage: stage || 'initial', reason: 'credentials-in-url', url: url.href };
}
if (url.port && url.port !== '443') {
return { ok: false, stage: stage || 'initial', reason: 'port', url: url.href };
}
const allowed = (adapter && adapter.allowedHosts || []).some(function (item) {
return hostMatches(url.hostname, item);
});
if (!allowed) {
return { ok: false, stage: stage || 'initial', reason: 'hostname', url: url.href, hostname: url.hostname };
}
url.hash = '';
return { ok: true, stage: stage || 'initial', url: url.href, hostname: url.hostname };
} catch (error) {
return { ok: false, stage: stage || 'initial', reason: 'parse', url: String(rawUrl || '') };
}
}
function getHeader (response, name) {
const wanted = String(name || '').toLowerCase();
const lines = String(response && response.responseHeaders || '').split(/\r?\n/);
for (const line of lines) {
const index = line.indexOf(':');
if (index < 1) { continue; }
if (line.slice(0, index).trim().toLowerCase() === wanted) {
return line.slice(index + 1).trim();
}
}
return '';
}
function createSession (code) {
if (activeSession) { activeSession.dispose('switch-code'); }
const generation = ++currentGeneration;
const session = {
id: 'image-preview-' + Date.now().toString(36) + '-' + Math.random().toString(36).slice(2, 8),
generation: generation,
code: normalizeCode(code),
disposed: false,
disposeReason: null,
requests: new Set(),
controller: new AbortController(),
root: null,
ui: null,
mode: 'panel',
coverState: null,
teardown: null,
results: new Map(),
adapterStates: new Map(),
pageByAdapter: new Map(),
selectedAdapterId: '',
isCurrent: function () {
return !this.disposed && activeSession === this && this.generation === currentGeneration;
},
dispose: function (reason) {
if (this.disposed) { return; }
this.disposed = true;
this.disposeReason = reason || 'dispose';
try { this.controller.abort(); } catch (error) {}
this.requests.forEach(function (request) {
try { request.abort(); } catch (error) {}
});
this.requests.clear();
if (typeof this.teardown === 'function') {
try { this.teardown(); } catch (error) {}
} else if (this.root && this.root.isConnected) {
this.root.remove();
}
this.root = null;
this.ui = null;
this.coverState = null;
this.teardown = null;
this.results.clear();
this.adapterStates.clear();
this.pageByAdapter.clear();
},
};
activeSession = session;
return session;
}
function gmRequest (session, adapter, options) {
const initial = validateUrl(options.url, adapter, options.baseUrl, 'initial');
if (!initial.ok) {
return Promise.resolve({ ok: false, reason: 'host-validation', validation: initial });
}
if (!session.isCurrent()) {
return Promise.resolve({ ok: false, reason: 'stale-session' });
}
if (typeof GM_xmlhttpRequest !== 'function') {
return Promise.resolve({ ok: false, reason: 'gm-unavailable' });
}
return new Promise(function (resolve) {
let handle = null;
let settled = false;
const finish = function (result) {
if (settled) { return; }
settled = true;
if (handle) { session.requests.delete(handle); }
resolve(result);
};
const requestOptions = {
method: options.method || 'GET',
url: initial.url,
timeout: options.timeout || 9000,
headers: options.headers || {},
anonymous: true,
onload: function (response) {
if (!session.isCurrent()) { finish({ ok: false, reason: 'stale-session' }); return; }
const finalRaw = response.finalUrl || response.responseURL || initial.url;
const finalValidation = validateUrl(finalRaw, adapter, initial.url, 'final');
if (!finalValidation.ok) {
finish({
ok: false,
reason: 'host-validation',
validation: finalValidation,
initialUrl: initial.url,
finalUrl: finalRaw,
redirectPolicy: 'post-validate',
});
return;
}
finish({
ok: true,
response: response,
initialUrl: initial.url,
finalUrl: finalValidation.url,
redirectPolicy: 'post-validate',
});
},
onerror: function (error) {
finish({ ok: false, reason: 'network-error', error: error || null });
},
ontimeout: function () {
finish({ ok: false, reason: 'timeout' });
},
onabort: function () {
finish({ ok: false, reason: 'aborted' });
},
};
if (options.responseType) { requestOptions.responseType = options.responseType; }
try {
handle = GM_xmlhttpRequest(requestOptions);
if (handle && typeof handle.abort === 'function') { session.requests.add(handle); }
} catch (error) {
finish({ ok: false, reason: 'request-exception', error: error });
}
});
}
function isSuccessfulStatus (status) {
return Number(status) >= 200 && Number(status) < 300;
}
async function requestHtml (session, adapter, url) {
const result = await gmRequest(session, adapter, { method: 'GET', url: url, timeout: 9000 });
if (!result.ok || !session.isCurrent()) { return null; }
const response = result.response;
const contentType = getHeader(response, 'content-type').toLowerCase();
if (!isSuccessfulStatus(response.status) || !/^(text\/html|application\/xhtml\+xml)(?:;|$)/i.test(contentType)) {
return null;
}
const text = String(response.responseText || '');
if (!text || text.length > MAX_HTML_CHARS) { return null; }
return { text: text, finalUrl: result.finalUrl, contentType: contentType };
}
async function probeImage (session, adapter, url) {
let result = await gmRequest(session, adapter, { method: 'HEAD', url: url, timeout: 7000 });
if (!session.isCurrent()) { return null; }
let response = result.ok ? result.response : null;
let contentType = response ? getHeader(response, 'content-type').toLowerCase() : '';
const headAccepted = response && isSuccessfulStatus(response.status) && /^image\//i.test(contentType);
if (headAccepted) {
return {
src: result.finalUrl,
href: result.finalUrl,
verifiedContentType: contentType.split(';')[0],
};
}
const mayRetryWithRange = response &&
(Number(response.status) === 405 || Number(response.status) === 501 ||
(isSuccessfulStatus(response.status) && !contentType));
if (!mayRetryWithRange) { return null; }
result = await gmRequest(session, adapter, {
method: 'GET',
url: url,
timeout: 8000,
headers: { Range: 'bytes=0-1023' },
responseType: 'arraybuffer',
});
if (!result.ok || !session.isCurrent()) { return null; }
response = result.response;
contentType = getHeader(response, 'content-type').toLowerCase();
if (!isSuccessfulStatus(response.status) || !/^image\//i.test(contentType)) { return null; }
return {
src: result.finalUrl,
href: result.finalUrl,
verifiedContentType: contentType.split(';')[0],
};
}
function canonicalImageKey (url) {
try {
const parsed = new URL(url);
parsed.hash = '';
parsed.search = '';
parsed.pathname = parsed.pathname.replace(/-\d+x\d+(?=\.[a-z0-9]{3,5}$)/i, '');
return parsed.href.toLowerCase();
} catch (error) {
return '';
}
}
async function validateImageCandidates (session, adapter, candidates) {
const unique = [];
const seen = new Set();
candidates.forEach(function (candidate) {
const validation = validateUrl(candidate, adapter, location.href, 'initial');
if (!validation.ok) { return; }
const key = canonicalImageKey(validation.url);
if (!key || seen.has(key)) { return; }
seen.add(key);
unique.push(validation.url);
});
const output = [];
for (let index = 0; index < unique.length && output.length < MAX_IMAGES_PER_SOURCE; index += 3) {
if (!session.isCurrent()) { return []; }
const batch = unique.slice(index, index + 3);
const verified = await Promise.all(batch.map(function (url) {
return probeImage(session, adapter, url);
}));
verified.forEach(function (image) {
if (image && output.length < MAX_IMAGES_PER_SOURCE) { output.push(image); }
});
}
return output;
}
function parseHtml (text) {
return new DOMParser().parseFromString(text, 'text/html');
}
const adapters = [
{
id: 'javfree-gallery',
label: 'JavFree 图集',
allowedHosts: ['javfree.me'],
cacheTtl: DEFAULT_CACHE_TTL,
resolve: async function (session) {
const searchUrl = 'https://javfree.me/search/' + encodeURIComponent(session.code);
const search = await requestHtml(session, this, searchUrl);
if (!search || !session.isCurrent()) { return null; }
const searchDoc = parseHtml(search.text);
const codeKey = session.code.replace(/[^A-Z0-9]/g, '');
const links = Array.from(searchDoc.querySelectorAll('h2.entry-title a[href], article h2 a[href]'));
const detailLink = links.find(function (link) {
return String(link.textContent || '').toUpperCase().replace(/[^A-Z0-9]/g, '').includes(codeKey);
});
if (!detailLink) { return null; }
const detailValidation = validateUrl(detailLink.getAttribute('href'), this, search.finalUrl, 'initial');
if (!detailValidation.ok) { return null; }
const detail = await requestHtml(session, this, detailValidation.url);
if (!detail || !session.isCurrent()) { return null; }
const detailDoc = parseHtml(detail.text);
const imageNodes = Array.from(detailDoc.querySelectorAll('.entry-content img, article img'));
const candidates = [];
imageNodes.forEach(function (node) {
const raw = node.getAttribute('data-lazy-src') || node.getAttribute('data-src') || node.getAttribute('src');
if (!raw || /^data:/i.test(raw)) { return; }
const value = String(raw);
if (/logo|avatar|emoji|icon/i.test(value)) { return; }
const validation = validateUrl(value, adapters[0], detail.finalUrl, 'initial');
if (validation.ok) { candidates.push(validation.url); }
});
const images = await validateImageCandidates(session, this, candidates);
return images.length ? { adapterId: this.id, label: this.label, images: images } : null;
},
},
{
id: 'memojav-longshot',
label: 'MemoJAV 长图',
allowedHosts: ['image.memojav.com'],
cacheTtl: DEFAULT_CACHE_TTL,
resolve: async function (session) {
const candidate = 'https://image.memojav.com/image/screenshot/' + encodeURIComponent(session.code) + '.jpg';
const image = await probeImage(session, this, candidate);
return image ? { adapterId: this.id, label: this.label, images: [image] } : null;
},
},
];
function adapterById (id) {
return adapters.find(function (adapter) { return adapter.id === id; }) || null;
}
function readCache (code) {
try {
const raw = GM_getValue(CACHE_KEY, null);
if (!raw || raw.schemaVersion !== CACHE_SCHEMA || !raw.entries || typeof raw.entries !== 'object') { return []; }
const entry = raw.entries[code];
if (!entry || !Array.isArray(entry.results)) { return []; }
const now = Date.now();
const results = [];
entry.results.forEach(function (result) {
const adapter = adapterById(result && result.adapterId);
if (!adapter || Number(result.expiresAt) <= now || !Array.isArray(result.images)) { return; }
const images = result.images.slice(0, MAX_IMAGES_PER_SOURCE).map(function (image) {
const validation = validateUrl(image && image.src, adapter, location.href, 'cache');
if (!validation.ok || !/^image\//i.test(String(image && image.verifiedContentType || ''))) { return null; }
return {
src: validation.url,
href: validation.url,
verifiedContentType: String(image.verifiedContentType).toLowerCase(),
};
}).filter(Boolean);
if (images.length) {
results.push({ adapterId: adapter.id, label: adapter.label, images: images, fromCache: true });
}
});
return results;
} catch (error) {
return [];
}
}
function writeCache (code, results) {
if (!results.length) { return; }
try {
const current = GM_getValue(CACHE_KEY, null);
const store = current && current.schemaVersion === CACHE_SCHEMA && current.entries && typeof current.entries === 'object'
? current
: { schemaVersion: CACHE_SCHEMA, updatedAt: null, entries: {} };
const now = Date.now();
Object.keys(store.entries).forEach(function (key) {
const entry = store.entries[key];
const live = entry && Array.isArray(entry.results) && entry.results.some(function (result) {
return Number(result.expiresAt) > now;
});
if (!live) { delete store.entries[key]; }
});
const cacheResults = results.map(function (result) {
if (result && result.pageNative) { return null; }
const adapter = adapterById(result.adapterId);
if (!adapter || !result.images.length) { return null; }
const images = result.images.filter(function (image) {
return /^image\//i.test(String(image.verifiedContentType || '')) &&
validateUrl(image.src, adapter, location.href, 'cache-write').ok;
}).slice(0, MAX_IMAGES_PER_SOURCE);
if (!images.length) { return null; }
return {
adapterId: adapter.id,
savedAt: new Date(now).toISOString(),
expiresAt: now + (adapter.cacheTtl || DEFAULT_CACHE_TTL),
images: images.map(function (image) {
return {
src: image.src,
verifiedContentType: image.verifiedContentType,
};
}),
};
}).filter(Boolean);
if (!cacheResults.length) { return; }
store.entries[code] = {
code: code,
updatedAt: new Date(now).toISOString(),
results: cacheResults,
};
const keys = Object.keys(store.entries).sort(function (left, right) {
return String(store.entries[right].updatedAt || '').localeCompare(String(store.entries[left].updatedAt || ''));
});
keys.slice(MAX_CACHE_ENTRIES).forEach(function (key) { delete store.entries[key]; });
store.updatedAt = new Date(now).toISOString();
GM_setValue(CACHE_KEY, store);
} catch (error) {
console.warn('[secure-image-preview] cache write failed', error);
}
}
function clearCache () {
try { GM_deleteValue(CACHE_KEY); } catch (error) {
try { GM_setValue(CACHE_KEY, { schemaVersion: CACHE_SCHEMA, updatedAt: new Date().toISOString(), entries: {} }); } catch (innerError) {}
}
}
function element (tag, className, text) {
const node = document.createElement(tag);
if (className) { node.className = className; }
if (text !== undefined) { node.textContent = text; }
return node;
}
function mountStyle () {
if (styleMounted) { return; }
styleMounted = true;
GM_addStyle(
'.jav-image-preview{margin:16px 0;padding:10px;border:1px solid #ccc;border-radius:7px;background:#fff;color:#222}' +
'.jip-header{display:flex;align-items:center;gap:8px;font-weight:700}.jip-title{flex:1}' +
'.jip-button{border:1px solid #aaa;border-radius:4px;background:#f5f5f5;color:#222;padding:3px 8px;cursor:pointer}' +
'.jip-sources{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.jip-source-active{background:#bd2c36;color:#fff;border-color:#bd2c36}' +
'.jip-status{margin:7px 0;color:#666;font-size:12px}.jip-images>a{display:block;margin:0 0 10px}' +
'.jip-images img{display:block;width:100%;height:auto;border:1px solid #ccc;border-radius:6px;background:#eee}' +
'.jip-pagination{display:flex;align-items:center;justify-content:center;gap:10px;margin:8px 0 10px}.jip-page-counter{min-width:72px;text-align:center;font-size:12px;color:#555}' +
'.jip-manual{font-size:12px;color:#1464b4}' +
'.jip-cover-host{position:relative}.bigImage.jip-cover-stage{display:block!important;position:relative;width:100%;overflow:hidden;background:#111;border-radius:3px}' +
'.bigImage.jip-cover-stage .jip-cover-image{display:block!important;width:100%!important;height:100%!important;max-width:none!important;object-fit:contain!important;object-position:center center!important;background:#111;cursor:zoom-in}' +
'.jip-cover-ui{position:relative;width:100%;box-sizing:border-box;margin-top:7px;padding:7px;border:1px solid #d5d8dc;border-radius:6px;background:#fff;color:#222}' +
'.jip-cover-nav{position:absolute;z-index:30;top:-180px;width:38px;height:52px;border:0;border-radius:6px;background:rgba(0,0,0,.55);color:#fff;font-size:28px;line-height:48px;cursor:pointer}' +
'.jip-cover-nav:hover{background:rgba(189,44,54,.88)}.jip-cover-nav:disabled{display:none}.jip-cover-prev{left:7px}.jip-cover-next{right:7px}' +
'.jip-cover-counter{position:absolute;z-index:30;right:8px;top:-34px;padding:3px 7px;border-radius:4px;background:rgba(0,0,0,.66);color:#fff;font-size:12px;pointer-events:none}' +
'.jip-cover-sources{display:flex;gap:5px;flex-wrap:wrap;align-items:center}.jip-cover-status{margin-top:5px;color:#666;font-size:11px;line-height:1.35}' +
'.jip-native-samples-hidden{display:none!important}' +
'.jip-lightbox{position:fixed;z-index:2147483647;inset:0;overflow:auto;box-sizing:border-box;padding:46px 20px 20px;background:rgba(0,0,0,.94);cursor:zoom-out}' +
'.jip-lightbox-image{display:block!important;max-width:calc(100vw - 40px)!important;max-height:calc(100vh - 66px)!important;width:auto!important;height:auto!important;margin:0 auto!important;object-fit:contain!important;object-position:center center!important;cursor:default}' +
'.jip-lightbox.jip-lightbox-long .jip-lightbox-image{max-height:none!important}' +
'.jip-lightbox-close{position:fixed;z-index:1;top:8px;right:14px;width:36px;height:32px;border:1px solid #aaa;border-radius:5px;background:rgba(30,30,30,.9);color:#fff;font-size:22px;line-height:28px;cursor:pointer}' +
'html.jip-lightbox-open,html.jip-lightbox-open body{overflow:hidden!important}'
);
}
function restoreAttribute (node, name, value) {
if (!node) { return; }
if (value === null || value === undefined) { node.removeAttribute(name); }
else { node.setAttribute(name, value); }
}
function normalizeDomImageUrl (value) {
try {
const url = new URL(String(value || ''), location.href);
if (url.protocol !== 'https:' || url.username || url.password || (url.port && url.port !== '443')) { return ''; }
url.hash = '';
return url.href;
} catch (error) {
return '';
}
}
function collectNativeSampleResult () {
const root = document.querySelector('#sample-waterfall');
if (!root) { return null; }
const images = [];
const seen = new Set();
Array.from(root.querySelectorAll('a[href]')).some(function (link) {
const image = link.querySelector('img');
if (!image) { return false; }
const fullSrc = normalizeDomImageUrl(link.getAttribute('href'));
const displaySrc = normalizeDomImageUrl(image.currentSrc || image.getAttribute('src')) || fullSrc;
const key = canonicalImageKey(fullSrc || displaySrc);
if (!displaySrc || !key || seen.has(key)) { return false; }
seen.add(key);
images.push({
src: fullSrc || displaySrc,
href: fullSrc || displaySrc,
fallbackSrc: fullSrc && displaySrc !== fullSrc ? displaySrc : '',
verifiedContentType: 'image/page-native',
pageNative: true,
});
return images.length >= MAX_IMAGES_PER_SOURCE;
});
if (!images.length) { return null; }
const heading = root.previousElementSibling;
return {
result: {
adapterId: 'javbus-native-samples',
label: 'JavBus 样品图',
images: images,
pageNative: true,
},
root: root,
heading: heading && /^(?:樣品圖像|样品图像)/.test(String(heading.textContent || '').trim()) ? heading : null,
};
}
function coverPages (session) {
const state = session.coverState;
if (!state) { return []; }
const pages = [{
kind: 'cover',
adapterId: '',
label: '网站封面',
src: state.original.displaySrc,
fullSrc: state.original.fullSrc || state.original.displaySrc,
verifiedContentType: 'page-cover',
sourceIndex: 0,
sourceCount: 1,
}];
const seen = new Set();
session.results.forEach(function (result) {
result.images.forEach(function (imageInfo, index) {
const key = canonicalImageKey(imageInfo && imageInfo.src);
if (!key || seen.has(key)) { return; }
seen.add(key);
pages.push({
kind: 'preview',
adapterId: result.adapterId,
label: result.label,
src: imageInfo.src,
fullSrc: imageInfo.href || imageInfo.src,
fallbackSrc: imageInfo.fallbackSrc || '',
verifiedContentType: imageInfo.verifiedContentType,
pageNative: imageInfo.pageNative === true,
sourceIndex: index,
sourceCount: result.images.length,
});
});
});
return pages;
}
function closeCoverLightbox (session) {
const state = session && session.coverState;
if (!state || !state.lightbox) { return; }
state.lightbox.remove();
state.lightbox = null;
document.documentElement.classList.remove('jip-lightbox-open');
}
function openCoverLightbox (session) {
if (!session.isCurrent() || !session.coverState) { return; }
const state = session.coverState;
const pages = coverPages(session);
const page = pages[state.pageIndex];
if (!page) { return; }
let src = '';
if (page.kind === 'cover') {
src = normalizeDomImageUrl(page.fullSrc) || normalizeDomImageUrl(page.src);
} else if (page.pageNative) {
// 全屏始终优先尝试原站原图;轮播曾降级到缩略图不代表带原站 referrer 的原图仍不可用。
src = normalizeDomImageUrl(page.fullSrc) || normalizeDomImageUrl(page.src) || normalizeDomImageUrl(page.fallbackSrc);
} else {
const adapter = adapterById(page.adapterId);
const validation = validateUrl(page.fullSrc || page.src, adapter, location.href, 'fullscreen');
if (validation.ok && /^image\//i.test(String(page.verifiedContentType || ''))) { src = validation.url; }
}
if (!src) { return; }
closeCoverLightbox(session);
const overlay = element('div', 'jip-lightbox');
overlay.setAttribute('role', 'dialog');
overlay.setAttribute('aria-modal', 'true');
overlay.setAttribute('aria-label', session.code + ' 图片全屏预览');
const close = element('button', 'jip-lightbox-close', '×');
close.type = 'button';
close.setAttribute('aria-label', '关闭全屏预览');
const image = element('img', 'jip-lightbox-image');
image.alt = page.kind === 'cover' ? session.code + ' 网站封面' : session.code + ' ' + page.label + ' 原图';
image.decoding = 'async';
if (page.pageNative) {
restoreAttribute(image, 'referrerpolicy', state.original.referrerPolicyAttribute);
} else if (page.kind === 'preview') {
image.referrerPolicy = 'no-referrer';
} else {
restoreAttribute(image, 'referrerpolicy', state.original.referrerPolicyAttribute);
}
image.addEventListener('load', function () {
if (!session.isCurrent() || state.lightbox !== overlay) { return; }
overlay.classList.toggle('jip-lightbox-long', image.naturalHeight > image.naturalWidth * 2.2);
}, { once: true, signal: session.controller.signal });
image.addEventListener('error', function () {
if (!session.isCurrent() || state.lightbox !== overlay || !page.pageNative) { return; }
const fallback = normalizeDomImageUrl(page.fallbackSrc);
if (fallback && image.src !== fallback) { image.src = fallback; }
}, { once: true, signal: session.controller.signal });
close.addEventListener('click', function () { closeCoverLightbox(session); }, { signal: session.controller.signal });
overlay.addEventListener('click', function (event) {
if (event.target === overlay) { closeCoverLightbox(session); }
}, { signal: session.controller.signal });
overlay.appendChild(close);
overlay.appendChild(image);
document.body.appendChild(overlay);
document.documentElement.classList.add('jip-lightbox-open');
state.lightbox = overlay;
// 先登记当前弹层再赋 src,避免内存缓存同步命中时 load/error 回调被误判为旧会话。
image.src = src;
}
function renderCoverSources (session, pages) {
const state = session.coverState;
if (!state || !session.ui) { return; }
const current = pages[state.pageIndex] || pages[0];
const signature = Array.from(session.results.values()).map(function (result) {
return result.adapterId + ':' + result.images.length;
}).join('|');
if (state.sourceSignature !== signature) {
state.sourceSignature = signature;
session.ui.sources.replaceChildren();
const coverButton = element('button', 'jip-button', '封面');
coverButton.type = 'button';
coverButton.dataset.coverPage = 'true';
coverButton.addEventListener('click', function () {
if (!session.isCurrent()) { return; }
state.pageIndex = 0;
renderCoverPage(session);
}, { signal: session.controller.signal });
session.ui.sources.appendChild(coverButton);
session.results.forEach(function (result) {
const button = element('button', 'jip-button', result.label + '(' + result.images.length + ')');
button.type = 'button';
button.dataset.adapterId = result.adapterId;
button.addEventListener('click', function () {
if (!session.isCurrent()) { return; }
const livePages = coverPages(session);
const targetIndex = livePages.findIndex(function (page) { return page.adapterId === result.adapterId; });
if (targetIndex > 0) {
state.pageIndex = targetIndex;
renderCoverPage(session);
}
}, { signal: session.controller.signal });
session.ui.sources.appendChild(button);
});
}
Array.from(session.ui.sources.querySelectorAll('.jip-button')).forEach(function (button) {
const active = button.dataset.coverPage === 'true'
? Boolean(current && current.kind === 'cover')
: Boolean(current && current.adapterId === button.dataset.adapterId);
button.classList.toggle('jip-source-active', active);
});
}
function updateCoverStatus (session, page, pages) {
if (!session.isCurrent() || !session.ui || !session.coverState) { return; }
const previewCount = Math.max(pages.length - 1, 0);
const prefix = page && page.kind === 'preview'
? page.label + ':第 ' + (page.sourceIndex + 1) + '/' + page.sourceCount + ' 张;单击图片全屏查看。'
: '网站原封面(第 0 页);单击图片全屏查看。';
session.ui.status.textContent = (session.coverState.message || prefix) +
' 已找到 ' + previewCount + ' 张预览图。来源结果:' + formatAdapterOutcomes(session) + '。';
session.coverState.message = '';
}
function renderCoverPage (session) {
if (!session.isCurrent() || !session.coverState || !session.ui) { return; }
const state = session.coverState;
const pages = coverPages(session);
state.pageIndex = Math.min(Math.max(Number(state.pageIndex) || 0, 0), Math.max(pages.length - 1, 0));
const page = pages[state.pageIndex] || pages[0];
const image = state.image;
const anchor = state.anchor;
const token = ++state.renderToken;
let displaySrc = page && page.src;
if (page && page.kind === 'preview' && page.pageNative) {
const nativeKey = page.fullSrc || page.src;
const fallbackActive = state.nativeFallbacks.has(nativeKey);
const nativeDisplayUrl = fallbackActive
? normalizeDomImageUrl(page.fallbackSrc)
: normalizeDomImageUrl(page.src);
const nativeFullUrl = normalizeDomImageUrl(page.fullSrc) || nativeDisplayUrl;
if (!nativeDisplayUrl) {
state.message = page.label + '地址验证失败,已返回网站封面。';
state.pageIndex = 0;
renderCoverPage(session);
return;
}
displaySrc = nativeDisplayUrl;
// 页面原生图片沿用 JavBus 的 referrer 行为;强制 no-referrer 会让部分图床把原图降级为缩略图。
restoreAttribute(image, 'referrerpolicy', state.original.referrerPolicyAttribute);
image.loading = 'eager';
image.setAttribute('fetchpriority', 'high');
anchor.setAttribute('href', nativeFullUrl);
} else if (page && page.kind === 'preview') {
const adapter = adapterById(page.adapterId);
const validation = validateUrl(page.src, adapter, location.href, 'cover-display');
if (!validation.ok || !/^image\//i.test(String(page.verifiedContentType || ''))) {
state.message = page.label + '地址验证失败,已返回网站封面。';
state.pageIndex = 0;
renderCoverPage(session);
return;
}
displaySrc = validation.url;
image.referrerPolicy = 'no-referrer';
image.loading = 'eager';
image.setAttribute('fetchpriority', 'high');
anchor.setAttribute('href', validation.url);
} else {
restoreAttribute(image, 'referrerpolicy', state.original.referrerPolicyAttribute);
restoreAttribute(image, 'loading', state.original.loadingAttribute);
restoreAttribute(image, 'fetchpriority', state.original.fetchPriorityAttribute);
restoreAttribute(anchor, 'href', state.original.hrefAttribute);
}
image.alt = page && page.kind === 'preview'
? session.code + ' ' + page.label + ' 第 ' + (page.sourceIndex + 1) + '/' + page.sourceCount + ' 张'
: state.original.alt;
image.addEventListener('error', function () {
if (!session.isCurrent() || !session.coverState || state.renderToken !== token || state.pageIndex === 0) { return; }
if (page && page.pageNative && page.fallbackSrc && !state.nativeFallbacks.has(page.fullSrc || page.src)) {
state.nativeFallbacks.add(page.fullSrc || page.src);
state.message = page.label + '原图加载失败,已切换到网站缩略图。';
renderCoverPage(session);
return;
}
state.message = (page && page.label || '预览图') + '加载失败,已自动返回网站封面。';
state.pageIndex = 0;
renderCoverPage(session);
}, { once: true, signal: session.controller.signal });
if (displaySrc && image.src !== displaySrc) { image.src = displaySrc; }
state.previous.disabled = state.pageIndex <= 0;
state.next.disabled = state.pageIndex >= pages.length - 1;
state.counter.textContent = state.pageIndex === 0
? '封面 · 0/' + Math.max(pages.length - 1, 0)
: '预览 ' + state.pageIndex + '/' + Math.max(pages.length - 1, 0);
session.selectedAdapterId = page && page.adapterId || '';
renderCoverSources(session, pages);
updateCoverStatus(session, page, pages);
}
function resolveCoverAspectRatio (image, rect) {
const naturalWidth = Number(image && image.naturalWidth) || 0;
const naturalHeight = Number(image && image.naturalHeight) || 0;
if (naturalWidth >= 16 && naturalHeight >= 16) {
return { width: naturalWidth, height: naturalHeight, source: 'natural' };
}
const renderedWidth = Number(rect && rect.width) || 0;
const renderedHeight = Number(rect && rect.height) || 0;
if (renderedWidth >= 16 && renderedHeight >= 16) {
return { width: renderedWidth, height: renderedHeight, source: 'rendered' };
}
// JavBus 原封面通常是横向封面。未解码时不能把有效宽度和 0 高度混成极端比例。
return { width: 3, height: 2, source: 'fallback' };
}
function mountCoverViewer (session) {
if (!hostMatches(location.hostname, 'javbus.com') || /\/(?:forum)(?:\/|$)/i.test(location.pathname || '')) { return false; }
const image = document.querySelector('.bigImage img');
const anchor = image && (image.closest('a.bigImage') || image.closest('.bigImage'));
const host = anchor && anchor.parentElement;
if (!image || !anchor || !host) { return false; }
const displaySrc = normalizeDomImageUrl(image.currentSrc || image.src);
if (!displaySrc) { return false; }
// 必须在添加 width:100% 的轮播类之前读取原始尺寸,否则浮动封面列会被扩展为整行宽度。
const originalRect = image.getBoundingClientRect();
const originalHostRect = host.getBoundingClientRect();
const measuredWidth = originalRect.width || (image.naturalWidth
? Math.min(image.naturalWidth, originalHostRect.width || image.naturalWidth)
: Math.min(originalHostRect.width || 600, 600));
const frameWidth = Math.max(Math.round(measuredWidth), 1);
const original = {
displaySrc: displaySrc,
fullSrc: normalizeDomImageUrl(anchor.getAttribute('href')) || displaySrc,
hostStyleAttribute: host.getAttribute('style'),
hrefAttribute: anchor.getAttribute('href'),
styleAttribute: anchor.getAttribute('style'),
ratioSourceAttribute: anchor.getAttribute('data-jip-ratio-source'),
imageStyleAttribute: image.getAttribute('style'),
alt: image.alt || session.code + ' 网站封面',
referrerPolicy: image.referrerPolicy || '',
referrerPolicyAttribute: image.getAttribute('referrerpolicy'),
loadingAttribute: image.getAttribute('loading'),
fetchPriorityAttribute: image.getAttribute('fetchpriority'),
};
session.mode = 'cover';
host.classList.add('jip-cover-host');
host.style.width = frameWidth + 'px';
host.style.maxWidth = '100%';
host.style.boxSizing = 'border-box';
host.style.flex = '0 1 ' + frameWidth + 'px';
anchor.classList.add('jip-cover-stage');
image.classList.add('jip-cover-image');
const coverRatio = resolveCoverAspectRatio(image, originalRect);
anchor.style.aspectRatio = coverRatio.width + ' / ' + coverRatio.height;
anchor.dataset.jipRatioSource = coverRatio.source;
const ui = element('div', 'jip-cover-ui');
const previous = element('button', 'jip-cover-nav jip-cover-prev', '‹');
previous.type = 'button';
previous.setAttribute('aria-label', '上一页图片');
const next = element('button', 'jip-cover-nav jip-cover-next', '›');
next.type = 'button';
next.setAttribute('aria-label', '下一页图片');
const counter = element('span', 'jip-cover-counter', '封面 · 0/0');
const sources = element('div', 'jip-cover-sources');
const status = element('div', 'jip-cover-status', '正在查找并验证 HTTPS 图片来源…');
const manual = element('a', 'jip-manual', '在 JavStore 手动搜索');
manual.href = 'https://img.javstore.net/search/images/?q=' + encodeURIComponent('"' + session.code + '"');
manual.target = '_blank';
manual.rel = 'noopener noreferrer';
ui.appendChild(previous);
ui.appendChild(next);
ui.appendChild(counter);
ui.appendChild(sources);
ui.appendChild(status);
ui.appendChild(manual);
anchor.after(ui);
session.root = ui;
session.ui = { sources: sources, status: status, images: null, pagination: null };
session.coverState = {
host: host,
anchor: anchor,
image: image,
original: original,
pageIndex: 0,
renderToken: 0,
previous: previous,
next: next,
counter: counter,
lightbox: null,
message: '',
sourceSignature: null,
nativeSamples: null,
nativeFallbacks: new Set(),
};
const nativeSamples = collectNativeSampleResult();
if (nativeSamples) {
session.results.set(nativeSamples.result.adapterId, nativeSamples.result);
nativeSamples.root.classList.add('jip-native-samples-hidden');
if (nativeSamples.heading) { nativeSamples.heading.classList.add('jip-native-samples-hidden'); }
session.coverState.nativeSamples = nativeSamples;
}
const signal = session.controller.signal;
const positionControls = function () {
if (!session.isCurrent()) { return; }
const height = Math.max(anchor.getBoundingClientRect().height || 0, 200);
const top = (-height / 2 - 33) + 'px';
previous.style.top = top;
next.style.top = top;
};
previous.addEventListener('click', function () {
if (!session.isCurrent() || session.coverState.pageIndex <= 0) { return; }
session.coverState.pageIndex -= 1;
renderCoverPage(session);
}, { signal: signal });
next.addEventListener('click', function () {
const pages = coverPages(session);
if (!session.isCurrent() || session.coverState.pageIndex >= pages.length - 1) { return; }
session.coverState.pageIndex += 1;
renderCoverPage(session);
}, { signal: signal });
anchor.addEventListener('click', function (event) {
if (!session.isCurrent()) { return; }
event.preventDefault();
event.stopPropagation();
event.stopImmediatePropagation();
openCoverLightbox(session);
}, { capture: true, signal: signal });
window.addEventListener('keydown', function (event) {
if (event.key === 'Escape') { closeCoverLightbox(session); }
}, { signal: signal });
window.addEventListener('resize', positionControls, { signal: signal });
session.teardown = function () {
closeCoverLightbox(session);
const nativeSamples = session.coverState && session.coverState.nativeSamples;
if (nativeSamples) {
nativeSamples.root.classList.remove('jip-native-samples-hidden');
if (nativeSamples.heading) { nativeSamples.heading.classList.remove('jip-native-samples-hidden'); }
}
host.classList.remove('jip-cover-host');
restoreAttribute(host, 'style', original.hostStyleAttribute);
anchor.classList.remove('jip-cover-stage');
image.classList.remove('jip-cover-image');
restoreAttribute(anchor, 'style', original.styleAttribute);
restoreAttribute(anchor, 'data-jip-ratio-source', original.ratioSourceAttribute);
restoreAttribute(anchor, 'href', original.hrefAttribute);
restoreAttribute(image, 'style', original.imageStyleAttribute);
restoreAttribute(image, 'referrerpolicy', original.referrerPolicyAttribute);
restoreAttribute(image, 'loading', original.loadingAttribute);
restoreAttribute(image, 'fetchpriority', original.fetchPriorityAttribute);
image.alt = original.alt;
if (image.src !== original.displaySrc) { image.src = original.displaySrc; }
if (ui.isConnected) { ui.remove(); }
};
positionControls();
renderCoverPage(session);
return true;
}
function mountPanel (session, anchor, opts, externalEnabled) {
mountStyle();
if (mountCoverViewer(session)) { return true; }
// 外部来源关闭时,仅保留 JavBus 原站封面/样品图轮播;其他站点不创建空面板。
if (!externalEnabled) { return false; }
const root = element('section', 'jav-image-preview');
root.dataset.imagePreviewGeneration = String(session.generation);
if (opts.extraClass) {
String(opts.extraClass).split(/\s+/).forEach(function (name) {
if (/^[a-z0-9_-]+$/i.test(name)) { root.classList.add(name); }
});
}
const header = element('div', 'jip-header');
const title = element('span', 'jip-title', '🖼 安全多源预览图 ' + session.code);
const toggle = element('button', 'jip-button', '隐藏');
toggle.type = 'button';
header.appendChild(title);
header.appendChild(toggle);
const sources = element('div', 'jip-sources');
const status = element('div', 'jip-status', '正在查找并验证 HTTPS 图片来源…');
const images = element('div', 'jip-images');
const pagination = element('div', 'jip-pagination');
const manual = element('a', 'jip-manual', '在 JavStore 手动搜索');
manual.href = 'https://img.javstore.net/search/images/?q=' + encodeURIComponent('"' + session.code + '"');
manual.target = '_blank';
manual.rel = 'noopener noreferrer';
root.appendChild(header);
root.appendChild(sources);
root.appendChild(status);
root.appendChild(images);
root.appendChild(pagination);
root.appendChild(manual);
const signal = session.controller.signal;
toggle.addEventListener('click', function () {
if (!session.isCurrent()) { return; }
images.hidden = !images.hidden;
pagination.hidden = images.hidden;
toggle.textContent = images.hidden ? '展开' : '隐藏';
}, { signal: signal });
session.root = root;
session.ui = { sources: sources, status: status, images: images, pagination: pagination };
if (opts.position === 'after') { anchor.after(root); } else { anchor.before(root); }
return true;
}
function renderSourceButtons (session) {
if (!session.isCurrent() || !session.ui) { return; }
if (session.mode === 'cover') {
renderCoverSources(session, coverPages(session));
return;
}
session.ui.sources.replaceChildren();
session.results.forEach(function (result) {
const button = element('button', 'jip-button', result.label + '(' + result.images.length + ')');
button.type = 'button';
button.classList.toggle('jip-source-active', result.adapterId === session.selectedAdapterId);
button.addEventListener('click', function () {
if (!session.isCurrent()) { return; }
session.selectedAdapterId = result.adapterId;
displayResult(session, result);
}, { signal: session.controller.signal });
session.ui.sources.appendChild(button);
});
}
function formatAdapterOutcomes (session) {
return adapters.map(function (adapter) {
const state = session.adapterStates.get(adapter.id) || 'pending';
if (state === 'success') { return adapter.label + ':成功'; }
if (state === 'cache') { return adapter.label + ':成功(缓存)'; }
if (state === 'probing') { return adapter.label + ':验证中'; }
if (state === 'error') { return adapter.label + ':异常'; }
if (state === 'unavailable') { return adapter.label + ':不可用'; }
if (state === 'cache-skipped') { return adapter.label + ':未检查(已命中缓存)'; }
if (state === 'disabled') { return adapter.label + ':未启用'; }
return adapter.label + ':待验证';
}).join(';');
}
function updateResolvedStatus (session, result) {
if (!session.isCurrent() || !session.ui) { return; }
if (session.mode === 'cover') {
const pages = coverPages(session);
updateCoverStatus(session, pages[session.coverState.pageIndex] || pages[0], pages);
return;
}
if (!result) {
session.ui.status.textContent = '未找到通过 HTTPS、域名及 Content-Type 验证的预览图。来源结果:' +
formatAdapterOutcomes(session) + '。';
return;
}
const pageIndex = Math.min(
Math.max(Number(session.pageByAdapter.get(result.adapterId)) || 0, 0),
Math.max(result.images.length - 1, 0)
);
session.ui.status.textContent = result.label + ':当前第 ' + (pageIndex + 1) + '/' + result.images.length + ' 张' +
(result.fromCache ? '(缓存)' : '') + '。来源结果:' + formatAdapterOutcomes(session) + '。';
}
function renderPagination (session, result, pageIndex) {
if (!session.isCurrent() || !session.ui) { return; }
const pagination = session.ui.pagination;
pagination.replaceChildren();
if (result.images.length <= 1) { pagination.hidden = true; return; }
pagination.hidden = session.ui.images.hidden;
const previous = element('button', 'jip-button', '上一张');
previous.type = 'button';
previous.disabled = pageIndex <= 0;
const counter = element('span', 'jip-page-counter', (pageIndex + 1) + ' / ' + result.images.length);
const next = element('button', 'jip-button', '下一张');
next.type = 'button';
next.disabled = pageIndex >= result.images.length - 1;
previous.addEventListener('click', function () {
if (!session.isCurrent() || pageIndex <= 0) { return; }
session.pageByAdapter.set(result.adapterId, pageIndex - 1);
displayResult(session, result);
}, { signal: session.controller.signal });
next.addEventListener('click', function () {
if (!session.isCurrent() || pageIndex >= result.images.length - 1) { return; }
session.pageByAdapter.set(result.adapterId, pageIndex + 1);
displayResult(session, result);
}, { signal: session.controller.signal });
pagination.appendChild(previous);
pagination.appendChild(counter);
pagination.appendChild(next);
}
function displayResult (session, result) {
if (!session.isCurrent() || !session.ui) { return; }
if (session.mode === 'cover') {
const pages = coverPages(session);
const targetIndex = pages.findIndex(function (page) { return page.adapterId === result.adapterId; });
if (targetIndex > 0) { session.coverState.pageIndex = targetIndex; }
renderCoverPage(session);
return;
}
session.selectedAdapterId = result.adapterId;
session.ui.images.replaceChildren();
const pageIndex = Math.min(
Math.max(Number(session.pageByAdapter.get(result.adapterId)) || 0, 0),
Math.max(result.images.length - 1, 0)
);
session.pageByAdapter.set(result.adapterId, pageIndex);
const imageInfo = result.images[pageIndex];
const adapter = adapterById(result.adapterId);
const validation = validateUrl(imageInfo && imageInfo.src, adapter, location.href, 'display');
if (validation.ok && /^image\//i.test(String(imageInfo && imageInfo.verifiedContentType || ''))) {
const link = element('a');
link.href = validation.url;
link.target = '_blank';
link.rel = 'noopener noreferrer';
const image = element('img');
image.alt = session.code + ' 预览图 ' + (pageIndex + 1) + '/' + result.images.length;
image.loading = 'eager';
image.fetchPriority = 'high';
image.setAttribute('fetchpriority', 'high');
image.decoding = 'async';
image.referrerPolicy = 'no-referrer';
image.src = validation.url;
image.addEventListener('error', function () {
if (!session.isCurrent()) { return; }
link.remove();
session.ui.status.textContent = result.label + '第 ' + (pageIndex + 1) + ' 张已通过响应类型验证,但浏览器加载失败;可翻页或手动打开。';
}, { signal: session.controller.signal });
link.appendChild(image);
session.ui.images.appendChild(link);
}
renderPagination(session, result, pageIndex);
updateResolvedStatus(session, result);
renderSourceButtons(session);
}
function acceptResult (session, result) {
if (!session.isCurrent() || !result || !result.images || !result.images.length) { return; }
session.results.set(result.adapterId, result);
if (session.mode === 'cover') {
renderCoverPage(session);
return;
}
if (!session.selectedAdapterId) { displayResult(session, result); }
else { renderSourceButtons(session); }
}
async function resolveSources (session) {
const cached = readCache(session.code);
cached.forEach(function (result) {
session.adapterStates.set(result.adapterId, 'cache');
acceptResult(session, result);
});
if (cached.length) {
adapters.forEach(function (adapter) {
if (!session.adapterStates.has(adapter.id)) { session.adapterStates.set(adapter.id, 'cache-skipped'); }
});
const selectedCached = session.results.get(session.selectedAdapterId) || cached[0];
updateResolvedStatus(session, selectedCached);
return;
}
for (const adapter of adapters) {
if (!session.isCurrent()) { return; }
session.adapterStates.set(adapter.id, 'probing');
if (session.ui) { session.ui.status.textContent = '正在验证来源:' + adapter.label + '…'; }
let result = null;
let failed = false;
try { result = await adapter.resolve(session); } catch (error) {
failed = true;
console.warn('[secure-image-preview] adapter failed', adapter.id, error);
}
if (!session.isCurrent()) { return; }
if (result && result.images && result.images.length) {
session.adapterStates.set(adapter.id, 'success');
acceptResult(session, result);
writeCache(session.code, Array.from(session.results.values()));
} else {
session.adapterStates.set(adapter.id, failed ? 'error' : 'unavailable');
}
}
const selected = session.results.get(session.selectedAdapterId) || Array.from(session.results.values())[0] || null;
if (selected) {
if (session.mode === 'cover') { updateResolvedStatus(session, selected); }
else { displayResult(session, selected); }
}
else { updateResolvedStatus(session, null); }
}
function isEnabled () {
try { return GM_getValue(ENABLE_KEY, false) === true; } catch (error) { return false; }
}
function insert (code, anchor, opts) {
opts = opts || {};
const normalizedCode = normalizeCode(code);
if (!normalizedCode) { return; }
const target = typeof anchor === 'function' ? anchor() : $(anchor);
if (!target || !target.length) { return; }
const anchorNode = target[0];
if (anchorNode._secureImagePreviewCode === normalizedCode &&
activeSession && activeSession.isCurrent() && activeSession.root && activeSession.root.isConnected) {
return;
}
anchorNode._secureImagePreviewCode = normalizedCode;
const session = createSession(normalizedCode);
const externalEnabled = isEnabled();
if (!externalEnabled) {
adapters.forEach(function (adapter) { session.adapterStates.set(adapter.id, 'disabled'); });
}
const mounted = mountPanel(session, target, opts, externalEnabled);
if (!mounted) {
session.dispose('external-preview-disabled');
anchorNode._secureImagePreviewCode = '';
return;
}
if (externalEnabled) { resolveSources(session); }
}
function registerMenu () {
if (menuMounted || typeof GM_registerMenuCommand !== 'function') { return; }
menuMounted = true;
const enabled = isEnabled();
GM_registerMenuCommand((enabled ? '关闭' : '启用') + '外部预览图来源(刷新生效)', function () {
GM_setValue(ENABLE_KEY, !enabled);
try { GM_notification('外部预览图来源已' + (!enabled ? '启用' : '关闭') + ';JavBus 原站轮播始终可用,刷新页面生效'); } catch (error) {}
});
GM_registerMenuCommand('清除安全预览图缓存', function () {
clearCache();
try { GM_notification('安全预览图缓存已清除'); } catch (error) {}
});
}
return Object.freeze({
version: VERSION,
insert: insert,
registerMenu: registerMenu,
hostMatches: hostMatches,
validateUrl: validateUrl,
normalizeCode: normalizeCode,
resolveCoverAspectRatio: resolveCoverAspectRatio,
createSession: createSession,
disposeActive: function (reason) {
if (activeSession) { activeSession.dispose(reason || 'teardown'); }
},
adapters: adapters.map(function (adapter) {
return Object.freeze({ id: adapter.id, label: adapter.label, allowedHosts: adapter.allowedHosts.slice() });
}),
});
})();
SecureImagePreview.registerMenu();
function insertLongThumb (code, anchor, opts) {
SecureImagePreview.insert(code, anchor, opts);
}
// ---------- 115 网盘资源匹配 ----------
// 左键点条目:在 115vod 按 pickcode 打开;右键点条目:在 115 网盘按 cid 打开
let x115Token = 0;
let x115DelegateBound = false;
function setup115DelegateEvent () {
if (x115DelegateBound) { return; }
x115DelegateBound = true;
document.addEventListener("click", (e) => {
if (!e.target || !e.target.closest) { return; }
const el = e.target.closest(".x-match-item");
if (!el) { return; }
e.preventDefault();
e.stopPropagation();
const pc = el.dataset.pc;
if (pc) { GM_openInTab(`https://115vod.com/?pickcode=${pc}`, { active: true }); }
});
document.addEventListener("contextmenu", (e) => {
if (!e.target || !e.target.closest) { return; }
const el = e.target.closest(".x-match-item");
if (!el) { return; }
e.preventDefault();
e.stopPropagation();
const cid = el.dataset.cid;
if (cid) { GM_openInTab(`https://115.com/?cid=${cid}&offset=0&tab=&mode=wangpan`, { active: true }); }
});
}
/** 115文件大小格式化:s 为字节数;非数字/缺失时显示 0KB */
const format115Bytes = (bytes, k = 1024) => {
const b = Number(bytes);
if (!Number.isFinite(b) || b < k) { return "0KB"; }
const units = ["KB", "MB", "GB", "TB"];
const i = Math.min(Math.floor(Math.log(b) / Math.log(k)) - 1, units.length - 1);
const size = (b / (k ** (i + 1))).toFixed(2);
return `${size}${units[i]}`;
};
/** HTML转义:文件名/时间写入 innerHTML 前转义,防引号/< 断裂 */
function esc115Html (s) {
return String(s ?? "").replace(/[&<>"']/g, c => ({"&": "&", "<": "<", ">": ">", '"': """, "'": "'"}[c]));
}
/** 内置备用搜索(原库缺失时用):直调 webapi,返回 {state, data:[{pc,cid,s,t,n}]};失败/未登录时 state 为 false */
function search115VideosFallback (query) {
return new Promise((resolve) => {
GM_xmlhttpRequest({
method: "GET",
url: "https://webapi.115.com/files/search?search_value=" + encodeURIComponent(query) + "&format=json",
timeout: 10000,
onload (res) {
try {
const j = JSON.parse(res.responseText);
const data = Array.isArray(j.data) ? j.data : [];
resolve({ state: !!j.state, data: data });
} catch (e) { resolve({ state: false, data: [] }); }
},
onerror () { resolve({ state: false, data: [] }); },
ontimeout () { resolve({ state: false, data: [] }); }
});
});
}
/** 内置备用过滤(原库缺失时用):番号转“分隔符容忍”正则 */
function parse115CodeFilterFallback (codeText) {
const raw = String(codeText || "").trim();
const parts = raw.split(/[-_\s]+/).filter(Boolean).map(p => p.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"));
const body = parts.length > 1 ? parts.join("[-_ ]?") : (parts[0] || "");
return { codes: [raw], regex: new RegExp(body, "i") };
}
function render115Item (VOID, SELECTOR, { pc, cid, s, t, n }) {
const sizeText = format115Bytes(s);
return `${esc115Html(n)} - ${esc115Html(sizeText)} / ${esc115Html(t)} `;
}
/** 创建115查询模块DOM(异步填充;token 过期直接丢弃) */
function build115QueryBlock (codeText, token) {
const SELECTOR = "x-match-item";
const VOID = "javascript:void(0);";
const queryWrap = document.createElement("div");
queryWrap.className = "articles-115-query p-2 border rounded my-3";
queryWrap.setAttribute("data-my-injected", "articles-115");
queryWrap.style.visibility = "hidden";
queryWrap.innerHTML = `
115资源: 查询中...
`;
const queryNode = queryWrap.querySelector("#x-query-art");
// 原库可用走原版 Util.codeParse + Req115;缺失(@require 加载失败)走内置备用,保证绝不抛错
const useLibs = (typeof Util !== "undefined") && (typeof Util.codeParse === "function")
&& (typeof Req115 !== "undefined") && (typeof Req115.filesSearchAllVideos === "function");
if (!useLibs) { console.log("[115] 原库未加载走内置备用搜索(检查 @require 是否加载成功)"); }
const parsed = useLibs ? Util.codeParse(codeText) : parse115CodeFilterFallback(codeText);
const searcher = useLibs
? (q) => Req115.filesSearchAllVideos(q).then(({ data = [] }) => ({ state: true, data: data }))
: search115VideosFallback;
const renderResult = ({ state, data }) => {
if (token !== x115Token) { return; }
queryWrap.style.visibility = "visible";
const items = (Array.isArray(data) ? data : []).filter((item) => item && parsed.regex.test(item.n));
if (!state) { queryNode.textContent = "查询失败"; return; }
if (!items.length) { queryNode.textContent = "暂无资源"; return; }
queryNode.innerHTML = items.map((item) => render115Item(VOID, SELECTOR, item)).join("");
};
searcher(parsed.codes.join(" ")).then(renderResult).catch((err) => {
console.log("[115] 搜索失败", (err && err.message) || err);
if (useLibs) {
// 原库抛错(如 HTTP 4xx/超时),降级直调一次拿具体 state
search115VideosFallback(parsed.codes.join(" ")).then(renderResult).catch(() => {
if (token !== x115Token) { return; }
queryWrap.style.visibility = "visible";
queryNode.textContent = "查询异常";
});
} else {
if (token !== x115Token) { return; }
queryWrap.style.visibility = "visible";
queryNode.textContent = "查询异常";
}
});
return queryWrap;
}
// code: 番号;info: 选择器/jQuery对象/返回jQuery对象的函数;opts: {position:'append'|'prepend'|'before'|'after', extraClass}
function insert115Block (code, info, opts) {
try {
opts = opts || {};
if (!areAccountIntegrationsEnabled()) { return; }
if (!code) { return; }
try { setup115DelegateEvent(); } catch (e) {}
let $info = (typeof info === "function") ? info() : $(info);
if (!$info || !$info.length) { return; }
const token = ++x115Token;
const block = build115QueryBlock(code, token);
if (opts.extraClass) { block.classList.add(opts.extraClass); }
const pos = opts.position || "append";
if (pos === "before") { $info.before(block); }
else if (pos === "after") { $info.after(block); }
else if (pos === "prepend") { $info.prepend(block); }
else { $info.append(block); }
} catch (e) { console.log("[115] 插入失败", e); }
}
// 跳转链接各自作为整体换行:单个链接(含上标/番号)内部不断行,放不下时整个换到下一行
GM_addStyle(`a.red{display:inline-block;white-space:nowrap;}`);
// code 系列变量由调用方作用域传入;anchor: 选择器/jQuery对象/返回jQuery对象的函数
// 7 站跳转链接统一为一份 12 链接(本站不再剔除);外壳恢复各站原样:p / table / infobox / tiaozhuan
// opts:{style, position, extraClass};extraClass 仅默认 p 外壳使用(avmoo SPA 清理标记)
function insertJumpLinks (code, videoSeries, videoNo, anchor, opts) {
opts = opts || {};
if (!code) { return; }
let $anchor = (typeof anchor === "function") ? anchor() : $(anchor);
if (!$anchor || !$anchor.length) { return; }
const EC = opts.extraClass || "";
const inner = `trai lib bus db books spyl 98 btsow xslist dmmJP代 mgstageSG代 查看本番 ${videoSeries} 所有作品 `;
let html;
switch (opts.style) {
case "table": html = ""; break;
case "infobox": html = ""; break;
case "tiaozhuan": html = "" + inner + "
"; break;
default: html = "" + inner + "
"; break;
}
const pos = opts.position || "append";
if (pos === "before") { $anchor.before(html); }
else if (pos === "after") { $anchor.after(html); }
else { $anchor.append(html); }
}
// video.js 已移除,不再注入 video-js-css 及相关样式
(function () {
'use strict';
// ---------------------------------------------------------------------------
// 预告片诊断基线(1.1.0)
// 只采集本地诊断信息;不会自动上传,也不会自动探测网络。
// “运行网络诊断”必须由用户主动点击,且只读取少量字节。
// ---------------------------------------------------------------------------
const PreviewDiagnostics = (function () {
const VERSION = '1.3.0';
const MAX_EVENTS = 400;
const PROBE_LIMIT = 6;
const PLAYBACK_START_TIMEOUT = 18000;
const DIAGNOSTIC_CODES = Object.freeze({
SOURCE_MISSING: 'SOURCE_MISSING',
ACCESS_403: 'ACCESS_403',
CORS_BLOCKED: 'CORS_BLOCKED',
FORMAT_UNSUPPORTED: 'FORMAT_UNSUPPORTED',
HLS_INIT_FAILED: 'HLS_INIT_FAILED',
PLAYER_LIFECYCLE: 'PLAYER_LIFECYCLE',
ADAPTER_HOST_VIOLATION: 'ADAPTER_HOST_VIOLATION',
NETWORK_UNREACHABLE: 'NETWORK_UNREACHABLE',
MEDIA_ELEMENT_ERROR: 'MEDIA_ELEMENT_ERROR',
MEDIA_EVENT: 'MEDIA_EVENT',
PROBE_OK: 'PROBE_OK',
PROBE_SKIPPED: 'PROBE_SKIPPED',
CANDIDATES_EXHAUSTED: 'CANDIDATES_EXHAUSTED',
});
const ADAPTERS = Object.freeze({
'dmm-hhb': Object.freeze({
allowedHosts: Object.freeze(['cc3001.dmm.co.jp']),
}),
'legacy-multisource': Object.freeze({
allowedHosts: Object.freeze([
'cc3001.dmm.co.jp', 'cc3001.dmm.com', 'c3001.dmm.co.jp',
'sample.mgstage.com', 'www.mgstage.com', 'my.cdn.tokyo-hot.com',
'ppvclips02.aventertainments.com', 'smovie.1pondo.tv',
'sample-1pondo.eroxjapanz.com',
'smovie.10musume.com', 'smovie.caribbeancom.com',
'smovie.pacopacomama.com', 'fms.1pondo.tv',
'fms.pacopacomama.com', 'cdn.legsjapan.com',
'sample.heyzo.com', 'www.heyzo.com', 'contents.fc2.com',
]),
}),
'native-page': Object.freeze({
allowedHosts: Object.freeze([
'javdb.com', 'javbus.com', 'cc3001.dmm.co.jp',
'cc3001.dmm.com', 'c3001.dmm.co.jp', 'sample.mgstage.com',
]),
}),
});
let currentGeneration = 0;
let activeSession = null;
let eventSequence = 0;
const events = [];
const listeners = new Set();
function nowIso () {
return new Date().toISOString();
}
function sanitizeUrl (rawUrl) {
if (!rawUrl) { return ''; }
try {
const parsed = new URL(String(rawUrl), location.href);
const sensitive = /^(?:token|access_token|refresh_token|key|api_key|apikey|auth|authorization|cookie|session|sign|signature|password|passwd|pwd)$/i;
Array.from(parsed.searchParams.keys()).forEach(function (key) {
if (sensitive.test(key)) { parsed.searchParams.set(key, '[redacted]'); }
});
parsed.username = '';
parsed.password = '';
return parsed.href;
} catch (e) {
return String(rawUrl).slice(0, 500);
}
}
function normalizeAllowedHost (value) {
const raw = String(value || '').trim().toLowerCase().replace(/\.$/, '');
if (!raw || raw.includes('://') || raw.includes('/') || raw.includes('@')) { return null; }
// IPv6 字面量允许冒号;普通 hostname 中出现端口则拒绝。
if (raw.indexOf(':') !== -1 && !(raw.startsWith('[') && raw.endsWith(']'))) { return null; }
return raw;
}
function isIpOrLocalhost (hostname) {
return hostname === 'localhost' || /^\d{1,3}(?:\.\d{1,3}){3}$/.test(hostname) || hostname.includes(':');
}
function hostMatches (hostname, allowed) {
const host = String(hostname || '').trim().toLowerCase().replace(/\.$/, '');
const rule = normalizeAllowedHost(allowed);
if (!host || !rule) { return false; }
if (isIpOrLocalhost(host) || isIpOrLocalhost(rule)) { return host === rule; }
return host === rule || host.endsWith('.' + rule);
}
function validateUrl (rawUrl, adapterId, stage) {
const adapter = ADAPTERS[adapterId];
let parsed;
try {
parsed = new URL(String(rawUrl), location.href);
} catch (e) {
return { ok: false, stage: stage, reason: 'invalid-url', url: sanitizeUrl(rawUrl) };
}
if (parsed.protocol !== 'https:') {
return { ok: false, stage: stage, reason: 'protocol', protocol: parsed.protocol, url: sanitizeUrl(parsed.href) };
}
if (!adapter || !adapter.allowedHosts.some(function (allowed) { return hostMatches(parsed.hostname, allowed); })) {
return { ok: false, stage: stage, reason: 'hostname', hostname: parsed.hostname, url: sanitizeUrl(parsed.href) };
}
return { ok: true, stage: stage, hostname: parsed.hostname, url: sanitizeUrl(parsed.href) };
}
function notifyListeners () {
listeners.forEach(function (listener) {
try { listener(events); } catch (e) { console.warn('[preview-diagnostics] listener failed', e); }
});
}
function record (code, detail, session) {
const owner = session || activeSession;
const entry = {
seq: ++eventSequence,
at: nowIso(),
code: code,
sessionId: owner ? owner.id : null,
generation: owner ? owner.generation : null,
page: sanitizeUrl(location.origin + location.pathname),
detail: detail || {},
};
events.push(entry);
if (events.length > MAX_EVENTS) { events.splice(0, events.length - MAX_EVENTS); }
console.info('[preview-diagnostics]', entry);
notifyListeners();
return entry;
}
function mediaErrorDetail (video) {
const err = video && video.error;
return {
mediaErrorCode: err ? err.code : null,
mediaErrorMessage: err && err.message ? String(err.message) : '',
networkState: video ? video.networkState : null,
readyState: video ? video.readyState : null,
currentSrc: video ? sanitizeUrl(video.currentSrc) : '',
};
}
function collectCandidates (video) {
const values = [];
if (video && video.currentSrc) { values.push(video.currentSrc); }
if (video && video.src) { values.push(video.src); }
if (video) {
video.querySelectorAll('source[src]').forEach(function (source) {
values.push(source.src || source.getAttribute('src'));
});
}
return Array.from(new Set(values.filter(Boolean)));
}
function createSession (meta) {
const session = {
id: 'preview-' + Date.now().toString(36) + '-' + Math.random().toString(36).slice(2, 8),
generation: ++currentGeneration,
meta: Object.assign({}, meta || {}),
createdAt: nowIso(),
videos: new Set(),
videoMeta: new Map(),
mediaFailures: new Map(),
gmRequests: new Set(),
objectUrls: new Set(),
timers: new Set(),
animationFrames: new Set(),
abortController: new AbortController(),
hls: null,
mediaSource: null,
mediaSourceOwner: null,
disposed: false,
disposeReason: null,
residualCheck: null,
activeVideo: null,
activeAdapterId: null,
activationSequence: 0,
failedVideos: new Set(),
playbackWatchdog: null,
failureHandler: null,
autoHidePlayback: null,
isCurrent: function () {
return !this.disposed && this.generation === currentGeneration && activeSession === this;
},
addVideo: function (video, adapterId, label) {
if (!video || this.disposed || this.videos.has(video)) { return; }
const sessionRef = this;
this.videos.add(video);
this.videoMeta.set(video, { adapterId: adapterId, label: label || adapterId });
const candidates = collectCandidates(video);
candidates.forEach(function (candidate) {
const validation = validateUrl(candidate, adapterId, 'initial');
if (!validation.ok) {
record(DIAGNOSTIC_CODES.ADAPTER_HOST_VIOLATION, validation, sessionRef);
}
});
const eventNames = ['loadstart', 'loadedmetadata', 'canplay', 'playing', 'waiting', 'stalled', 'suspend', 'abort', 'emptied'];
eventNames.forEach(function (eventName) {
video.addEventListener(eventName, function () {
if (!sessionRef.isCurrent()) { return; }
if ((eventName === 'canplay' || eventName === 'playing') && sessionRef.activeVideo === video) {
sessionRef.failedVideos.delete(video);
if (sessionRef.playbackWatchdog) {
clearTimeout(sessionRef.playbackWatchdog);
sessionRef.timers.delete(sessionRef.playbackWatchdog);
sessionRef.playbackWatchdog = null;
}
}
record(DIAGNOSTIC_CODES.MEDIA_EVENT, {
event: eventName,
adapterId: adapterId,
label: label || adapterId,
currentSrc: sanitizeUrl(video.currentSrc),
networkState: video.networkState,
readyState: video.readyState,
paused: video.paused,
}, sessionRef);
}, { signal: this.abortController.signal });
}, this);
video.addEventListener('error', function () {
if (!sessionRef.isCurrent()) { return; }
const detail = mediaErrorDetail(video);
detail.adapterId = adapterId;
detail.label = label || adapterId;
detail.requiresNetworkProbe = true;
collectCandidates(video).forEach(function (candidate) {
sessionRef.mediaFailures.set(candidate, detail);
});
record(DIAGNOSTIC_CODES.MEDIA_ELEMENT_ERROR, detail, sessionRef);
const declaredType = video.querySelector('source[src]')?.getAttribute('type') || '';
if (declaredType && video.canPlayType && video.canPlayType(declaredType) === '') {
record(DIAGNOSTIC_CODES.FORMAT_UNSUPPORTED, {
adapterId: adapterId,
declaredType: declaredType,
currentSrc: detail.currentSrc,
}, sessionRef);
}
sessionRef.reportPlaybackFailure(video, Object.assign({ reason: 'media-error' }, detail));
}, { signal: this.abortController.signal });
},
setFailureHandler: function (handler) {
this.failureHandler = typeof handler === 'function' ? handler : null;
},
reportPlaybackFailure: function (video, detail) {
if (!this.isCurrent() || !video || this.failedVideos.has(video)) { return; }
this.failedVideos.add(video);
if (this.playbackWatchdog) {
clearTimeout(this.playbackWatchdog);
this.timers.delete(this.playbackWatchdog);
this.playbackWatchdog = null;
}
if (this.failureHandler) {
try { this.failureHandler({ session: this, video: video, detail: detail || {} }); }
catch (error) { console.warn('[preview-diagnostics] failure handler failed', error); }
}
},
activate: function (video, adapterId, reason) {
if (!this.isCurrent()) { return; }
if (this.playbackWatchdog) {
clearTimeout(this.playbackWatchdog);
this.timers.delete(this.playbackWatchdog);
this.playbackWatchdog = null;
}
this.activeVideo = video || null;
this.activeAdapterId = adapterId || null;
if (video) { this.failedVideos.delete(video); }
const activationSequence = ++this.activationSequence;
record(DIAGNOSTIC_CODES.MEDIA_EVENT, {
event: 'source-activate', adapterId: adapterId, reason: reason || 'unknown',
}, this);
const sessionRef = this;
const timer = setTimeout(function () {
sessionRef.timers.delete(timer);
if (!sessionRef.isCurrent()) { return; }
if (activationSequence !== sessionRef.activationSequence) { return; }
const playing = Array.from(sessionRef.videos).filter(function (item) { return !item.paused && !item.ended; });
record(DIAGNOSTIC_CODES.MEDIA_EVENT, {
event: 'active-count-check',
activeCount: playing.length,
expectedMaximum: 1,
passed: playing.length <= 1,
selectedAdapterId: sessionRef.activeAdapterId,
}, sessionRef);
if (playing.length > 1) {
record(DIAGNOSTIC_CODES.PLAYER_LIFECYCLE, {
reason: 'multiple-active-videos',
activeCount: playing.length,
selectedAdapterId: sessionRef.activeAdapterId,
}, sessionRef);
}
}, 800);
this.timers.add(timer);
if (video) {
const watchdog = setTimeout(function () {
sessionRef.timers.delete(watchdog);
if (sessionRef.playbackWatchdog === watchdog) { sessionRef.playbackWatchdog = null; }
if (!sessionRef.isCurrent() || activationSequence !== sessionRef.activationSequence) { return; }
if (video.readyState >= 3 || (!video.paused && video.currentTime > 0)) { return; }
const detail = Object.assign({
reason: 'playback-timeout',
timeoutMs: PLAYBACK_START_TIMEOUT,
adapterId: adapterId,
}, mediaErrorDetail(video));
record(DIAGNOSTIC_CODES.MEDIA_ELEMENT_ERROR, detail, sessionRef);
sessionRef.reportPlaybackFailure(video, detail);
}, PLAYBACK_START_TIMEOUT);
this.playbackWatchdog = watchdog;
this.timers.add(watchdog);
}
},
dispose: function (reason) {
if (this.disposed) { return this.residualCheck; }
this.disposed = true;
this.disposeReason = reason || 'unknown';
try { this.abortController.abort(); } catch (e) {}
this.gmRequests.forEach(function (request) {
try { if (request && typeof request.abort === 'function') { request.abort(); } } catch (e) {}
});
this.gmRequests.clear();
this.timers.forEach(function (timer) { clearTimeout(timer); clearInterval(timer); });
this.timers.clear();
this.playbackWatchdog = null;
this.failedVideos.clear();
this.failureHandler = null;
this.autoHidePlayback = null;
this.animationFrames.forEach(function (frame) { cancelAnimationFrame(frame); });
this.animationFrames.clear();
if (this.mediaSourceOwner === 'hls') {
try { if (this.hls && typeof this.hls.destroy === 'function') { this.hls.destroy(); } } catch (e) {}
this.hls = null;
// hls.js 拥有 MediaSource;destroy 后禁止再读写该实例。
this.mediaSource = null;
} else if (this.mediaSourceOwner === 'native') {
try {
if (this.mediaSource && this.mediaSource.readyState === 'open') { this.mediaSource.endOfStream(); }
} catch (e) {}
this.mediaSource = null;
}
this.mediaSourceOwner = null;
this.videos.forEach(function (video) {
try {
video.pause();
video.removeAttribute('src');
video.querySelectorAll('source').forEach(function (source) { source.removeAttribute('src'); });
video.load();
} catch (e) {}
});
this.objectUrls.forEach(function (objectUrl) {
try { URL.revokeObjectURL(objectUrl); } catch (e) {}
});
this.objectUrls.clear();
this.residualCheck = {
gmRequests: this.gmRequests.size,
timers: this.timers.size,
animationFrames: this.animationFrames.size,
objectUrls: this.objectUrls.size,
mediaSource: this.mediaSource !== null,
hls: this.hls !== null,
};
const residual = this.residualCheck;
const hasResidual = Object.keys(residual).some(function (key) { return Boolean(residual[key]); });
if (hasResidual) {
record(DIAGNOSTIC_CODES.PLAYER_LIFECYCLE, {
reason: 'dispose-residual',
disposeReason: this.disposeReason,
residualCheck: this.residualCheck,
}, this);
}
return this.residualCheck;
},
};
activeSession = session;
record(DIAGNOSTIC_CODES.MEDIA_EVENT, { event: 'session-created', meta: session.meta }, session);
return session;
}
function gmProbe (rawUrl, adapterId, session) {
return new Promise(function (resolve) {
const initialValidation = validateUrl(rawUrl, adapterId, 'initial');
if (!initialValidation.ok) {
record(DIAGNOSTIC_CODES.ADAPTER_HOST_VIOLATION, initialValidation, session);
resolve({ ok: false, validation: initialValidation });
return;
}
let settled = false;
const finish = function (result) {
if (settled) { return; }
settled = true;
resolve(result);
};
let request;
try {
request = GM_xmlhttpRequest({
method: 'GET',
url: rawUrl,
headers: { Range: 'bytes=0-1' },
responseType: 'arraybuffer',
timeout: 10000,
onload: function (response) {
if (session) { session.gmRequests.delete(request); }
if (session && !session.isCurrent()) { finish({ ok: false, stale: true }); return; }
const finalUrl = response.finalUrl || rawUrl;
const finalValidation = validateUrl(finalUrl, adapterId, 'final');
if (!finalValidation.ok) {
record(DIAGNOSTIC_CODES.ADAPTER_HOST_VIOLATION, Object.assign({
initialUrl: sanitizeUrl(rawUrl), finalUrl: sanitizeUrl(finalUrl),
redirectPolicy: 'post-validate', redirectCount: null, violation: true,
}, finalValidation), session);
finish({ ok: false, status: response.status, validation: finalValidation });
return;
}
const headers = String(response.responseHeaders || '');
const typeMatch = headers.match(/^content-type:\s*([^;\r\n]+)/im);
finish({
ok: response.status >= 200 && response.status < 300,
status: response.status,
contentType: typeMatch ? typeMatch[1].trim().toLowerCase() : '',
initialUrl: sanitizeUrl(rawUrl),
finalUrl: sanitizeUrl(finalUrl),
redirectPolicy: 'post-validate',
redirectCount: null,
});
},
onerror: function () {
if (session) { session.gmRequests.delete(request); }
if (session && !session.isCurrent()) { finish({ ok: false, stale: true }); return; }
finish({ ok: false, networkError: true, initialUrl: sanitizeUrl(rawUrl) });
},
ontimeout: function () {
if (session) { session.gmRequests.delete(request); }
if (session && !session.isCurrent()) { finish({ ok: false, stale: true }); return; }
finish({ ok: false, timeout: true, initialUrl: sanitizeUrl(rawUrl) });
},
onabort: function () {
if (session) { session.gmRequests.delete(request); }
if (session && !session.isCurrent()) { finish({ ok: false, stale: true }); return; }
finish({ ok: false, aborted: true, initialUrl: sanitizeUrl(rawUrl) });
},
});
if (session && request) { session.gmRequests.add(request); }
} catch (e) {
finish({ ok: false, exception: String(e), initialUrl: sanitizeUrl(rawUrl) });
}
});
}
async function fetchProbe (rawUrl, adapterId, session) {
const validation = validateUrl(rawUrl, adapterId, 'initial');
if (!validation.ok) { return { ok: false, validation: validation }; }
const controller = new AbortController();
const timer = setTimeout(function () { controller.abort(); }, 8000);
if (session) { session.timers.add(timer); }
try {
const response = await fetch(rawUrl, {
method: 'GET', mode: 'cors', credentials: 'omit', cache: 'no-store',
redirect: 'follow', headers: { Range: 'bytes=0-1' }, signal: controller.signal,
});
if (session && !session.isCurrent()) { return { ok: false, stale: true }; }
const finalValidation = validateUrl(response.url || rawUrl, adapterId, 'final');
return {
ok: response.ok && finalValidation.ok,
status: response.status,
contentType: (response.headers.get('content-type') || '').toLowerCase(),
initialUrl: sanitizeUrl(rawUrl), finalUrl: sanitizeUrl(response.url || rawUrl),
finalValidation: finalValidation, redirectPolicy: 'post-validate', redirectCount: null,
};
} catch (e) {
return {
ok: false, fetchError: e && e.name ? e.name : 'Error',
message: e && e.message ? String(e.message) : String(e),
initialUrl: sanitizeUrl(rawUrl),
};
} finally {
clearTimeout(timer);
if (session) { session.timers.delete(timer); }
}
}
function classifyProbe (rawUrl, adapterId, fetchResult, gmResult, session) {
const detail = {
adapterId: adapterId,
url: sanitizeUrl(rawUrl),
fetch: fetchResult,
gm: gmResult,
suspectedRegionRestricted: false,
};
if (gmResult && gmResult.validation && !gmResult.validation.ok) {
return record(DIAGNOSTIC_CODES.ADAPTER_HOST_VIOLATION, detail, session);
}
if (gmResult && gmResult.status === 403) {
return record(DIAGNOSTIC_CODES.ACCESS_403, detail, session);
}
if (gmResult && (gmResult.status === 404 || gmResult.status === 410)) {
return record(DIAGNOSTIC_CODES.SOURCE_MISSING, detail, session);
}
if (fetchResult && !fetchResult.ok && gmResult && gmResult.ok) {
return record(DIAGNOSTIC_CODES.CORS_BLOCKED, detail, session);
}
if (gmResult && gmResult.ok) {
const contentType = gmResult.contentType || (fetchResult && fetchResult.contentType) || '';
if (contentType && !/(?:video\/|application\/(?:vnd\.apple\.mpegurl|x-mpegurl|octet-stream))/i.test(contentType)) {
return record(DIAGNOSTIC_CODES.FORMAT_UNSUPPORTED, detail, session);
}
if (/\.m3u8(?:$|[?#])/i.test(rawUrl) && session && session.mediaFailures.has(rawUrl)) {
detail.mediaError = session.mediaFailures.get(rawUrl);
return record(DIAGNOSTIC_CODES.HLS_INIT_FAILED, detail, session);
}
return record(DIAGNOSTIC_CODES.PROBE_OK, detail, session);
}
return record(DIAGNOSTIC_CODES.NETWORK_UNREACHABLE, detail, session);
}
function switchPreviewSource (session, targetVideo, adapterId, reason, options) {
if (!session || !session.isCurrent() || !targetVideo || !session.videos.has(targetVideo)) {
return Promise.resolve(false);
}
const settings = options || {};
session.videos.forEach(function (video) {
if (video === targetVideo) { return; }
try { video.pause(); } catch (e) {}
});
if (settings.reload) {
try { targetVideo.load(); } catch (e) {}
}
session.activate(targetVideo, adapterId, reason || 'manual-switch');
try {
const playResult = targetVideo.play();
if (playResult && typeof playResult.then === 'function') {
return playResult.then(function () { return true; }).catch(function (error) {
if (session.isCurrent()) {
record(DIAGNOSTIC_CODES.MEDIA_EVENT, {
event: 'play-rejected',
adapterId: adapterId,
errorName: error && error.name ? String(error.name) : 'Error',
message: error && error.message ? String(error.message) : String(error || ''),
}, session);
}
return false;
});
}
return Promise.resolve(true);
} catch (error) {
if (session.isCurrent()) {
record(DIAGNOSTIC_CODES.MEDIA_EVENT, {
event: 'play-rejected',
adapterId: adapterId,
errorName: error && error.name ? String(error.name) : 'Error',
message: error && error.message ? String(error.message) : String(error || ''),
}, session);
}
return Promise.resolve(false);
}
}
function candidateHostname (rawUrl) {
try { return new URL(String(rawUrl), location.href).hostname.toLowerCase().replace(/\.$/, ''); }
catch (e) { return ''; }
}
async function probeSession (session) {
if (!session || !session.isCurrent()) { return []; }
const targets = [];
session.videos.forEach(function (video) {
const meta = session.videoMeta.get(video) || {};
collectCandidates(video).forEach(function (url) {
if (!targets.some(function (item) { return item.url === url; })) {
targets.push({ url: url, adapterId: meta.adapterId || 'legacy-multisource' });
}
});
});
const results = [];
const blockedHosts = new Map();
const skippedByHost = new Map();
let skippedInvalid = 0;
let skippedByLimit = 0;
let probedCount = 0;
let usableCount = 0;
let externalTarget = null;
for (const target of targets) {
if (!session.isCurrent()) { break; }
const validation = validateUrl(target.url, target.adapterId, 'initial');
if (!validation.ok) {
skippedInvalid += 1;
continue;
}
if (!externalTarget) { externalTarget = target; }
const hostname = candidateHostname(target.url);
if (blockedHosts.has(hostname)) {
const skipped = skippedByHost.get(hostname) || { count: 0, causedBy: blockedHosts.get(hostname) };
skipped.count += 1;
skippedByHost.set(hostname, skipped);
continue;
}
if (probedCount >= PROBE_LIMIT) {
skippedByLimit += 1;
continue;
}
probedCount += 1;
const gmResult = await gmProbe(target.url, target.adapterId, session);
if (!session.isCurrent()) { break; }
let fetchResult;
if (gmResult && gmResult.status === 403) {
fetchResult = { ok: false, skipped: true, reason: 'gm-access-403' };
} else {
fetchResult = await fetchProbe(target.url, target.adapterId, session);
if (!session.isCurrent()) { break; }
}
const classified = classifyProbe(target.url, target.adapterId, fetchResult, gmResult, session);
results.push(classified);
if (classified.code === DIAGNOSTIC_CODES.ACCESS_403 && hostname) {
blockedHosts.set(hostname, sanitizeUrl(target.url));
}
if (classified.code === DIAGNOSTIC_CODES.PROBE_OK || classified.code === DIAGNOSTIC_CODES.CORS_BLOCKED) {
usableCount += 1;
}
}
skippedByHost.forEach(function (skipped, hostname) {
results.push(record(DIAGNOSTIC_CODES.PROBE_SKIPPED, {
reason: 'host-access-403',
hostname: hostname,
skippedCount: skipped.count,
causedBy: skipped.causedBy,
}, session));
});
if (skippedInvalid > 0) {
results.push(record(DIAGNOSTIC_CODES.PROBE_SKIPPED, {
reason: 'initial-url-validation', skippedCount: skippedInvalid,
}, session));
}
if (skippedByLimit > 0) {
results.push(record(DIAGNOSTIC_CODES.PROBE_SKIPPED, {
reason: 'probe-limit', probeLimit: PROBE_LIMIT, skippedCount: skippedByLimit,
}, session));
}
if (session.isCurrent() && usableCount === 0) {
const classifiedCounts = results.reduce(function (counts, entry) {
counts[entry.code] = (counts[entry.code] || 0) + 1;
return counts;
}, {});
const probeComplete = skippedByLimit === 0;
let outcome = 'unavailable';
if (!probeComplete) {
outcome = 'incomplete';
} else if ((classifiedCounts[DIAGNOSTIC_CODES.ACCESS_403] || 0) > 0 || blockedHosts.size > 0) {
outcome = 'access-blocked';
} else if (skippedInvalid === 0 && probedCount > 0 && (classifiedCounts[DIAGNOSTIC_CODES.SOURCE_MISSING] || 0) === probedCount) {
outcome = 'source-missing';
}
results.push(record(DIAGNOSTIC_CODES.CANDIDATES_EXHAUSTED, {
candidateCount: targets.length,
probedCount: probedCount,
skippedCount: Array.from(skippedByHost.values()).reduce(function (sum, item) { return sum + item.count; }, 0) + skippedInvalid + skippedByLimit,
blockedHosts: Array.from(blockedHosts.keys()),
probeComplete: probeComplete,
outcome: outcome,
classifiedCounts: classifiedCounts,
externalUrl: externalTarget ? sanitizeUrl(externalTarget.url) : '',
externalAdapterId: externalTarget ? externalTarget.adapterId : '',
}, session));
}
return results;
}
function exportPayload () {
return {
schema: 'jav-preview-diagnostics/v1',
version: VERSION,
generatedAt: nowIso(),
page: sanitizeUrl(location.origin + location.pathname),
userAgent: navigator.userAgent,
activeSession: activeSession ? {
id: activeSession.id,
generation: activeSession.generation,
meta: activeSession.meta,
disposed: activeSession.disposed,
disposeReason: activeSession.disposeReason,
residualCheck: activeSession.residualCheck,
} : null,
events: events.slice(),
};
}
function copyDiagnostics () {
const text = JSON.stringify(exportPayload(), null, 2);
try {
if (typeof GM_setClipboard === 'function') { GM_setClipboard(text, 'text'); return true; }
} catch (e) {}
try { navigator.clipboard.writeText(text); return true; } catch (e) { return false; }
}
function describeExhaustion (entry) {
const detail = entry && entry.detail ? entry.detail : {};
const outcome = detail.outcome || 'unavailable';
const blockedHosts = Array.isArray(detail.blockedHosts) ? detail.blockedHosts.filter(Boolean) : [];
if (outcome === 'source-missing') {
return {
summary: '预告片诊断:该番号目前没有可用预告片',
message: '已完成全部候选探测,现有来源均明确返回资源不存在。',
tone: 'neutral',
};
}
if (outcome === 'access-blocked') {
return {
summary: '预告片诊断:现有来源拒绝访问',
message: '候选资源可能存在,但当前网络无法访问' + (blockedHosts.length ? ':' + blockedHosts.join('、') : '。'),
tone: 'warning',
};
}
if (outcome === 'incomplete') {
return {
summary: '预告片诊断:尚不能确定结果',
message: '诊断预算已用完,仍有候选未探测,不能据此判断资源不存在。',
tone: 'warning',
};
}
return {
summary: '预告片诊断:现有候选均不可用',
message: '探测未发现可播放候选;请复制诊断日志查看具体失败原因。',
tone: 'warning',
};
}
function mountPanel (container, session) {
if (!container || container.querySelector('.jav-preview-diagnostics')) { return; }
const details = document.createElement('details');
details.className = 'jav-preview-diagnostics';
details.style.cssText = 'margin:8px auto;max-width:960px;text-align:left;border:1px solid #bbb;border-radius:4px;padding:6px;background:#fafafa;color:#222;font-size:12px;';
const summary = document.createElement('summary');
summary.textContent = '预告片诊断:等待播放器事件';
summary.style.cursor = 'pointer';
const controls = document.createElement('div');
controls.style.cssText = 'margin-top:7px;display:flex;gap:6px;flex-wrap:wrap;';
const probeButton = document.createElement('button');
probeButton.type = 'button';
probeButton.textContent = '运行网络诊断';
const copyButton = document.createElement('button');
copyButton.type = 'button';
copyButton.textContent = '复制诊断日志';
const externalButton = document.createElement('button');
externalButton.type = 'button';
externalButton.textContent = '外部打开首个候选(可能失败)';
externalButton.hidden = true;
const exhaustedStatus = document.createElement('div');
exhaustedStatus.hidden = true;
exhaustedStatus.setAttribute('role', 'status');
exhaustedStatus.style.cssText = 'margin-top:7px;padding:7px 9px;border-radius:4px;line-height:1.5;';
const hiddenStatus = document.createElement('div');
hiddenStatus.hidden = true;
hiddenStatus.setAttribute('role', 'status');
hiddenStatus.style.cssText = 'margin:7px 0;padding:8px 10px;border:1px solid #ffe69c;border-radius:4px;background:#fff3cd;color:#664d03;line-height:1.5;';
const hiddenText = document.createElement('span');
const showAgainButton = document.createElement('button');
showAgainButton.type = 'button';
showAgainButton.textContent = '重新显示播放器';
showAgainButton.style.cssText = 'margin-left:8px;padding:3px 8px;cursor:pointer;';
hiddenStatus.appendChild(hiddenText);
hiddenStatus.appendChild(showAgainButton);
const pre = document.createElement('pre');
pre.style.cssText = 'max-height:220px;overflow:auto;white-space:pre-wrap;margin:7px 0 0;';
const refresh = function () {
const related = events.filter(function (entry) { return entry.sessionId === session.id; });
const last = related[related.length - 1];
let exhausted = null;
for (let index = related.length - 1; index >= 0; index -= 1) {
const entry = related[index];
const recovered = entry.code === DIAGNOSTIC_CODES.PROBE_OK ||
(entry.code === DIAGNOSTIC_CODES.MEDIA_EVENT && entry.detail &&
(entry.detail.event === 'canplay' || entry.detail.event === 'playing'));
if (recovered) { break; }
if (entry.code === DIAGNOSTIC_CODES.CANDIDATES_EXHAUSTED && entry.detail) {
exhausted = entry;
break;
}
}
if (exhausted) {
const presentation = describeExhaustion(exhausted);
summary.textContent = presentation.summary;
exhaustedStatus.hidden = false;
exhaustedStatus.textContent = presentation.message;
exhaustedStatus.style.background = presentation.tone === 'warning' ? '#fff3cd' : '#eef2f5';
exhaustedStatus.style.border = presentation.tone === 'warning' ? '1px solid #ffe69c' : '1px solid #d7dde2';
} else {
summary.textContent = last ? '预告片诊断:' + last.code : '预告片诊断:等待播放器事件';
exhaustedStatus.hidden = true;
exhaustedStatus.textContent = '';
}
externalButton.hidden = !(exhausted && exhausted.detail.externalUrl);
externalButton.dataset.url = exhausted ? exhausted.detail.externalUrl : '';
externalButton.dataset.adapterId = exhausted ? exhausted.detail.externalAdapterId : '';
pre.textContent = related.slice(-12).map(function (entry) {
return entry.at + ' ' + entry.code + ' ' + JSON.stringify(entry.detail);
}).join('\n');
};
listeners.add(refresh);
session.abortController.signal.addEventListener('abort', function () { listeners.delete(refresh); }, { once: true });
probeButton.addEventListener('click', async function () {
if (!session.isCurrent()) { return; }
probeButton.disabled = true;
probeButton.textContent = '诊断中…';
try { await probeSession(session); }
finally {
if (!session.isCurrent()) { return; }
probeButton.disabled = false;
probeButton.textContent = '运行网络诊断';
refresh();
}
}, { signal: session.abortController.signal });
copyButton.addEventListener('click', function () {
if (!session.isCurrent()) { return; }
copyButton.textContent = copyDiagnostics() ? '已复制' : '复制失败';
const timer = setTimeout(function () {
session.timers.delete(timer);
if (!session.isCurrent()) { return; }
copyButton.textContent = '复制诊断日志';
}, 1500);
session.timers.add(timer);
}, { signal: session.abortController.signal });
externalButton.addEventListener('click', function () {
if (!session.isCurrent()) { return; }
const url = externalButton.dataset.url || '';
const adapterId = externalButton.dataset.adapterId || '';
if (!validateUrl(url, adapterId, 'external-open').ok) { return; }
try {
if (typeof GM_openInTab === 'function') { GM_openInTab(url, { active: true, insert: true }); }
else { window.open(url, '_blank', 'noopener,noreferrer'); }
} catch (e) { window.open(url, '_blank', 'noopener,noreferrer'); }
}, { signal: session.abortController.signal });
controls.appendChild(probeButton);
controls.appendChild(copyButton);
controls.appendChild(externalButton);
container.appendChild(hiddenStatus);
details.appendChild(summary);
details.appendChild(controls);
details.appendChild(exhaustedStatus);
details.appendChild(pre);
container.appendChild(details);
let hiddenExtras = [];
session.autoHidePlayback = function (message, extras) {
if (!session.isCurrent()) { return; }
hiddenExtras = Array.isArray(extras) ? extras.filter(Boolean) : [];
session.videos.forEach(function (video) {
try { video.pause(); } catch (error) {}
video.style.setProperty('display', 'none', 'important');
});
hiddenExtras.forEach(function (node) { node.hidden = true; });
hiddenText.textContent = message || '预告片无法播放,播放器已自动隐藏。';
hiddenStatus.hidden = false;
record(DIAGNOSTIC_CODES.MEDIA_EVENT, {
event: 'preview-auto-hidden',
adapterId: session.activeAdapterId,
reason: 'playback-unavailable',
}, session);
};
if (!session.failureHandler) {
session.setFailureHandler(function () {
session.autoHidePlayback('预告片无法播放,播放器已自动隐藏。');
});
}
showAgainButton.addEventListener('click', function () {
if (!session.isCurrent()) { return; }
hiddenStatus.hidden = true;
hiddenExtras.forEach(function (node) { node.hidden = false; });
const video = session.activeVideo || Array.from(session.videos)[0];
if (!video) { return; }
video.style.setProperty('display', 'block', 'important');
session.failedVideos.delete(video);
try { video.load(); } catch (error) {}
switchPreviewSource(session, video, session.activeAdapterId || 'legacy-multisource', 'manual-retry');
}, { signal: session.abortController.signal });
refresh();
}
try {
if (typeof GM_registerMenuCommand === 'function') {
GM_registerMenuCommand('复制预告片诊断日志', copyDiagnostics);
GM_registerMenuCommand('清空预告片诊断日志', function () {
events.splice(0, events.length);
notifyListeners();
});
}
} catch (e) { console.warn('[preview-diagnostics] menu registration failed', e); }
window.addEventListener('pagehide', function () {
if (activeSession) { activeSession.dispose('pagehide'); }
}, { once: true });
return Object.freeze({
codes: DIAGNOSTIC_CODES,
createSession: createSession,
getActiveSession: function () { return activeSession; },
disposeActive: function (reason) { return activeSession ? activeSession.dispose(reason) : null; },
mountPanel: mountPanel,
probeSession: probeSession,
switchPreviewSource: switchPreviewSource,
record: record,
validateUrl: validateUrl,
hostMatches: hostMatches,
describeExhaustion: describeExhaustion,
exportPayload: exportPayload,
copyDiagnostics: copyDiagnostics,
});
})();
// 番号系列 前缀及数字补位 与format_zero配合使用 3位数默认为番号后数字以区别开截取234位
// --------------------------------------------------------------
// mgstage预览资源需番羽可见 新加坡代可看
// 部分国家或地区无法访问 自行切换节点尝试
// gerk 2020-04-12 及之前的资源在mgs上全部被删
// --------------------------------------------------------------
const fanxi = {
// 对象依次为:番号系列前缀\是否加00\分辨率\车牌后缀\无规则特例,为了更快更精准,加了后面两个,但是这个校对工程太大,将是一个长期核验的大工程!
// 无(含无效)预览: aaj/abfk/abgd/abon/abop/abpn/abz/ac/aca/acrs/act/acup/ada/adnd/adr/ads/afd/agex/agjk/ahd/ahh/ahr/ai/aida/aidd/aima/aizm/aizmb/aljm/amabs/amad/amai/ambz/amdp/amhd/amid/ammp/ammt/andp/aned/anix/ank/anl/anmn/ano/anzi/aofs/aozgs/apas/apbmg/apfb/apkr/aqf/ar/arbx/arc/arcd/ard/arss/artdv/arz/as/asb/asmr/asnd/ass/astar/astl/atat/atch/atlb/atrm/atsd/atsw/atsx/au/avb/avcn/avd/avdd/avg/avh/avln/avpd/avr/avsb/avst/avtd/avvb/avwd/avwo/aw/aweb/awf/awfb/axaa/axah/axan/axba/axbb/axisd/axsds/ay/ayad/azaa/azd/aze/baby/bad/baip/ban/batd/bbbn/bbcd/bbd/bbdt/bbdx/bbed/bbf/bbko/bbks/bblp/bbmd/bbo/bbox/bbp/bbv/bbx/bbxn/bc/bcbd/bcex/bd/bdhyaku/bdm/bdmada/bdmkmp/bdu/bec/bed/bemu/bes/bfdt/bfg/bgbd/bgdb/bgrb/bgrd/bgrp/bh/bhcs/bhh/bhhs/bhn/bhol/bhp/bhsd/bhsx/bi/bifc/bigbd/bijd/bijs/bisn/bj/bjn/bjo/bjoyu/bjpq/bjtl/bjv/bk/bkb/bkbd/bkcd/bkgd/bkh/bkj/bkkd/bknd/bkod/bksd/bksk/bkt/bkw/bkwd/bkyd/bkzd/bl/blak/bldv/blf/blgt/blmd/blo/blow/bls/blt/bltr/blub/bm/bmbbvr/bmds/bmdu/bmg/bmild/bmkt/bmmd/bmr/bmvr/bmvrs/bnbm/bnex/bnfi/cend/drd/drdx/efdm/fslj/jube/kbba/mard/nsmd/okxd/oprd/pets/qrdf/rqmt/SSHS/dsdf/gml/jkna/juk/kckc/ndht/ndit/nnp/uga/lmpp/lmsl/lmss/lmsx/lmv/lmvl/lmvv/lmx/lmpdx/lo/loj/lodc/loved/lovy/lovdsale/lpcd/lpep/lpex/lpgh/lpgx/lpq/lpsd/lptm/lqbk/lr/lrex/lrm/lsaj/ltbb/ltsd/ltss/lttl/lttn/lugd/lsvk/lukd/maji/maka/makb/makk/mbx/mbz/mc/mca/mcan/mcdv/mcgs/mch/mam/mdpd/mdqd/mmm/mdrd/mdsc/mdsm/mnsvr/SGCRS/amra/amvd/amy/aota/appi/aqnu/bjst/bnj/bnk/bnm/bnmc/bnpm/bnr/bns/bntd/bnyd/bnyog/bo/bob/bobs/bobz/bodx/bog/boga/boh/bohi/bomd/bomnvd/bong/book/boon/bosa/bow/boxd/bp/bpd/bpj/bpop/bpr/bpsd/bra/breal/brhs/brim/brth/bsbd/bsdx/bse/bsfh/bsmv/bspk/bsr/btb/btby/btcd/btch/btm/btmb/btms/btr/btrr/bty/bubd/bunk/bura/buzp/buzx/bvd/bvdd/bw/bwk/bxd/bxja/byc/bz/bzad/bzc/bzvr/ca/cab/cabd/cadj/cadr/calo/cd/chik/cute/dz/fasu/hhh/htf/kdk/kiwvrl/kmds/kmtd/kmtv/ktkf/lzfb/m/mgss/nmgt/odvhk/ovvr/ppbx/roridv/rwpp/senk/shmb/sprbd/stbd/stod/tkbi/urr/ursp/uryu/us/ush/uss/uszd/utd/uwa/uwf/uwmg/uzm/uzr/va/vacd/vadd/vahex/valf/vard/vb/vbb/vbhr/vcad/vcd/vdbr/vdob/vdv/vear/verd/vetg/vhsd/vip/vipr/virn/virtd/visv/vivd/vivi/vktd/vkvr/vla/vlb/vlbs/vled/vlod/vmod/vnm/vnp/vnpd/vnre/vnup/vo/vodvrj/vord/vosd/votd/vovr/vpr/vpw/vrab/vrat/vrcand/vrd/vrdv/vreds/vrf/vri/vrids/vrmt/vrpds/vrsbmo/vrspfuku/vrtms/vrtmt/vrvrp/vrvrw/vs/vsd/vssd/vt/vtc/vvdd/vvdt/vvvr/wad/wajk/wakd/walha/wand/wang/ward/wbb/wbt/wbx/wc/wca/wcb/wcc/wcm/wcmd/wcmt/wcw/wcx/wd/we/wek/wet/wfb/wfbr/wfc/wfd/wffd/wft/wgw/wha/whpd/whs/wicp/wix/wj/wked/wkod/wkr/wktk/wkz/wmj/wmvd/wnd/wnk/wnos/wnt/wnzr/wnzs/wob/woch/wod/woj/wp/wpa/wpp/wr/wrj/wrkr/ws/wsbz/wsek/wser/wses/wsl/wsn/wsnh/wsno/wth/wtsd/wvrs/wz/wzc/wzuk/x/xaj/xat/xbs/xbsz/xbvr/xc/xg/xgsd/xkvr/xmbd/xmd/xmdp/ynhk/zkma/fodv/gacha/komz/kzblm/nagas/roriav/sqnc/sx/totu/towa/toyd/toz/tp/tpd/tpgd/tph/tpl/tpsp/tpt/tqx/trb/trbox/trcd/trdb/trdbs/trdd/trh/trip/trjd/trjsd/trkd/trl/trsh/trt/trtr/trxx/try/trz/tsb/tsdl/tsg/tsgs/tsk/tsw/tswn/tta/ttid/ttk/ttnk/ttoj/ttok/ttp/ttr/ttra/ttrb/ttrn/tttd/tttv/tufd/tujd/tukm/tuna/tusd/tuvr/tuxd/tuya/tv/tvg/tvtm/tw/twg/twld/twt/twvr/tx/txcd/txd/tya/tyrd/tzd/tzdt/tzsd/u/uaid/uaz/ubg/ucc/ucf/ucg/ucl/uco/uct/ucw/udk/ug/ugdm/ugex/ugfm/ugk/ugsp/ugwa/uhm/uhsd/uht/uiaiv/uias/uk/ukb/ukc/ukm/uksp/ulf/ultr/um/unag/unbe/unci/uncp/und/unde/ungr/ungs/unip/unkl/unks/unsd/unsh/unwe/uom/up/upd/upgd/ups/upsa/upt/uquv/urd/urfuku/wwao/end/tead/teh/temp/tend/tese/tex/teye/tez/tfb/tfvr/tgap/tghp/tghr/tgj/tgks/tgl/tglx/tgm/tgn/tgr/tgsd/tgsx/thd/thex/thh/thk/thm/thmd/thor/thsd/tht/thy/tie/tik/tikc/tikf/tikj/tikm/tiq/tisd/tjca/tjh/tjvr/tjy/tkad/tkg/tkgd/tkhd/tkkd/tkkdkj/tkrm/tksd/tksl/tksm/tktek/tkurpw/tkv/tlc/tld/tlld/tlp/tlsd/tmax/tmaxs/tmbmix/tmdead/tmfa/tmg/tmgd/tmgz/tmik/tmis/tmko/tml/tmlz/tmom/tmv/tmvr/tn/tni/tnkd/tnod/tocd/tokutani/tone/tos/tosd/tosto/svx/sxd/sxnd/sxxp/syl/syok/syq/sysg/sytd/sz/szd/szkk/taa/tab/tabi/tabiyu/tac/taf/tagp/take/takex/taku/tam/tame/tantan/tao/tape/taps/tarax/tato/tba/tbbh/tbc/tbdr/tbee/tbest/tbf/tbk/tbp/tbr/tbs/tbsd/tbt/tbvr/tbxx/tcb/tcg/tcn/tcr/tcw/tdln/tdm/tdp/tdpp/tdps/hwaz/kv/mon/nssth/soy/spa/spbox/spbx/spcl/spd/spdvr/spdvrj/spfd/spg/spid/spkd/spkg/spot/spp/spsb/spsd/spx/spzvr/sren/sri/srkd/srkp/sro/sron/srop/srpd/ssd/ssss/sswd/ssx/st/stak/stan/stee/step/stev/stg/stl/sto/stor/stph/stphb/stri/stv/styj/styl/styla/su/sug/suga/sugax/sugo/sukb/surl/suvd/suvm/suw/svdr/svgd/svld/svmd/svnd/svod/svr/svrd/svsd/cse/dgse/djse/dkse/dmmserina/dnse/dsed/dsex/ese/fese/hsel/kseg/kset/mhse/mistw/mse/naruse/nse/ose/pse/rseed/sea/seam/sebd/sec/secd/see/seg/sehk/sehl/sekusp/sel/semc/semg/semo/sems/sen/senba/sep/sepd/ser/sesb/seta/seyg/sodvr/sog/sok/somx/sond/soom/sopd/sopx/sot/sow/sox/spvr/tasd/vse/wsey/ctup/fft/hdk/heo/hgmj/hma/hzo/incs/kbr/nhkb/nnsbd/nnssa/ogsn/orsts/roribv/sht/silspe/silvia/simo/sino/sioc/sird/sirp/sisa/sisd/sita/sjc/sjd/sjdv/sjk/sjld/sjmd/sjokx/sjp/sjs/sju/sjz/skaim/skb/skc/skg/skh/skhg/skk/sknd/skne/sko/skp/skr/sksc/skt/sktd/sktn/skv/skyj/slc/sli/slm/slot/slpgp/slphw/slv/slvg/slw/sly/smap/smbd/smdb/smhd/smjd/smld/smpw/smqd/smtv/smu/smud/smum/smy/smz/snbu/sneve/sngm/sni/snid/snkd/snkj/snmd/snod/snp/snr/sns/snsi/sny/snz/sod/sgpd/sgrk/sgsc/sgsds/sgsfs/sgsps/sgubs/sgw/sgwc/sgws/sh/shbo/shbob/shicbox/shid/shio/shis/shiss/shk/shki/shmo/shmoh/shor/shud/shx/shy/sibd/sidd/sidi/siex/sihm/siin/sikax/sil/sddk/sddt/sdg/sdgq/sdm/sdsb/sdsd/sdx/sdxx/sear/seaz/sellx/setakdl/seumd/sexd/sf/sfbb/sfj/sfkd/sfla/sflbk/sfm/sfn/sfna/sfol/sfr/sfrd/sfrr/sfsr/sftd/sfz/sg/sgbes/sghd/sgi/sgka/sgkfs/sgmas/sgmd/sgmh/sgms/sgnt/sgoms/s/sa/saa/sab/saca/sad/safd/sag/sak/sam/sams/sand/sankx/sao/sap/sas/satn/sav/sbca/sbcl/sbdd/sbds/sbes/sbh/sbhe/sbid/sbja/sbjd/sbkd/sbks/sbl/sbnd/sbns/sboc/sbog/sbox/sbpd/sbr/sbrj/sbsd/sbsds/sbvb/sbxd/sbz/sbzd/sc/scad/scas/scbe/scbm/scdv/scf/scn/scrc/scsc/scss/scwc/sdd/sddb/sddc/sddg/sddh/bppx/hobd/kws/rerd/rerdb/retomn/revb/revd/revv/rex/reyc/reyk/rfb/rfd/rfe/rfm/rfset/rft/rgbb/rgd/rgdr/rgid/rgigl/rgma/rgmp/rgn/rgsd/rhd/rhipd/rhpd/ri/ribz/riod/rios/ripe/rjd/rjem/rjkw/rjo/rkds/rkdt/rkdvr/rkhd/rkj/rkmad/rks/rkw/rlads/rlc/rld/rloh/rloi/rloj/rlok/rm/rmas/rmdm/rmfd/rmid/rml/rmmd/rmqd/rms/rmsv/rmw/rmwd/rn/rnext/rnkd/rno/rnr/rnyog/ro/rob/roba/romb/romd/ropos/roriq/rosdx/rosl/roz/rp/rpn/rqmd/rqs/rrct/rrd/rrob/rrs/rrsd/rsad/rsdd/rskd/rsli/rsp/rsugo/rsxd/rtd/rud/rururu/rval/rvrspfuku/rvvl/rvvlb/rw/rwsp/rwt/rxdm/rxx/ryd/ryoj/rys/rysd/ryt/ryudx/rzd/ZMMT/ab/abc/abd/absd/acce/acld/adld/adtn/adu/adve/advf/advnsr/advsr/advvsr/aeds/aedvd/af/afdvd/afg/afl/agd/age/agesp/agid/agyw/ahef/aho/aism/ajdx/akgd/alu/am/amax/amcd/anld/anta/ants/aoa/aob/aobd/aod/aofr/aomd/apo/apsd/area/arpp/arrd/artv/axac/axad/axae/axaf/axag/axai/axaj/axak/axam/axao/axap/axaq/axar/axas/axat/axau/axav/axaw/axax/axay/axaz/axsd/aya/az/azr/azrd/baab/bac/bakd/basx/baxd/bbbd/bbs/bddc/bdeb/bg/bge/bged/bhd/bibd/bic/bjb/bjdx/bjpo/bjs/bjyg/bkc/bkju/bknk/ble/bmbd/bndv/bnsh/bnvr/bokad/bop/bor/botn/bred/bsama/bsd/bsdv/bsg/bsk/bskd/bsmd/bszd/btd/btpm/btz/cele/cem/drda/drdd/ftsh/ggsid/ie/kard/ktrd/laed/mght/nbrd/oned/par/poyo/pqp/prad/prba/prbr/prc/prdc/prex/prmc/prt/prtt/psab/psb/psi/psls/psp/psr/pss/ptex/ptk/pud/pupyd/puro/pvbikmvr/pvd/pvh/pvk/pvrbst/pvtmvr/pvvrvr/pw/pxpl/pyd/pyld/pzr/qa/qb/qbkb/qeda/qedb/qedc/qedd/qede/qedf/qedg/qedh/qedi/qedj/qedk/qedl/qedm/qedn/qedo/qedp/qedq/qedr/qedw/qedx/qedy/qedz/qeea/qeeb/qfan/qgk/qhgot/qjb/qmat/qrtdv/qrvr/qsp/qtr/qud/quo/qwa/qx/r/rab/raca/rad/radi/rain/rakb/ramb/ranb/ranu/ras/ravn/ray/rayg/rb/rbe/rbjp/rbn/rbnd/rbse/rcd/rcds/rcod/rda/rdb/rdbd/rdmg/rdo/rds/rdv/rdva/rdvbj/rdvfj/rdvsp/rebdb/rebk/rebl/rebo/rebv/redc/redvr/rehj/reid/reld/repf/repp/rlod/rmpd/rntr/rsps/stcd/svbdaa/tagq/tpi/tum/vbrd/wk/wnz/wobb/wukd/wwfd/wx/ydrd/pixy/pkcb/pkd/pkho/pkms/pkoss/plan/plat/pldv/ple/pls/pltd/plwb/pmax/pmaxvr/pmh/pmid/pmv/pmyo/pnp/pobf/poe/polc/pont/poo/pop/popb/popr/pota/potab/povi/omyr/omz/onaa/onad/onax/onb/onid/onrd/op/opm/oppb/oppd/opss/orbr/orga/orge/orjm/ors/orst/os/osd/osdr/osni/oso/ot/otem/otex/otim/otsd/otz/ou/oue/out/outd/ov/ovd/ovl/ox/ozb/ozon/ozuke/pa/paed/paipan/paod/paoj/papax/pas/pbcd/pbk/pbkd/pbm/pbmd/pbox/pbz/pbzsale/pch/pcol/pcp/pctg/pcup/pd/pda/pdln/pdz/pe/pea/peab/peac/pead/pemd/peti/pex/pf/pfb/pfd/pfds/pg/pgb/pgdb/pghd/pgld/pgtv/ph/phyd/pilh/pinxd/pipk/umdb/urf/tpssis/tae/scop/scd/saba/rvg/real/pyp/purod/pkpd/pcld/ovg/oms/omnd/omni/omga/omgz/omhd/omhq/omid/omjk/omk/omn/omb/omd/olz/olzd/oma/oled/olib/olmrx/oln/olol/okym/okt/okus/okv/okp/okm/okmd/okdx/okb/okap/okaf/ok/ojp/oj/oita/ohpt/oi/oice/ohc/oh/ogmd/ofm/ofom/ofdv/offb/ofbx/odvl/oec/oed/odv/odvd/od/oday/odd/ocd/obu/obzd/oc/obdl/obm/ob/o/oa/oadvc/oaj/oam/oas/oasi/nyn/nyog/nysd/nyzd/nyd/nwjk/nwo/nvd/nvs/nusu/numa/nuki/nude/ntvr/ntt/ntox/ntjk/ntg/nsstl/nsi/nsid/nsld/nsm/nsbs/nsbz/nscs/nrpd/npz/nqp/nrakx/nrd/npj/npc/npcd/nozo/nov/nopi/nol/nobr/nnd/nmpd/nmrd/nmn/nmda/nkzd/nks/nkns/nkovr/njss/njtd/njf/niwax/niss/nit/nitr/nipu/nhop/nht/nib/nic/nif/nifd/nifs/nig/nhms/nhk/nhdd/ngt/ngvr/nh/nha/nhb/ngkc/new/news/nfv/nf/neon/neg/ndc/nddd/ndime/ndm/ncos/ncra/ncrb/ncrc/ncrd/ncsp/ncwd/ncb/nboe/nb/naw/nayg/nami/nand/nak/nadd/nade/nado/nads/n/na/nabd/myuc/mz/mxtds/mxvr/myb/myj/mxpcs/mxpd/mxpe/mxpf/mxph/mxpi/mxps/mxsd/mxpa/mxpb/mxnbs/mxcss/mxbvs/mx/mvx/mvrd/mumu/musk/mvgd/mvo/mvod/mvpt/mubd/mumd/mtri/mts/mtst/mtdv/mtb/mtbvr/mtad/mt/mstj/msyg/mssi/msnk/mso/mstc/msld/msjd/msg/msbox/msc/msca/mscd/msd/msdv/msb/mrvr/ms/msa/mrlb/mrld/mrlp/mrmm/mrp/mr/mrd/mrdv/mrfa/mrfk/mrfl/mrhp/mpyd/mqd/mpcd/mpd/moza/mozd/mozn/mp/motte/mopd/mope/moms/momd/mohv/mofd/modd/moed/mobsp/mobcc/mobcp/mobdt/mobgf/mobjj/mobnd/mobnh/mobrc/mo/mobao/mnsm/mnk/mnpt/mnr/mng/mnbt/mmrbq/mmsp/mmu/mmvr/mmvrfuku/mmvrn/mmvrsp/mmraw/mmraq/mosix/SKYHD/RAV
// 首字母+2~5位数1组: aajb\aarm\aavb\abcb\abod\abxd\achj\add\adn\advo\aed\agcn\agmx\agon\agr\aiv\ajod\ajvrbx\akad\akbs\akib\akid\aknd\ako\alab\alad\alas\alb\aldn\ambx\amea\ameb\amec\amgz\amg\ami\amoz\anac\anan\anb\anci\anda\ange\anhd\anjd\ankb\ankk\anmd\annd\anpd\anzd\anzz\an\aom\apad\apae\apaf\apag\apah\apak\apal\apam\apao\apap\apar\apat\apav\apgg\apgh\aphh\apkh\apk\apnh\apod\appt\apsh\apsm\apvr\apzd\aqhs\aqmb\aqsh\aqube\aqubl\aquco\aqula\aquma\aran\arb\ardb\arkx\armd\armf\armg\arml\armq\arm\arn\ars\asfb\asia\aspb\aspc\assh\ast\atad\atfb\atid\atkd\atmd\atom\aukb\aukg\auks\aukt\\avkh\avsa\avsp\avs\avzg\awd\awjn\aws\awtb\awtn\awt\azsd\baam\baa\baba\babd\babm\bab\bacj\bacn\bada\baem\bagr\bahp\bama\basj\bavc\baze\bbad\bban\bbh\bbi\bbos\bbss\bbza\bcdp\bcdv\bcpv\bda\beav\beb\befg\bf\bgg\bhg\bhsn\bhsp\bib\bid\big\bijc\bijn\binc\bist\biuc\bkds\bkd\bkig\bkld\blk\blor\blsr\bltn\bmtv\bmw\bmyb\bnst\bokd\bonu\bony\brtm\btis\cadv\cead\chch\chrv\cjob\cjod\cjvr\clt\club\cmc\cmf\cmu\cmzz\cnd\cogm\crnx\crsd\csp\cs\dass\daya\dazd\dber\ddff\ddk\ddob\dftr\dgcemd\dht\divas\dlpn\dmtp\dnjr\doa\dpjt\dpmi\drnt\dsd\dss\dvdm\dvdms\dveh\dvrt\ebod\egg\embz\emlb\emrd\enki\erdm\erk\etqr\evis\eviz\eyan\eys\fazm\fbcpv\fcdc\fffb\fjh\fknp\flav\funk\gajk\genm\genu\ggh\gigl\gkrs\gmem\gtj\hale\halt\hdbf\herk\hery\hgt\hhl\hjbb\hjmo\hmdnc\hmix\hndb\hoiz\hoi\homa\homev\htm\hunbl\huntb\hyk\imgns\ion\ipit\ipx\ipzz\jbd\jdbt\jdl\jfb\jhem\jjbt\jknk\jktu\jlz\jmty\jpak\jrba\jrw\juan\jufe\juju\jul\jums\juny\juq\jusd\jyma\kagn\kagp\kam\kbms\kbtk\kepa\khip\kibd\kiovr\kird\kiwvr\kru\ksat\ksbj\ksjk\ktft\ktkc\ktkl\ktky\ktkz\ktsg\kuro\kwbd\kymi\lady\lcw\LSSK\luke\lulu\luns\lzbs\xvt\mdmu\msmt\atya\kmnr\zwmr\cpsn\xtrm\akyb\lezm\lesm\zuko\dots\miab\sdtx\fwtr\kjo\kjn\kjhs\jjpp\jrkk\jrmk\jtr\juda\juga\juuk\jykp\kag\kann\kar\kaz\kbdv\kbe\kbky\kbt\kcpn\kcpw\kcpz\kdkj\kgdr\kifd\kimu\kinb\kink\kira\kisd\kkbw\kkjn\kmdz\kmtu\knin\kntr\kogd\koh\kok\koms\konb\konn\koob\kosk\koz\koze\kpin\kray\krfv\krmv\kspp\ktg\ktka\ktkb\ktkp\ktkq\ktkt\ktkx\ktsb\ktve\kuni\kunk\kwgr\kwsm\kyks\las\lcdd\ldns\inct\ink\inoc\ins\insg\ipc\ipsd\ircp\iros\iskf\itvd\itvw\jai\jcba\jcbv\jcbw\jcbx\jcby\jcbz\jcnr\jdzz\jglt\jjbb\jjcc\jkbx\jkk\jklo\jkst\jmx\jocm\johs\jomn\hjhm\hkik\hkry\hmad\hmdn\hmhi\hmts\hmwd\hnim\hnjc\hnky\hnm\hnmb\hntv\home\hoob\hpd\hpow\hqis\hrpg\hrsz\hsg\htat\htnw\htzm\hunta\ianf\ianm\icmb\icmn\idrk\ied\ikrt\ille\imbe\imtt\gcp\hee\hdmc\hcvv\hbvb\gmhp\gmen\gmab\gldr\gmry\gmog\mbgm\ncys\mrpa\ymlw\hpet\gihs\gihk\gihj\gicp\ggln\gfwn\gigr\gigb\gerh\gera\gens\gemr\geki\geee\gdtm\gdqs\gdqn\gdhh\gcp\gcld\gbst\gbsd\gbg\gbcr\gb\gav\gapl\gaor\g\hsoda\hublk\frin\foom\fnck\madm\madv\magg\masm\mbf\mcht\mdon\mdte\mdud\meat\meyd\mgbj\mgfx\mgmj\mgmk\mgmp\mgmq\mgmr\miaa\miad\mibb\midv\mifd\mimk\mird\mism\mizd\mkck\mkd\mkon\mlmm\mmb\mmks\mmkz\mmmb\mmnd\mmus\mmym\mmyu\moj\mopp\mrss\much\mudr\mukc\mukd\mvg\mvsd\myba\myt\nanx\nbes\ncyf\ndra\newm\nfd\ngod\nima\nkd\nkhb\nkkd\nkk\nnpj\npjb\npl\nsfs\ntrd\ntsu\nvh\nykd\oae\obd\ofje\ohgg\oigs\okax\onin\onsg\opcyn\oppw\opud\oreco\oreh\orev\pap\parathd\pbd\pchn\pkpl\pkpt\pkys\pow\ppbd\pppd\pppe\prin\prmj\pstl\qrda\qrdc\rapd\rbd\rbk\renu\rexd\rki\rmer\roe\room\royd\rpin\rse\rvgg\same\sanp\scute\sdgn\sdk\shinki\sika\sinn\sir\slap\smtc\snis\sntx\soan\soav\sora\sqb\sqis\sqte\sraz\src\srd\srmc\ssis\SSKK\SSK\ssni\sths\sth\stime\stol\suji\sykh\taak\tanp\tikb\tkd\tkol\tlz\tnoz\tobp\todv\tpin\tppn\twoe\tysf\umso\urds\ure\urkk\urvrsp\usag\vagu\vema\venu\venx\veo\veq\vod\waaa\wnsk\xrle\xrl\ylwn\yngc\ynnp\yss\yuj\yvg\zocm\acut\askj\cesd\clg\cpfu\crpd\dam\dasd\dgcedg\dgl\ends\fffs\hhf\idbd\iptd\ipz\jkrf\juc\jufd\jukd\jux\juy\krbv\mbyd\migd\mkgf\mopt\mywife\ntlr\oba\oreb\orej\pcdl\pfes\prtd\ptpj\rbb\rezd\sitw\skhb\spay\spbj\srob\tchb\team\tsph\tyod\urec\baz\bkkn\core\fan\hame\hkgl\onsd\room\sds\sjap\smul\smus\snsde\spcz\tpls\tpns\tpps\tpsm\trmp\trod\trum\trumo\tsf\tsh\tsmt\tsp\tspl\tsy\ttdb\ttdg\ttrf\tttl\tura\turu\twyb\tyan\tyvm\tywd\uhta\ura\urad\urbh\urec\urel\urhj\urkh\urlh\urmc\urum\usyw\vamo\vec\vecr\vero\veve\vezz\vhip\vicd\vtch\yarr\ddt\gbsa\hzgt\ipbz\mdtm\merc\meyd\miae\mide\midd\migd\mimk\mmgo\mrxd\mukd\mum\muml\munj\mvsd\oldl\sdzs\teek\tek\thlz\tics\tikp\titg\tkmdnw\tkmdtg\tksh\tkwa\tmbt\tnb\toku\tolc\toll\tomn\tomnvd\tops\yrll\qmdb\pkti\krnd\groo\llan\lnht\loli\lom\lovd\lsgr\lstd\lvbt\lzan\lzdq\lzdz\lzfe\lzkw\lzml\lznh\lzrt\lzsg\lzwm\lzyl\madn\magn\mamb\mamm\manm\mann\mars\mcbg\mcc\mckn\mckt\mclp\mcs\mdar\mdaz\mdbs\mdgr\mdjb\mdmx\mdoc\mdoi\mdos\mdql\mdtg\mdtk\mdve\mebx\mem\mex\mgdt\mgl\mgma\mgmb\mgmc\mgme\mgmf\mgmy\mias\mibm\mimu\mitb\mivd\mixs\mksb\mlsm\mlst\mmar\mmbs\mmdj\mmfl\mmgd\mmhd\mmhv\mmib\mmie\mmin\mmix\mmkn\mmkr\mmna\mmnb\mmnf\mmok\ntj\uram\pchd\agav\dbnk\hfes\cmp\fpre\fjin\hfes\fhmd\tokyo\sone\mblw\chin\ratw\prst\gams\npjs\gupp\dbr\nask\mih\smuh\jdg\kpie\fway\hazu\yose\gdrt\rent\smjk\hasb\anav\win\smjz\sj\pkpk\Y-\zaw\dni\nisi\smjj\smjs\hcmn\jzt\beer\meta\hter\ftid\oksm\trc\hhoy\hhgt\hhat\hhap\hgl\hgft\herz\herx\herw\herr\herp\hern\herl\heri\herg\hera\hepp\heg\hbbh\ham\h\gssd\gsfv\gros\grgh\godg\gnp\gdrd\syhs\taab\tanf\tash\tbmm\tcd\tcda\tcdf\tcdg\tchr\tcsk\tcug\dtrs\japorn\juta\mmxd\mugon\njd\oksn\refuck\sp\spb\splt\spor\sppc\sps\sqc\sqim\sqkg\srex\srt\sry\sspd\stc\supd\svs\serobx\sekao\soe\bset\dsem\hnse\jpse\kane\mase\mnse\mset\sesa\set\seu\soju\sole\somm\somw\sorafk\sosf\sotb\td023sero\td025sero\td026sero\yrnknkjsero\yrnkmtnsero\bykm\chib\ebwh\foomvd\gent\gylg\hibr\hoizbx\hpt\ikuiku\\lzpl\mibd\papa\pcha\pjd\pnme\ppby\rega\rura\skmm\skpf\slav\slfl\slms\smcd\smlg\smx\snhd\snoz\snth\sntj\sntk\sntl\sntm\sntr\snts\worl\yrnkmtndvaj\yrnknkjdvaj\yrnknmtdvaj\yrnknkjdv\yrnkmtndv\ysl\sgrs\sgsg\shbc\shbs\shbx\shcm\shts\dcol\dsdp\dvmm\esdx\endx\flva\hfd\hkhs\kapm\mmpb\pkgp\sdmc\sdqn\sfba\sfw\sget\mmka\orbk\sal\scp\sd\btpp\cawd\emst\gcf\hoys\kapd\kool\kwsd\mass\mxyd\okd\pid\ppmd\ppsd\ptv\pxd\rgb\rhss\rhts\rmos\roeb\rroy\rs\rson\rtb\rydd\ryzr\skiv\stzy\wfit\ymrk\WANZ\ankc\apaa\aplt\asrt\bafuku\bat\bini\bnsps\bobb\bobl\boinbb\bomc\bomg\bomn\bona\boss\brek\bsh\bst\btkc\bto\btwd\btyd\bult\buz\bwah\bwb\bww\bxdr\bxfx\bxx\bybz\byht\caga\cagb\cagc\cagd\cagf\cagg\cagh\cagj\cagk\can\ckj\ddb\dgl\digi\dpmx\dscesd\dvlb\epsb\ewdx\fabs\fdavk\ffee\ffnn\fnam\fuyu\gant\gjkz\glp\gomo\gqhb\habj\hakc\hbla\hdsn\hdt\hehh\hhsi\hikr\himemix\hint\hnds\htek\htut\hyjd\iat\idjs\inst\iog\ipzz\jjbk\jjda\jue\kaku\kdmi\kiray\kknn\koch\koukai\ktb\ktst\lboy\lzdm\mdyd\midd\mntl\mrjj\mucd\nflx\nkds\nsps\nwcc\nyb\opbd\oretda\peep\pgd\pkpr\pla\ppfb\ppjp\prs\psz\ptdx\ptj\ptka\ptko\ptks\pwife\px\pzo\qcmw\qrdb\qrdd\qrde\qrdg\qro\qwwp\qxl\rabs\rash\reg\rejy\reku\rurb\rwis\schu\sef\shc\shih\shkd\skho\smmc\smuc\smuk\smuw\snyz\spes\srho\srom\srsy\sscb\sscj\stbs\stok\taxd\tcs\tkbomx\tkk\tmen\tony\voib\voss\vvvd\vxxd\wbht\wbms\wbnn\wdms\wets\wpsg\wtfk\ww\wybn\xbnc\zarj\npg\piz\pkpb\pksg\poka\pokp\pokq\post\rabi\cpcp\onsn\ont\oomn\oomnvd\opa\oph\opkt\orec\oreg\oreo\orerb\oretd\orex\oru\osh\otld\oyc\panr\parm\pcas\pchb\pepn\per\pfas\pgfs\phuq\oremo\infc\esdxs\mstd\mstdv\mste\mstt\mtfj\mth\mthd\mtp\mtsp\mtv\mtvb\mtvi\mtyd\mucc\mugf\mujg\mupt\mura\musj\muvr\mvbd\mvfd\mvmd\myab\myhm\naka\nakb\nbd\nbhm\nbsp\ncn\ndqn\ndwq\nid\nirc\njwp\nkr\nktv\npjx\nrak\nsa\nsstn\ntd\ntka\ntrk\ntub\nygw\nyrf\oal\obe\ofbk\ofbt\ogkc\oigb\okz\omnk\pred\usba\mrsh\mrxb\msbt\mrsc\akmn\bkts\cjmd\ddhz\hmn\imsk\koid\ksyf\mmpp\mmsb\mmsk\mmt\mmta\mmtk\mmts\mmum\mnwr\mocm\moor\mopg\mrad\mrg\mrs\ECBR\flob\flm\fmes\fmr\fmi\film\ffmm\ffmf\feti\fech\fcst\fbss\fbhs\exhr\evyr\cckr\prwf\judx\dpmm\etbz\erog\erof\erh\ept\emts\emp\emht\emfz\emen\emdg\emcw\emcp\emcb\embx\embw\embu\embs\embr\embq\embp\embn\embk\embj\embh\embe\embc\emaz\emax\emaw\emas\emap\eman\emam\emag\emad\emac\emab\ekch\hows\ymsr\gesb\docs\momo\doam\koo\dmdg\vtmn\sbnh\edge\echi\skej\kjm\hrjn\aiddt\ulch\sjho\smjp\fots\uinac\ebe\dztm\dzss\dzms\dzan\dynf\dyjk\dyib\dxyb\dxuk\dxts\dxkt\dxeb\kteh\scdc\pai\dxan\dwd\dvmt\sqsg\sqde\pnmo\manx\knkw\mima\tykj\womc\osfs\kyn\aokt\ygyg\ddhc\dratw\basb\wumi\venz\ipse\sjhd\hazuh\sirb\rhg\gara\smok\ktkn\moer\htjp
// gana: ["33"] 暂时mgs集成 各网站番号命名不规范,此番号系列带200前缀和不带属于不同作品,后期对展示网站做具体匹配
// mgs集成:adz/aecb/aepp/agis/ahshiro/aid/almd/ama/amcf/aoi/ara/arms/atgo/cosx/dcv/dcx/ddh/ddhp/dtt/ene/fcp/fct/gana/ghz/hgp/hmt/ichk/ienfh/jac/jnt/knb/kpb/log/luxu/lvmaan/maan/mag/magd/mgc/mium/mla/my/nmch/nol/nsm/ntk/ocn/okb/okk/okp/oks/otim/pok/ppp/ppz/reiw/reiwsp/REIWDX/sacz/scoh/sgk/SHMJ/simm/siro/skjk/smr/srtd/suke/svsha/thtp/vola/ymym/brm/buch/dg/erkr/kss/lost/mfcc/mgsrev/nhmsg/pak/sei/srya/truex/trumg/truwa/ttre/twbb/tyk/tzz/utsu/uwki/vbh/vdf/vrxm/vspa/wif/wks/wnes/crt/dlv/docd/hik/ilk/kdd/krnk/mcd/mpc/oil/ppx/qtd/roy/shf/gld/fit/jfm/MMNM/ezn/ussh
// TK*-系列 去掉tk 独开 并入 MDTM:tkameb\tkapkh\tkarbb\tkarm\tkawt\tkbbi\tkbdmds\tkbdmild\tkbdpkmp\tkbf\tkblk\tkbokd\tkcead\tkcesd\tkchij\tkcnd\tkcrmn\tkdasd\tkdbng\tkdigi\tkdvaj\tkdxmg\tkebod\tkeyan\tkgdtm\tkgent\tkgroo\tkhery\tkhnd\tkhndb\tkhnds\tkhrrb\tkidbd\tkille\tkinct\tkipsd\tkipz\tkjuc\tkjufd\tkjux\tkkawd\tkkird\tkkrnd\tklztd\tkmdb\tkmdhc\tkmdjm\tkmdlj\tkmdnh\tkmdog\tkmdpw\tkmds\tkmdsh\tkmdsr\tkmdtm\tkmeyd\tkmidd\tkmide\tkmigd\tkmild\tkmimk\tkmkmp\tkmrxd\tkmukd\tkmum\tkmuml\tkmunj\tkmvsd\tkndra\tkodfa\tkodfm\tkodfr\tkpgd\tkpid\tkpla\tkreal\tkrki\tksero\tksib\tksoe\tksora\tktamm\tkteam\tktmdi\tktmem\tktmhp\tktmvi\tktyod\tkumso\tkurad\tkvrtm\tkwanz\tkxrw\tkzuko\mdb\mdhc\mdjm\mdlj\mdnh\mdog\mdpw\mds\mdsh\mdsr\
// VR-系列: aqusp\AQUST\atvr\avvr\bbvr\dpsvr\dpvr\dpvrs\ebvr\gopj\hnvr\hunvr\ipvr\jpsvr\juvr\kiwvrb\wpvr\vrrb\vrsl\maxavrf\maxvr\maxvrh\mdvr\mtvr\nhvr\nkbvr\nkkvr\prvr\pxvr\exmo\wavr\wfbvr\rsrvr\sivr\sovr\sqtevr\tpvr\ajvr\aquga\aqumam\bibivr\fcvr\frnvr\hbvr\hhhvr\jtvr\kivr\kolsp\kolvr\kolvrb\lzvr\manivr\mevr\mvr\njvr\opvr\ovr\oycvr\pipivr\piyovr\ppvr\pydvrs\rctdvr\rctvr\royvr\rvr\tprm
// 写固定:bdqbd/bdsama/bud/bzex/anab/atc/atnf/athb/ball/usdx/arksb/bdufd/bnd/compi/gwntr/gwgana/sb/sbmob/sgkm/sjpdr/sprl/supz/tkc/advr/mdnw/umd/gwnama/gwtora/gwjac/gwhasi/gwdcv/gtwp/gtal/FRNCB/fkkrm/ere/dyne
// MSIN集成 ktfb替换为ktb/rbfb替换为bkd/crfv替换为nitr
// tkbi 去掉 t 同 kbi
"32id": ["55"],
a: ["44"], // 早期 无
aa: ["13"],
aaa: ["171"],
aas: ["118"],
aad: ["24"],
aajj: ["h_086"],
aak: ["h_170"],
aamd: ["104"],
aaxdvd: ["86"],
abba: ["h_086"],
abcd: ["380"],
abf: ["118"],
abl: [""],
abnomal: ["h_455"],
abp: ["118"],
abs: ["118"],
abw: ["118"],
aby: ["118"],
acad: ["h_710"],
acb: ["13"],
acc: ["1"],
acd: ["13"],
ace: ["33"], // 33+3位数 也有首字母 暂不独开
acec: ["33"],
acgjv: ["48"],
acy: ["13"],
acz: ["h_019"],
aczd: ["h_019"],
ad: ["h_1416"],
adkx: ["h_747"],
adoa: ["n_863"],
adv: ["43"],
advps: ["43"],
adz: ["050"], // MGS新
aeal: ["h_189"], // h_189+2位数(只有两位)
aecb: ["031"], // MGS新
aeg: ["118"],
aege: ["1"],
aeil: [""], //
aepp: ["031"], // MGS新
aesf: ["h_189"],
aey: ["h_1297"],
afoh: ["422"],
afs: ["118"],
ag: ["h_113"],
aga: [""], //
agemix: ["h_213"],
ageom: ["h_213"],
agis: ["107"], // MGS新
agl: ["118"],
agp: ["65"], //
agvn: ["n_707"],
ah: ["h_921"],
ahshiro: ["371"], // MGS新
aiav: ["1"],
aid: ["326"], // MGS新
aidv: ["41"],
aime: ["h_1133"],
aims: ["n_707"],
aisu: ["h_086"],
ajbd: ["53"], // 53+
ajip: [""], //
ajk: [""], //
aka: ["118"],
akasd: [""], //
akb: ["55"],
akbd: [""], //
akdl: ["1"],
akdld: ["1"],
akho: [""], //
aki: ["504"],
ako: [""], //
akrd: ["104"], //
al: [""], //
ala: ["12"],
alce: ["h_445"],
alcl: ["5561"], //
ald: ["15"],
aldm: ["5561"], //
all: ["h_310"],
almd: ["033"], // MGS新
alog: ["h_491"],
alpd: ["104"], //
als: ["h_310"],
alsd: [""], //
alsp: ["18"], // 只有两个mgs 其它全没预览 暂不加入
ambi: ["h_237"],
ambs: ["h_237"], //
amcf: ["031"], // MGS新
amd: ["24"],
amda: ["h_307"], // h_307+5 无
ame: ["h_047"], // h_047+3
amen: ["h_445"], // h_445+5
amhaa: ["n_709"],
amm: ["h_728"], // h_728+3
ammd: ["h_1668"],
amp: ["11"], // 11+3
amr: ["h_405"], // h_405+
amrb: [""], // h_307+5
amrc: [""], // h_307+5
amrd: [""], // h_307+5
amrs: [""], // h_658+5
ams: ["149"], // 149+5
amsp: ["h_1632"], // h_1632+5
amt: ["118"],
amtr: ["h_1133"],
amz: ["28"], // 28+3
ana: ["h_1189"], // h_1189+5
anal: ["33"], // 33+3
anamae: ["h_1189"], // h_1189+5
and: [""], // h_189+5
ang: ["249"], // mgs新
angr: ["h_771"], // h_771+3
anim: ["h_237"], // h_237+5
anks: ["h_058"], // h_058+3
ankt: ["h_058"], // h_058+5
ans: ["29"], // 29+5
anx: [""], // 首字母+5
any: ["118"],
aokn: ["15"], // 15+2
aos: ["057"], // mgs新
aot: ["1"], // 1+3
aoz: ["h_308"], // h_308+3+z
ap: ["n_1428"], // n_1428+3
apd: ["88"], // 88+3
aph: ["118"],
apm: ["118"],
apns: [""], //
apol: ["h_838"], // h_838+5
app: ["118"],
apr: ["118"],
apu: ["n_707"], // n_707+3
aqua: ["h_491"], //
ara: ["261"], // MGS新
aras: ["118"],
arbb: ["h_1092"], // h_1092+5 有mgs源
arie: ["119"], // mgs规则源
arjkt: ["1"],
ark: [""], // 重复番号太多 均无预览
arki: ["15"],
arkj: ["434"], // 首字母+3/5 dmm和mgs 后面会对有两边资源的番号系列独开
arks: ["5050"], // 5050+5
arle: ["h_1092"], // h_1092+3
armm: ["11"], // 11+3
arwa: ["18"],
asd: ["24"], // 24+3
asgmx: ["h_1719"], // h_1719+5
asi: ["118"],
asmani: ["h_1116"], // h_1116+5
astr: ["h_1711"],
at: ["h_047"], // h_047+3
atd: ["118"],
atgo: ["143"], // MGS新
atpc: ["h_237"],
atpf: ["h_237"],
att: ["118"],
atzd: ["", "", "_dmb_s"],
aud: ["21"],
av: ["h_186"],
averv: ["84"],
avgl: ["", "", "_dm_s"],
avopvr: [""], // 基本无有效预览
avsc: ["33"],
avt: ["h_1118"], // h_1118+5
awad: ["15"],
awe: ["33"],
awpr: ["21"], // 21+3
axbc: ["29"], // 29+3
axdvd: ["86"], // 86+5r 全无
ayb: ["13"], // 13+3
ayz: ["33"], // 33+3
azsa: ["18"], // 18+3
b: ["h_554"], // h_554+
ba: ["51"], // 51+3
babh: [""], // 去除h
baburu: ["h_455"], //
bag: ["118"],
bagbd: ["h_305"], // h_305+3
bak: ["h_286"], // h_286+5
baku: ["h_086"],
bana: ["118"],
bang: ["h_261"], // h_261+
bank: ["h_1495"], // 1种 h_1495+3位数
banq: ["h_1133"],
bar: ["h_1441"], // h_1441+5
bare: ["h_1660"], // h_1660+5
base: ["436"], // 436+ /
basp: ["436"], // 436+5
bb: ["h_921"], // h_921+3
bba: ["h_189"], // h_189+5
bbacos: ["h_113"], // h_113+5
bbag: ["5619"], // 5619+5
bbb: ["h_205"], // h_205+
bbm: ["118"],
bbq: ["118"],
bbse: ["h_406"], // h_406+5 /
bbst: ["h_406"], // h_406+5 /
bbtu: [""], // 1种 首字母+3位数
bbwm: ["h_496"], // h_496+
bbwmd: ["h_496"], // h_496+
bcm: ["540"],
bcp: ["h_113"], // h_113=5
bcv: ["118"],
bdclb: ["2"], // 2+ bdclb 替换为 clb
bdd: ["143"], // 143+2
bdda: ["h_1613"], // h_1613+5
bddavr: ["h_1613"], // h_1613+
bdh: ["h_1293"], // h_1293+3
bdmdb: ["84"], // 84+3
bdmild: ["84"], // 84+3
bdokad: ["84"], // 84+3
bdreal: ["84"], // 84+3
bdscop: ["h_565"], // h_565+3
bdsf: ["h_1454"], // h_1454+
bdsm: ["h_1096"], //
bdsr: ["57"], // 1种 57+3位数
bdst: ["57"], // 57+ /
bdsx: ["57"], // 1种 57+5位数
bdy: ["118"],
beaf: ["h_1615"], //
bebe: ["h_086"], // h_086+
beem: ["h_086"],
bell: ["h_086"],
best: [""], // mgs规则
bfaa: ["n_1471"], // n_1471+3
bfaz: ["n_1471"], // 1种 n_1471+3位数
bfd: ["24"], // 1种 24+5位数
bff: ["33"],
bfkb: ["h_1285"], //未验证
bgn: ["118"],
bgra: ["n_1391"], // n_1391+3
bgsd: ["h_305"], // h_305+5
bhkg: ["h_189"], // h_189+2
bido: ["h_128"],
bij: ["h_275"], // h_275+5
bika: ["h_128"], // h_128+3
bikmvr: ["h_1285"], // VR
bind: ["15"],
bizn: ["h_261"], // h_261+
bjd: [""], // 1种 首字母+3位数
bjk: ["12"], // 12+3
bjos: ["h_275"], // h_275+5
bjpn: ["h_307"], // h_307+5
bjsp: ["h_307"], // h_307+5 无
bjun: ["h_445"], // h_445+3
bkbk: ["h_1167"], // h_1167+3
bkgf: ["h_189"], // h_189+2
bkkg: ["h_1067"], // h_1067+3
bkoh: ["n_1321"], // n_1321+3
bkrk: ["h_445"], // h_445+3
bksp: ["1"], // 1+3
bksu: ["h_189"], // h_189+2
bkynb: ["1"], // 1+5位数
blb: [""], // 1种 首字母+3位数
bld: ["24"],
blg: ["h_093"], // h_093+5
blkw: ["h_1437"], // h_1437+5
blu: ["118"],
blue: ["h_491"], // h_491+2
bmay: ["5469"], // 5469+5
bmd: ["57"], // 57+3
bmdb: ["84"], // 84+3
bmj: ["h_1068"], // h_1068+3
bmjo: ["48"], // 48+5
bml: ["13"], // 13+
bmo: ["","","","","n_1044sbmo"],
bmst: ["h_1454"], // h_1454+5
bngd: ["h_1413"], // h_1413+5
bnin: ["n_840"], // n_840+3
bnjc: ["h_1413"], // h_1413+5
bnri: ["h_254"],
bnsd: ["171"],
bnw: ["33"],
bobo: ["h_086"],
boie: ["h_406"], // h_406+5
boin: ["h_406"], // h_406+5
bok: ["h_310"], // h_310+5
boko: ["1"],
bomx: ["tk"], // 首字母+3/5
box: ["13"],
bpdv: [""], // 只有1个
bqbb: ["1"],
br: ["61"], // 61+5 ai
brd: ["118"],
brg: ["118"],
bri: ["28"],
brk: ["143"], // 143+2
brm: ["031"], // MGS新
bros: ["18"], // 118+3
broz: ["h_004"], // h_004+3
brv: ["h_1755"],
bs: ["h_909"], // h_909+5
bsc: ["h_1713"],
bshd: ["104"], // 104+5
bsj: ["64"], // 64+5
bsjdv: ["5433"], // 5433+5
bsk: ["h_848"],
bskc: [""], // 1种 首字母+3位数
bskv: ["h_1472"],
bsm: ["143"], // 143+5 有对应mgs资源
bsp: ["h_310"], // h_310+5
bsq: ["118"],
bstar: ["n_1275"], // n_1275+5
bstc: ["h_1117"], // h_1117+5
bsu: ["2"],
bsv: ["118"],
bsy: ["13"], // 13+
bt: [""], // 本系列无码 暂无预览
bta: ["118"],
btg: ["h_172"],
btc: ["143"], // 143+ mgs对应
bth: ["h_1435"], // h_1435+
btha: ["5433"], // 5433+
bts: ["111"], // 111+
btst: ["h_1215"], // h_1215+3
bubb: ["436"], // 436+5
buch: ["196"], // MGS新
budd: ["h_001"], // h_001+2
bug: ["h_918"], // h_918+
buka: ["33"], // 33+3
bukd: ["h_690"], // h_690+3
bump: ["h_257"], // h_257+ 无
buna: ["5469"], // 5469+5
bunb: ["5469"], // 5469+5
bunc: ["n_1321"], // n_1321+5
bunf: ["5469"], // 5469+5 同dunf
buno: ["n_1321"], // n_1321+3
buqh: ["n_1057"], // n_1057+
bur: ["12"], // 2种 12开头+3/5位数
buri: ["h_1373"], // 2种 h_1373+3/5位数
butd: ["13"], // 13+
buton: ["h_496"], // h_496+5
buy: ["118"],
bwa: ["2"],
bwsd: ["171"], // 171+
bx: ["h_113"],
byd: ["h_103"], // h_103+3
byrl: ["436"], // 436+5
c: ["140"], // 140+
cabe: ["h_1116"], // h_1116+
caca: ["h_1116"], // h_1116+5
cad: ["h_468"], // h_468+5
caes: ["h_216"], // h_216+
cafr: ["h_1116"], // h_1116+5
cafuku: ["h_1116"], // h_1116+5
caim: ["h_1116"], // h_1116+5
cami: ["h_1116"], // h_1116+5
camk: ["h_1111"], // h_1111+5
camp: ["18"], // 18+
cand: ["n_1234"], // n_1234+
candb: [""],
cao: [""],
caoh: [""],
caos: [""],
capi: [""],
carem: [""],
case: ["434", "", "_sm_w"],
casmani: ["h_1116"], //无
casp: [""],
cat: [""],
cats: [""],
cav: [""],
cb: ["h_113"],
cbc: [""],
cbd: [""],
cbikmv: [""],
cbikmvr: [""],
cbo: [""],
cbox: [""],
cbr: [""],
cbtb: [""],
cbtr: [""],
cbx: [""],
cbzb: ["", "", "", "", "n_1379cbzd"],
cbzd: [""],
cc: [""],
cca: [""],
ccaa: [""],
ccb: [""],
ccc: ["3", "", "_sm_s"],
ccd: [""],
ccdv: [""],
ccio: [""],
ccj: [""],
cck: [""],
ccmm: [""],
ccr: [""],
ccs: [""],
cct: [""],
ccug: [""],
ccvb: [""],
ccvr: [""],
ccx: [""],
ccxs: [""],
cdav: [""],
cdb: [""],
cdc: ["118"],
cdma: [""],
cdod: [""],
cdvhj: [""],
cefd: [""],
cehd: [""],
cejn: [""],
celd: [""],
cema: [""],
cemd: [""], //
cemn: [""],
cen: ["2"],
cent: [""],
cero: [""],
cesf: [""],
cetd: [""],
cfld: [""],
cfn: [""],
cfnb: [""],
cfnm: [""],
cfo: [""],
cfti: [""],
cgd: [""],
cgm: [""],
cgq: [""],
cgs: [""],
ch: [""],
cha: [""],
chaa: [""],
chab: [""],
chad: [""],
chae: [""],
chag: [""],
chak: [""],
chakui: [""],
chao: [""],
chc: ["70"],
chd: [""],
chdjv: [""],
chdx: [""],
che: [""],
cherd: ["h_086"], // 1种 h_086开头+截取2位数
cherx: ["h_086"],
chgaro: [""],
chht: [""],
chi: [""],
chid: [""],
chij: [""],
chim: [""],
chiq: [""],
chir: [""],
chit: [""],
chkp: [""],
chm: [""],
chmx: [""],
chn: ["118"],
chnk: [""],
chns: [""],
cho: [""],
chrd: [""],
chs: [""],
chsd: [""],
chsp: [""],
cht: [""],
chu: [""],
chub: [""],
chuc: ["h_491"], // h_491+3
chv: [""],
cid: [""],
ciel: ["h_491"], // h_491+3
ciin: [""],
cirr: [""],
cirrx: [""],
cj: [""],
cjd: [""],
cjdv: [""],
cjet: [""],
cjka: [""],
cjsb: [""],
cjsp: [""],
ckd: [""],
ckk: [""],
cknd: [""],
ckw: ["2"],
clb: ["2"], // 2+ bdclb 替换为 clb
clbd: [""],
clcb: [""],
cld: [""],
cldg: [""],
cle: [""],
clin: [""],
clm: [""],
clma: [""],
clmb: [""],
clms: [""],
clmz: [""],
clns: [""],
clo: ["h_1435"], //
clot: ["h_237"], // 1种 h_237+3位数
cls: [""],
clsd: [""],
clvr: [""],
clymax: [""],
cm: [""],
cmbb: [""],
cmbt: [""],
cmd: ["24"], // 24+3 /
cmdm: [""],
cme: [""],
cmg: [""],
cmi: ["118"],
cmj: [""],
cmk: [""],
cml: [""],
cmn: ["51"], //
cmp: [""],
cmr: [""],
cmv: [""], //
cn: [""],
cnbx: [""],
cns: [""],
cnz: [""],
co: [""],
cob: [""],
cod: [""],
cojp: [""],
cold: [""],
colm: [""],
com: ["h_1462"], // h_1462+
comd: [""],
con: [""],
cona: [""],
cool: [""],
corb: [""],
cori: [""],
cos: [""],
cosbvr: [""],
cosd: [""],
cosk: [""],
cosl: [""],
cosm: [""],
cosp: [""],
cosq: [""],
cosu: [""],
cosvr: [""],
cosx: ["433"], // MGS新
cot: [""],
cov: [""],
cp: [""],
cpd: [""],
cpdd: [""],
cpde: ["118"],
cpm: [""],
cpn: [""],
cpsn: [""],
cpxd: [""],
crad: [""],
crag: [""],
cram: [""],
crc: [""],
crd: [""],
cre: [""],
crek: [""],
crey: [""],
crg: [""],
crgd: [""],
crgdsale: [""],
crgk: [""],
crgq: [""],
crh: [""],
crhi: [""],
cri: [""],
crim: [""],
crmn: [""],
cro: [""],
crpn: [""],
crrv: [""],
crry: [""],
crs: ["118"], // 1种 118开头+3位数
crss: [""],
crt: ["534"], // MGS新
crvr: [""],
crz: [""],
crzt: [""],
csb: [""],
csbe: [""],
csc: [""],
csct: ["55"], // 55+3
csd: [""],
csdx: ["h_1558"], // h_1558+ /
csft: [""],
csj: [""],
csp: [""],
cst: [""],
csv: [""],
cswc: [""],
csx: [""],
csy: [""],
cta: [""],
ctbd: [""],
ctc: [""],
ctd: [""],
ctga: [""],
ctha: [""],
cthab: [""],
ctn: [""],
ctvr: [""],
cty: [""],
cubex: [""],
cubo: [""],
cubob: [""],
cud: [""],
cuhe: [""],
cuheb: [""],
cull: [""],
cus: ["h_1651"],
curo: [""],
cut: [""],
cvd: ["24"], // 24+3
cvdd: [""],
cvdx: ["h_086"],
cvfk: ["h_086"],
cvsp: [""],
cwaz: [""],
cwbj: [""],
cwbt: [""],
cwl: [""],
cwm: ["2"],
cwsm: [""],
cwx: [""],
cx: [""],
cxaz: [""],
cxd: [""],
cxr: [""],
cyal: [""],
cyam: [""],
cyan: [""],
cyao: [""],
cyap: [""],
cyaq: [""],
cyar: [""],
cyas: [""],
cyat: [""],
cyau: [""],
cyav: [""],
cyaw: [""],
cyax: [""],
cyay: [""],
cyaz: [""],
cycd: [""],
cyd: [""],
cyf: [""],
cyo: [""],
cz: [""],
czav: [""],
czm: [""],
czp: [""],
d1: [""],
d: [""],
da: [""],
daad: [""],
daai: [""],
dabc: [""],
dabf: [""],
dabs: [""],
dac: ["118"],
dacd: [""],
dach: [""],
dacm: [""],
dacp: [""],
dact: [""],
dad: [""],
dada: [""],
dadsp: [""],
daed: [""],
dafb: [""],
dafc: [""],
dag: [""],
daga: [""],
dagc: [""],
dags: [""],
dah: [""],
dahb: [""],
dahs: [""],
daht: [""],
dai: [""],
daid: [""],
dail: [""],
daj: [""],
dajm: [""],
dak: [""],
dakg: [""],
dakh: [""],
daks: [""],
dali: [""],
dama: [""],
damn: [""],
damo: [""],
dams: [""],
damu: [""],
damx: ["h_1647"], // h_1647+
damz: [""],
dan: [""],
danc: [""],
dandan: ["1"], // 1种 1开头+5位数
dandy: ["1"],
dandyhqvr: [""],
dandyvr: [""],
danj: [""],
dank: [""],
danl: [""],
dann: [""],
danuhd: [""],
dap: [""],
dapb: [""],
daph: [""],
dapj: [""],
daps: [""],
daqu: [""],
dar: ["h_1731"], // h_1731+ /
darb: [""],
darg: [""],
dars: [""],
dart: [""],
dasb: [""],
dasg: [""],
dask: [""],
dasl: [""],
dasm: [""],
dasu: [""],
dat: [""],
data: [""],
datb: [""],
date: [""],
datr: [""],
davh: [""],
davk: [""],
davk: ["55"], //
davr: [""],
day: [""],
dayd: [""],
db: [""],
dba: [""],
dbam: [""],
dban: [""],
dbaq: [""],
dbat: [""],
dbaz: [""],
dbb: [""],
dbba: [""],
dbbi: [""],
dbc: [""],
dbcv: [""],
dbd: [""],
dbda: [""],
dbdm: [""],
dbdr: [""],
dbe: [""],
dbeb: [""],
dbed: [""],
dbeo: [""],
dbex: [""],
dbi: [""],
dbif: [""],
dbii: [""],
dbik: [""],
dbiu: [""],
dbjn: [""],
dbk: [""],
dbkc: [""],
dbkd: [""],
dbki: [""],
dbks: [""],
dbl: [""],
dbld: [""],
dbm: [""],
dbma: [""],
dbmd: [""],
dbnd: [""],
dbng: [""],
dbo: [""],
dbox: [""],
dbpe: [""],
dbpo: [""],
dbps: [""],
dbpz: [""],
dbra: [""],
dbs: [""],
dbsd: [""],
dbsg: [""],
dbss: [""],
dbt: [""],
dbte: [""],
dbtg: [""],
dbtk: [""],
dbtm: [""],
dbud: [""],
dbv: [""],
dbvb: [""],
dbvbex: [""],
dbvr: [""],
dbw: [""],
dbza: [""],
dbzb: [""],
dbzc: [""],
dbze: [""],
dbzg: [""],
dbzh: [""],
dbzk: [""],
dc: [""],
dca: [""],
dcab: [""],
dcas: [""],
dcb: [""],
dcba: [""],
dcbs: [""],
dcc: [""],
dcci: [""],
dccp: [""],
dcd: [""],
dcdb: [""],
dcdm: [""],
dcdss: ["1"],
dce: [""],
dcfs: [""],
dcg: [""],
dcgy: [""],
dcha: [""],
dchi: [""],
dchj: [""],
dchv: [""],
dcim: [""],
dcj: [""],
dck: [""],
dckb: [""],
dcks: [""],
dckt: [""],
dcl: [""],
dclb: [""],
dcm: [""],
dcmb: [""],
dcmm: [""],
dcms: [""],
dcmx: [""],
dcn: [""],
dcnb: [""],
dcnm: [""],
dcnn: [""],
dco: [""],
dcof: [""],
dcom: [""],
dcos: [""],
dcow: [""],
dcp: [""],
dcpb: [""],
dcpm: [""],
dcpn: [""],
dcr: [""],
dcrd: [""],
dcry: [""],
dcs: [""],
dcsf: [""],
dcsj: [""],
dcsl: [""],
dcss: [""],
dctb: [""],
dcti: [""],
dcu: [""],
dcub: [""],
dcug: [""],
dcv: ["277"], // MGS新
dcvi: [""],
dcvs: [""],
dcwy: [""],
dcx: [""],
dcxd: ["h_1711"],
dcy: [""],
dcz: [""],
dczj: [""],
dd: [""],
ddab: [""],
ddan: [""],
ddas: [""],
ddbg: [""],
ddbl: [""],
ddca: [""],
ddcd: [""],
ddch: [""],
ddd: [""],
ddda: [""],
dddb: [""],
dddr: [""],
ddes: [""],
ddev: [""],
ddg: [""],
ddgb: [""],
ddgg: [""],
ddh: ["498"], // MGS新
ddhg: [""],
ddhh: [""],
ddhp: ["498"], // MGS新
ddid: [""],
ddis: [""],
ddka: [""],
ddkh: [""],
ddkm: [""],
ddks: [""],
ddl: [""],
ddla: [""],
ddm: [""],
ddma: [""],
ddme: [""],
ddmeb: [""],
ddmk: [""],
ddmt: [""],
ddn: [""],
ddna: [""],
ddng: [""],
ddnj: [""],
ddo: [""],
ddos: [""],
ddp: [""],
ddpw: [""],
ddq: [""],
ddr: [""],
dds: [""],
ddsa: [""],
ddsc: [""],
ddse: ["111", "", "_sm_s"],
ddsi: [""],
ddsp: [""],
ddss: [""],
ddsy: [""],
ddu: [""],
ddur: [""],
ddus: [""],
ddv: [""],
ddws: [""],
ddy: [""],
ddzg: [""],
debd: [""],
debe: [""],
dec: [""],
decb: [""],
dech: [""],
decha: [""],
deck: [""],
decr: [""],
dedd: [""],
dedo: [""],
dedq: [""],
deec: [""],
deed: [""],
deem: [""],
deep: [""],
deew: [""],
deg: [""],
dega: [""],
dego: [""],
deis: [""],
deju: [""],
del: [""],
dem: [""],
den: [""],
dend: [""],
denj: [""],
dep: ["118"],
depd: [""],
dept: [""],
der: [""],
dero: [""],
des: [""],
deso: [""],
deta: [""],
deu: ["118"],
deux: [""],
dew: [""],
dex: [""],
dext: [""],
df: [""],
dfaa: [""],
dfac: [""],
dfak: [""],
dfan: [""],
dfar: [""],
dfaz: [""],
dfb: [""],
dfba: [""],
dfbg: [""],
dfbk: [""],
dfbl: [""],
dfbvr: [""],
dfc: [""],
dfco: [""],
dfda: [""],
dfdm: ["2"],
dfdv: [""],
dfe: ["2"],
dfea: [""],
dfet: [""],
dfgr: [""],
dfh: [""],
dfi: [""],
dfig: [""],
dfk: [""],
dfls: [""],
dfm: [""],
dfms: [""],
dfmt: [""],
dfoj: [""],
dfop: [""],
dfrd: [""],
dfs: [""],
dfslv: [""],
dfsmbr: [""],
dfsmbrab: [""],
dfsmmr: [""],
dfsmmrab: [""],
dfsr: [""],
dft: [""],
dfta: [""],
dftb: [""],
dfu: [""],
dfuz: [""],
dfz: [""],
dg: ["530"], // MGS新
dgah: [""],
dgal: [""],
dgam: [""],
dgc: [""],
dgf: [""],
dgh: [""],
dgirl: [""],
dgk: [""],
dgkb: [""],
dgkd: [""],
dgll: [""],
dgnm: [""],
dgoz: [""],
dgr: ["h_254"],
dgra: [""],
dgrb: [""],
dgre: [""],
dgrp: [""],
dgs: [""],
dgsp: [""],
dgss: [""],
dgtcd: [""],
dgtl: [""],
dgul: [""],
dgus: [""],
dgv: [""],
dgw: [""],
dgya: [""],
dha: [""],
dhae: [""],
dhard: [""],
dhat: [""],
dhav: [""],
dhb: [""],
dhc: [""],
dhcy: [""],
dhda: [""],
dhdc: [""],
dhdd: [""],
dhel: [""],
dher: [""],
dhes: [""],
dhfr: [""],
dhga: [""],
dhgb: [""],
dhgi: [""],
dhgr: [""],
dhh: [""],
dhhs: [""],
dhit: [""],
dhj: [""],
dhjk: [""],
dhjp: [""],
dhlb: [""],
dhld: ["h_139"],
dhm: [""],
dhmg: [""],
dhog: [""],
dhon: [""],
dhry: ["h_173"],
dhsb: [""],
dhsl: [""],
dhsp: [""],
dhts: [""],
dhun: [""],
dhya: [""],
dhzr: [""],
diab: [""],
dib: [""],
dibg: [""],
dibvr: [""],
dic: ["118"],
dich: [""],
did: [""],
didm: [""],
didz: [""],
dies: [""],
diex: [""],
diff: [""],
diid: [""],
dij: [""],
dijc: [""],
dik: [""],
diks: [""],
dil: [""],
dild: [""],
dilf: [""],
dilj: [""],
diln: [""],
dim: [""],
dimc: [""],
dimy: [""],
dina: [""],
dinb: [""],
dinf: [""],
dinm: ["h_1386"], // h_1386+5
dint: [""],
diol: [""],
dipo: ["h_283"], // h_283+5
dir: [""],
dirs: [""],
disc: [""],
dish: [""],
dism: [""],
disp: [""],
dit: [""],
ditr: [""],
dits: [""],
div: [""],
diva: [""],
divr: [""],
divs: [""],
diwc: [""],
diy: ["h_900"],
diya: [""],
dja: [""],
djac: [""],
djas: [""],
djbs: [""],
djc: [""],
djcy: ["h_139"],
djda: [""],
djdh: [""],
djdk: [""],
dje: ["2"],
djj: [""],
djjj: [""],
djjr: [""],
djk: [""],
djka: [""],
djkb: [""],
djkc: [""],
djks: [""],
djm: [""],
djms: [""],
djn: ["h_1762"],
djna: [""],
djnb: [""],
djne: [""],
djnf: [""],
djng: [""],
djnh: ["h_1762"],
djni: [""],
djnj: [""],
djnk: [""],
djnl: [""],
djnm: [""],
djno: [""],
djnq: [""],
djnr: [""],
djns: [""],
djnt: [""],
djnx: [""],
djny: [""],
djnz: [""],
djos: [""],
djpm: [""],
djr: [""],
djsa: [""],
djsb: [""],
djsd: [""],
djsf: [""],
djsg: [""],
djsh: [""],
djsi: [""],
djsj: [""],
djsk: ["29"], // 29+3
djsr: [""],
djss: [""],
djt: [""],
djud: [""],
dka: [""],
dkaa: [""],
dkac: [""],
dkb: [""],
dkbf: [""],
dkbh: [""],
dkbi: [""],
dkc: [""],
dkch: [""],
dkd: ["24"],
dkdb: [""],
dkdn: [""],
dkea: [""],
dker: [""],
dkf: [""],
dkfu: [""],
dkfw: [""],
dkfz: [""],
dkg: [""],
dkgn: [""],
dkgp: [""],
dkgx: [""],
dkh: [""],
dkha: [""],
dkhq: [""],
dkhs: [""],
dki: [""],
dkik: [""],
dkim: [""],
dkj: [""],
dkkb: [""],
dkkc: [""],
dkkf: [""],
dkkfz: [""],
dkkw: [""],
dkl: [""],
dklg: [""],
dkm: [""],
dkmh: [""],
dkmt: [""],
dkn: [""],
dkna: [""],
dkng: [""],
dko: [""],
dkof: [""],
dkoh: [""],
dkos: [""],
dkps: [""],
dkqu: [""],
dkr: [""],
dks: [""],
dksa: [""],
dksb: ["h_139"], // h_139+5
dksr: [""],
dkss: [""],
dkst: [""],
dksu: [""],
dksw: [""],
dkt: [""],
dktd: [""],
dktp: [""],
dktr: [""],
dkwa: [""],
dkwt: [""],
dkya: [""],
dkyb: [""],
dkyc: [""],
dkyd: [""],
dkye: [""],
dkyf: [""],
dkyg: [""],
dkyh: [""],
dkym: [""],
dkyo: [""],
dkys: [""],
dkz: [""],
dl: [""],
dlab: [""],
dlb: [""],
dlbt: [""],
dlc: [""],
dld: [""],
dldss: ["1"],
dle: [""],
dlen: [""],
dlep: [""],
dli: [""],
dlis: [""],
dlit: [""],
dlix: [""],
dlk: [""],
dlkk: [""],
dlld: [""],
dlo: [""],
dlp: [""],
dlpl: [""],
dlpt: [""],
dls: [""],
dlsx: [""],
dlt: [""],
dltd: [""],
dltm: [""],
dlvss: [""],
dly: [""],
dlz: [""],
dm: [""],
dma: [""],
dmat: [""],
dmax: [""],
dmay: [""],
dmb: [""],
dmba: [""],
dmbc: [""],
dmbd: [""],
dmbe: [""],
dmbf: ["29"], //无
dmbg: [""],
dmbh: [""],
dmbi: [""],
dmbj: [""],
dmbk: [""],
dmbl: [""],
dmbm: [""],
dmbo: [""],
dmc: [""],
dmd: [""],
dmdd: [""],
dmdv: [""],
dme: [""],
dmeb: [""],
dmet: [""],
dmg: [""],
dmgb: [""],
dmgq: [""],
dmh: [""],
dmhs: [""],
dmij: [""],
dmir: [""],
dmit: [""],
dmk: [""],
dmkg: [""],
dmls: [""],
dmm: [""],
dmmd: [""],
dmmn: [""],
dmn: [""],
dmna: [""],
dmns: [""],
dmo: [""],
dmoo: [""],
dmow: [""],
dmp: [""],
dmpt: [""],
dmr: ["118"],
dmrb: [""],
dms: [""],
dmsj: [""],
dmsk: [""],
dmsm: [""],
dmso: [""],
dmst: [""],
dmta: [""],
dmtc: [""],
dmtr: [""],
dmts: [""],
dmtv: [""],
dmtw: [""],
dmtws: [""],
dmtx: [""],
dmv: [""],
dmx: [""],
dna: [""],
dnax: [""],
dnb: [""],
dnc: [""],
dnd: [""],
dnia: [""],
dnig: [""],
dnin: [""],
dnjk: [""],
dnk: [""],
dnky: [""],
dnm: [""],
dnma: [""],
dnn: [""],
dnnn: [""],
dno: [""],
dnp: [""],
dnt: [""],
dntr: [""],
dnty: [""],
dnvc: [""],
dnw: ["118"],
dnwa: [""],
dny: [""],
dnyu: [""],
dnzr: [""],
dob: [""],
dobk: [""],
doc: [""],
docl: [""],
docp: ["118"], // 1种 118+3位数
docvr: [""],
dod: [""],
doe: [""],
dog: [""],
dogd: ["h_496"], // h_496+ /
dohi: [""],
doj: [""],
dojj: [""],
doju: [""],
doki: ["h_1664"], // h_1664+3
dokj: [""],
dokm: [""],
dold: [""],
dolx: [""],
dom: ["118"],
domb: [""],
domc: [""],
domd: ["24"],
dome: [""],
doml: [""],
done: [""],
donn: [""],
dopk: [""],
dopp: ["18"],
dopu: [""],
dori: ["h_491"], //
dorm: [""],
dorr: ["36"], // 36+3/5
dorsd: [""],
dosa: [""],
dosd: [""],
dosk: [""],
dosl: [""],
dosp: [""],
dot: [""],
dotm: ["36"], // 1种 36开头+5位数
doto: [""],
dou: [""],
double: [""],
dovr: [""],
dozw: [""],
dp: [""],
dpa: [""],
dpaj: [""],
dpam: [""],
dpb: [""],
dpcd: [""],
dpcj: [""],
dpck: [""],
dpcr: [""],
dpct: [""],
dpd: [""],
dpda: ["h_175", "", "_sm_s"],
dpdl: [""],
dpdv: [""],
dpec: [""],
dpep: [""],
dpet: [""],
dpg: [""],
dpgb: [""],
dpgd: [""],
dpgr: [""],
dph: [""],
dpha: [""],
dphb: [""],
dphc: [""],
dphd: [""],
dphg: [""],
dphh: [""],
dphn: [""],
dpht: [""],
dphu: [""],
dphx: [""],
dpi: [""],
dpidv: [""],
dpik: [""],
dpin: [""],
dpist: [""],
dpj: [""],
dpk: [""],
dpka: [""],
dpknt: [""],
dpl: [""],
dpm: [""],
dpmb: [""],
dpmk: [""],
dpmkb: [""],
dpnk: [""],
dpnw: [""],
dpo: [""],
dpr: [""],
dprb: [""],
dprm: [""],
dps: [""],
dpsa: [""],
dpsb: [""],
dpsf: [""],
dpsg: [""],
dpsj: [""],
dpss: [""],
dpsw: [""],
dpsx: [""],
dptf: [""],
dptj: [""],
dptl: [""],
dpx: [""],
dpxi: [""],
dr: [""],
dra: [""],
dran: [""],
drbp: [""],
drc: ["118"],
drdz: ["h_1632"], // 1种 1、h_1632+5位数
dre: [""],
dred: [""],
drev: [""],
drft: [""],
drg: [""],
drhd: [""],
drhp: [""],
drig: [""],
dring: [""],
driv: [""],
drj: [""],
drk: [""],
drkc: [""],
drm: [""],
drma: [""],
drn: [""],
drns: [""],
dro: [""],
drop: ["36"], // 36+
dror: [""],
drot: [""],
drpt: ["1"], // 2种格式 1、1开头+3/5位数 2、后缀名特殊 ma db
drpts: ["1"],
drs: [""],
drsr: [""], // DRSR 替换为 dnjr 用msin
drvb: [""],
drwl: [""],
drxs: [""],
drz: [""],
ds: [""],
dsa: [""],
dsb: [""],
dsba: [""],
dsbb: [""],
dsc: [""],
dse: ["181", "", "_dmb_s"],
dsen: ["h_175"], // h_175+ /
dsf: ["33"],
dsfb: [""],
dsfm: [""],
dsg: [""],
dsga: [""],
dsgp: [""],
dsgt: [""],
dsh: [""],
dshm: [""],
dsho: [""],
dshs: [""],
dsht: [""],
dsi: [""],
dsir: [""],
dsivr: [""],
dsja: [""],
dsjc: [""],
dsjh: ["h_139"],
dsk: [""],
dskb: [""],
dskc: [""],
dskg: [""],
dskk: [""],
dskm: [""],
dskr: [""],
dsl: [""],
dslb: [""],
dslc: [""],
dsm: [""],
dsmb: [""],
dsmc: [""],
dsmd: [""],
dsme: [""],
dsmf: [""],
dsmg: [""],
dsmh: [""],
dsmi: [""],
dsmj: [""],
dsmk: [""],
dsml: [""],
dsmm: [""],
dsmn: [""],
dsmo: [""],
dsmp: [""],
dsmq: [""],
dsmr: [""],
dsms: [""],
dsmt: [""],
dsmu: [""],
dsmz: [""],
dsn: [""],
dsnr: ["36"], // 36+ /
dsob: [""],
dsoft: [""],
dsot: [""],
dsou: [""],
dsp: [""],
dspn: [""],
dsq: [""],
dsr: [""],
dsra: [""],
dsrd: [""],
dsrj: [""],
dsrz: [""],
dssa: [""],
dsst: [""],
dssv: [""],
dssz: [""],
dst: [""],
dsta: [""],
dstar: [""],
dsth: [""],
dsui: [""],
dsun: [""],
dsv: [""],
dsvr: [""],
dsw: [""],
dswd: [""],
dsx: [""],
dsy: [""],
dsyc: [""],
dsyu: [""],
dsyy: [""],
dsz: [""],
dt: [""],
dtb: [""],
dtbm: ["57"],
dtd: [""],
dtfb: [""],
dth: [""],
dti: [""],
dtk: [""],
dtkm: [""],
dtl: [""],
dtmk: [""],
dtn: [""],
dtoa: [""],
dtob: [""],
dtod: [""],
dtot: [""],
dtri: [""],
dtrp: [""],
dtsg: [""],
dtsl: ["24"], // 1种 24+5位数
dtt: ["336"], // MGS新
dtth: [""],
dtvr: ["24"], //
dtw: [""],
dtwa: [""],
ducf: [""],
dudr: [""],
duga: [""],
dugb: [""],
duib: [""],
duk: [""],
duke: [""],
dum: [""],
dumm: [""],
dun: [""],
duna: [""],
dunb: [""],
dunc: [""],
dunf: ["5469"], // 5469+5
duno: [""],
dup: [""],
dupt: [""],
dus: [""],
dusa: [""],
dut: ["h_1691"],
duud: [""],
duvv: [""],
duwg: [""],
dv: ["53"], //
dva: [""],
dvaa: [""],
dvaf: [""],
dvap: [""],
dvat: [""],
dvajbx: ["", "", "", "nkj"],
dvb: [""],
dvba: [""],
dvc: [""],
dvcl: [""],
dvcr: [""],
dvd: [""],
dvdes: ["1"],
dvdk: [""],
dvdps: [""],
dvdvr: [""],
dvel: [""],
dvf: [""],
dvg: [""],
dvgm: [""],
dvh: [""],
dvhw: [""],
dvhz: [""],
dvi: [""],
dvib: [""],
dvift: ["1"],
dvin: [""],
dvit: [""],
dvjs: [""],
dvka: ["h_175"],
dvkb: ["h_175"],
dvkm: [""],
dvkr: [""],
dvks: ["36","","","d"],
dvkt: [""],
dvll: [""],
dvmb: [""],
dvmc: [""],
dvme: [""],
dvmo: [""],
dvms: [""],
dvp: [""],
dvpj: [""],
dvpo: [""],
dvpr: [""],
dvprn: ["1"],
dvr: [""],
dvs: ["51"],
dvsa: [""],
dvsb: ["4"],
dvsm: [""],
dvt: [""],
dvtc: [""],
dvuma: ["1"],
dvx: [""],
dw: [""], //
dwa: [""],
dwb: [""],
dwc: [""],
dwdead: [""],
dwe: [""],
dwf: [""],
dwg: [""],
dwh: [""],
dwi: [""],
dwl: [""],
dwm: ["h_878"],
dwo: [""],
dwpd: ["h_175"],
dwpp: [""],
dwpv: ["h_175"],
dws: ["h_878"],
dwsd: ["h_175"],
dwt: [""],
dwtw: [""],
dwu: [""],
dxa: [""],
dxad: ["h_175"],
dxae: ["h_175"],
dxb: [""],
dxbb: [""], // h_175/首 并入SW
dxbg: [""], // h_175/首 并入SW
dxbh: ["h_175"],
dxbi: ["h_175"],
dxbj: ["h_175"],
dxbk: [""], // h_175/首 并入SW
dxbs: ["h_175"],
dxc: [""],
dxck: [""], // h_175/首 并入SW
dxdb: [""], // h_175/首 并入SW
dxdk: ["h_175"],
dxdl: ["h_175"],
dxe: [""],
dxec: ["h_175"],
dxf: [""],
dxg: [""],
dxga: ["h_175"],
dxgb: ["h_175"],
dxgd: ["h_175"],
dxge: ["h_175"],
dxgk: ["h_175"],
dxgm: ["h_175"],
dxgs: ["h_175"],
dxh: [""],
dxhg: ["h_175"],
dxhh: ["h_175"],
dxhk: [""], // h_175/首 并入SW
dxid: ["h_175"],
dxij: ["h_175"],
dxik: ["h_175"],
dxir: ["h_175"],
dxj: [""],
dxk: [""],
dxka: ["h_175"],
dxkb: ["h_175"],
dxkk: ["h_175"],
dxkm: ["h_175"],
dxky: ["h_175"],
dxl: [""],
dxlz: ["h_175"],
dxmg: [""], // h_175/首 并入DVAJ
dxmj: [""], // h_175/首 并入SW
dxmk: ["h_175"], // h_175+ /
dxmm: ["h_175"],
dxnd: ["h_175"],
dxnh: [""], // h_175/首 并入SW
dxnj: ["h_175"],
dxoj: ["h_175"],
dxpd: ["h_175"],
dxra: [""],
dxrc: [""],
dxre: ["h_175"],
dxrt: ["h_175"],
dxsb: ["h_175"],
dxsc: ["h_175"],
dxse: ["h_175", "", "_sm_w"],
dxsh: ["h_175"],
dxsm: ["h_175"],
dxst: ["h_175"],
dxsy: ["h_175"],
dxtc: ["h_175"],
dxtm: ["h_175"],
dxtmk: [""],
dxtr: ["h_175"],
dxua: ["h_175"],
dxzg: ["h_175"],
dxzk: ["h_175"],
dyd: ["24"],
dyet: ["h_175"],
dyfb: ["189"],
dyg: ["248"], // mgs新
dyk: ["181"],
dyks: ["181"],
dym: [""],
dync: [""], // 首/187 并入 OCH
dynd: [""],
dynm: ["h_1378"],
dyns: ["h_139"],
dyo: [""],
dypb: [""],
dyy: [""],
dzak: [""],
dzas: [""],
dzat: [""],
dzaw: [""],
dzbc: [""],
dzen: [""],
dzim: [""],
dzjc: [""],
dzmn: [""],
dzno: [""],
dzof: [""],
dzq: [""],
dzr: [""],
dztb: [""],
dzy: [""],
dzya: [""],
dzyb: [""],
dzyc: [""],
dzyd: [""],
dzye: [""],
dzzm: ["h_175"],
eagl: ["h_237"],
eart: [""],
eb: ["52"],
ebe: [""],
ebi: ["126"],
ebir: ["h_405"],
ebjk: ["h_405"],
ebki: ["h_405"],
ebl: ["2"],
ebm: [""],
ebr: ["h_812"],
ebz: [""],
ec: [""], // 172和84并入 XRW
ecb: ["2"], // 2+3位数
ecbm: ["57"],
ecd: [""],
ecmk: [""],
ecqr: ["h_1186"],
ecr: [""],
edct: ["5561"], // 5561+ 无
edd: ["118"],
edg: [""],
edi: [""],
edn: [""],
edrg: ["h_1027"],
edsd: [""],
ee: [""],
eeb: ["118"],
eee: ["118"],
eelu: ["h_086"],
eeon: ["18"],
efo: [""],
efs: [""],
eft: [""],
eg: [""],
egd: [""],
egdv: ["n_1349"],
ege: [""], // h_918/首 并入MDS
egex: [""],
egfs: ["n_650"],
eggo: ["h_128"],
egpd: [""],
egt: ["118"],
eh: [""],
ehm: ["h_205"],
eight: [""],
eih: ["h_254"],
eihb: ["h_254"], // h_254+ /
eiki: ["57"],
eikr: ["118"],
ejr: [""],
ejs: [""],
ejyu: ["h_405"],
ejzd: [""],
ek: ["h_113"],
ekai: ["2"],
ekaivr: [""],
ekap: [""],
ekbe: ["2"],
ekd: [""],
ekg: [""],
ekw: ["2"],
elcd: [""],
eleg: ["h_213"],
elhd: [""],
elo: ["76", "", "_dmb_s"],
elv: ["216"],
elwd: [""],
emaf: [""],
emah: [""],
emal: [""],
emaq: [""],
emau: [""],
emav: [""],
embb: [""],
embf: [""],
embi: [""],
embl: [""],
embm: ["h_1650"],
emby: [""],
emd: ["118"],
emms: [""],
emoi: ["1"],
emot: ["h_237"], // h_237+3
empd: [""],
empsr: ["57"],
ems: ["h_1713"], // h_1713+ /
emsk: ["2"],
emth: ["h_1638"], //
emu: [""], // 84/172 并入 XRW
ena: ["77"],
enb: [""],
enc: ["118"],
enco: [""],
endd: [""],
ene: ["550"], // MGS新
engd: [""],
enjk: ["h_405"],
enkd: ["15"],
eok: ["33"],
eopd: [""],
eos: ["h_838"],
eosd: [""],
eozz: ["h_086"],
epd: [""],
epr: [""],
eq: ["h_100"],
er: [""],
erb: ["23"],
erdl: ["1"],
erdv: ["198"],
erex: [""],
erf: ["23"],
ergc: ["84"],
ergr: ["30"],
ergv: ["h_1472"],
ergz: ["h_1472"],
erhav: ["h_1472"],
erhbv: ["h_1472"],
erht: ["h_1577"],
erhv: ["h_1472"],
erkr: ["583"], // MGS新
erlx: [""],
erm: ["118"],
erod: [""],
erofc: [""], //
erofv: ["h_1472"],
eroi: [""],
eros: [""],
erot: ["n_650"],
eroteen: [""],
erov: ["h_1472"],
erox: [""],
ers: ["118"],
ertm: ["18"],
erts: ["037"],
esb: ["118"],
esf: ["h_405"],
esk: ["118"],
esl: ["h_405"],
esm: ["n_707"],
eso: [""],
esp: [""],
espe: [""],
esr: ["h_405"],
ess: [""],
esv: ["436"],
esvs: ["436"],
eta: [""],
etc: ["13"],
etem: [""],
etemb: [""],
etn: ["118"],
etqt: ["274"],
etr: ["111"],
etti: [""],
etvco: ["h_1186"],
etw: ["h_848"],
eud: ["019"], // mgs新
eumd: ["h_1718"], // 1种 h_1718+5位数
euud: ["h_086"],
euudx: ["h_086"],
ev: [""],
eva: [""],
eva: ["326"], // MGS新
evdv: [""],
evl: ["118"],
evo: ["118"],
evsd: [""],
ewaz: [""],
ewd: ["24"],
ewwd: ["458"],
ex: ["24"],
exay: [""],
exbd: ["33"],
exbs: ["33"],
exbz: [""],
exd: ["24"],
exdp: [""],
exe: [""],
exfe: ["h_1209"],
exhqvr: [""],
exit: [""],
exmd: [""],
exok: [""],
exrm: [""],
ext: ["61", "", "", "ai"],
exte: ["n_1064"],
exvd: [""],
exvr: ["84"], // 84+
exx: [""],
eye: ["118"],
ezd: ["118"],
f: [""],
fa: [""],
faa: ["1"],
faao: [""],
fab: ["143"],
fabh: [""],
face: [""],
fad: ["21"],
fadss: ["1"],
fadv: [""],
fagn: ["n_1445"],
fah: ["h_559"],
faib: [""],
faj: ["031"], // mgs新
fajs: [""],
faked: [""],
fal: ["421", "", "_sm_s"],
fama: ["h_1721"],
fanh: ["h_1472"],
fank: ["h_1593"],
fanq: ["h_1593"],
fanx: [""],
fas: ["h_848"],
fasb: ["h_114"],
fat: ["h_205"],
favkh: ["h_1577"],
fax: ["h_066"], // h_066+3 集成到msin
faxx: ["n_840"],
fb: [""],
fbd: ["24"],
fbos: [""], //
fbs: [""],
fbsj: [""],
fbst: ["h_1133"],
fbu: ["118"],
fcd: [""],
fcdss: ["1"],
fch: ["118"],
fcmq: ["216"], // mgs新
fct: ["326"], // MGS新
fd: [""],
fdep: [""],
fdf: [""],
fdig: [""],
fdl: ["h_205"],
fdsp: ["h_188"],
fdzd: [""],
fe: [""],
feat: ["434"],
fed: ["24"],
fedb: [""],
fedf: [""],
fedh: [""],
fedi: [""],
fedk: [""],
fedn: [""],
fedp: [""],
fedv: [""],
fedx: [""],
fel: ["12"],
femd: [""],
fena: ["h_261"],
feo: [""],
fera: ["h_086"], //
ferax: ["h_086"], // h_086+2
ferma: [""],
fes: ["h_205"],
fet: ["h_205"],
fetd: [""],
fetis: ["h_496"],
fetj: ["031"], // mgs新
fetl: ["031"], // mgs新
fex: ["052"], // mgs新
ff: [""],
ffd: ["24"],
ffdvd: [""],
fffd: ["h_086"],
fffdx: ["h_086"],
fg: [""],
fgal: ["h_114"],
fgan: ["h_1440"], //
fgb: ["h_205"],
fgbb: ["1"],
fgen: ["h_491"], // h_491+3
fgh: [""],
fgl: ["h_205"],
fgmld: [""],
fgmt: [""],
fhd: [""],
fhi: ["h_205"],
fi: [""],
fiby: [""],
fimi: [""],
find: ["h_237"], //
finh: ["", "", "_dm_w"],
fir: ["118"], // 1种 118+3位数
fird: [""],
fis: ["118"],
fiv: ["118"],
five: [""],
fjd: [""],
fjl: ["h_205"],
fjo: ["h_1074"],
fjor: [""],
fjpk: ["h_491"],
fkbd: [""],
fkbk: [""],
fked: ["h_1721"], // h_1721+5
fkg: ["33"],
fkgunm: [""],
fkmdz: [""],
fknbes: [""], // msin
fkone: [""],
fkos: ["h_1721"], // h_1721+ /
fkw: ["33"],
fkwb: [""],
fkws: ["33"],
fla: [""],
flab: ["h_1721"], // h_1721+ /
flb: ["h_897"], // h_897+ 无
flbd: [""],
flcc: [""],
flea: [""],
flkt: [""],
flo: [""],
floa: ["187"],
flsg: [""],
flvr: [""],
fm: ["h_113"],
fmat: ["h_491"],
fmaxvr: [""],
fmc: [""],
fmd: ["24"],
fmdl: ["h_1718"], // h_1718+5
fmgk: [""],
fmky: [""],
fmsd: [""],
fmy: ["77"],
fnd: ["118", "", "_sm_s"],
fneo: ["h_491"], //
fnew: ["h_491"],
fnk: [""], // h_1074/h_205 并入ADK
fns: [""],
fnss: [""],
fntr: ["h_491"],
foad: [""],
focs: [""], //
foe: [""],
foj: ["031"], // MGS新
fol: ["118"],
fone: ["h_491"],
form: [""],
fp: ["h_113"], // h_113=3
fpjs: [""],
fpo: [""],
fps: ["h_113"],
fpx: ["h_687"], // h_687+ /
fr: [""],
fran: [""],
frd: ["24"],
frdv: [""],
frdvs: [""],
fre: ["h_275"],
free: ["h_114"],
frgjv: [""],
frjd: [""],
frnc: ["5050"],
frss: [""],
frtd: [""],
frvr: [""],
fs: [""], // h_1522/n_1428 并入ADK
fsan: ["h_491"], // 1种 h_491+3位数
fsb: [""],
fsd: ["24"],
fsdss: ["1"],
fsei: ["h_1721"], // h_1721+ /
fset: ["1"],
fsfv: [""],
fsg: [""], // h_205/h_1074 并入ADK
fsgd: ["h_491"],
fski: ["h_491"],
fskt: ["h_491"],
fslv: ["n_840"],
fsmd: ["104"],
fsme: ["h_491"],
fsob: ["h_114"],
fsos: [""],
fspt: ["h_491"],// h_491+3
fsre: ["h_491"],
fst: ["118"],
fsta: ["h_491"],
fstb: ["h_491"],
fstc: ["h_491"],
fstd: ["h_491"],
fste: ["h_491"],
fstf: ["h_491"],
fstv: ["n_1456"],
fsvn: [""],
fsvr: ["h_955"], //
fsvss: ["1"], // VR
fswd: [""],
fsyg: ["h_491"],
ft: ["h_1068"],
fta: ["12"],
ftav: ["1"],
ftbd: ["n_1422"], //
ftbl: ["1"],
ftbld: ["1"],
ftds: ["h_1300"],
ftdss: ["1"],
ftdv: [""],
ftg: [""],
ftht: ["1"],
fthtd: ["1"], // 1+3
ftik: ["262"], // mgs新
ftj: [""],
ftk: ["1"],
ftkd: ["1"],
ftktabf: ["", "", "", "", "118abf"],
ftktkbr: ["", "", "", "", "h_1712kbr"],
ftktkbi: ["h_1712"], // h_1712kbi101_dmb_w.mp4
ftktgni: ["", "", "", "", "118gni"],
ftn: ["118"],
ftr: ["118"],
fts: ["h_205"],
ftuj: ["h_1573"], // h_1573+5 /
ftvd: [""],
ftvr: ["h_1068"],
ftx: [""],
fudou: [""], // h_1283/h_1278 并入ADK
fufk: ["h_254"],
fufu: ["h_254"],
fuga: ["h_086"], //
fugax: ["h_086"],
fuka: ["n_707"],
fuku: [""],
ful: [""],
fun: [""],
funs: [""],
fupt: [""],
fut: ["12"],
futd: ["1"],
fvmd: ["h_1668"], //
fvr: [""],
fvsa: ["n_1349"],
fw: [""],
fwd: [""],
fweb: [""],
fws: [""],
fx: ["61", "", "", "ai"],
fxd: [""],
fxy: [""],
fysd: ["h_1734"],
fzb: [""],
fzh: [""],
fzk: [""],
fzr: ["718"], // MGS新
fzs: [""],
ga: ["49"],
gac: ["118"],
gaco: [""],
gad: [""],
gagd: ["24"],
gago: ["h_1632"],
gah: ["h_479"],
gai: ["12"], // 12+5
gaia: [""],
gaid: ["h_491"], // h_491+3位数
gaj: [""],
gak: [""],
gakd: [""],
gaku: [""],
gald: [""],
gale: [""],
gam: [""],
gama: ["h_491"],
gamd: [""],
gan: ["h_254"],
gana: ["200"], // MGS新
gar: ["1"], //
garea: ["241"], // mgs新 /
gas: ["71"], //
gasa: [""],
gaso: ["h_906"],
gasp: ["71"],
gass: ["71"], // 71+5 /
gasu: [""],
gasvr: [""],
gasw: ["71"],
gasx: [""],
gat: ["", "", "_sm_s"],
gate: [""],
gavhj: ["48"],
gbb: ["h_848"],
gbd: ["436"],
gbh: [""],
gbi: [""],
gbkd: [""],
gbl: ["143"],
gblfx: ["h_1719"], // h_1719+ /
gbnw: ["5226", "", "", "sm"],
gbtb: [""],
gbtd: [""],
gbtu: [""],
gbud: [""],
gbvd: ["h_004"],
gbz: [""],
gc: [""],
gcal: [""], // h_1263/h_706 并入DOKS
gcb: ["485"], // MGS新
gcd: ["433"],
gcicd: [""],
gcihd: [""],
gcisd: [""],
gcpr: ["1"],
gcrd: [""], // 36/h_189 并入 DOKS
gd: [""],
gda: [""],
gdan: ["h_1133"],
gdbs: [""],
gdcd: [""],
gdd: [""],
gdga: [""],
gdgd: [""],
gdhvr: [""],
gdju: ["298"], // mgs新
gdkt: [""],
gdl: ["118"],
gdmh: ["203"], // mgs新
gdmq: [""],
gdo: ["235"], // mgs新
gdr: [""],
gds: [""],
gdsc: [""],
gdw: ["118"],
ge: [""],
gege: ["118"],
gek: [""],
gekd: [""],
geks: ["143"],
geksd: ["n_1072"],
gemf: [""],
gen: ["28"],
genb: [""],
genl: [""],
gep: ["13"],
gerb: ["", "", "_sm_s"],
gerk: ["302"], // MGS新
ges: ["118"],
gesd: [""],
gesu: ["49"],
gesy: ["761"], // mgs新
getd: [""],
gets: ["118"],
geur: ["n_1412"],
geurb: ["", "", "", "", "n_1412geur"],
gexp: ["235"], // MGS新
gfd: ["24"],
gfrb: ["h_1632"],
gft: ["h_479"],
gftd: [""],
gg: ["13"], // 2种 13+3/5位数
ggad: [""],
ggbs: [""],
ggd: [""],
ggdr: ["h_1758"],
ggen: ["118"], // 2种 118+3/5位数
ggfh: ["h_173"], // 1种 h_173+5位数
ggg: ["118"], // 1种 118+3位数
gggg: [""],
gghx: ["172"], // 1种 172开头+5位数
ggirl: ["n_840"],
ggll: ["1"],
gph: ["767"], // mgs新
ggp: ["h_1472"],
ggpid: [""],
ggr: [""],
ggt: [""],
ggtb: ["h_173"], // 2种 h_173+3/5位数
ggzm: ["h_1632"], // 1种 h_1632+5位数
ghap: ["h_1133"], // h_1133+3 /
ghat: ["h_1664"], //
ghd: ["24"], // 1种 24+3位数
ghid: ["h_189"],
ghko: [""],
ghkp: [""],
ghkq: [""],
ghkr: [""],
ghls: ["h_173"],
ghm: ["143"],
ghmd: [""],
ghmt: ["h_173"],
ghnu: ["h_173"],
ghor: ["h_173"],
ghov: ["h_173"],
ghpm: [""],
ght: [""],
ghvr: [""], // VR系列
ghz: ["016"], // MGS新
gid: [""],
gifd: ["h_189"],
gife: ["h_189"],
gigp: ["h_173"],
gihhd: [""], // n_1121/h_305 并入 ADK
gil: ["5161", "", "", "sm"],
gilr: [""],
gim: [""],
gimg: ["h_173"],
gin: [""],
ginkaku: [""],
gira: ["h_086"],
gird: [""],
girid: [""],
girl: [""],
giro: ["118"],
gj: ["h_113"],
gjcm: [""],
gjmd: ["", "", "", "", "143jmd"],
gjvr: [""],
gk: ["h_113"],
gkadvo: [""],
gkan: [""],
gkb: ["504"],
gkblor: [""],
gkd: [""], // 24/首 并入 ISD
gkdfda: [""],
gkdosk: ["", "", "", "", "dosk"],
gkdt: ["h_1632"],
gkdx: [""],
gkembz: ["", "", "", "", "embz"],
gkh: [""],
gkhd: [""],
gki: ["h_286"],
gkj: [""],
gkkcpb: [""],
gkkcpj: [""],
gkkcpn: [""],
gkkcpr: [""],
gkkcpw: [""],
gkmdmb: ["", "", "", "", "mdmb"],
gkmugo: ["", "", "", "", "mugon"],
gks: [""],
gkyd: [""],
gkz: [""],
gkzd: [""],
gl: ["h_113"],
gla: [""],
glam: [""],
glb: ["h_1293"],
glba: [""],
glbd: [""],
glf: ["h_1293"],
glg: ["h_093"],
gli: ["039"], // MGS新
glm: [""],
glo: [""],
glpd: [""],
gls: [""],
glsp: [""],
glt: [""], // h_310/h_205 并入 THNIB
gm: ["h_113"],
gma: [""], //
gmad: [""],
gmas: ["", "", "", "", "143mas"],
gmax: [""],
gmbm: ["h_1133"],
gmd: ["24"],
gmed: ["143"],
gmg: [""],
gmix: [""],
gmjk: ["h_1133"],
gmk: ["23"],
gmmd: ["235"], // mgs新
gmod: [""],
gmsp: [""],
gn: [""],
gnab: ["118"], //
gnan: ["h_1133"],
gnax: [""], // 首/h_1345 并入 DVAJ
gnbd: [""],
gnbf: [""],
gnd: [""],
gne: ["h_479"],
gnhd: [""],
gni: ["118"],
gnjd: [""],
gnki: ["h_445"],
gns: ["h_1596"], //
gny: [""],
goal: ["h_1687"], // h_1687+3
gobd: ["57"],
gobu: ["18"],
god: [""],
godd: ["15"],
godr: ["78"], // 78+ 无
gods: ["235"], // mgs新
gogo: ["h_1133"],
goin: ["745"], // mgs新
goji: ["759"], // mgs新
goju: ["h_1165"], //
gok: [""],
goki: [""],
gokn: ["33"],
goku: [""],
gokuc: [""],
gokun: [""],
gold: ["h_918"],
gomk: ["235"], // mgs新
gomms: ["h_1780"],
gomu: ["h_086"], //
gon: ["12"],
gone: ["h_1133"], //
good: ["118"],
gool: ["278"], // mgs新
gor: ["23"],
gorilla: [""],
gos: [""],
gotd: [""],
gotv: ["h_734"],
gotw: [""],
goul: ["h_086"],
govr: ["h_1290"],
goyd: [""],
gp: [""],
gpd: [""],
gppp: [""],
gps: [""],
gptm: [""],
gqbd: [""],
gqbx: [""],
gqcd: ["h_189"],
gqd: [""],
gqe: [""], // 首/13 并入GVH
gql: ["13"],
gqr: ["13"],
gqs: ["13"],
grab: ["5141"],
grabd: ["n_1535"], // n_1535+3 grabd更换为grace
grace: ["n_1535"], // n_1535+3
gran: [""],
grap: [""],
gras: [""],
grbd: ["", "", "", "", "143rbd"],
grch: ["1"],
grd: ["n_1315"], // 1种 n_1315+3位数
grdv: ["49"],
gre: ["h_1075"],
gred: ["n_1445"], // n_1445+ 去除b
gredb: ["", "", "", "", "n_1445gred"], // n_1445+ 去除b
gren: ["n_1155"],
gret: ["h_173"],
grgr: ["h_1071"],
grin: ["h_261"],
grk: [""],
grkg: ["h_1535"],
grks: [""],
grmo: ["h_1534"], //
grmr: ["h_1534"], // h_1534+5
grmt: [""],
grpt: [""],
grrs: [""],
grt: ["118"],
gryd: ["15"],
gs: ["140"], //
gsad: [""], // h_173/5226 并入ZEX
gsbd: [""],
gsd: [""],
gsdg: [""],
gsf: ["h_989"],
gshr: ["h_346"], //
gshrb: ["h_346"], // 调用去除b
gsj: [""],
gsm: [""],
gsnjv: ["48"],
gso: [""],
gsp: ["71"],
gsq: [""],
gsr: ["h_310"],
gssd: [""],
gst: [""], // 12/13 并入GVH
gsts: ["118"],
gsty: ["118"],
gsv: [""],
gsx: ["118"],
gsy: [""],
gt: ["111"],
gtd: [""],
gtgd: [""],
gtn: ["118"],
gto: ["118"],
gtok: ["h_189", "", "_sm_s"],
gtoz: [""],
gtp: [""],
gtrl: ["235"], // mgs新
gtte: ["h_1632"],
gud: [""],
gufu: ["h_086"],
guld: [""],
gum: [""],
gun: ["433"], // 433+5
gunm: [""],
gur: ["28"],
gvg: ["13"], //
gvrd: ["h_173"], // h_173+ /
gwaz: ["29"],
gwren: ["118"],
gwzz: [""],
gxaz: ["29"],
gxxd: [""],
gxxx: [""],
gyan: ["118"],
gyaz: ["29"],
gyd: ["118"],
gyh: ["077"], // mgs新
gyoe: [""],
gyu: ["h_205"],
gzap: ["118"],
ha: ["49"],
hab: ["59"],
had: ["118"],
hag: ["057"], // mgs新
haho: ["n_1425"],
hahob: [""], // h_706/n_1425/n_1425+截取4字母
hai: ["59"],
haj: ["031"], // mgs新
haji: [""],
hajime: [""],
hajk: ["h_445"],
hamd: [""],
hana: [""],
hani: [""],
hao: [""],
haoid: [""],
haoz: [""],
hapt: [""],
har: ["118"],
harj: ["031"], // mgs新
hart: ["", "", "", "", "36shart"],
haru: ["h_687"], //
haruv: ["h_687"],
hat: ["12"],
hate: [""],
hatu: ["h_128"],
havd: ["1"],
hawa: ["1"],
hay: ["h_1533"],
haz: ["118"],
haze: ["h_491"],
hb: ["h_1098"],
hbad: ["1"],
hbbd: ["h_086"],
hbbx: [""],
hbd: [""],
hbns: [""],
hboy: [""],
hbs: ["h_909"],
hbsd: ["065"], // mgs新
hbx: [""],
hc: [""],
hcd: [""],
hck: [""],
hcm: ["118"],
hcp: [""],
hct: ["h_443"], // h_443+3 /
hcy: [""],
hcz: [""],
hd: ["1"],
hdb: [""],
hdd: [""],
hdg: ["248"],
hdi: ["12"],
hdka: ["h_237"], // h_237+3 /
hdkb: ["118"],
hdlx: [""],
hdmb: [""],
hdpr: [""],
hdrd: ["24"],
hdv: ["28"],
hdvhj: ["48"],
hea: ["118"],
hebi: ["h_261"],
hed: [""],
hedv: ["49"],
hei: [""],
hend: [""],
henk: ["18"],
herd: ["h_086"],
herdx: [""],
herv: [""],
hest: ["h_838"],
het: [""],
hew: ["016"], // mgs新
hex: ["h_443"],
hey: [""],
hez: ["59"], // 59+3 /
hf: ["59"],
hfc: ["h_1601"], // h_1601+ /
hfcm: [""],
hfdd: ["235"], // mgs新
hff: ["59"],
hfm: [""],
hfn: [""],
hgb: [""],
hgbm: ["57"],
hgd: [""],
hgg: ["h_1347"],
hgj: ["59"],
hgot: ["84"],
hgp: [""],
hgp: ["326"], // MGS新
hgq: ["13"],
hgs: ["h_909"], // h_909+ /
hgy: ["59", "", "_sm_s"],
hh: [""],
hhad: [""],
hhap: [""],
hhd: [""],
hhdd: [""],
hhdv: [""],
hhe: ["118"],
hhed: ["h_086"],
hhedx: ["h_086"],
hhhd: [""],
hhhg: ["h_173"],
hhk: [""],
hhls: [""],
hhnd: [""],
hhpdr: [""],
hhpr: [""],
hhr: ["59"],
hhsd: ["h_629"],
hhvd: [""],
hib: [""],
hibc: [""],
hict: ["436"],
hid: [""],
hien: [""],
hifd: [""],
hig: [""],
high: ["", "", "_dmb_s"],
higl: [""],
higm: ["h_1221"],
higr: ["n_1463"],
him: [""],
hima: ["h_086"],
himax: ["h_086"],
himd: [""],
hime: [""],
himt: [""],
himv: [""],
hina: ["h_113"],
hind: ["h_1177"], // VR
hip: [""],
hipa: [""],
hir: [""],
hirb: [""],
hirc: [""],
his: [""],
hisn: ["1"],
hit: ["13"],
hitj: ["031"], // mgs新
hitl: ["031"], // mgs新
hitou: ["n_650", "", "_sm_w", "r"],
hitoub: [""], // 同 hitoud
hitoud: [""], // n_1064/n_650 并入 MCMA
hits: [""],
hiwa: [""],
hiyb: [""],
hiyc: [""],
hiz: ["118"],
hj: ["h_921"],
hjd: ["143"],
hjk: [""],
hjmd: [""],
hjo: ["118"],
hjp: ["1"],
hjs: [""],
hjt: ["59"],
hk: [""],
hkb: [""],
hkc: ["59"],
hkd: [""], //
hke: ["057"], // mgs新
hkeg: [""],
hki: [""],
hkid: [""],
hkj: ["59"],
hkjd: [""],
hkk: [""],
hkm: ["59"],
hkn: ["59"],
hkr: [""],
hkrd: [""],
hkrs: [""],
hksv: [""],
hkt: [""],
hkw: ["2"], //
hkwd: [""],
hky: ["59"],
hl: ["n_863"],
hld: [""],
hleg: [""],
hlm: ["436"], // mgs新
hlmd: [""],
hlsd: [""],
hlux: [""],
hlv: ["h_443"], //
hm: [""], // 首/gk 并入NATR
hmd: ["143"],
hmdhx: ["h_1472"],
hmdnv: ["h_1472"], // h_1472 /
hme: ["118"],
hmge: ["512"],
hmgl: ["h_172"], //
hmhm: ["483"], // mgs新
hmjm: ["001"], // mgs新
hmk: [""],
hml: [""],
hmm: ["118"],
hmmx: ["h_1711"], // h_1711 /
hmnf: ["h_172"], //
hmnx: ["h_1472"],
hmpd: ["41"],
hmpg: ["001"], // mgs新
hmrb: ["512"],
hmsd: [""],
hmsp: ["512"],
hmt: ["598"], // MGS新
hmvf: ["h_1472"],
hmvx: ["h_1472"],
hmy: ["59"],
hnamh: ["1"],
hnb: ["h_254"],
hnbp: ["052"], // mgs新
hnc: ["33"],
hnd: [""], //
hnf: [""],
hnht: [""],
hnhu: ["h_1658"], //
hnk: ["59"],
hnmd: [""],
hnmg: [""],
hnr: [""],
hns: ["59"],
hnt: [""],
hnu: ["59"],
ho: ["h_113"],
hob: ["h_1435"],
hoc: ["59"],
hocl: [""],
hod: [""],
hodv: ["41"], // 41+ /
hogp: [""],
hoj: ["031"], // mgs新
hokg: [""],
hoks: [""], //
hoku: [""],
hol: ["h_443"], //
holy: [""],
hon: ["1"],
honb: ["h_1133"], //
hond: [""],
hone: ["h_086"],
honex: ["h_086"],
hony: [""],
hoo: ["h_186", "", "_sm_s"],
hoog: ["33"],
hoon: [""],
hop: [""],
hor: ["421"],
hos: [""],
hosd: [""],
hose: [""],
hot: [""],
hotvr: ["59"], // VR-
houhou: [""],
houm: [""],
hov: ["118"],
howy: ["41"], //
hp: [""],
hpar: [""],
hpbn: [""],
hpf: ["h_443"],
hpi: [""],
hpk: ["483"],
hpl: [""],
hpmo: [""],
hpn: ["h_443"],
hpp: [""],
hpr: ["h_443"],
hprd: [""],
hpv: ["h_303"],
hpxn: [""],
hpz: ["483"],
hqn: ["1"],
hr: ["h_113"], // h_113+ /
hrav: ["h_1763"],
hrc: ["143"],
hrd: ["24"],
hrg: [""],
hrkd: [""],
hrm: ["h_859"],
hrnd: [""],
hrpd: [""],
hrrb: [""],
hrsm: ["h_1745"],
hrt: [""],
hrtd: [""],
hru: ["59"],
hrv: ["118"],
hrz: ["59"],
hs: [""],
hsb: [""],
hsd: [""],
hsdab: ["1"], // mgs前缀107 暂用dmm
hsdam: ["1"],
hse: ["057"], // mgs新
hsf: ["189"],
hsgd: [""],
hsgr: [""],
hsk: [""],
hsl: ["h_443"],
hsm: ["h_458"], // h_458+ /
hsp: [""], // h_186/118 并入 XRW
hsv: [""],
hsy: ["33"],
hsyb: [""],
hsyd: [""],
ht: [""],
htad: [""],
htb: [""],
htch: ["h_706"],
htd: ["24"],
htdr: ["18"],
htfdv: [""],
hthd: ["h_086"], //
hthdx: ["h_086"],
htk: [""],
htld: [""],
htms: [""],
htn: [""],
htpk: ["h_1133"],
htps: ["h_1133"],
htr: [""],
hts: ["140"],
htsu: ["18"],
htt: ["h_687"],
htubo: ["h_1607"], // h_1607+ /
hty: [""],
hudd: ["15"],
huf: [""],
hune: [""],
hunt: ["1"],
huntc: [""],
hunvrc: [""],
husd: ["57"],
husr: ["57"],
hust: ["57"],
husx: ["57"],
huzd: [""],
hvg: ["13"],
hvy: ["59"],
hw: [""],
hwb: ["h_113", "", "", "sm"],
hwd: ["13"],
hwif: [""],
hwrd: [""],
hws: ["118"],
hwsd: [""],
hwsp: [""],
hxad: ["29"],
hxae: [""],
hxaf: [""],
hxag: [""],
hxah: [""],
hxai: [""],
hxaj: [""],
hxak: ["29"],
hxal: [""],
hxam: [""],
hxan: [""],
hxao: [""],
hxap: [""],
hxaq: [""],
hxar: [""],
hxas: [""],
hxat: [""],
hxau: [""],
hxaw: [""],
hxax: [""],
hxay: [""],
hxaz: [""],
hya: [""],
hyad: [""],
hyaku: ["84"],
hyas: [""], // 首/84 并入 MDTM
hyav: [""],
hyaz: ["29"], // 29+ /
hyd: [""],
hygi: ["h_445"],
hypn: ["1"],
hyr: [""],
hys: ["118"],
hysd: ["41"],
hz: ["h_113"], //
hzd: [""],
hzex: [""],
hzgb: ["h_1100"], //
hzgd: ["h_1100"], //
hzgs: ["h_1100"],
hzhb: ["h_1100"],
hzm: ["59"],
hzmd: [""],
hzmen: ["h_1371"],
hzmt: ["h_445"],
hzok: ["18"],
hzoks: ["", "", "", "", "18hzok"],
hzr: [""],
hzzd: ["h_086"],
i: [""],
ia: ["61", "", "", "ai"],
iad: [""],
iann: ["h_086"],
iannx: ["h_086"],
iaoa: [""],
iapb: [""],
iats: ["1"],
ibfg: [""],
ibma: ["504"],
ibox: [""],
ibs: ["118"],
ibvr: [""],
ibw: ["504", "", "", "z"],
ibwgs: [""],
ic: [""],
icak: [""],
iccc: ["h_086"],
icd: [""],
ichd: [""],
ichk: ["368"], // MGS新
ico: [""],
ics: ["h_001"],
ict: ["118"],
icvd: [""],
id: ["h_113"], // h_113+ /
idl: [""],
idld: [""],
idol: [""],
idp: [""],
ids: ["h_113"],
ie: ["1", "", "_sm_s"],
iean: ["109"], // mgs新
iegr: [""],
iele: ["1"],
iemd: [""],
iend: ["1"],
iene: ["1", "", "_sm_w"],
ienf: ["1"],
ienfh: ["109"], // MGS新
iepg: ["1"],
ieqp: ["109"], // mgs新
iesm: ["1"],
iesp: ["1"],
ievd: ["1"],
if: ["61", "", "", "ai"],
ifd: [""],
ifda: [""],
ifdva: ["1"],
ifdve: ["1"],
ifdvm: [""],
iffk: [""],
iffs: [""],
ifkh: [""],
iflk: [""],
ifly: [""],
ifo: [""],
ifoa: [""],
ifpa: [""],
ifri: ["217"], // mgs新
ig: ["61", "", "", "ai"],
iga: ["h_086"],
igad: ["066"], // mgs新
igmd: [""],
ign: ["12"],
igt: [""],
igu: ["33"],
igub: ["33"],
igy: [""],
ih: ["61", "", "", "ai"],
ihd: [""],
ihj: [""],
ihkd: [""],
ihn: [""],
ihw: [""],
ii: [""],
iitan: [""],
ijkd: [""],
ik: [""],
ikd: ["24"],
ikgd: [""],
ikuna: ["1"],
ikst: ["h_1454"],
ikt: [""],
ikv: ["118"],
ily: [""],
im: ["61", "", "", "ai"],
imd: ["24"],
imjj: [""],
imk: ["151"],
iml: ["118"],
imo: ["12"], // 12+ /
imod: [""],
imota: ["h_254"],
imp: [""],
impa: [""],
impb: [""],
impc: [""],
impjo: [""], // h_1154/n_1418 并入ZEX
impjob: [""], // h_1154/n_1418 并入ZEX
impno: [""], // h_1154/n_1418 并入ZEX
impnob: [""], // h_1154/n_1418 并入ZEX
impto: [""], // h_1154/n_1418 并入ZEX
imptob: [""], // h_1154/n_1418 并入ZEX
impve: [""], // h_1154/n_1418 并入ZEX
impveb: [""], // h_1154/n_1418 并入ZEX
imrd: [""],
inax: [""],
inba: ["h_687"],
inc: [""],
ind: ["534"], // mgs新
indi: ["h_917"],
inf: ["118"],
infd: ["h_405"],
ing: ["118"],
ingo: [""],
ingu: [""],
inj: ["", "", "_sm_s", "", "62injd"],
injd: ["62"],
inm: [""],
inmd: [""],
ino: [""],
inon: ["h_1472"],
inot: ["h_1133"], // h_1133+ /
inp: [""],
inpr: [""],
inrd: [""],
insf: ["1"],
insp: [""],
instc: [""], //
instma: ["h_1472"],
instna: ["h_1472"],
instv: ["h_1472"],
insvx: ["h_1472"],
int: [""],
intp: [""],
inu: ["118", "", "_sm_s"],
inud: ["57", "", "_sm_s"],
inude: [""],
inzm: [""],
io: [""],
ioad: [""],
iod: ["h_467"],
ione: [""],
iora: ["h_086"],
ip: [""],
ipd: [""],
ipn: ["118"],
ipot: [""],
iqd: [""],
iqp: [""],
iqpa: ["h_574", "", "", "r"],
iqqq: ["h_086"], //
iqqqx: ["h_086"],
ird: [""],
iro: ["h_086"],
irox: ["h_086"],
is: ["61", "", "", "ai"],
isay: [""],
isb: [""],
iscr: [""], // n_1072/1 并入 DVAJ
isdn: ["h_254"],
isgd: [""],
isi: ["h_286"],
isj: ["12"],
iskd: ["h_086"],
iskdx: [""],
ism: ["118"],
isn: [""],
ispd: [""],
isrd: ["24"],
issd: ["21"],
isy: ["436"],
it: [""],
itd: [""],
ito: [""],
itsr: ["57"], // 57+ /
ittd: [""],
itz: [""],
ivd: [""],
ivka: [""],
ivla: [""],
ivt: ["118"],
iwan: ["h_086"],
iwanx: ["h_086"],
iwbv: [""],
iwd: [""],
iwgb: ["h_188"],
ixaz: [""],
ixla: [""],
ixlz: [""],
ixtz: [""],
iyasi: ["n_1064"],
iyaz: [""],
izak: ["h_1377"],
izakcp: ["h_1377"],
izb: [""],
izen: ["h_687"],
izm: ["h_113"], // h_113+ /
izp: ["h_021"],
j: ["h_1489"], // a_dmb_w.mp4
jac: ["390"], // MGS新
jag: ["28"],
jak: ["33"],
jamb: ["187"],
jamc: ["187"],
jamd: ["187"],
jame: ["187"],
jamf: ["187"],
jamg: ["187"],
jamh: ["187"],
jan: ["118"],
japd: [""],
jarb: ["h_1336"],
jarm: ["11"],
javd: [""],
jb: [""],
jbjb: ["h_687"], //
jbmd: ["n_681"],
jbox: [""],
jbpd: ["h_086"],
jbpdx: [""],
jbs: ["118"],
jbss: ["h_128"],
jbz: ["h_1294"],
jcb: [""],
jccp: ["n_707"],
jcd: [""],
jck: ["118"],
jckl: ["h_254"],
jcn: ["118"],
jd: [""], // h_109pb/52 并入 ZEX
jdk: [""],
jdx: [""],
jdxo: [""], // 很混乱 无规则 暂时搁置
jdyd: [""],
jed: [""], // n_1488/n_707/13/301 并入 DVAJ
jelly: ["h_706"],
jesbd: ["h_706"],
jewe: ["h_848"], // h_848+ /
jf: [""],
jfa: [""],
jfc: [""],
jfd: ["h_205"],
jfe: [""],
jfic: [""], // 5141/n_707 并入 SW
jfk: [""],
jfyg: ["1"],
jgad: ["h_086", "", "_sm_s"],
jgadx: [""],
jgaho: ["h_1002"], //
jgbd: ["h_173"],
jh: [""],
jhhd: ["h_173", "", "_sm_s"],
jhq: [""],
jhzd: [""],
ji: [""],
jibf: ["n_707"], // n_707+ /
jid: ["126"],
jik: [""],
jim: ["h_1725"], // h_1725+ /
jimi: ["h_254"], // h_254+ /
jiod: [""],
jiru: ["782"], // MGS新
jj: ["13"],
jjaa: [""], // h_1350/首 并入MDS
jjc: [""],
jjd: ["24"],
jjh: [""],
jjkd: ["15"],
jjod: [""],
jjor: [""],
jjsd: [""],
jjun: ["h_086"],
jjunx: [""],
jjwk: [""],
jk: ["h_1713"],
jkb: [""], // 118/h_179 并入 XRW
jkcm: [""],
jkd: ["24"], // 24+
jkdd: [""],
jkf: ["143"],
jkfv: ["", "", "_sm_s"],
jkh: [""],
jkhb: ["18"],
jkjd: [""],
jkks: ["18"],
jkm: [""],
jkn: [""],
jknr: ["18"],
jkod: [""],
jkp: ["1"],
jkrd: [""], // h_086/18 并入 MEKO
jkrdx: [""],
jkrs: ["h_128"], //
jks: [""], // 36/h_139 并入 DOKS
jksp: [""],
jksr: ["57"], //
jksx: ["57"],
jkto: [""],
jkw: ["h_848"],
jkws: ["18"],
jkzk: ["18"],
jl: ["23", "", "_sm_s"],
jld: [""],
jm: [""],
jma: [""],
jmap: ["h_1632"],
jmd: ["15"],
jmdv: [""],
jmdvb: [""],
jmpc: ["h_1632"],
jmrd: [""], // 5294/h_173/n_1155 并入 zex
jmsd: ["1"],
jmss: [""],
jmsz: ["h_173"],
jmt: [""],
jnad: [""],
jnbt: [""],
jnd: [""],
jndg: ["h_1720"],
jnet: [""],
jnk: ["h_1711"],
jnke: ["h_1711"],
jnkd: ["h_1711"],
jnm: [""],
jnn: [""],
jnob: [""], // n_707/n_1464/h_1266 并入 ZEX
jnph: [""],
jns: ["h_1672"],
jnt: [""],
jnt: ["390"], // MGS新
jnth: ["h_1472"],
jo: [""],
job: ["118"],
jod: [""],
joe: ["71"],
jos: ["h_156"],
josd: [""],
josi: ["h_491"],
josk: ["h_697"],
jovd: [""],
joyu: ["h_128"],
jpd: [""],
jpdds: ["1"],
jpdrs: ["152"],
jpdvd: [""],
jpg: [""],
jpn: ["118"],
jptdv: [""],
jrad: ["h_086"],
jrdv: [""],
jryd: ["h_086", "", "_sm_s"],
jrzd: ["h_086"],
jrzdx: ["h_086"],
jrze: ["h_086"],
js: [""], // h_355/h_909/50 并入 XVSR
jsbd: ["h_173"],
jsd: [""],
jse: ["057"], // mgs新
jsm: ["13", "", "_sm_s"],
jsn: ["118"],
json: ["18"],
jsop: [""], //
jssj: ["n_707"],
jstk: ["h_1133"],
jsto: ["n_707"],
jtb: ["33", "", "_sm_s"],
jtbc: ["33", "", "_sm_s"],
jtd: [""],
jtdk: ["n_707"],
jtdv: ["483", "", "_sm_s"],
jtk: ["23", "", "_sm_s"],
ju: ["h_113"],
judg: [""],
judo: [""],
jukf: ["h_227"], //
juks: ["57"],
juku: [""], // 首/h_1136 并入 XVSR
jump: ["h_227"],
jun: [""],
junk: ["h_445"],
jura: ["h_086"], //
jutn: ["h_227"],
juw: ["23"],
jvdd: [""],
jvdw: [""],
jvof: [""],
jvx: [""],
jw: ["", "", "", "", "h_1391pbjw"],
jwaz: ["29"],
jwd: ["24"],
jxaz: ["29"],
jxd: ["h_205"],
jya: ["h_286"],
jyaz: ["29"],
jyd: [""],
jyex: [""],
jyh: [""],
jyk: ["057"], // mgs新
jykjv: [""],
jyo: ["h_859"],
jysh: [""],
jyyc: [""],
jzbd: ["h_173", "", "_sm_s"],
ka: ["", "0", "", "ai"],
kaad: ["h_086"], // h_086+2~5
kaadx: ["h_086"],
kad: ["28"],
kagd: ["118"],
kage: [""],
kagh: [""], // h_970/422 并入 XVSR
kags: ["436"],
kaih: [""],
kaihh: [""],
kaihk: [""],
kaik: [""],
kaim: [""],
kame: ["n_650"],
kamef: ["h_1350"], //
kamex: ["h_1593"],
kamich: ["h_1580"],
kamioch: ["h_1580"], // h_1580+5
kamx: ["h_1350"],
kan: ["118"],
kano: [""], // 首/1 并入sw
kanp: ["h_395"],
kanz: ["h_1664"], // h_1664+3
kaoae: ["", "", "", "", "oae"],
kark: ["h_261"],
kas: ["h_405"],
kasakura: [""],
kasd: [""],
kashi: ["h_1533"],
kat: ["1", "", "_sm_s"],
katu: [""], // 首字母+3/5
katuo: [""], // 首字母+3/5 去除o
kaupa: [""],
kav: ["1"],
kavr: [""],
kawa: [""],
kawd: [""], // 2种 首字母+3/5位数
kazd: [""],
kazk: ["h_254"],
kazu: ["n_707"],
kb: ["h_113"],
kba: ["13"],
kbcm: [""],
kbd: [""],
kbh: ["118"],
kbi: ["h_1712"], //
kbj: [""],
kbkd: [""],
kbl: ["336"], // mgs新
kbm: [""],
kbnd: ["104", "", "_sm_s"],
kboae: ["", "", "", "", "oae"],
kbtd: ["171", "", "_sm_s"],
kbto: [""],
kbtv: [""], // h_1514/h_244 并入 XVSR
kbvr: ["h_1241"], // VR
kbw: [""],
kby: [""],
kbynb: [""],
kbynd: [""],
kbz: [""],
kc: ["h_113"],
kca: [""],
kcawd: ["", "", "", "", "cawd"],
kcwm: ["24"],
kcd: [""],
kcda: [""],
kcf: [""],
kch: [""],
kchc: ["h_303"],
kck: [""],
kclb: ["24"], // 24+5 /
kcoae: ["", "", "", "", "oae"],
kcod: ["104"],
kcos: ["h_491"],
kcpb: [""],
kcpj: [""],
kcpm: [""],
kcpr: [""],
kd: ["126"],
kdasd: ["", "", "", "", "dasd"],
kdfe: ["24"],
kdg: ["118"],
kdmd: ["100"],
kdmx: [""],
kdo: ["126", "", "_sm_s"],
kdod: [""],
kds: ["h_1711"],
kdsd: [""],
kdsg: [""],
kdsh: ["", "", "_dm_s"], // 首字母+3/5 /
kdtg: ["18", "", "_sm_s"],
kdvr: ["366"], // MGS新
kdx: ["483"],
kec: [""],
kecb: ["24"],
ked: ["15"],
keed: ["h_086"],
keedx: ["h_086"],
kei: [""],
keifu: ["h_254"],
kel: ["23", "", "_sm_s"],
ken: [""],
kesi: [""],
ket: ["118"],
kew: [""],
kezd: [""],
kfc: ["77"],
kfg: [""],
kfl: [""],
kfne: ["118"],
kg: [""],
kgai: [""], // 436/h_157 并入sw
kgb: ["118"],
kgd: [""],
kgdv: ["062"], // mgs新
kgkd: ["244"],
kgg: [""],
kgm: [""],
kgmi: [""],
kgr: ["h_848"],
kgs: [""],
kgsd: [""],
kgz: [""],
kdje: ["24"],
kh: ["h_113"],
kha: [""],
khb: [""],
khd: [""],
khh: [""],
khj: [""],
khk: ["33"],
khko: [""],
khm: [""],
khv: [""],
ki: [""],
kicd: [""],
kick: ["118"],
kid: ["143"],
kidm: [""],
kil: ["118"],
kim: [""],
kimo: ["15"],
kin: ["h_859"],
kinkaku: [""],
kinl: [""],
kiod: [""],
kipx: ["", "", "", "", "ipx"],
kir: ["h_254"], // h_254+5
kire: ["1"], // 1+3
kirebd: ["", "", "", "", "1kire"],
kiri: ["4"],
kirm: ["h_1540"],
kitaike: [""],
kitaike: ["276"], // MGS新
kiwi: ["118"],
kiz: ["h_848"],
kizn: ["h_1410"],
kj: [""],
kjc: ["12"],
kjj: [""],
kjk: ["5"],
kjmd: [""],
kjod: [""],
kjsd: [""],
kjz: [""],
kk: ["13"],
kka: ["041"], //mgs新
kkbd: ["47"],
kkbj: [""],
kkbt: ["1"],
kkc: [""],
kkd: ["24", "", "_sm_s"],
kkfe: [""],
kkj: ["118"],
kkk: ["h_103"],
kkkd: [""],
kkn: [""],
kkp: [""],
kkpd: ["244"],
kkrd: [""],
kks: [""],
kksp: ["1", "", "_sm_s"],
kktn: ["1"],
kkts: [""],
kku: ["118"],
kkw: [""],
kld: [""],
km: ["h_113"],
kmad: [""],
kmbb: ["1", "", "_sm_w"],
kmbe: [""],
kmbk: [""],
kmbs: [""],
kmd: [""],
kmex: [""],
kmg: ["436", "", "_sm_s"],
kmhr: ["1"],
kmhrs: ["1"],
kmi: ["", "", "_sm_w"],
kmide: ["", "", "", "", "mide"],
kmkfx: ["h_1719"],
kmm: [""],
kmmn: [""],
kmon: [""],
kmpd: [""],
kmsd: [""],
kmtr: ["422"],
kmvd: [""],
kmvr: ["84"], //VR
kn: [""],
knam: ["h_491"],
knb: ["336"], // MGS新
kncb: [""],
kncs: ["", "", "", "r", "164kncr"],
knd: ["143"],
kndn: [""],
knds: [""],
knfd: [""],
kngn: [""],
kngr: [""], // h_157/436 并入 SW
knjd: ["18", "", "_sm_s"],
knk: [""],
knks: [""],
knld: ["244"],
knmb: ["h_491"], // h_491+3
knmd: [""], // 首字/h_1352 并入DVAJ
knol: [""],
knrz: [""],
knsd: ["065"], // mgs新
knsm: ["h_491"], // h_491+ /
knup: [""],
knv: [""],
knwf: ["h_1133"],
knyd: [""],
knz: [""],
ko: [""],
koa: ["h_086"],
kob: [""],
koba: ["118"],
koc: ["h_924"],
kocm: [""],
kod: [""],
koe: ["h_086"],
kof: ["h_086"],
kog: [""],
kogc: ["33"],
koja: ["1"],
koj: ["33"],
kojc: ["33"],
koji: ["h_128"],
kojt: [""],
koko: ["n_1535"],
kon: ["540"],
kop: [""], // 首字母/h_086 并入 MEKO
kopx: [""],
kos: ["h_086"],
kosb: ["33"],
kosd: [""],
kosx: [""],
kota: ["h_1133"],
koum: ["18"],
kouz: [""],
kow: [""],
kp: [""],
kpaf: [""],
kpb: ["336"], // MGS新
kpd: ["24"],
kpg: [""],
kphd: [""],
kping: ["1"],
kpp: ["h_113"],
kpred: ["", "", "", "", "pred"],
kpsd: ["171"],
kpt: [""],
kpts: [""],
kpvr: [""],
kpzd: ["244"],
kqbd: ["244"],
kqbd: ["244"],
krav: [""],
krd: ["5619"],
kre: ["118"],
kri: ["h_286"], //
krid: [""],
krp: [""],
krs: ["h_1631"], //
krt: [""],
krtv: [""],
krv: ["118"],
kry: [""],
ksb: [""],
ksbe: [""],
ksbt: [""], // 36/h_139 并入 DOKS
ksd: ["24"],
ksfn: ["1"],
ksg: [""],
ksi: [""],
ksid: [""],
ksir: [""],
ksj: [""],
ksk: [""],
kskm: ["h_139"],
ksm: [""],
ksn: [""],
ksrg: [""],
kss: ["326"], // MGS新
kssis: ["", "", "", "", "ssis"],
kst: [""],
kszs: ["57"],
kt: [""],
ktd: ["47"],
ktds: ["h_094"],
ktdv: ["50"],
ktdvr: ["50", "", "_sm_s", "r"],
ktdvsp: ["50"],
kte: ["23", "", "_sm_s"],
ktek: ["", "", "", "", "tek"],
ktf: ["h_1074"],
ktgr: ["h_157"],
kth: [""],
ktif: ["201"], // mgs新
ktr: ["h_094"],
ktsd: [""],
ktwr: ["h_445"],
kub: [""],
kubd: [""],
kud: ["h_1389"], // h_1389+
kuf: ["1"],
kufd: ["244"],
kuku: ["h_086"],
kum: ["118"],
kumd: ["15"], // 15+ /
kumo: [""],
kur: ["1"],
kura: [""],
kurod: [""],
kus: ["1"],
kuse: ["1"],
kusl: ["031"], // mgs新
kusp: [""],
kusr: ["57"],
kusu: ["n_863"],
kut: [""],
kuud: ["h_086"],
kvd: [""],
kvdd: ["244"],
kvod: [""],
kvs: [""],
kvr: ["","","","","1dandy8kvr"],
kw: [""],
kwdi: ["24"],
kwnd: [""],
kwpo: ["1"],
ky: ["h_186"],
kybd: [""],
kyd: [""],
kyhd: [""],
kyk: ["118"],
kym: [""],
kyo: ["005"], // mgs新
kyod: [""],
kyoj: ["33"],
kyom: [""],
kyon: ["h_128"],
kys: ["33"],
kyu: ["118"],
kyuu: ["33"],
kyun: ["118"],
kyw: [""],
kyz: [""],
kzd: ["118"],
kzki: ["h_445"],
kzw: [""],
l: [""],
la: [""],
labs: ["h_231"],
lac: [""],
laco: ["h_231"],
lad: ["24"],
lads: ["h_252"],
ladya: ["1"],
ladyl: ["1"],
lafe: ["h_231"],
lah: ["118"],
laha: ["031"], // mgs新
laim: [""], // 首/h_231 并入 XVSR
laj: ["031"],
laka: ["h_231"],
lalc: ["36"],
lama: ["127"], // mgs新
lamf: [""],
land: ["h_086", "", "_sm_w"],
landl: [""],
landx: [""],
lank: ["h_231"],
laon: ["h_231"],
lap: ["118"],
lars: ["h_231"],
lasa: ["h_231"],
lase: ["h_231"],
lata: ["h_231"],
lb: ["n_1315"],
lbd: [""],
lbdd: ["n_1515"],
lbh: ["13", "", "_sm_s"],
lbj: ["1"],
lbs: ["h_113"],
lbsd: [""],
lby: ["h_1542"],
lbz: [""],
lc: ["h_921"],
lcdv: ["n_691"],
lco: ["126"],
lcsd: ["065"], // mgs新
ld: ["n_1428"],
ldd: ["24"],
ldjj: ["031"], // mgs新
ldk: [""],
ldm: ["143"],
ldnx: [""],
le: ["23", "", "", "d"],
lea: ["118"],
leb: [""],
lec: [""],
leg: ["005"], // MGS新
leh: [""],
lem: ["118"],
leme: [""],
leovr: [""],
lep: [""],
lepr: [""],
les: [""], // h_606/497 并入ZEX
lesb: [""],
lesd: ["483"],
lesj: ["031"], // mgs新
lesl: ["031"], // mgs新
lesm: [""],
lex: [""],
leyo: [""],
lez: [""],
lezm: [""],
lfa: [""],
lffd: [""],
lflj: ["031"], // mgs新
lfr: ["h_405"],
lfrd: [""],
lgd: ["24"],
lgjdv: ["48"],
lhbb: [""],
lhbr: [""],
lhbs: [""],
lhby: [""],
lhd: ["062"], // mgs新
lhjf: ["031"], // mgs新
lhpt: [""],
lhtd: ["171"],
lhtg: [""],
lia: ["77"],
licn: ["h_491"],
lid: ["24"],
lihd: ["104"],
limd: [""],
lime: ["118"],
line: [""],
lip: [""],
lisu: ["h_086"],
livd: [""],
livdsale: [""],
live: [""],
lizd: ["104"],
ljd: [""], // 13/24 并入 ISD
ljpp: [""],
ljsk: ["h_491"],
lkb: [""],
lkd: ["24"],
lkh: ["421"],
lks: [""],
lld: ["126"],
lljw: ["031"], // MGS新
lll: [""],
llo: ["118"],
llr: ["118"],
lls: [""],
llwk: [""],
llyd: [""],
lm: [""],
lmbj: [""],
lmbo: [""],
lmc: ["h_186"],
lmd: [""],
lmh: [""],
lmhg: [""],
lmhh: [""],
lmhl: [""],
lml: [""],
lmn: [""],
lmp: [""],
lmpd: ["h_086"],
lmpi: ["298"], // mgs新
lnp: ["118"],
lns: ["118"],
lod: ["24"],
lodo: ["n_650"],
loex: ["h_047"],
log: ["535"], // MGS新
lokm: ["h_047"],
lol: ["12"], //
lomd: ["15"],
lon: ["h_1033"],
long: ["118"],
loo: ["118"],
loota: ["5433"],
lop: ["h_113"],
lost: ["326"], // MGS新
lov: ["h_001"],
love: ["h_491"], // alove此番好系列 要去除前面的a
lp: ["h_113"],
lpt: ["118"],
lrgjv: ["48"],
lsc: ["n_1072"],
lsd: ["24"],
lsht: ["1"],
lsp: ["1"],
lsse: ["031"], // mgs新
lsz: ["1"],
luk: ["28"],
lune: ["h_086"],
lunex: [""],
lusd: [""],
luxu: ["259"], // MGS新
lv: [""],
lvc: [""],
lvd: [""],
lvid: [""],
lvmfc: [""],
lvmfcs: [""],
lvo: [""],
lvs: ["33"],
lvsc: ["h_1770"],
lvsd: [""],
lvsimm: [""],
lvt: ["118"],
lvyd: [""],
lw: [""],
lwsd: [""],
lxar: [""],
lxje: [""],
lxmr: [""],
lxp: ["h_1697"],
lxtg: [""],
lxv: ["118"],
lxvs: ["118"],
lyc: [""],
lyo: [""],
lyr: [""],
lzd: [""],
lzjs: [""],
lzln: [""],
lztd: ["", "", "_dm_s"], // 同tk前缀
lztf: [""],
ma: ["h_1598"],
mab: ["h_1293"],
mabd: [""],
mabe: ["h_405"],
mabo: [""],
mabp: ["h_687"],
mabs: ["h_1133"],
mabu: ["h_395"],
maby: ["h_395"],
mac: ["143"],
macb: ["h_687"],
macr: ["118"],
mad: ["h_286"],
mada: ["84"],
madr: ["", "", "", "", "h_286mad"],
maed: [""],
maen: [""],
maf: ["h_021"],
mafg: ["h_395"],
mag: [""],
mag: ["719"], // MGS新
maguro: ["h_455"],
mah: ["28"],
mahh: ["h_395"],
mahi: [""],
mahv: ["h_395"],
maik: [""],
maim: ["h_395"],
maip: ["h_395"],
maj: ["h_606"],
makn: ["h_395"],
mako: ["h_395"],
makt: ["h_1133"],
mama: ["49"],
mame: ["h_1133"],
man: ["118"],
mana: ["052"],
manc: ["h_261"],
mand: ["h_128"],
mane: ["1"],
manl: [""],
manq: ["h_812"],
manz: ["h_395"],
maps: ["h_395"],
mar: ["n_709"],
mara: ["h_237"],
maraa: ["n_709"],
mari: [""],
markt: ["n_709"],
marm: ["h_395"],
maro: ["h_113"],
mart: ["h_405"],
maru: [""],
mas: ["118"],
masa: ["h_1133"],
masd: ["1"],
masi: ["h_1664"],
masj: ["h_395"],
mask: ["h_395"],
masn: [""],
masrs: ["57"],
mast: ["h_1523"],
masxd: ["h_086"],
masxx: [""],
mate: ["203"],
matr: ["h_395"],
matu: ["h_086"],
mawa: ["h_086"],
max: ["h_286"],
maxa: ["60"],
maxd: [""],
maxvrg: [""],
mays: ["h_395"],
mazfx: ["h_1719"],
mazj: ["031"], // mgs新
mazl: [""],
mazo: ["h_1472"],
mb: [""],
mbc: [""],
mbd: ["118"],
mbdd: ["n_707"],
mbg: ["h_1293"],
mbhp: ["h_618"],
mbjn: ["33"],
mbm: ["h_460"],
mbmh: ["h_460"],
mbmp: ["h_460"],
mbms: ["h_460"],
mbox: [""],
mbp: [""],
mbr: ["", "", "", "", "n_709mbraa"],
mbraa: ["n_709"],
mbrab: ["n_709"], // n_709+ /
mbral: ["n_709"],
mbrap: [""], // n_709/406 并入NASH
mbraq: ["h_816"], // h_816+ 无
mbraqs: [""],
mbrau: ["n_709"],
mbraw: ["n_709"],
mbraz: ["n_709"], // n_709+3 /
mbrba: ["5050"], // 5050+5
mbrbb: [""],
mbrbc: ["n_709"],
mbrbd: ["n_709"],
mbrbf: ["n_709"], // 1种 n_709开头+3位数
mbrbg: ["n_709"],
mbrbh: ["406"],
mbrbk: ["n_709"],
mbrbl: ["406"],
mbrbm: ["5141"], // 5141+5
mbrbn: ["n_709"],
mbrbs: ["n_709"],
mbrbt: ["n_709"],
mbrk: ["h_1472"],
mbst: ["099"], // mgs新
mbt: ["143"],
mbw: ["13"],
mcas: ["", "", "_sm_s", "r", "h_419mcar"],
mcdl: ["h_1588"],
mchan: ["57"],
mcle: [""],
mcmq: ["h_812"],
mcsd: [""],
mcsf: [""],
mcso: ["h_1133"],
mcsr: ["57"], //
mcsx: ["57"], // 57+5 /
mct: ["118"],
mcy: [""],
md: [""],
mda: [""],
mdb: [""], // 84/61/61 ai_ 并入MDS
mdbk: [""], //
mdbm: ["57"], // 57+5 /
mdbx: [""],
mdc: ["118"],
mdd: [""],
mded: [""],
mdfd: [""],
mdgd: [""],
mdh: [""],
mdhd: ["104"],
mdid: [""],
mdjd: [""],
mdjy: ["h_618"],
mdk: [""],
mdks: [""],
mdl: [""],
mdld: [""],
mdm: ["075"], // mgs新
mdmb: [""],
mdmd: [""],
mdmt: ["5448"],
mdo: [""],
mdod: [""],
mdom: [""],
mdpa: ["36", "", "", "r"],
mdss: [""], // 15/首 并入YMDD
mdst: ["h_189"],
mdv: ["h_205"],
mdvd: [""],
mdvhj: ["48"], // 2种 48开头+3/5位数
mdwd: [""],
mdx: [""],
mdxd: [""],
mdyn: [""],
mdz: [""],
mear: ["h_1133"], // h_1133+5
mebo: [""],
meel: ["203"], // mgs新
mega: ["h_173"],
mei: ["118"],
mek: ["118"], // 1种 118开头+3位数
meki: ["h_1133"], // 1种 h_1133开头+3位数
mel: ["118"],
meme: ["", "", "_sm_s"],
men: [""],
meod: [""],
merd: ["h_491"],
mers: ["h_1133"],
mesb: [""],
mesh: ["781"], // MGS新
mess: ["18"],
mesu: ["h_086"], //
mesux: ["h_086"], // h_086+
met: ["118"],
metd: [""],
mete: ["n_1349"],
mevd: [""],
meve: ["h_618"],
mf: ["n_1428"],
mfc: ["435"], // MGS新
mfcd: ["h_1711"],
mfco: ["h_1711"],
mfcs: ["435"], // MGS新
mfct: ["h_1711"],
mfcw: ["435"], // mgs新
mfo: ["1"],
mfod: ["1"],
mfpd: [""],
mft: ["1"],
mfth: ["1"],
mg: ["h_921"],
mgbs: [""],
mgcl: [""], // h_1271/h_445 并入EKDV
mgdn: ["h_254"],
mgdv: [""], // 49/首 并入EKDV
mgen: [""], // h_254/h_792 并入AVOP
mgex: [""],
mgh: [""],
mghh: [""],
mghr: [""],
mgj: ["23", "", "_sm_s", "d"],
mgjh: [""],
mgk: [""],
mgkd: [""],
mgks: [""],
mgld: ["h_687"],
mgmd: [""],
mgmh: [""],
mgnl: ["1"],
mgo: ["28"],
mgold: ["1"],
mgp: ["118"],
mgq: ["13"],
mgr: [""],
mgr: ["051"], // MGS新
mgs: [""],
mgsd: ["171", "", "_sm_s"],
mgt: ["118"],
mgtd: ["h_1711"],
mgvr: [""],
mh: ["111"],
mhar: ["h_1160"],
mhd: ["111"],
mhdd: [""],
mhip: ["h_618"],
mhk: [""],
mhr: [""],
mhso: ["h_618"],
mht: [""],
mhv: ["118"],
mhy: [""],
mi: [""],
mia: ["h_113"],
miav: ["84"], // 84+
mibod: [""],
mibt: ["h_618"],
mic: [""],
mica: ["h_1346"],
mid: [""],
midi: ["53"],
mie: ["118"],
mig: ["h_1533"], // h_1533+
miha: ["1"],
miid: [""],
mijps: ["152"],
mik: ["h_405"],
mika: [""],
mikr: ["1"],
miks: ["n_707"],
mild: ["84", "", "_sm_w"], // 84 /
milf: ["h_189"], // h_189+5
milh: ["h_1240"], // h_1240+ /
milk: ["h_1240"], //
milkvr: [""],
milp: [""],
milv: ["84", "", "", "ai"],
mimi: [""],
minr: ["h_618"],
mint: ["", "", "_dm_s"],
minx: [""],
mipan: [""],
miqd: [""],
mira: ["118"],
mis: [""],
mise: ["", "", "_sm_s"],
misr: ["022"], // mgs新
mist: ["1"],
mit: ["118"],
mitd: ["118"],
miu: [""],
mium: ["300"], // MGS新
mivr: ["h_1145"], // h_1145+5 有mgs资源(都是x) 暂用dmm
mivrs: ["h_1145"],
mix: ["12"], // 12+3
mixd: ["148"],
mixmix: [""],
miya: ["118"],
mjd: ["13"],
mje: [""],
mjex: [""],
mjfd: ["h_188"],
mjp: ["540"],
mjpk: ["h_618"],
mjpt: ["h_618"],
mjy: [""],
mk: ["n_1315"],
mkb: [""],
mkbs: ["h_445"],
mkcd: [""],
mkdd: [""],
mkds: ["", "", "", "a"],
mkdv: [""],
mkg: [""],
mkk: [""],
mkmp: [""], // 首字母 或 84
mkop: ["h_618"],
mks: ["h_618"],
mksd: [""],
mksp: ["h_618"],
mky: [""],
mkz: ["h_618"],
mla: ["476"], // MGS新
mld: ["143"],
mldo: ["h_833"],
mles: ["h_618"],
mlh: [""],
mlid: [""],
mlkvr: [""],
mlml: [""],
mlob: ["5050"],
mlobb: [""],
mlp: ["h_848"],
mls: ["118"],
mlw: ["h_606"],
mlwt: [""],
mm: [""],
mmat: ["18"],
mmbe: [""],
mmcpvr: [""],
mmd: ["12"],
mmdd: [""],
mmdv: [""],
mmdx: [""],
mme: ["h_606"],
mmf: ["28"],
mmfk: [""],
mmfuku: [""],
mmg: ["h_606"],
mmgb: [""],
mmgh: ["1"],
mmgm: ["h_618"],
mmif: ["h_618"],
mmkd: [""],
mmktb: ["5448"],
mmnt: ["84"], // 84/首 并入 MDS
mmo: ["15"],
mmr: [""],
mmraa: ["n_709"],
mmrab: ["n_709"],
mmral: ["n_709"],
mmrau: ["5670"],
mmrav: ["n_709"],
mmraz: ["n_709"],
mmrbd: ["n_709"],
mmrbf: ["406"],
mmy: ["118"],
mmzd: ["5226"],
mn: ["h_213"],
mndo: ["h_1160"],
mnds: ["h_618"],
mnfc: ["h_173"],
mnh: ["23"],
mnim: ["h_618"],
mnimz: ["h_618"],
mnri: ["h_618"], // h_618*3
mnrs: ["h_618"],
mnsd: ["15"],
mnsj: ["h_445"],
mnsk: ["h_618"],
mntr: ["1"],
mnyd: ["", "", "_dm_s"],
mobbv: ["077"], // mgs新
mobsnd: ["h_108"],
moc: ["h_924"], // h_924+ /
mod: ["504"],
moep: ["004"], // MGS新
mogi: ["1"],
moko: ["h_254"], //
mol: ["h_1563"],
mold: ["13"],
molu: ["h_086"],
mom: ["143"],
momj: ["18"],
mona: ["383"], // mgs新
mone: ["h_1133"],
monl: ["031"], // MGS新
moon: [""], // 奇怪的番号系列 lulu 对应 MOON-002 https://cc3001.dmm.com/litevideo/freepv/l/lul/lulu00095/lulu00095_sm_w.mp4
mop: ["118"],
mopa: [""], // h_806/首字母 并入 XVSR
mopb: [""], // h_806/首字母 并入 XVSR
mopc: ["h_806"], // h_806/首字母 并入 XVSR
mopf: ["h_806"],
mor: ["n_1064"],
mosi: ["h_086"],
moso: ["h_128"],
mot: ["h_796"], // h_796+ /
moto: ["h_924"],
mox: ["h_924"],
mpoo: ["h_618"],
mqsm: ["298"], // mgs新
mqxt: ["517"], // mgs新
mrl: ["23"],
mrq: ["118"],
mrt: ["118"],
msaj: ["", "", "_dmb_s"],
msan: ["h_1133"],
msbd: ["15"],
msf: [""], // 并入 OCH
msfh: ["1"],
msfhbd: ["1"], // 1+ 去掉BD /
msh: ["077"],
msjo: ["33"],
msjr: [""], // h_1160/h_086并入MEKO
msk: ["5"],
mskg: ["1"],
msmd: ["13"],
mspk: ["h_491"],
mspt: ["n_1487"],
mst: ["h_771"],
mstg: ["18"],
msz: ["h_173"],
mta: ["118"],
mtabs: ["1"],
mtall: ["1"],
mtd: ["24"],
mtes: ["h_1300"], //
mtg: ["118"],
mtk: ["23"],
mtm: ["118"],
mtnsero: [""], // SERO系列
mtr: ["h_970"],
mtt: ["118"],
mumo: ["h_445"],
mvs: ["118"],
mvt: ["118"],
mw: ["n_1429"],
mwbb: ["h_618"],
mwkd: [""], // 5448/n_650 并入 MCMA
mxbd: ["h_068"], // h_068+3 /
mxbv: ["h_068"],
mxcs: ["h_068"],
mxd: ["24"],
mxdlp: ["071"], // MGS新
mxds: ["", "", "", "", "h_068mx3ds"],
mxgs: ["h_068"], //
mxm: ["h_275"],
mxnb: ["h_068", "", "_sm_s"],
mxp: [""], // h_1104/h_275 并入MCMA
mxpc: ["h_068", "", "_sm_s"],
mxsps: ["h_068"], // h_068+
mxt: ["1"],
my: ["292"], // MGS新
mymn: ["h_618"],
mys: ["h_618"],
mzd: ["24"],
mzk: ["h_1294"],
mzm: ["118"],
mzq: ["118"],
mzro: ["h_618"],
nabe: ["5050"],
nabu: ["h_1133"],
nacr: ["h_237"], //
nacs: ["h_771"],
nacx: ["h_237"], //
nacz: ["h_771"],
nad: ["24"],
naen: ["493"], // MGS新
nafi: ["h_771"], //
nafz: ["h_771"],
nag: ["1"],
naga: ["h_1566"], // h_1566+5位数
nagae: [""], // MSIN
nage: ["1", "", "_sm_s"],
najd: ["", "", "_sm_s"],
nam: ["118"],
nama: ["332"], // MGS新
nambu: ["59", "", "_sm_s"],
namd: ["15", "", "_sm_s"],
namh: ["1"],
namhs: ["1"],
naac: ["n_1541"],
nanp: [""], // h_1133/84 并入 MCMA
napk: ["h_491"],
nass: ["h_067"],
naze: ["h_086"],
nbb: ["33"],
nbe: ["15"],
nbsd: ["171", "", "_sm_s"],
nbss: ["h_114"],
ncac: ["h_1275"],
ncd: ["h_496"],
ncg: ["33"],
ncgb: ["33"],
nchj: ["18"],
ncyy: ["18"],
ndo: ["h_1292"],
ndr: ["118", "", "_sm_s"],
ndx: ["118"],
nebb: ["5642"],
nebo: ["h_491"], // h_491+3
ned: ["24"],
nego: ["h_086"],
neko: ["h_496", "", "_sm_w"],
nem: ["143"],
neo: ["433"], //
neob: ["41"],
neos: ["h_491"], // h_491+ /
net: ["118"],
next: ["h_491"],
ney: ["h_1297"],
nfdm: ["h_188"],
nfxv: ["h_105", "", "_sm_s"],
ngd: ["1", "", "_sm_s"],
ngea: ["1"],
ngks: ["1", "", "_sm_s"],
ngm: ["143"],
ngss: ["1"],
nhd: [""], // 24/首字母 并入 ISD
nhdt: ["1", "", "_sm_s"],
nhdta: ["1"],
nhdtb: ["1"],
nhht: ["h_954"],
nhm: ["143", "", "_sm_s"],
nhmsg: ["593"], // MGS新
niji: ["h_1533"],
nijt: ["h_445", "", "_sm_s"],
nikm: ["84"], // 84+3
niku: ["h_455"],
nim: ["33", "", "_sm_s"],
nin: ["12"],
nine: ["h_1133"],
nise: ["263"], // mgs新
nisr: ["h_237"],
niwa: ["h_086"],
njbe: ["583"], // mgs新
njel: ["436", "", "_sm_s"],
njg: ["118", "", "_sm_s"],
njh: ["h_848"],
njjd: ["36", "", "_sm_s"],
njn: ["h_001", "", "_sm_s"],
njp: ["h_848"],
njpd: ["h_1754"],
njpds: [""], // 152/1 并入 XRW
njs: [""], // 483和436 并入 sw
njy: ["436", "", "_sm_s"],
nka: ["118"],
nkh: ["483", "", "_sm_s"],
nkjsero: [""], // SERO系列
nkm: ["118", "", "_sm_s"],
nkmc: ["", "", "_sm_s"],
nkmt: ["h_803"],
nkmtndvaj: ["yr"], // 特例
nknkjdvaj: ["yr"], // 特例
nkrs: ["h_1287"],
nksd: ["171", "", "_sm_s"],
nkt: ["h_1033"],
nktjgdvaj: ["", "", "", "", "yrnktjgdvaj"],
nl: ["h_113"],
nlbd: ["019"], // mgs新
nld: ["24"],
nle: ["h_1592"], // h_1592+3 /
nlf: ["118", "", "_dm_s"],
nly: ["421", "", "_sm_s"],
nmc: ["118"],
nmch: ["383"], // MGS新
nmd: ["24"],
nmh: ["057"], // MGS 规则
nmi: ["118"],
nmin: [""], // 436 483 并入SW
nmk: ["h_897"], // h_897+ 无
nmo: ["143"],
nmp: ["118"],
nmtsero: [""], // SERO系列
nmu: ["", "", "_dm_s"],
nng: ["723"], // mgs独开
nnk: ["h_859"],
nnm: ["057"], // mgs新
nnn: ["080"], // mgs新
nnnc: ["h_491"], // h_491+3
nns: ["533"], // mgs新
nnsd: ["171", "", "_sm_s"],
no: ["h_100", "", "_sm_s"],
noav: ["h_445", "", "_dm_s"],
nod: ["24", "", "_sm_s"],
nof: ["118"],
nog: ["483", "", "_sm_s"],
nogu: ["h_128", "", "_sm_s"],
nol: ["326"], // MGS新
non: ["h_127", "", "_sm_s"],
nop: ["33", "", "_sm_s"],
nopa: ["33"],
nopb: ["33"],
nopc: ["33", "", "_sm_s"],
noru: ["h_086", "", "_sm_s"],
noskn: ["1"],
nosto: ["", "", "_dm_s", "", "n_650tosto"],
now: ["118"],
noz: ["h_086"],
np: ["h_113"],
npd: ["21", "", "_sm_s"],
nph: ["1"],
npp: ["h_1693"],
nps: ["h_021"], // h_021+3/5
npv: ["118"], // 118+ 0-11位118 11之后的-系列 mgs集成
nre: ["118", "", "_sm_s"],
nrkr: ["h_687"],
nrs: ["118"],
ns: ["436"],
nsbb: ["1"], // 1+5 有mgs对应数据
nsd: ["h_001", "", "_sm_s"],
nsgd: ["h_086", "", "_sm_s"],
nsm: ["346"], // MGS新
nsr: ["118", "", "_sm_s"],
nst: ["12", "", "_sm_s"],
nt: ["h_113"],
ntk: ["300"], // MGS新
nto: ["118", "", "_sm_s"],
ntr: ["1"],
ntrl: ["031"], // mgs新
nttr: ["1"],
ntu: ["33"],
ntvf: ["h_1472"],
nu: ["5433"],
nubi: ["h_1112"],
nuka: ["h_086"], // h_086+2~5
nukax: ["h_086"],
nuku: ["041"], // mgs新
numl: ["031"], // mgs新
nure: ["052"], // mgs新
nv: ["h_1118", "", "_dmb_s"],
nvt: ["118"],
nwf: ["3", "", "_sm_s"],
nxg: ["h_1664"], //
nxgs: ["h_1664"], // 1-4为h_254前缀 5开始h_1664前缀
nyh: ["1"],
nzk: ["118"],
oass: ["", "", "_dm_s"],
obal: ["031"], // mgs新
obse: ["h_406", "", "_sm_w"],
obt: ["h_001", "", "_dmb_s"],
oca: ["118"],
och: ["h_1580"], // h_1580+
ocn: ["421"], // MGS新
odfa: ["h_537"], // h_537+ 与前缀 tk 同 并入 mdtm /
odfb: ["h_537"],
odfg: ["h_537"],
odfm: ["h_537"], // h_537+ 与前缀 tk 同 并入 mdtm /
odfp: ["h_537"],
odfr: ["h_537"], // h_537+ 与前缀 tk 同 并入 mdtm /
odfw: ["h_537"],
odvhj: ["48"], // 48+3
odvk: ["", "", "_sm_s"],
oem: ["h_460"],
of: ["n_1428"],
ofav: ["118"],
ofcd: ["15", "", "_sm_s"],
ofku: ["h_254"],
ogk: ["33", "", "_sm_s"],
ogkb: ["33", "", "_sm_s"],
ogpp: ["18"],
ogy: ["n_1353"],
oha: ["118", "", "_sm_s"],
ohd: ["h_376", "", "_sm_s", "sm"],
oho: ["h_093"],
ohp: ["n_707"],
oig: ["33"],
oiza: ["h_254"],
ojk: ["118"],
ojs: ["118"],
okad: ["84"],
okae: ["h_406"],
okan: ["", "", "_sm_s"],
okav: ["84", "", "", "ai"],
okb: ["249"], // MGS新
okc: ["249"], // MGS新
okgd: ["h_1347"], // h_1347+ /
okju: ["84", "", "_sm_s"],
okk: ["249"], // MGS新
oko: ["249"], // MGS新
okp: ["249"], // MGS新
oks: ["249"], // MGS新
oksd: ["065"], // MGS新
okv: ["249"], // MGS新
okx: ["249"], // MGS新
okyh: ["1"],
ol: ["h_113", "", "_sm_s"],
ola: ["h_113", "", "_sm_s"],
old: ["24", "", "_sm_s"],
ols: ["118", "", "_sm_s"],
omama: ["h_706", "", "", "b"],
omeg: ["118"],
omg: ["118"],
omnb: ["326"], // mgs新
omo: ["h_1189"],
omon: ["h_1189"],
omse: ["h_254", "", "_sm_w"],
omt: ["h_1359"], //
omtp: ["h_1359"], //
omu: ["h_1189"], // h_1189+5 /
on: ["h_113"],
onaj: ["031"], // mgs新
onal: ["031"], // mgs新
onam: ["33"],
once: ["118"],
ond: ["118", "", "_sm_s"],
one: ["118", "", "_sm_s"],
oneb: ["118"],
oneg: ["h_794"],
onem: ["118", "", "_sm_s"],
oner: ["118"],
onet: ["118"],
onex: ["h_1674"], // h_1674+ /
onez: ["h_1674"], //
ongp: ["84"],
oni: ["12"],
onk: ["118", "", "_sm_s"],
onna: ["1"],
onrj: ["33"],
ons: ["326"], // mgs新
oob: ["118", "", "_sm_s"],
ooniku: ["h_455", "", "_dm_w"],
oots: ["h_1734"],
opd: ["15", "", "_sm_s"],
opdd: ["104", "", "_sm_w"],
open: [""], // 并入XRW 多种格式
opmd: ["", "", "_sm_s"],
oppl: ["031"],
oppx: ["031"],
opsd: ["", "", "_dm_s"],
ord: ["15", "", "_sm_s"],
ore: ["h_1097"], // h_1097+5
orea: ["84"],
orecs: ["h_1732", "", ""],
oredg: ["230"], // mgs规则
orep: ["230"], // mgs新
oretdp: ["230"], // mgs规则
org: ["h_771"],
ork: ["118", "", "_sm_s"],
osbr: ["404"],
osk: ["118", "", "_sm_s"],
osm: ["118", "", "_sm_s"],
osr: ["118", "", "_sm_s"],
osst: ["h_1450"], // h_1450+ /
otav: ["118"],
otd: ["h_1563"], // mgs新 dmm也有资源 难以兼容
otim: ["393"], // MGS新
otin: ["h_1133"],
otkr: ["18"],
otom: ["052"], // mgs新
ots: ["1", "", "_sm_s"],
oty: ["118"],
ovs: ["483", "", "_sm_s"],
oyaj: ["h_1001"], // h_1001+5
oyj: ["h_1003"],
oyu: ["118", "", "_sm_w"],
oyvd: ["h_004", "", "_sm_s"],
ozrs: ["", "", "_dm_s"],
ozvd: ["h_004", "", "_sm_s"],
p: ["140"],
packd: ["5433"],
pad: ["h_139"],
paf: ["33"],
pafa: ["33"],
pafl: ["33"], // 33+5位数
pafn: ["33"],
pagl: ["5433"],
paioh: ["1"],
paip: ["n_637", "", "_sm_s"],
pais: ["h_1133"],
pak: ["483"], // MGS新
pako: ["h_1133"], //
pakx: ["h_1646"], // h_1646+ /
pale: ["h_491"], // h_491+3
pamp: ["18"],
pan: ["12", "", "_sm_s"],
panp: ["18"],
pans: ["", "", "_sm_s"],
pant: ["", "", "_sm_s"],
papak: ["h_1593"],
pasf: ["h_1454"],
pasm: ["h_1651"], // h_1651+ /
pat: ["118"],
pkta: ["h_1749"],
pb: ["h_113"],
pbb: ["118"],
pbf: ["436"], // 1种 436开头+3位数
pbjd: ["h_109"],
pbpm: ["h_1391"],
pbs: ["118"],
pbt: ["5433", "", "_sm_s"],
pc: ["h_189"], // h_189+ 此系慎入
pcb: ["118"],
pcjp: ["h_1391"],
pck: ["23", "", "_sm_s"],
pclw: ["h_1391"],
pcm: ["5"],
pcwb: ["h_1391"],
pcxw: ["h_1391"],
pcxx: ["h_1391"],
pdc: ["23", "", "_sm_s"],
pdd: ["24"],
pdv: ["53"], // 53+
pear: ["118", "", "_sm_s"],
ped: ["24"],
pega: ["118", "", "_sm_s"],
pel: ["h_001", "", "_sm_s"],
pen: ["118", "", "_sm_s"],
pep: [""], // 并入 GVH
pes: ["h_1664"], //
pess: ["h_1664"], //
pet: ["118"],
pey: ["h_1297"], // h_1297+ /
pfav: ["", "", "_sm_s"],
pfck: ["h_406"], // h_406+ /
pfcl: ["", "", "_sm_s"],
pft: ["1"],
pgod: ["5274", "", "_sm_s"],
phd: ["h_918"], // h_918+
phmx: ["h_1391"],
pho: ["h_918"], // h_918+ 958 并入MDS/
phsg: ["504"], // 504+ /
pia: ["h_254"], // h_254+ /
pibest: ["1"],
pidv: ["", "", "", "", "5581dpidv"],
pih: ["1"],
pin: ["360"], // mgs新
pind: ["n_1187"],
pink: ["h_1391"],
pira: ["118", "", "_sm_s"],
pism: ["n_1533"], // n_1533+3
pist: ["n_1187"],
pitv: ["n_1187"],
piyo: ["1"],
pj: ["h_1094"], // h_1094+ /
pjam: ["h_1604"],
pjl: ["23", "", "_sm_s"],
pjll: ["h_1391"],
pk: ["h_139"], // h_139+ /
pkgf: [""], // pkgf指向pkpd
pkmp: ["84"], // 84+ /
pkos: ["039"], // mgs新
plb: ["", "", "_sm_s"],
plby: ["h_1588"], // h_1588+5 /
plc: ["23", "", "_sm_s"],
pld: ["24", "", "_sm_s"],
plod: ["", "", "_dm_s"],
pltn: ["h_874"], // h_874+ /
plus: ["h_1098"], // h_1098+ /
plvl: ["h_1391"],
plvo: ["h_1391"],
ply: ["h_1557"], // h_1557+ /
plz: ["33", "", "_sm_s"],
plzb: ["33"], // 33+ /
pm: ["h_1526"], // h_1526+ /
pmp: ["5"],
pmpd: ["77", "", "_sm_s"],
pmpds: ["77", "", "_sm_s"],
pms: ["5"],
pna: ["5"],
pnch: ["h_803"], // h_803+ /
pnjm: [""], // h_1094+ h_1614+ 并入 XVSR/
pnus: ["h_445", "", "_dmb_s"],
pnvi: ["148", "", "_sm_s"], // 148+ /
poco: ["h_1133"], // h_1133+ /
pok: ["534"], // MGS新
pogx: ["h_1736"],
pomd: ["h_1718"],
por: ["h_1140"],
pore: ["5"],
porn: ["49"], // 49+ /
pot: ["77"], // 77+ /
potyaj: ["h_455", "", "", "re"], // h_455+ 有加后缀和不加后缀两种/
povr: ["h_1290"], // h_1290+ /
poxc: ["h_1391"],
ppa: ["118", "", "_dm_s"],
ppas: ["18"], // 18+ /
ppb: ["118", "", "_sm_s"],
ppbb: ["h_086", "", "_sm_s"],
ppc: ["118", "", "_sm_s"],
ppd: ["143"], // 143+ 24+ /
ppfd: ["", "", "_dm_s"],
ppft: ["33"],
ppgd: ["n_650", "", "_dm_s"],
ppm: ["h_021", "", "_sm_s"], // h_021+ /
ppmn: ["n_1445"], // n_1445+ /
ppmnb: [""], // h_706+ n_1445+ 并入THNIB /
ppn: ["h_189"],
ppp: ["083"], // MGS新
ppp: ["118"], // PPP-3位数dmm 4位数mgs
pps: ["3"], // 3+ /
ppsf: ["h_1391"],
ppt: ["118"],
pptg: ["n_1445"], // n_1445+ /
pptgb: ["n_1445"], // n_1445+减最后一位 /
ppud: ["", "", "_dm_s"],
ppw: ["004"], // mgs新
ppz: ["563"], // MGS新
prb: ["118"],
prbl: ["", "", "_sm_s", "", "23pbl"],
prbm: ["57"],
prby: ["n_1334"], // n_1334+ /
prbyb: ["h_706"], // h_706+5
prck: ["", "", "_sm_s", "", "23pck"],
prd: ["118"],
prdl: ["", "", "_sm_s", "", "23pdl"],
prdm: ["", "", "_sm_s", "", "23pdm"],
prdvr: ["118"],
pre: ["118", "", "_sm_s"],
prem: ["126"], // mgs新
prgo: ["594"], // mgs新
prgs: ["", "", "_sm_s", "", "23pgs"],
prho: ["", "", "_sm_s", "", "23pho"],
prjl: ["", "", "_sm_s", "", "23pjl"],
prlc: ["", "", "_sm_s", "", "23plc"],
prm: ["h_283", "", "_sm_s"],
prou: ["n_707"], // n_707+ /
prp: ["118"],
prtk: ["23", "", "_sm_s"],
ps: ["h_113"], // h_113+ /
pscl: ["h_1391"],
psd: [""], // 21+ 433+ 并入ISD /
psdb: ["33"], // 33+ /
psdk: ["33"], // 33+ /
psdw: ["h_1391"], // 2种 h_1391+2/5位数
psdx: ["h_1391"],
pshd: ["104", "", "_sm_w"],
psis: ["h_1391"],
pslp: ["h_1391"],
pslw: ["h_1391"],
pssd: ["21"], // 21+ /
pssp: ["h_1391"],
psst: ["h_1450"], // h_1450+ /
pst: ["23"], // 23+ /
psxa: ["h_1391"],
ptag: ["h_1391"],
ptak: ["h_1391"],
ptav: ["", "", "_sm_s"],
ptbe: ["h_406"], // h_406+ /
ptbi: ["h_406", "", "_sm_w"],
ptfp: ["h_1391"],
ptkn: ["", "", "_sm_w"],
ptkx: ["h_1391"],
ptm: ["h_103"], // h_103+ /
ptom: ["h_445", "", "_sm_s"],
ptp: ["042"], // mgs新
ptpfes: [""], // 同 PFES
pts: ["h_021"], // h_021+
ptu: ["h_1727"], // h_1727+3 /
ptyf: ["h_1391"],
ptyg: ["h_1391"],
ptyh: ["h_021"], // h_021+ /
ptyk: ["h_1391"],
punu: ["n_650", "", "_sm_w"],
pupp: ["h_086", "", "_sm_w"],
pur: ["118", "", "_sm_s"],
pure: ["1", "", "_sm_s"],
purin: ["h_496"],
puw: ["h_113"],
pvnl: ["", "", "_sm_s", "", "23pnl"],
pvr: ["118"],
pvt: ["h_897"], // h_897+ 无
pwas: ["h_1391"], // h_1391+2
pwbp: ["h_1391"],
pwd: ["24"],
pwdp: ["h_1391"],
pwfp: ["h_1391"],
pwn: ["057"], // mgs新
pwrx: ["h_1391"],
pxh: ["118"],
pxhm: ["h_1391"],
pxhp: ["h_1391"],
pxlc: ["h_1391"],
pxsp: ["h_1391"],
pxv: ["60", "", "_sm_s"],
pxwr: ["h_1391"],
pxww: ["h_1391"],
pydvr: ["h_1321"], //
pylf: ["h_1391"],
pym: ["h_283"],
pypy: ["n_840"], // n_840+ /
pyu: ["h_1462"], //
pz: ["", "", "_dm_s", "", "tkpz"],
pzd: ["24", "", "_sm_s"], // 24+ /
qass: ["h_089", "", "_sm_s"],
qbd: ["24", "", "_sm_s"],
qdn: ["h_205", "", "_sm_s"],
qha: ["5129", "", "_sm_s", "sm"],
qhg: [""], // 并入 NATR
qhp: ["n_1057", "", "_sm_w"],
qhr: ["13", "", "_sm_s"],
qhs: [""], // 并入 NATR
qhx: [""], // 并入 NATR
qizz: ["h_086"],
qizzx: ["h_086"],
qp: ["h_113", "", "_sm_w"], // h_113+ /
qq: ["13", "", "_dm_s"], // 13+ /
qqbb: ["h_086", "", "_sm_s"],
qu: ["23", "", "_sm_s", "d"],
queen: ["h_687"], // h_687+ /
r18: ["h_093"], // h_093+ /
rac: ["h_001", "", "_sm_s"],
radc: ["18"], // 18+ /
radd: ["18"], // 18+ /
rafe: ["h_406"],
raft: ["h_406"],
ragi: ["4", "", "_sm_s"],
rai: ["433"],
ram: ["436"],
ran: ["12", "", "_sm_s"],
rand: ["15", "", "_sm_s"],
ranjv: ["48"],
raw: ["118"],
rba: ["513", "", "_sm_s"], // 513+ /
rbc: ["h_005", "", "", "ai"],
rbnr: ["021"], // mgs新
rcsp: ["", "", "_sm_s"],
rct: ["1"],
rctbd: ["", "", "", "", "1rct"],
rctd: ["1"], // 1+3
rcts: ["1"],
rd: ["149"], // 1种 1、149开头+5位数
rdd: ["118"], // 118+ /
rddp: ["118"],
rdamd: ["84", "", "", "ai"],
rch: ["326"], // mgs新
rdst: ["h_1392"], // h_1392+ /
rdt: ["118"], // 2种 1、118+3/5位数
rdvhj: ["48"], // 2种 1、48+3/5位数
rdvnj: ["48", "", "_sm_s"], // 48+ /
re: ["151", "", "_sm_s"], // 151+ /
reaad: ["24"],
rebd: ["h_346"], //
rebn: ["h_254"], // h_254+ /
rebr: ["9"], // 9+ /
rebtd: ["2"], // 1种 2开头+5位数
rec: ["118", "", "_sm_s"], // 118+ /
reca: ["172", "", "", "ai"],
red: ["143", "", "_sm_s"], // 143+ /
reecb: ["2"],
reexd: ["24"],
refxd: ["2"],
regod: ["2"],
reigx: ["h_1736"],
reiw: ["383"], // MGS新
reiwdx: ["383"], // MGS新
reiwsp: ["383"], // MGS新
reksd: ["24"],
relsd: ["24"],
remtd: ["24"],
remu: ["", "", "_sm_w", "", "172emu"],
rena: ["h_491"], // h_491+ /
renod: ["24"],
req: ["h_100"], // h_100+ /
reqbd: ["24"],
rere: ["h_086", "", "_sm_s"],
reufd: ["24"], // 24+
revdd: ["24"],
revl: ["031"], // mgs新
rewdi: ["2"], // 2+6
rey: ["118"],
rf: ["", "", "", "", "59hf"],
rff: ["", "", "", "", "59hff"],
rfg: ["433"], // 433+ /
rfks: ["h_1452"], // h_1452+ /
rg: ["dk"], // dk+ /
rgbh: ["", "", "_sm_s"],
rgim: ["", "", "_sm_s"],
rgtv: ["", "", "_sm_s"],
rgyy: ["", "", "_sm_s"],
rhe: ["59"], // 59+ she /
rhav: ["", "", "", "", "h_1472erhav"],
rimn: ["", "", "_sm_s"],
rin: [""], // 118+ 143+ 并入NATR /
ris: ["13", "", "_sm_s"],
rix: ["118"],
rjjd: ["h_086", "", "_sm_s"],
rjk: ["504", "", "_sm_w"], // 504+ /
rjn: ["118", "", "_sm_s"],
rjt: ["", "", "", "", "59hjt"],
rk: ["h_113"], // h_113+ /
rkc: ["59", "", "_sm_s"],
rkd: ["383"], // mgs新
rkm: ["", "", "_sm_s", "", "59hkm"],
rksk: ["", "", "_dm_s"],
rman: ["18"], // 18+ /
rmd: ["61", "", "_sm_w", "ai"], // 61+5 ai
rmdb: ["", "", "_sm_w", "", "61mdb"],
rmds: ["61", "", "", "ai"], // 61+5 ai
rmiad: ["84", "", "", "ai"],
rmild: ["84", "", "", "ai"],
rmo: ["118"],
rmow: ["h_100", "", "_sm_s"], // 并入 OCH /
rmsq: ["h_1133"],
rna: ["h_113"], // h_113+ /
rnb: [""], // 并入OCH /
rnk: ["59"], // hnk /
rns: ["n_707"], // n_707+ /
rnu: ["59"], // 59+ /
roc: ["59"], // misn
rod: ["143"], // 143+ /
rofc: ["e"], // e+
rofv: ["h_1472e"], // h_1472e+
rolic: ["504", "", "_sm_w"],
rokad: ["84", "", "", "ai"],
roomb: [""], // 暂用 room
rop: ["433"], // 433+5 /
ropp: ["5030", "", "_sm_s", "sm"],
rosd: ["h_086", "", "_sm_s"],
rose: ["h_676"], // h_676+ /
rosj: ["031"], // mgs新
rpd: ["143", "", "_sm_w"],
rpp: ["118", "", "_dm_s"],
rre: ["143", "", "_sm_s"],
rro: ["062"], // mgs新
rrr: ["77", "", "_sm_s"],
rrrs: ["77", "", "_sm_s"],
rrz: ["59"], // msin
rsa: ["h_405"], // h_405+ /
rsama: ["h_244"], // h_244+5 ai
rsb: ["33", "", "_sm_w"],
rsbx: ["h_355"], // h_355+ /
rsc: ["59", "", "_sm_s"],
rscpx: ["h_565"], // msin新
rsd: ["24"],
rsdv: ["100", "", "_sm_s"],
rsino: ["h_210", "", "_sm_w"], // h_210+ /
rsm: ["59", "", "_sm_s"],
rss: ["33", "", "_sm_s"],
rt: ["47"], // 47+5 无
rtp: ["118"],
rttk: ["5161"], // 5161+ /
rtvn: ["18"], // 18+ /
ruko: ["h_254"], // h_254+ /
rung: ["h_606"], // h_606+ /
runn: ["h_086", "", "_sm_w"],
rus: ["118"],
rvh: ["13"], // 13+ /
rvo: ["143", "", "_sm_s"],
rvy: ["59", "", "_dm_s"],
rwd: ["24", "", "_sm_w"],
rwrk: ["172", "", "", "ai"],
rxd: ["24", "", "_dm_s"],
ryud: ["h_086", "", "_sm_s"], // h_086+ /
rzm: ["59"], // MSIN
sabe: ["h_261", "", "_dm_s"],
sace: ["1"],
sacz: ["481"], // MGS新
sadt: ["h_254", "", "_sm_w"],
sah: ["h_205"], // h_205+ /
sai: ["118"],
sain: ["h_261", "", "_dm_s"],
sait: ["55"], //
sajk: ["h_261", "", "_dm_s"],
saka: ["h_261"],
sako: ["h_261"],
saku: ["118"],
salo: ["84"],
sama: ["h_244"],
san: ["h_796"], // 2种 h_796+3/5位数 个别有mgs片源 因易混淆 暂不加
sank: ["h_086"],
sans: ["h_1300"],
saq: ["13", "", "_sm_s"],
sass: ["h_261", "", "_dm_s"],
sato: ["h_261", "", "_dm_s"],
savr: ["h_1241"],
saw: ["187", "", "_sm_s"],
sax: ["187", "", "_sm_s"],
sayu: ["h_261", "", "_dm_s"],
sbb: ["83", "", "_sm_s"],
sbci: ["164"],
sbd: ["143", "", "_sm_s"],
sbgk: ["n_650", "", "_sm_s"],
sbhk: ["", "", "_sm_s"],
sbjn: ["", "", "_sm_s"],
sbk: ["h_1126"],
sbkk: ["h_090", "", "_sm_s"],
sbkr: ["h_395", "", "_sm_w"],
sbmo: ["n_1044"],
sbmx: ["60", "", "_sm_w"],
sbn: ["234"], // mgs新
sbnc: ["164", "", "_sm_s"],
sbnr: ["164", "", "", "r"],
sbt: ["436"], // 436+ /
sbtt: ["155"], // mgs新
sbvd: ["n_1155"], // 并入 SW-
scbb: ["1"],
scc: ["83", "", "_sm_s"],
sccc: ["1"],
scdx: ["h_1655"], // h_1655+
scer: ["", "", "_sm_s"],
scg: ["118"],
sch: ["118"],
scne: ["n_1064", "", "_dm_s"],
scnn: ["1"],
scoh: ["362"], // MGS新
scpr: ["h_229", "", "_sm_w"],
scpx: ["84"], //
scr: ["12"], // 12+3
sct: ["", "", "_sm_w"],
scvr: ["h_565"], // VR /
scx: ["118"],
sdab: ["1"],
sdabp: ["1"],
sdam: ["1"],
sdca: ["1", "", "_sm_s"],
sdde: ["1"],
sddl: ["1", "", "_sm_s"],
sddm: ["1", "", "_sm_s"],
sddo: ["1", "", "_sm_s"],
sdds: ["1", "", "_sm_s"],
sden: ["1"],
sdfk: ["1"],
sdgg: ["1"], // 1种 1开头+3位数
sdhs: ["1"],
sdjs: ["1"],
sdl: ["23", "", "_sm_s"],
sdmf: ["1"],
sdmm: ["1"],
sdms: ["1"],
sdmt: ["1"],
sdmu: ["1"],
sdmua: ["1"],
sdnd: ["15", "", "_sm_s"],
sdni: ["1", "", "_sm_s"],
sdnm: ["1"], // 2 种 1、1+3/5位数
sdnt: ["1"],
sdsi: ["1"],
sdss: ["h_089", "", "_sm_s"],
sdth: ["1"],
sdvc: ["1", "", "_sm_s"],
sdvr: ["118"],
sdvs: ["1", "", "_sm_s"],
sdw: ["187", "", "_sm_s"],
sdz: ["1"],
se: ["h_113", "", "_sm_w"],
seed: ["52"], // 52+ /
sehv: ["h_090", "", "_sm_s"],
sei: ["502"], // MGS新
sek: ["118", "", "_sm_w"],
sekm: ["", "", "_sm_s"],
seljv: ["062"], // mgs新
semm: ["h_1422"], // h_1422+ /
sena: ["h_261", "", "_sm_s"],
send: ["15", "", "_sm_s"],
senj: ["031"], // mgs新
senl: ["031"], // mgs新
senn: ["1"],
senz: ["h_086", "", "_sm_w"],
seo: ["td016"], // td016+ /
sepvr: ["h_1285"], // VR
ses: ["057"], // MGS新
sesp: ["h_1153", "", "_sm_s"],
sev: ["181"], // MGS新
seven: ["1"],
sex: ["148"], // mgs新
sexy: ["h_697"], // h_697+ /
sfd: ["24"],
sfk: ["118"],
sflb: ["138", "", "_sm_w"],
sfx: ["187", "", "_sm_s"],
sg: ["49", "", "", "r"],
sga: ["118"], // 118+3位数
sgb: ["", "", "_sm_s"],
sgcr: ["h_068", "", "_sm_s"],
sgcrs: ["h_315"], // 此系列无预告片
sgd: ["24", "", "_sm_w"],
sgdv: ["49", "", "_sm_w"],
sgg: ["h_113"], // 1种 h_113+3位数
sgk: ["483"], // MGS新
sgki: ["1"],
sgkx: ["h_1575"], //
sgkz: ["h_1575"], // h_1575+ /
sgm: ["143"], // 143+5
sgmp: ["h_217", "", "_sm_s"],
sgot: ["h_261", "", "_sm_s"],
sgq: ["13", "", "_dm_s"],
sgsd: ["h_068", "", "_sm_s"],
sgsr: ["57"], //
sgsx: ["57"],
sgt: ["h_848"], // h_848+ /
sgv: ["13"], // 13+ /
shak: ["n_650"], // n_650+ /
she: ["59"], // she 变 rhe
shed: ["104", "", "_sm_s"],
shem: ["h_697"], // h_697+ /
shgl: ["", "", "_sm_w"],
shh: ["1"], // 1种 1+5位数
shi: ["15", "", "_sm_s"],
shib: ["h_646", "", "_dm_s"],
shibp: ["n_1448"], // n_1448+ /
shibpb: ["n_1448"], // n_1448+ 去除最后的b /
shic: ["h_839"], // 1种 h_839+3位数
shig: ["h_261", "", "_sm_s"],
shim: ["18", "", "_sm_s"],
shin: ["422", "", "_sm_s"],
shind: ["h_1560"], //
shj: ["52"], // 52+ /
shl: ["133"], // mgs新
shm: ["h_687"], //
shma: ["", "", "_sm_s"],
shmj: ["581"], // MGS新
shn: ["1"], // 1种 1+5位数 素人 mgs也有对应资源
sho: ["123"], // mgs新
shot: ["h_261"], // h_261+ /
shpdv: ["062"], // mgs新
shrk: ["h_687"], // h_687+ /
shrkv: ["h_687"], // h_687+ /
shs: ["118", "", "_sm_s"],
shsk: ["h_1741"],
shun: ["h_254"], // h_254+ /
shw: ["187", "", "_sm_s"],
shyn: ["1"],
sib: ["", "", "_sm_w"],
sid: ["", "", "_dm_w"],
sih: ["h_205"], // h_205+ /
sihb: ["h_1664"], // h_1664+3
siko: ["126"], // mgs新
silk: ["1"], // 1+5 /
silkbt: ["1"], // 1+5 /
silkc: ["1"], // 1种 1+5位数
silks: ["1"],
silku: ["1"],
sim: ["118"],
simm: ["345"], // MGS新
sin: ["118"],
sip: ["h_1688"],
siror: ["h_1492"], // h_1492+ /
sis: ["12"], // 12+
sit: ["118"],
sitb: ["30"], // 30+ /
siv: ["118"],
sizn: ["h_261", "", "_sm_s"],
sjj: ["h_1292"], // h_1292+ /
sjkj: ["h_445", "", "_sm_w"],
simd: ["345"], // mgs新
sjmn: ["h_445", "", "_sm_s"],
sjok: ["h_086", "", "_sm_s"],
sk: ["h_113"], // h_113+ /
ska: ["118"],
skbc: ["n_1515"], // n_1515+ /
skde: ["434", "", "_sm_w"],
skdv: ["h_179", "", "_sm_w"],
skgc: ["h_1741"],
skj: ["33", "", "_sm_s"],
skjk: ["368"], // MGS新
skkk: ["h_086"],
skm: ["h_606"], // h_606+ /
skmj: ["h_1324"], //
skmjf: ["h_1324"], // h_1324+ /
skms: ["h_1133"], // h_1133+ /
skot: ["235"], // mgs新
sks: ["83", "", "_sm_s"],
sksj: ["", "", "_sm_s"],
sksk: ["118"],
skss: ["h_086"],
skstd: ["h_086", "", "_sm_s"],
skwd: ["24"],
sl: ["h_113"], // h_113+ /
slba: ["187", "", "_sm_s"],
slbb: ["187", "", "_sm_s"],
sld: ["143", "", "_sm_s"],
slg: ["118"],
slk: ["118", "", "_sm_s"],
sln: ["h_113"], // h_113+5
slr: ["h_1539"], // h_1539+5 VR
slro: ["n_1445"], // n_1445+ /
slt: ["n_650", "", "_sm_w"],
slvr: ["366"], // mgs新
slx: ["187", "", "_sm_s"],
sm: ["h_113"], // h_113+ /
smae: ["h_261", "", "_sm_s"],
smb: ["33", "", "_sm_s"],
smd: ["143"], // 143+ /
smdy: ["h_1454"], //
sme: ["83", "", "_sm_s"],
smho: ["h_656"], // h_656= /
smile: ["h_491"], // h_491+ /
smj: ["057"], // mgs新
smkcx: ["h_1719"], // h_1719+ /
sml: ["23", "", "_sm_s"],
smmy: ["15"], // 15+ /
smow: ["h_100", "", "_sm_s"],
smpd: ["104", "", "_sm_w"],
smr: ["534"], // MGS新
smw: ["187", "", "_sm_s"],
sn: ["52"], // 52+ /
sna: ["057"], // mgs新
snad: ["", "", "_dm_s"],
snb: ["390"], // MGS新
snb: ["390"], // mgs新
sncd: ["", "", "_sm_s"],
snd: ["h_205"], // h_205+ /
snfd: ["", "", "_dm_s"],
snk: ["118"],
snkh: ["h_687"], //
snkp: ["h_687"], // h_687+ /
sno: ["h_1540"], // h_1540+ /
snog: ["h_1540"],
snwd: ["", "", "_dmb_s"],
snyd: ["", "", "_dmb_s"],
so: ["h_113"], // h_113+ /
sods: ["1"], // 1+5 /
soh: ["326"], // mgs新
soj: ["031"], // mgs新
soku: ["18"], // 18+ /
solo: ["h_213"], // h_213+ /
some: ["h_261", "", "_sm_s"],
son: ["49"], // 49+ /
sop: ["h_113"], // h_113+ /
sor: ["118"],
sos: ["h_186"], // h_186+ /
soud: ["326"], // mgs新
soul: ["h_086"],
soulx: ["h_086"],
sov: ["13"], // 13+ /
span: ["33"], // 33+ /
spak: [""], // 新系列 仅1 后期观察
spc: ["118", "", "_sm_s"],
spdr: ["n_1154"], // n_1154+ /
spe: ["", "", "_sm_s"],
spee: ["", "", "_sm_w"],
spivr: ["554"], // mgs新
spjk: ["h_286"], // h_286+ /
spl: ["33", "", "_sm_s"],
sply: ["1"],
spm: ["118", "", "_sm_s"],
spnd: ["", "", "_dm_s"],
spo: ["h_113"], // h_113+
sprd: ["18"], // 2种 1、18+3/5位数
spro: ["h_1594"], //
spsa: ["h_173"], // h_173+ /
spse: ["187"], // 187+ /
spye: ["h_1000"], // h_1000+
spz: ["h_254"], //
spzp: ["h_254"], // h_254+ /
sqes: ["144"], // mgs新
sqf: ["057"], // mgs新
sqset: [""], // msin
sqv: ["13"], // 13+ /
sqvr: ["366"], // mgs 新
sr: ["", "", "_dm_s"],
sra: ["83", "", "_sm_s"],
sreal: ["n_1155"], // n_1155+ /
srebnd: ["24"],
srg: ["118", "", "_sm_s"],
srk: ["118", "", "_sm_w"],
srkt: ["5377"], // 5377+ /
srnj: ["050"], // mgs新
srr: ["118", "", "_sm_s"],
srs: ["118"],
srsr: ["196"], // mgs 新
srtd: ["324"], // MGS新
srtj: ["h_1472", "", "_sm_w"],
srttc: ["248"], // mgs 新
srxv: ["60"], // 60+ msin /
srya: ["417"], // MGS新
ss: ["13"], // 13+3
ssgd: ["57", "", "_sm_s"],
ssgk: ["h_445", "", "_sm_s"],
sshn: ["1"], // 1种 1+3位数 /
sshnbd: ["1"], // 1+ 去掉bd /
ssm: ["h_113"], // h_113+ /
ssnd: ["h_205", "", "", "a"],
ssp: ["h_113"], // h_113+ /
sspo: ["h_261", "", "_sm_s"],
ssr: ["h_746"], // h_746+ /
ssrd: ["47"], // msin
sss: ["1", "", "_sm_s"],
sst: ["118", "", "_sm_s"],
ssy: ["h_113", "", "_sm_s."],
stagcn: ["h_1776"],
stanzd: [""], // 此番系列似同 anzd 指向的预览地址混乱 调用msin播放页
stapod: [""], // misn
star: ["1"], // 2 种 1、1开头+3/5位数
starbd: [""], // 1+ 去掉bd 同star /
starg: ["36"], // 36+ /
stars: ["1"], // 2 种 1、1开头+3/5 /
starsbd: ["1"], // 1+ 去掉bd 同stars /
stav: ["118"],
start: ["1"],
stcesd: [""], // 此番系列似同 cesd 指向的预览地址混乱 调用msin播放页
std: ["433"], // 433+ /
ste: ["23", "", "_sm_s"],
stemaz: [""], // 此番系列似同 emaz 指向的预览地址混乱 调用msin播放页
stf: ["h_1726"], // h_1726+
stfj: ["5141"], // 5141+ /
stfr: ["118", "", "_sm_s"],
sthp: ["h_173"], // h_173+ /
stjk: ["h_1663"], //
stjrjb: ["h_1776"],
stkm: ["168"], // mgs新
stko: ["1"], // 1+5位数
stln: ["", "", "_sm_s"], //
stm: ["h_286"], // h_286+ /
stoc: ["h_128", "", "_dm_s"],
stpp: ["", "", "_sm_s"],
stsg: ["h_113"], // h_113+ /
stsk: ["h_1605"], //
stss: ["h_113"], // h_113+ /
sttcd: [""], // MSIN
stvf: ["h_1472"],
stvhj: ["48"], // 48+ /
styn: ["118"],
suam: ["h_254", "", "_sm_w"],
sub: ["118"],
suda: ["h_237"], // h_237+
sufu: ["h_261", "", "_sm_s"],
sugad: ["h_086", "", "_sm_s"],
suk: ["33", "", "_sm_s"],
suke: [""], // h_1711/h_1760 并入ADK
sukm: ["n_650", "", "_sm_w"],
sun: ["1"], // 1+3位数
suns: ["h_213"], // h_213+3位数
sunset: ["1"],
supa: ["h_244"], //
sups: ["h_150", "", "_sm_s"],
suss: ["h_237"], // h_237+ /
suwk: ["1"],
svbd: ["n_709"], // n_709+ 特殊番号 AA /
svbgr: ["1"],
svcao: ["112"], // mgs新
svd: ["24"],
svdvd: ["1"],
svf: [""], // mgs 新
svgal: ["1"],
svmgm: ["1"],
svn: ["h_1294"], //
svnnp: ["1"],
svoks: ["1"],
svomn: ["1"],
svre: ["112"], // mgs新
svsha: ["1"],
svsha: ["112"], // MGS新
svv: ["118", "", "_sm_s"],
svvrt: ["1"], // 2种 1开头+3/5位数
sxar: ["5433"], // 5433+3
sxbd: ["", "", "_dm_s"],
sxma: ["h_1133"],
sxvd: ["", "", "_dm_s"],
sy: ["h_113"], //
sys: ["332"], // mgsx新
sybi: ["1"],
syd: ["", "", "_sm_w"],
syk: ["h_113"], // h_113+5
syo: ["h_405", "", "_sm_w"],
syun: ["148", "", "_sm_s"],
sze: ["33", "", "_sm_s"],
szks: ["18"], // 18+ /
szm: ["171"], // 171+ /
szr: ["118"],
t28: ["55"],
t38: ["55"],
t: ["55"], // 55+ /
tact: ["n_840"], // n_840+ /
tabf: ["", "", "", "", "118abf"],
tad: ["h_918"], // h_918+ /
tag: ["118", "", "_sm_s"],
tai: ["118"],
tak: ["h_286"], // h_286+ /
taked: ["h_086", "", "_sm_s"],
tama: ["h_254"], // h_254+ /
tamas: ["h_254"], // h_254+ /
tamm: ["h_771"],
tamo: ["h_771"],
tamz: ["h_771"],
tan: ["126", "", "_sm_s"],
tank: ["h_086"],
tap: ["118"],
tara: ["h_086", "", "_sm_s"],
tard: ["18"], // 18+ /
tatb: ["h_491"], // h_491+ /
tb: ["h_1231"], // h_1231+ /
tbak: ["h_254"], // h_254+ /
tbb: ["h_173"], // h_173+ /
tbd: ["12"], // 12+ /
tbkr: ["h_275"],
tbl: ["118"],
tbtb: ["49"], // 49+ /
tbw: ["h_173"], // h_173+2 /
tcm: ["5"],
tdan: ["h_1133"],
tdas: ["h_275"],
tdbc: ["h_275"],
tdbr: ["h_275"],
tdbt: ["h_275", "", "_sm_s"],
tdco: ["h_275"],
tdd: ["h_275"],
tder: ["h_1133"],
tdgs: ["h_275", "", "_sm_s"],
tdil: ["h_275", "", "_sm_s"],
tdjk: ["h_275", "", "_sm_s"],
tdjm: ["h_275", "", "_sm_s"],
tdmj: ["h_275", "", "_sm_s"],
tdmn: ["h_491"], // h_491+3
tdr: ["497"], // 497+ /
tds: ["118", "", "_sm_s"],
tdsb: ["h_275", "", "_sm_s"],
tdss: ["h_275"],
tdsu: ["h_139"], // h_139+ /
tdt: ["118", "", "_sm_w"],
tdtc: ["h_275", "", "_sm_s"],
tdtd: ["171", "", "_sm_s"],
te: ["h_880"], // h_880+ /
tejo: ["h_128", "", "_dm_s"],
teko: ["h_128", "", "_sm_s"],
tem: ["118"],
tenc: ["1"],
teng: ["h_1133"], // h_1133+ /
tenh: ["h_086"],
tenk: ["h_445", "", "_sm_s"],
tenn: ["h_491"], // h_491+3
tenv: ["h_1542"], // h_1542+ /
tenx: ["h_1542"], // h_1542+ /
tenz: ["h_254"], // h_254+ /
ter: ["23", "", "_sm_s", "d"],
tera: ["18"], // 18+ /
tfg: ["497"], // 497+ /
tfh: ["23", "", "_sm_s"],
tfr: ["13"], // 13+ /
tg: ["h_1304"], // h_1304+ /
tgav: ["118"],
tgbe: ["157"], // mgs新
tggp: ["h_173"],
tgni: ["", "", "", "", "118gni"],
tgrx: ["", "", "_dmb_s"],
tgs: ["111"],
tgym: ["h_491"],
th: ["h_1094"],
thal: ["18"],
thdd: ["15", "", "_sm_s"],
thnd: ["84"], // 84+ /
thni: ["n_1445"],
thp: ["h_173"],
thr: ["118", "", "_dm_s"],
ths: ["118"],
thth: ["84"], // 84+5 /
thtp: ["322"], // MGS新
thz: ["h_173"], // h_173+3 /
tia: ["039"], // mgs新
tichk: ["", "", "", "", "h_1681ichk"],
tid: ["24"], // 24+3 /
tifj: ["h_081", "", "_sm_w"],
tig: ["n_863"], // n_863+3 /
tiger: ["h_1540"], // h_1540+5 /
tin: ["h_728"], // h_728+3 /
tit: ["057"], // mgs新
titi: ["h_1136"], // h_1136+5 /
tjk: ["h_1072"], // h_1072+ /
tjt: ["118"],
tk: [""], // tktk /
tkbn: ["h_254", "", "_sm_w"],
tkbr: ["", "", "", "", "h_1712kbr"],
tkbt: ["18", "", "_sm_s"],
tkds: ["", "", "", "a"],
tkdv: ["53"], // 53+ /
tki: ["h_286"], // h_286+3 /
tkj: ["118", "", "_sm_w"],
tkmxbd: ["h_068"], // h_068+ 去掉 tf 同 mxbd /
tko: ["433"], // 433+5 /
tkou: ["h_491"], // h_491+3
tkpr: ["383"], // mgs新
tks: ["118"],
tkt: ["075"], // mgs新
tkw: ["057"], // mgs新
tkws: ["", "", "_sm_w"],
tky: ["118", "", "_dm_s"],
tldc: ["1"],
tldsp: ["1"],
tls: ["118"],
tlso: ["18", "", "_sm_w"],
tmam: ["h_452", "", "_sm_w"],
tmani: ["h_452", "", "_sm_w"],
tmat: ["149", "", "_sm_w"],
tmcy: ["h_452", "", "_sm_s"],
tmdi: ["h_452"],
tmem: ["h_452"],
tmga: ["", "", "_sm_w"],
tmgc: ["", "", "_sm_s"],
tmge: ["", "", "_sm_w"],
tmgi: ["", "", "_sm_s"],
tmgk: ["", "", "_sm_s"],
tmgm: ["", "", "_sm_w"],
tmgt: ["", "", "_sm_w"],
tmgu: ["", "", "_sm_w"],
tmgv: ["h_1350"],
tmgx: ["h_1350"],
tmgy: ["", "", "_sm_s"],
tmhk: ["49"], // 49+5 /
tmhp: ["h_452"], // h_452+3/5位数
tmm: ["h_580"], // h_580+5 /
tmms: ["149", "", "_dm_s"],
tmrd: ["149"], // 149+ TMRD 去掉tm
tms: ["h_580"], // h_580+5 /
tmsb: ["h_452"],
tmvi: ["h_452"], // h_452+3/5位数
tmwd: ["15", "", "_sm_s"],
tmy: ["h_580"], // h_580+5
tmyt: ["149", "", "_sm_s"],
tnd: ["24"], // 24+3 /
tnh: ["h_1126"], // h_1126+2 /
tnik: ["h_1133"],
tnns: ["", "", "_dm_s"],
tnsd: ["171", "", "_sm_w"],
tnspd: ["h_086", "", "_sm_s"],
tnss: ["h_086"], // h_086+5 /
tnt: ["h_1543"], // h_1543+5 /
tntn: ["h_086"], // h_086+3 /
tobd: ["h_128", "", "_sm_s"],
toc: ["", "", "_sm_s"],
tod: ["24", "", "_sm_w"],
toen: ["h_086"], // h_086+2~5
toenx: ["h_086"], // h_086+2~5 无
tog: ["118", "", "_sm_s"],
tok: ["h_086"],
toki: ["h_1347"],
tonv: ["h_1719"],
top: ["h_208", "", "_sm_s"],
tor: ["118"],
torg: ["h_771"],
torx: ["h_771"],
toss: ["18"],
tot: ["422", "", "_sm_s"],
totk: ["h_1133"],
totte: ["1"],
toul: ["031"],// MGS新
tpp: ["h_687"], // h_687+3 /
tpy: ["h_254"], // h_254+5 /
tr: ["h_125"], // h_125+5
trac: ["n_1155"],
tract: ["n_1155"],
trct: ["1"], // 1+5 /
trd: ["118"], // 1种 118开头+3位数
tre: ["118"],
trf: ["h_1072"],
trgl: ["", "", "_sm_s"],
tri: ["118"],
tric: ["18"],
trm: ["h_1072"],
trnd: ["15", "", "_sm_s"],
trubm: ["305"], // MGS 新
truex: ["305"], // MGS新
trumg: ["305"], // MGS新
truwa: ["305"], // MGS新
trvo: ["h_1072"],
trx: ["483", "", "_sm_s"],
ts: ["h_921"], // h_921+3 /
tsb: ["235"], // MGS新
tsbs: ["n_701"], //
tsd: ["111", "", "_dmb_s"],
tsds: ["n_701"], // n_701+5 /
tsdv: ["5664"], // 5664+5 /
tsnd: ["h_491"], // h_491+5 /
tskjk: ["", "", "", "", "h_1681skjk"],
tspx: ["", "", "_dmb_s"],
tsr: ["h_1072"],
tsv: ["118"],
tsx: ["h_405"], // h_405+2 /
tt: ["13", "", "_dm_s"],
ttd: ["24"], // 24+5 /
ttjb: ["", "", "_dm_s"],
ttkk: ["49"], // 49+5 /
ttre: ["235"], // MGS新
ttyu: ["h_254"], // h_254+ /
tue: ["12"], // 12+3
tuma: ["", "", "_dm_s"],
tuk: ["h_1712"],
tus: ["118"],
tuu: ["", "", "_sm_s"],
tvs: ["33", "", "_sm_s"],
twbb: ["155"], // MGS新
twl: ["118", "", "_sm_w"],
two: ["h_1214"], // 1种 h_1214+5位数
txxd: ["36", "", "_sm_s"], // 36+2 /
ty: ["h_113"], // h_113+5 /
tyd: ["24"],
tyk: ["041"], // MGS新
tym: ["118"],
tynd: ["", "", "_dmb_s"],
tyoc: ["62", "", "_sm_s"],
tzz: ["235"], // MGS新
uaau: ["h_086"],
uad: ["118", "", "_sm_s"],
ub: ["h_113", "", "_dmb_s"],
uby: ["118", "", "_sm_s"],
uchd: ["h_086", "", "_sm_s"],
ud: ["125", "", "", "r"], // 125+3 ud变umd MSIN /
udak: ["h_254"], // h_254+3 /
ufd: ["24"], // 24+5 /
ugss: ["18", "", "_dmb_s"],
ugug: ["18", "", "_dmb_s"],
uh: ["61", "", "", "ai"],
uinav: ["h_1472"],
ukdf: ["23"], // 23+5 /
ukh: ["h_1600"], //
uktk: ["", "", "_dmb_s"],
ult: ["118"],
ulx: ["13", "", "_sm_s"],
umad: ["84"], // 84+5 /
umi: ["118"],
umma: ["", "", "_sm_w"],
under: ["", "", "_sm_w"],
undg: ["1"],
unps: ["h_593"], // h_593+5 /
upld: ["18", "", "_sm_w"],
upsf: ["h_150", "", "_dm_s"],
upsm: ["h_150", "", "_dm_s"],
urab: ["", "", "_dmb_s"],
uras: ["", "", "_dmb_s"],
urde: ["h_593"],
urdt: ["h_593"],
urfd: ["118"],
urps: ["h_593"], // h_593+5 /
urpw: ["", "", "_sm_w"],
ursh: ["h_593", "", "_sm_w"],
urvk: ["h_593", "", "_sm_w"],
ury: ["118"],
usbc: ["33"], // 33+5 /
usd: ["118", "", "_sm_s"],
usod: ["15", "", "_sm_s"], // 15+2 /
ussh: ["326"],
uta: ["h_189"], // h_189+5
ute: ["118", "", "_sm_s"],
utm: ["13"], // 13+5 /
utsu: ["279"], // MGS新
uuru: ["h_086", "", "_sm_w"],
uwki: ["583"], // MGS新
ux: ["61", "", "", "ai"],
uzu: ["h_1716"], // h_1716+ /
vahe: ["h_086", "", "_sm_w"],
val: ["12"], // 12+5 /
van: ["h_859"], // h_859+5
vandr: ["42"], // 42+5
var: ["2"],
varm: ["11"], // 11+5
vbh: ["050"], // MGS新
vdd: ["24"], // 2种 24+3/5 /
vdf: ["050"], // MGS新
veas: ["80", "", "_sm_s", "sm"],
ved: ["143", "", "_sm_s"],
veen: ["h_086"], // h_086+5 /
veenx: ["h_086"], // h_086+5 /
vepd: ["80", "", "_sm_s", "sm"],
verus: ["h_697"], // h_697+5 /
very: ["h_491"], // h_491+5 /
ves: ["", "", "_sm_w"],
vex: ["", "", "_sm_w"],
vf: ["49", "", "_sm_s"],
vfdv: ["49", "", "_sm_s"],
vgd: ["h_172"], // h_172+5
vgq: ["13"], // 13+5 /
vgs: ["143"], // 143+5 /
viaa: ["h_086"], // h_086+5 /
vikg: ["h_254"], // h_254+3 /
vio: ["h_189"], // h_189+5 //
vipd: ["62", "", "_sm_s"],
vips: ["h_261", "", "_sm_s"],
vis: ["49", "", "_sm_w"],
vixbm: ["57"], // 57+5 /
vixn: ["h_1588"], // h_1588+5 /
vizd: ["", "", "_dm_s"],
vnds: ["h_1664"], // h_1664+5 /
vntg: ["h_1566", "", "_mhb_s"],
vobb: ["1"], // 1+5 /
voc: ["", "", "_sm_w"],
vol: ["h_205", "", "_sm_s"],
vola: ["536"], // MGS新
vorm: ["h_1127"],
vosf: ["h_1127"], // VR
vosm: ["h_1127"],
votan: ["1"],
vov: ["h_1350"], //
vovs: ["h_1127"], // h_1127+5 VR /
vpc: ["118"],
vrgc: ["1"],
vrkm: ["84"], //
vrnc: ["1"],
vrpn: ["h_898"],
vrtm: ["h_910"], // h_910+ /
vrvr: ["h_910"], // h_910+5 VR /
vrxm: ["077"], // MGS新
vrxs: ["h_898"], // h_898+5 /
vrxss: ["h_898"],
vrxsvr: ["42"], // VR /
vsed: ["h_1060"], // h_1060+5 /
vspa: ["031"], // MGS新
vspd: ["", "", "_dm_s"],
vti: ["h_405"], // h_405+/
vto: ["118"],
vvp: ["118"],
vvpn: ["111", "", "_dm_s"],
vwd: ["111", "", "_dm_s"],
wa: ["h_047"], //
wab: ["3"],
wabb: ["h_1643"], // h_1643+ VR
waka: ["", "", "_sm_s"],
walu: ["h_1564"],
wan: ["h_254", "", "_sm_w"],
wap: ["118", "", "_dm_w"],
war: ["h_1564"],
warc: ["2"],
was: ["h_047"],
wat: ["118"],
wawa: ["1"],
wb: ["h_113", "", "_sm_s", "r"],
wbls: ["33"],
wbmd: ["33"],
wbmk: ["171"],
wbtk: ["171"],
wbw: ["h_848"],
wcd: ["13"],
wcsd: ["13"],
wdc: ["118"],
wdd: ["24"],
wdi: ["2"],
wed: ["28"],
wei: ["118"],
wep: ["118"],
wf: ["3"],
wfr: ["2"],
wfs: ["3"],
wh: ["15"],
whan: ["h_706"],
when: ["h_803"],
whx: ["h_849"],
why: ["118"],
wid: ["15"],
wif: ["005"], // MGS新
wife: ["18"],
wil: ["118"],
will: ["h_086"],
wing: ["57"],
wka: ["118"],
wkd: ["2"],
wks: ["031"], // MGS新
wlt: ["540"],
wn: ["h_113"],
wnes: ["196"], // MGS新
wnxg: ["h_254"],
wny: ["h_848"],
wo: ["1"],
wond: ["h_086"],
world: ["h_227"], //无
wow: ["h_227"], //无
wowo: ["h_227"], //无
wpc: ["118"],
wpe: ["540"],
wplvr: ["2"],
wpom: ["2"],
wps: ["118"],
wpsl: ["h_1639"],
wpsvr: ["2"],
wpw: ["2"],
wrc: ["3"],
wrdj: ["n_1445"],
wrdjb: ["n_1466"],
wrg: ["540"],
wrm: ["504"],
wsd: ["3"],
wse: ["3"],
wshd: ["104"],
wsnw: ["49"],
wsot: ["h_114"],
wsp: ["2"],
wss: ["2"],
wssr: ["57"], // 57+5 mgs对应资源
wstd: ["15"],
wtk: ["1"],
wtm: ["057"], // mgs新
wvr4k: ["h_1290"],
wvr6d: ["h_1337"], // h_1337+ VR /
wvr: ["h_1337"],
wwd: ["143"],
wwf: ["2"],
wwk: ["2"],
wwt: ["2"],
www: ["2"],
wwy: ["2"],
wwz: ["2"],
wza: ["h_205"],
wzen: ["2"],
wzenvr: ["2"],
xdo: ["118"],
xjr: ["118", "", "_sm_s"],
xkk: ["13"],
xmm: ["13"],
xmom: ["h_086"],
xox: ["h_1472"],
xv: ["60"],
xymk: ["h_1133"],
ya: ["h_1651"],
yako: ["h_1133"],
yal: ["h_127"], // YAL有很多带字母后缀的番号,后期再处理
yaria: ["1"],
ymtk: ["h_525"],
yob: ["h_113"],
yoch: ["h_086"],
yrh: ["118"],
ysad: ["540"],
ysn: ["h_127"],
yst: ["540"],
yrk: ["118"],
ytr: ["h_127"],
yurd: ["n_650"],
yzf: ["118"], // 118+5 MGS待独开
zax: ["h_720"],
zeaa: ["h_086"],
zen: ["057"], // mgs新
zmar: ["h_237"],
zmen: ["h_1371"],
zooo: ["h_1515"],
zozo: ["1"],
zrc: ["099"], // mgs新
};
/**
* 左则补零
* @param num
* @param len
* @returns {*}
*/
function format_zero (num, len) {
if (String(num).length > len) return num;
return (Array(len).join(0) + num).slice(-len);
}
class Base {
// 6 站共用的番号分发链(JavBus/JavLibrary 与基准逐行一致;Javdb/javbooks/avmoo 各差 1 行站内特例,由钩子按原优先级插回;sehuatang 头部走标题匹配,用 skipHead 跳过)
// opts: {skipHead, ymymFirstWidth(YMYM-00[1-6] 首个 iframe 宽度,默认 width:99%),
// preVR(MGS 分支之后、VR 检查之前调用,返回 true 即停止), preDefault(VR-code 之后、默认分支之前调用,返回 true 即停止)}
routeVideo (code, title, yulan, opts) {
if (!isTrailerEnabled()) { return; }
opts = opts || {};
let w1 = opts.ymymFirstWidth || 'width:99%';
let handled = false;
if (!opts.skipHead) {
if (code.match(/^[01]\d{5}\-(?:1)?\d{2,3}$/i)) { this.addVideoC(code, yulan); handled = true; } // カリビアンコム|Caribbeancom 加勒比 http://smovie.caribbeancom.com/sample/movies/code/480p.mp4
else if (code.match(/^[a-zA-Z]{1,16}\d{4}$|video_\d{3}$|^[a-zA-Z]{1,16}\d{3}$|^[a-zA-Z]{1,16}\d{5}$|gedo43|gedo58|tcp1001un|^(RED-|S2MBD-|NKD-|RHJ-|bgc_|elm_|HO-|vset_)\d{3}$|PARTY-SEIRA|^(sol_|KG-)\d{2}$|^\d{5}$|atamikb1|AVJI-|False_Advertising_|felicia_vina_|Gia_|Japanese_|Little_Asian_Cocksuckers_|marie_berger_|Teenthailand_|Spankingthemonkey|stacy_Cruz_|Taboo_|Teenthailand9_|Teeny_|Teen_|Tokyo_|tthm2497|Zuzu_$/i)) { this.addVideoN(code, yulan); handled = true; } // 東京熱|Tokyo-Hot|レッドホットコレクション n1234
else if (code.match(/^[01]\d{5}_\d{3}$/)) { this.addVideoY(code, yulan); handled = true; } // 一本道|1pondo http://smovie.1pondo.tv/sample/movies/code/480p.mp4
else if (code.match(/^[01]\d{5}_0[12]$/)) { this.addVideoH(code, yulan); handled = true; } // 天然むすめ|10musume
}
if (!handled) {
if (null != code.match(/legsjapan/i)) { this.addVideolegsjapan(code, yulan); }
else if (null != code.match(/^(MDTM-|TKZUKO-|TKXRW-|TKWANZ-|TKVRTM-|TKURAD-|TKUMSO-|TKTYOD-|TKTMVI-|TKTMHP-|TKTMEM-|TKTMDI-|TKTEAM-|TKTAMM-|TKSORA-|TKSOE-|TKPGD-|TKPID-|TKPLA-|TKREAL-|TKRKI-|TKSERO-|TKSIB-|TKMDB-|TKMDHC-|TKMDJM-|TKMDLJ-|TKMDNH-|TKMDOG-|TKMDPW-|TKMDS-|TKMDSH-|TKMDSR-|TKMDTM-|TKMEYD-|TKMIDD-|TKMIDE-|TKMIGD-|TKMILD-|TKMIMK-|TKMKMP-|TKMRXD-|TKMUKD-|TKMUM-|TKMUML-|TKMUNJ-|TKMVSD-|TKNDRA-|TKODFA-|TKODFM-|TKODFR-|TKDVAJ-|TKDXMG-|TKEBOD-|TKEYAN-|TKGDTM-|TKGENT-|TKGROO-|TKHERY-|TKHND-|TKHNDB-|TKHNDS-|TKHRRB-|TKIDBD-|TKILLE-|TKINCT-|TKIPSD-|TKIPZ-|TKJUC-|TKJUFD-|TKJUX-|TKKAWD-|TKKIRD-|TKKRND-|TKLZTD-|TKBI-|TKBF-|TKAMEB-|TKAPKH-|TKARBB-|TKARM-|TKAWT-|TKBBI-|TKBDMDS-|TKBDMILD-|TKBDPKMP-|TKBLK-|TKBOKD-|TKCEAD-|TKCESD-|TKCHIJ-|TKCND-|TKCRMN-|TKDASD-|TKDBNG-|TKDIGI-|TKIPX-|HYAS-)/i)) { this.addVideoMDTM(code, yulan); }
else if (null != code.match(/^(XVSR-|TASKW-|TASKS-|PNJM-|PMS-|MOPC-|MOPB-|MOPA-|LAIM-|KTF-|KBTV-|KAGH-|JUKU-|JS-)/i)) { this.addVideoXVSR(code, yulan); }
else if (null != code.match(/^(BAMA-|BDSAMA-)/i)) { this.addVideo(code, yulan); }
else if (null != code.match(/^(MDS-|SMT-|SMSD-|SBK-|PHO-|PFCK-|MMNT-|MDB-|MCSF-|JJAA-|EGE-)/i)) { this.addVideoMDS(code, yulan); }
else if (null != code.match(/^ENFD-/i)) { this.addVideoENFD(code, yulan); }
else if (null != code.match(/^(COCH-|TMSG-|TMSA-|TMS-|SKBK-|RNB-|RMOW-|MSF-|DYNC-)/i)) { this.addVideoOCH(code, yulan); }
else if (null != code.match(/^(KING-)/i)) { this.addVideoKING(code, yulan); }
else if (null != code.match(/^(ZEX-|TRK-|LES-|JNOB-|JMRD-|JD-|IMPJO-|IMPJOB-|IMPNO-|IMPNOB-|IMPTO-|IMPTOB-|IMPVE-|IMPVEB-|GSAD-|EART-)/i)) { this.addVideoZEX(code, yulan); }
else if (null != code.match(/^(DVAJ-|KNMD-|JED-|ISCR-|GNAX-|DXMG-)/i)) { this.addVideoDVAJ(code, yulan); }
else if (null != code.match(/(SERO-)/i)) { this.addVideoSERO(code, yulan); }
else if (null != code.match(/^(MCMA-|MCST-|NANP-|MXP-|MWKD-|MERD-|MADA-|HITOUD-|HITOUB-)/i)) { this.addVideoMCMA(code, yulan); }
else if (null != code.match(/^(CMA-)/i)) { this.addVideoCMA(code, yulan); }
else if (null != code.match(/^(MEKO-|MSJR-|KOP-|KONN-|JKRD-|EROC-)/i)) { this.addVideoMEKO(code, yulan); }
else if (null != code.match(/^(XRW-|OPEN-|ONGP-|EC-|NJPDS-|JKB-|HSP-|EMU-)/i)) { this.addVideoXRW(code, yulan); }
else if (null != code.match(/^(THNIB-|PPMNB-|HAHOB-|GYU-|GLT-)/i)) { this.addVideoTHNIB(code, yulan); }
else if (null != code.match(/^(GVH-|PEP-|GST-|GQE-)/i)) { this.addVideoGVH(code, yulan); }
else if (null != code.match(/^(ARSO-|H-|IDOL-)/i)) { this.addVideoARSO(code, yulan); }
else if (null != code.match(/^(DOKS-|TSM-|KSBT-|JKS-|GCRD-|GCAL-|GASW-)/i)) { this.addVideoDOKS(code, yulan); }
else if (null != code.match(/^(YMDD-|TMD-|MDSS-|LOMD-)/i)) { this.addVideoYMDD(code, yulan); }
else if (null != code.match(/^(SW-|VOIC-|TRST-|SBVD-|NMIN-|NJS-|MTD-|MDSM-|KVS-|KNGR-|KANO-|KGAI-|JFIC-|DXNH-|DXMJ-|DXHK-|DXDB-|DXCK-|DXBK-|DXBG-|DXBB-)/i)) { this.addVideoSW(code, yulan); }
else if (null != code.match(/^(SMA-|SMS-)/i)) { this.addVideoSMA(code, yulan); }
else if (null != code.match(/^(AVOP-|MGEN-|CRDD-|FAS-)/i)) { this.addVideoAVOP(code, yulan); }
else if (null != code.match(/^(BAZX-)/i)) { this.addVideoBAZX(code, yulan); }
else if (null != code.match(/^(VSPDS-)/i)) { this.addVideoVSPDS(code, yulan); }
else if (null != code.match(/^(NATR-|TGA-|TEN-|RIN-|RAF-|QHX-|QHS-|QHG-|PPD-|HM-)/i)) { this.addVideoNATR(code, yulan); }
else if (null != code.match(/^(EKDV-|MGDV-|MGCL-)/i)) { this.addVideoEKDV(code, yulan); }
else if (null != code.match(/^(STCV-)/i)) { this.addVideoSTCV(code, yulan); }
else if (null != code.match(/^(NASH-|MBRAP-)/i)) { this.addVideoNASH(code, yulan); }
else if (null != code.match(/^(KTRA-)/i)) { this.addVideoKTRA(code, yulan); }
else if (null != code.match(/^(MOND-)/i)) { this.addVideoMOND(code, yulan); }
else if (null != code.match(/^(ADK-|GIHHD-|FUDOU-|FTDS-|FSG-|FS-|FNK-|SUKE-)/i)) { this.addVideoADK(code, yulan); }
else if (null != code.match(/^(AVGP-)/i)) { this.addVideoAVGP(code, yulan); }
else if (null != code.match(/^(ISD-|SKD-|PSD-|NHD-|LGD-|GKD-)/i)) { this.addVideoISD(code, yulan); }
else if (null != code.match(/^(NPV-)/i)) {
if (null != code.match(/^NPV-(00\d{1}|010|011)$/i)) {
this.addVideo(code, yulan);
} else {
yulan.before("");
}
}
else if (null != code.match(/^(YMYM-)/i)) {
if (null != code.match(/^YMYM-00[1-6]$/i)) {
yulan.before("");
} else {
yulan.before("");
}
}
else if (null != code.match(/^(LVMAAN-|MAAN-|LUXU-|ARA-|MIUM-|SIRO-|GANA-|ADZ-|AECB-|AEPP-|MAGD-|AGIS-|AGIS-|DCV-|(? item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let vSeries = codeArr[0].toLowerCase(); // 番号系列
let videoSeries = codeArr[0].replace("MSFHBD", "MSFH").replace("SSHNBD", "SSHN").replace("STARBD", "STAR").replace("STARSBD", "STARS").replace("TKIDBD", "IDBD").replace("TKMXBD", "MXBD").replace("BDCLB", "CLB").replace("TMRD", "RD").replace("GRABD", "GRACE").replace("PKGF", "PKPD").replace("BUNF", "DUNF").replace("BUNF", "DUNF").toLowerCase(); //grabd更换为grace
let videoNo = format_zero(codeArr[1], 5); //不足5位数补0
let videoOne = codeArr[1].substring(codeArr[1].length - 1); // 数字截取后1位
let videoTwo = codeArr[1].substring(codeArr[1].length - 2); // 数字截取后2位
let videoThree = codeArr[1].substring(codeArr[1].length - 3); // 数字截取后3位
let videoThrBu = format_zero(codeArr[1], 3); // 1位或2位补足3位 区别与直接截取后3位
let videoFour = format_zero(codeArr[1], 4); //不足4位数补0
let videoSix = format_zero(codeArr[1], 6); //不足6位数补0
let videoSerFour = videoSeries.substr(0, 4); // 番号截掉最后1位
let idNum = codeArr[1];
let postfix = "_dm_w"; // 3(分辨率默认定于为 _dmb_w 和 _dm_w,此两项无需在对象列表声明)
let chehz = ""; // 4(车牌后缀)此项定义来源:大部分完整车牌都有固定规律,但还是出现了个别番号系列在完整车牌后还加了个别字母 例如:a_dmb_w.mp4\re_dmb_w.mp4等特殊规则,有人会问为什么不加入postfix中,细心的会发现这个字母还会再上级路径出现,所以特别摘出来定义。后期会逐渐在对象列表添加,删除下面的特例规则。
let cheqz = ""; // 1(车牌前缀)
let ling = ""; // 空值null,避免undefine
let kong = ""; // 空值null,避免undefine
if (fanxi[videoSeries]) {
cheqz = fanxi[videoSeries][0] ? fanxi[videoSeries][0] : cheqz;
chehz = fanxi[videoSeries][3] ? fanxi[videoSeries][3] : chehz;
postfix = fanxi[videoSeries][2] ? fanxi[videoSeries][2] : postfix;
idNum = fanxi[videoSeries][1] ? fanxi[videoSeries][1] + idNum : idNum;
ling = fanxi[videoSeries][1] ? fanxi[videoSeries][1] : kong;
videoSeries = fanxi[videoSeries][4] ? fanxi[videoSeries][4] : fanxi[videoSeries][0] + videoSeries + ling;
if (videoSeries.length == 1) { videoSeries = fanxi[videoSeries][0] + videoSeries + codeArr[1].substr(0, 2); }
else if (videoSeries.length == 2) { videoSeries = fanxi[videoSeries][0] + videoSeries + codeArr[1].substr(0, 1); }
} else {
idNum = "00" + idNum;
}
let videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dmb_w.mp4';
// 【脚本1高清源优先】标准有码片 hhb.mp4,放在所有 source 最前面
let videoUrlHhb = 'https://cc3001.dmm.co.jp/litevideo/freepv/' + codeArr[0].charAt(0) + '/' + codeArr[0].substr(0, 3) + '/' + codeArr[0] + format_zero(codeArr[1], 5) + '/' + codeArr[0] + format_zero(codeArr[1], 5) + 'hhb.mp4';
//let videoUrl666 = ' + avsrc + ';
if (/^HEYZO-/i.test(code)) {
videoUrl = 'https://sample.heyzo.com/contents/3000/' + codeArr[1] + '/heyzo_hd_' + codeArr[1] + '_sample.mp4';
// HEYZO 不属于 DMM hhb 命名体系;把官方样片置于首个 source,避免先等待无效 DMM 地址。
videoUrlHhb = videoUrl;
}
if (code.indexOf('HDG-') !== -1) {
videoUrl = 'https://sample.mgstage.com/sample/shiroutotouch/248' + videoSeries + '/' + codeArr[1] + '/' + vSeries.toUpperCase() + '-' + codeArr[1] + '_sample.mp4'
} // HDG-375 https://sample.mgstage.com/sample/shiroutotouch/248hdg/375/HDG-375_sample.mp4
if (code.indexOf('fc2') !== -1) {
videoUrl = 'https://contents.fc2.com/embed/' + codeArr[1] + '?i=TXpjd01Ua3hORGc9'
} // fc2-ppv-3155426 https://contents.fc2.com/embed/3155426?i=TXpjd01Ua3hORGc9
if (null != code.match(/^(KU-096)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/n/n_7/n_707ku096a/n_707ku096a_dmb_w.mp4' }//KU-系列仅此三个
if (null != code.match(/^(KU-123)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1233ku123/n_1233ku123_dmb_w.mp4' }
if (null != code.match(/^(KU-124)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1233ku124/n_1233ku124_dmb_w.mp4' }
if (null != code.match(/^(MIDE-377)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/a/avo/avop00210/avop00210_dmb_w.mp4' }
if (null != code.match(/^(UMD-021)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/143/143umd21/143umd21_dmb_w.mp4' }
if (null != code.match(/^(UMD-004)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/143/143umd04/143umd04_dmb_w.mp4' }
if (null != code.match(/^(UMD-010)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/143/143umd10/143umd10_dmb_w.mp4' }
if (null != code.match(/^(UMD-011)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/143/143umd11/143umd11_dmb_w.mp4' }
if (null != code.match(/^(UMD-016)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/143/143umd16/143umd16_dmb_w.mp4' }
if (null != code.match(/^(UMD-019)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/143/143umd19/143umd19_dmb_w.mp4' }
if (null != code.match(/^(UMD-021)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/143/143umd21/143umd21_dmb_w.mp4' }
if (null != code.match(/^(UMD-022)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/143/143umd22/143umd22_dmb_w.mp4' }
if (null != code.match(/^(UMD-037)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/143/143umd37/143umd37_dmb_w.mp4' }
if (null != code.match(/^(UMD-055)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/143/143umd55/143umd55_dmb_w.mp4' }
if (null != code.match(/^(CASMANI-022)/i)) { videoUrl = 'https://cc3001.dmm.com/vrsample/h/h_1/h_1116casmani00022/h_1116casmani00022vrlite.mp4' }
if (null != code.match(/^(SHIC-122)/i)) { videoUrl = 'https://sample.mgstage.com/sample/shisyunki/307shic/122/307shic-122_20201203T122300.mp4' }
if (null != code.match(/^(SHIC-260)/i)) { videoUrl = 'https://sample.mgstage.com/sample/shisyunki/307shic/260/307shic-260_20230209T164802.mp4' }
if (null != code.match(/^(MIDE-377)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/a/avo/avop00210/avop00210_dm_w.mp4' }
if (null != code.match(/^(BDSR-016)/i)) { videoUrl = 'https://sample.mgstage.com/sample/bigmorkal/022bdsr/016/BDSR-016.mp4' }
if (null != code.match(/^(BDSR-001)/i)) { videoUrl = 'https://sample.mgstage.com/sample/bigmorkal/022bdsr/001/BDSR-001.mp4' }
if (null != code.match(/^(BLB-001)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/143/143blb01/143blb01_mhb_w.mp4' }
if (null != code.match(/^(NXGS-001)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_254nxgs001/h_254nxgs001_dmb_w.mp4' }
if (null != code.match(/^(NXGS-002)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_254nxgs002/h_254nxgs002_dmb_w.mp4' }
if (null != code.match(/^(NXGS-003)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_254nxgs003/h_254nxgs003_dmb_w.mp4' }
if (null != code.match(/^(NXGS-004)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_254nxgs004/h_254nxgs004_dmb_w.mp4' }
if (null != code.match(/^(ANAB-003)/i)) { videoUrl = 'https://sample.mgstage.com/sample/lahaina/031anab/003/ANAB_003.mp4' }
if (null != code.match(/^(PIBEST-001)/i)) { videoUrl = 'https://sample.mgstage.com/sample/hiyoko/342pibest/001/342pibest-001_20220419T185302.mp4' }
if (null != code.match(/^(PIBEST-002)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/1pi/1pibest00002/1pibest00002_mhb_w.mp4' }
if (null != code.match(/^(ARKSB-003)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/5/505/5050arks00008/5050arks00008_dm_w.mp4' }
if (null != code.match(/^(ARKSB-002)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/n/n_8/n_840arks003/n_840arks003_dm_w.mp4' }
if (null != code.match(/^(ATC-502)/i)) { videoUrl = 'https://sample.mgstage.com/sample/plum/168atc/502/168ATC-502_sample.mp4' }
if (null != code.match(/^(ATHB-36)/i)) { videoUrl = 'https://sample.mgstage.com/sample/giga/235athb/36/ATHB-36.mp4' }
if (null != code.match(/^(ATNF-10)/i)) { videoUrl = 'https://sample.mgstage.com/sample/lahaina/031atnf/10/ATNF-10.mp4' }
if (null != code.match(/^(AWS-006)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_8/h_848aws00006/h_848aws00006_sm_w.mp4' }
if (null != code.match(/^(AWS-002)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/3/33a/33aws002/33aws002_sm_s.mp4' }
if (null != code.match(/^(BALL-002)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_254tga013/h_254tga013_dm_w.mp4' }
if (null != code.match(/^(BDQBD-050)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/2/24b/24bdqbd050/24bdqbd050_dmb_w.mp4' }
if (null != code.match(/^(BDQBD-053)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/2/24q/24qbd053/24qbd053_sm_s.mp4' }
if (null != code.match(/^(BDQBD-052)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/2/24q/24qbd052/24qbd052_sm_s.mp4' }
if (null != code.match(/^(BDSAMA-022)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_244bdsama022/h_244bdsama022_sm_s.mp4' }
if (null != code.match(/^(BDSAMA-023)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_244bdsama023/h_244bdsama023_dm_w.mp4' }
if (null != code.match(/^(BDSAMA-024)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_244bdsama024/h_244bdsama024_dm_w.mp4' }
if (null != code.match(/^(BDSAMA-049)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_244bdsama049/h_244bdsama049_dm_w.mp4' }
if (null != code.match(/^(BDSAMA-051)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_244sama737/h_244sama737_dm_w.mp4' }
if (null != code.match(/^(BDUFD-030)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/2/24u/24ufd030/24ufd030_dm_w.mp4' }
if (null != code.match(/^(BND-015)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/2/24b/24bnd015/24bnd015_sm_s.mp4' }
if (null != code.match(/^(BND-018)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/2/24b/24bnd018/24bnd018_sm_s.mp4' }
if (null != code.match(/^(BPDV-001)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/11d/11dpdv001/11dpdv001_dm_w.mp4' }
if (null != code.match(/^(BROZ-087)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_004ozvd199/h_004ozvd199_sm_w.mp4' }
if (null != code.match(/^(OCH-1000)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1580och01000001/h_1580och01000001_dmb_w.mp4' }
if (null != code.match(/^(OCH-1100)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1580och01100001/h_1580och01100001_dmb_w.mp4' }
if (null != code.match(/^(OCH-900)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1580och00900003/h_1580och00900003_dmb_w.mp4' }
if (null != code.match(/^(BUD-001)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/2/24b/24bud001/24bud001_sm_w.mp4' }
if (null != code.match(/^(BUD-03)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_001bud03/h_001bud03_sm_s.mp4' }
if (null != code.match(/^(BUD-04)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_001bud04/h_001bud04_sm_s.mp4' }
if (null != code.match(/^(BUD-06)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_001bud06/h_001bud06_sm_s.mp4' }
if (null != code.match(/^(BZEX-001)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_021zex069/h_021zex069_dm_w.mp4' }
if (null != code.match(/^(WRDJ-004)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1466wrdj004/n_1466wrdj004_dm_w.mp4' }
if (null != code.match(/^(TONY-002)/i)) { videoUrl = 'https://sample.mgstage.com/sample/digitalark/066tony/002/066TONY-002.mp4' }
if (null != code.match(/^(TONY-003)/i)) { videoUrl = 'https://sample.mgstage.com/sample/digitalark/066tony/003/066TONY-003.mp4' }
if (null != code.match(/^(TMMS-001)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/149/149ams00001/149ams00001_dm_s.mp4' }
if (null != code.match(/^(TK-002)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/tkt/tktk00002/tktk00002_dm_w.mp4' }
if (null != code.match(/^(SVD-002x)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/2/24s/24svd002/24svd002_dm_w.mp4' }
if (null != code.match(/^(SVD-002r)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/2/24s/24svd002/24svd002_dm_w.mp4' }
if (null != code.match(/^(SUPZ-001)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/s/sup/supd00100/supd00100_dm_w.mp4' }
if (null != code.match(/^(STE-011)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/2/23s/23ste11d/23ste11d_sm_s.mp4' }
if (null != code.match(/^(SQSET-001)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/s/sqt/sqte00361/sqte00361_dm_w.mp4' }
if (null != code.match(/^(SQSET-002)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/s/sqt/sqte309/sqte309_dmb_w.mp4' }
if (null != code.match(/^(SQSET-003)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/s/sqt/sqte400/sqte400_dmb_w.mp4' }
if (null != code.match(/^(SQSET-004)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/s/sqt/sqte414/sqte414_sm_w.mp4' }
if (null != code.match(/^(SPRL-001)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_706sprbd00001/h_706sprbd00001_dm_w.mp4' }
if (null != code.match(/^(SPRL-002)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_706sprbd00002/h_706sprbd00002_dm_w.mp4' }
if (null != code.match(/^(SPRL-004)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_706sprbd00004/h_706sprbd00004_dm_w.mp4' }
if (null != code.match(/^(SPRL-005)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_706sprbd00005/h_706sprbd00005_dm_w.mp4' }
if (null != code.match(/^(SPRL-006)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_706sprbd00006/h_706sprbd00006_dm_w.mp4' }
if (null != code.match(/^(SPRL-007)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_706sprbd00007/h_706sprbd00007_dm_w.mp4' }
if (null != code.match(/^(SPRL-008)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_706sprbd00008/h_706sprbd00008_dm_w.mp4' }
if (null != code.match(/^(SPRL-009)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_706sprbd00009/h_706sprbd00009_dm_w.mp4' }
if (null != code.match(/^(SPRL-010)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_706sprbd00010/h_706sprbd00010_dm_w.mp4' }
if (null != code.match(/^(SPRL-011)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_706sprbd00011/h_706sprbd00011_dm_w.mp4' }
if (null != code.match(/^(SPRL-012)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_706sprbd00012/h_706sprbd00012_dm_w.mp4' }
if (null != code.match(/^(SJPDR-0108)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/152/152rjpddr1584r/152rjpddr1584r_dm_s.mp4' }
if (null != code.match(/^(SJPDR-0102)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/152/152rjpddr1578r/152rjpddr1578r_sm_s.mp4' }
if (null != code.match(/^(SJPDR-103)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/152/152rjpddr1579r/152rjpddr1579r_sm_s.mp4' }
if (null != code.match(/^(SJPDR-105)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/152/152rjpddr1581r/152rjpddr1581r_sm_s.mp4' }
if (null != code.match(/^(SJPDR-109)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/152/152jpddr1586/152jpddr1586_sm_s.mp4' }
if (null != code.match(/^(SJPDR-111)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/152/152jpddr1588/152jpddr1588_sm_s.mp4' }
if (null != code.match(/^(FIG-001)/i)) { videoUrl = 'https://sample.mgstage.com/sample/prestige/fig/001/fig-001_20230620T163301.mp4' }
if (null != code.match(/^(SGKM-001)/i)) { videoUrl = 'https://sample.mgstage.com/sample/hamechan/483sgkm/001/483sgkm-001_20221102T172502.mp4' }
if (null != code.match(/^(SGDV-047)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/4/49s/49sg047r/49sg047r_sm_w.mp4' }
if (null != code.match(/^(SGDV-048)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/4/49s/49sg048r/49sg048r_sm_w.mp4' }
if (null != code.match(/^(SGDV-050)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/4/49s/49sg050r/49sg050r_sm_w.mp4' }
if (null != code.match(/^(SGDV-049)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/4/49s/49sg049r/49sg049r_sm_w.mp4' }
if (null != code.match(/^(SBMOB-1004)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1044sbmo01175/n_1044sbmo01175_sm_w.mp4' }
if (null != code.match(/^(SBMOB-1003)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1044sbmo01173/n_1044sbmo01173_sm_w.mp4' }
if (null != code.match(/^(SBMOB-1005)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1044sbmo01179/n_1044sbmo01179_sm_w.mp4' }
if (null != code.match(/^(SBMOB-1005)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1044sbmo01179/n_1044sbmo01179_mhb_w.mp4' }
if (null != code.match(/^(SBMOB-1003)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1044sbmo01173/n_1044sbmo01173_mhb_w.mp4' }
if (null != code.match(/^(SB-002)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_113sb002/h_113sb002_sm_w.mp4' }
if (null != code.match(/^(SB-003)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_113sb003/h_113sb003_sm_w.mp4' }
if (null != code.match(/^(SB-005)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_113sb005/h_113sb005_sm_w.mp4' }
if (null != code.match(/^(SB-011)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_139dksb011/h_139dksb011_dm_w.mp4' }
if (null != code.match(/^(SB-014)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_139dksb014/h_139dksb014_dm_w.mp4' }
if (null != code.match(/^(SB-017)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_139dksb017/h_139dksb017_dm_w.mp4' }
if (null != code.match(/^(SB-019)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_139dksb019/h_139dksb019_dm_w.mp4' }
if (null != code.match(/^(SB-035)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_139dksb035/h_139dksb035_dm_w.mp4' }
if (null != code.match(/^(SB-038)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_139dksb038/h_139dksb038_dm_w.mp4' }
if (null != code.match(/^(SB-041)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/3/36d/36dksb00041/36dksb00041_dm_w.mp4' }
if (null != code.match(/^(SB-044)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/3/36d/36dksb00044/36dksb00044_dm_w.mp4' }
if (null != code.match(/^(SB-042)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/3/36d/36dksb00042/36dksb00042_dmb_w.mp4' }
if (null != code.match(/^(SB-039)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_139dksb039/h_139dksb039_dm_w.mp4' }
if (null != code.match(/^(SB-015)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_139dksb015/h_139dksb015_dm_w.mp4' }
if (null != code.match(/^(SB-001)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_113sb001/h_113sb001_sm_w.mp4' }
if (null != code.match(/^(SB-006)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_113sb006/h_113sb006_sm_w.mp4' }
if (null != code.match(/^(SB-016)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_139dksb016/h_139dksb016_dm_w.mp4' }
if (null != code.match(/^(SB-040)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_139dksb040/h_139dksb040_dm_w.mp4' }
if (null != code.match(/^(SB-043)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/3/36d/36dksb00043/36dksb00043_dm_w.mp4' }
if (null != code.match(/^(SB-045)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/3/36d/36dksb00045/36dksb00045_dm_w.mp4' }
if (null != code.match(/^(SB-018)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_139dksb018/h_139dksb018_dm_w.mp4' }
if (null != code.match(/^(SB-004)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_113sb004/h_113sb004_dm_w.mp4' }
if (null != code.match(/^(SB-001)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_113sb001/h_113sb001_sm_w.mp4' }
if (null != code.match(/^(SB-006)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_113sb006/h_113sb006_sm_w.mp4' }
if (null != code.match(/^(SB-012)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_139dksb012/h_139dksb012_dm_w.mp4' }
if (null != code.match(/^(SB-036)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_139dksb036/h_139dksb036_dm_w.mp4' }
if (null != code.match(/^(SB-037)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_139dksb037/h_139dksb037_dm_w.mp4' }
if (null != code.match(/^(RNTR-001)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/18n/18ntrd001/18ntrd001_dm_w.mp4' }
if (null != code.match(/^(RNTR-003)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/18n/18ntrd003/18ntrd003_dm_w.mp4' }
if (null != code.match(/^(RNTR-004)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/18n/18ntrd005/18ntrd005_dm_w.mp4' }
if (null != code.match(/^(RNTR-005)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/18n/18ntrd009/18ntrd009_dm_w.mp4' }
if (null != code.match(/^(RNTR-006)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/18n/18ntrd010/18ntrd010_dm_s.mp4' }
if (null != code.match(/^(RNTR-007)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/18n/18ntrd012/18ntrd012_dm_s.mp4' }
if (null != code.match(/^(RNTR-008)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/18n/18ntrd014/18ntrd014_dm_s.mp4' }
if (null != code.match(/^(RNTR-009)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/18n/18ntrd023/18ntrd023_dm_w.mp4' }
if (null != code.match(/^(USDX-003)/i)) { videoUrl = 'https://sample.mgstage.com/sample/prestige/usdx/003/usdx-003_20220330T181002.mp4' }
if (null != code.match(/^(USDX-002)/i)) { videoUrl = 'https://sample.mgstage.com/sample/prestige/usdx/002/usdx-002_20220330T181002.mp4' }
if (null != code.match(/^(USDX-001)/i)) { videoUrl = 'https://sample.mgstage.com/sample/prestige/usdx/001/usdx-001_20211201T115302.mp4' }
if (null != code.match(/^(COMPI-005)/i)) { videoUrl = 'https://sample.mgstage.com/sample/prestige/compi/005/compi-005_20221102T194001.mp4' }
if (null != code.match(/^(COMPI-004)/i)) { videoUrl = 'https://sample.mgstage.com/sample/prestige/compi/004/compi-004_20221031T211001.mp4' }
if (null != code.match(/^(COMPI-002)/i)) { videoUrl = 'https://sample.mgstage.com/sample/prestige/compi/002/compi-002_20220831T214502.mp4' }
if (null != code.match(/^(COMPI-001)/i)) { videoUrl = 'https://sample.mgstage.com/sample/prestige/compi/001/compi-001_20220901T193502.mp4' }
if (null != code.match(/^(MGSMUCHI-002)/i)) { videoUrl = 'https://sample.mgstage.com/sample/prestige/mgsmuchi/002/mgsmuchi-002_20230118T174803.mp4' }
if (null != code.match(/^(MGSMUCHI-001)/i)) { videoUrl = 'https://sample.mgstage.com/sample/prestige/mgsmuchi/001/mgsmuchi-001_20221020T095302.mp4' }
if (null != code.match(/^(MGSSLND-001)/i)) { videoUrl = 'https://sample.mgstage.com/sample/prestige/mgsslnd/001/mgsslnd-001_20230207T172303.mp4' }
if (null != code.match(/^(GWGANA-001)/i)) { videoUrl = ' https://sample.mgstage.com/sample/prestige/gwgana/001/gwgana-001_20210324T092301.mp4' }
if (null != code.match(/^(GWNTR-001)/i)) { videoUrl = 'https://sample.mgstage.com/sample/prestige/gwntr/001/gwntr-001_20210324T163301.mp4' }
if (null != code.match(/^(THU-006)/i)) { videoUrl = 'https://sample.mgstage.com/sample/prestige/thu/006/thu-006_20230725T170302.mp4' }
if (null != code.match(/^(SPAK-001)/i)) { videoUrl = 'https://sample.mgstage.com/sample/prestige/spak/001/spak-001_20230913T190502.mp4' }
if (null != code.match(/^(SETM-001)/i)) { videoUrl = 'https://sample.mgstage.com/sample/sodcreate/107setm/001/107setm-001_20230907T153301.mp4' }
if (null != code.match(/^(MLOBB-002)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/5/505/5050mlob00008/5050mlob00008_dm_w.mp4' }
if (null != code.match(/^(MDNW-002)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/tkm/tkmdnw002/tkmdnw002_dm_w.mp4' }
if (null != code.match(/^(MDNW-001)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/m/mdn/mdnw001/mdnw001_sm_w.mp4' }
if (null != code.match(/^(LVMFC-001)/i)) { videoUrl = 'https://sample.mgstage.com/sample/moonforce/435lvmfc/001/435lvmfc-001_20210422T181802.mp4' }
if (null != code.match(/^(LVMFC-002)/i)) { videoUrl = 'https://sample.mgstage.com/sample/moonforce/435lvmfc/002/435lvmfc-002_20210430T101804.mp4' }
if (null != code.match(/^(LVMFC-003)/i)) { videoUrl = 'https://sample.mgstage.com/sample/moonforce/435lvmfc/003/435lvmfc-003_20210427T143307.mp4' }
if (null != code.match(/^(LVMFC-004)/i)) { videoUrl = 'https://sample.mgstage.com/sample/moonforce/435lvmfc/004/435lvmfc-004_20210726T155801.mp4' }
if (null != code.match(/^(LVMFC-005)/i)) { videoUrl = 'https://sample.mgstage.com/sample/moonforce/435lvmfc/005/435lvmfc-005_20211122T174801.mp4' }
if (null != code.match(/^(LVMFC-006)/i)) { videoUrl = 'https://sample.mgstage.com/sample/moonforce/435lvmfc/006/435lvmfc-006_20221115T123003.mp4' }
if (null != code.match(/^(GWNAMA-003)/i)) { videoUrl = 'https://sample.mgstage.com/sample/prestige/gwnama/003/gwnama-003_20211202T101301.mp4' }
if (null != code.match(/^(GWNAMA-002)/i)) { videoUrl = 'https://sample.mgstage.com/sample/prestige/gwnama/002/gwnama-002_20210727T094801.mp4' }
if (null != code.match(/^(GWNAMA-001)/i)) { videoUrl = 'https://sample.mgstage.com/sample/prestige/gwnama/001/gwnama-001_20210324T093301.mp4' }
if (null != code.match(/^(GWTORA-001)/i)) { videoUrl = 'https://sample.mgstage.com/sample/prestige/gwtora/001/gwtora-001_20210324T093301.mp4' }
if (null != code.match(/^(GWTORA-002)/i)) { videoUrl = 'https://sample.mgstage.com/sample/prestige/gwtora/002/gwtora-002_20210721T194302.mp4' }
if (null != code.match(/^(GWTORA-003)/i)) { videoUrl = 'https://sample.mgstage.com/sample/prestige/gwtora/003/gwtora-003_20211129T175301.mp4' }
if (null != code.match(/^(GWJAC-001)/i)) { videoUrl = 'https://sample.mgstage.com/sample/prestige/gwjac/001/gwjac-001_20210324T163301.mp4' }
if (null != code.match(/^(GWHASI-002)/i)) { videoUrl = 'https://sample.mgstage.com/sample/prestige/gwhasi/002/gwhasi-002_20210727T180802.mp4' }
if (null != code.match(/^(GWHASI-001)/i)) { videoUrl = 'https://sample.mgstage.com/sample/prestige/gwhasi/001/gwhasi-001_20210324T163301.mp4' }
if (null != code.match(/^(GWDCV-003)/i)) { videoUrl = 'https://sample.mgstage.com/sample/prestige/gwdcv/003/gwdcv-003_20211203T132301.mp4' }
if (null != code.match(/^(GWDCV-002)/i)) { videoUrl = 'https://sample.mgstage.com/sample/prestige/gwdcv/002/gwdcv-002_20210727T174302.mp4' }
if (null != code.match(/^(GWDCV-001)/i)) { videoUrl = 'https://sample.mgstage.com/sample/prestige/gwdcv/001/gwdcv-001_20210326T092801.mp4' }
if (null != code.match(/^(FRNCB-003)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1393frnc004/n_1393frnc004_dm_w.mp4' }
if (null != code.match(/^(FRNCB-005)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/5/505/5050frnc00008/5050frnc00008_dm_w.mp4' }
if (null != code.match(/^(FKKRM-001)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/kru/kru00040/kru00040_dm_w.mp4' }
if (null != code.match(/^(ERE-001)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_9/h_921ere001/h_921ere001_dm_w.mp4' }
if (null != code.match(/^(ERE-002)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_9/h_968ere002/h_968ere002_dm_w.mp4' }
if (null != code.match(/^(OKL-001)/i)) { videoUrl = 'https://sample.mgstage.com/sample/oyajino/249okl/001/249okl-001_20240207T111802.mp4' }
if (null != code.match(/^(DYNE-001)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/187/187dyne001/187dyne001_dmb_w.mp4' }
if (null != code.match(/^(DYNE-002)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/d/dyn/dyne002/dyne002_dmb_w.mp4' }
let videoUrl2 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dmb_s.mp4';
let videoUrl3 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dm_s.mp4';
let videoUrl4 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl5 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_mhb_s.mp4';
let videoUrl6 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl7 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl8 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl9 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dmb_s.mp4';
let videoUrl10 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl11 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dm_s.mp4';
let videoUrl12 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl13 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_mhb_s.mp4';
let videoUrl14 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl15 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl16 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_sm_s.mp4';
let videoUrl17 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + 'a/' + videoSeries + videoNo + 'a_dmb_w.mp4';
let videoUrl18 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + 'a/' + videoSeries + videoNo + 'a_mhb_w.mp4';
let videoUrl19 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + 'b/' + videoSeries + videoNo + 'b_dmb_w.mp4';
let videoUrl20 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + 'b/' + videoSeries + videoNo + 'b_mhb_w.mp4';
let videoUrl21 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + 'z/' + videoSeries + videoNo + 'z_dmb_w.mp4';
let videoUrl22 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoTwo + '/' + videoSeries + videoTwo + '_dm_w.mp4';
let videoUrl23 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoTwo + '/' + videoSeries + videoTwo + '_sm_s.mp4'; // ARKX-016 https://cc3001.dmm.com/litevideo/freepv/a/ark/arkx00016/arkx00016_sm_s.mp4
let videoUrl24 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + 'a/' + videoSeries + codeArr[1] + 'a_dmb_w.mp4';
let videoUrl25 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + 're/' + videoSeries + codeArr[1] + 're_dmb_w.mp4';
let videoUrl26 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + 're/' + videoSeries + codeArr[1] + 're_dm_w.mp4';
let videoUrl27 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + 'z/' + videoSeries + codeArr[1] + 'z_dmb_w.mp4';
let videoUrl28 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoFour + '/' + videoSeries + videoFour + '_dmb_s.mp4';
let videoUrl29 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoFour + '/' + videoSeries + videoFour + '_dmb_w.mp4';
let videoUrl30 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoFour + '/' + videoSeries + videoFour + '_dm_w.mp4';
let videoUrl31 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoFour + '/' + videoSeries + videoFour + '_mhb_w.mp4';
let videoUrl32 = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td027' + videoSeries + videoNo + '/td027' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl33 = 'https://cc3001.dmm.com/vrsample/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + 'vrlite.mp4';
let videoUrl34 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + 'e/' + videoSeries + codeArr[1] + 'e_mhb_w.mp4';
let videoUrl35 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + 'e/' + videoSeries + codeArr[1] + 'e_dm_w.mp4';
let videoUrl36 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + 'e/' + videoSeries + videoNo + 'e_mhb_w.mp4';
let videoUrl37 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + 'e/' + videoSeries + videoNo + 'e_dm_w.mp4';
let videoUrl38 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + 'e/' + videoSeries + videoNo + 'e_dmb_w.mp4';
let videoUrl39 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + 'e/' + videoSeries + codeArr[1] + 'e_dmb_w.mp4';
let videoUrl40 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + 'r/' + videoSeries + codeArr[1] + 'r_sm_s.mp4'; //WB-015 https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_113wb015r/h_113wb015r_sm_s.mp4
let videoUrl41 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoTwo + '/' + videoSeries + videoTwo + '_dmb_w.mp4';
let videoUrl42 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoTwo + '/' + videoSeries + videoTwo + '_mhb_w.mp4';
let videoUrl100 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 2) + '0/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dmb_s.mp4'; //番号系列三位补0
let videoUrl101 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 2) + '0/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_sm_s.mp4'; //番号系列三位补0
let videoUrl102 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 2) + '0/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dmb_w.mp4'; //番号系列三位补0
let videoUrl103 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 2) + '0/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_sm_w.mp4'; //番号系列三位补0 // CS-028 https://cc3001.dmm.com/litevideo/freepv/c/cs0/cs028/cs028_sm_w.mp4
let videoUrl104 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 2) + '0/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dm_s.mp4'; //番号系列三位补0 // WW-071 https://cc3001.dmm.com/litevideo/freepv/w/ww0/ww071/ww071_dm_s.mp4
let videoUrl110 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 2) + '0/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dm_w.mp4'; //番号系列三位补0
let videoUrl111 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 2) + '0/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_sm_w.mp4'; //番号系列三位补0
let videoUrl112 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 2) + '0/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_sm_s.mp4'; //番号系列三位补0
let videoUrl200 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSerFour + videoNo + '/' + videoSerFour + videoNo + '_dm_w.mp4'; // 5位番号截掉第5位 ARKSB-003 //cc3001.dmm.com/litevideo/freepv/5/505/5050arks00008/5050arks00008_dm_w.mp4
let videoUrl210 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSerFour + codeArr[1] + '/' + videoSerFour + codeArr[1] + '_dmb_w.mp4'; // 5位番号截掉第5位 WRDJB-004 https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1466wrdj004/n_1466wrdj004_dmb_w.mp4
let videoUrl211 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSerFour + codeArr[1] + '/' + videoSerFour + codeArr[1] + '_dm_w.mp4'; // 5位番号截掉第5位
let videoUrl212 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSerFour + codeArr[1] + '/' + videoSerFour + codeArr[1] + '_sm_s.mp4'; // 5位番号截掉第5位
let videoUrl300 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoThree + '/' + videoSeries + videoThree + '_dmb_s.mp4';
let videoUrl301 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoThree + '/' + videoSeries + videoThree + '_dmb_w.mp4';
let videoUrl302 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoThree + '/' + videoSeries + videoThree + '_dm_w.mp4';
let videoUrl303 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoThree + '/' + videoSeries + videoThree + '_mhb_w.mp4';
let videoUrl400 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + 'ad/' + videoSeries + videoNo + 'ad_sm_w.mp4'; // ARKX-013 https://cc3001.dmm.com/litevideo/freepv/a/ark/arkx00013ad/arkx00013ad_sm_w.mp4
let videoUrl500 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoTwo + '/' + videoSeries + videoTwo + '_sm_w.mp4'; //数字截取2位 BEBE-021 https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_086bebe21/h_086bebe21_sm_w.mp4
let videoUrl600 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoSix + '/' + videoSeries + videoSix + '_dmb_s.mp4'; // 6位数字补0 TNB-002 https://cc3001.dmm.com/litevideo/freepv/t/tnb/tnb000002/tnb000002_dm_w.mp4
let videoUrl601 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoSix + '/' + videoSeries + videoSix + '_dm_s.mp4';
let videoUrl602 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoSix + '/' + videoSeries + videoSix + '_dm_w.mp4';
let videoUrl603 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoSix + '/' + videoSeries + videoSix + '_mhb_s.mp4';
let videoUrl604 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoSix + '/' + videoSeries + videoSix + '_mhb_w.mp4';
let videoUrl605 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoSix + '/' + videoSeries + videoSix + '_sm_s.mp4';
let videoUrl606 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoSix + '/' + videoSeries + videoSix + '_sm_w.mp4';
let videoUrl800 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + 'ai/' + videoSeries + videoNo + 'ai_mhb_w.mp4';
let videoUrl801 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + 'ai/' + videoSeries + videoNo + 'ai_dm_w.mp4';
let videoUrl802 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + 'ai/' + videoSeries + videoNo + 'ai_dmb_w.mp4';
let videoUrl803 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries.substr(0, 9) + codeArr[1] + '/' + videoSeries.substr(0, 9) + codeArr[1] + '_dmb_w.mp4';
let videoUrl804 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + 's' + videoNo + '/' + videoSeries + 's' + videoNo + '_dmb_w.mp4'; //DVDM-956 https://cc3001.dmm.com/litevideo/freepv/d/dvd/dvdms00956/dvdms00956_dmb_w.mp4 特殊:在字母后加s
let videoUrl805 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSerFour + videoNo + '/' + videoSerFour + videoNo + '_dmb_w.mp4'; // 5位字母截掉最后一位
let videoUrl806 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + 'nkj/' + videoSeries + videoNo + 'nkj_dmb_w.mp4';
let videoUrl989 = 'https://sample.mgstage.com/sample/ikinarierozanmai/425' + videoSeries.replace(/[a-zA-Z]{1}_[0-9]+/g, "") + '/' + codeArr[1] + '/425' + code + '.mp4'; // BMST-004 https://sample.mgstage.com/sample/ikinarierozanmai/425bmst/004/425BMST-004.mp4
let videoUrl990 = 'https://sample.mgstage.com/sample/lahaina/031' + videoSeries + '/' + codeArr[1] + '/' + code + '_sam.mp4'; // BEST-009 https://sample.mgstage.com/sample/lahaina/031best/009/BEST-009_sam.mp4
let videoUrl991 = 'https://sample.mgstage.com/sample/lahaina/031' + videoSeries + '/' + codeArr[1] + '/' + code + '.mp4'; // ATNF-10 https://sample.mgstage.com/sample/lahaina/031atnf/10/ATNF-10.mp4
let videoUrl992 = 'https://sample.mgstage.com/sample/giga/235' + videoSeries + '/' + codeArr[1] + '/' + code + '.mp4'; // ATHB-36 https://sample.mgstage.com/sample/giga/235athb/36/ATHB-36.mp4
let videoUrl993 = 'https://sample.mgstage.com/sample/mercury/298' + videoSeries + '/' + codeArr[1] + '/' + code + '_sample.mp4';
let videoUrl994 = 'https://sample.mgstage.com/sample/prestige/' + videoSeries + '/' + codeArr[1] + '/BLO-040_90.mp4';
let videoUrl995 = 'https://sample.mgstage.com/sample/prestige/' + videoSeries + '/' + codeArr[1] + '/' + code + '.mp4';
let videoUrl996 = 'https://sample.mgstage.com/sample/mirai/064' + videoSeries + '/' + codeArr[1] + '/' + videoSeries + '-' + codeArr[1] + '.mp4';
let videoUrl997 = 'https://sample.mgstage.com/sample/mirai/064' + videoSeries + '/' + codeArr[1] + '/' + videoSeries + '-' + videoThree + '.mp4';
let videoUrl998 = 'https://sample.mgstage.com/sample/nadeshiko/171' + videoSeries + '/' + codeArr[1] + '/171' + code + '.mp4';
let videoUrl999 = 'https://sample.mgstage.com/sample/bigmorkal/022' + videoSeries + '/' + codeArr[1] + '/' + code + '.mp4'; // BDSR-001 https://sample.mgstage.com/sample/bigmorkal/022bdsr/001/BDSR-001.mp4
let videoUrl1000 = 'https://sample.mgstage.com/sample/around/' + videoSeries + '/' + codeArr[1] + '/' + videoSeries.replace(/[0-9]+/g, "") + '_' + videoNo + '_sample.mp4'; // https://sample.mgstage.com/sample/around/119arie/11001/arie_11001_sample.mp(对)4和https://sample.mgstage.com/sample/around/119arie/11001/arie-11001_sample.mp4(错)有区别 系列之前被被加了数字,这里又要去掉数字 此规则适用于个别番号
let videoUrl1001 = 'http://sdn.aurora-pro.com/contents/mp4/pc/' + code.toLowerCase() + '_sam.mp4'; // 此规则为https://sec.aurora-pro.com专属专用 含多个系列 部分系列无资源 APAA-408 http://sdn.aurora-pro.com/contents/mp4/pc/apaa-408_sam.mp4
// 自2023.5.10开始 将于番号系列表加入每个番号最常用分辨率 以快速适配
let videoUrl1002 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + chehz + '/' + videoSeries + codeArr[1] + chehz + postfix + '.mp4';
let videoUrl1003 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + chehz + '/' + videoSeries + videoNo + chehz + postfix + '.mp4';
let videoUrl1004 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoTwo + chehz + '/' + videoSeries + videoTwo + chehz + postfix + '.mp4';
let videoUrl1005 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoFour + chehz + '/' + videoSeries + videoFour + chehz + postfix + '.mp4';
let videoUrl1006 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 2) + '0/' + videoSeries + codeArr[1] + chehz + '/' + videoSeries + codeArr[1] + chehz + postfix + '.mp4';
let videoUrl1007 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 2) + '0/' + videoSeries + videoNo + chehz + '/' + videoSeries + videoNo + chehz + postfix + '.mp4';
let videoUrl1008 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoThree + chehz + '/' + videoSeries + videoThree + chehz + postfix + '.mp4';
let videoUrl1009 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoThrBu + chehz + '/' + videoSeries + videoThrBu + chehz + postfix + '.mp4';
let videoUrl1010 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + cheqz + vSeries.substr(0, 5) + codeArr[1] + chehz + '/' + cheqz + vSeries.substr(0, 5) + codeArr[1] + chehz + postfix + '.mp4';
let videoUrl1011 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + postfix + '.mp4'; // 去掉后缀
let videoUrl1012 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoOne + chehz + '/' + videoSeries + videoOne + chehz + postfix + '.mp4';
let videoUrl1013 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + chehz + '/' + videoSeries + codeArr[1] + chehz + 'dm.mp4';
let videoUrl1014 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + chehz + '/' + videoSeries + codeArr[1] + chehz + 'sm.mp4';
let videoUrl1015 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + chehz + '/' + videoSeries + videoNo + chehz + 'dm.mp4';
let videoUrl1016 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + chehz + '/' + videoSeries + videoNo + chehz + 'sm.mp4';
let videoUrl1017 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoTwo + chehz + '/' + videoSeries + videoTwo + chehz + 'dm.mp4';
let videoUrl1018 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries[0] + codeArr[1].substr(0, 2) + '/' + videoSeries + codeArr[1] + chehz + '/' + videoSeries + codeArr[1] + chehz + 'dm.mp4';
let videoUrl1019 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoThrBu + chehz + '/' + videoSeries + videoThrBu + chehz + '_sm_w.mp4';
let videoUrl1020 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + chehz + '/' + videoSeries + codeArr[1] + chehz + '_dm_s.mp4';
let videoUrl1021 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + chehz + '/' + videoSeries + codeArr[1] + chehz + 'hhb.mp4';
let videoUrl1022 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + chehz + '/' + videoSeries + videoNo + chehz + 'hhb.mp4';
let videoUrl1023 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + chehz + '/' + videoSeries + codeArr[1] + chehz + 'hhbs.mp4';
let videoUrl1024 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + chehz + '/' + videoSeries + videoNo + chehz + 'hhbs.mp4';
let videoUrl1025 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + chehz + '/' + videoSeries + codeArr[1] + chehz + 'mhb.mp4';
let videoUrl1026 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + chehz + '/' + videoSeries + videoNo + chehz + 'mhb.mp4';
let videoUrl1027 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + chehz + '/' + videoSeries + codeArr[1] + chehz + '.mp4';
let videoUrl1028 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + chehz + '/' + videoSeries + videoNo + chehz + '.mp4';
let videoUrl1029 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + chehz + '/' + videoSeries + codeArr[1] + chehz + '4k.mp4';
let videoUrl1030 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + chehz + '/' + videoSeries + videoNo + chehz + '4k.mp4';
// Y-014 https://cc3001.dmm.com/litevideo/freepv/y/y01/y014/y014dm.mp4
// https://cc3001.dmm.com/litevideo/freepv/7/70c/70chc001/70chc001sm.mp4
// 以下数据在待测试数据全部完成后删除
let videoUrl2000 = 'https://cc3001.dmm.com/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + codeArr[1] + '/1' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2001 = 'https://cc3001.dmm.com/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + codeArr[1] + '/1' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl2002 = 'https://cc3001.dmm.com/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + codeArr[1] + '/1' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl2003 = 'https://cc3001.dmm.com/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + codeArr[1] + '/1' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl2004 = 'https://cc3001.dmm.com/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + codeArr[1] + '/1' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl2005 = 'https://cc3001.dmm.com/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + videoNo + '/1' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2006 = 'https://cc3001.dmm.com/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + videoNo + '/1' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl2007 = 'https://cc3001.dmm.com/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + videoNo + '/1' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl2008 = 'https://cc3001.dmm.com/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + videoNo + '/1' + videoSeries + videoNo + '_sm_s.mp4';
let videoUrl2009 = 'https://cc3001.dmm.com/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + videoNo + '/1' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl2010 = 'https://cc3001.dmm.com/litevideo/freepv/1/11' + videoSeries[0] + '/11' + videoSeries + videoNo + '/11' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2011 = 'https://cc3001.dmm.com/litevideo/freepv/1/118/118' + videoSeries + codeArr[1] + '/118' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2012 = 'https://cc3001.dmm.com/litevideo/freepv/1/118/118' + videoSeries + codeArr[1] + '/118' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl2013 = 'https://cc3001.dmm.com/litevideo/freepv/1/118/118' + videoSeries + codeArr[1] + '/118' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl2014 = 'https://cc3001.dmm.com/litevideo/freepv/1/118/118' + videoSeries + videoNo + '/118' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2015 = 'https://cc3001.dmm.com/litevideo/freepv/1/12' + videoSeries[0] + '/12' + videoSeries + codeArr[1] + '/12' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2016 = 'https://cc3001.dmm.com/litevideo/freepv/1/12' + videoSeries[0] + '/12' + videoSeries + videoNo + '/12' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2017 = 'https://cc3001.dmm.com/litevideo/freepv/1/12' + videoSeries[0] + '/12' + videoSeries + videoNo + '/12' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl2018 = 'https://cc3001.dmm.com/litevideo/freepv/1/125/125' + videoSeries + codeArr[1] + '/125' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2019 = 'https://cc3001.dmm.com/litevideo/freepv/1/125/125' + videoSeries + codeArr[1] + '/125' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl2020 = 'https://cc3001.dmm.com/litevideo/freepv/1/13' + videoSeries.substr(0, 1) + '/13' + videoSeries + codeArr[1] + '/13' + videoSeries + codeArr[1] + '_dmb_s.mp4';
let videoUrl2021 = 'https://cc3001.dmm.com/litevideo/freepv/1/13' + videoSeries.substr(0, 1) + '/13' + videoSeries + codeArr[1] + '/13' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2022 = 'https://cc3001.dmm.com/litevideo/freepv/1/13' + videoSeries.substr(0, 1) + '/13' + videoSeries + codeArr[1] + '/13' + videoSeries + codeArr[1] + '_dm_s.mp4';
let videoUrl2023 = 'https://cc3001.dmm.com/litevideo/freepv/1/13' + videoSeries.substr(0, 1) + '/13' + videoSeries + codeArr[1] + '/13' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl2024 = 'https://cc3001.dmm.com/litevideo/freepv/1/13' + videoSeries.substr(0, 1) + '/13' + videoSeries + videoNo + '/13' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl2025 = 'https://cc3001.dmm.com/litevideo/freepv/1/13' + videoSeries.substr(0, 1) + '/13' + videoSeries + videoNo + '/13' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2026 = 'https://cc3001.dmm.com/litevideo/freepv/1/13' + videoSeries[0] + '/13' + videoSeries + videoNo + '/13' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2027 = 'https://cc3001.dmm.com/litevideo/freepv/1/149/149' + videoSeries + videoNo + '/149' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2028 = 'https://cc3001.dmm.com/litevideo/freepv/1/149/149' + videoSeries + videoNo + '/149' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl2029 = 'https://cc3001.dmm.com/litevideo/freepv/1/15' + videoSeries[0] + '/15' + videoSeries + codeArr[1] + '/15' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2030 = 'https://cc3001.dmm.com/litevideo/freepv/1/15' + videoSeries[0] + '/15' + videoSeries + codeArr[1] + '/15' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl2031 = 'https://cc3001.dmm.com/litevideo/freepv/1/15' + videoSeries[0] + '/15' + videoSeries + codeArr[1] + '/15' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl2032 = 'https://cc3001.dmm.com/litevideo/freepv/1/15' + videoSeries[0] + '/15' + videoSeries + videoNo + '/15' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2033 = 'https://cc3001.dmm.com/litevideo/freepv/1/15' + videoSeries[0] + '/15' + videoSeries + videoNo + '/15' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl2034 = 'https://cc3001.dmm.com/litevideo/freepv/1/15' + videoSeries[0] + '/15' + videoSeries + videoNo + '/15' + videoSeries + videoNo + '_sm_s.mp4';
let videoUrl2035 = 'https://cc3001.dmm.com/litevideo/freepv/1/172/172' + videoSeries + videoNo + '/172' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2036 = 'https://cc3001.dmm.com/litevideo/freepv/1/172/172' + videoSeries + videoNo + '/172' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl2037 = 'https://cc3001.dmm.com/litevideo/freepv/1/18' + videoSeries[0] + '/18' + videoSeries + videoNo + '/18' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2038 = 'https://cc3001.dmm.com/litevideo/freepv/2/2' + videoSeries.substr(0, 2) + '/2' + videoSeries + videoNo + '/2' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2039 = 'https://cc3001.dmm.com/litevideo/freepv/2/24' + videoSeries.substr(0, 1) + '/24' + videoSeries + codeArr[1] + '/24' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2040 = 'https://cc3001.dmm.com/litevideo/freepv/2/24' + videoSeries.substr(0, 1) + '/24' + videoSeries + codeArr[1] + '/24' + videoSeries + codeArr[1] + '_dm_s.mp4';
let videoUrl2041 = 'https://cc3001.dmm.com/litevideo/freepv/2/24' + videoSeries.substr(0, 1) + '/24' + videoSeries + codeArr[1] + '/24' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl2042 = 'https://cc3001.dmm.com/litevideo/freepv/2/24' + videoSeries.substr(0, 1) + '/24' + videoSeries + videoNo + '/24' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2043 = 'https://cc3001.dmm.com/litevideo/freepv/2/24' + videoSeries.substr(0, 1) + '/24' + videoSeries + videoNo + '/24' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl2044 = 'https://cc3001.dmm.com/litevideo/freepv/2/24' + videoSeries[0] + '/24' + videoSeries + codeArr[1] + '/24' + videoSeries + codeArr[1] + '_dm_s.mp4';
let videoUrl2045 = 'https://cc3001.dmm.com/litevideo/freepv/2/24' + videoSeries[0] + '/24' + videoSeries + videoNo + '/24' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl2046 = 'https://cc3001.dmm.com/litevideo/freepv/2/24' + videoSeries[0] + '/24' + videoSeries + videoNo + '/24' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl2047 = 'https://cc3001.dmm.com/litevideo/freepv/3/33' + videoSeries[0] + '/33' + videoSeries + codeArr[1] + '/33' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2048 = 'https://cc3001.dmm.com/litevideo/freepv/3/36' + videoSeries[0] + '/36' + videoSeries + videoNo + '/36' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2049 = 'https://cc3001.dmm.com/litevideo/freepv/3/36' + videoSeries[0] + '/36' + videoSeries + videoNo + '/36' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl2050 = 'https://cc3001.dmm.com/litevideo/freepv/3/36' + videoSeries[0] + '/36' + videoSeries + videoNo + '/36' + videoSeries + videoNo + '_sm_s.mp4';
let videoUrl2051 = 'https://cc3001.dmm.com/litevideo/freepv/4/406/406' + videoSeries + videoNo + '/406' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl2052 = 'https://cc3001.dmm.com/litevideo/freepv/4/41' + videoSeries.substr(0, 1) + '/41' + videoSeries + videoNo + '/41' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2053 = 'https://cc3001.dmm.com/litevideo/freepv/4/421/421' + videoSeries + codeArr[1] + '/421' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl2054 = 'https://cc3001.dmm.com/litevideo/freepv/4/436/436' + videoSeries + codeArr[1] + '/436' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2055 = 'https://cc3001.dmm.com/litevideo/freepv/4/436/436' + videoSeries + codeArr[1] + '/436' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl2056 = 'https://cc3001.dmm.com/litevideo/freepv/4/436/436' + videoSeries + codeArr[1] + '/436' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl2057 = 'https://cc3001.dmm.com/litevideo/freepv/4/48' + videoSeries.substr(0, 1) + '/48' + videoSeries + codeArr[1] + '/48' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2058 = 'https://cc3001.dmm.com/litevideo/freepv/4/48' + videoSeries.substr(0, 1) + '/48' + videoSeries + videoNo + '/48' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2059 = 'https://cc3001.dmm.com/litevideo/freepv/4/49' + videoSeries.substr(0, 1) + '/49' + videoSeries + videoNo + '/49' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl2060 = 'https://cc3001.dmm.com/litevideo/freepv/5/504/504' + videoSeries + codeArr[1] + 'z/504' + videoSeries + codeArr[1] + 'z_dmb_w.mp4';
let videoUrl2061 = 'https://cc3001.dmm.com/litevideo/freepv/5/51' + videoSeries.substr(0, 1) + '/51' + videoSeries + codeArr[1] + '/51' + videoSeries + codeArr[1] + '_dmb_s.mp4';
let videoUrl2062 = 'https://cc3001.dmm.com/litevideo/freepv/5/51' + videoSeries.substr(0, 1) + '/51' + videoSeries + codeArr[1] + '/51' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2063 = 'https://cc3001.dmm.com/litevideo/freepv/5/51' + videoSeries.substr(0, 1) + '/51' + videoSeries + codeArr[1] + '/51' + videoSeries + codeArr[1] + '_mmb_w.mp4';
let videoUrl2064 = 'https://cc3001.dmm.com/litevideo/freepv/5/53' + videoSeries.substr(0, 1) + '/53' + videoSeries + codeArr[1] + '/53' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2065 = 'https://cc3001.dmm.com/litevideo/freepv/5/53' + videoSeries.substr(0, 1) + '/53' + videoSeries + codeArr[1] + '/53' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl2066 = 'https://cc3001.dmm.com/litevideo/freepv/5/53' + videoSeries.substr(0, 1) + '/53' + videoSeries + videoFour + '/53' + videoSeries + videoFour + '_dmb_w.mp4';
let videoUrl2067 = 'https://cc3001.dmm.com/litevideo/freepv/5/540/540' + videoSeries + codeArr[1] + '/540' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2068 = 'https://cc3001.dmm.com/litevideo/freepv/5/540/540' + videoSeries + videoNo + '/540' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2069 = 'https://cc3001.dmm.com/litevideo/freepv/5/55' + videoSeries.substr(0, 1) + '/55' + videoSeries + codeArr[1] + '/55' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2070 = 'https://cc3001.dmm.com/litevideo/freepv/5/57' + videoSeries.substr(0, 1) + '/57' + videoSeries + codeArr[1] + '/57' + videoSeries + codeArr[1] + '_dmb_s.mp4';
let videoUrl2071 = 'https://cc3001.dmm.com/litevideo/freepv/5/57' + videoSeries.substr(0, 1) + '/57' + videoSeries + codeArr[1] + '/57' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2072 = 'https://cc3001.dmm.com/litevideo/freepv/5/57' + videoSeries.substr(0, 1) + '/57' + videoSeries + codeArr[1] + '/57' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl2073 = 'https://cc3001.dmm.com/litevideo/freepv/5/57' + videoSeries.substr(0, 1) + '/57' + videoSeries + codeArr[1] + '/57' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl2074 = 'https://cc3001.dmm.com/litevideo/freepv/5/57' + videoSeries.substr(0, 1) + '/57' + videoSeries + videoNo + '/57' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2075 = 'https://cc3001.dmm.com/litevideo/freepv/5/57' + videoSeries.substr(0, 1) + '/57' + videoSeries + videoNo + '/57' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl2076 = 'https://cc3001.dmm.com/litevideo/freepv/5/59' + videoSeries.substr(0, 1) + '/59' + videoSeries + codeArr[1] + '/59' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2077 = 'https://cc3001.dmm.com/litevideo/freepv/5/59' + videoSeries.substr(0, 1) + '/59' + videoSeries + codeArr[1] + '/59' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl2078 = 'https://cc3001.dmm.com/litevideo/freepv/5/59' + videoSeries[0] + '/59' + videoSeries + videoNo + '/59' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2079 = 'https://cc3001.dmm.com/litevideo/freepv/6/60' + videoSeries.substr(0, 1) + '/60' + videoSeries + codeArr[1] + '/60' + videoSeries + codeArr[1] + '_dmb_s.mp4';
let videoUrl2080 = 'https://cc3001.dmm.com/litevideo/freepv/6/60' + videoSeries.substr(0, 1) + '/60' + videoSeries + codeArr[1] + '/60' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2081 = 'https://cc3001.dmm.com/litevideo/freepv/6/60' + videoSeries.substr(0, 1) + '/60' + videoSeries + codeArr[1] + '/60' + videoSeries + codeArr[1] + '_dm_s.mp4';
let videoUrl2082 = 'https://cc3001.dmm.com/litevideo/freepv/6/60' + videoSeries.substr(0, 1) + '/60' + videoSeries + codeArr[1] + '/60' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl2083 = 'https://cc3001.dmm.com/litevideo/freepv/6/60' + videoSeries.substr(0, 1) + '/60' + videoSeries + codeArr[1] + '/60' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl2084 = 'https://cc3001.dmm.com/litevideo/freepv/6/61' + videoSeries[0] + '/61' + videoSeries + videoNo + '/61' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2085 = 'https://cc3001.dmm.com/litevideo/freepv/6/61' + videoSeries[0] + '/61' + videoSeries + videoNo + '/61' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl2086 = 'https://cc3001.dmm.com/litevideo/freepv/6/61' + videoSeries[0] + '/61' + videoSeries + videoNo + '/61' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl2087 = 'https://cc3001.dmm.com/litevideo/freepv/6/61' + videoSeries[0] + '/61' + videoSeries + videoNo + '/61' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl2088 = 'https://cc3001.dmm.com/litevideo/freepv/7/71' + videoSeries[0] + '/71' + videoSeries + videoNo + '/71' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl2089 = 'https://cc3001.dmm.com/litevideo/freepv/8/83' + videoSeries[0] + '/83' + videoSeries + codeArr[1] + '/83' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2090 = 'https://cc3001.dmm.com/litevideo/freepv/8/83' + videoSeries[0] + '/83' + videoSeries + codeArr[1] + '/83' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl2091 = 'https://cc3001.dmm.com/litevideo/freepv/8/83' + videoSeries[0] + '/83' + videoSeries + codeArr[1] + '/83' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl2092 = 'https://cc3001.dmm.com/litevideo/freepv/8/83' + videoSeries[0] + '/83' + videoSeries + videoNo + '/83' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2093 = 'https://cc3001.dmm.com/litevideo/freepv/8/83' + videoSeries[0] + '/83' + videoSeries + videoNo + '/83' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl2094 = 'https://cc3001.dmm.com/litevideo/freepv/8/83' + videoSeries[0] + '/83' + videoSeries + videoNo + '/83' + videoSeries + videoNo + '_sm_s.mp4';
let videoUrl2095 = 'https://cc3001.dmm.com/litevideo/freepv/8/84' + videoSeries.substr(0, 1) + '/84' + videoSeries + codeArr[1] + '/84' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2096 = 'https://cc3001.dmm.com/litevideo/freepv/8/84' + videoSeries.substr(0, 1) + '/84' + videoSeries + codeArr[1] + '/84' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl2097 = 'https://cc3001.dmm.com/litevideo/freepv/8/84' + videoSeries.substr(0, 1) + '/84' + videoSeries + codeArr[1] + '/84' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl2098 = 'https://cc3001.dmm.com/litevideo/freepv/8/84' + videoSeries.substr(0, 1) + '/84' + videoSeries + codeArr[1] + '/84' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl2099 = 'https://cc3001.dmm.com/litevideo/freepv/8/84' + videoSeries.substr(0, 1) + '/84' + videoSeries + codeArr[1] + '/84' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl2100 = 'https://cc3001.dmm.com/litevideo/freepv/8/84' + videoSeries[0] + '/84' + videoSeries + codeArr[1] + '/84' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2101 = 'https://cc3001.dmm.com/litevideo/freepv/8/84' + videoSeries[0] + '/84' + videoSeries + videoNo + '/84' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2102 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_019' + videoSeries + codeArr[1] + '/h_019' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl2103 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_019' + videoSeries + videoNo + '/h_019' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2104 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_019' + videoSeries + videoNo + '/h_019' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl2105 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_021' + videoSeries + codeArr[1] + '/h_021' + videoSeries + codeArr[1] + '_dmb_s.mp4';
let videoUrl2106 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_021' + videoSeries + codeArr[1] + '/h_021' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2107 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_021' + videoSeries + codeArr[1] + '/h_021' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl2108 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_021' + videoSeries + codeArr[1] + '/h_021' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl2109 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_047' + videoSeries + codeArr[1] + '/h_047' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2110 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_067' + videoSeries + codeArr[1] + '/h_067' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl2111 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_068' + videoSeries + codeArr[1] + '/h_068' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2112 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_068' + videoSeries + codeArr[1] + '/h_068' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl2113 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_068' + videoSeries + codeArr[1] + '/h_068' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl2114 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_086' + videoSeries + codeArr[1] + '/h_086' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2115 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_086' + videoSeries + videoNo + '/h_086' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2116 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_086' + videoSeries + videoNo + '/h_086' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl2117 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_086' + videoSeries + videoTwo + '/h_086' + videoSeries + videoTwo + '_dmb_w.mp4';
let videoUrl2118 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_086' + videoSeries + videoTwo + '/h_086' + videoSeries + videoTwo + '_dm_w.mp4';
let videoUrl2119 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_086' + videoSeries + videoTwo + '/h_086' + videoSeries + videoTwo + '_sm_w.mp4';
let videoUrl2120 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1002' + videoSeries + codeArr[1] + '/h_1002' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2121 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1100' + videoSeries + codeArr[1] + '/h_1100' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2122 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1100' + videoSeries + codeArr[1] + '/h_1100' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl2123 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_113' + videoSeries + codeArr[1] + '/h_113' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2124 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_113' + videoSeries + codeArr[1] + '/h_113' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl2125 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_113' + videoSeries + codeArr[1] + '/h_113' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl2126 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_113' + videoSeries + videoNo + '/h_113' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl2127 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1133' + videoSeries + codeArr[1] + '/h_1133' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2128 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1160' + videoSeries + codeArr[1] + '/h_1160' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2129 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1160' + videoSeries + videoNo + '/h_1160' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2130 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1160' + videoSeries + videoNo + 'a/' + videoSeries + videoNo + 'a_mhb_w.mp4';
let videoUrl2131 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1160' + videoSeries + videoNo + 'b/' + videoSeries + videoNo + 'b_dmb_w.mp4';
let videoUrl2132 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1160' + videoSeries + videoTwo + '/h_1160' + videoSeries + videoTwo + '_dmb_w.mp4';
let videoUrl2133 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1160' + videoSeries + videoTwo + '/h_1160' + videoSeries + videoTwo + '_dm_w.mp4';
let videoUrl2134 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1165' + videoSeries + videoNo + '/h_1165' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2135 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1240' + videoSeries + videoNo + '/h_1240' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2136 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1240' + videoSeries + videoNo + '/h_1240' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl2137 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1245' + videoSeries + videoNo + '/h_1245' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2138 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_127' + videoSeries + codeArr[1] + '/h_127' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl2139 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_127' + videoSeries + videoNo + '/h_127' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2140 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_128' + videoSeries + codeArr[1] + '/h_128' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl2141 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1300' + videoSeries + codeArr[1] + '/h_1300' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl2142 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1300' + videoSeries + videoNo + '/h_1300' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2143 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1324' + videoSeries + codeArr[1] + '/h_1324' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2144 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1324' + videoSeries + videoNo + '/h_1324' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2145 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1350' + videoSeries + videoNo + '/h_1350' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2146 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1350' + videoSeries + videoNo + '/h_1350' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl2147 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1359' + videoSeries + codeArr[1] + '/h_1359' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2148 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1359' + videoSeries + codeArr[1] + '/h_1359' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl2149 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1359' + videoSeries + videoNo + '/h_1359' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl2150 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1371' + videoSeries + codeArr[1] + '/h_1371' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2151 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1378' + videoSeries + videoNo + '/h_1378' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2152 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1378' + videoSeries + videoNo + '/h_1378' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl2153 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1386' + videoSeries + videoNo + '/h_1386' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2154 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_139' + videoSeries + codeArr[1] + '/h_139' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2155 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_139' + videoSeries + codeArr[1] + '/h_139' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl2156 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_139' + videoSeries + codeArr[1] + '/h_139' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl2157 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1391' + videoSeries + videoNo + '/h_1391' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2158 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1416' + videoSeries + videoNo + '/h_1416' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2159 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1435' + videoSeries + videoNo + '/h_1435' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2160 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1435' + videoSeries + videoNo + '/h_1435' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl2161 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1440' + videoSeries + videoNo + '/h_1440' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2162 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1440' + videoSeries + videoNo + '/h_1440' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl2163 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1454' + videoSeries + videoNo + '/h_1454' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2164 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1454' + videoSeries + videoNo + '/h_1454' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl2165 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1462' + videoSeries + videoNo + '/h_1462' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2166 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1472' + videoSeries + videoNo + '/h_1472' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2167 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1472' + videoSeries + videoNo + '/h_1472' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl2168 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1489' + videoSeries + codeArr[1] + 'a/h_1489' + videoSeries + codeArr[1] + 'a_dmb_w.mp4';
let videoUrl2169 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1495' + videoSeries + codeArr[1] + '/h_1495' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2170 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1495' + videoSeries + videoNo + '/h_1495' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2171 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1515' + videoSeries + videoNo + '/h_1515' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2172 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1534' + videoSeries + videoNo + '/h_1534' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl2173 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1560' + videoSeries + videoNo + '/h_1560' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2174 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1575' + videoSeries + videoNo + '/h_1575' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2175 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1580' + videoSeries + videoNo + '/h_1580' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2176 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1580' + videoSeries + videoNo + '/h_1580' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl2177 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1594' + videoSeries + videoNo + '/h_1594' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2178 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1596' + videoSeries + codeArr[1] + '/h_1596' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2179 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1600' + videoSeries + videoNo + '/h_1600' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2180 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1605' + videoSeries + videoNo + '/h_1605' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2181 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1614' + videoSeries + videoNo + '/h_1614' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2182 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1615' + videoSeries + videoNo + '/h_1615' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2183 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1615' + videoSeries + videoNo + '/h_1615' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl2184 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1616' + videoSeries + videoNo + '/h_1616' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2185 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1631' + videoSeries + videoNo + '/h_1631' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2186 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1638' + videoSeries + codeArr[1] + '/h_1638' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2187 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1650' + videoSeries + videoNo + '/h_1650' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl2188 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1664' + videoSeries + codeArr[1] + '/h_1664' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2189 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1668' + videoSeries + videoNo + '/h_1668' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2190 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1674' + videoSeries + codeArr[1] + '/h_1674' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2191 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_170' + videoSeries + codeArr[1] + '/h_170' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2192 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1712' + videoSeries + codeArr[1] + '/h_1712' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2193 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1712' + videoSeries + codeArr[1] + '/h_1712' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl2194 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1714' + videoSeries + videoNo + '/h_1714' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2195 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1714' + videoSeries + videoNo + '/h_1714' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl2196 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1718' + videoSeries + videoNo + '/h_1718' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2197 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1718' + videoSeries + videoNo + '/h_1718' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl2198 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_172' + videoSeries + videoNo + '/h_172' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2199 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_175' + videoSeries + codeArr[1] + '/h_175' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2200 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_175' + videoSeries + codeArr[1] + '/h_175' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl2201 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_175' + videoSeries + codeArr[1] + '/h_175' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl2202 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_227' + videoSeries + codeArr[1] + '/h_227' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2203 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_227' + videoSeries + videoNo + '/h_227' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2204 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_237' + videoSeries + codeArr[1] + '/h_237' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2205 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_244' + videoSeries + codeArr[1] + '/h_244' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl2206 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_254' + videoSeries + codeArr[1] + '/h_254' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2207 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_254' + videoSeries + videoNo + '/h_254' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2208 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_283' + videoSeries + codeArr[1] + '/h_283' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2209 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_3/h_346' + videoSeries + codeArr[1] + '/h_346' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2210 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_4/h_422' + videoSeries + videoFour + '/h_422' + videoSeries + videoFour + '_dm_w.mp4';
let videoUrl2211 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_4/h_452' + videoSeries + codeArr[1] + '/h_452' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl2212 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_4/h_458' + videoSeries + videoNo + '/h_458' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2213 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_4/h_458' + videoSeries + videoNo + '/h_458' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl2214 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_4/h_480' + videoSeries + videoNo + '/h_480' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl2215 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_4/h_491' + videoSeries + codeArr[1] + '/h_491' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2216 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_4/h_491' + videoSeries + codeArr[1] + '/h_491' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl2217 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_4/h_491' + videoSeries + codeArr[1] + '/h_491' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl2218 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_5/h_585' + videoSeries + codeArr[1] + '/h_585' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl2219 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_5/h_585' + videoSeries + codeArr[1] + '/h_585' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl2220 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_6/h_635' + videoSeries + codeArr[1] + '/h_635' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2221 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_6/h_635' + videoSeries + codeArr[1] + '/h_635' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl2222 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_6/h_635' + videoSeries + codeArr[1] + '/h_635' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl2223 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_6/h_687' + videoSeries + codeArr[1] + '/h_687' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2224 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_6/h_687' + videoSeries + videoNo + '/h_687' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2225 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_6/h_687' + videoSeries + videoNo + '/h_687' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl2226 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_706' + videoSeries + videoNo + '/h_706' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2227 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_706' + videoSeries + videoNo + '/h_706' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl2228 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_706' + videoSeries + videoNo + '/h_706' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl2229 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_720' + videoSeries + codeArr[1] + '/h_720' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2230 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_720' + videoSeries + codeArr[1] + '/h_720' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl2231 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_720' + videoSeries + codeArr[1] + '/h_720' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl2232 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_720' + videoSeries + videoNo + '/h_720' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2233 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_720' + videoSeries + videoNo + '/h_720' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl2234 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_771' + videoSeries + codeArr[1] + '/h_771' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl2235 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_796' + videoSeries + codeArr[1] + '/h_796' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2236 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_796' + videoSeries + videoNo + '/h_796' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2237 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_796' + videoSeries + videoNo + '/h_796' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl2238 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_9/h_910' + videoSeries + videoNo + '/h_910' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2239 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_9/h_967' + videoSeries + codeArr[1] + '/h_967' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2240 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_9/h_967' + videoSeries + codeArr[1] + '/h_967' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl2241 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_9/h_967' + videoSeries + codeArr[1] + '/h_967' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl2242 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1233' + videoSeries + codeArr[1] + '/n_1233' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2243 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1445' + videoSeries.substr(0, 4) + codeArr[1] + '/n_1445' + videoSeries.substr(0, 4) + codeArr[1] + '_dmb_w.mp4';
let videoUrl2244 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_7/n_707' + videoSeries + codeArr[1] + '/n_707' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2245 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_7/n_707' + videoSeries + codeArr[1] + '/n_707' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl2246 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_7/n_707' + videoSeries + codeArr[1] + 'a/n_707' + videoSeries + codeArr[1] + 'a_dmb_w.mp4';
let videoUrl2247 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_7/n_709' + videoSeries + codeArr[1] + '/n_709' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl2248 = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td027' + videoSeries + videoNo + '/td027' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl2249 = 'https://cc3001.dmm.com/vrsample/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + videoNo + '/1' + videoSeries + videoNo + 'vrlite.mp4';
let videoUrl2250 = 'https://cc3001.dmm.com/vrsample/1/13' + videoSeries[0] + '/13' + videoSeries + videoNo + '/13' + videoSeries + videoNo + 'vrlite.mp4';
let videoUrl2251 = 'https://cc3001.dmm.com/vrsample/2/24' + videoSeries[0] + '/24' + videoSeries + videoNo + '/24' + videoSeries + videoNo + 'vrlite.mp4';
let videoUrl2252 = 'https://cc3001.dmm.com/vrsample/5/55' + videoSeries[0] + '/55' + videoSeries + videoNo + '/55' + videoSeries + videoNo + 'vrlite.mp4';
let videoUrl2253 = 'https://cc3001.dmm.com/vrsample/h/h_1/h_1248' + videoSeries + videoNo + '/h_1248' + videoSeries + videoNo + 'vrlite.mp4';
let videoUrl2254 = 'https://cc3001.dmm.com/vrsample/h/h_1/h_1321' + videoSeries + videoNo + '/h_1321' + videoSeries + videoNo + 'vrlite.mp4';
let videoUrl2255 = 'https://cc3001.dmm.com/vrsample/h/h_9/h_955' + videoSeries + videoNo + '/h_955' + videoSeries + videoNo + 'vrlite.mp4';
let videoUrl2256 = 'https://sample.mgstage.com/sample/documentdehamehame/498' + videoSeries.substr(0, 3) + '/' + codeArr[1] + '/498' + code + '_sample.mp4';
let videoUrl2257 = 'https://sample.mgstage.com/sample/documentv/277' + videoSeries.substr(0, 3) + '/' + codeArr[1] + '/277' + code + '_sample.mp4';
let videoUrl2258 = 'https://sample.mgstage.com/sample/luxutv/259luxu/' + codeArr[1] + '/259' + code + '_sample.mp4';
let videoUrl2259 = 'https://sample.mgstage.com/sample/mercury/298' + videoSeries + '/' + codeArr[1] + '/' + code + '_sample.mp4';
let videoUrl2260 = 'https://sample.mgstage.com/sample/reiwashirouto/383' + videoSeries.substr(0, 4) + '/' + codeArr[1] + '/383' + code + '_sample.mp4';
// 以上数据在待测试数据全部完成后删除
// 以下数据位mgs规则匹配 待完成后删除上面的单个规则
let videoUrl2700 = 'https://sample.mgstage.com/sample/around/' + cheqz + vSeries + '/' + codeArr[1] + '/' + vSeries.toUpperCase() + '_' + codeArr[1] + chehz + '_sample.mp4';
let videoUrl2701 = 'https://sample.mgstage.com/sample/bigmorkal/' + cheqz + vSeries + '/' + codeArr[1] + '/' + vSeries.toUpperCase() + '-' + codeArr[1] + chehz + '.mp4';
let videoUrl2702 = 'https://sample.mgstage.com/sample/documentdehamehame/' + cheqz + vSeries + '/' + codeArr[1] + '/' + cheqz + vSeries.toUpperCase() + '-' + codeArr[1] + chehz + '_sample.mp4';
let videoUrl2703 = 'https://sample.mgstage.com/sample/documentv/' + cheqz + vSeries + '/' + codeArr[1] + '/' + cheqz + vSeries.toUpperCase() + '-' + codeArr[1] + chehz + '_sample.mp4';
let videoUrl2704 = 'https://sample.mgstage.com/sample/giga/' + cheqz + vSeries + '/' + codeArr[1] + '/' + vSeries.toUpperCase() + '-' + codeArr[1] + chehz + '.mp4';
let videoUrl2705 = 'https://sample.mgstage.com/sample/ikinarierozanmai/' + cheqz + vSeries + '/' + codeArr[1] + '/' + cheqz + vSeries.toUpperCase() + '-' + codeArr[1] + chehz + '.mp4';
let videoUrl2706 = 'https://sample.mgstage.com/sample/lahaina/' + cheqz + vSeries + '/' + codeArr[1] + '/' + vSeries.toUpperCase() + '-' + codeArr[1] + chehz + '.mp4'; //
let videoUrl2707 = 'https://sample.mgstage.com/sample/lahaina/' + cheqz + vSeries + '/' + codeArr[1] + '/' + vSeries.toUpperCase() + '-' + codeArr[1] + chehz + '_sam.mp4';
let videoUrl2708 = 'https://sample.mgstage.com/sample/luxutv/' + cheqz + vSeries + '/' + codeArr[1] + '/' + cheqz + vSeries.toUpperCase() + '-' + codeArr[1] + chehz + '_sample.mp4';
let videoUrl2709 = 'https://sample.mgstage.com/sample/mercury/' + cheqz + vSeries + '/' + codeArr[1] + '/' + vSeries.toUpperCase() + '-' + codeArr[1] + chehz + '_sample.mp4';
let videoUrl2710 = 'https://sample.mgstage.com/sample/mirai/' + cheqz + vSeries + '/' + codeArr[1] + '/' + vSeries.toUpperCase() + '-' + codeArr[1] + chehz + '.mp4';
let videoUrl2711 = 'https://sample.mgstage.com/sample/mirai/' + cheqz + vSeries + '/' + codeArr[1] + '/' + vSeries.toUpperCase() + '-' + videoThree + chehz + '.mp4';
let videoUrl2712 = 'https://sample.mgstage.com/sample/nadeshiko/' + cheqz + vSeries + '/' + codeArr[1] + '/' + cheqz + vSeries.toUpperCase() + '-' + codeArr[1] + chehz + '.mp4';
let videoUrl2713 = 'https://sample.mgstage.com/sample/nanpatv/' + cheqz + vSeries + '/' + codeArr[1] + '/' + cheqz + vSeries.toUpperCase() + '-' + codeArr[1] + chehz + '_sample.mp4';
let videoUrl2714 = 'https://sample.mgstage.com/sample/plum/' + cheqz + vSeries + '/' + codeArr[1] + '/' + cheqz + vSeries.toUpperCase() + '-' + codeArr[1] + chehz + '_sample.mp4';
let videoUrl2715 = 'https://sample.mgstage.com/sample/prestige/' + vSeries + '/' + codeArr[1] + '/' + vSeries.toUpperCase() + '-' + codeArr[1] + chehz + '.mp4';
let videoUrl2716 = 'https://sample.mgstage.com/sample/reiwashirouto/' + cheqz + vSeries.substr(0, 4) + '/' + codeArr[1] + '/' + cheqz + vSeries.toUpperCase() + '-' + codeArr[1] + chehz + '_sample.mp4';
let videoUrl2717 = 'https://sample.mgstage.com/sample/scute/' + cheqz + vSeries + '/' + codeArr[1] + '/' + vSeries.toUpperCase() + '_' + codeArr[1] + chehz + '.mp4';
let videoUrl2718 = 'https://sample.mgstage.com/sample/trump/' + cheqz + vSeries + '/' + codeArr[1] + '/' + cheqz + vSeries.toUpperCase() + '-' + codeArr[1] + chehz + '.mp4';
let videoUrl2719 = 'https://sample.mgstage.com/sample/trump/' + cheqz + vSeries + '/' + codeArr[1] + '/' + vSeries.toUpperCase() + '-' + codeArr[1] + chehz + '_sample.mp4';
if (null != code.match(/^(ORETDP-)/i)) { videoUrl = 'https://sample.mgstage.com/sample/orenoshirouto/' + cheqz + vSeries + '/' + codeArr[1] + '/' + cheqz + vSeries.toUpperCase() + '-' + codeArr[1] + chehz + '.mp4' }
// https://sample.mgstage.com/sample/orenoshirouto/230oretdp/001/230ORETDP-001.mp4
if (null != code.match(/^(OREDG-)/i)) { videoUrl = 'https://sample.mgstage.com/sample/orenoshirouto/' + cheqz + vSeries + '/' + codeArr[1] + '/' + cheqz + vSeries.toUpperCase() + '-' + codeArr[1] + chehz + '_sample.mp4' }
// https://sample.mgstage.com/sample/orenoshirouto/230oredg/001/230OREDG-001_sample.mp4
if (null != code.match(/^(OPPX|OPPL)/i)) { videoUrl = 'https://sample.mgstage.com/sample/lahaina/' + cheqz + vSeries + '/' + codeArr[1] + '/' + vSeries.toUpperCase() + '_' + codeArr[1] + chehz + '.mp4' }
// https://sample.mgstage.com/sample/lahaina/031oppx/002/OPPX_002.mp4
// https://sample.mgstage.com/sample/lahaina/031oppl/311/OPPL_311.mp4
if (null != code.match(/^(NMH-)/i)) { videoUrl = 'https://sample.mgstage.com/sample/koyacho/' + cheqz + vSeries + '/' + codeArr[1] + '/' + vSeries.toUpperCase() + '-' + codeArr[1] + chehz + '.mp4' }
// https://sample.mgstage.com/sample/koyacho/057nmh/04/NMH-04.mp4
// https://sample.mgstage.com/sample/koyacho/057nmh/03/NMH-03.mp4
// mgs规则匹配结束
let videoUrl9990 = 'https://cc3001.dmm.com/hlsvideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_mhb_w.m3u8';
let videoUrl9991 = 'https://cc3001.dmm.com/hlsvideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dmb_w.m3u8';
let videoUrl9992 = 'https://cc3001.dmm.com/hlsvideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + 'mmb.m3u8';
let videoUrl9993 = 'https://cc3001.dmm.com/hlsvideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/playlist.m3u8';
let videoUrl9996 = 'https://cc3001.dmm.com/hlsvideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_mhb_w.m3u8';
let videoUrl9997 = 'https://cc3001.dmm.com/hlsvideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dmb_w.m3u8';
let videoUrl9998 = 'https://cc3001.dmm.com/hlsvideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + 'mmb.m3u8';
let videoUrl9999 = 'https://cc3001.dmm.com/hlsvideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/playlist.m3u8';
let video = `
`;
// 下面为调试使用,不喜欢的可以把两段注释中间的删掉(显示番号和预览片地址:检查是否存在番号错误\张冠李戴等现象)
// 片商faleno.jp内部地址 暂不支持
if (code.match(/[a-zA-Z]{2,12}-\d{2,12}/i)) {
if (code.match(/^(ADN-|ADS-|ATAD-|ATID-|ATKD-|ATVR-|AVGL-002|AVGL-102|AVOP-002|AVOP-164|AVOP-263|AVOP-355|AVOP-445|DSP-|JBD-|PFES-007|PFES-029|RBD-|RBK-|SAME-|SHK-|SHKD-|SSPD-|AZSD-|YUJ-)/i)) {
var host = 'https://attackers.net/works/detail';
var maker = 'Attackers(凌辱剧情专门制造商)';
} else if (code.match(/^(AVGL-105|AVOP-454|AVOP-305|AVOP-203|AVOP-125|AVOP-014|DMM-|EBOD-|EBVR-|EYAN-|MKCK-|PFES-014|PFES-051|EBWH-)/i)) {
var host = 'https://av-e-body.com/works/detail';
var maker = 'Av-E-BODY(各类单体女优制造商)';
} else if (code.match(/^(OPVR-|OPBD-|OPUD-|AAJB-006|AVOP-135|AVGL-114|AAJB-006)/i)) {
var host = 'https://av-opera.jp/works/detail';
var maker = 'Av-opera(恋屎癖专门制造商)';
} else if (code.match(/^(BF-|PFES-|AVGL-134|AVOP-386)/i)) {
var host = 'https://befreebe.com/works/detail';
var maker = 'Befreebe(Cosplay单体女优制造商)';
} else if (code.match(/^(AVOP-309|AVOP-205|AVOP-064|BBI-|BEB-|BIB-|BID-|BIST-|BWB-|CJOB-|CJOD-|CJVR-|PFES-054)/i)) {
var host = 'https://bi-av.com/works/detail';
var maker = 'Bi-av美(痴女专门制造商)';
} else if (code.match(/^(AVOP-428|AVOP-320|AVOP-272|BBAN-|BBSS-|BBVR-|LLAN-|PFES-010|PFES-043|PTPFES-)/i)) {
var host = 'https://bibian-av.com/works/detail';
var maker = 'Bibian-avビビアン(女同性恋专门制造商)';
} else if (code.match(/^(AVGL-128|AVOP-423|AVOP-319|AVOP-256|AVOP-169|AVOP-061|AVOPVR-025|DASD-|DASS-|DAZD-|DMM-|DSVR-|KDASD-|PFES-015|PFES-041|PLA-|PLB-)/i)) {
var host = 'https://dasdas.jp/works/detail';
var maker = 'Dasdasダスッ!(QJ中出专门制造商)';
} else if (code.match(/^(AVOP-451|AVOP-304|AVOP-207|AVOP-174|AVOP-041|FCVR-|FINH-|GCF-|JFB-|JUFE-|JUNY-|NIMA-|NYB-|PFES-002|PFES-034)/i)) {
var host = 'https://fitch-av.com/works/detail';
var maker = 'Fitch(熟女、人妻专门制造商)';
} else if (code.match(/^(AVGL-|HJBB-|HJMO-|AVOP-344|AVOP-226)/i)) {
var host = 'https://hajimekikaku.com/works/detail';
var maker = 'Hajimekikaku宇宙企划(素人女优制造商)';
} else if (code.match(/^(HBLA-|HBVR-|HHF-|HHHVR-|HUNBL-|HUNT-|HUNTA-|HUNTB-|HUNVR-|HUNVRC-|PFES-008|PFES-044|ROYD-|TYSF-)/i)) {
var host = 'https://hhh-av.com/works/detail';
var maker = 'Hhh-av(Hunter)';
} else if (code.match(/^(AVOP-410|AVOP-314|AVOPVR-042|HMN-|HND-|HNDB-|HNDS-|HNIM-|HNJC-|HNKY-|HNSE-|HNTV-|HNVR-|KRND-|PFES-022|PFES-055)/i)) {
var host = 'https://honnaka.jp/works/detail';
var maker = 'Honnaka本中(中出専门制造商)';
} else if (code.match(/^(ALAD-|AN-|AND-|ANPD-|AVGL-001|AVGL-101|AVOP-401|AVOP-301|AVOP-201|AVOP-124|AVOP-001|AVOPVR-001|COSD-|DAN-|HP-|HPD-|IDBD-|IPIT-|IPSD-|IPTD-|IPVR-|IPX-|IPZZ-|IPZ-|KIPX-|PFES-012|PFES-038|SUPD-|SUPZ-)/i)) {
var host = 'https://ideapocket.com/works/detail';
var maker = 'IdeaPocket(专属女优制造商/开发单体女优为主)';
} else if (code.match(/^(AVGL-012|AVGL-117|AVOP-056|AVOP-104|AVOP-212|AVOP-348|AVOP-437|CAWD-|KANE-|KAPD-|KAVR-|KAWD-|KCAWD-|KWBD-|KWSD-|KWSR-|NTRK-|PFES-021|PFES-032)/i)) {
var host = 'https://kawaiikawaii.jp/works/detail';
var maker = 'kawaii(女大学生专门制造商)';
} else if (code.match(/^(BLK-|KIBD-|KIFD-|KIRD-|KISD-|KIVR-|SET-|AVOP-349)/i)) {
var host = 'https://kirakira-av.com/works/detail';
var maker = 'kira☆kira(辣妹专门制造商)';
} else if (code.match(/^(ACHJ-|AVOP-187|AVOP-282|AVOP-464|JFB-|JUC-|JUK-|JUKD-|JUL-|JUMS-|JUQ-|JUSD-|JUVR-|JUX-|JUY-|MDON-|OBA-|OBE-|PFES-006|PFES-039|ROE-|ROEB-|URE-|UREC-)/i)) {
var host = 'https://madonna-av.com/works/detail';
var maker = 'Madonna(熟女、人妻专门制造商)';
} else if (code.match(/^(AOM-|MMND-|MMVR-|MMXD-|AVOP-143)/i)) {
var host = 'https://miman.jp/works/detail';
var maker = 'Miman(巨乳少女制造商)';
} else if (code.match(/^(EMLB-|MVR-|MISM-|AVOP-447)/i)) {
var host = 'https://mko-labo.net/works/detail';
var maker = 'Mko-labo(M女専门制造商)';
} else if (code.match(/^(AVGL-027|AVOP-210|AVOP-009|FKMDZ-|KMIDE-|MDED-|MDE-|MDFD-|MDF-|MDGD-|MDG-|MDID-|MDI-|MDJD-|MDJ-|MDLD-|MDL-|MDMD-|MDOD-|MDPD-|MDQD-|MDRD-|MDUD-|MDVD-|MDVR-|MDWD-|MIAA-|MIAD-|MIAE-|MIAS-|MIBD-|MIDD-|MIDE-|MIDV-|MIFD-|MIGD-|MIID-|MIMK-|MIMU-|MINT-|MIQD-|MIRD-|MIVD-|MIXS-|MIZD-|OPEN-|PFES-001|PFES-028)/i)) {
var host = 'https://moodyz.com/works/detail';
var maker = 'MOODYZ(专属女优制造商)';
} else if (code.match(/^(AVGL-028|AVGL-143|AVOP-381|AVOP-228|AVOP-163|AVOP-047|MUCD-|MUDR-|MUKC-|MUKD-|MUVR-|NMU-|PFES-016|PFES-050|PTPFES-|SMCD-)/i)) {
var host = 'https://muku.tv/works/detail';
var maker = '無垢(JK制服美少女专门制造商)';
} else if (code.match(/^(AVGL-008|AVGL-111|AVOP-316|AVOP-245|AVOP-166|MVBD-|MVFD-|MVGD-|MVMD-|MVSD-|PFES-019|PFES-046)/i)) {
var host = 'https://mvg.jp/works/detail';
var maker = 'エムズビデオグループMVG(吞精专门制造商)';
} else if (code.match(/^(NJVR-|NNPJ-|NPJB-)/i)) {
var host = 'https://nanpa-japan.jp/works/detail';
var maker = 'Nanpa-japan(素人猎艳専门制造商)';
} else if (code.match(/^(AVGL-113|AVOP-418|AVOP-383|AVOP-246|AVOP-147|AVOP-055|PFES-017|PFES-052|PPBD-|PPFD-|PPMD-|PPPD-|PPPE-|PPSD-|PPUD-|PPVR-)/i)) {
var host = 'https://oppai-av.com/works/detail';
var maker = 'OPPAI(恋胸癖専门制造商)';
} else if (code.match(/^(AVGL-024|AVGL-135|AVOP-239|AVOP-129|AVOP-067|KPRED-|PBD-|PFES-009|PFES-048|PGD-|PID-|PJD-|PRED-|PRMJ-|PRTD-|PRVR-|PTV-|PXD-)/i)) {
var host = 'https://premium-beauty.com/works/detail';
var maker = 'Premium(专属女优制造商/单体女优)';
} else if (code.match(/^(RVR-|RBB-|RKI-|AVOP-412)/i)) {
var host = 'https://rookie-av.jp/works/detail';
var maker = 'Rookie-av(企划专门制造商)';
} else if (code.match(/^(AVOP-127|FKONE-|KSSIS-|OFJE-|ONE-|ONED-|ONSD-|PFES-005|PFES-040|SIVR-|SNIS-|SOE-|SPND-|SPS-|SSIS-|SSNI-)/i)) {
var host = 'https://s1s1s1.com/works/detail';
var maker = 'S1 NO.1 STYLE(专属女优制造商/人气女优与美形女优)';
} else if (code.match(/^(AVGL-018|AVGL-129|AVOP-368|AVOP-185|AVOP-032|MBYD-|MDYD-|MEVR-|MEYD-|MNYD-|MTYD-|MXYD-|PFES-013|PFES-047)/i)) {
var host = 'https://tameikegoro.jp/works/detail';
var maker = '溜池ゴロー(熟女、人妻专门制造商)';
} else if (code.match(/^(CLVR-|STOL-|CLUB-|AVOP-330)/i)) {
var host = 'https://to-satsu.com/works/detail';
var maker = 'To-satsu(按摩偷窥専门制造商)';
} else if (code.match(/^(VVVD-|VICD-|VIZD-|VSPD-|AVGL-107|AVOP-165)/i)) {
var host = 'https://v-av.com/works/detail';
var maker = 'V-av(SM专门制造商)';
} else if (code.match(/^(JUFD-)/i)) {
if (code.match(/^JUFD-(0\d{2}|1[0-3]\d|14[0-3])/i)) {
var host = 'https://madonna-av.com/works/detail';
var maker = 'Madonna(熟女、人妻专门制造商)';
} else {
var host = 'https://fitch-av.com/works/detail';
var maker = 'Fitch(熟女、人妻专门制造商)';
}
} else {
var host = 'https://wanz-factory.com/works/detail';
var maker = 'Wanz Factory(中出单体女优制造商)';
}
let codee = code.replace("-", "");
GM_xmlhttpRequest({
url: host + `/` + codee,
method: "GET",
responseType: "document",
onload: ({ response }) => {
var isLoading = true;
if (!response) {
isLoading = false;
return;
}
const avsrc = response
?.querySelector(".video video")?.getAttribute("src") ?? "";
if (!avsrc) {
isLoading = false;
return;
}
let video = $('\
' + code + ' ' + avsrc + '
播放 \
此处为片商
"' + maker + '" 直获地址,区别与上面的规则匹配,如果存在资源,可能比规则匹配速度快些\
');
$(obj).before(video)
},
});
}
// 不喜欢的可以把上下两段注释中间的删掉
// sod start avsrc参数只为校验页面是否存在 此页面的mp4播放地址不可外链 不可直接播放
if (code.match(/^(STARS-|SODS-|DSVR-)/i)) {
var host = 'https://ec.sod.co.jp/prime/videos/sample.php?id=';
var maker = 'SOD Create';
GM_xmlhttpRequest({
url: host + code,
method: "GET",
responseType: "document",
onload: ({ response }) => {
var isLoading = true;
if (!response) {
isLoading = false;
return;
}
const avsrc = response
?.querySelector(".videos_favoriteb a")?.getAttribute("href") ?? "";
if (!avsrc) {
isLoading = false;
return;
}
let video = $('');
$(obj).before(video)
},
});
}
// sod end
$(obj).before(video)
}
//msin 开 addVideoMSIN (code, objMSIN) {
// 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
// 番号系列// 4(车牌后缀)此项定义来源:大部分完整车牌都有固定规律,但还是出现了个别番号系列在完整车牌后还加了个别字母 例如:a_dmb_w.mp4\re_dmb_w.mp4等特殊规则,有人会问为什么不加入postfix中,细心的会发现这个字母还会再上级路径出现,所以特别摘出来定义。后期会逐渐在对象列表添加,删除下面的特例规则。
//msin 终
//MGS- 开
addVideoMGS (code, objMGS) {
let codeArr = code.split(/-/); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let vSeries = codeArr[0].replace(/^[0-9]+/g, "").toUpperCase(); // 番号系列
let videoSeries = codeArr[0].toLowerCase(); //grabd更换为grace
let idNum = codeArr[1];
let postfix = "_dm_w"; // 3(分辨率默认定于为 _dmb_w 和 _dm_w,此两项无需在对象列表声明)
let chehz = ""; // 4(车牌后缀)此项定义来源:大部分完整车牌都有固定规律,但还是出现了个别番号系列在完整车牌后还加了个别字母 例如:a_dmb_w.mp4\re_dmb_w.mp4等特殊规则,有人会问为什么不加入postfix中,细心的会发现这个字母还会再上级路径出现,所以特别摘出来定义。后期会逐渐在对象列表添加,删除下面的特例规则。
let cheqz = ""; // 1(车牌前缀)
if (fanxi[videoSeries]) {
cheqz = fanxi[videoSeries][0] ? fanxi[videoSeries][0] : cheqz;
chehz = fanxi[videoSeries][3] ? fanxi[videoSeries][3] : chehz;
postfix = fanxi[videoSeries][2] ? fanxi[videoSeries][2] : postfix;
idNum = fanxi[videoSeries][1] ? fanxi[videoSeries][1] + idNum : idNum;
videoSeries = fanxi[videoSeries][4] ? fanxi[videoSeries][4] : fanxi[videoSeries][0] + videoSeries;
} else {
idNum = "00" + idNum;
}
let video = $('\
\
');
$(objMGS).before(video)
}
//MGS- 终
addVideoN (code, objN) {
let videoUrl = 'https://my.cdn.tokyo-hot.com/media/samples/' + code + '.mp4';
if (null != location.href.match(/crazyasia/i)) {
videoUrl = 'https://my.cdn.tokyo-hot.com/media/samples/' + code + '.mp4'
} //东京热 tokyo-hot AB-001
if (null != code.match(/RED048/i)) {
videoUrl = 'https://my.cdn.tokyo-hot.com/media/samples/5923.mp4'
}
if (null != code.match(/RED065/i)) {
videoUrl = 'https://my.cdn.tokyo-hot.com/media/samples/5924.mp4'
}
let videoUrl2 = 'https://ppvclips02.aventertainments.com/00m3u8/' + code + '/' + code + '.mp4';
let videoUrl3 = 'https://my.cdn.tokyo-hot.com/media/samples/' + code.toLowerCase() + '.mp4';
//https://ppvclips02.aventertainments.com/00m3u8/RED170/RED170.m3u8
//https://ppvclips02.aventertainments.com/00m3u8/RHJ-210/RHJ-210.m3u8
//https://ppvclips02.aventertainments.com/00m3u8/RED170/stream-2-2200000/index.m3u8
let videoUrl4 = 'https://ppvclips02.aventertainments.com/00m3u8/' + code + '/' + code + '.m3u8';
let video = `
`;
$(objN).before(video)
}
addVideoY (code, objY) {
let videoUrl = 'https://smovie.1pondo.tv/sample/movies/' + code + '/1080p.mp4';
let videoUrl2 = 'https://smovie.1pondo.tv/sample/movies/' + code + '/480p.mp4';
let videoUrl3 = 'https://smovie.1pondo.tv/sample/movies/' + code + '/520p.mp4';
let videoUrl4 = 'https://smovie.1pondo.tv/sample/movies/' + code + '/720p.mp4';
let videoUrl5 = 'https://ppvclips02.aventertainments.com/01m3u8/1pon_' + code + '/1pon_' + code + '.m3u8'; // https://ppvclips02.aventertainments.com/01m3u8/1pon_010323_001/1pon_010323_001.m3u8
let videoUrl6 = 'https://fms.1pondo.tv/sample/' + code + '/ts.1080p.mp4.m3u8'; // https://fms.1pondo.tv/sample/010323_001/ts.1080p.mp4.m3u8
//一本道 +pacopacomama 数字规则一致
let videoUrl7 = 'https://fms.pacopacomama.com/hls/sample/pacopacomama.com/' + code + '/1080p.mp4';
let videoUrl8 = 'https://fms.pacopacomama.com/hls/sample/pacopacomama.com/' + code + '/720p.mp4';
let videoUrl9 = 'https://smovie.pacopacomama.com/sample/movies/' + code + '/480p.mp4';
let videoUrl10 = 'https://smovie.1pondo.tv/sample/movies/' + code + '/480p.mp4';
// 013123_788 https://smovie.pacopacomama.com/sample/movies/013123_788/480p.mp4
let video = `
`;
$(objY).before(video)
}
addVideoC (code, objC) {
let videoUrl = 'https://smovie.caribbeancom.com/sample/movies/' + code + '/1080p.mp4';
let videoUrl2 = 'https://smovie.caribbeancom.com/sample/movies/' + code + '/720p.mp4';
let videoUrl3 = 'https://smovie.caribbeancom.com/sample/movies/' + code + '/480p.mp4';
//加勒比
let video = `
`;
$(objC).before(video)
}
addVideoH (code, objH) {
let videoUrl = 'https://v4.dmmav.top/sample/movies/' + code + '/1080p.mp4';
let videoUrl2 = 'https://smovie.10musume.com/sample/movies/' + code + '/1080p.mp4';
let videoUrl3 = 'https://smovie.10musume.com/sample/movies/' + code + '/720p.mp4';
let videoUrl4 = 'https://v4.dmmav.top/sample/movies/' + code + '/720p.mp4';
let videoUrl5 = 'https://smovie.10musume.com/sample/movies/' + code + '/520p.mp4';
let videoUrl6 = 'https://v4.dmmav.top/sample/movies/' + code + '/520p.mp4';
let videoUrl7 = 'https://smovie.10musume.com/sample/movies/' + code + '/480p.mp4';
let videoUrl8 = 'https://v4.dmmav.top/sample/movies/' + code + '/480p.mp4';
//天然むすめ https://smovie.10musume.com/sample/movies/052319_01/1080p.mp4
//天然むすめ https://v4.dmmav.top/sample/movies/051822_01/480p.mp4 无需翻墙
let video = `
`;
$(objH).before(video)
}
addVideoPM (code, objPM) {
let videoUrl = 'https://fms.pacopacomama.com/hls/sample/pacopacomama.com/' + code + '/1080p.mp4';
let videoUrl2 = 'https://fms.pacopacomama.com/hls/sample/pacopacomama.com/' + code + '/720p.mp4';
let videoUrl9 = 'https://smovie.pacopacomama.com/sample/movies/' + code + '/480p.mp4';
//https://fms.pacopacomama.com/hls/sample/pacopacomama.com/103115_520/1080p.mp4
let video = `
`;
$(objPM).before(video)
}
// VR-系列 特殊系列:3DSVR- https://cc3001.dmm.com/vrsample/2/2wp/2wpvr00197/2wpvr00197vrlite.mp4
addVideoVR (code, objVR) {
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(codeArr[1], 5);
let idNum = codeArr[1];
if (fanxi[videoSeries]) {
idNum = fanxi[videoSeries][1] ? fanxi[videoSeries][1] + idNum : idNum;
videoSeries = fanxi[videoSeries][4] ? fanxi[videoSeries][4] : fanxi[videoSeries][0] + videoSeries;
} else {
idNum = "00" + idNum;
}//https://cc3001.dmm.com/vrsample/h/h_1/h_1285bikmvr00162/h_1285bikmvr00162vrlite.mp4
let videoUrl = 'https://cc3001.dmm.com/vrsample/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + 'vrlite.mp4';
if (null != code.match(/^(ADVR-073)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/4/43a/43adv0304/43adv0304_sm_s.mp4' }
if (null != code.match(/^(ADVR-083)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/4/43a/43advr0083/43advr0083_sm_s.mp4' }
if (null != code.match(/^(ADVR-099)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/4/43a/43adv0344/43adv0344_sm_s.mp4' }
if (null != code.match(/^(ADVR-110)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/4/43a/43adv0357/43adv0357_sm_s.mp4' }
if (null != code.match(/^(ADVR-110)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/4/43a/43adv0357/43adv0357_sm_s.mp4' }
if (null != code.match(/^(ADVR-115)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/4/43a/43adv0364/43adv0364_sm_s.mp4' }
if (null != code.match(/^(ADVR-137)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/4/43a/43adv0393/43adv0393_sm_s.mp4' }
if (null != code.match(/^(ADVR-138)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/4/43a/43adv0395/43adv0395_sm_s.mp4' }
if (null != code.match(/^(ADVR-139)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/4/43a/43adv0396/43adv0396_sm_s.mp4' }
if (null != code.match(/^(ADVR-142)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/4/43a/43adv0403/43adv0403_sm_s.mp4' }
if (null != code.match(/^(ADVR-149)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/4/43a/43advvsr0423/43advvsr0423_sm_s.mp4' }
if (null != code.match(/^(ADVR-158)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/4/43a/43advvsr0436/43advvsr0436_sm_s.mp4' }
if (null != code.match(/^(ADVR-159)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/4/43a/43advvsr0439/43advvsr0439_sm_s.mp4' }
if (null != code.match(/^(ADVR-160)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/4/43a/43advvsr0440/43advvsr0440_sm_s.mp4' }
if (null != code.match(/^(ADVR-246)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/4/43a/43advvsr0425/43advvsr0425_sm_s.mp4' }
if (null != code.match(/^(ADVR-515)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/4/43a/43advr0515r/43advr0515r_sm_s.mp4' }
let videoUrl2 = 'https://cc3001.dmm.com/vrsample/1/13' + videoSeries[0] + '/13' + videoSeries + videoNo + '/13' + videoSeries + videoNo + 'vrlite.mp4';
let videoUrl3 = 'https://cc3001.dmm.com/vrsample/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + videoNo + '/1' + videoSeries + videoNo + 'vrlite.mp4';
let videoUrl4 = 'https://cc3001.dmm.com/vrsample/2/24' + videoSeries[0] + '/24' + videoSeries + videoNo + '/24' + videoSeries + videoNo + 'vrlite.mp4';
let videoUrl5 = 'https://cc3001.dmm.com/vrsample/h/h_9/h_955' + videoSeries + videoNo + '/h_955' + videoSeries + videoNo + 'vrlite.mp4';
let videoUrl6 = 'https://cc3001.dmm.com/vrsample/h/h_1/h_1248' + videoSeries + videoNo + '/h_1248' + videoSeries + videoNo + 'vrlite.mp4';
let videoUrl7 = 'https://cc3001.dmm.com/vrsample/h/h_1/h_1321' + videoSeries + videoNo + '/h_1321' + videoSeries + videoNo + 'vrlite.mp4';
let videoUrl8 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1245' + videoSeries + videoNo + '/h_1245' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl9 = 'https://cc3001.dmm.com/litevideo/freepv/1/13' + videoSeries[0] + '/13' + videoSeries + videoNo + '/13' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl10 = 'https://cc3001.dmm.com/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + videoNo + '/1' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl11 = 'https://cc3001.dmm.com/litevideo/freepv/2/24' + videoSeries[0] + '/24' + videoSeries + videoNo + '/24' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl12 = 'https://cc3001.dmm.com/vrsample/5/55' + videoSeries[0] + '/55' + videoSeries + videoNo + '/55' + videoSeries + videoNo + 'vrlite.mp4';
let videoUrl13 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl14 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl15 = 'https://cc3001.dmm.com/vrsample/2/2' + videoSeries.substr(0, 2) + '/2' + videoSeries + videoNo + '/2' + videoSeries + videoNo + 'vrlite.mp4';
let videoUrl16 = 'https://cc3001.dmm.com/vrsample/h/h_1/h_1127' + videoSeries + videoNo + '/h_1127' + videoSeries + videoNo + 'vrlite.mp4'; // GOPJ-382 https://cc3001.dmm.com/vrsample/h/h_1/h_1127gopj00382/h_1127gopj00382vrlite.mp4
let videoUrl17 = 'https://cc3001.dmm.com/vrsample/h/h_1/h_1468' + videoSeries + videoNo + '/h_1468' + videoSeries + videoNo + 'vrlite.mp4'; // COSVR-001 https://cc3001.dmm.com/vrsample/h/h_1/h_1468cosvr00001/h_1468cosvr00001vrlite.mp4
let videoUrl18 = 'https://cc3001.dmm.com/vrsample/h/h_1/h_1256' + videoSeries + videoNo + '/h_1256' + videoSeries + videoNo + 'vrlite.mp4';
let videoUrl19 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl20 = 'https://cc3001.dmm.com/litevideo/freepv/5/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + 'r/' + videoSeries + codeArr[1] + 'r_sm_s.mp4';
let videoUrl21 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1248' + videoSeries + videoNo + '/h_1248' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl22 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1248' + videoSeries + videoNo + '/h_1248' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl23 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_173' + videoSeries + videoNo + '/h_173' + videoSeries + videoNo + '_dm_w.mp4';
let video = `
`;
// sod start avsrc参数只为校验页面是否存在 此页面的mp4播放地址不可外链 不可直接播放
if (code.match(/^(STARS-|SODS-|DSVR-)/i)) {
var host = 'https://ec.sod.co.jp/prime/videos/sample.php?id=';
var maker = 'SOD Create';
let codee = code.replace("DSVR", "3DSVR");
GM_xmlhttpRequest({
url: host + codee,
method: "GET",
responseType: "document",
onload: ({ response }) => {
var isLoading = true;
if (!response) {
isLoading = false;
return;
}
const avsrc = response
?.querySelector(".videos_favoriteb a")?.getAttribute("href") ?? "";
if (!avsrc) {
isLoading = false;
return;
}
let video = $('');
$(objVR).before(video)
},
});
}
// sod end
$(objVR).before(video)
}
//适配dandan-系列 全5位00 DMM分辨率 mhb_w.mp4=3000 kbps\dmb_w.mp4=1500 kbps\dm_w.mp4=1000 kbps\sm_w.mp4=300 kbps
// MDTM-系列 1、已有两种84和m开头 2、id仅有3位数 MDTM-804 https://cc3001.dmm.com/litevideo/freepv/m/mdt/mdtm00804/mdtm00804_dmb_w.mp4 https://cc3001.dmm.com/litevideo/freepv/8/84m/84mdtm528/84mdtm528_dmb_w.mp4
addVideoMDTM (code, objMDTM) {
var reg = /(\d{2,15})/i;
var qhzNum = code.match(reg)[0];
let codeArr = code.replace("TKZUKO", "ZUKO").replace("TKXRW", "XRW").replace("TKWANZ", "WANZ").replace("TKVRTM", "VRTM").replace("TKURAD", "URAD").replace("TKUMSO", "UMSO").replace("TKTYOD", "TYOD").replace("TKTMVI", "TMVI").replace("TKTMHP", "TMHP").replace("TKTMEM", "TMEM").replace("TKTMDI", "TMDI").replace("TKTEAM", "TEAM").replace("TKTAMM", "TAMM").replace("TKSORA", "SORA").replace("TKSOE", "SOE").replace("TKPGD", "PGD").replace("TKPID", "PID").replace("TKPLA", "PLA").replace("TKREAL", "REAL").replace("TKRKI", "RKI").replace("TKSERO", "SERO").replace("TKSIB", "SIB").replace("TKMDB", "MDB").replace("TKMDHC", "MDHC").replace("TKMDJM", "MDJM").replace("TKMDLJ", "MDLJ").replace("TKMDNH", "MDNH").replace("TKMDOG", "MDOG").replace("TKMDPW", "MDPW").replace("TKMDS", "MDS").replace("TKMDSH", "MDSH").replace("TKMDSR", "MDSR").replace("TKMDTM", "MDTM").replace("TKMEYD", "MEYD").replace("TKMIDD", "MIDD").replace("TKMIDE", "MIDE").replace("TKMIGD", "MIGD").replace("TKMILD", "MILD").replace("TKMIMK", "MIMK").replace("TKMKMP", "MKMP").replace("TKMRXD", "MRXD").replace("TKMUKD", "MUKD").replace("TKMUM", "MUM").replace("TKMUML", "MUML").replace("TKMUNJ", "MUNJ").replace("TKMVSD", "MVSD").replace("TKNDRA", "NDRA").replace("TKODFA", "ODFA").replace("TKODFM", "ODFM").replace("TKODFR", "ODFR").replace("TKDVAJ", "DVAJ").replace("TKDXMG", "DXMG").replace("TKEBOD", "EBOD").replace("TKEYAN", "EYAN").replace("TKGDTM", "GDTM").replace("TKGENT", "GENT").replace("TKGROO", "GROO").replace("TKHERY", "HERY").replace("TKHND", "HND").replace("TKHNDB", "HNDB").replace("TKHNDS", "HNDS").replace("TKHRRB", "HRRB").replace("TKIDBD", "IDBD").replace("TKILLE", "ILLE").replace("TKINCT", "INCT").replace("TKIPSD", "IPSD").replace("TKIPZ", "IPZ").replace("TKJUC", "JUC").replace("TKJUFD", "JUFD").replace("TKJUX", "JUX").replace("TKKAWD", "KAWD").replace("TKKIRD", "KIRD").replace("TKKRND", "KRND").replace("TKLZTD", "LZTD").replace("TKBI", "KBI").replace("TKBF", "BF").replace("TKAMEB", "AMEB").replace("TKAPKH", "APKH").replace("TKARBB", "ARBB").replace("TKARM", "ARM").replace("TKAWT", "AWT").replace("TKBBI", "BBI").replace("TKBDMDS", "BDMDS").replace("TKBDMILD", "BDMILD").replace("TKBDPKMP", "BDPKMP").replace("TKBLK", "BLK").replace("TKBOKD", "BOKD").replace("TKCEAD", "CEAD").replace("TKCESD", "CESD").replace("TKCHIJ", "CHIJ").replace("TKCND", "CND").replace("TKCRMN", "CRMN").replace("TKDASD", "DASD").replace("TKDBNG", "DBNG").replace("TKDIGI", "DIGI").replace("TKIPX", "IPX").split(/-/);
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(qhzNum, 5);
let idNum = codeArr[1];
if (fanxi[videoSeries]) {
idNum = fanxi[videoSeries][1] ? fanxi[videoSeries][1] + idNum : idNum;
videoSeries = fanxi[videoSeries][4] ? fanxi[videoSeries][4] : fanxi[videoSeries][0] + videoSeries;
} else {
idNum = "00" + idNum;
}
let postfix = "_dm_w"; // 3(分辨率默认定于为 _dmb_w 和 _dm_w,此两项无需在对象列表声明)
let chehz = ""; // 4(车牌后缀)此项定义来源:大部分完整车牌都有固定规律,但还是出现了个别番号系列在完整车牌后还加了个别字母 例如:a_dmb_w.mp4\re_dmb_w.mp4等特殊规则,有人会问为什么不加入postfix中,细心的会发现这个字母还会再上级路径出现,所以特别摘出来定义。后期会逐渐在对象列表添加,删除下面的特例规则。
let cheqz = ""; // 1(车牌前缀)
if (fanxi[videoSeries]) {
cheqz = fanxi[videoSeries][0] ? fanxi[videoSeries][0] : cheqz;
chehz = fanxi[videoSeries][3] ? fanxi[videoSeries][3] : chehz;
postfix = fanxi[videoSeries][2] ? fanxi[videoSeries][2] : postfix;
idNum = fanxi[videoSeries][1] ? fanxi[videoSeries][1] + idNum : idNum;
videoSeries = fanxi[videoSeries][4] ? fanxi[videoSeries][4] : fanxi[videoSeries][0] + videoSeries;
} else {
idNum = "00" + idNum;
}
let videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/8/84' + videoSeries.substr(0, 1) + '/84' + videoSeries + qhzNum + '/84' + videoSeries + qhzNum + '_mhb_w.mp4';
if (null != code.match(/^(TKC-003)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/ktk/ktkc003/ktkc003_dm_w.mp4' }
if (null != code.match(/^(TKC-03)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/ktk/ktkc003/ktkc003_dm_w.mp4' }
let videoUrl2 = 'https://cc3001.dmm.com/litevideo/freepv/8/84' + videoSeries.substr(0, 1) + '/84' + videoSeries + qhzNum + '/84' + videoSeries + qhzNum + '_dmb_w.mp4';
let videoUrl3 = 'https://cc3001.dmm.com/litevideo/freepv/8/84' + videoSeries.substr(0, 1) + '/84' + videoSeries + qhzNum + '/84' + videoSeries + qhzNum + '_dm_w.mp4';
let videoUrl5 = 'https://cc3001.dmm.com/litevideo/freepv/8/84' + videoSeries.substr(0, 1) + '/84' + videoSeries + qhzNum + '/84' + videoSeries + qhzNum + '_sm_w.mp4';
let videoUrl4 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + qhzNum + '/' + videoSeries + qhzNum + '_dmb_w.mp4';
let videoUrl6 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + qhzNum + '/' + videoSeries + qhzNum + '_mhb_w.mp4';
let videoUrl7 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + qhzNum + '/' + videoSeries + qhzNum + '_dm_w.mp4';
let videoUrl8 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + qhzNum + '/' + videoSeries + qhzNum + '_sm_w.mp4';
let videoUrl9 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl10 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl11 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl12 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl13 = 'https://cc3001.dmm.com/litevideo/freepv/3/3' + videoSeries.substr(0, 2) + '/3' + videoSeries + qhzNum + '/3' + videoSeries + qhzNum + '_mhb_w.mp4';
let videoUrl14 = 'https://cc3001.dmm.com/litevideo/freepv/3/3' + videoSeries.substr(0, 2) + '/3' + videoSeries + qhzNum + '/3' + videoSeries + qhzNum + '_dmb_w.mp4';
let videoUrl15 = 'https://cc3001.dmm.com/litevideo/freepv/3/3' + videoSeries.substr(0, 2) + '/3' + videoSeries + qhzNum + '/3' + videoSeries + qhzNum + '_dm_w.mp4';
let videoUrl16 = 'https://cc3001.dmm.com/litevideo/freepv/3/3' + videoSeries.substr(0, 2) + '/3' + videoSeries + qhzNum + '/3' + videoSeries + qhzNum + '_sm_w.mp4';
let videoUrl17 = 'https://cc3001.dmm.com/litevideo/freepv/3/3' + videoSeries.substr(0, 2) + '/3' + videoSeries + videoNo + '/3' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl18 = 'https://cc3001.dmm.com/litevideo/freepv/3/3' + videoSeries.substr(0, 2) + '/3' + videoSeries + videoNo + '/3' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl19 = 'https://cc3001.dmm.com/litevideo/freepv/3/3' + videoSeries.substr(0, 2) + '/3' + videoSeries + videoNo + '/3' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl20 = 'https://cc3001.dmm.com/litevideo/freepv/3/3' + videoSeries.substr(0, 2) + '/3' + videoSeries + videoNo + '/3' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl21 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_9/h_910' + videoSeries + videoNo + '/h_910' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl22 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_9/h_910' + videoSeries + videoNo + '/h_910' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl23 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_9/h_910' + videoSeries + videoNo + '/h_910' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl24 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_9/h_910' + videoSeries + videoNo + '/h_910' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl25 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_9/h_910' + videoSeries + qhzNum + '/h_910' + videoSeries + qhzNum + '_mhb_w.mp4';
let videoUrl26 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_9/h_910' + videoSeries + qhzNum + '/h_910' + videoSeries + qhzNum + '_dmb_w.mp4';
let videoUrl27 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_9/h_910' + videoSeries + qhzNum + '/h_910' + videoSeries + qhzNum + '_dm_w.mp4';
let videoUrl28 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_9/h_910' + videoSeries + qhzNum + '/h_910' + videoSeries + qhzNum + '_sm_w.mp4';
let videoUrl1002 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + chehz + '/' + videoSeries + codeArr[1] + chehz + postfix + '.mp4';
let videoUrl1003 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + chehz + '/' + videoSeries + videoNo + chehz + postfix + '.mp4';
let videoUrl1004 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 2) + '0/' + videoSeries + codeArr[1] + chehz + '/' + videoSeries + codeArr[1] + chehz + postfix + '.mp4';
let videoUrl1005 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 2) + '0/' + videoSeries + videoNo + chehz + '/' + videoSeries + videoNo + chehz + postfix + '.mp4';
let videoUrl29 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + qhzNum + '/' + videoSeries + qhzNum + 'dm.mp4';
let video = `
`;
$(objMDTM).before(video)
}
//db无码legsjapan系列 Digital J 制作商 因此系列地址无规则,用的编号后随机字符,所以把所有数据弄下来啦
addVideolegsjapan (code, objlegsjapan) {
let videoUrl = 'https://cdn.legsjapan.com/samples/003f7386/sample.mp4'; //如果脚本数据里没有则默认显示003的预览
if (code.indexOf('003') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/003f7386/sample.mp4' }
if (code.indexOf('005') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/005svnvl/sample.mp4' }
if (code.indexOf('007') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/007d8q8a/sample.mp4' }
if (code.indexOf('009') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/009l3sw9/sample.mp4' }
if (code.indexOf('011') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/011awxdf/sample.mp4' }
if (code.indexOf('013') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/013h4raz/sample.mp4' }
if (code.indexOf('015') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/015eu2rm/sample.mp4' }
if (code.indexOf('0188') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/0188kl4g/sample.mp4' }
if (code.indexOf('020') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/020z6z0t/sample.mp4' }
if (code.indexOf('022') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/022b4rc3/sample.mp4' }
if (code.indexOf('024') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/024ewta0/sample.mp4' }
if (code.indexOf('026') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/026wbfmu/sample.mp4' }
if (code.indexOf('02889') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/02889gzs/sample.mp4' }
if (code.indexOf('030644') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/030644s6/sample.mp4' }
if (code.indexOf('033') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/033pgjlv/sample.mp4' }
if (code.indexOf('035') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/035ctn5t/sample.mp4' }
if (code.indexOf('037') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/037pryla/sample.mp4' }
if (code.indexOf('039') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/039vk0te/sample.mp4' }
if (code.indexOf('041') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/041s8ktd/sample.mp4' }
if (code.indexOf('043') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/043si18i/sample.mp4' }
if (code.indexOf('045') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/045ceuwi/sample.mp4' }
if (code.indexOf('0489') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/0489ytob/sample.mp4' }
if (code.indexOf('050') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/050i9s31/sample.mp4' }
if (code.indexOf('0523') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/0523dvo4/sample.mp4' }
if (code.indexOf('0548') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/0548r56u/sample.mp4' }
if (code.indexOf('056') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/056cq8ju/sample.mp4' }
if (code.indexOf('058') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/058cwrag/sample.mp4' }
if (code.indexOf('060') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/060wfd8z/sample.mp4' }
if (code.indexOf('063') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/063c7nrq/sample.mp4' }
if (code.indexOf('065') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/065bb7br/sample.mp4' }
if (code.indexOf('067261') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/067261c0/sample.mp4' }
if (code.indexOf('069') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/069s6cu8/sample.mp4' }
if (code.indexOf('071') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/071vjvwe/sample.mp4' }
if (code.indexOf('07382') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/07382tba/sample.mp4' }
if (code.indexOf('075') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/075b1d1r/sample.mp4' }
if (code.indexOf('0771') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/0771lshk/sample.mp4' }
if (code.indexOf('080') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/080oitor/sample.mp4' }
if (code.indexOf('083') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/083w5mwq/sample.mp4' }
if (code.indexOf('086') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/086asld5/sample.mp4' }
if (code.indexOf('08800') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/08800vm8/sample.mp4' }
if (code.indexOf('090') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/090hoe8y/sample.mp4' }
if (code.indexOf('092') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/092hklz1/sample.mp4' }
if (code.indexOf('094') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/094jpmf8/sample.mp4' }
if (code.indexOf('097') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/097cwyb9/sample.mp4' }
if (code.indexOf('0995') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/0995d3lw/sample.mp4' }
if (code.indexOf('1001') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1001rbxe/sample.mp4' }
if (code.indexOf('1003') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1003dcoh/sample.mp4' }
if (code.indexOf('1005') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1005bxjw/sample.mp4' }
if (code.indexOf('1007') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1007ucld/sample.mp4' }
if (code.indexOf('1009') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1009powz/sample.mp4' }
if (code.indexOf('1011') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1011smvy/sample.mp4' }
if (code.indexOf('1013') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1013qxaa/sample.mp4' }
if (code.indexOf('1015') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1015mgmg/sample.mp4' }
if (code.indexOf('1017') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1017xqfs/sample.mp4' }
if (code.indexOf('1019') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1019bkmo/sample.mp4' }
if (code.indexOf('1021') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1021nxhn/sample.mp4' }
if (code.indexOf('1023') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1023clhj/sample.mp4' }
if (code.indexOf('1025') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1025sqhz/sample.mp4' }
if (code.indexOf('1027') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1027agfm/sample.mp4' }
if (code.indexOf('1029') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1029wwlb/sample.mp4' }
if (code.indexOf('1031') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1031bvzp/sample.mp4' }
if (code.indexOf('1033') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1033tzwi/sample.mp4' }
if (code.indexOf('1035') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1035yqdr/sample.mp4' }
if (code.indexOf('1037') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1037zhxh/sample.mp4' }
if (code.indexOf('1039') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1039lmtq/sample.mp4' }
if (code.indexOf('103') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/103rgal2/sample.mp4' }
if (code.indexOf('1041') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1041yrtf/sample.mp4' }
if (code.indexOf('1043') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1043ajlw/sample.mp4' }
if (code.indexOf('1045') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1045xcwt/sample.mp4' }
if (code.indexOf('1047') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1047eqcn/sample.mp4' }
if (code.indexOf('1049') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1049lose/sample.mp4' }
if (code.indexOf('1051') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1051cyin/sample.mp4' }
if (code.indexOf('1053') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1053ykvj/sample.mp4' }
if (code.indexOf('1055') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1055pwvx/sample.mp4' }
if (code.indexOf('1057') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1057eqog/sample.mp4' }
if (code.indexOf('1059') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1059gciz/sample.mp4' }
if (code.indexOf('1061') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1061kshe/sample.mp4' }
if (code.indexOf('1063') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1063jakn/sample.mp4' }
if (code.indexOf('1065') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1065vrcn/sample.mp4' }
if (code.indexOf('1067') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1067yzue/sample.mp4' }
if (code.indexOf('1069') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1069ecrj/sample.mp4' }
if (code.indexOf('1071') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1071xsel/sample.mp4' }
if (code.indexOf('1073') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1073fglx/sample.mp4' }
if (code.indexOf('1075') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1075qyef/sample.mp4' }
if (code.indexOf('1077') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1077oaen/sample.mp4' }
if (code.indexOf('1078') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1078ou76/sample.mp4' }
if (code.indexOf('1079') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1079epnh/sample.mp4' }
if (code.indexOf('1081') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1081nrti/sample.mp4' }
if (code.indexOf('1083') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1083bdrk/sample.mp4' }
if (code.indexOf('1085') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1085duga/sample.mp4' }
if (code.indexOf('1087') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1087hnff/sample.mp4' }
if (code.indexOf('1089') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1089wajn/sample.mp4' }
if (code.indexOf('1091') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1091lqar/sample.mp4' }
if (code.indexOf('1093') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1093fecn/sample.mp4' }
if (code.indexOf('1095') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1095hgmz/sample.mp4' }
if (code.indexOf('1097') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1097gncl/sample.mp4' }
if (code.indexOf('1099') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1099wraa/sample.mp4' }
if (code.indexOf('109') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/109pb42v/sample.mp4' }
if (code.indexOf('1101') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1101jrix/sample.mp4' }
if (code.indexOf('1103') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1103lzlo/sample.mp4' }
if (code.indexOf('1105') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1105rhyr/sample.mp4' }
if (code.indexOf('1107') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1107wpxl/sample.mp4' }
if (code.indexOf('1109') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1109hefw/sample.mp4' }
if (code.indexOf('1111') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1111fosi/sample.mp4' }
if (code.indexOf('1113') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1113ufqk/sample.mp4' }
if (code.indexOf('1115') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1115zhdh/sample.mp4' }
if (code.indexOf('1117') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1117eaal/sample.mp4' }
if (code.indexOf('1119') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1119ilnk/sample.mp4' }
if (code.indexOf('1121') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1121zpex/sample.mp4' }
if (code.indexOf('1123') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1123wpci/sample.mp4' }
if (code.indexOf('1125') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1125azfh/sample.mp4' }
if (code.indexOf('1127') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1127leqg/sample.mp4' }
if (code.indexOf('1129') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1129jxza/sample.mp4' }
if (code.indexOf('112') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/112whon5/sample.mp4' }
if (code.indexOf('1131') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1131sceo/sample.mp4' }
if (code.indexOf('1133') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1133zokt/sample.mp4' }
if (code.indexOf('1135') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1135aecx/sample.mp4' }
if (code.indexOf('1137') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1137shaw/sample.mp4' }
if (code.indexOf('1139') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1139qopr/sample.mp4' }
if (code.indexOf('1141') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1141zdkr/sample.mp4' }
if (code.indexOf('1143') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1143dfen/sample.mp4' }
if (code.indexOf('1145') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1145mdar/sample.mp4' }
if (code.indexOf('1147') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1147wjhz/sample.mp4' }
if (code.indexOf('1149') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1149bpso/sample.mp4' }
if (code.indexOf('115') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/115xnok3/sample.mp4' }
if (code.indexOf('117') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/117sb3di/sample.mp4' }
if (code.indexOf('119') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/119v29gl/sample.mp4' }
if (code.indexOf('121') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/121rt53d/sample.mp4' }
if (code.indexOf('123') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/123zqja6/sample.mp4' }
if (code.indexOf('125') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/125h4gu8/sample.mp4' }
if (code.indexOf('127') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/127j0fa9/sample.mp4' }
if (code.indexOf('1299') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1299svs7/sample.mp4' }
if (code.indexOf('131') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/131gkbj8/sample.mp4' }
if (code.indexOf('133') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/133fz2ma/sample.mp4' }
if (code.indexOf('1359') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1359kmom/sample.mp4' }
if (code.indexOf('138') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/138rrbib/sample.mp4' }
if (code.indexOf('140') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/140uy0m2/sample.mp4' }
if (code.indexOf('142') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/142lcnrz/sample.mp4' }
if (code.indexOf('144') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/144ph14i/sample.mp4' }
if (code.indexOf('146') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/146oz6dl/sample.mp4' }
if (code.indexOf('14859') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/14859gs0/sample.mp4' }
if (code.indexOf('1506') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1506y0f1/sample.mp4' }
if (code.indexOf('153') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/153gom6y/sample.mp4' }
if (code.indexOf('155') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/155zhuhs/sample.mp4' }
if (code.indexOf('157') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/157hpc80/sample.mp4' }
if (code.indexOf('159') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/159a9v20/sample.mp4' }
if (code.indexOf('161') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/161m6flm/sample.mp4' }
if (code.indexOf('163') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/163dw9g8/sample.mp4' }
if (code.indexOf('165') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/165ci1xf/sample.mp4' }
if (code.indexOf('168') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/168jvxs4/sample.mp4' }
if (code.indexOf('171') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/171z1nk5/sample.mp4' }
if (code.indexOf('174') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/174fl8o2/sample.mp4' }
if (code.indexOf('176') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/176bs2rm/sample.mp4' }
if (code.indexOf('178') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/178b8ah5/sample.mp4' }
if (code.indexOf('180') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/180bxdw0/sample.mp4' }
if (code.indexOf('183') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/183wys91/sample.mp4' }
if (code.indexOf('185') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/185w55xu/sample.mp4' }
if (code.indexOf('187') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/187zp2bc/sample.mp4' }
if (code.indexOf('189') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/189y9zxx/sample.mp4' }
if (code.indexOf('1910') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1910htdy/sample.mp4' }
if (code.indexOf('1934') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/19340vrn/sample.mp4' }
if (code.indexOf('195') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/195gtkjd/sample.mp4' }
if (code.indexOf('1988') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/1988r12d/sample.mp4' }
if (code.indexOf('2008') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/2008gbb4/sample.mp4' }
if (code.indexOf('2021') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/2021rw39/sample.mp4' }
if (code.indexOf('204') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/204e25hr/sample.mp4' }
if (code.indexOf('206949') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/206949ci/sample.mp4' }
if (code.indexOf('208') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/208dct6n/sample.mp4' }
if (code.indexOf('210') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/210xraj0/sample.mp4' }
if (code.indexOf('213') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/213c7gcs/sample.mp4' }
if (code.indexOf('215') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/215aaqxm/sample.mp4' }
if (code.indexOf('217') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/217pfiuy/sample.mp4' }
if (code.indexOf('2196') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/2196qmlc/sample.mp4' }
if (code.indexOf('22194') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/22194ags/sample.mp4' }
if (code.indexOf('223') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/223amh31/sample.mp4' }
if (code.indexOf('225') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/225hlhka/sample.mp4' }
if (code.indexOf('228') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/228ar6i6/sample.mp4' }
if (code.indexOf('231') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/231g25q6/sample.mp4' }
if (code.indexOf('23424') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/23424hif/sample.mp4' }
if (code.indexOf('236') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/236kawal/sample.mp4' }
if (code.indexOf('2386550') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/2386550k/sample.mp4' }
if (code.indexOf('240') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/240dm6z1/sample.mp4' }
if (code.indexOf('242') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/242cfij0/sample.mp4' }
if (code.indexOf('244') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/244gwhgt/sample.mp4' }
if (code.indexOf('246') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/246af2ae/sample.mp4' }
if (code.indexOf('248') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/248n5tha/sample.mp4' }
if (code.indexOf('250953') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/250953fr/sample.mp4' }
if (code.indexOf('252') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/252e77ix/sample.mp4' }
if (code.indexOf('254') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/254bsn3p/sample.mp4' }
if (code.indexOf('257') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/257e1cmf/sample.mp4' }
if (code.indexOf('2598') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/2598yjxw/sample.mp4' }
if (code.indexOf('261') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/261urdyb/sample.mp4' }
if (code.indexOf('263') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/263nn6hf/sample.mp4' }
if (code.indexOf('265') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/265jl54g/sample.mp4' }
if (code.indexOf('267') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/267ndn3i/sample.mp4' }
if (code.indexOf('269') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/269aum0p/sample.mp4' }
if (code.indexOf('272') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/272bqdgj/sample.mp4' }
if (code.indexOf('275') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/275mt1cl/sample.mp4' }
if (code.indexOf('277') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/277ynqst/sample.mp4' }
if (code.indexOf('27988') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/27988tb9/sample.mp4' }
if (code.indexOf('281') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/281x7gbu/sample.mp4' }
if (code.indexOf('2836') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/2836ubyw/sample.mp4' }
if (code.indexOf('286') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/286qohis/sample.mp4' }
if (code.indexOf('288') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/288l6wet/sample.mp4' }
if (code.indexOf('290') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/290toaza/sample.mp4' }
if (code.indexOf('292') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/292pdsdn/sample.mp4' }
if (code.indexOf('2946') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/2946ty6w/sample.mp4' }
if (code.indexOf('296') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/296wmbov/sample.mp4' }
if (code.indexOf('2985') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/2985vvtf/sample.mp4' }
if (code.indexOf('3010') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/3010w6fx/sample.mp4' }
if (code.indexOf('303') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/303trwpl/sample.mp4' }
if (code.indexOf('3054') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/3054m25z/sample.mp4' }
if (code.indexOf('3077') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/3077w9sl/sample.mp4' }
if (code.indexOf('309') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/309eekdd/sample.mp4' }
if (code.indexOf('311') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/311lzpiz/sample.mp4' }
if (code.indexOf('313') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/313v5162/sample.mp4' }
if (code.indexOf('3158') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/3158tei7/sample.mp4' }
if (code.indexOf('317') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/317zxbur/sample.mp4' }
if (code.indexOf('3190') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/3190xa1l/sample.mp4' }
if (code.indexOf('321') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/321jf036/sample.mp4' }
if (code.indexOf('323') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/323phxm2/sample.mp4' }
if (code.indexOf('3252') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/3252y6t2/sample.mp4' }
if (code.indexOf('327') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/327o2hls/sample.mp4' }
if (code.indexOf('3307') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/3307l2cg/sample.mp4' }
if (code.indexOf('3324') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/3324ltot/sample.mp4' }
if (code.indexOf('33471') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/33471f13/sample.mp4' }
if (code.indexOf('336') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/336yxldg/sample.mp4' }
if (code.indexOf('338') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/338npj0g/sample.mp4' }
if (code.indexOf('3408') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/3408s4ig/sample.mp4' }
if (code.indexOf('342') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/342oxvb1/sample.mp4' }
if (code.indexOf('344') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/344ne3y4/sample.mp4' }
if (code.indexOf('3469129') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/3469129k/sample.mp4' }
if (code.indexOf('348') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/348fnp0d/sample.mp4' }
if (code.indexOf('350') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/350cxxyc/sample.mp4' }
if (code.indexOf('352') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/352raznw/sample.mp4' }
if (code.indexOf('354') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/354js8qo/sample.mp4' }
if (code.indexOf('356') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/356c15be/sample.mp4' }
if (code.indexOf('359') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/359d8nx2/sample.mp4' }
if (code.indexOf('361') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/361ux6q6/sample.mp4' }
if (code.indexOf('3631') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/3631eury/sample.mp4' }
if (code.indexOf('365') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/365mjhhp/sample.mp4' }
if (code.indexOf('367') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/367hkfbd/sample.mp4' }
if (code.indexOf('369') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/369owojh/sample.mp4' }
if (code.indexOf('372') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/372nbvr7/sample.mp4' }
if (code.indexOf('375') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/375ldjdk/sample.mp4' }
if (code.indexOf('377') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/377qees6/sample.mp4' }
if (code.indexOf('379') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/379uxyp5/sample.mp4' }
if (code.indexOf('38119') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/38119ix8/sample.mp4' }
if (code.indexOf('383') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/383ywz83/sample.mp4' }
if (code.indexOf('385') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/385s5t51/sample.mp4' }
if (code.indexOf('3875') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/3875ur0d/sample.mp4' }
if (code.indexOf('390') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/390xgkya/sample.mp4' }
if (code.indexOf('392') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/392jxl8t/sample.mp4' }
if (code.indexOf('3942') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/3942dzwx/sample.mp4' }
if (code.indexOf('396') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/396l670k/sample.mp4' }
if (code.indexOf('398') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/398vcy3h/sample.mp4' }
if (code.indexOf('400') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/400kjv70/sample.mp4' }
if (code.indexOf('403') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/403c2qu7/sample.mp4' }
if (code.indexOf('405') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/405c6gyd/sample.mp4' }
if (code.indexOf('407') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/407cfe7p/sample.mp4' }
if (code.indexOf('409') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/409zm7hi/sample.mp4' }
if (code.indexOf('4117690') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/4117690q/sample.mp4' }
if (code.indexOf('413') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/413nzeqq/sample.mp4' }
if (code.indexOf('416') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/416xgkkc/sample.mp4' }
if (code.indexOf('418') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/418bn64j/sample.mp4' }
if (code.indexOf('420') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/420o61bz/sample.mp4' }
if (code.indexOf('422') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/422kqu7d/sample.mp4' }
if (code.indexOf('4244') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/4244giee/sample.mp4' }
if (code.indexOf('426') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/426qj96z/sample.mp4' }
if (code.indexOf('429') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/429k1eev/sample.mp4' }
if (code.indexOf('43188') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/43188voc/sample.mp4' }
if (code.indexOf('433611') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/433611ab/sample.mp4' }
if (code.indexOf('4354') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/4354dyit/sample.mp4' }
if (code.indexOf('4375') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/4375ae6s/sample.mp4' }
if (code.indexOf('439') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/439w1tsb/sample.mp4' }
if (code.indexOf('441') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/441jlbl4/sample.mp4' }
if (code.indexOf('443') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/443ek9th/sample.mp4' }
if (code.indexOf('445') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/445qg8xp/sample.mp4' }
if (code.indexOf('447') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/447k60s5/sample.mp4' }
if (code.indexOf('449') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/449zjkxc/sample.mp4' }
if (code.indexOf('4517') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/4517zyl3/sample.mp4' }
if (code.indexOf('453') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/453j4tp3/sample.mp4' }
if (code.indexOf('455') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/455uoobe/sample.mp4' }
if (code.indexOf('457') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/457xhh48/sample.mp4' }
if (code.indexOf('460') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/460uu2p6/sample.mp4' }
if (code.indexOf('462') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/462o2hw8/sample.mp4' }
if (code.indexOf('4641') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/4641teow/sample.mp4' }
if (code.indexOf('46664') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/46664w8w/sample.mp4' }
if (code.indexOf('4684') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/4684k93j/sample.mp4' }
if (code.indexOf('470') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/470kf201/sample.mp4' }
if (code.indexOf('472') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/472dmpyl/sample.mp4' }
if (code.indexOf('4753') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/4753ulrd/sample.mp4' }
if (code.indexOf('477') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/477kfwza/sample.mp4' }
if (code.indexOf('479') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/479b8bkc/sample.mp4' }
if (code.indexOf('481') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/481hwwjd/sample.mp4' }
if (code.indexOf('483') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/483bjz33/sample.mp4' }
if (code.indexOf('485') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/485e1ubj/sample.mp4' }
if (code.indexOf('4886') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/4886d610/sample.mp4' }
if (code.indexOf('49006') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/49006pt8/sample.mp4' }
if (code.indexOf('4929') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/4929djj3/sample.mp4' }
if (code.indexOf('494') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/494kuft9/sample.mp4' }
if (code.indexOf('49638') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/49638ia3/sample.mp4' }
if (code.indexOf('498') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/498fck3c/sample.mp4' }
if (code.indexOf('500') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/500cacc3/sample.mp4' }
if (code.indexOf('503') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/503ix6xt/sample.mp4' }
if (code.indexOf('505') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/505u2mpm/sample.mp4' }
if (code.indexOf('507') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/507dmyyo/sample.mp4' }
if (code.indexOf('509') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/509m7t8t/sample.mp4' }
if (code.indexOf('51149') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/51149sex/sample.mp4' }
if (code.indexOf('513') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/513rih4m/sample.mp4' }
if (code.indexOf('515') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/515w1cye/sample.mp4' }
if (code.indexOf('517') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/517pkcu6/sample.mp4' }
if (code.indexOf('520') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/520amm4b/sample.mp4' }
if (code.indexOf('5225') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/5225h84y/sample.mp4' }
if (code.indexOf('524') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/524qrxtr/sample.mp4' }
if (code.indexOf('526') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/526l1xi8/sample.mp4' }
if (code.indexOf('528') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/528zilrm/sample.mp4' }
if (code.indexOf('5308') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/5308v7jc/sample.mp4' }
if (code.indexOf('5327') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/5327oq0b/sample.mp4' }
if (code.indexOf('534') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/534usryf/sample.mp4' }
if (code.indexOf('536') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/536kpzxz/sample.mp4' }
if (code.indexOf('538') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/538gp18p/sample.mp4' }
if (code.indexOf('540') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/540wg8av/sample.mp4' }
if (code.indexOf('5420') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/5420kpec/sample.mp4' }
if (code.indexOf('544') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/544z9lwt/sample.mp4' }
if (code.indexOf('546') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/546xluqy/sample.mp4' }
if (code.indexOf('548') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/548gvixw/sample.mp4' }
if (code.indexOf('5512') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/5512qn51/sample.mp4' }
if (code.indexOf('5532') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/5532ypug/sample.mp4' }
if (code.indexOf('5552') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/5552r37b/sample.mp4' }
if (code.indexOf('557') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/557h12vw/sample.mp4' }
if (code.indexOf('5597') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/5597q79p/sample.mp4' }
if (code.indexOf('561') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/561klol5/sample.mp4' }
if (code.indexOf('563') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/563dtm1e/sample.mp4' }
if (code.indexOf('565') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/565gmy9s/sample.mp4' }
if (code.indexOf('568') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/568bcn3x/sample.mp4' }
if (code.indexOf('57099') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/57099yv0/sample.mp4' }
if (code.indexOf('572') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/572huact/sample.mp4' }
if (code.indexOf('57427') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/57427jwj/sample.mp4' }
if (code.indexOf('5767') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/5767a9ib/sample.mp4' }
if (code.indexOf('578') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/578xlmph/sample.mp4' }
if (code.indexOf('58051') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/58051s4k/sample.mp4' }
if (code.indexOf('582') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/582c75qj/sample.mp4' }
if (code.indexOf('584') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/584nzqpe/sample.mp4' }
if (code.indexOf('586') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/586e47ty/sample.mp4' }
if (code.indexOf('588079') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/588079qe/sample.mp4' }
if (code.indexOf('5907') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/5907ewl7/sample.mp4' }
if (code.indexOf('5922') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/5922sndl/sample.mp4' }
if (code.indexOf('594') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/594lam2w/sample.mp4' }
if (code.indexOf('597') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/597rvbpy/sample.mp4' }
if (code.indexOf('599') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/599wfclc/sample.mp4' }
if (code.indexOf('601') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/601lux89/sample.mp4' }
if (code.indexOf('603') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/603paz69/sample.mp4' }
if (code.indexOf('605') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/605m2mnw/sample.mp4' }
if (code.indexOf('607') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/607e0mbp/sample.mp4' }
if (code.indexOf('609') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/609zdube/sample.mp4' }
if (code.indexOf('611') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/611yjpca/sample.mp4' }
if (code.indexOf('613') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/613zcplw/sample.mp4' }
if (code.indexOf('615') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/615qu0s5/sample.mp4' }
if (code.indexOf('617') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/617tcshm/sample.mp4' }
if (code.indexOf('6196723') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/6196723v/sample.mp4' }
if (code.indexOf('623') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/623aelkv/sample.mp4' }
if (code.indexOf('6259') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/6259kfza/sample.mp4' }
if (code.indexOf('627') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/627uib2u/sample.mp4' }
if (code.indexOf('630') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/630pevv0/sample.mp4' }
if (code.indexOf('633') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/633ruz71/sample.mp4' }
if (code.indexOf('6369') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/6369lvw3/sample.mp4' }
if (code.indexOf('638') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/638l2pco/sample.mp4' }
if (code.indexOf('6403') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/6403klii/sample.mp4' }
if (code.indexOf('64278') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/64278uu5/sample.mp4' }
if (code.indexOf('644') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/644nzvec/sample.mp4' }
if (code.indexOf('646') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/646yeefr/sample.mp4' }
if (code.indexOf('6650') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/6650qw7y/sample.mp4' }
if (code.indexOf('668') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/668kz15c/sample.mp4' }
if (code.indexOf('6709') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/6709blo5/sample.mp4' }
if (code.indexOf('672') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/672dfqyj/sample.mp4' }
if (code.indexOf('674') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/674s9cmj/sample.mp4' }
if (code.indexOf('676') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/676skwtk/sample.mp4' }
if (code.indexOf('678') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/678wuyas/sample.mp4' }
if (code.indexOf('6807') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/6807zbum/sample.mp4' }
if (code.indexOf('682') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/682hm2zm/sample.mp4' }
if (code.indexOf('684') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/684rkmr3/sample.mp4' }
if (code.indexOf('6860') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/6860jm9q/sample.mp4' }
if (code.indexOf('688') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/688hrzpw/sample.mp4' }
if (code.indexOf('690') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/690vse7l/sample.mp4' }
if (code.indexOf('6921') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/6921tb0v/sample.mp4' }
if (code.indexOf('694') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/694rxr6n/sample.mp4' }
if (code.indexOf('696') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/696pfsmy/sample.mp4' }
if (code.indexOf('698') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/698zpppj/sample.mp4' }
if (code.indexOf('700') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/700h59gw/sample.mp4' }
if (code.indexOf('702') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/702zjchq/sample.mp4' }
if (code.indexOf('703') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/703gbsfs/sample.mp4' }
if (code.indexOf('7058703') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/7058703v/sample.mp4' }
if (code.indexOf('707') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/707o0c2r/sample.mp4' }
if (code.indexOf('7092') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/7092xcyx/sample.mp4' }
if (code.indexOf('711') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/711ce9o0/sample.mp4' }
if (code.indexOf('713') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/713k0u71/sample.mp4' }
if (code.indexOf('7155') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/7155uera/sample.mp4' }
if (code.indexOf('7177') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/7177rw6p/sample.mp4' }
if (code.indexOf('719') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/719wfksj/sample.mp4' }
if (code.indexOf('721') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/721a91ck/sample.mp4' }
if (code.indexOf('723') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/723tkwg3/sample.mp4' }
if (code.indexOf('725') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/725gc1w8/sample.mp4' }
if (code.indexOf('7279') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/7279bc92/sample.mp4' }
if (code.indexOf('7295') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/7295af8d/sample.mp4' }
if (code.indexOf('731') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/731ikba6/sample.mp4' }
if (code.indexOf('7330') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/7330y262/sample.mp4' }
if (code.indexOf('735') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/735ngxch/sample.mp4' }
if (code.indexOf('7377') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/7377fga4/sample.mp4' }
if (code.indexOf('739') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/739c2lya/sample.mp4' }
if (code.indexOf('741') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/741cfgkv/sample.mp4' }
if (code.indexOf('743') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/743tzxs2/sample.mp4' }
if (code.indexOf('74695') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/74695dv7/sample.mp4' }
if (code.indexOf('748') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/748fdnjb/sample.mp4' }
if (code.indexOf('750') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/750q84ya/sample.mp4' }
if (code.indexOf('7520') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/7520xbg5/sample.mp4' }
if (code.indexOf('75465') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/75465p95/sample.mp4' }
if (code.indexOf('75662407') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/75662407/sample.mp4' }
if (code.indexOf('758') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/758cqcs6/sample.mp4' }
if (code.indexOf('760') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/760n2zp0/sample.mp4' }
if (code.indexOf('762') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/762gfyk5/sample.mp4' }
if (code.indexOf('764074') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/764074td/sample.mp4' }
if (code.indexOf('766') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/766dj1e0/sample.mp4' }
if (code.indexOf('768') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/768smzvk/sample.mp4' }
if (code.indexOf('770') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/770oqpc8/sample.mp4' }
if (code.indexOf('7723') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/7723kfwj/sample.mp4' }
if (code.indexOf('774') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/774xdfy3/sample.mp4' }
if (code.indexOf('7766') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/7766fk3t/sample.mp4' }
if (code.indexOf('778') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/778px6yg/sample.mp4' }
if (code.indexOf('7801') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/7801cmks/sample.mp4' }
if (code.indexOf('7828') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/7828jyju/sample.mp4' }
if (code.indexOf('7848') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/7848vobv/sample.mp4' }
if (code.indexOf('7863') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/7863cdhl/sample.mp4' }
if (code.indexOf('788') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/788knxin/sample.mp4' }
if (code.indexOf('7906') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/7906zskr/sample.mp4' }
if (code.indexOf('792') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/792wklsa/sample.mp4' }
if (code.indexOf('794') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/794wtzln/sample.mp4' }
if (code.indexOf('796') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/796wl2bv/sample.mp4' }
if (code.indexOf('798') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/798kl6rh/sample.mp4' }
if (code.indexOf('800') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/800k0l0t/sample.mp4' }
if (code.indexOf('802') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/802lqa9r/sample.mp4' }
if (code.indexOf('804') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/804m2t73/sample.mp4' }
if (code.indexOf('806') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/806ak5pb/sample.mp4' }
if (code.indexOf('809') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/809b2bpk/sample.mp4' }
if (code.indexOf('8111') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/8111jiug/sample.mp4' }
if (code.indexOf('813') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/813umfqq/sample.mp4' }
if (code.indexOf('815') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/815fz9h1/sample.mp4' }
if (code.indexOf('817') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/817jwbxt/sample.mp4' }
if (code.indexOf('8192722') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/8192722b/sample.mp4' }
if (code.indexOf('82105') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/82105dkl/sample.mp4' }
if (code.indexOf('8241') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/8241daba/sample.mp4' }
if (code.indexOf('827') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/827yoqrc/sample.mp4' }
if (code.indexOf('829') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/829hjhd0/sample.mp4' }
if (code.indexOf('831') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/831m450o/sample.mp4' }
if (code.indexOf('83342') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/83342gpl/sample.mp4' }
if (code.indexOf('835') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/835c6ck1/sample.mp4' }
if (code.indexOf('837') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/837ut1pp/sample.mp4' }
if (code.indexOf('839') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/839eo0a9/sample.mp4' }
if (code.indexOf('841') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/841rd9vw/sample.mp4' }
if (code.indexOf('8431') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/8431qgtf/sample.mp4' }
if (code.indexOf('8457') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/8457ojtn/sample.mp4' }
if (code.indexOf('847') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/847cfilf/sample.mp4' }
if (code.indexOf('849') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/849i9wbp/sample.mp4' }
if (code.indexOf('851') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/851cypwi/sample.mp4' }
if (code.indexOf('853') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/853hojeo/sample.mp4' }
if (code.indexOf('8554') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/8554rsdg/sample.mp4' }
if (code.indexOf('858') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/858xe0db/sample.mp4' }
if (code.indexOf('860') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/860oyutp/sample.mp4' }
if (code.indexOf('86228') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/86228c0w/sample.mp4' }
if (code.indexOf('864') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/864foziu/sample.mp4' }
if (code.indexOf('866') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/866m031k/sample.mp4' }
if (code.indexOf('868') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/868mmydi/sample.mp4' }
if (code.indexOf('870') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/870xenfc/sample.mp4' }
if (code.indexOf('8725387') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/8725387o/sample.mp4' }
if (code.indexOf('875') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/875zix1w/sample.mp4' }
if (code.indexOf('8776') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/8776aosw/sample.mp4' }
if (code.indexOf('879') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/879mcqpk/sample.mp4' }
if (code.indexOf('881') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/881mdmr6/sample.mp4' }
if (code.indexOf('883') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/883nelcm/sample.mp4' }
if (code.indexOf('885') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/885h8rq5/sample.mp4' }
if (code.indexOf('8879') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/8879jjlk/sample.mp4' }
if (code.indexOf('889') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/889jy8kc/sample.mp4' }
if (code.indexOf('892') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/892fcr7g/sample.mp4' }
if (code.indexOf('894') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/894knhvx/sample.mp4' }
if (code.indexOf('89620') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/89620k1s/sample.mp4' }
if (code.indexOf('898') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/898rusl9/sample.mp4' }
if (code.indexOf('9000') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/9000ybqj/sample.mp4' }
if (code.indexOf('902') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/902tpno8/sample.mp4' }
if (code.indexOf('9046') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/9046rc5q/sample.mp4' }
if (code.indexOf('906') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/906g9ofc/sample.mp4' }
if (code.indexOf('909') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/909fw7br/sample.mp4' }
if (code.indexOf('9116') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/9116zagi/sample.mp4' }
if (code.indexOf('913') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/913apnrh/sample.mp4' }
if (code.indexOf('915') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/915bhm07/sample.mp4' }
if (code.indexOf('917') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/917o9xxu/sample.mp4' }
if (code.indexOf('9199') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/9199wbtx/sample.mp4' }
if (code.indexOf('921') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/921cmx2o/sample.mp4' }
if (code.indexOf('923') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/923ikz1r/sample.mp4' }
if (code.indexOf('9252') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/9252qk6d/sample.mp4' }
if (code.indexOf('927') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/927p4797/sample.mp4' }
if (code.indexOf('9299') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/9299qr3j/sample.mp4' }
if (code.indexOf('931') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/931l2p53/sample.mp4' }
if (code.indexOf('933') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/933l8gea/sample.mp4' }
if (code.indexOf('935') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/935mcgj8/sample.mp4' }
if (code.indexOf('937') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/937k0ll6/sample.mp4' }
if (code.indexOf('939') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/939fjwey/sample.mp4' }
if (code.indexOf('9412') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/9412lonn/sample.mp4' }
if (code.indexOf('943') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/943h55p1/sample.mp4' }
if (code.indexOf('945') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/945m8a0k/sample.mp4' }
if (code.indexOf('947') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/947gu3a8/sample.mp4' }
if (code.indexOf('949') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/949frjsc/sample.mp4' }
if (code.indexOf('951') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/951j1vca/sample.mp4' }
if (code.indexOf('953') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/953liyvp/sample.mp4' }
if (code.indexOf('955') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/955gqjp9/sample.mp4' }
if (code.indexOf('957') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/957y4b99/sample.mp4' }
if (code.indexOf('959') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/959lqaz7/sample.mp4' }
if (code.indexOf('961') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/961udlh1/sample.mp4' }
if (code.indexOf('9631') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/9631sf8j/sample.mp4' }
if (code.indexOf('9651') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/9651q13f/sample.mp4' }
if (code.indexOf('967') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/967xlq9c/sample.mp4' }
if (code.indexOf('969') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/969ycqoc/sample.mp4' }
if (code.indexOf('972') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/972gvlkx/sample.mp4' }
if (code.indexOf('974') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/974su4c2/sample.mp4' }
if (code.indexOf('976') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/976dnbbt/sample.mp4' }
if (code.indexOf('978') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/978gt6gh/sample.mp4' }
if (code.indexOf('980') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/980tsi8o/sample.mp4' }
if (code.indexOf('982') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/982diizq/sample.mp4' }
if (code.indexOf('984') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/984nm5kb/sample.mp4' }
if (code.indexOf('987') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/987l45tm/sample.mp4' }
if (code.indexOf('989') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/989wkccy/sample.mp4' }
if (code.indexOf('991335') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/991335aj/sample.mp4' }
if (code.indexOf('993') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/993mw06d/sample.mp4' }
if (code.indexOf('995') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/995x9u13/sample.mp4' }
if (code.indexOf('9970') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/9970by24/sample.mp4' }
if (code.indexOf('999') !== -1) { videoUrl = 'https://cdn.legsjapan.com/samples/999bt703/sample.mp4' }
let video = `
`;
$(objlegsjapan).before(video)
}
// XVSR-系列 3种格式 多种后缀 1、6开头+3位数 2、x开头+3/5位数 / TASKW-系列 5319+5 n_992+3 / tasks-系列 5319+5 n_992+3
addVideoXVSR (code, objXVSR) {
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(codeArr[1], 5);
let videoTwo = codeArr[1].substring(codeArr[1].length - 2);
let videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/6/60' + videoSeries.substr(0, 1) + '/60' + videoSeries + codeArr[1] + '/60' + videoSeries + codeArr[1] + '_dm_s.mp4';
let videoUrl2 = 'https://cc3001.dmm.com/litevideo/freepv/6/60' + videoSeries.substr(0, 1) + '/60' + videoSeries + codeArr[1] + '/60' + videoSeries + codeArr[1] + '_dmb_s.mp4';
let videoUrl3 = 'https://cc3001.dmm.com/litevideo/freepv/6/60' + videoSeries.substr(0, 1) + '/60' + videoSeries + codeArr[1] + '/60' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl4 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl5 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl6 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl7 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl8 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl9 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl10 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl11 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl12 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_9/n_992' + videoSeries + codeArr[1] + '/n_992' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl13 = 'https://cc3001.dmm.com/litevideo/freepv/5/531/5319' + videoSeries + videoNo + '/5319' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl14 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1614' + videoSeries + videoNo + '/h_1614' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl15 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1094' + videoSeries + videoNo + '/h_1094' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl16 = 'https://cc3001.dmm.com/litevideo/freepv/8/82' + videoSeries.substr(0, 1) + '/82' + videoSeries + codeArr[1] + '/82' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl17 = 'https://cc3001.dmm.com/litevideo/freepv/5/5' + videoSeries.substr(0, 2) + '/5' + videoSeries + codeArr[1] + '/5' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl18 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_8/h_806' + videoSeries + codeArr[1] + '/h_806' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl19 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl20 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_231' + videoSeries + codeArr[1] + '/h_231' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl21 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_sm_s.mp4';
let videoUrl22 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1074' + videoSeries + videoNo + '/h_1074' + videoSeries + videoNo + '_dm_s.mp4';
let videoUrl23 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1074' + videoSeries + videoNo + '/h_1074' + videoSeries + videoNo + '_sm_s.mp4';
let videoUrl24 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_205' + videoSeries + codeArr[1] + '/h_205' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl25 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1514' + videoSeries + videoNo + '/h_1514' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl26 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1514' + videoSeries + videoNo + '/h_1514' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl27 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_244' + videoSeries + videoNo + '/h_244' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl28 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_244' + videoSeries + videoNo + '/h_244' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl29 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_9/h_970' + videoSeries + codeArr[1] + '/h_970' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl30 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_9/h_970' + videoSeries + codeArr[1] + '/h_970' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl31 = 'https://cc3001.dmm.com/litevideo/freepv/4/422/422' + videoSeries + videoNo + '/422' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl32 = 'https://cc3001.dmm.com/litevideo/freepv/4/422/422' + videoSeries + videoNo + '/422' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl33 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1136' + videoSeries + videoNo + '/h_1136' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl34 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1136' + videoSeries + videoNo + '/h_1136' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl35 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_3/h_355' + videoSeries + videoTwo + '/h_355' + videoSeries + videoTwo + '_dm_w.mp4';
let videoUrl36 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_3/h_355' + videoSeries + videoTwo + '/h_355' + videoSeries + videoTwo + '_sm_w.mp4';
let videoUrl37 = 'https://cc3001.dmm.com/litevideo/freepv/5/50' + videoSeries.substr(0, 1) + '/50' + videoSeries + codeArr[1] + '/50' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl38 = 'https://cc3001.dmm.com/litevideo/freepv/5/50' + videoSeries.substr(0, 1) + '/50' + videoSeries + codeArr[1] + '/50' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl39 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_9/h_909' + videoSeries + videoTwo + '/h_909' + videoSeries + videoTwo + '_dm_w.mp4';
let videoUrl40 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_9/h_909' + videoSeries + videoTwo + '/h_909' + videoSeries + videoTwo + '_sm_w.mp4';
let video = `
`;
$(objXVSR).before(video)
}
// BF-系列 包含HDBF-、JIBF-、MBRBF-、PBF-、MBF-、HDBF- 已精简
// SVVRT-系列 2种格式 已精简
// DCV-系列 多种格式 MGS集成
// NMCH-系列 多种格式 MGS集成
// DDH-系列 多种格式 MGS集成
// MDTE-系列 两种 已精简
// KU-系列 SILKU- 两种 SILKU-092 https://cc3001.dmm.com/litevideo/freepv/1/1si/1silku00092/1silku00092_sm_w.mp4
// 以下识别符暂未调用
//MDS系列 mds、mdsc、mdsh、ymds HMDSX-006 https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1472hmdsx00006/h_1472hmdsx00006_mhb_w.mp4 此系列加入后需要重新匹配 / SMT-系列 1\首字母+5 2\h_1513+3+_dmb_s /SMSD-系列 171/h_859/h_1126/h_1096+3+_sm_w / bdmds
addVideoMDS (code, objMDS) {
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoTwo = codeArr[1].substring(codeArr[1].length - 2); // 数字截取后2位
let videoNo = format_zero(codeArr[1], 5);
let videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/6/61' + videoSeries[0] + '/61' + videoSeries + videoNo + '/61' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2 = 'https://cc3001.dmm.com/litevideo/freepv/6/61' + videoSeries[0] + '/61' + videoSeries + videoNo + '/61' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl3 = 'https://cc3001.dmm.com/litevideo/freepv/8/84' + videoSeries.substr(0, 1) + '/84' + videoSeries + codeArr[1] + '/84' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl4 = 'https://cc3001.dmm.com/litevideo/freepv/8/84' + videoSeries.substr(0, 1) + '/84' + videoSeries + codeArr[1] + '/84' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl5 = 'https://cc3001.dmm.com/litevideo/freepv/8/84' + videoSeries.substr(0, 1) + '/84' + videoSeries + codeArr[1] + '/84' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl6 = 'https://cc3001.dmm.com/litevideo/freepv/8/84' + videoSeries.substr(0, 1) + '/84' + videoSeries + codeArr[1] + '/84' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl7 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_5/h_585' + videoSeries + codeArr[1] + '/h_585' + videoSeries + codeArr[1] + '_sm_w.mp4';
// MDS-692 https://cc3001.dmm.com/litevideo/freepv/h/h_5/h_585mds692/h_585mds692_sm_s.mp4
let videoUrl8 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_5/h_585' + videoSeries + codeArr[1] + '/h_585' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl9 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl10 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl11 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl12 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl13 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl14 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl15 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl16 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl17 = 'https://cc3001.dmm.com/litevideo/freepv/6/61' + videoSeries[0] + '/61' + videoSeries + videoNo + '/61' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl18 = 'https://cc3001.dmm.com/litevideo/freepv/6/61' + videoSeries[0] + '/61' + videoSeries + videoNo + '/61' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl19 = 'https://cc3001.dmm.com/litevideo/freepv/8/84' + videoSeries.substr(0, 1) + '/84' + videoSeries + codeArr[1] + '/84' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl20 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1472' + videoSeries + videoNo + '/h_1472' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl21 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1472' + videoSeries + videoNo + '/h_1472' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl22 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1513' + videoSeries + codeArr[1] + '/h_1513' + videoSeries + codeArr[1] + '_dmb_s.mp4';
let videoUrl23 = 'https://cc3001.dmm.com/litevideo/freepv/1/171/171' + videoSeries + codeArr[1] + '/171' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl24 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_8/h_859' + videoSeries + codeArr[1] + '/h_859' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl25 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1126' + videoSeries + codeArr[1] + '/h_1126' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl26 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1096' + videoSeries + codeArr[1] + '/h_1096' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl27 = 'https://cc3001.dmm.com/litevideo/freepv/1/171/171' + videoSeries + videoTwo + '/171' + videoSeries + videoTwo + '_dm_w.mp4';
let videoUrl28 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_8/h_859' + videoSeries + videoTwo + '/h_859' + videoSeries + videoTwo + '_dm_w.mp4';
let videoUrl29 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1126' + videoSeries + videoTwo + '/h_1126' + videoSeries + videoTwo + '_dm_w.mp4';
let videoUrl30 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_9/h_918' + videoSeries + codeArr[1] + '/h_918' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl31 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_4/h_406' + videoSeries + videoNo + '/h_406' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl32 = 'https://cc3001.dmm.com/litevideo/freepv/4/422/422' + videoSeries + videoNo + '/422' + videoSeries + videoNo + '_sm_s.mp4';
let videoUrl33 = 'https://cc3001.dmm.com/litevideo/freepv/6/61' + videoSeries[0] + '/61' + videoSeries + videoNo + 'ai/61' + videoSeries + videoNo + 'ai_sm_w.mp4';
let videoUrl34 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1454' + videoSeries + codeArr[1] + '/h_1454' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl35 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1454' + videoSeries + codeArr[1] + '/h_1454' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl36 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1350' + videoSeries + videoNo + '/h_1350' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl37 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1350' + videoSeries + videoNo + '/h_1350' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl38 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_9/h_918' + videoSeries + codeArr[1] + '/h_918' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl39 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + 'dm.mp4';
let video = `
`;
$(objMDS).before(video)
}
// PPPD-系列 009预览片地址 https://c3001.dmm.co.jp/litevideo/freepv/p/ppp/pppd0019/pppd0019_dmb_s.mp4 (四位) bus和db番号显示不一 所以增加videoFour四位来适配
// HEZ-系列 https://cc3001.dmm.com/litevideo/freepv/5/59h/59hez001/59hez001_dmb_w.mp4 https://cc3001.dmm.com/litevideo/freepv/5/59h/59hez477/59hez477_mhb_w.mp4
// 259LUXU-系列 需翻墙 部分国家或地区无法访问 自行切换节点尝试
// MGS集成: MFC系列 包含 MFC- MFCX- MFCC- MFCS- 需翻墙 部分国家或地区无法访问 自行切换节点尝试 已集成或精简
//SAN系列 SAN、FSAN、SANK、SANP、SANS 已精简
//OCH系列 COCH / TMSG-系列 并入 / TMSA-系列 并入 (OCH系列 COCH、KOCH 有个别特殊地址 SKBK-系列 h_885/h_687+ tmsa系列 / tmsg: ["49","","","r"], // 4/49s/49sg040r/49sg040r_dm_w.mp4 四字母保留后两位+后缀r
addVideoOCH (code, objOCH) {
let codeArr = code.split(/-/); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let vSeries = codeArr[0].toLowerCase(); // 番号系列
let videoSeries = codeArr[0].replace("TMSG", "SG").replace("TMSA", "ATM").replace("RMOW", "SMOW").toLowerCase(); //grabd更换为grace
let videoNo = format_zero(codeArr[1], 5); //不足5位数补0
let videoTwo = codeArr[1].substring(codeArr[1].length - 2); // 数字截取后2位
let videoThree = codeArr[1].substring(codeArr[1].length - 3); // 数字截取后3位
let videoThrBu = format_zero(codeArr[1], 3); // 1位或2位补足3位 区别与直接截取后3位
let videoFour = format_zero(codeArr[1], 4); //不足4位数补0
let videoSix = format_zero(codeArr[1], 6); //不足6位数补0
let videoSerFour = videoSeries.substr(0, 4); // 番号截掉最后1位
let idNum = codeArr[1];
let postfix = "_dm_w"; // 3(分辨率默认定于为 _dmb_w 和 _dm_w,此两项无需在对象列表声明)
let chehz = ""; // 4(车牌后缀)此项定义来源:大部分完整车牌都有固定规律,但还是出现了个别番号系列在完整车牌后还加了个别字母 例如:a_dmb_w.mp4\re_dmb_w.mp4等特殊规则,有人会问为什么不加入postfix中,细心的会发现这个字母还会再上级路径出现,所以特别摘出来定义。后期会逐渐在对象列表添加,删除下面的特例规则。
let cheqz = ""; // 1(车牌前缀)
if (fanxi[videoSeries]) {
cheqz = fanxi[videoSeries][0] ? fanxi[videoSeries][0] : cheqz;
chehz = fanxi[videoSeries][3] ? fanxi[videoSeries][3] : chehz;
postfix = fanxi[videoSeries][2] ? fanxi[videoSeries][2] : postfix;
idNum = fanxi[videoSeries][1] ? fanxi[videoSeries][1] + idNum : idNum;
videoSeries = fanxi[videoSeries][4] ? fanxi[videoSeries][4] : fanxi[videoSeries][0] + videoSeries;
} else {
idNum = "00" + idNum;
}
let videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1580' + videoSeries + videoNo + '/h_1580' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1580' + videoSeries + videoNo + '/h_1580' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl3 = 'https://cc3001.dmm.com/litevideo/freepv/4/49' + videoSeries.substr(0, 1) + '/49' + videoSeries + codeArr[1] + 'r/49' + videoSeries + codeArr[1] + 'r_dm_w.mp4';
let videoUrl4 = 'https://cc3001.dmm.com/litevideo/freepv/4/49' + videoSeries.substr(0, 1) + '/49' + videoSeries + codeArr[1] + 'r/49' + videoSeries + codeArr[1] + 'r_sm_w.mp4';
let videoUrl5 = 'https://cc3001.dmm.com/litevideo/freepv/1/149/149' + videoSeries + videoNo + 'r/149' + videoSeries + videoNo + 'r_dm_w.mp4';
let videoUrl6 = 'https://cc3001.dmm.com/litevideo/freepv/1/149/149' + videoSeries + videoNo + 'r/149' + videoSeries + videoNo + 'r_sm_w.mp4';
let videoUrl7 = 'https://cc3001.dmm.com/litevideo/freepv/1/111/111' + videoSeries + videoNo + '/111' + videoSeries + videoNo + '_sm_s.mp4';
let videoUrl8 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_5/h_580' + videoSeries + videoNo + '/h_580' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl9 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_5/h_580' + videoSeries + videoNo + '/h_580' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl10 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_8/h_878' + videoSeries + codeArr[1] + '/h_878' + videoSeries + codeArr[1] + '_sm_w.mp4';
if (null != code.match(/^(COCH-001)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_8/h_803coch00001/h_803coch00001_dm_w.mp4' }
if (null != code.match(/^(COCH-002)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_8/h_803coch00002/h_803coch00002_dm_w.mp4' }
if (null != code.match(/^(COCH-003)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1445coch003/n_1445coch003_mhb_w.mp4' }
if (null != code.match(/^(COCH-004)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_8/h_803coch00004/h_803coch00004_dm_w.mp4' }
if (null != code.match(/^(COCH-006)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_8/h_803coch00006/h_803coch00006_dm_w.mp4' }
if (null != code.match(/^(COCH-007)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1445coch007/n_1445coch007_mhb_w.mp4' }
if (null != code.match(/^(COCH-009)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1445coch009/n_1445coch009_dmb_w.mp4' }
if (null != code.match(/^(COCH-010)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1445coch010/n_1445coch010_dmb_w.mp4' }
if (null != code.match(/^(COCH-011)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1445coch011/n_1445coch011_dmb_w.mp4' }
if (null != code.match(/^(COCH-014)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_706coch00014b/h_706coch00014b_dmb_w.mp4' }
if (null != code.match(/^(COCH-016)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1445coch016/n_1445coch016_dmb_w.mp4' }
let videoUrl11 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_6/h_687' + videoSeries + codeArr[1] + '/h_687' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl12 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_8/h_885' + videoSeries + codeArr[1] + '/h_885' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl13 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1490' + videoSeries + codeArr[1] + '/n_1490' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl14 = 'https://cc3001.dmm.com/litevideo/freepv/5/505/5050' + videoSeries + videoNo + '/5050' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl1002 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + chehz + '/' + videoSeries + codeArr[1] + chehz + postfix + '.mp4';
let videoUrl1003 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + chehz + '/' + videoSeries + videoNo + chehz + postfix + '.mp4';
let videoUrl1004 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoTwo + chehz + '/' + videoSeries + videoTwo + chehz + postfix + '.mp4';
let videoUrl1005 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoFour + chehz + '/' + videoSeries + videoFour + chehz + postfix + '.mp4';
let videoUrl1006 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 2) + '0/' + videoSeries + codeArr[1] + chehz + '/' + videoSeries + codeArr[1] + chehz + postfix + '.mp4';
let videoUrl1007 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 2) + '0/' + videoSeries + videoNo + chehz + '/' + videoSeries + videoNo + chehz + postfix + '.mp4';
let videoUrl1008 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoThree + chehz + '/' + videoSeries + videoThree + chehz + postfix + '.mp4';
let videoUrl1009 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoThrBu + chehz + '/' + videoSeries + videoThrBu + chehz + postfix + '.mp4';
let videoUrl1010 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + cheqz + vSeries.substr(0, 5) + codeArr[1] + chehz + '/' + cheqz + vSeries.substr(0, 5) + codeArr[1] + chehz + postfix + '.mp4';
let videoUrl15 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoSix + '/' + videoSeries + videoSix + '_sm_s.mp4';
let videoUrl16 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoSix + '/' + videoSeries + videoSix + '_sm_w.mp4';
let videoUrl17 = 'https://cc3001.dmm.com/litevideo/freepv/1/187/187' + videoSeries + codeArr[1] + '/187' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let video = `
`;
$(objOCH).before(video)
}
// KING-系列
addVideoKING (code, objKING) {
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(codeArr[1], 5);
let videoFour = format_zero(codeArr[1], 4);
let videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoFour + '/' + videoSeries + videoFour + '_mhb_w.mp4';
let videoUrl2 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoFour + '/' + videoSeries + videoFour + '_dm_w.mp4';
if (null != code.match(/^(KING-001)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1152king001/h_1152king001_dm_w.mp4' }
if (null != code.match(/^(KING-017)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/kin/king0017/king0017_mhb_w.mp4' }
if (null != code.match(/^(KING-021)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/kin/king0021/king0021_dm_w.mp4' }
if (null != code.match(/^(KING-022)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/kin/king0022/king0022_dm_w.mp4' }
if (null != code.match(/^(KING-023)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/kin/king0023/king0023_dm_w.mp4' }
if (null != code.match(/^(KING-024)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/kin/king0024/king0024_mhb_w.mp4' }
if (null != code.match(/^(KING-027)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/kin/king0027/king0027_dm_w.mp4' }
if (null != code.match(/^(KING-033)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/kin/king0033/king0033_dm_w.mp4' }
if (null != code.match(/^(KING-034)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/kin/king0034/king0034_dm_w.mp4' }
if (null != code.match(/^(KING-035)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/kin/king0035/king0035_dm_w.mp4' }
if (null != code.match(/^(KING-036)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/kin/king0036/king0036_mhb_w.mp4' }
if (null != code.match(/^(KING-038)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/kin/king0038/king0038_mhb_w.mp4' }
if (null != code.match(/^(KING-046)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/kin/king0046/king0046_mhb_w.mp4' }
if (null != code.match(/^(KING-053)/i)) { videoUrl = 'https://sample.mgstage.com/sample/shiroutosanka/444king/053/444king-053_20211015T120301.mp4' }
if (null != code.match(/^(KING-051)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/kin/king0051/king0051_mhb_w.mp4' }
if (null != code.match(/^(KING-066)/i)) { videoUrl = 'https://sample.mgstage.com/sample/shiroutosanka/444king/066/444king-066_20220302T154004.mp4' }
if (null != code.match(/^(KING-064)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/kin/king0064/king0064_mhb_w.mp4' }
if (null != code.match(/^(KING-068)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/kin/king0068/king0068_mhb_w.mp4' }
if (null != code.match(/^(KING-076)/i)) { videoUrl = 'https://sample.mgstage.com/sample/shiroutosanka/444king/076/444king-076_20220513T194502.mp4' }
if (null != code.match(/^(KING-078)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/kin/king0078/king0078_mhb_w.mp4' }
if (null != code.match(/^(KING-079)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/kin/king0079/king0079_mhb_w.mp4' }
if (null != code.match(/^(KING-080)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/kin/king0080/king0080_mhb_w.mp4' }
if (null != code.match(/^(KING-081)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/kin/king0081/king0081_mhb_w.mp4' }
if (null != code.match(/^(KING-082)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/kin/king0082/king0082_mhb_w.mp4' }
if (null != code.match(/^(KING-083)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/kin/king0083/king0083_mhb_w.mp4' }
if (null != code.match(/^(KING-091)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/kin/king0091/king0091_mhb_w.mp4' }
if (null != code.match(/^(KING-092)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/kin/king0092/king0092_mhb_w.mp4' }
if (null != code.match(/^(KING-093)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/kin/king0093/king0093_mhb_w.mp4' }
if (null != code.match(/^(KING-094)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/kin/king0094/king0094_mhb_w.mp4' }
if (null != code.match(/^(KING-100)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/kin/king0100/king0100_mhb_w.mp4' }
if (null != code.match(/^(KING-101)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/kin/king0101/king0101_mhb_w.mp4' }
if (null != code.match(/^(KING-102)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/kin/king0102/king0102_mhb_w.mp4' }
if (null != code.match(/^(KING-108)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/kin/king0108/king0108_mhb_w.mp4' }
if (null != code.match(/^(KING-109)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/kin/king0109/king0109_mhb_w.mp4' }
if (null != code.match(/^(KING-110)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/kin/king0110/king0110_mhb_w.mp4' }
if (null != code.match(/^(KING-111)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/kin/king0111/king0111_mhb_w.mp4' }
if (null != code.match(/^(KING-112)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/kin/king0112/king0112_mhb_w.mp4' }
if (null != code.match(/^(KING-113)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/kin/king0113/king0113_mhb_w.mp4' }
if (null != code.match(/^(KING-114)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/kin/king0114/king0114_mhb_w.mp4' }
if (null != code.match(/^(KING-115)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/k/kin/king0115/king0115_mhb_w.mp4' }
let video = `
`;
$(objKING).before(video)
}
//DTSL系列 已精简
//ZEX系列 多个前缀 / TRK-系列 h_1595+5 h_1561+5 / TRK-系列
addVideoZEX (code, objZEX) {
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(codeArr[1], 5);
let videoTwo = codeArr[1].substring(codeArr[1].length - 2);
let videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_021' + videoSeries + codeArr[1] + '/h_021' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl2 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_021' + videoSeries + codeArr[1] + '/h_021' + videoSeries + codeArr[1] + '_dmb_s.mp4';
let videoUrl3 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_021' + videoSeries + codeArr[1] + '/h_021' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl4 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_021' + videoSeries + codeArr[1] + '/h_021' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl5 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_720' + videoSeries + codeArr[1] + '/h_720' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl6 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_720' + videoSeries + codeArr[1] + '/h_720' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl7 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_720' + videoSeries + codeArr[1] + '/h_720' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl8 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_720' + videoSeries + videoNo + '/h_720' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl9 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_720' + videoSeries + videoNo + '/h_720' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl10 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1595' + videoSeries + videoNo + '/h_1595' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl11 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1595' + videoSeries + videoNo + '/h_1595' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl12 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1561' + videoSeries + videoNo + '/h_1561' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl13 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1561' + videoSeries + videoNo + '/h_1561' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl14 = 'https://cc3001.dmm.com/litevideo/freepv/4/497/497' + videoSeries + videoNo + '/497' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl15 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_6/h_606' + videoSeries + codeArr[1] + '/h_606' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl16 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_6/h_606' + videoSeries + codeArr[1] + '/h_606' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl17 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_7/n_707' + videoSeries + codeArr[1] + '/n_707' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl18 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_7/n_707' + videoSeries + codeArr[1] + '/n_707' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl19 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1464' + videoSeries + codeArr[1] + '/n_1464' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl20 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1464' + videoSeries + codeArr[1] + '/n_1464' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl21 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1266' + videoSeries + codeArr[1] + 's/h_1266' + videoSeries + codeArr[1] + 's_dm_w.mp4';
let videoUrl22 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1155' + videoSeries + codeArr[1] + '/n_1155' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl23 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_173' + videoSeries + codeArr[1] + '/h_173' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl24 = 'https://cc3001.dmm.com/litevideo/freepv/5/529/5294' + videoSeries + videoNo + '/5294' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl25 = 'https://cc3001.dmm.com/litevideo/freepv/5/52' + videoSeries.substr(0, 1) + '/52' + videoSeries + videoNo + '/52' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl26 = 'https://cc3001.dmm.com/litevideo/freepv/5/52' + videoSeries.substr(0, 1) + '/52' + videoSeries + videoNo + '/52' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl27 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_109pb' + videoSeries + videoNo + '/h_109pb' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl28 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1154' + videoSeries.substr(0, 5) + videoNo + '/h_1154' + videoSeries.substr(0, 5) + videoNo + '_dm_w.mp4';
let videoUrl29 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1154' + videoSeries.substr(0, 5) + videoNo + '/h_1154' + videoSeries.substr(0, 5) + videoNo + '_sm_w.mp4';
let videoUrl30 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1418' + videoSeries.substr(0, 5) + codeArr[1] + '/n_1418' + videoSeries.substr(0, 5) + codeArr[1] + '_dm_w.mp4';
let videoUrl31 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1418' + videoSeries.substr(0, 5) + codeArr[1] + '/n_1418' + videoSeries.substr(0, 5) + codeArr[1] + '_sm_w.mp4';
let videoUrl32 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_173' + videoSeries + codeArr[1] + '/h_173' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl33 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_173' + videoSeries + videoTwo + '/h_173' + videoSeries + videoTwo + '_dm_w.mp4';
let videoUrl34 = 'https://cc3001.dmm.com/litevideo/freepv/5/522/5226' + videoSeries + videoNo + 'sm/5226' + videoSeries + videoNo + 'sm_sm_w.mp4';
let videoUrl35 = 'https://cc3001.dmm.com/litevideo/freepv/5/561/5619' + videoSeries + videoNo + '/5619' + videoSeries + videoNo + '_dm_w.mp4';
let video = `
`;
$(objZEX).before(video)
}
//PPP-系列 需翻 后面随机地址有规律,可以写匹配规则
//PSDW系列 已精简
// DVAJ-系列 两种格式 有4位数 所以增加videoFour四位来适配 https://cc3001.dmm.com/litevideo/freepv/d/dva/dvaj00598/dvaj00598_dmb_w.mp4 https://cc3001.dmm.com/litevideo/freepv/5/53d/53dvaj0016/53dvaj0016_dmb_w.mp4
addVideoDVAJ (code, objDVAJ) {
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(codeArr[1], 5);
let videoFour = format_zero(codeArr[1], 4);
let videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dmb_s.mp4';
let videoUrl2 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoFour + '/' + videoSeries + videoFour + '_dmb_s.mp4';
let videoUrl3 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl4 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dmb_s.mp4';
let videoUrl5 = 'https://cc3001.dmm.com/litevideo/freepv/5/53' + videoSeries.substr(0, 1) + '/53' + videoSeries + videoFour + '/53' + videoSeries + videoFour + '_dmb_w.mp4';
let videoUrl6 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl7 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl8 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl9 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl10 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl11 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1352' + videoSeries + codeArr[1] + '/h_1352' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl12 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1352' + videoSeries + codeArr[1] + '/h_1352' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl13 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1488' + videoSeries + codeArr[1] + '/n_1488' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl14 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1488' + videoSeries + codeArr[1] + '/n_1488' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl15 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_7/n_707' + videoSeries + codeArr[1] + '/n_707' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl16 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_7/n_707' + videoSeries + codeArr[1] + '/n_707' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl17 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_7/n_707' + videoSeries + codeArr[1] + 'sp/n_707' + videoSeries + codeArr[1] + 'sp_dm_w.mp4';
let videoUrl18 = 'https://cc3001.dmm.com/litevideo/freepv/1/13' + videoSeries.substr(0, 1) + '/13' + videoSeries + videoNo + '/13' + videoSeries + videoNo + '_sm_s.mp4';
let videoUrl19 = 'https://cc3001.dmm.com/litevideo/freepv/3/301/301' + videoSeries + videoNo + '/301' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl20 = 'https://cc3001.dmm.com/litevideo/freepv/3/301/301' + videoSeries + videoNo + '/301' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl21 = 'https://cc3001.dmm.com/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + codeArr[1] + '/1' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl22 = 'https://cc3001.dmm.com/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + codeArr[1] + '/1' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl23 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1072' + videoSeries + codeArr[1] + '/n_1072' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl24 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1345' + videoSeries + codeArr[1] + '/h_1345' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl25 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1345' + videoSeries + codeArr[1] + '/h_1345' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl26 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1345' + videoSeries + videoNo + '/h_1345' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl27 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1345' + videoSeries + videoNo + '/h_1345' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl28 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_175' + videoSeries + codeArr[1] + '/h_175' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl29 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_175' + videoSeries + codeArr[1] + '/h_175' + videoSeries + codeArr[1] + '_sm_s.mp4';
let video = `
`;
$(objDVAJ).before(video)
}
// SERO-系列 4种格式 1、h_422+补齐四位 2、s开头+3/5位数 3、td027开头+5位数 SERO-025 https://cc3001.dmm.com/litevideo/freepv/h/h_4/h_422sero0025/h_422sero0025_dm_w.mp4
addVideoSERO (code, objSERO) {
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(codeArr[1], 5);
let videoFour = format_zero(codeArr[1], 4);
let videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_4/h_422' + videoSeries + videoFour + '/h_422' + videoSeries + videoFour + '_dm_w.mp4';
if (null != code.match(/^(MTNSERO-086)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td046mtnsero00086/td046mtnsero00086_dmb_w.mp4' }
if (null != code.match(/^(MTNSERO-093)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td048mtnsero00093/td048mtnsero00093_dmb_w.mp4' }
if (null != code.match(/^(MTNSERO-096)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td048mtnsero00096/td048mtnsero00096_dmb_w.mp4' }
if (null != code.match(/^(MTNSERO-314)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td046mtnsero00314/td046mtnsero00314_dmb_w.mp4' }
if (null != code.match(/^(MTNSERO-323)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td046mtnsero00323/td046mtnsero00323_dmb_w.mp4' }
if (null != code.match(/^(MTNSERO-326)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td046mtnsero00326/td046mtnsero00326_dmb_w.mp4' }
if (null != code.match(/^(MTNSERO-344)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td045mtnsero00344/td045mtnsero00344_dmb_w.mp4' }
if (null != code.match(/^(MTNSERO-347)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td045mtnsero00347/td045mtnsero00347_dmb_w.mp4' }
if (null != code.match(/^(MTNSERO-355)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td045mtnsero00355/td045mtnsero00355_dmb_w.mp4' }
if (null != code.match(/^(NKJSERO-089)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td046nkjsero00089/td046nkjsero00089_dmb_w.mp4' }
if (null != code.match(/^(NKJSERO-090)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td048nkjsero00090/td048nkjsero00090_dmb_w.mp4' }
if (null != code.match(/^(NKJSERO-091)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td048nkjsero00091/td048nkjsero00091_dmb_w.mp4' }
if (null != code.match(/^(NKJSERO-095)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td048nkjsero00095/td048nkjsero00095_dmb_w.mp4' }
if (null != code.match(/^(NKJSERO-336)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td046nkjsero00336/td046nkjsero00336_dmb_w.mp4' }
if (null != code.match(/^(NKJSERO-349)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td045nkjsero00349/td045nkjsero00349_dmb_w.mp4' }
if (null != code.match(/^(NKJSERO-350)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td045nkjsero00350/td045nkjsero00350_dmb_w.mp4' }
if (null != code.match(/^(NKJSERO-363)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td045nkjsero00363/td045nkjsero00363_dmb_w.mp4' }
if (null != code.match(/^(NKJSERO-377)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td045nkjsero00377/td045nkjsero00377_dmb_w.mp4' }
if (null != code.match(/^(NKJSERO-394)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td044nkjsero00394/td044nkjsero00394_dmb_w.mp4' }
if (null != code.match(/^(NMTSERO-017)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td049nmtsero00017/td049nmtsero00017_dmb_w.mp4' }
if (null != code.match(/^(NMTSERO-067)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td044nmtsero00067/td044nmtsero00067_dmb_w.mp4' }
if (null != code.match(/^(NMTSERO-087)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td048nmtsero00087/td048nmtsero00087_dmb_w.mp4' }
if (null != code.match(/^(NMTSERO-321)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td046nmtsero00321/td046nmtsero00321_dmb_w.mp4' }
if (null != code.match(/^(NMTSERO-325)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td046nmtsero00325/td046nmtsero00325_dmb_w.mp4' }
if (null != code.match(/^(NMTSERO-329)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td046nmtsero00329/td046nmtsero00329_dmb_w.mp4' }
if (null != code.match(/^(NMTSERO-333)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td046nmtsero00333/td046nmtsero00333_dmb_w.mp4' }
if (null != code.match(/^(NMTSERO-335)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td046nmtsero00335/td046nmtsero00335_dmb_w.mp4' }
if (null != code.match(/^(NMTSERO-341)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td046nmtsero00341/td046nmtsero00341_dmb_w.mp4' }
if (null != code.match(/^(NMTSERO-362)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td046nmtsero00341/td046nmtsero00341_dmb_w.mp4' }
if (null != code.match(/^(NMTSERO-367)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td045nmtsero00367/td045nmtsero00367_dmb_w.mp4' }
if (null != code.match(/^(NMTSERO-372)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td045nmtsero00372/td045nmtsero00372_dmb_w.mp4' }
if (null != code.match(/^(NMTSERO-376)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td045nmtsero00376/td045nmtsero00376_dmb_w.mp4' }
if (null != code.match(/^(NMTSERO-378)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td045nmtsero00378/td045nmtsero00378_dmb_w.mp4' }
if (null != code.match(/^(NMTSERO-380)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td044nmtsero00380/td044nmtsero00380_dmb_w.mp4' }
if (null != code.match(/^(NMTSERO-384)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td044nmtsero00384/td044nmtsero00384_dmb_w.mp4' }
if (null != code.match(/^(NMTSERO-386)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td044nmtsero00386/td044nmtsero00386_dmb_w.mp4' }
if (null != code.match(/^(NMTSERO-387)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td044nmtsero00387/td044nmtsero00387_dmb_w.mp4' }
if (null != code.match(/^(NMTSERO-395)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td044nmtsero00395/td044nmtsero00395_dmb_w.mp4' }
if (null != code.match(/^(NMTSERO-396)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td044nmtsero00396/td044nmtsero00396_dmb_w.mp4' }
if (null != code.match(/^(NMTSERO-399)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td044nmtsero00399/td044nmtsero00399_dmb_w.mp4' }
if (null != code.match(/^(YRNKMTNSERO-161)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/y/yrn/yrnkmtnsero00161/yrnkmtnsero00161_dmb_w.mp4' }
if (null != code.match(/^(YRNKMTNSERO-266)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/y/yrn/yrnkmtnsero00266/yrnkmtnsero00266_dmb_w.mp4' }
if (null != code.match(/^(YRNKMTNSERO-276)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/y/yrn/yrnkmtnsero00276/yrnkmtnsero00276_dmb_w.mp4' }
if (null != code.match(/^(YRNKMTNSERO-284)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/y/yrn/yrnkmtnsero00284/yrnkmtnsero00284_dmb_w.mp4' }
if (null != code.match(/^(YRNKMTNSERO-374)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/y/yrn/yrnkmtnsero00374/yrnkmtnsero00374_dmb_w.mp4' }
if (null != code.match(/^(YRNKMTNSERO-378)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/y/yrn/yrnkmtnsero00378/yrnkmtnsero00378_dmb_w.mp4' }
if (null != code.match(/^(YRNKMTNSERO-387)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/y/yrn/yrnkmtnsero00387/yrnkmtnsero00387_dmb_w.mp4' }
if (null != code.match(/^(YRNKMTNSERO-402)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/y/yrn/yrnkmtnsero00402/yrnkmtnsero00402_dmb_w.mp4' }
if (null != code.match(/^(YRNKNKJSERO-049)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/y/yrn/yrnknkjsero00049/yrnknkjsero00049_dmb_w.mp4' }
if (null != code.match(/^(YRNKNKJSERO-220)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/y/yrn/yrnknkjsero00220/yrnknkjsero00220_dmb_w.mp4' }
if (null != code.match(/^(YRNKNKJSERO-258)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/y/yrn/yrnknkjsero00258/yrnknkjsero00258_dmb_w.mp4' }
if (null != code.match(/^(YRNKNKJSERO-267)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/y/yrn/yrnknkjsero00267/yrnknkjsero00267_dmb_w.mp4' }
if (null != code.match(/^(YRNKNKJSERO-290)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/y/yrn/yrnknkjsero00290/yrnknkjsero00290_dmb_w.mp4' }
if (null != code.match(/^(YRNKNKJSERO-313)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/y/yrn/yrnknkjsero00313/yrnknkjsero00313_dmb_w.mp4' }
if (null != code.match(/^(YRNKNKJSERO-358)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/y/yrn/yrnknkjsero00358/yrnknkjsero00358_dmb_w.mp4' }
if (null != code.match(/^(YRNKNKJSERO-384)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/y/yrn/yrnknkjsero00384/yrnknkjsero00384_dmb_w.mp4' }
if (null != code.match(/^(YRNKNKJSERO-397)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/y/yrn/yrnknkjsero00397/yrnknkjsero00397_dmb_w.mp4' }
let videoUrl2 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dmb_w.mp4'; //SERO-387 https://cc3001.dmm.com/litevideo/freepv/s/ser/sero00387/sero00387_dmb_w.mp4
let videoUrl3 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dmb_w.mp4'; // SERO-313 https://cc3001.dmm.com/litevideo/freepv/s/ser/sero313/sero313_dmb_w.mp4
let videoUrl4 = 'https://cc3001.dmm.com/litevideo/freepv/t/td0/td027' + videoSeries + videoNo + '/td027' + videoSeries + videoNo + '_mhb_w.mp4'; // SERO-307 https://cc3001.dmm.com/litevideo/freepv/t/td0/td027sero00307/td027sero00307_mhb_w.mp4
let video = `
`;
$(objSERO).before(video)
}
// MCMA-系列 2种格式 1、298+番号 2、h_1133+3位数 dmm和MGS都有 独开 AMCMA // MCST-系列 h_1133+3/5 57+5 并入 MCMA
addVideoMCMA (code, objMCMA) {
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(codeArr[1], 5);
let videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1133' + videoSeries + codeArr[1] + '/h_1133' + videoSeries + codeArr[1] + '_dmb_w.mp4'; // MCMA-002 https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1133mcma002/h_1133mcma002_dmb_w.mp4
let videoUrl2 = 'https://sample.mgstage.com/sample/mercury/298' + videoSeries + '/' + codeArr[1] + '/' + code + '_sample.mp4'; // MCMA-001 https://sample.mgstage.com/sample/mercury/298mcma/001/MCMA-001_sample.mp4
let videoUrl3 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1133' + videoSeries + codeArr[1] + '/h_1133' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl4 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1133' + videoSeries + videoNo + '/h_1133' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl5 = 'https://cc3001.dmm.com/litevideo/freepv/5/57' + videoSeries.substr(0, 1) + '/57' + videoSeries + videoNo + '/57' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl6 = 'https://cc3001.dmm.com/litevideo/freepv/8/84' + videoSeries.substr(0, 1) + '/84' + videoSeries + codeArr[1] + '/84' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl7 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1104' + videoSeries + codeArr[1] + '/h_1104' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl8 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_275' + videoSeries + videoNo + '/h_275' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl9 = 'https://cc3001.dmm.com/litevideo/freepv/5/544/5448' + videoSeries + videoNo + '/5448' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl10 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_6/n_650' + videoSeries + codeArr[1] + '/n_650' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl11 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_4/h_491' + videoSeries + codeArr[1] + '/h_491' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl12 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_6/h_647' + videoSeries + codeArr[1] + '/h_647' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl13 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_6/n_650' + videoSeries + codeArr[1] + '/n_650' + videoSeries + codeArr[1] + '_dm_s.mp4';
let videoUrl14 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1064' + videoSeries + codeArr[1] + '/n_1064' + videoSeries + codeArr[1] + '_dm_s.mp4';
let video = `
`;
$(objMCMA).before(video)
}
// CMA-系列 51/c
addVideoCMA (code, objCMA) {
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(codeArr[1], 5);
let videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/5/51' + videoSeries.substr(0, 1) + '/51' + videoSeries + codeArr[1] + '/51' + videoSeries + codeArr[1] + '_dmb_w.mp4'; // CMA-001 https://cc3001.dmm.com/litevideo/freepv/5/51c/51cma001/51cma001_dmb_w.mp4
let videoUrl2 = 'https://cc3001.dmm.com/litevideo/freepv/5/51' + videoSeries.substr(0, 1) + '/51' + videoSeries + codeArr[1] + '/51' + videoSeries + codeArr[1] + '_mmb_w.mp4'; //
let videoUrl3 = 'https://cc3001.dmm.com/litevideo/freepv/5/51' + videoSeries.substr(0, 1) + '/51' + videoSeries + codeArr[1] + '/51' + videoSeries + codeArr[1] + '_dmb_s.mp4'; // CMA-019 https://cc3001.dmm.com/litevideo/freepv/5/51c/51cma019/51cma019_dmb_s.mp4
let videoUrl4 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dmb_w.mp4'; // CND-144 https://cc3001.dmm.com/litevideo/freepv/c/cnd/cnd00144/cnd00144_dmb_w.mp4
let videoUrl5 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl6 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dmb_s.mp4'; // CMA-029 https://cc3001.dmm.com/litevideo/freepv/c/cma/cma00029/cma00029_dmb_s.mp4
let videoUrl7 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_mhb_s.mp4';
let videoUrl8 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dmb_w.mp4'; // CMA-098 https://cc3001.dmm.com/litevideo/freepv/c/cma/cma098/cma098_dmb_w.mp4
let videoUrl9 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl10 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dmb_s.mp4';
let videoUrl11 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_mhb_s.mp4'; // CMA-112 https://cc3001.dmm.com/litevideo/freepv/c/cma/cma112/cma112_mhb_s.mp4
let video = `
`;
$(objCMA).before(video)
}
// MEKO-系列 5种格式 h_086+2/5位数 h_1160+2/3/5位数
addVideoMEKO (code, objMEKO) {
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(codeArr[1], 5);
let videoTwo = codeArr[1].substring(codeArr[1].length - 2);
let videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_086' + videoSeries + videoTwo + '/h_086' + videoSeries + videoTwo + '_dmb_w.mp4';
let videoUrl2 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_086' + videoSeries + videoNo + '/h_086' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl3 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_086' + videoSeries + videoTwo + '/h_086' + videoSeries + videoTwo + '_dm_w.mp4';
let videoUrl4 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1160' + videoSeries + videoTwo + '/h_1160' + videoSeries + videoTwo + '_dmb_w.mp4';
let videoUrl5 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1160' + videoSeries + videoNo + '/h_1160' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl6 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1160' + videoSeries + videoTwo + '/h_1160' + videoSeries + videoTwo + '_dm_w.mp4';
let videoUrl7 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1160' + videoSeries + codeArr[1] + '/h_1160' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl8 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1160' + videoSeries + videoNo + 'a/' + videoSeries + videoNo + 'a_mhb_w.mp4';// MEKO-262 https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1160meko00262a/h_1160meko00262a_mhb_w.mp4
let videoUrl9 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1160' + videoSeries + videoNo + 'b/' + videoSeries + videoNo + 'b_dmb_w.mp4'; // MEKO-262 https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1160meko00262b/h_1160meko00262b_dmb_w.mp4
let videoUrl10 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl11 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + 'dm.mp4';
let videoUrl12 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_086' + videoSeries + videoNo + '/h_086' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl13 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_086' + videoSeries + codeArr[1] + '/h_086' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl14 = 'https://cc3001.dmm.com/litevideo/freepv/3/33' + videoSeries[0] + '/33' + videoSeries + codeArr[1] + '/33' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl15 = 'https://cc3001.dmm.com/litevideo/freepv/3/33' + videoSeries[0] + '/33' + videoSeries + codeArr[1] + '/33' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl16 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl17 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl18 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_086' + videoSeries + codeArr[1] + '/h_086' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl19 = 'https://cc3001.dmm.com/litevideo/freepv/1/18' + videoSeries[0] + '/18' + videoSeries + codeArr[1] + '/18' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl20 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_086' + videoSeries + videoTwo + '/h_086' + videoSeries + videoTwo + '_sm_s.mp4';
let video = `
`;
$(objMEKO).before(video)
}
// XRW-系列 3种格式 1、84开头+3位数 2、X开头+3位 3、172开头+5位数
addVideoXRW (code, objXRW) {
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoFour = format_zero(codeArr[1], 4); //不足4位数补0
let videoNo = format_zero(codeArr[1], 5);
let videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/8/84' + videoSeries.substr(0, 1) + '/84' + videoSeries + codeArr[1] + '/84' + videoSeries + codeArr[1] + '_dmb_w.mp4'; // XRW-008 https://cc3001.dmm.com/litevideo/freepv/8/84x/84xrw008/84xrw008_dmb_w.mp4
let videoUrl2 = 'https://cc3001.dmm.com/litevideo/freepv/1/172/172' + videoSeries + videoNo + '/172' + videoSeries + videoNo + '_dmb_w.mp4'; // XRW-339 https://cc3001.dmm.com/litevideo/freepv/1/172/172xrw00339/172xrw00339_dmb_w.mp4
let videoUrl3 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dmb_w.mp4'; // XRW-998 https://cc3001.dmm.com/litevideo/freepv/x/xrw/xrw998/xrw998_dmb_w.mp4
let videoUrl4 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl5 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dmb_s.mp4';
let videoUrl6 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_mhb_s.mp4'; //
let videoUrl7 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_068' + videoSeries + videoFour + '/h_068' + videoSeries + videoFour + '_sm_s.mp4';
let videoUrl8 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoFour + '/' + videoSeries + videoFour + '_sm_s.mp4';
let videoUrl9 = 'https://cc3001.dmm.com/litevideo/freepv/1/172/172' + videoSeries + videoFour + '/172' + videoSeries + videoFour + '_sm_s.mp4';
let videoUrl10 = 'https://cc3001.dmm.com/litevideo/freepv/1/118/118' + videoSeries + videoFour + '/118' + videoSeries + videoFour + '_sm_s.mp4';
let videoUrl11 = 'https://cc3001.dmm.com/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + videoFour + '/1' + videoSeries + videoFour + '_sm_s.mp4';
let videoUrl12 = 'https://cc3001.dmm.com/litevideo/freepv/3/3' + videoSeries.substr(0, 2) + '/3' + videoSeries + videoFour + '/3' + videoSeries + videoFour + '_sm_s.mp4';
let videoUrl13 = 'https://cc3001.dmm.com/litevideo/freepv/8/84' + videoSeries.substr(0, 1) + '/84' + videoSeries + codeArr[1] + '/84' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl14 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_237' + videoSeries + codeArr[1] + '/h_237' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl15 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_100' + videoSeries + codeArr[1] + '/h_100' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl16 = 'https://cc3001.dmm.com/litevideo/freepv/1/118/118' + videoSeries + codeArr[1] + '/118' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl17 = 'https://cc3001.dmm.com/litevideo/freepv/1/172/172' + videoSeries + codeArr[1] + '/172' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl18 = 'https://cc3001.dmm.com/litevideo/freepv/1/172/172' + videoSeries + codeArr[1] + '/172' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl19 = 'https://cc3001.dmm.com/litevideo/freepv/8/84' + videoSeries.substr(0, 1) + '/84' + videoSeries + codeArr[1] + '/84' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl20 = 'https://cc3001.dmm.com/litevideo/freepv/8/84' + videoSeries.substr(0, 1) + '/84' + videoSeries + codeArr[1] + '/84' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl21 = 'https://cc3001.dmm.com/litevideo/freepv/1/152/152' + videoSeries + videoFour + '/152' + videoSeries + videoFour + '_sm_s.mp4';
let videoUrl22 = 'https://cc3001.dmm.com/litevideo/freepv/1/118/118' + videoSeries + codeArr[1] + '/118' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl23 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_179' + videoSeries + codeArr[1] + '/h_179' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl24 = 'https://cc3001.dmm.com/litevideo/freepv/1/118/118' + videoSeries + codeArr[1] + '/118' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl25 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_186' + videoSeries + codeArr[1] + '/h_186' + videoSeries + codeArr[1] + '_sm_s.mp4';
let video = `
`;
$(objXRW).before(video)
}
// THNIB-系列 2种格式 1、n_1445+截掉b+3位数 2、h_706+5位数
addVideoTHNIB (code, objTHNIB) {
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(codeArr[1], 5);
let videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_706' + videoSeries + videoNo + '/h_706' + videoSeries + videoNo + '_dmb_w.mp4'; // THNIB-026 https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_706thnib00026/h_706thnib00026_dmb_w.mp4
let videoUrl2 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_706' + videoSeries + videoNo + '/h_706' + videoSeries + videoNo + '_mhb_w.mp4'; // THNIB-041 https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_706thnib00041/h_706thnib00041_mhb_w.mp4
let videoUrl3 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_706' + videoSeries + videoNo + '/h_706' + videoSeries + videoNo + '_dm_w.mp4'; // THNIB-023 https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_706thnib00023/h_706thnib00023_dm_w.mp4
let videoUrl4 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1445' + videoSeries.substr(0, 4) + codeArr[1] + '/n_1445' + videoSeries.substr(0, 4) + codeArr[1] + '_dmb_w.mp4'; // THNIB-025 https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1445thni025/n_1445thni025_dmb_w.mp4
let videoUrl5 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1425' + videoSeries + videoNo + '/n_1425' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl6 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1425' + videoSeries + codeArr[1] + '/n_1425' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl7 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1425' + videoSeries.substr(0, 4) + codeArr[1] + '/n_1425' + videoSeries.substr(0, 4) + codeArr[1] + '_dm_w.mp4';
let videoUrl8 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_205' + videoSeries + codeArr[1] + '/h_205' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl9 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1075' + videoSeries + codeArr[1] + '/h_1075' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl10 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_205' + videoSeries + videoNo + '/h_205' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl11 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1075' + videoSeries + videoNo + '/h_1075' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl12 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_205' + videoSeries + codeArr[1] + '/h_205' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl13 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_3/h_310' + videoSeries + codeArr[1] + '/h_310' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl14 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_3/h_310' + videoSeries + codeArr[1] + '/h_310' + videoSeries + codeArr[1] + '_dm_s.mp4';
let videoUrl15 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_3/h_310' + videoSeries + codeArr[1] + '/h_310' + videoSeries + codeArr[1] + '_sm_s.mp4';
let video = `
`;
$(objTHNIB).before(video)
}
// GVH-系列 4种格式 1、13+3/5位数 2、首字母+3/5位数 /GST-
addVideoGVH (code, objGVH) {
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(codeArr[1], 5);
let videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/13' + videoSeries.substr(0, 1) + '/13' + videoSeries + codeArr[1] + '/13' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2 = 'https://cc3001.dmm.com/litevideo/freepv/1/13' + videoSeries.substr(0, 1) + '/13' + videoSeries + codeArr[1] + '/13' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl3 = 'https://cc3001.dmm.com/litevideo/freepv/1/13' + videoSeries.substr(0, 1) + '/13' + videoSeries + videoNo + '/13' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl4 = 'https://cc3001.dmm.com/litevideo/freepv/1/13' + videoSeries.substr(0, 1) + '/13' + videoSeries + videoNo + '/13' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl5 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl6 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl7 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl8 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl9 = 'https://cc3001.dmm.com/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + codeArr[1] + '/1' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl10 = 'https://cc3001.dmm.com/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + videoNo + '/1' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl11 = 'https://cc3001.dmm.com/litevideo/freepv/1/13' + videoSeries.substr(0, 1) + '/13' + videoSeries + codeArr[1] + '/13' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl12 = 'https://cc3001.dmm.com/litevideo/freepv/1/13' + videoSeries.substr(0, 1) + '/13' + videoSeries + videoNo + '/13' + videoSeries + videoNo + '_sm_s.mp4';
let videoUrl13 = 'https://cc3001.dmm.com/litevideo/freepv/1/12' + videoSeries.substr(0, 1) + '/12' + videoSeries + codeArr[1] + '/12' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl14 = 'https://cc3001.dmm.com/litevideo/freepv/1/12' + videoSeries.substr(0, 1) + '/12' + videoSeries + videoNo + '/12' + videoSeries + videoNo + '_sm_s.mp4';
let videoUrl15 = 'https://cc3001.dmm.com/litevideo/freepv/1/13' + videoSeries.substr(0, 1) + '/13' + videoSeries + codeArr[1] + '/13' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl16 = 'https://cc3001.dmm.com/litevideo/freepv/1/13' + videoSeries.substr(0, 1) + '/13' + videoSeries + codeArr[1] + '/13' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl17 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + 'dm.mp4';
let videoUrl18 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + 'sm.mp4';
let video = `
`;
$(objGVH).before(video)
}
// ARSO-系列 2种格式 h_1378/1/ H-系列 140+ 首字母+
addVideoARSO (code, objARSO) {
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(codeArr[1], 5);
let videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + videoNo + '/1' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2 = 'https://cc3001.dmm.com/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + videoNo + '/1' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl3 = 'https://cc3001.dmm.com/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + videoNo + '/1' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl4 = 'https://cc3001.dmm.com/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + videoNo + '/1' + videoSeries + videoNo + '_sm_s.mp4';
let videoUrl5 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1378' + videoSeries + videoNo + '/h_1378' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl6 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1378' + videoSeries + videoNo + '/h_1378' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl7 = 'https://cc3001.dmm.com/litevideo/freepv/1/140/140' + videoSeries + codeArr[1] + '/140' + videoSeries + codeArr[1] + '_dm_s.mp4'; // H-2055 https://cc3001.dmm.com/litevideo/freepv/1/140/140h2055/140h2055_dm_s.mp4
let videoUrl8 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 1) + codeArr[1].substr(0, 2) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dm_w.mp4'; // H-621 https://cc3001.dmm.com/litevideo/freepv/h/h62/h621/h621_dm_w.mp4
let videoUrl9 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 1) + codeArr[1].substr(0, 2) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl10 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 1) + codeArr[1].substr(0, 2) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl11 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 1) + codeArr[1].substr(0, 2) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dmb_w.mp4'; // H-643 https://cc3001.dmm.com/litevideo/freepv/h/h64/h643/h643_dmb_w.mp4
let videoUrl12 = 'https://cc3001.dmm.com/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + codeArr[1] + '/1' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl13 = 'https://cc3001.dmm.com/litevideo/freepv/5/559/5593' + videoSeries + videoNo + '/5593' + videoSeries + videoNo + '_dm_w.mp4';
let video = `
`;
$(objARSO).before(video)
}
// DOKS-系列 2种格式 h_139+3位数 2、36+5位数 / TSM-系列 h_189+5 36+2
addVideoDOKS (code, objDOKS) {
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(codeArr[1], 5);
let videoTwo = codeArr[1].substring(codeArr[1].length - 2);
let videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_139' + videoSeries + codeArr[1] + '/h_139' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_139' + videoSeries + codeArr[1] + '/h_139' + videoSeries + codeArr[1] + '_mhb_w.mp4';//DOKS-573 https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_139doks573/h_139doks573_mhb_w.mp4
let videoUrl3 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_139' + videoSeries + codeArr[1] + '/h_139' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl4 = 'https://cc3001.dmm.com/litevideo/freepv/3/36' + videoSeries[0] + '/36' + videoSeries + videoNo + '/36' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl5 = 'https://cc3001.dmm.com/litevideo/freepv/3/36' + videoSeries[0] + '/36' + videoSeries + videoNo + '/36' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl6 = 'https://cc3001.dmm.com/litevideo/freepv/3/36' + videoSeries[0] + '/36' + videoSeries + videoNo + '/36' + videoSeries + videoNo + '_sm_s.mp4';
let videoUrl7 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_189' + videoSeries + videoNo + '/h_189' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl8 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_189' + videoSeries + videoNo + '/h_189' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl9 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_189' + videoSeries + videoNo + '/h_189' + videoSeries + videoNo + '_sm_s.mp4';
let videoUrl10 = 'https://cc3001.dmm.com/litevideo/freepv/3/36' + videoSeries[0] + '/36' + videoSeries + videoTwo + '/36' + videoSeries + videoTwo + '_dm_w.mp4';
let videoUrl11 = 'https://cc3001.dmm.com/litevideo/freepv/3/36' + videoSeries[0] + '/36' + videoSeries + videoTwo + '/36' + videoSeries + videoTwo + '_sm_w.mp4';
let videoUrl12 = 'https://cc3001.dmm.com/litevideo/freepv/3/36' + videoSeries[0] + '/36' + videoSeries + videoTwo + '/36' + videoSeries + videoTwo + '_sm_s.mp4';
let videoUrl13 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_139' + videoSeries + codeArr[1] + '/h_139' + videoSeries + codeArr[1] + '_dm_s.mp4';
let videoUrl14 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_139' + videoSeries + codeArr[1] + '/h_139' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl15 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_139' + videoSeries + codeArr[1] + '/h_139' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl16 = 'https://cc3001.dmm.com/litevideo/freepv/3/36' + videoSeries[0] + '/36' + videoSeries + videoNo + '/36' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl17 = 'https://cc3001.dmm.com/litevideo/freepv/3/36' + videoSeries[0] + '/36' + videoSeries + videoNo + '/36' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl18 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_189' + videoSeries + codeArr[1] + '/h_189' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl19 = 'https://cc3001.dmm.com/litevideo/freepv/3/36' + videoSeries[0] + '/36' + videoSeries + codeArr[1] + '/36' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl20 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_706' + videoSeries + videoNo + '/h_706' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl21 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_706' + videoSeries + videoNo + '/h_706' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl22 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1263' + videoSeries + videoNo + '/h_1263' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl23 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1263' + videoSeries + videoNo + '/h_1263' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl24 = 'https://cc3001.dmm.com/litevideo/freepv/7/77' + videoSeries[0] + '/77' + videoSeries + codeArr[1] + '/77' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl25 = 'https://cc3001.dmm.com/litevideo/freepv/7/71' + videoSeries[0] + '/71' + videoSeries + codeArr[1] + '/71' + videoSeries + codeArr[1] + '_sm_s.mp4';
let video = `
`;
$(objDOKS).before(video)
}
// YMDD-系列 2种格式 1、15+3/5位数 2、首字母+3/5位数 /TMD-系列 首+3/5 15+
addVideoYMDD (code, objYMDD) {
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(codeArr[1], 5);
let videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl3 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl4 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl5 = 'https://cc3001.dmm.com/litevideo/freepv/1/15' + videoSeries[0] + '/15' + videoSeries + videoNo + '/15' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl6 = 'https://cc3001.dmm.com/litevideo/freepv/1/15' + videoSeries[0] + '/15' + videoSeries + videoNo + '/15' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl7 = 'https://cc3001.dmm.com/litevideo/freepv/1/15' + videoSeries[0] + '/15' + videoSeries + videoNo + '/15' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl8 = 'https://cc3001.dmm.com/litevideo/freepv/1/15' + videoSeries[0] + '/15' + videoSeries + videoNo + '/15' + videoSeries + videoNo + '_sm_s.mp4';
let videoUrl9 = 'https://cc3001.dmm.com/litevideo/freepv/1/15' + videoSeries[0] + '/15' + videoSeries + codeArr[1] + '/15' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl10 = 'https://cc3001.dmm.com/litevideo/freepv/1/15' + videoSeries[0] + '/15' + videoSeries + codeArr[1] + '/15' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl11 = 'https://cc3001.dmm.com/litevideo/freepv/1/15' + videoSeries[0] + '/15' + videoSeries + codeArr[1] + '/15' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl12 = 'https://cc3001.dmm.com/litevideo/freepv/1/15' + videoSeries[0] + '/15' + videoSeries + codeArr[1] + '/15' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl13 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl14 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl9990 = 'https://cc3001.dmm.com/hlsvideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_mhb_w.m3u8';
let videoUrl9991 = 'https://cc3001.dmm.com/hlsvideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dmb_w.m3u8';
let videoUrl9992 = 'https://cc3001.dmm.com/hlsvideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + 'mmb.m3u8';
let videoUrl9993 = 'https://cc3001.dmm.com/hlsvideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/playlist.m3u8';
let videoUrl9996 = 'https://cc3001.dmm.com/hlsvideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_mhb_w.m3u8';
let videoUrl9997 = 'https://cc3001.dmm.com/hlsvideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dmb_w.m3u8';
let videoUrl9998 = 'https://cc3001.dmm.com/hlsvideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + 'mmb.m3u8';
let videoUrl9999 = 'https://cc3001.dmm.com/hlsvideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/playlist.m3u8';
let video = `
`;
$(objYMDD).before(video)
}
// SW-系列 ASW-、AVSW-、DISW-、DXSW-、HOISW-、KSWP-、OSW-无 、SW-、SWAC-、SWAR-无、SWAT-无、SWC-、SWD-、SWDF-、SWF-无、SWH-、SWS-无、SWSG-无、SWSM-无、SWA-、SWAG-、SWBD-、SWCN-、SWE-、SWFD-无、SWHD-无、SWJS-无、SWKI-、SWN-无、SWWC- VOIC-系列 调用SW-规则 /TRST-系列 n_681+4 5141+5 n_1155+4 / voic-
addVideoSW (code, objSW) {
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(codeArr[1], 5);
let videoFour = format_zero(codeArr[1], 4);
let videoTwo = codeArr[1].substring(codeArr[1].length - 2); // 数字截取后2位
let videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/4/436/436' + videoSeries + codeArr[1] + '/436' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2 = 'https://cc3001.dmm.com/litevideo/freepv/4/436/436' + videoSeries + codeArr[1] + '/436' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl3 = 'https://cc3001.dmm.com/litevideo/freepv/4/436/436' + videoSeries + codeArr[1] + '/436' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl4 = 'https://cc3001.dmm.com/litevideo/freepv/4/421/421' + videoSeries + codeArr[1] + '/421' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl5 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_9/h_967' + videoSeries + codeArr[1] + '/h_967' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl6 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_9/h_967' + videoSeries + codeArr[1] + '/h_967' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl7 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_9/h_967' + videoSeries + codeArr[1] + '/h_967' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl8 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_175' + videoSeries + codeArr[1] + '/h_175' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl9 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_175' + videoSeries + codeArr[1] + '/h_175' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl10 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_175' + videoSeries + codeArr[1] + '/h_175' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl11 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_4/h_491' + videoSeries + codeArr[1] + '/h_491' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl12 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_4/h_491' + videoSeries + codeArr[1] + '/h_491' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl13 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_4/h_491' + videoSeries + codeArr[1] + '/h_491' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl14 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1359' + videoSeries + codeArr[1] + '/h_1359' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl15 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1359' + videoSeries + codeArr[1] + '/h_1359' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl16 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1359' + videoSeries + videoNo + '/h_1359' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl17 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_113' + videoSeries + codeArr[1] + '/h_113' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl18 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_113' + videoSeries + codeArr[1] + '/h_113' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl19 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_113' + videoSeries + codeArr[1] + '/h_113' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl20 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl21 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl22 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl23 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl24 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl25 = 'https://cc3001.dmm.com/litevideo/freepv/3/33' + videoSeries[0] + '/33' + videoSeries + codeArr[1] + '/33' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl26 = 'https://cc3001.dmm.com/litevideo/freepv/2/24' + videoSeries[0] + '/24' + videoSeries + codeArr[1] + '/24' + videoSeries + codeArr[1] + '_dm_s.mp4';
let videoUrl27 = 'https://cc3001.dmm.com/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + codeArr[1] + '/1' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl28 = 'https://cc3001.dmm.com/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + codeArr[1] + '/1' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl29 = 'https://cc3001.dmm.com/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + codeArr[1] + '/1' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl30 = 'https://cc3001.dmm.com/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + codeArr[1] + '/1' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl31 = 'https://cc3001.dmm.com/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + codeArr[1] + '/1' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl32 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_6/n_650' + videoSeries + codeArr[1] + '/n_650' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl33 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_6/n_650' + videoSeries + codeArr[1] + '/n_650' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl34 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_6/n_650' + videoSeries + codeArr[1] + '/n_650' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl35 = 'https://cc3001.dmm.com/litevideo/freepv/1/12' + videoSeries[0] + '/12' + videoSeries + codeArr[1] + '/12' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl36 = 'https://cc3001.dmm.com/litevideo/freepv/1/12' + videoSeries[0] + '/12' + videoSeries + codeArr[1] + '/12' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl37 = 'https://cc3001.dmm.com/litevideo/freepv/5/514/5141' + videoSeries + codeArr[1] + '/5141' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl38 = 'https://cc3001.dmm.com/litevideo/freepv/5/514/5141' + videoSeries + videoNo + '/5141' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl39 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl40 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_6/n_681' + videoSeries + videoFour + '/n_681' + videoSeries + videoFour + '_sm_w.mp4';
let videoUrl41 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1155' + videoSeries + videoFour + '/n_1155' + videoSeries + videoFour + '_dmb_w.mp4';
let videoUrl42 = 'https://cc3001.dmm.com/litevideo/freepv/5/529/5294' + videoSeries + videoNo + '/5294' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl43 = 'https://cc3001.dmm.com/litevideo/freepv/4/483/483' + videoSeries + videoNo + '/483' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl44 = 'https://cc3001.dmm.com/litevideo/freepv/4/483/483' + videoSeries + videoNo + '/483' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl45 = 'https://cc3001.dmm.com/litevideo/freepv/4/483/483' + videoSeries + videoNo + '/483' + videoSeries + videoNo + '_sm_s.mp4';
let videoUrl46 = 'https://cc3001.dmm.com/litevideo/freepv/4/483/483' + videoSeries + videoNo + '/483' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl47 = 'https://cc3001.dmm.com/litevideo/freepv/4/436/436' + videoSeries + videoTwo + '/436' + videoSeries + videoTwo + '_sm_w.mp4';
let videoUrl48 = 'https://cc3001.dmm.com/litevideo/freepv/4/436/436' + videoSeries + videoTwo + '/436' + videoSeries + videoTwo + '_sm_s.mp4';
let videoUrl49 = 'https://cc3001.dmm.com/litevideo/freepv/2/24' + videoSeries[0] + '/24' + videoSeries + codeArr[1] + '/24' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl50 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_9/h_955' + videoSeries + codeArr[1] + '/h_955' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl51 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_157' + videoSeries + codeArr[1] + '/h_157' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl52 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_157' + videoSeries + videoTwo + '/h_157' + videoSeries + videoTwo + '_sm_s.mp4';
let videoUrl53 = 'https://cc3001.dmm.com/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + codeArr[1] + '/1' + videoSeries + codeArr[1] + 'dm.mp4';
let videoUrl54 = 'https://cc3001.dmm.com/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + codeArr[1] + '/1' + videoSeries + codeArr[1] + 'sm.mp4';
let videoUrl55 = 'https://cc3001.dmm.com/litevideo/freepv/5/514/5141' + videoSeries + videoNo + '/5141' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl56 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_7/n_707' + videoSeries + codeArr[1] + '/n_707' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl57 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_7/n_707' + videoSeries + codeArr[1] + '/n_707' + videoSeries + codeArr[1] + '_sm_w.mp4';
let video = `
`;
$(objSW).before(video)
}
// SMA-系列 DSMA2个资源 3种格式 1、83+3/5位数 2、首字母+3/5位数 / SMS-系列 83/首字母+3+_sm_w 并入 SMA
addVideoSMA (code, objSMA) {
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(codeArr[1], 5);
let videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dmb_w.mp4';
if (code.indexOf('DSMA-01') !== -1) { videoUrl = 'https://sample.mgstage.com/sample/mirai/064dsma/01/DSMA-01.mp4' }
if (code.indexOf('DSMA-02') !== -1) { videoUrl = 'https://sample.mgstage.com/sample/mirai/064dsma/02/DSMA-002.mp4' }
let videoUrl2 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl3 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl4 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl5 = 'https://cc3001.dmm.com/litevideo/freepv/8/83' + videoSeries[0] + '/83' + videoSeries + videoNo + '/83' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl6 = 'https://cc3001.dmm.com/litevideo/freepv/8/83' + videoSeries[0] + '/83' + videoSeries + videoNo + '/83' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl7 = 'https://cc3001.dmm.com/litevideo/freepv/8/83' + videoSeries[0] + '/83' + videoSeries + videoNo + '/83' + videoSeries + videoNo + '_sm_s.mp4';
let videoUrl8 = 'https://cc3001.dmm.com/litevideo/freepv/8/83' + videoSeries[0] + '/83' + videoSeries + codeArr[1] + '/83' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl9 = 'https://cc3001.dmm.com/litevideo/freepv/8/83' + videoSeries[0] + '/83' + videoSeries + codeArr[1] + '/83' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl10 = 'https://cc3001.dmm.com/litevideo/freepv/8/83' + videoSeries[0] + '/83' + videoSeries + codeArr[1] + '/83' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl11 = 'https://cc3001.dmm.com/litevideo/freepv/8/83' + videoSeries[0] + '/83' + videoSeries + codeArr[1] + '/83' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl12 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_sm_w.mp4';
let video = `
`;
$(objSMA).before(video)
}
// AVOP-系列 9种格式 1、1/11/18/59/84/首/h_910/h_254 CRDD-系列 h_1518/首
addVideoAVOP (code, objAVOP) {
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(codeArr[1], 5);
let videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl3 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl4 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl5 = 'https://cc3001.dmm.com/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + videoNo + '/1' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl6 = 'https://cc3001.dmm.com/litevideo/freepv/1/11' + videoSeries[0] + '/11' + videoSeries + videoNo + '/11' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl7 = 'https://cc3001.dmm.com/litevideo/freepv/1/18' + videoSeries[0] + '/18' + videoSeries + videoNo + '/18' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl8 = 'https://cc3001.dmm.com/litevideo/freepv/5/59' + videoSeries[0] + '/59' + videoSeries + videoNo + '/59' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl9 = 'https://cc3001.dmm.com/litevideo/freepv/8/84' + videoSeries[0] + '/84' + videoSeries + videoNo + '/84' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl10 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_254' + videoSeries + videoNo + '/h_254' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl11 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_9/h_910' + videoSeries + videoNo + '/h_910' + videoSeries + videoNo + '_dmb_w.mp4';
// https://cc3001.dmm.com/litevideo/freepv/a/avo/avop00127/avop00127_dmb_w.mp4
// https://cc3001.dmm.com/litevideo/freepv/a/avo/avop00127/avop00127_sm_w.mp4
let videoUrl12 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl13 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_sm_s.mp4';
let videoUrl14 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_254' + videoSeries + codeArr[1] + '/h_254' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl15 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_254' + videoSeries + codeArr[1] + '/h_254' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl16 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_792' + videoSeries + videoNo + '/h_792' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl17 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_792' + videoSeries + videoNo + '/h_792' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl18 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl19 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1518' + videoSeries + codeArr[1] + '/h_1518' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl20 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_5/h_559' + videoSeries + videoNo + '/h_559' + videoSeries + videoNo + '_sm_s.mp4';
let videoUrl21 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_8/h_848' + videoSeries + videoNo + '/h_848' + videoSeries + videoNo + '_sm_w.mp4';
let video = `
`;
// 下面为调试使用,不喜欢的可以把两段注释中间的删掉(显示番号和预览片地址:检查是否存在番号错误\张冠李戴等现象) 有些可能片商存在番号 但是没有预告片
if (code.match(/[a-zA-Z]{2,12}-\d{2,12}/i)) {
if (code.match(/^(AVOP-187|AVOP-282|AVOP-464)/i)) {
var host = 'https://madonna-av.com/works/detail';
var maker = 'Madonna(熟女、人妻专门制造商)';
} else if (code.match(/^(AVOP-056|AVOP-104|AVOP-212|AVOP-348|AVOP-437)/i)) {
var host = 'https://kawaiikawaii.jp/works/detail';
var maker = 'kawaii(女大学生专门制造商)';
} else if (code.match(/^(AVOP-002|AVOP-164|AVOP-263|AVOP-355|AVOP-445|YUJ-)/i)) {
var host = 'https://attackers.net/works/detail';
var maker = 'Attackers(凌辱剧情专门制造商)';
} else if (code.match(/^(OPVR-|OPBD-|OPUD-|AAJB-006|AVOP-135)/i)) {
var host = 'https://av-opera.jp/works/detail';
var maker = 'Av-opera(恋屎癖专门制造商)';
} else if (code.match(/^(BF-|PFES-|AVGL-134|AVOP-386)/i)) {
var host = 'https://befreebe.com/works/detail';
var maker = 'Befreebe(Cosplay单体女优制造商)';
} else if (code.match(/^(AVOP-309|AVOP-205|AVOP-064)/i)) {
var host = 'https://bi-av.com/works/detail';
var maker = 'Bi-av美(痴女专门制造商)';
} else if (code.match(/^(AVOP-454|AVOP-305|AVOP-203|AVOP-125|AVOP-014|EBWH-)/i)) {
var host = 'https://av-e-body.com/works/detail';
var maker = 'Av-E-BODY(各类单体女优制造商)';
} else if (code.match(/^(AVOP-428|AVOP-320|AVOP-272)/i)) {
var host = 'https://bibian-av.com/works/detail';
var maker = 'Bibian-avビビアン(女同性恋专门制造商)';
} else if (code.match(/^(AVOP-423|AVOP-319|AVOP-256|AVOP-169|AVOP-061)/i)) {
var host = 'https://dasdas.jp/works/detail';
var maker = 'Dasdasダスッ!(QJ中出专门制造商)';
} else if (code.match(/^(AVOP-451|AVOP-304|AVOP-207|AVOP-174|AVOP-041)/i)) {
var host = 'https://fitch-av.com/works/detail';
var maker = 'Fitch(熟女、人妻专门制造商)';
} else if (code.match(/^(AVGL-|HJBB-|HJMO-|AVOP-344|AVOP-226)/i)) {
var host = 'https://hajimekikaku.com/works/detail';
var maker = 'Hajimekikaku宇宙企划(素人女优制造商)';
} else if (code.match(/^(AVOP-410|AVOP-314)/i)) {
var host = 'https://honnaka.jp/works/detail';
var maker = 'Honnaka本中(中出専门制造商)';
} else if (code.match(/^(AVOP-401|AVOP-301|AVOP-201|AVOP-124|AVOP-001)/i)) {
var host = 'https://ideapocket.com/works/detail';
var maker = 'IdeaPocket(专属女优制造商/开发单体女优为主)';
} else if (code.match(/^(AOM-|MMND-|MMVR-|MMXD-|AVOP-143)/i)) {
var host = 'https://miman.jp/works/detail';
var maker = 'Miman(巨乳少女制造商)';
} else if (code.match(/^(EMLB-|MVR-|MISM-|AVOP-447)/i)) {
var host = 'https://mko-labo.net/works/detail';
var maker = 'Mko-labo(M女専门制造商)';
} else if (code.match(/^(AVOP-210|AVOP-009)/i)) {
var host = 'https://moodyz.com/works/detail';
var maker = 'MOODYZ(专属女优制造商)';
} else if (code.match(/^(AVOP-381|AVOP-228|AVOP-163|AVOP-047)/i)) {
var host = 'https://muku.tv/works/detail';
var maker = '無垢(JK制服美少女专门制造商)';
} else if (code.match(/^(AVOP-316|AVOP-245|AVOP-166)/i)) {
var host = 'https://mvg.jp/works/detail';
var maker = 'エムズビデオグループMVG(吞精专门制造商)';
} else if (code.match(/^(BLK-|KIBD-|KIFD-|KIRD-|KISD-|KIVR-|SET-|AVOP-349|AVOP-105|AVOP-057)/i)) {
var host = 'https://kirakira-av.com/works/detail';
var maker = 'kira☆kira(辣妹专门制造商)';
} else if (code.match(/^(AVOP-418|AVOP-383|AVOP-246|AVOP-147|AVOP-055)/i)) {
var host = 'https://oppai-av.com/works/detail';
var maker = 'OPPAI(恋胸癖専门制造商)';
} else if (code.match(/^(AVOP-239|AVOP-129|AVOP-067)/i)) {
var host = 'https://premium-beauty.com/works/detail';
var maker = 'Premium(专属女优制造商/单体女优)';
} else if (code.match(/^(RVR-|RBB-|RKI-|AVOP-412)/i)) {
var host = 'https://rookie-av.jp/works/detail';
var maker = 'Rookie-av(企划专门制造商)';
} else if (code.match(/^(AVOP-127)/i)) {
var host = 'https://s1s1s1.com/works/detail';
var maker = 'S1 NO.1 STYLE(专属女优制造商/人气女优与美形女优)';
} else if (code.match(/^(AVOP-368|AVOP-185|AVOP-032)/i)) {
var host = 'https://tameikegoro.jp/works/detail';
var maker = '溜池ゴロー(熟女、人妻专门制造商)';
} else if (code.match(/^(CLVR-|STOL-|CLUB-|AVOP-330)/i)) {
var host = 'https://to-satsu.com/works/detail';
var maker = 'To-satsu(按摩偷窥専门制造商)';
} else if (code.match(/^(VVVD-|VICD-|VIZD-|VSPD-|AVGL-107|AVOP-165)/i)) {
var host = 'https://v-av.com/works/detail';
var maker = 'V-av(SM专门制造商)';
} else {
var host = 'https://wanz-factory.com/works/detail';
var maker = 'Wanz Factory(中出单体女优制造商)';
}
let codee = code.replace("-", "");
GM_xmlhttpRequest({
url: host + `/` + codee,
method: "GET",
responseType: "document",
onload: ({ response }) => {
if (!response) {
isLoading = false;
return;
}
const avsrc = response
?.querySelector(".video video")?.getAttribute("src") ?? "";
if (!avsrc) {
isLoading = false;
return;
}
let video = $('\
' + code + ' ' + avsrc + '
播放 \
此处为片商
"' + maker + '" 直获地址,区别与上面的规则匹配,如果存在资源,可能比规则匹配速度快些\
');
$(objAVOP).before(video)
},
});
}
// 不喜欢的可以把上下两段注释中间的删掉
// sod start avsrc参数只为校验页面是否存在 此页面的mp4播放地址不可外链 不可直接播放
if (code.match(/^(STARS-|SODS-|DSVR-)/i)) {
var host = 'https://ec.sod.co.jp/prime/videos/sample.php?id=';
var maker = 'SOD Create';
GM_xmlhttpRequest({
url: host + code,
method: "GET",
responseType: "document",
onload: ({ response }) => {
var isLoading = true;
if (!response) {
isLoading = false;
return;
}
const avsrc = response
?.querySelector(".videos_favoriteb a")?.getAttribute("href") ?? "";
if (!avsrc) {
isLoading = false;
return;
}
let video = $('');
$(obj).before(video)
},
});
}
// sod end
$(objAVOP).before(video)
}
// BAZX-系列 84/首
addVideoBAZX (code, objBAZX) {
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(codeArr[1], 5);
let videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl3 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl4 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl5 = 'https://cc3001.dmm.com/litevideo/freepv/8/84' + videoSeries[0] + '/84' + videoSeries + codeArr[1] + '/84' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let video = `
`;
$(objBAZX).before(video)
}
// VSPDS-系列 1+3/5位数 42+3位数
addVideoVSPDS (code, objVSPDS) {
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(codeArr[1], 5);
let videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + videoNo + '/1' + videoSeries + videoNo + '_sm_s.mp4';
let videoUrl2 = 'https://cc3001.dmm.com/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + codeArr[1] + '/1' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl3 = 'https://cc3001.dmm.com/litevideo/freepv/4/42' + videoSeries[0] + '/42' + videoSeries + codeArr[1] + '/42' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl4 = 'https://cc3001.dmm.com/litevideo/freepv/4/42' + videoSeries[0] + '/42' + videoSeries + codeArr[1] + '/42' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl5 = 'https://cc3001.dmm.com/litevideo/freepv/4/42' + videoSeries[0] + '/42' + videoSeries + codeArr[1] + '/42' + videoSeries + codeArr[1] + '_sm_s.mp4';
let video = `
`;
$(objVSPDS).before(video)
}
// NATR-系列 种 h_067+3位数 首字母+3/5位数 / TGA-系列 h_254+3 h_1577+5 / TEN-系列 143+2 h_859+3 ( \raf-首字母+3/5 143+ \ / TEN-系列 143+2 h_859+3 / TGA-系列 h_254+3 h_1577+5 并入 NATR )
addVideoNATR (code, objNATR) {
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(codeArr[1], 5);
let videoTwo = codeArr[1].substring(codeArr[1].length - 2);
let videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl3 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl4 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl5 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl6 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl7 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl8 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl9 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_067' + videoSeries + codeArr[1] + '/h_067' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl10 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_067' + videoSeries + codeArr[1] + '/h_067' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl11 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_067' + videoSeries + codeArr[1] + '/h_067' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl12 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_067' + videoSeries + codeArr[1] + '/h_067' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl13 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_254' + videoSeries + codeArr[1] + '/h_254' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl14 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_254' + videoSeries + codeArr[1] + '/h_254' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl15 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_254' + videoSeries + codeArr[1] + '/h_254' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl16 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_254' + videoSeries + codeArr[1] + '/h_254' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl17 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1577' + videoSeries + videoNo + '/h_1577' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl18 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1577' + videoSeries + videoNo + '/h_1577' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl19 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1577' + videoSeries + videoNo + '/h_1577' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl20 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1577' + videoSeries + videoNo + '/h_1577' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl21 = 'https://cc3001.dmm.com/litevideo/freepv/1/143/143' + videoSeries + videoTwo + '/143' + videoSeries + videoTwo + '_sm_w.mp4';
let videoUrl22 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_8/h_859' + videoSeries + codeArr[1] + '/h_859' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl23 = 'https://cc3001.dmm.com/litevideo/freepv/1/118/118' + videoSeries + codeArr[1] + '/118' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl24 = 'https://cc3001.dmm.com/litevideo/freepv/1/143/143' + videoSeries + codeArr[1] + '/143' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl25 = 'https://cc3001.dmm.com/litevideo/freepv/1/118/118' + videoSeries + codeArr[1] + '/118' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl26 = 'https://cc3001.dmm.com/litevideo/freepv/1/143/143' + videoSeries + videoTwo + '/143' + videoSeries + videoTwo + '_sm_s.mp4';
let videoUrl27 = 'https://cc3001.dmm.com/litevideo/freepv/5/512/5129' + videoSeries + videoNo + '/5129' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl28 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1057' + videoSeries + codeArr[1] + '/n_1057' + videoSeries + codeArr[1] + '_dm_s.mp4';
let videoUrl29 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1057' + videoSeries + codeArr[1] + '/n_1057' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl30 = 'https://cc3001.dmm.com/litevideo/freepv/2/24' + videoSeries[0] + '/24' + videoSeries + codeArr[1] + '/24' + videoSeries + codeArr[1] + '_dm_s.mp4';
let videoUrl31 = 'https://cc3001.dmm.com/litevideo/freepv/1/143/143' + videoSeries + codeArr[1] + '/143' + videoSeries + codeArr[1] + '_dm_s.mp4';
let videoUrl32 = 'https://cc3001.dmm.com/litevideo/freepv/g/gk' + videoSeries.substr(0, 1) + '/gk' + videoSeries + codeArr[1] + '/gk' + videoSeries + codeArr[1] + '_dm_w.mp4';
let video = `
`;
$(objNATR).before(video)
}
// EKDV-系列 3种 49+3/5位数 首字母+5位数
addVideoEKDV (code, objEKDV) {
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(codeArr[1], 5);
let videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl3 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl4 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl5 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl6 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl7 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl8 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl9 = 'https://cc3001.dmm.com/litevideo/freepv/4/49' + videoSeries[0] + '/49' + videoSeries + codeArr[1] + '/49' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl10 = 'https://cc3001.dmm.com/litevideo/freepv/4/49' + videoSeries[0] + '/49' + videoSeries + codeArr[1] + '/49' + videoSeries + codeArr[1] + '_dmb_s.mp4';
let videoUrl11 = 'https://cc3001.dmm.com/litevideo/freepv/4/49' + videoSeries[0] + '/49' + videoSeries + codeArr[1] + '/49' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl12 = 'https://cc3001.dmm.com/litevideo/freepv/4/49' + videoSeries[0] + '/49' + videoSeries + codeArr[1] + '/49' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl13 = 'https://cc3001.dmm.com/litevideo/freepv/4/49' + videoSeries[0] + '/49' + videoSeries + videoNo + '/49' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl14 = 'https://cc3001.dmm.com/litevideo/freepv/4/49' + videoSeries[0] + '/49' + videoSeries + videoNo + '/49' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl15 = 'https://cc3001.dmm.com/litevideo/freepv/4/49' + videoSeries[0] + '/49' + videoSeries + videoNo + '/49' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl16 = 'https://cc3001.dmm.com/litevideo/freepv/4/49' + videoSeries[0] + '/49' + videoSeries + videoNo + '/49' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl17 = 'https://cc3001.dmm.com/litevideo/freepv/4/49' + videoSeries[0] + '/49' + videoSeries + videoNo + '/49' + videoSeries + videoNo + '_sm_s.mp4';
let videoUrl18 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1271' + videoSeries + videoNo + '/h_1271' + videoSeries + videoNo + '_sm_s.mp4';
let videoUrl19 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_4/h_445' + videoSeries + codeArr[1] + '/h_445' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl20 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + 'dm.mp4';
let videoUrl21 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + 'sm.mp4';
let video = `
`;
$(objEKDV).before(video)
}
// STCV-系列 首字母+3位数 h_1616+5位数 1+5位数
addVideoSTCV (code, objSTCV) {
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(codeArr[1], 5);
let videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl3 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl4 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl5 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1616' + videoSeries + videoNo + '/h_1616' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl6 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1616' + videoSeries + videoNo + '/h_1616' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl7 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1616' + videoSeries + videoNo + '/h_1616' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl8 = 'https://cc3001.dmm.com/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + videoNo + '/1' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl9 = 'https://cc3001.dmm.com/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + videoNo + '/1' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl10 = 'https://cc3001.dmm.com/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + videoNo + '/1' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl11 = 'https://cc3001.dmm.com/litevideo/freepv/1/1' + videoSeries.substr(0, 2) + '/1' + videoSeries + videoNo + '/1' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl12 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl13 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl14 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl15 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_sm_w.mp4';
let video = `
`;
$(objSTCV).before(video)
}
// NASH-系列 2种 h_067+3位数 首字母+3位数
addVideoNASH (code, objNASH) {
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(codeArr[1], 5);
let videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl2 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl3 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl4 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl5 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_067' + videoSeries + videoNo + '/h_067' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl6 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_067' + videoSeries + videoNo + '/h_067' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl7 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_067' + videoSeries + videoNo + '/h_067' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl8 = 'https://sample.mgstage.com/sample/nadeshiko/171' + videoSeries + '/' + codeArr[1] + '/171' + code + '.mp4';
let videoUrl9 = 'https://cc3001.dmm.com/litevideo/freepv/4/406/406' + videoSeries + videoNo + '/406' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl10 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_7/n_709' + videoSeries + codeArr[1] + '/n_709' + videoSeries + codeArr[1] + '_sm_w.mp4';
let video = `
`;
$(objNASH).before(video)
}
// KTRA-系列 4种 h_094+3/5位数 首字母+3/5位数
addVideoKTRA (code, objKTRA) {
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(codeArr[1], 5);
let videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl2 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl3 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl4 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_094' + videoSeries + videoNo + '/h_094' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl5 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_094' + videoSeries + videoNo + '/h_094' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl6 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_094' + videoSeries + videoNo + '/h_094' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl7 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_094' + videoSeries + videoNo + 'e/h_094' + videoSeries + videoNo + 'e_dmb_w.mp4';
let videoUrl8 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_094' + videoSeries + videoNo + 'e/h_094' + videoSeries + videoNo + 'e_mhb_w.mp4';
let videoUrl9 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_094' + videoSeries + videoNo + 'e/h_094' + videoSeries + videoNo + 'e_dm_w.mp4';
let videoUrl10 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_094' + videoSeries + codeArr[1] + '/h_094' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl11 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_094' + videoSeries + codeArr[1] + '/h_094' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl12 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_094' + videoSeries + codeArr[1] + '/h_094' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl13 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_094' + videoSeries + codeArr[1] + 'e/h_094' + videoSeries + codeArr[1] + 'e_dmb_w.mp4';
let videoUrl14 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_094' + videoSeries + codeArr[1] + 'e/h_094' + videoSeries + codeArr[1] + 'e_mhb_w.mp4';
let videoUrl15 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_094' + videoSeries + codeArr[1] + 'e/h_094' + videoSeries + codeArr[1] + 'e_dm_w.mp4';
let videoUrl16 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl17 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl18 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dmb_w.mp4';
let video = `
`;
$(objKTRA).before(video)
}
// MOND-系列 首字母+5位数 18+3位数
addVideoMOND (code, objMOND) {
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(codeArr[1], 5);
let videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl3 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl4 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl5 = 'https://cc3001.dmm.com/litevideo/freepv/1/18' + videoSeries[0] + '/18' + videoSeries + codeArr[1] + '/18' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl6 = 'https://cc3001.dmm.com/litevideo/freepv/1/18' + videoSeries[0] + '/18' + videoSeries + codeArr[1] + '/18' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl7 = 'https://cc3001.dmm.com/litevideo/freepv/1/18' + videoSeries[0] + '/18' + videoSeries + codeArr[1] + '/18' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl8 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + 'sm.mp4';
let videoUrl9 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + 'dm.mp4';
let videoUrl10 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + 'sm.mp4';
let videoUrl11 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + 'dm.mp4';
let video = `
`;
$(objMOND).before(video)
}
// ADK-系列 h_747/h_908
addVideoADK (code, objADK) {
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(codeArr[1], 5);
let videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_9/h_908' + videoSeries + videoNo + '/h_908' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl2 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_9/h_908' + videoSeries + videoNo + '/h_908' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl3 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_9/h_908' + videoSeries + videoNo + '/h_908' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl4 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_747' + videoSeries + codeArr[1] + '/h_747' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl5 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_747' + videoSeries + codeArr[1] + '/h_747' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl6 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_747' + videoSeries + codeArr[1] + '/h_747' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl7 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1121' + videoSeries + codeArr[1] + '/n_1121' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl8 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1121' + videoSeries + codeArr[1] + '/n_1121' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl9 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_3/h_305' + videoSeries + codeArr[1] + '/h_305' + videoSeries + codeArr[1] + '_dmb_w.mp4'
let videoUrl10 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_3/h_305' + videoSeries + codeArr[1] + '/h_305' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl11 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_3/h_305' + videoSeries + codeArr[1] + '/h_305' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl12 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1278' + videoSeries + videoNo + '/h_1278' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl13 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1278' + videoSeries + videoNo + '/h_1278' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl14 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1283' + videoSeries + videoNo + '/h_1283' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl15 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1283' + videoSeries + videoNo + '/h_1283' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl16 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1300' + videoSeries + videoNo + '/h_1300' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl17 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1300' + videoSeries + videoNo + '/h_1300' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl18 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1300' + videoSeries + codeArr[1] + '/h_1300' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl19 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1300' + videoSeries + codeArr[1] + '/h_1300' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl20 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1348' + videoSeries + codeArr[1] + '/h_1348' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl21 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1348' + videoSeries + codeArr[1] + '/h_1348' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl22 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1074' + videoSeries + codeArr[1] + '/h_1074' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl23 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1074' + videoSeries + codeArr[1] + '/h_1074' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl24 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_205' + videoSeries + codeArr[1] + '/h_205' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl25 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_205' + videoSeries + codeArr[1] + '/h_205' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl26 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_205' + videoSeries + codeArr[1] + '/h_205' + videoSeries + codeArr[1] + '_dm_s.mp4';
let videoUrl27 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_205' + videoSeries + codeArr[1] + '/h_205' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl28 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1522' + videoSeries + videoNo + '/h_1522' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl29 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1522' + videoSeries + videoNo + '/h_1522' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl30 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1428' + videoSeries + codeArr[1] + '/n_1428' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl31 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_1/n_1428' + videoSeries + codeArr[1] + '/n_1428' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl32 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1074' + videoSeries + videoNo + '/h_1074' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl33 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1074' + videoSeries + videoNo + '/h_1074' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl34 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1760' + videoSeries + videoNo + '/h_1760' + videoSeries + videoNo + 'dm.mp4';
let videoUrl35 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1760' + videoSeries + videoNo + '/h_1760' + videoSeries + videoNo + 'sm.mp4';
let videoUrl36 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1711' + videoSeries + videoNo + '/h_1711' + videoSeries + videoNo + 'dm.mp4';
let videoUrl37 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_1711' + videoSeries + videoNo + '/h_1711' + videoSeries + videoNo + 'sm.mp4';
let video = `
`;
$(objADK).before(video)
}
// ENFD-系列 5626/5664+5 n_641+默认
addVideoENFD (code, objENFD) {
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(codeArr[1], 5);
let videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/5/562/5626' + videoSeries + videoNo + '/5626' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl2 = 'https://cc3001.dmm.com/litevideo/freepv/5/562/5626' + videoSeries + videoNo + '/5626' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl3 = 'https://cc3001.dmm.com/litevideo/freepv/5/562/5626' + videoSeries + videoNo + '/5626' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl4 = 'https://cc3001.dmm.com/litevideo/freepv/5/562/5626' + videoSeries + videoNo + '/5626' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl5 = 'https://cc3001.dmm.com/litevideo/freepv/5/566/5664' + videoSeries + videoNo + '/5664' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl6 = 'https://cc3001.dmm.com/litevideo/freepv/5/566/5664' + videoSeries + videoNo + '/5664' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl7 = 'https://cc3001.dmm.com/litevideo/freepv/5/566/5664' + videoSeries + videoNo + '/5664' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl8 = 'https://cc3001.dmm.com/litevideo/freepv/5/566/5664' + videoSeries + videoNo + '/5664' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl9 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_6/n_641' + videoSeries + codeArr[1] + '/n_641' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl10 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_6/n_641' + videoSeries + codeArr[1] + '/n_641' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl11 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_6/n_641' + videoSeries + codeArr[1] + '/n_641' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl12 = 'https://cc3001.dmm.com/litevideo/freepv/n/n_6/n_641' + videoSeries + codeArr[1] + '/n_641' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let video = `
`;
$(objENFD).before(video)
}
// ISD-系列 13\17\21\24 首字母 https://cc3001.dmm.com/litevideo/freepv/2/21i/21isd067/21isd067_dmb_s.mp4 skd并入ISD
addVideoISD (code, objISD) {
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(codeArr[1], 5);
let videoTwo = codeArr[1].substring(codeArr[1].length - 2); // 数字截取后2位
let videoThrBu = format_zero(codeArr[1], 3); // 1位或2位补足3位 区别与直接截取后3位
let videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl2 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl3 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl4 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dm_w.mp4';
let videoUrl5 = 'https://cc3001.dmm.com/litevideo/freepv/1/13' + videoSeries[0] + '/13' + videoSeries + videoNo + '/13' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl6 = 'https://cc3001.dmm.com/litevideo/freepv/1/13' + videoSeries[0] + '/13' + videoSeries + videoNo + '/13' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl7 = 'https://cc3001.dmm.com/litevideo/freepv/1/13' + videoSeries[0] + '/13' + videoSeries + videoNo + '/13' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl8 = 'https://cc3001.dmm.com/litevideo/freepv/1/17' + videoSeries[0] + '/17' + videoSeries + videoNo + '/17' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl9 = 'https://cc3001.dmm.com/litevideo/freepv/1/17' + videoSeries[0] + '/17' + videoSeries + videoNo + '/17' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl10 = 'https://cc3001.dmm.com/litevideo/freepv/1/17' + videoSeries[0] + '/17' + videoSeries + videoNo + '/17' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl11 = 'https://cc3001.dmm.com/litevideo/freepv/2/21' + videoSeries[0] + '/21' + videoSeries + videoNo + '/21' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl12 = 'https://cc3001.dmm.com/litevideo/freepv/2/21' + videoSeries[0] + '/21' + videoSeries + videoNo + '/21' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl13 = 'https://cc3001.dmm.com/litevideo/freepv/2/21' + videoSeries[0] + '/21' + videoSeries + videoNo + '/21' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl14 = 'https://cc3001.dmm.com/litevideo/freepv/2/21' + videoSeries[0] + '/21' + videoSeries + codeArr[1] + '/21' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl15 = 'https://cc3001.dmm.com/litevideo/freepv/2/21' + videoSeries[0] + '/21' + videoSeries + codeArr[1] + '/21' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl16 = 'https://cc3001.dmm.com/litevideo/freepv/2/21' + videoSeries[0] + '/21' + videoSeries + codeArr[1] + '/21' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl17 = 'https://cc3001.dmm.com/litevideo/freepv/2/24' + videoSeries[0] + '/24' + videoSeries + videoNo + '/24' + videoSeries + videoNo + '_dmb_w.mp4';
let videoUrl18 = 'https://cc3001.dmm.com/litevideo/freepv/2/24' + videoSeries[0] + '/24' + videoSeries + videoNo + '/24' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl19 = 'https://cc3001.dmm.com/litevideo/freepv/2/24' + videoSeries[0] + '/24' + videoSeries + videoNo + '/24' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl20 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoNo + '/' + videoSeries + videoNo + '_dmb_s.mp4';
let videoUrl21 = 'https://cc3001.dmm.com/litevideo/freepv/1/13' + videoSeries[0] + '/13' + videoSeries + videoNo + '/13' + videoSeries + videoNo + '_dmb_s.mp4';
let videoUrl22 = 'https://cc3001.dmm.com/litevideo/freepv/1/17' + videoSeries[0] + '/17' + videoSeries + videoNo + '/17' + videoSeries + videoNo + '_dmb_s.mp4';
let videoUrl23 = 'https://cc3001.dmm.com/litevideo/freepv/2/21' + videoSeries[0] + '/21' + videoSeries + videoNo + '/21' + videoSeries + videoNo + '_dmb_s.mp4';
let videoUrl24 = 'https://cc3001.dmm.com/litevideo/freepv/2/21' + videoSeries[0] + '/21' + videoSeries + codeArr[1] + '/21' + videoSeries + codeArr[1] + '_dmb_s.mp4';
let videoUrl25 = 'https://cc3001.dmm.com/litevideo/freepv/2/24' + videoSeries[0] + '/24' + videoSeries + videoNo + '/24' + videoSeries + videoNo + '_dmb_s.mp4';
let videoUrl26 = 'https://cc3001.dmm.com/litevideo/freepv/1/13' + videoSeries[0] + '/13' + videoSeries + codeArr[1] + '/13' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl27 = 'https://cc3001.dmm.com/litevideo/freepv/4/433/433' + videoSeries + codeArr[1] + '/433' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl28 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl29 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl30 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl31 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl32 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_dmb_s.mp4';
let videoUrl33 = 'https://cc3001.dmm.com/litevideo/freepv/1/13' + videoSeries[0] + '/13' + videoSeries + codeArr[1] + '/13' + videoSeries + codeArr[1] + '_dm_s.mp4';
let videoUrl34 = 'https://cc3001.dmm.com/litevideo/freepv/2/24' + videoSeries[0] + '/24' + videoSeries + codeArr[1] + '/24' + videoSeries + codeArr[1] + '_dm_s.mp4';
let videoUrl35 = 'https://cc3001.dmm.com/litevideo/freepv/1/13' + videoSeries[0] + '/13' + videoSeries + videoTwo + '/13' + videoSeries + videoTwo + '_sm_s.mp4';
let videoUrl36 = 'https://cc3001.dmm.com/litevideo/freepv/2/24' + videoSeries[0] + '/24' + videoSeries + codeArr[1] + '/24' + videoSeries + codeArr[1] + '_sm_s.mp4';
let videoUrl37 = 'https://cc3001.dmm.com/litevideo/freepv/2/24' + videoSeries[0] + '/24' + videoSeries + codeArr[1] + '/24' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl38 = 'https://cc3001.dmm.com/litevideo/freepv/2/24' + videoSeries[0] + '/24' + videoSeries + codeArr[1] + '/24' + videoSeries + codeArr[1] + '_sm_w.mp4';
let videoUrl39 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + codeArr[1] + '/' + videoSeries + codeArr[1] + '_sm_s.mp4'
let videoUrl40 = 'https://cc3001.dmm.com/litevideo/freepv/' + videoSeries[0] + '/' + videoSeries.substr(0, 3) + '/' + videoSeries + videoThrBu + '/' + videoSeries + videoThrBu + '_dm_w.mp4'
let video = `
`;
$(objISD).before(video)
}
// AVGP-系列 复杂的番号系列
addVideoAVGP (code, objAVGP) {
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(codeArr[1], 5);
let videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_9/h_908' + videoSeries + videoNo + '/h_908' + videoSeries + videoNo + '_dm_w.mp4';
if (null != code.match(/^(AVGP-013)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/5/540/540avgp013/540avgp013_sm_s.mp4' }
if (null != code.match(/^(AVGP-014)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/140/140avgp014/140avgp014_sm_s.mp4' }
if (null != code.match(/^(AVGP-102)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/5/504/504avgp102/504avgp102_dmb_s.mp4' }
if (null != code.match(/^(AVGP-104)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/148/148avgp104/148avgp104_dmb_s.mp4' }
if (null != code.match(/^(AVGP-105)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_274avgp105/h_274avgp105_dmb_s.mp4' }
if (null != code.match(/^(AVGP-106)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_269avgp106/h_269avgp106_dmb_s.mp4' }
if (null != code.match(/^(AVGP-107)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_229avgp107/h_229avgp107_dmb_s.mp4' }
if (null != code.match(/^(AVGP-108)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/4/46a/46avgp108/46avgp108_dmb_s.mp4' }
if (null != code.match(/^(AVGP-109)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/3/36a/36avgp109/36avgp109_dmb_s.mp4' }
if (null != code.match(/^(AVGP-110)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/6/66a/66avgp110/66avgp110_dmb_s.mp4' }
if (null != code.match(/^(AVGP-112)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/4/47a/47avgp112/47avgp112_dmb_s.mp4' }
if (null != code.match(/^(AVGP-113)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/4/48a/48avgp113/48avgp113_dmb_s.mp4' }
if (null != code.match(/^(AVGP-114)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/12a/12avgp114/12avgp114_dm_s.mp4' }
if (null != code.match(/^(AVGP-115)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/13a/13avgp115/13avgp115_dmb_s.mp4' }
if (null != code.match(/^(AVGP-116)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/5/50a/50avgp116/50avgp116_dmb_s.mp4' }
if (null != code.match(/^(AVGP-117)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_273avgp117/h_273avgp117_dmb_s.mp4' }
if (null != code.match(/^(AVGP-118)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_240avgp118/h_240avgp118_dmb_s.mp4' }
if (null != code.match(/^(AVGP-119)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/5/540/540avgp119/540avgp119_dmb_s.mp4' }
if (null != code.match(/^(AVGP-120)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/140/140avgp120/140avgp120_dmb_s.mp4' }
if (null != code.match(/^(AVGP-123)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_164avgp123/h_164avgp123_dmb_s.mp4' }
if (null != code.match(/^(AVGP-124)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_152avgp124/h_152avgp124_dmb_s.mp4' }
if (null != code.match(/^(AVGP-125)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_0/h_086avgp125/h_086avgp125_dmb_s.mp4' }
if (null != code.match(/^(AVGP-126)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/171/171avgp126/171avgp126_dmb_s.mp4' }
if (null != code.match(/^(AVGP-127)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/18a/18avgp127/18avgp127_dmb_s.mp4' }
if (null != code.match(/^(AVGP-128)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_268avgp128/h_268avgp128_dmb_s.mp4' }
if (null != code.match(/^(AVGP-129)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_236avgp129/h_236avgp129_dmb_s.mp4' }
if (null != code.match(/^(AVGP-130)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/4/434/434avgp130/434avgp130_dmb_s.mp4' }
if (null != code.match(/^(AVGP-131)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/5/55a/55avgp131/55avgp131_dmb_s.mp4' }
if (null != code.match(/^(AVGP-132)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_275avgp132/h_275avgp132_dmb_s.mp4' }
if (null != code.match(/^(AVGP-134)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_127avgp134/h_127avgp134_dmb_s.mp4' }
if (null != code.match(/^(AVGP-135)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_267avgp135/h_267avgp135_dmb_s.mp4' }
if (null != code.match(/^(AVGP-136)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_172avgp136/h_172avgp136_dm_s.mp4' }
if (null != code.match(/^(AVGP-137)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/2/28a/28avgp137/28avgp137_dmb_s.mp4' }
if (null != code.match(/^(AVGP-138)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/5/57a/57avgp138/57avgp138_dmb_s.mp4' }
if (null != code.match(/^(AVGP-141)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_276avgp141/h_276avgp141_dmb_s.mp4' }
if (null != code.match(/^(AVGP-142)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/5/59a/59avgp142/59avgp142_dmb_s.mp4' }
if (null != code.match(/^(AVGP-143)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/6/62a/62avgp143/62avgp143_dmb_s.mp4' }
if (null != code.match(/^(AVGP-144)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/2/23a/23avgp144/23avgp144_dmb_s.mp4' }
if (null != code.match(/^(AVGP-145)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/189/189avgp145/189avgp145_dmb_s.mp4' }
if (null != code.match(/^(AVGP-146)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/h/h_2/h_204avgp146/h_204avgp146_dmb_s.mp4' }
if (null != code.match(/^(AVGP-147)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/1/17a/17avgp147/17avgp147_dmb_s.mp4' }
if (null != code.match(/^(AVGP-148)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/2/2av/2avgp148/2avgp148_dmb_s.mp4' }
if (null != code.match(/^(AVGP-150)/i)) { videoUrl = 'https://cc3001.dmm.com/litevideo/freepv/3/3av/3avgp150/3avgp150_dmb_s.mp4' }
let videoUrl2 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_9/h_908' + videoSeries + videoNo + '/h_908' + videoSeries + videoNo + '_mhb_w.mp4';
let videoUrl3 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_9/h_908' + videoSeries + videoNo + '/h_908' + videoSeries + videoNo + '_sm_w.mp4';
let videoUrl4 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_747' + videoSeries + codeArr[1] + '/h_747' + videoSeries + codeArr[1] + '_dm_w.mp4';
let videoUrl5 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_747' + videoSeries + codeArr[1] + '/h_747' + videoSeries + codeArr[1] + '_dmb_w.mp4';
let videoUrl6 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_7/h_747' + videoSeries + codeArr[1] + '/h_747' + videoSeries + codeArr[1] + '_mhb_w.mp4';
let videoUrl7 = 'https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_172' + videoSeries + codeArr[1] + '/h_172' + videoSeries + codeArr[1] + '_dm_s.mp4'; // https://cc3001.dmm.com/litevideo/freepv/h/h_1/h_172avgp136/h_172avgp136_dm_s.mp4
let video = `
`;
$(objAVGP).before(video)
}
// 数据节点Base结束
}
class JavBus extends Base {
constructor() {
super();
GM_addStyle(`
.info a.red {color:red;padding-left:2px;padding-right:2px;}
`);
if ($('.col-md-3.info').length > 0) {
this.detailPage();
}
}
detailPage () {
let _this = this;
let info = $('.col-md-3.info');
let yulan = $('.row.movie');
let changyulan = $('#mag-submit-show');
//标题
let title = $('.container > h3').text();
//识别码
let codeRow = info.find('p').eq(0);
let code = codeRow.find('span').eq(1).html().replace("SR-0029", "SR-29").replace("SR-0030", "SR-30").replace("SR-0031", "SR-31").replace("SR-0032", "SR-32").replace("SR-0033", "SR-33").replace("SR-0034", "SR-34").replace("SR-0035", "SR-35").replace("SR-0036", "SR-36").replace("SR-0037", "SR-37").replace("SR-0038", "SR-38").replace("SR-0039", "SR-39").replace("SR-0040", "SR-40").replace("SR-0041", "SR-41").replace("SR-0042", "SR-42").replace("SR-0043", "SR-43").replace("SR-0044", "SR-44").replace("SR-0045", "SR-45").replace("SR-0046", "SR-46").replace("SR-0047", "SR-47").replace("SR-0048", "SR-48").replace("SR-0049", "SR-49").replace("SR-0050", "SR-50").replace("SR-0051", "SR-51").replace("SR-0052", "SR-52").replace("SR-0053", "SR-53").replace("SR-0054", "SR-54").replace("SR-0055", "SR-55").replace("SR-0056", "SR-56").replace("SR-0057", "SR-57").replace("SR-0058", "SR-58").replace("SR-0059", "SR-59").replace("SR-0060", "SR-60");
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(codeArr[1], 5);
let h3Elements = document.querySelectorAll('h3');
h3Elements.forEach(function (h3Element) {
h3Element.insertAdjacentHTML(
'beforeend',
' 全片: missav thisav '
);
});
//BUS添加预告视频观看按钮
this.routeVideo(code, title, yulan);
//JavBus添加跳转到链接
insert115Block(code, info);
insertJumpLinks(code, videoSeries, videoNo, info);
//emby插入开始 javbus
insertEmbyJump(code, '.star-show', { position: 'before', boxStyle: 'border:3px solid HotPink;padding:10px;', fontSize: 5 });
//emby插入结束
insertLongThumb(code, changyulan);
//
}
}
// JavLibrary u65w.com c70j
class JavLibrary extends Base {
constructor() {
super();
GM_addStyle(`
.header a.red {color:red;padding-right:8px;}
#video_info td { vertical-align: text-bottom; }
#video_jacket { position: relative; }
#video_jacket a {
position: absolute;
background: #fff;
background:rgba(255,255,255,0.7);
font-size: 12px;
right: 20px;
top: 5px;
border:0px solid;
border-radius: 4px;
padding: 2px 3px;
border-radius: 5px;
}
`);
if ($('#video_info').length > 0) {
this.detailPage();
}
}
detailPage () {
let _this = this;
let info = $('#video_info');
let yulan = $('#video_jacket_info');
let changyulan = $('.grey');
//标题
let title = $('.post-title').text();
//识别码
let codeRow = info.find('.item').eq(0);
let code = codeRow.find('.text').html();
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(codeArr[1], 5);
let h3Elements = document.querySelectorAll('h3');
h3Elements.forEach(function (h3Element) {
h3Element.insertAdjacentHTML(
'beforeend',
' 全片: missav thisav '
);
});
//JavLibrary添加跳转到链接
insert115Block(code, info);
insertJumpLinks(code, videoSeries, videoNo, info, { style: 'table' });
//emby插入开始 javlib
insertEmbyJump(code, '#video_info', { position: 'after', boxStyle: 'border:3px solid HotPink;', fontSize: 6 });
//emby插入结束
//演员
info.find('a').attr('target', '_blank');
//lib添加预告视频观看按钮
this.routeVideo(code, title, yulan);
//封面图添加下载按钮
insertLongThumb(code, changyulan);
}
}
//新增db支持
class Javdb extends Base {
constructor() {
super();
GM_addStyle(`
.header a.red {color:red;padding-left:2px;padding-right:2px;line-height:22px;}
.video-meta-panel { height: auto; overflow:hidden; padding-bottom:5%; }
.video-meta-panel img{}
.column.column-video-cover { position: relative; }
.column.column-video-cover a {
position: absolute;
background: #fff;
background:rgba(255,255,255,0.7);
font-size: 12px;
right: 20px;
top: 5px;
border:0px solid;
border-radius: 4px;
padding: 2px 3px;
border-radius: 5px;
}
`);
if ($('.video-meta-panel').length > 0) {
this.detailPage();
}
}
detailPage () {
let _this = this;
let info = $('.panel.movie-panel-info');
let yulan = $('.video-meta-panel');
//let yulan = $('[data-controller="movie-tab"]');
let changyulan = $('#modal-comment-warning');
//标题
let title = $('.title.is-4').text().trim();
//识别码
let code = $('body > section > div > div.video-detail > h2 > strong').text().trim().replace("10musu\_", "").replace("ALOVE", "LOVE").replace("AAQUA", "AQUA").replace("AMCMA", "MCMA").replace("STSSIS", "SSIS").replace("TPSSIS", "SSIS").replace("FTKTKBI", "KBI").replace("SNA-00", "SNA-0").replace("SMJ-00", "SMJ-0").replace("SHE-", "RHE-").replace("PTPFES", "PFES").replace("RNK", "59HNK").replace("HITOUB-", "HITOUD-").split(' ')[0]; // 番号替换是因为db写错番号
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(codeArr[1], 5);
let searchi = $('#search-bar-container');
let videourl = document.querySelector("#preview-video source")?.src;
// 提取页面下面的播放地址
if (videourl && videourl != location.href) {
searchi.after("" + code + " " + videourl + " 播放 (此数据来自db)");
}
let h3Elements = document.querySelectorAll('.current-title');
h3Elements.forEach(function (h3Element) {
h3Element.insertAdjacentHTML(
'beforeend',
' 全片: missav thisav '
);
});
//Javdb添加跳转到链接
insert115Block(code, info);
insertJumpLinks(code, videoSeries, videoNo, info, { style: 'table' });
//emby插入开始 Javdb
insertEmbyJump(code, '.panel.movie-panel-info', { position: 'after', boxStyle: 'border:3px solid HotPink;padding:20px;', fontSize: 6 });
//emby插入结束
//db站添加预告视频观看按钮
this.routeVideo(code, title, yulan, { preDefault: function (code, title, yulan) { if (null != code.match(/FC2-/)) { yulan.before(""); return true; } return false; } });
//javdb封面图添加下载按钮
insertLongThumb(code, changyulan, { style: 'bulma' });
}
}
//db段结束
//新增 javbooks 支持
class javbooks extends Base {
constructor() {
super();
GM_addStyle(`
.header a.red {color:red;padding-right:8px;}
`);
if ($('#info').length > 0) {
this.detailPage();
}
}
detailPage () {
let _this = this;
let info = $('#info');
let yulan = $('#info');
$('#Preview_vedio_area > a > img').remove();
$('body > p > a > img').remove();
//标题
let title = $('#title').text().trim();
//识别码
let code = $('#info > div:nth-child(2) > font').text().trim().replace("10musu\_", "").split(' ')[0];
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(codeArr[1], 5);
let h3Elements = document.querySelectorAll('#title');
h3Elements.forEach(function (h3Element) {
h3Element.insertAdjacentHTML(
'beforeend',
' 全片: missav thisav '
);
});
//javbooks添加跳转到链接
insert115Block(code, info);
insertJumpLinks(code, videoSeries, videoNo, info, { style: 'infobox' });
//emby插入开始 javbooks
insertEmbyJump(code, '#title', { position: 'after', boxStyle: 'border:3px solid HotPink;padding:20px;', fontSize: 6, showUrl: true, matchWidth: '#title', extraClass: 'javb-emby-box' });
//emby插入结束
//javbooks添加预告视频观看按钮
this.routeVideo(code, title, yulan, { preVR: function (code, title, yulan) { if (null != code.match(/^(MAGD-)/i)) { let _parts = code.split(/-/); let _vs = _parts[0].toLowerCase(); let _vt = _parts[1].slice(-2); yulan.before(" "); return true; } return false; } });
//封面图添加下载按钮
insertLongThumb(code, '#info', { position: 'after' });
// 预告片/emby 宽度与 #title 对齐(跟随窗口变化)
let syncJavbWidth = function () {
try {
let w = $('#title').width();
if (!(w > 0)) { return; }
let $emby = $('.javb-emby-box');
if ($emby.length) { $emby.css({ width: w, 'max-width': '100%', 'box-sizing': 'border-box', 'margin-left': 'auto', 'margin-right': 'auto' }); }
let $tp = $('#info').prev('div, iframe, center');
if ($tp.length) {
$tp.css({ width: w, 'max-width': '100%', 'box-sizing': 'border-box', 'margin-left': 'auto', 'margin-right': 'auto' });
$tp.find('iframe, video').css('max-width', '100%');
}
} catch (e) {}
};
syncJavbWidth();
let syncJavbTimer = 0;
window.addEventListener('resize', function () { clearTimeout(syncJavbTimer); syncJavbTimer = setTimeout(syncJavbWidth, 200); });
}
}
//javbooks段结束
//AVMOO 开始 https://tellme.pw/avmoo avsox
class avmoo extends Base {
constructor() {
super();
GM_addStyle(`
.info a.red {color:red;padding-right:8px;}
section.movie-detail .jav-spa-links a.red {color:red;padding-right:8px;}
section.movie-detail .jav-spa-trailer {margin: 12px 0;}
section.movie-detail .jav-spa-trailer video {width: 99%;}
section.movie-detail .jav-spa-trailer iframe {width: 99%;}
`);
if ($('.col-md-3.info').length > 0) {
this.detailPage();
}
// 新版 avmoo.shop / avsox.click / avheat.shop 是 Vue SPA:首屏只有 #jav-site-index,详情靠 JS 动态渲染
if (document.getElementById('jav-site-index') || location.hostname.match(/avmoo\.shop|avsox\.click|avheat\.shop/i)) {
this.initSPAMode();
}
}
initSPAMode () {
let _this = this;
this._spaKey = '';
this._spaTimer = 0;
this._spaNoCodeKey = '';
console.log('[jav-spa] init', location.href);
let schedule = function () {
if (_this._spaTimer) { clearTimeout(_this._spaTimer); }
_this._spaTimer = setTimeout(function () { _this.trySPARender(); }, 400);
};
// Vue Router 切页不刷新,hook pushState/replaceState + popstate
try {
let _ps = history.pushState;
history.pushState = function () {
let r = _ps.apply(this, arguments);
schedule();
return r;
};
let _rs = history.replaceState;
history.replaceState = function () {
let r = _rs.apply(this, arguments);
schedule();
return r;
};
} catch (e) { console.log('[jav-spa] hook history failed', e); }
window.addEventListener('popstate', schedule);
window.addEventListener('hashchange', schedule);
// 内容动态插入,观察 DOM
try {
let mo = new MutationObserver(schedule);
mo.observe(document.documentElement, { childList: true, subtree: true });
} catch (e) { console.log('[jav-spa] observer failed', e); }
schedule();
}
clearSPABlocks () {
try {
// 统一终止旧预告会话;dispose() 幂等,重复触发路由清理也安全。
PreviewDiagnostics.disposeActive('spa-route-change');
// 先释放播放器(否则切页后后台继续播声音),再清 DOM
document.querySelectorAll('section.movie-detail video').forEach(function (v) {
try {
if (v._vjsPlayer) { v._vjsPlayer.dispose(); v._vjsPlayer = null; }
} catch (e) { console.log('[jav-spa] dispose failed', e); }
});
document.querySelectorAll('.jav-spa-block').forEach(function (el) { el.remove(); });
document.querySelectorAll('section.movie-detail video#my_video').forEach(function (v) {
let box = v.closest('div');
if (box) { box.remove(); }
});
document.querySelectorAll('section.movie-detail > iframe, section.movie-detail .detail-card + iframe').forEach(function (el) { el.remove(); });
let ph = document.querySelector('#movie-share.jav-spa-placeholder');
if (ph) { ph.remove(); }
} catch (e) { console.log('[jav-spa] clear failed', e); }
}
extractSPACode () {
// 优先读详情第一行的番号值,其次读 h1,其次读标题
let code = '';
let title = (document.title || '').trim();
let h1El = document.querySelector('section.movie-detail h1');
let h1 = h1El ? h1El.textContent.trim() : '';
if (h1) { title = h1; }
let firstVal = document.querySelector('section.movie-detail .detail-list .detail-item .detail-value');
let firstText = firstVal ? firstVal.textContent.trim().toUpperCase() : '';
let pool = [firstText, h1.toUpperCase(), title.toUpperCase(), document.title.toUpperCase()];
for (let i = 0; i < pool.length; i++) {
let s = pool[i] || '';
if (!s) { continue; }
let m = s.match(/FC2(?:-?PPV)?-?\d{5,7}/) || s.match(/[01]\d{5}[_-]\d{2,3}/) || s.match(/[A-Z]{2,15}-\d{2,5}/);
if (m) { code = m[0].toUpperCase(); break; }
// 东京热等无横杠番号(如 n1234 / k1234):取首 token 兜底,后续路由按 addVideoN 处理
let firstTok = (s.split(/\s+/)[0] || '').replace(/[^A-Z0-9_-]/g, '');
if (firstTok.match(/^[A-Z]{1,16}\d{3,5}$/) || firstTok.match(/^\d{5}$/)) { code = firstTok; break; }
}
if (!code) { return null; }
code = code.replace(/^FC2PPV-?/, 'FC2-PPV-').replace(/^FC2-(\d)/, 'FC2-PPV-$1');
// 本脚本 FC2 分支用 code.match(/FC2-/) 并 replace('FC2-PPV-',""),统一成 FC2-PPV- 前缀可兼容
if (code.match(/^FC2-\d/)) { code = code.replace(/^FC2-/, 'FC2-PPV-'); }
return { code: code, title: title };
}
getSPAAnchors () {
let card = $('section.movie-detail .detail-card');
let yulan = card.length ? card : $('section.movie-detail h1');
let info = card.length ? card : $('section.movie-detail');
return { info: info, yulan: yulan };
}
trySPARender () {
// 新站详情页形如 /cn/movies/(复数),老镜像为 /cn/movie/,两种都认;列表页 /cn/movies(无 ID)没有详情容器,会在下一步返回
if (!location.pathname.match(/\/movies?\//i)) { return; }
if (!document.querySelector('section.movie-detail h1') && !document.querySelector('section.movie-detail .detail-card')) { return; }
let found = this.extractSPACode();
if (!found || !found.code) {
// 详情容器已渲染但番号还没出来(API 加载中):每个 pathname 只提示一次,避免刷屏
if (this._spaNoCodeKey !== location.pathname) {
this._spaNoCodeKey = location.pathname;
console.log('[jav-spa] detail section found, waiting for code...', location.href);
}
return;
}
let key = location.pathname + '|' + found.code;
if (key === this._spaKey) { return; }
this._spaKey = key;
console.log('[jav-spa] render', found.code);
this.clearSPABlocks();
try {
this.detailPage(found);
this.initSPAPlayers();
this.tagSPABlocks();
let session = PreviewDiagnostics.createSession({ pageKind: 'spa-detail', videoCode: found.code });
let trailerBox = document.querySelector('section.movie-detail .jav-spa-trailer');
document.querySelectorAll('section.movie-detail video#my_video').forEach(function (video) {
session.addVideo(video, 'legacy-multisource', 'SPA 多源预告');
});
let firstVideo = document.querySelector('section.movie-detail video#my_video');
if (firstVideo) { session.activate(firstVideo, 'legacy-multisource', 'spa-render'); }
if (trailerBox) { PreviewDiagnostics.mountPanel(trailerBox, session); }
} catch (e) { console.log('[jav-spa] render failed', e); }
}
initSPAPlayers () {
// video.js 只在 DOMContentLoaded 时自动初始化 data-setup 元素;SPA 是之后才插入的,
// 不手动初始化就没有控制条,且 vjs-16-9 的 height:0 会把未初始化的 video 压扁
try {
if (typeof videojs === 'undefined') { return; }
document.querySelectorAll('section.movie-detail video#my_video').forEach(function (v) {
if (v.dataset.vjsInit) { return; }
v.dataset.vjsInit = '1';
try { v._vjsPlayer = videojs(v, {}, function () { }); }
catch (e) { console.log('[jav-spa] videojs init failed', e); }
});
} catch (e) { console.log('[jav-spa] players failed', e); }
}
tagSPABlocks () {
try {
// 预告片容器(yulan.before 插入):detail-card 的前一个兄弟
let card = document.querySelector('section.movie-detail .detail-card');
if (card && card.previousElementSibling) {
let prev = card.previousElementSibling;
if (prev.querySelector && (prev.querySelector('video#my_video') || prev.tagName === 'IFRAME' || (prev.querySelector('iframe')))) {
prev.classList.add('jav-spa-block', 'jav-spa-trailer');
}
}
document.querySelectorAll('section.movie-detail video#my_video').forEach(function (v) {
let box = v.closest('div');
if (box) { box.classList.add('jav-spa-block', 'jav-spa-trailer'); }
});
document.querySelectorAll('section.movie-detail iframe[src*="mgstage"], section.movie-detail iframe[src*="fc2"]').forEach(function (el) {
el.classList.add('jav-spa-block', 'jav-spa-trailer');
});
// 跳转链接 / 长缩略图 / emby:打标方便下次切页清理
if (card) {
let ps = card.querySelectorAll(':scope > p');
if (ps.length) { ps[ps.length - 1].classList.add('jav-spa-block', 'jav-spa-links'); }
}
let ms = document.querySelector('#movie-share');
if (ms) { ms.classList.add('jav-spa-block'); }
} catch (e) { console.log('[jav-spa] tag failed', e); }
}
detailPage (spa) {
let _this = this;
let info, yulan, changyulan, title, code;
if (spa && spa.code) {
// SPA 模式:复用同一套番号路由,只换锚点
let anchors = this.getSPAAnchors();
info = anchors.info;
yulan = anchors.yulan;
title = spa.title || document.title;
code = spa.code;
if (!yulan.length || !code) { return; }
// 给老代码里的 #movie-share 相关分支准备占位,避免 querySelector 为空报错
changyulan = $('#movie-share');
if (!changyulan.length) {
yulan.after('
');
changyulan = $('#movie-share');
}
} else {
info = $('.col-md-3.info');
yulan = $('.row.movie');
changyulan = $('#movie-share');
//标题
title = $('.container > h3').text();
//识别码
let codeRow = info.find('p').eq(0);
code = codeRow.find('span').eq(1).html();
if (!code) { return; }
}
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(codeArr[1], 5);
//AVMOO添加预告视频观看按钮
this.routeVideo(code, title, yulan, { preVR: function (code, title, yulan) { if (null != code.match(/FC2-/)) { let _ms = document.querySelector("#movie-share"); if (_ms) { _ms.innerHTML = ' ' } else { yulan.before(' ') }; return true; } return false; } });
//avmoo添加跳转到链接
insert115Block(code, info, { extraClass: 'jav-spa-block' });
insertJumpLinks(code, videoSeries, videoNo, info, { extraClass: 'jav-spa-block' });
//封面图添加下载按钮
insertLongThumb(code, changyulan, { extraClass: 'jav-spa-block' });
//emby插入开始 AVMOO
let _embyGuardKey = this._spaKey;
insertEmbyJump(code, () => ($(".col-md-3.info").length ? $(".col-md-3.info") : $("section.movie-detail .detail-card")), {
position: 'after', boxStyle: 'padding:10px;', fontSize: 5, extraClass: 'jav-spa-block',
guard: () => this._spaKey === _embyGuardKey,
});
//emby插入结束
}
}
//AVMOO 结束
//sehuatang 98色花堂开始 经blc指点,引入jquery文件 预览片插入调试完毕
class sehuatang extends Base {
constructor() {
super();
if ($('#pgt').length > 0) {
this.detailPage();
}
}
detailPage () {
let _this = this;
let yulan = $('#pgt');
var reg = /([a-zA-Z]{2,15}[-\s]?\d{2,15}|FC2PPV-[^\d]{0,5}\d{6,7})/i;
var str = document.title.split(" ")[0].split(" ")[0].split("【")[0].split("[")[0].split("-carib")[0].split("-10mu-")[0].split("-paco-")[0].split("-1pon-")[0].replace("SSSIS-", "SSIS-").replace("BBOBB-", "BOBB-").replace("SET-628", "FSET-628"); // 此行replace用来替换马虎的98发帖人错误番号
var code = str.match(reg)[0];
// 123abc-456 数字字母-数字
//if (str.match(/\d{3}[a-zA-Z]{2,15}[-\s]?\d{2,15}/i)) {
// code = str.slice(3)
//}
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(codeArr[1], 5);
let title = document.title;
if (document.title.match(/(高清中文字幕|亚洲有码原创|亚洲无码原创|4K原版|素人有码系列|PPV)/i)) {
GM_addStyle(`
#tiaozhuan a.red {margin-right:15px; padding:3px 5px;background-color:rgb(255, 215, 0);font-size: large;}
#tiaozhuan a {color:rgb(255, 0, 0) !important;color: inherit;}
`);
if (document.querySelector("#switchwidth").innerHTML == '切换到宽版') { widthauto(this); }
let h3Elements = document.querySelectorAll('#thread_subject');
h3Elements.forEach(function (h3Element) {
h3Element.insertAdjacentHTML(
'beforeend',
' 全片: missav thisav '
);
});
insert115Block(code, yulan, { position: 'after' });
insertJumpLinks(code, videoSeries, videoNo, yulan, { position: 'before', style: 'tiaozhuan' });
}
//emby插入开始 98
insertEmbyJump(code, '#pgt', { position: 'after', boxStyle: 'border:3px solid HotPink;padding:20px;', fontSize: 6, showUrl: true });
//emby插入结束
//98添加预告视频观看按钮 色花堂无码区命名不规范,无码部分只适配部分厂商,素人有码区命名不规范(不做精确匹配)
if (isTrailerEnabled()) {
if (null != title.match(/-carib/ig)) { this.addVideoC(code, yulan); }
else if (code.match(/^[a-zA-Z]{1,16}\d{4}$|video_\d{3}$|^[a-zA-Z]{1,16}\d{3}$|^[a-zA-Z]{1,16}\d{5}$|gedo43|gedo58|tcp1001un|^(RED-|S2MBD-|NKD-|RHJ-|bgc_|elm_|HO-|vset_)\d{3}$|PARTY-SEIRA|^(sol_|KG-)\d{2}$|^\d{5}$|atamikb1|AVJI-|False_Advertising_|felicia_vina_|Gia_|Japanese_|Little_Asian_Cocksuckers_|marie_berger_|Teenthailand_|Spankingthemonkey|stacy_Cruz_|Taboo_|Teenthailand9_|Teeny_|Teen_|Tokyo_|tthm2497|Zuzu_$/i)) { this.addVideoN(code, yulan); }
else if (null != title.match(/一本道|-1pon-/ig)) { this.addVideoY(code, yulan); }
else if (null != title.match(/天然むすめ|-10mu-/ig)) { this.addVideoH(code, yulan); }
else if (null != title.match(/パコパコママ|-paco-/ig)) { this.addVideoPM(code, yulan); }
else { this.routeVideo(code, title, yulan, { skipHead: true, ymymFirstWidth: 'width:97%', preVR: function (code, title, yulan) { if (null != code.match(/FC2PPV-/i)) { yulan.before(" "); return true; } return false; } }); }
}
insertLongThumb(code, '#pgt', { position: 'after' });
}
}
//sehuatang 结束
//MSIN 开始 */
//emby插入结束
// https://www.dmm.co.jp/litevideo/-/part/=/cid=adn00332/size=720_480/affi_id=ProgramDMM-001/
// https://db.msin.jp/jp.search/movie?str=HTM
//msin添加预告视频观看按钮
//MSIN 结束
/* javdb */
if (null != location.hostname.match(/javdb/i)) {
//const showBoxes = $('.box');
const showBoxesA = document.querySelectorAll('.item a[href*="/v/"]');
const showBoxesB = document.querySelectorAll('.box.actor-box a[href*="/actors/"]');
if (showBoxesA.length == 1 && GM_getValue('auto_jump', true)) { location.href = showBoxesA[0].href; }
if (showBoxesB.length == 1 && GM_getValue('auto_jump', true)) { location.href = showBoxesB[0].href; }
}
/* end*/
// javbus/avmoo https://www.javsee.lol/search/322&type=&parent=ce
if (null != location.href.match(/\/search\//)) {
const showBoxes = $('.movie-box');
if (showBoxes.length == 1 && GM_getValue('auto_jump', true)) { location.href = showBoxes[0].href; }
}
// end
// xslist https://xslist.org/search?query=ADN-327&lg=tw
if (null != location.href.match(/xslist.org\/search/)) {
var searchResults = document.querySelectorAll('.clearfix');
if (searchResults.length === 1) {
var linkA = searchResults[0].querySelector('a');
if (linkA) { linkA.click(); }
}
}
//end
/* since 有码详情页添加跳转开始 */
if (null != location.pathname.match(/works\/detail/i)) {
GM_addStyle(`
#tiaozhuan a.red {margin-right:15px; padding:3px 5px;background-color:rgb(255, 215, 0);font-size: large;}
#tiaozhuan a {color:rgb(255, 0, 0) !important;color: inherit;}
sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline;}
sup { top: -0.5em;}
sub { bottom: -0.25em;}
`)
let info = $('body > main > section:nth-child(3) > div > p');
let code = location.pathname.slice(location.pathname.lastIndexOf('/') + 1).toUpperCase();
if (code.match((/^[a-z|A-Z]{2,8}\d{2,5}$/i))) {
var number = code.search(/\d/);
if (number > 0) {
code = code.slice(0, number) + "-" + code.slice(number)
}
}
let liebiao = $('.p-workPage__table');
let codeArr = code.split(/-/).map(item => item.toLowerCase()); // 特殊番号 SVBD-AA002 须要将AA也转换为小写 mp4地址方有效
let videoSeries = codeArr[0].toLowerCase();
let videoNo = format_zero(codeArr[1], 5);
let title = document.title;
let h3Elements = document.querySelectorAll('.p-workPage__title');
h3Elements.forEach(function (h3Element) {
h3Element.insertAdjacentHTML(
'beforeend',
' 全片: missav thisav '
);
});
insert115Block(code, info);
insertJumpLinks(code, videoSeries, videoNo, info, { style: 'tiaozhuan' });
// 此处加入识别码 以适配 根据番号搜索(自行去掉头部排除域名) 直接查询emby库中是否存在此番
liebiao.append("");
//emby插入开始 since
insertEmbyJump(code, '.p-workPage__text', { position: 'after', boxStyle: 'border:3px solid HotPink;padding:20px;', fontSize: 6, showUrl: true });
//emby插入结束
insertLongThumb(code, '.p-workPage__text', { position: 'after' });
}
/* since 有码详情页添加跳转结束*/
class Main {
constructor() {
if ($("footer:contains('JavBus')").length) { this.site = 'javBus'; }
else if ($("#bottomcopyright:contains('JAVLibrary')").length) { this.site = 'javLibrary' }
else if ($("#footer:contains('javdb')").length) { this.site = 'javdb' }
else if ($("#Declare_box:contains('javbooks')").length) { this.site = 'javbooks' }
else if ($("footer:contains('AVMOO')").length) { this.site = 'avmoo' }
else if (document.getElementById('jav-site-index') || location.hostname.match(/avmoo|avsox|avheat/i)) { this.site = 'avmoo' }
else if ($("#flk:contains('色花堂')").length) { this.site = 'sehuatang' }
}
make () {
let obj;
switch (this.site) {
case 'javBus':
obj = new JavBus();
break;
case 'javLibrary':
obj = new JavLibrary();
break;
case 'javdb':
obj = new Javdb();
break;
case 'javbooks':
obj = new javbooks();
break;
case 'avmoo':
obj = new avmoo();
break;
case 'sehuatang':
obj = new sehuatang();
break;
}
return obj;
}
}
// 隐藏脚本2原video,防止插入时短暂显示在错误位置造成闪烁
if (isTrailerEnabled()) { GM_addStyle('video#my_video { display:none !important; }'); }
let main = new Main();
main.make();
function extractStaticPreviewCode () {
const pathPart = decodeURIComponent(location.pathname.split('/').filter(Boolean).pop() || '');
const candidates = [
pathPart,
document.querySelector('.col-md-3.info span[style*="CC0000"]')?.textContent || '',
document.querySelector('.info span[style*="CC0000"]')?.textContent || '',
document.querySelector('#video_id .text')?.textContent || '',
document.title || '',
];
const strictPatterns = [
/(?:^|[^A-Z0-9])([01]\d{5}_\d{3})(?=$|[^A-Z0-9])/i,
/(?:^|[^A-Z0-9])(FC2(?:-PPV)?-\d{5,8})(?=$|[^A-Z0-9])/i,
/(?:^|[^A-Z0-9])([A-Z][A-Z0-9]{1,14}-\d{2,5})(?=$|[^A-Z0-9])/i,
];
for (const candidate of candidates) {
for (const pattern of strictPatterns) {
const match = String(candidate).match(pattern);
if (match) { return match[1].toUpperCase(); }
}
}
return '';
}
function insertStaticPreviewContainer (container, originalVideo) {
const javbusRow = document.querySelector('.row.movie');
const javlibTable = document.querySelector('#video_jacket_info');
if (javbusRow && javbusRow.parentNode) {
javbusRow.parentNode.insertBefore(container, javbusRow.nextSibling);
} else if (javlibTable && javlibTable.parentNode) {
javlibTable.parentNode.insertBefore(container, javlibTable.nextSibling);
} else {
originalVideo.parentNode.insertBefore(container, originalVideo);
}
}
// 【双源合并窗口】脚本1高清源(hhb)默认播放 + 脚本2多源备选,手动切换
if (isTrailerEnabled()) try {
let v2 = document.querySelector('video#my_video');
if (!v2) { console.log('[jav-dual] no video found'); }
else {
// 路径/番号元素优先,标题只作最后兜底;严格匹配避免把标题正文拼入 URL。
let avid = extractStaticPreviewCode();
let dmmMatch = avid.match(/^([A-Z][A-Z0-9]{1,14})-(\d{2,5})$/i);
let usesOfficialSingleSource = /^HEYZO-\d+$/i.test(avid);
if (!avid) {
v2.style.setProperty('display', 'block', 'important');
console.log('[jav-dual] code parse fail; keep legacy player visible');
} else if (!dmmMatch || usesOfficialSingleSource) {
// 一本道、HEYZO 等不属于 DMM hhb 命名体系,直接保留其专用来源。
let container = document.createElement('div');
container.style.cssText = 'width:100%;margin:15px 0;text-align:center;clear:both;';
v2.style.setProperty('display', 'block', 'important');
v2.style.width = 'min(100%,calc(80vh * 16 / 9))';
v2.style.height = 'auto';
v2.style.aspectRatio = '16/9';
v2.style.background = '#000';
v2.style.margin = '0 auto';
v2.style.borderRadius = '4px';
insertStaticPreviewContainer(container, v2);
container.appendChild(v2);
let previewSession = PreviewDiagnostics.createSession({ pageKind: 'single-static', videoCode: avid });
previewSession.addVideo(v2, 'legacy-multisource', '番号专用多源');
PreviewDiagnostics.mountPanel(container, previewSession);
PreviewDiagnostics.switchPreviewSource(previewSession, v2, 'legacy-multisource', 'initial');
console.log('[jav-dual] 非 DMM 或官网专用番号,跳过 hhb=' + avid);
} else {
let prefix = dmmMatch[1].toLowerCase();
let number = dmmMatch[2].padStart(5, '0');
let hhbUrl = 'https://cc3001.dmm.co.jp/litevideo/freepv/' + prefix.charAt(0) + '/' + prefix.substr(0,3) + '/' + prefix + number + '/' + prefix + number + 'hhb.mp4';
// 创建容器(占满内容区宽度,视频用80vh反推尺寸保证进度条可见)
let container = document.createElement('div');
container.style.cssText = 'width:100%;margin:15px 0;text-align:center;clear:both;';
// 脚本1 video(默认显示,只有hhb高清源)
let v1 = document.createElement('video');
v1.controls = true; v1.playsInline = true; v1.autoplay = true; v1.muted = true;
v1.style.cssText = 'width:min(100%,calc(80vh * 16 / 9));height:auto;aspect-ratio:16/9;background:#000;display:block;margin:0 auto;border-radius:4px;';
let src1 = document.createElement('source');
src1.src = hhbUrl; src1.type = 'video/mp4';
v1.appendChild(src1);
// 脚本2 video(隐藏,包含所有source作为备选)
v2.autoplay = false;
v2.removeAttribute('autoplay');
try { v2.pause(); } catch (e) {}
v2.style.display = 'none';
v2.style.width = 'min(100%,calc(80vh * 16 / 9))';
v2.style.height = 'auto';
v2.style.aspectRatio = '16/9';
v2.style.background = '#000';
v2.style.margin = '0 auto';
v2.style.borderRadius = '4px';
// 诊断层只监听现有播放行为;网络探测仅在用户点击后发生。
let previewSession = PreviewDiagnostics.createSession({ pageKind: 'dual-static', videoCode: avid });
previewSession.addVideo(v1, 'dmm-hhb', '高清源 hhb');
previewSession.addVideo(v2, 'legacy-multisource', '旧多源回退');
// 切换按钮栏
let btnBar = document.createElement('div');
btnBar.style.cssText = 'margin:8px 0;';
let btn1 = document.createElement('button');
btn1.textContent = '高清源(脚本1 hhb)';
btn1.style.cssText = 'margin:0 4px;padding:5px 14px;cursor:pointer;background:#2b333f;color:#fff;border:none;border-radius:4px;font-size:13px;';
let btn2 = document.createElement('button');
btn2.textContent = '全部源(脚本2 多源回退)';
btn2.style.cssText = 'margin:0 4px;padding:5px 14px;cursor:pointer;background:#888;color:#fff;border:none;border-radius:4px;font-size:13px;';
btn1.onclick = function() {
v1.style.display = 'block'; v2.style.setProperty('display', 'none', 'important');
btn1.style.background = '#2b333f'; btn2.style.background = '#888';
PreviewDiagnostics.switchPreviewSource(previewSession, v1, 'dmm-hhb', 'manual-switch');
};
btn2.onclick = function() {
v1.style.display = 'none'; v2.style.setProperty('display', 'block', 'important');
btn2.style.background = '#2b333f'; btn1.style.background = '#888';
PreviewDiagnostics.switchPreviewSource(previewSession, v2, 'legacy-multisource', 'manual-switch', { reload: true });
};
btnBar.appendChild(btn1); btnBar.appendChild(btn2);
// JavBus 插到 .row.movie 后;JavLibrary 插到封面+信息表格整行后。
insertStaticPreviewContainer(container, v2);
container.appendChild(v1); container.appendChild(v2); container.appendChild(btnBar);
PreviewDiagnostics.mountPanel(container, previewSession);
previewSession.setFailureHandler(function (failure) {
if (!previewSession.isCurrent()) { return; }
if (failure.video === v1 && !previewSession.failedVideos.has(v2)) {
v1.style.setProperty('display', 'none', 'important');
v2.style.setProperty('display', 'block', 'important');
btn2.style.background = '#2b333f'; btn1.style.background = '#888';
PreviewDiagnostics.record(PreviewDiagnostics.codes.MEDIA_EVENT, {
event: 'automatic-source-fallback',
fromAdapterId: 'dmm-hhb',
toAdapterId: 'legacy-multisource',
reason: failure.detail && failure.detail.reason || 'playback-failure',
}, previewSession);
PreviewDiagnostics.switchPreviewSource(previewSession, v2, 'legacy-multisource', 'automatic-fallback', { reload: true });
return;
}
if (typeof previewSession.autoHidePlayback === 'function') {
previewSession.autoHidePlayback('现有预告片来源均无法播放,播放器已自动隐藏。', [btnBar]);
}
});
PreviewDiagnostics.switchPreviewSource(previewSession, v1, 'dmm-hhb', 'initial');
console.log('[jav-dual] 双源合并窗口已创建, hhb=' + hhbUrl);
}
}
} catch (e) { console.log('[jav-dual] error', e); }
})();
// ============================================================
// Jav 资源收藏夹:JavBus 回复资源扫描 + JavBus/JavDB 本地磁力收藏
// ============================================================
const ForumReplyResources = (function () {
'use strict';
const VERSION = '3.0.1';
const SCHEMA_VERSION = 2;
const STORAGE_KEY = 'javbus_magnet_bookmarks_v2';
const LEGACY_STORAGE_KEY = 'javbus_magnet_bookmarks_v1';
const CHANNEL_NAME = 'javbus-resource-center-v1';
const MAX_PAGES = 50;
const MAX_ITEMS = 1000;
const MAX_VISIBLE = 200;
const POST_BODY_SELECTOR = '[id^="postmessage_"]';
const QUOTE_SELECTOR = '.quote, blockquote, .blockquote, .pstatus, .locked';
const documents = new Map();
const senderId = typeof crypto !== 'undefined' && typeof crypto.randomUUID === 'function'
? crypto.randomUUID()
: 'jrr-' + Date.now().toString(36) + '-' + Math.random().toString(36).slice(2, 10);
let store = loadStore();
let entries = store.records;
let syncChannel = null;
let channelReloadTimer = null;
let panel = null;
let badge = null;
let statusNode = null;
let resultNode = null;
let favoriteNode = null;
let favoriteControls = null;
let replyControls = null;
let tabReplies = null;
let tabFavorites = null;
let searchInput = null;
let tagFilter = null;
let sortSelect = null;
let pasteInput = null;
let activeTab = 'favorites';
let scanButton = null;
let scanController = null;
let mutationTimer = null;
let listMutationTimer = null;
function isJavBusPage () {
return /(^|\.)javbus\./i.test(location.hostname);
}
function isJavDbPage () {
const labels = String(location.hostname || '').toLowerCase().replace(/\.$/, '').split('.');
return labels.length >= 2 && labels[labels.length - 1] === 'com' && /^javdb[a-z0-9-]*$/.test(labels[labels.length - 2]);
}
function isResourceCenterPage () {
return isJavBusPage() || isJavDbPage();
}
function isJavBusThreadPage () {
return isJavBusPage() && Boolean(document.querySelector(POST_BODY_SELECTOR));
}
function normalizePageUrl (rawUrl) {
const url = new URL(rawUrl, location.href);
url.hash = '';
return url.href;
}
function getThreadId (rawUrl) {
try {
const url = new URL(rawUrl, location.href);
const tid = url.searchParams.get('tid');
if (tid && /^\d+$/.test(tid)) { return tid; }
const pathMatch = url.pathname.match(/thread-(\d+)(?:-|\.|\/|$)/i);
return pathMatch ? pathMatch[1] : '';
} catch (e) {
return '';
}
}
function cleanMagnetCandidate (value) {
let result = String(value || '').trim().replace(/&/gi, '&');
result = result.replace(/[\])}>,。;;、]+$/g, '');
if (/^magnet%3A/i.test(result)) {
try { result = decodeURIComponent(result); } catch (e) {}
}
return result;
}
function normalizeMagnet (rawValue) {
const value = cleanMagnetCandidate(rawValue);
if (!/^magnet:\?/i.test(value)) { return null; }
const query = value.slice(value.indexOf('?') + 1);
let params;
try { params = new URLSearchParams(query); } catch (e) { return null; }
let xt = params.getAll('xt').find(function (item) { return /^urn(?::|%3A)btih(?::|%3A)/i.test(item); });
if (!xt) { return null; }
try { xt = decodeURIComponent(xt); } catch (e) {}
const hashMatch = xt.match(/^urn:btih:([a-f0-9]{40}|[a-z2-7]{32})$/i);
if (!hashMatch) { return null; }
const rawHash = hashMatch[1];
const hash = /^[a-f0-9]{40}$/i.test(rawHash) ? rawHash.toLowerCase() : rawHash.toUpperCase();
const output = ['xt=urn:btih:' + hash];
['dn', 'xl', 'tr', 'ws'].forEach(function (key) {
params.getAll(key).forEach(function (item) {
if (item !== '') { output.push(encodeURIComponent(key) + '=' + encodeURIComponent(item)); }
});
});
const xl = params.get('xl');
const sizeBytes = /^\d+$/.test(String(xl || '')) && Number(xl) > 0 ? Number(xl) : null;
return {
key: 'btih:' + hash.toLowerCase(),
kind: 'btih',
hash: hash,
uri: 'magnet:?' + output.join('&'),
magnet: 'magnet:?' + output.join('&'),
name: params.get('dn') || '',
sizeBytes: Number.isSafeInteger(sizeBytes) ? sizeBytes : null,
};
}
function parseSizeBytes (value) {
const text = String(value || '');
const match = text.match(/(?:^|[\s[(])([0-9]+(?:\.[0-9]+)?)\s*(TB|GB|MB|KB|TIB|GIB|MIB|KIB)(?=$|[\s\])},;])/i);
if (!match) { return null; }
const units = { KB: 1000, MB: 1000 ** 2, GB: 1000 ** 3, TB: 1000 ** 4, KIB: 1024, MIB: 1024 ** 2, GIB: 1024 ** 3, TIB: 1024 ** 4 };
const size = Number(match[1]) * units[match[2].toUpperCase()];
return Number.isSafeInteger(Math.round(size)) && size > 0 ? Math.round(size) : null;
}
function parseFileCount (value) {
const text = String(value || '');
const match = text.match(/(?:^|[\s[(])([1-9]\d{0,4})\s*(?:个?文件|files?)(?=$|[\s\])},;])/i);
return match ? Number(match[1]) : null;
}
function inferTags (value) {
const text = String(value || '');
const definitions = [
['4K', /(?:^|[^A-Z0-9])(?:4K|2160P)(?=$|[^A-Z0-9])/i],
['高清', /(?:^|[^A-Z0-9])(?:1080P|FHD|HD)(?=$|[^A-Z0-9])|高清/i],
['中字', /中文字幕|中字|中文|简中|繁中|CHS|CHT|SUB(?:TITLE)?/i],
['无码', /(?:^|[^A-Z0-9])(?:UNCENSORED|UNCEN|无码|-UC)(?=$|[^A-Z0-9])/i],
['破解', /破解|流出|CRACK(?:ED)?|LEAK(?:ED)?/i],
['VR', /(?:^|[^A-Z0-9])VR(?=$|[^A-Z0-9])/i],
];
return definitions.filter(function (definition) { return definition[1].test(text); }).map(function (definition) {
return { id: definition[0], source: 'title-match', overridden: false };
});
}
function mergeTags (left, right) {
const output = [];
const byId = new Map();
[left, right].forEach(function (list) {
(Array.isArray(list) ? list : []).forEach(function (tag) {
const id = cleanText(typeof tag === 'string' ? tag : tag && tag.id, 24);
if (!id) { return; }
const normalized = {
id: id,
source: cleanText(typeof tag === 'object' && tag.source ? tag.source : 'title-match', 40),
overridden: Boolean(typeof tag === 'object' && tag.overridden),
};
const existing = byId.get(id.toLowerCase());
if (!existing) {
byId.set(id.toLowerCase(), normalized);
output.push(normalized);
} else if (normalized.overridden) {
Object.assign(existing, normalized);
}
});
});
return output.slice(0, 20);
}
function extractMagnetsFromText (rawText) {
const holder = document.createElement('div');
holder.textContent = String(rawText || '');
return extractMagnetsFromElement(holder);
}
function extractMagnetsFromElement (element) {
const found = new Map();
const add = function (candidate) {
const normalized = normalizeMagnet(candidate);
if (normalized && !found.has(normalized.key)) { found.set(normalized.key, normalized); }
};
element.querySelectorAll('a[href], [data-clipboard-text], [data-copy], [data-magnet]').forEach(function (node) {
['href', 'data-clipboard-text', 'data-copy', 'data-magnet'].forEach(function (attribute) {
const value = node.getAttribute(attribute);
if (value && /magnet(?::|%3A)/i.test(value)) { add(value); }
});
});
const text = element.textContent || '';
const candidates = text.match(/magnet(?::|%3A)(?:\?|%3F)[^\s<>"'`]+/gi) || [];
candidates.forEach(add);
return Array.from(found.values());
}
function normalizeCode (rawCode) {
const code = String(rawCode || '').trim().toUpperCase();
if (/^[01]\d{5}[_-]\d{3}$/.test(code)) { return code.replace('-', '_'); }
const fc2 = code.replace(/[\s_]+/g, '-').match(/^FC2-?(?:PPV-?)?(\d{5,8})$/);
if (fc2) { return 'FC2-PPV-' + fc2[1]; }
return code.replace(/[\s_]+/g, '-');
}
function extractCodesFromText (rawText) {
const text = String(rawText || '').toUpperCase();
const pattern = /(?:^|[^A-Z0-9])((?:FC2(?:[-_\s]?PPV)?[-_\s]?\d{5,8})|(?:[01]\d{5}[_-]\d{3})|(?:[A-Z]{2,15}[-_\s]\d{2,5}))(?=$|[^A-Z0-9])/gi;
const result = new Set();
let match;
while ((match = pattern.exec(text)) !== null) {
result.add(normalizeCode(match[1]));
}
return Array.from(result);
}
function postContainerFor (body) {
let node = body;
const ownerBody = body.ownerDocument ? body.ownerDocument.body : null;
while (node && node !== ownerBody) {
if (node.id && /^post_\d+$/i.test(node.id)) { return node; }
node = node.parentElement;
}
return body.parentElement || body;
}
function postIdentity (body, post) {
const bodyMatch = String(body.id || '').match(/postmessage_(\d+)/i);
const postMatch = String(post.id || '').match(/post_(\d+)/i);
return (bodyMatch && bodyMatch[1]) || (postMatch && postMatch[1]) || '';
}
function postAuthor (post) {
const node = post.querySelector('.authi a.xw1, .pls .authi a, .avatar a, a.xw1');
return node ? node.textContent.trim() : '';
}
function postFloor (post, pid, index) {
const node = post.querySelector('[id^="postnum"], .pi strong a, .pi strong, .floor');
const value = node ? node.textContent.replace(/\s+/g, ' ').trim() : '';
if (value) { return /^\d+$/.test(value) ? value + '楼' : value; }
return index === 0 ? '楼主' : '回复 ' + (pid || index + 1);
}
function safePostBodyClone (body) {
const clone = body.cloneNode(true);
clone.querySelectorAll(QUOTE_SELECTOR).forEach(function (node) { node.remove(); });
return clone;
}
function parseDocumentPosts (doc, pageUrl, pageNumber) {
const posts = [];
doc.querySelectorAll(POST_BODY_SELECTOR).forEach(function (body, index) {
const post = postContainerFor(body);
const clone = safePostBodyClone(body);
const magnets = extractMagnetsFromElement(clone);
const codes = extractCodesFromText(clone.textContent || '');
if (!magnets.length && !codes.length) { return; }
const pid = postIdentity(body, post);
const anchorUrl = new URL(pageUrl, location.href);
if (pid) { anchorUrl.hash = 'post_' + pid; }
posts.push({
pid: pid,
page: pageNumber,
order: index,
floor: postFloor(post, pid, index),
author: postAuthor(post),
url: anchorUrl.href,
magnets: magnets,
codes: codes,
});
});
return posts;
}
function aggregateResources () {
const posts = Array.from(documents.values()).flat().sort(function (a, b) {
return a.page - b.page || a.order - b.order;
});
const magnets = new Map();
const codes = new Map();
posts.forEach(function (post) {
const occurrence = { floor: post.floor, author: post.author, url: post.url, page: post.page };
post.magnets.forEach(function (magnet) {
if (!magnets.has(magnet.key)) { magnets.set(magnet.key, Object.assign({}, magnet, { occurrences: [], codes: [] })); }
const target = magnets.get(magnet.key);
target.occurrences.push(occurrence);
post.codes.forEach(function (code) {
if (target.codes.indexOf(code) < 0) { target.codes.push(code); }
});
});
post.codes.forEach(function (code) {
if (!codes.has(code)) { codes.set(code, { code: code, occurrences: [] }); }
codes.get(code).occurrences.push(occurrence);
});
});
return { magnets: Array.from(magnets.values()), codes: Array.from(codes.values()) };
}
function uniqueOccurrences (items) {
const seen = new Set();
return items.filter(function (item) {
const key = item.url + '|' + item.floor;
if (seen.has(key)) { return false; }
seen.add(key);
return true;
});
}
function copyText (value) {
try {
if (typeof GM_setClipboard === 'function') { GM_setClipboard(value, 'text'); return true; }
} catch (e) {}
try { navigator.clipboard.writeText(value); return true; } catch (e) { return false; }
}
function element (tag, className, text) {
const node = document.createElement(tag);
if (className) { node.className = className; }
if (text !== undefined) { node.textContent = text; }
return node;
}
function cleanText (value, maxLength) {
return String(value || '')
.replace(/[\u0000-\u001f\u007f]/g, ' ')
.replace(/\s+/g, ' ')
.trim()
.slice(0, maxLength);
}
function validDate (value) {
const date = new Date(value);
return Number.isFinite(date.getTime()) ? date.toISOString() : '';
}
function cleanSourceUrl (rawUrl, keepHash) {
try {
const url = new URL(rawUrl, location.href);
if (!/^https?:$/.test(url.protocol)) { return ''; }
if (!keepHash) { url.hash = ''; }
return url.href.slice(0, 1200);
} catch (e) {
return '';
}
}
function currentSource () {
const now = new Date().toISOString();
return {
type: isJavBusThreadPage() ? 'forum-reply' : 'manual-paste',
title: cleanText(document.title || location.hostname, 200),
pageUrl: cleanSourceUrl(location.href),
floor: '',
author: '',
discoveredAt: now,
updatedAt: now,
};
}
function shortHash (hash) {
const value = String(hash || '');
return value.length > 18 ? value.slice(0, 10) + '…' + value.slice(-6) : value;
}
function sanitizeSources (sources, fallback) {
const output = [];
if (Array.isArray(sources)) {
sources.slice(0, 30).forEach(function (source) {
const pageUrl = cleanSourceUrl(source && (source.pageUrl || source.url), true);
const floor = cleanText(source && source.floor, 40);
const type = cleanText(source && source.type, 40) || 'legacy';
if (!pageUrl) { return; }
const discoveredAt = validDate(source.discoveredAt || source.savedAt) || new Date().toISOString();
const updatedAt = validDate(source.updatedAt || source.savedAt) || discoveredAt;
const existing = output.find(function (item) {
return item.type === type && item.pageUrl === pageUrl && item.floor === floor;
});
const normalized = {
type: type,
title: cleanText(source.title || '', 200),
pageUrl: pageUrl,
floor: floor,
author: cleanText(source.author || '', 80),
discoveredAt: discoveredAt,
updatedAt: updatedAt,
};
if (!existing) {
output.push(normalized);
} else {
if (normalized.discoveredAt < existing.discoveredAt) { existing.discoveredAt = normalized.discoveredAt; }
if (normalized.updatedAt > existing.updatedAt) { existing.updatedAt = normalized.updatedAt; }
if (!existing.title && normalized.title) { existing.title = normalized.title; }
if (!existing.author && normalized.author) { existing.author = normalized.author; }
}
});
}
if (!output.length && fallback) { output.push(fallback); }
return output.slice(0, 30);
}
function recordParseStatus (record) {
const hasTitle = Boolean(record.title);
const structured = [record.sizeBytes, record.fileCount, record.publishedAt].filter(function (value) { return value !== null; }).length;
if (hasTitle && structured > 0) { return 'ok'; }
if (hasTitle || structured > 0 || (record.codes && record.codes.length) || (record.tags && record.tags.length)) { return 'partial'; }
return 'failed';
}
function normalizeNullableInteger (value) {
if (value === null || value === undefined || value === '') { return null; }
const number = Number(value);
return Number.isSafeInteger(number) && number >= 0 ? number : null;
}
function normalizeRecord (item) {
const parsed = normalizeMagnet(String((item && (item.magnet || item.uri)) || ''));
if (!parsed) { return null; }
const now = new Date().toISOString();
const title = cleanText(item.title || item.name || parsed.name || '', 240);
const sizeBytes = normalizeNullableInteger(item.sizeBytes) || parsed.sizeBytes || parseSizeBytes(title);
const fileCount = normalizeNullableInteger(item.fileCount) || parseFileCount(title);
const savedAt = validDate(item.savedAt || item.addedAt) || now;
const updatedAt = validDate(item.updatedAt || item.lastSeenAt || item.addedAt) || savedAt;
const sources = sanitizeSources(item.sources, null);
const tags = mergeTags(item.tags || item.qualityTags, inferTags(title));
const suppliedCodes = Array.isArray(item.codes) ? item.codes.map(normalizeCode).filter(Boolean) : [];
const codes = Array.from(new Set(suppliedCodes.concat(extractCodesFromText(title)))).slice(0, 20);
const record = {
key: parsed.key,
kind: 'btih',
hash: parsed.hash,
magnet: parsed.uri,
title: title || '磁力 ' + shortHash(parsed.hash),
note: cleanText(item.note || '', 500),
codes: codes,
sizeBytes: sizeBytes,
fileCount: fileCount,
publishedAt: validDate(item.publishedAt) || null,
parseStatus: ['ok', 'partial', 'failed'].includes(item.parseStatus) ? item.parseStatus : 'failed',
tags: tags,
sources: sources,
source: cleanText(item.source || (sources[0] && sources[0].type) || '', 40),
savedAt: savedAt,
updatedAt: updatedAt,
revision: Math.max(1, Math.min(1000000000, Number(item.revision) || 1)),
lastSeenAt: validDate(item.lastSeenAt) || updatedAt,
seenCount: Math.max(1, Math.min(100000, Number(item.seenCount) || 1)),
};
record.parseStatus = recordParseStatus(record);
return record;
}
function mergeRecords (target, incoming) {
if (!target) { return incoming; }
if (!incoming) { return target; }
const merged = Object.assign({}, target);
merged.title = (!target.title || /^磁力 /.test(target.title)) && incoming.title ? incoming.title : target.title;
merged.note = target.note || incoming.note || '';
merged.codes = Array.from(new Set((target.codes || []).concat(incoming.codes || []))).slice(0, 20);
merged.sizeBytes = target.sizeBytes !== null ? target.sizeBytes : incoming.sizeBytes;
merged.fileCount = target.fileCount !== null ? target.fileCount : incoming.fileCount;
merged.publishedAt = target.publishedAt || incoming.publishedAt || null;
merged.tags = mergeTags(target.tags, incoming.tags);
merged.sources = sanitizeSources((target.sources || []).concat(incoming.sources || []), null);
merged.source = target.source || incoming.source || (merged.sources[0] && merged.sources[0].type) || '';
merged.savedAt = target.savedAt < incoming.savedAt ? target.savedAt : incoming.savedAt;
merged.updatedAt = target.updatedAt > incoming.updatedAt ? target.updatedAt : incoming.updatedAt;
merged.lastSeenAt = target.lastSeenAt > incoming.lastSeenAt ? target.lastSeenAt : incoming.lastSeenAt;
merged.seenCount = Math.max(target.seenCount || 1, incoming.seenCount || 1);
merged.revision = Math.max(target.revision || 1, incoming.revision || 1);
merged.parseStatus = recordParseStatus(merged);
return merged;
}
function normalizeEntries (raw) {
if (typeof raw === 'string') {
try { raw = JSON.parse(raw); } catch (e) { raw = []; }
}
if (raw && !Array.isArray(raw) && Array.isArray(raw.records)) { raw = raw.records; }
else if (raw && !Array.isArray(raw) && Array.isArray(raw.entries)) { raw = raw.entries; }
if (!Array.isArray(raw)) { return []; }
const byKey = new Map();
raw.slice(0, MAX_ITEMS).forEach(function (item) {
const record = normalizeRecord(item || {});
if (!record) { return; }
byKey.set(record.key, mergeRecords(byKey.get(record.key), record));
});
return Array.from(byKey.values()).slice(0, MAX_ITEMS);
}
function emptyStore () {
return { schemaVersion: SCHEMA_VERSION, storeRevision: 0, updatedAt: new Date(0).toISOString(), records: [] };
}
function normalizeStore (raw) {
if (typeof raw === 'string') {
try { raw = JSON.parse(raw); } catch (e) { raw = null; }
}
if (Array.isArray(raw)) {
return { schemaVersion: SCHEMA_VERSION, storeRevision: raw.length ? 1 : 0, updatedAt: new Date().toISOString(), records: normalizeEntries(raw) };
}
if (!raw || typeof raw !== 'object') { return emptyStore(); }
const records = normalizeEntries(raw.records || raw.entries || []);
return {
schemaVersion: SCHEMA_VERSION,
storeRevision: Math.max(0, Math.min(Number.MAX_SAFE_INTEGER, Number(raw.storeRevision) || 0)),
updatedAt: validDate(raw.updatedAt) || new Date().toISOString(),
records: records,
};
}
function loadStore () {
try {
const current = GM_getValue(STORAGE_KEY, null);
if (current !== null && current !== undefined) { return normalizeStore(current); }
const legacy = GM_getValue(LEGACY_STORAGE_KEY, null);
if (legacy !== null && legacy !== undefined) {
const migrated = normalizeStore(legacy);
if (migrated.records.length && migrated.storeRevision < 1) { migrated.storeRevision = 1; }
migrated.updatedAt = new Date().toISOString();
GM_setValue(STORAGE_KEY, migrated);
return migrated;
}
} catch (e) {
console.warn('[javbus-resource-center] load failed', e);
}
return emptyStore();
}
function syncFromStorage (shouldRender) {
const latest = loadStore();
if (latest.storeRevision >= store.storeRevision) {
store = latest;
entries = store.records;
if (shouldRender) { render(); }
}
}
function announceStoreChange () {
if (!syncChannel) { return; }
try {
syncChannel.postMessage({ type: 'favorites-changed', senderId: senderId, storeRevision: store.storeRevision });
} catch (e) {
console.warn('[javbus-resource-center] channel notification failed', e);
}
}
function mergeStoreRecords (persistedRecords, localRecords, changedKeys, removedKeys) {
const changed = new Set(Array.isArray(changedKeys) ? changedKeys : []);
const removed = new Set(Array.isArray(removedKeys) ? removedKeys : []);
const byKey = new Map();
normalizeEntries(persistedRecords).forEach(function (record) {
if (!removed.has(record.key)) { byKey.set(record.key, record); }
});
normalizeEntries(localRecords).forEach(function (record) {
if (removed.has(record.key) || !changed.has(record.key)) { return; }
const persisted = byKey.get(record.key);
if (!persisted) {
byKey.set(record.key, record);
return;
}
const localIsNewer = record.revision > persisted.revision ||
(record.revision === persisted.revision && record.updatedAt >= persisted.updatedAt);
byKey.set(record.key, localIsNewer ? mergeRecords(record, persisted) : mergeRecords(persisted, record));
});
return Array.from(byKey.values()).sort(function (a, b) {
return String(b.savedAt).localeCompare(String(a.savedAt));
}).slice(0, MAX_ITEMS);
}
function saveEntries (options) {
options = options || {};
const latest = loadStore();
store = {
schemaVersion: SCHEMA_VERSION,
storeRevision: Math.max(store.storeRevision, latest.storeRevision) + 1,
updatedAt: new Date().toISOString(),
records: mergeStoreRecords(latest.records, entries, options.changedKeys, options.removedKeys),
};
entries = store.records;
GM_setValue(STORAGE_KEY, store);
announceStoreChange();
}
function mergeSource (entry, source) {
if (!source || !(source.pageUrl || source.url)) { return; }
entry.sources = sanitizeSources((entry.sources || []).concat([source]), null);
entry.source = entry.source || (entry.sources[0] && entry.sources[0].type) || '';
}
function sourceFromMagnet (magnet) {
const occurrences = uniqueOccurrences(magnet.occurrences || []);
if (!occurrences.length) { return currentSource(); }
const now = new Date().toISOString();
return occurrences.map(function (occurrence) {
return {
type: 'forum-reply',
title: cleanText(document.title || location.hostname, 200),
pageUrl: cleanSourceUrl(occurrence.url, true),
floor: cleanText(occurrence.floor || '', 40),
author: cleanText(occurrence.author || '', 80),
discoveredAt: now,
updatedAt: now,
};
});
}
function addParsed (parsed, sourceFactory) {
const result = { found: parsed.length, added: 0, updated: 0, rejected: 0 };
const changedKeys = new Set();
if (!parsed.length) { return result; }
// 写入前重新读取,避免第二个标签页用旧数组覆盖已有收藏。
syncFromStorage(false);
const now = new Date().toISOString();
parsed.forEach(function (magnet) {
const normalized = normalizeMagnet(magnet.uri || magnet.magnet || '');
if (!normalized) { return; }
const existing = entries.find(function (entry) { return entry.key === normalized.key; });
const source = typeof sourceFactory === 'function' ? sourceFactory(magnet) : sourceFactory;
const sources = sanitizeSources(Array.isArray(source) ? source : [source], null);
const suppliedCodes = Array.isArray(magnet.codes) ? magnet.codes.map(normalizeCode).filter(Boolean) : [];
const title = cleanText(magnet.title || magnet.name || suppliedCodes.join(' / ') || '', 240);
const codes = Array.from(new Set(suppliedCodes.concat(extractCodesFromText(title)))).slice(0, 20);
const inferredSize = normalizeNullableInteger(magnet.sizeBytes) || normalized.sizeBytes || parseSizeBytes(title);
const inferredFiles = normalizeNullableInteger(magnet.fileCount) || parseFileCount(title);
const inferredTags = inferTags(title);
if (existing) {
existing.lastSeenAt = now;
existing.updatedAt = now;
existing.seenCount = Math.max(1, Number(existing.seenCount) || 1) + 1;
existing.revision = Math.max(1, Number(existing.revision) || 1) + 1;
if ((!existing.title || /^磁力 /.test(existing.title)) && title) {
existing.title = title;
}
existing.codes = Array.from(new Set((existing.codes || []).concat(codes))).slice(0, 20);
if (existing.sizeBytes === null && inferredSize !== null) { existing.sizeBytes = inferredSize; }
if (existing.fileCount === null && inferredFiles !== null) { existing.fileCount = inferredFiles; }
existing.tags = mergeTags(existing.tags, inferredTags);
sources.forEach(function (item) { mergeSource(existing, item); });
existing.parseStatus = recordParseStatus(existing);
changedKeys.add(existing.key);
result.updated += 1;
return;
}
if (entries.length >= MAX_ITEMS) { result.rejected += 1; return; }
const record = {
key: normalized.key,
kind: 'btih',
hash: normalized.hash,
magnet: normalized.uri,
title: title || '磁力 ' + shortHash(normalized.hash),
note: '',
codes: Array.from(new Set(codes)).slice(0, 20),
sizeBytes: inferredSize,
fileCount: inferredFiles,
publishedAt: validDate(magnet.publishedAt) || null,
parseStatus: 'failed',
tags: inferredTags,
sources: sources,
source: cleanText(sources[0] && sources[0].type, 40),
savedAt: now,
updatedAt: now,
revision: 1,
lastSeenAt: now,
seenCount: 1,
};
record.parseStatus = recordParseStatus(record);
entries.unshift(record);
changedKeys.add(record.key);
result.added += 1;
});
entries.sort(function (a, b) { return String(b.savedAt).localeCompare(String(a.savedAt)); });
saveEntries({ changedKeys: Array.from(changedKeys) });
render();
return result;
}
function reportAddResult (result, label) {
if (!result.found) {
statusNode.textContent = label + '中没有识别到有效磁力链接。';
return;
}
let message = label + ':识别 ' + result.found + ' 条,新增 ' + result.added + ' 条';
if (result.updated) { message += ',重复合并 ' + result.updated + ' 条'; }
if (result.rejected) { message += ',达到上限跳过 ' + result.rejected + ' 条'; }
statusNode.textContent = message + '。';
}
async function importFavoritesFile (file) {
if (!file) { return; }
try {
if (file.size > 10 * 1024 * 1024) { throw new Error('文件超过 10 MiB'); }
const payload = JSON.parse(await file.text());
if (!payload || payload.format !== 'javbus-magnet-bookmarks' || !Array.isArray(payload.entries)) {
throw new Error('不是磁力收藏夹导出的 JSON');
}
syncFromStorage(false);
let added = 0;
let merged = 0;
const changedKeys = new Set();
payload.entries.slice(0, MAX_ITEMS).forEach(function (rawEntry) {
const incoming = normalizeRecord(rawEntry || {});
if (!incoming) { return; }
const existingIndex = entries.findIndex(function (entry) { return entry.key === incoming.key; });
const existing = existingIndex >= 0 ? entries[existingIndex] : null;
if (existing) {
const combined = mergeRecords(existing, incoming);
combined.updatedAt = new Date().toISOString();
combined.revision = Math.max(existing.revision, incoming.revision) + 1;
entries[existingIndex] = combined;
changedKeys.add(combined.key);
merged += 1;
return;
}
if (entries.length >= MAX_ITEMS) { return; }
if (!incoming.sources.length) { incoming.sources = [currentSource()]; incoming.source = incoming.sources[0].type; }
entries.push(incoming);
changedKeys.add(incoming.key);
added += 1;
});
entries.sort(function (a, b) { return String(b.savedAt).localeCompare(String(a.savedAt)); });
if (changedKeys.size) { saveEntries({ changedKeys: Array.from(changedKeys) }); }
render();
statusNode.textContent = 'JSON 导入完成:新增 ' + added + ' 条,合并重复 ' + merged + ' 条。';
} catch (error) {
statusNode.textContent = 'JSON 导入失败:' + (error && error.message ? error.message : String(error));
}
}
function occurrenceLinks (occurrences) {
const box = element('span', 'jrr-occurrences');
uniqueOccurrences(occurrences).forEach(function (occurrence) {
const link = element('a', 'jrr-floor', occurrence.floor + (occurrence.author ? ' · ' + occurrence.author : ''));
link.href = occurrence.url;
link.target = '_self';
box.appendChild(link);
});
return box;
}
function renderSection (title, items, createRow) {
const section = element('section', 'jrr-section');
section.appendChild(element('h4', '', title + '(' + items.length + ')'));
if (!items.length) {
section.appendChild(element('div', 'jrr-empty', '未发现'));
return section;
}
items.forEach(function (item) { section.appendChild(createRow(item)); });
return section;
}
function render () {
if (!resultNode || !badge) { return; }
const data = aggregateResources();
badge.textContent = '🧲 资源收藏夹 ' + entries.length + (data.magnets.length ? ' · 本帖 ' + data.magnets.length : '');
badge.classList.toggle('jrr-has-resource', Boolean(entries.length || data.magnets.length));
if (tabReplies) { tabReplies.textContent = '回复资源' + (isJavBusThreadPage() ? '(' + data.codes.length + '号 / ' + data.magnets.length + '磁)' : ''); }
if (tabFavorites) { tabFavorites.textContent = '收藏夹(' + entries.length + ')'; }
resultNode.replaceChildren();
resultNode.appendChild(renderSection('磁力链接', data.magnets, function (magnet) {
const row = element('div', 'jrr-row');
const main = element('div', 'jrr-main');
const label = element('a', 'jrr-magnet', magnet.name || magnet.hash.slice(0, 12) + '…');
label.href = magnet.uri;
label.title = magnet.uri;
const copy = element('button', 'jrr-small-button', '复制');
copy.type = 'button';
copy.addEventListener('click', function () {
copy.textContent = copyText(magnet.uri) ? '已复制' : '失败';
setTimeout(function () { copy.textContent = '复制'; }, 1200);
});
const favorite = element('button', 'jrr-small-button', entries.some(function (entry) { return entry.key === magnet.key; }) ? '已收藏' : '收藏');
favorite.type = 'button';
favorite.addEventListener('click', function () {
reportAddResult(addParsed([magnet], sourceFromMagnet), '当前磁力');
});
main.appendChild(label);
main.appendChild(copy);
main.appendChild(favorite);
row.appendChild(main);
row.appendChild(occurrenceLinks(magnet.occurrences));
return row;
}));
resultNode.appendChild(renderSection('番号', data.codes, function (entry) {
const row = element('div', 'jrr-row');
const main = element('div', 'jrr-main');
const link = element('a', 'jrr-code', entry.code);
link.href = 'https://www.javbus.com/' + encodeURIComponent(entry.code);
link.target = '_blank';
link.rel = 'noopener noreferrer';
const copy = element('button', 'jrr-small-button', '复制');
copy.type = 'button';
copy.addEventListener('click', function () {
copy.textContent = copyText(entry.code) ? '已复制' : '失败';
setTimeout(function () { copy.textContent = '复制'; }, 1200);
});
main.appendChild(link);
main.appendChild(copy);
row.appendChild(main);
row.appendChild(occurrenceLinks(entry.occurrences));
return row;
}));
renderFavorites();
switchTab(activeTab);
markSavedListItems();
}
function filteredEntries () {
const query = searchInput ? searchInput.value.trim().toLowerCase() : '';
const selectedTag = tagFilter ? tagFilter.value : '';
const filtered = entries.filter(function (entry) {
const sources = (entry.sources || []).map(function (source) {
return (source.title || '') + ' ' + (source.pageUrl || '') + ' ' + (source.floor || '') + ' ' + (source.author || '');
}).join(' ');
const matchesQuery = !query || [entry.title, entry.note, entry.hash, (entry.codes || []).join(' '), sources, (entry.tags || []).map(function (tag) { return tag.id; }).join(' ')].join(' ').toLowerCase().includes(query);
const matchesTag = !selectedTag || (entry.tags || []).some(function (tag) { return tag.id === selectedTag; });
return matchesQuery && matchesTag;
});
const mode = sortSelect ? sortSelect.value : 'saved-desc';
const numericCompare = function (left, right, direction) {
const leftUnknown = left === null || left === undefined;
const rightUnknown = right === null || right === undefined;
if (leftUnknown !== rightUnknown) { return leftUnknown ? 1 : -1; }
if (leftUnknown) { return 0; }
return direction * (left - right);
};
return filtered.slice().sort(function (a, b) {
if (mode === 'updated-desc') { return String(b.updatedAt).localeCompare(String(a.updatedAt)); }
if (mode === 'size-desc') { return numericCompare(a.sizeBytes, b.sizeBytes, -1); }
if (mode === 'size-asc') { return numericCompare(a.sizeBytes, b.sizeBytes, 1); }
if (mode === 'sources-desc') { return (b.sources || []).length - (a.sources || []).length; }
if (mode === 'title-asc') { return String(a.title).localeCompare(String(b.title), 'zh-CN'); }
return String(b.savedAt).localeCompare(String(a.savedAt));
});
}
function formatBytes (value) {
if (value === null || value === undefined) { return '大小未知'; }
const units = ['B', 'KiB', 'MiB', 'GiB', 'TiB'];
let number = Number(value);
let index = 0;
while (number >= 1024 && index < units.length - 1) { number /= 1024; index += 1; }
return (index ? number.toFixed(number >= 10 ? 1 : 2) : String(Math.round(number))) + ' ' + units[index];
}
function refreshTagFilterOptions () {
if (!tagFilter) { return; }
const selected = tagFilter.value;
const ids = Array.from(new Set(entries.flatMap(function (entry) {
return (entry.tags || []).map(function (tag) { return tag.id; });
}))).sort(function (a, b) { return a.localeCompare(b, 'zh-CN'); });
tagFilter.replaceChildren();
const all = element('option', '', '全部标签');
all.value = '';
tagFilter.appendChild(all);
ids.forEach(function (id) {
const option = element('option', '', id);
option.value = id;
tagFilter.appendChild(option);
});
tagFilter.value = ids.includes(selected) ? selected : '';
}
function renderFavorites () {
if (!favoriteNode) { return; }
refreshTagFilterOptions();
const filtered = filteredEntries();
favoriteNode.replaceChildren();
if (!filtered.length) {
favoriteNode.appendChild(element('div', 'jrr-empty', entries.length ? '没有符合搜索条件的收藏。' : '还没有收藏。可粘贴磁力,或从“回复资源”导入搜索结果。'));
return;
}
filtered.slice(0, MAX_VISIBLE).forEach(function (entry) {
const row = element('article', 'jrr-row jrr-favorite');
row.dataset.key = entry.key;
row.appendChild(element('div', 'jrr-favorite-title', entry.title || '磁力 ' + shortHash(entry.hash)));
if ((entry.tags || []).length) {
const tags = element('div', 'jrr-tags');
entry.tags.forEach(function (tag) {
const badge = element('span', 'jrr-tag', tag.id);
badge.title = tag.overridden ? '人工修正标签' : '由' + (tag.source === 'title-match' ? '标题关键词' : tag.source) + '推断';
tags.appendChild(badge);
});
row.appendChild(tags);
}
const metaText = 'BTIH ' + shortHash(entry.hash) + ' · ' + new Date(entry.savedAt).toLocaleString('zh-CN', { hour12: false }) +
((entry.codes || []).length ? ' · ' + entry.codes.join(' / ') : '') +
' · ' + formatBytes(entry.sizeBytes) +
(entry.fileCount !== null ? ' · ' + entry.fileCount + ' 个文件' : '') +
((entry.sources || []).length ? ' · ' + entry.sources.length + ' 个来源' : '') +
(Number(entry.seenCount) > 1 ? ' · 发现 ' + entry.seenCount + ' 次' : '');
row.appendChild(element('div', 'jrr-meta', metaText));
const source = entry.sources && entry.sources[0];
if (source && source.pageUrl) {
const sourceLink = element('a', 'jrr-floor', '来源:' + (source.floor || source.title || '原页面') + (source.author ? ' · ' + source.author : ''));
sourceLink.href = source.pageUrl;
sourceLink.target = '_blank';
sourceLink.rel = 'noopener noreferrer';
row.appendChild(sourceLink);
}
if (entry.note) { row.appendChild(element('div', 'jrr-note', entry.note)); }
const actions = element('div', 'jrr-actions');
[['copy', '复制'], ['open', '打开'], ['edit', '编辑'], ['remove', '删除']].forEach(function (definition) {
const button = element('button', 'jrr-small-button' + (definition[0] === 'remove' ? ' jrr-danger' : ''), definition[1]);
button.type = 'button';
button.dataset.action = definition[0];
actions.appendChild(button);
});
row.appendChild(actions);
favoriteNode.appendChild(row);
});
if (filtered.length > MAX_VISIBLE) {
favoriteNode.appendChild(element('div', 'jrr-empty', '共有 ' + filtered.length + ' 条,仅显示前 ' + MAX_VISIBLE + ' 条;可用搜索定位。'));
}
}
function switchTab (tab) {
if (!resultNode || !favoriteNode) { return; }
activeTab = tab === 'replies' && isJavBusThreadPage() ? 'replies' : 'favorites';
resultNode.hidden = activeTab !== 'replies';
favoriteNode.hidden = activeTab !== 'favorites';
replyControls.hidden = activeTab !== 'replies';
favoriteControls.hidden = activeTab !== 'favorites';
tabReplies.classList.toggle('jrr-active', activeTab === 'replies');
tabFavorites.classList.toggle('jrr-active', activeTab === 'favorites');
}
function currentPageNumber () {
const active = document.querySelector('.pg strong');
const value = active ? parseInt(active.textContent, 10) : 1;
return Number.isFinite(value) ? value : 1;
}
function scanCurrentDocument () {
documents.set(normalizePageUrl(location.href), parseDocumentPosts(document, location.href, currentPageNumber()));
render();
}
function firstPageUrl () {
const url = new URL(location.href);
url.hash = '';
if (url.searchParams.get('tid')) {
url.searchParams.set('page', '1');
return url.href;
}
if (/thread-\d+-\d+-\d+\.html/i.test(url.pathname)) {
url.pathname = url.pathname.replace(/(thread-\d+)-\d+(-\d+\.html)/i, '$1-1$2');
return url.href;
}
const firstLink = Array.from(document.querySelectorAll('.pg a[href]')).find(function (link) {
return link.textContent.trim() === '1';
});
return firstLink ? new URL(firstLink.href, location.href).href : url.href;
}
function nextPageUrl (doc, currentUrl, expectedThreadId) {
const next = doc.querySelector('.pg a.nxt[href], a.nxt[href], a[rel="next"][href]');
if (!next) { return ''; }
const url = new URL(next.getAttribute('href'), currentUrl);
if (url.origin !== location.origin) { return ''; }
if (expectedThreadId && getThreadId(url.href) !== expectedThreadId) { return ''; }
return normalizePageUrl(url.href);
}
async function fetchPageDocument (url, signal) {
const response = await fetch(url, { credentials: 'same-origin', cache: 'no-store', signal: signal });
if (!response.ok) { throw new Error('HTTP ' + response.status); }
const html = await response.text();
const doc = new DOMParser().parseFromString(html, 'text/html');
if (!doc.querySelector(POST_BODY_SELECTOR)) { throw new Error('页面未返回帖子内容,可能需要重新登录或验证'); }
return doc;
}
async function scanAllPages () {
if (scanController) {
scanController.abort();
return;
}
scanController = new AbortController();
const signal = scanController.signal;
scanButton.textContent = '停止扫描';
documents.clear();
const visited = new Set();
const expectedThreadId = getThreadId(location.href);
let url = normalizePageUrl(firstPageUrl());
let page = 1;
try {
while (url && !visited.has(url) && page <= MAX_PAGES) {
if (signal.aborted) { throw new DOMException('Aborted', 'AbortError'); }
visited.add(url);
statusNode.textContent = '正在扫描第 ' + page + ' 页…';
const doc = url === normalizePageUrl(location.href) ? document : await fetchPageDocument(url, signal);
documents.set(url, parseDocumentPosts(doc, url, page));
render();
url = nextPageUrl(doc, url, expectedThreadId);
page += 1;
}
statusNode.textContent = url && page > MAX_PAGES
? '已扫描前 ' + MAX_PAGES + ' 页(达到安全上限)'
: '全部扫描完成,共 ' + visited.size + ' 页';
} catch (error) {
if (error && error.name === 'AbortError') {
statusNode.textContent = '扫描已停止,保留已整理结果';
} else {
statusNode.textContent = '扫描中止:' + (error && error.message ? error.message : String(error));
}
} finally {
scanController = null;
scanButton.textContent = '扫描全部页';
render();
}
}
function mount () {
GM_addStyle(`
#jrr-badge{position:fixed;right:14px;top:38%;z-index:2147483600;border:0;border-radius:18px;padding:8px 12px;background:#555;color:#fff;box-shadow:0 2px 10px #0005;cursor:pointer;font-size:13px}
#jrr-badge.jrr-has-resource{background:#bd2c36}
#jrr-panel{position:fixed;right:14px;top:8%;z-index:2147483601;width:min(540px,calc(100vw - 28px));max-height:84vh;overflow:hidden;background:#fff;color:#222;border:1px solid #aaa;border-radius:10px;box-shadow:0 8px 30px #0005;font:13px/1.45 Arial,"Microsoft YaHei",sans-serif}
#jrr-panel[hidden],#jrr-panel [hidden]{display:none!important}.jrr-header{display:flex;align-items:center;gap:7px;padding:9px;background:#2b333f;color:#fff}.jrr-header strong{flex:1}.jrr-button,.jrr-small-button,.jrr-select{border:1px solid #aaa;border-radius:4px;background:#f5f5f5;color:#222;padding:4px 7px;cursor:pointer}.jrr-button:disabled{opacity:.45;cursor:not-allowed}.jrr-close{border:0;background:transparent;color:#fff;font-size:19px;cursor:pointer}.jrr-tabs{display:flex;border-bottom:1px solid #ddd;background:#fafafa}.jrr-tab{flex:1;border:0;border-bottom:3px solid transparent;background:transparent;padding:9px;cursor:pointer}.jrr-tab.jrr-active{border-color:#bd2c36;color:#9e1620;font-weight:700}.jrr-controls{padding:9px 10px;border-bottom:1px solid #ddd;background:#fafafa}.jrr-control-row{display:flex;gap:6px;flex-wrap:wrap}.jrr-paste{width:100%;height:62px;resize:vertical;border:1px solid #bbb;border-radius:6px;padding:7px;margin-bottom:7px}.jrr-search{flex:1;min-width:145px;border:1px solid #bbb;border-radius:6px;padding:6px 8px}.jrr-status{padding:7px 10px;border-bottom:1px solid #ddd;color:#666}.jrr-results{max-height:calc(84vh - 190px);overflow:auto;padding:0 10px 10px}.jrr-section h4{margin:10px 0 5px}.jrr-row{padding:7px 0;border-top:1px solid #eee}.jrr-main{display:flex;align-items:center;gap:7px;overflow:hidden}.jrr-main>a{overflow-wrap:anywhere;color:#1464b4;font-weight:600}.jrr-main>a:first-child{flex:1}.jrr-occurrences{display:flex;gap:5px;flex-wrap:wrap;margin-top:4px}.jrr-floor{font-size:11px;color:#777;background:#f0f0f0;border-radius:9px;padding:1px 6px}.jrr-empty{color:#777;padding:22px 6px;text-align:center}.jrr-favorite-title{font-weight:700;overflow-wrap:anywhere}.jrr-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}.jrr-tag{font-size:11px;color:#fff;background:#667085;border-radius:9px;padding:1px 7px}.jrr-meta{margin-top:3px;color:#777;font-size:11px;overflow-wrap:anywhere}.jrr-note{margin-top:5px;padding:5px 7px;border-left:3px solid #e3a4a7;background:#fff7f7;color:#555}.jrr-actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}.jrr-danger{color:#a40000}.jrr-saved-badge{position:absolute;right:5px;top:5px;z-index:5;border-radius:10px;padding:2px 7px;background:#bd2c36;color:#fff;font:11px/1.4 Arial,"Microsoft YaHei",sans-serif;box-shadow:0 1px 4px #0005;pointer-events:none}
`);
badge = element('button', '', '🧲 资源收藏夹');
badge.id = 'jrr-badge';
badge.type = 'button';
panel = element('aside');
panel.id = 'jrr-panel';
panel.hidden = true;
const header = element('div', 'jrr-header');
header.appendChild(element('strong', '', 'Jav 资源收藏夹'));
const close = element('button', 'jrr-close', '×');
close.type = 'button';
header.appendChild(close);
const tabs = element('div', 'jrr-tabs');
tabReplies = element('button', 'jrr-tab', '回复资源');
tabFavorites = element('button', 'jrr-tab', '收藏夹');
tabReplies.type = 'button';
tabFavorites.type = 'button';
tabReplies.hidden = !isJavBusPage();
tabs.appendChild(tabReplies);
tabs.appendChild(tabFavorites);
replyControls = element('div', 'jrr-controls');
scanButton = element('button', 'jrr-button', '扫描全部页');
scanButton.type = 'button';
const copyAll = element('button', 'jrr-button', '复制全部磁力');
copyAll.type = 'button';
const importResults = element('button', 'jrr-button', '导入搜索结果');
importResults.type = 'button';
replyControls.appendChild(scanButton);
replyControls.appendChild(copyAll);
replyControls.appendChild(importResults);
favoriteControls = element('div', 'jrr-controls');
pasteInput = element('textarea', 'jrr-paste');
pasteInput.placeholder = '粘贴任意文字或多个磁力链接;粘贴后立即规范化、去重并保存。';
pasteInput.spellcheck = false;
const favoriteRow = element('div', 'jrr-control-row');
searchInput = element('input', 'jrr-search');
searchInput.type = 'search';
searchInput.placeholder = '搜索名称、番号、哈希、备注或来源';
tagFilter = element('select', 'jrr-select');
tagFilter.title = '按质量标签过滤';
sortSelect = element('select', 'jrr-select');
[
['saved-desc', '最新收藏'],
['updated-desc', '最近更新'],
['size-desc', '大小降序'],
['size-asc', '大小升序'],
['sources-desc', '来源最多'],
['title-asc', '标题排序'],
].forEach(function (item) {
const option = element('option', '', item[1]);
option.value = item[0];
sortSelect.appendChild(option);
});
const copyFavorites = element('button', 'jrr-button', '复制全部收藏');
copyFavorites.type = 'button';
const exportFavorites = element('button', 'jrr-button', '导出 JSON');
exportFavorites.type = 'button';
const importFavorites = element('button', 'jrr-button', '导入 JSON');
importFavorites.type = 'button';
const importFile = element('input');
importFile.type = 'file';
importFile.accept = 'application/json,.json';
importFile.hidden = true;
favoriteRow.appendChild(searchInput);
favoriteRow.appendChild(tagFilter);
favoriteRow.appendChild(sortSelect);
favoriteRow.appendChild(copyFavorites);
favoriteRow.appendChild(exportFavorites);
favoriteRow.appendChild(importFavorites);
favoriteRow.appendChild(importFile);
favoriteControls.appendChild(pasteInput);
favoriteControls.appendChild(favoriteRow);
statusNode = element('div', 'jrr-status', '收藏仅保存在当前用户脚本管理器。');
resultNode = element('div', 'jrr-results');
favoriteNode = element('div', 'jrr-results');
panel.appendChild(header);
panel.appendChild(tabs);
panel.appendChild(replyControls);
panel.appendChild(favoriteControls);
panel.appendChild(statusNode);
panel.appendChild(resultNode);
panel.appendChild(favoriteNode);
document.body.appendChild(badge);
document.body.appendChild(panel);
badge.addEventListener('click', function () { panel.hidden = !panel.hidden; });
close.addEventListener('click', function () { panel.hidden = true; });
tabReplies.addEventListener('click', function () { switchTab('replies'); });
tabFavorites.addEventListener('click', function () { switchTab('favorites'); });
scanButton.addEventListener('click', scanAllPages);
copyAll.addEventListener('click', function () {
const magnets = aggregateResources().magnets.map(function (item) { return item.uri; });
if (!magnets.length) { copyAll.textContent = '没有磁力'; }
else { copyAll.textContent = copyText(magnets.join('\n')) ? '已复制' : '复制失败'; }
setTimeout(function () { copyAll.textContent = '复制全部磁力'; }, 1400);
});
importResults.addEventListener('click', function () {
const result = addParsed(aggregateResources().magnets, sourceFromMagnet);
reportAddResult(result, '搜索结果');
switchTab('favorites');
});
pasteInput.addEventListener('paste', function (event) {
event.preventDefault();
const text = event.clipboardData ? event.clipboardData.getData('text/plain') : '';
pasteInput.value = '';
reportAddResult(addParsed(extractMagnetsFromText(text), currentSource()), '粘贴内容');
});
pasteInput.addEventListener('keydown', function (event) {
if ((event.ctrlKey || event.metaKey) && event.key === 'Enter') {
event.preventDefault();
const text = pasteInput.value;
pasteInput.value = '';
reportAddResult(addParsed(extractMagnetsFromText(text), currentSource()), '输入内容');
}
});
searchInput.addEventListener('input', renderFavorites);
tagFilter.addEventListener('change', renderFavorites);
sortSelect.addEventListener('change', renderFavorites);
copyFavorites.addEventListener('click', function () {
const magnets = entries.map(function (entry) { return entry.magnet; });
statusNode.textContent = magnets.length && copyText(magnets.join('\n'))
? '已复制全部 ' + magnets.length + ' 条收藏。'
: '收藏夹为空或复制失败。';
});
exportFavorites.addEventListener('click', function () {
syncFromStorage(false);
const payload = {
format: 'javbus-magnet-bookmarks',
version: 2,
schemaVersion: SCHEMA_VERSION,
storeRevision: store.storeRevision,
exportedAt: new Date().toISOString(),
entries: entries,
};
const url = URL.createObjectURL(new Blob([JSON.stringify(payload, null, 2)], { type: 'application/json;charset=utf-8' }));
const link = element('a');
link.href = url;
link.download = 'javbus-magnet-bookmarks-' + new Date().toISOString().slice(0, 10) + '.json';
link.click();
setTimeout(function () { URL.revokeObjectURL(url); }, 1000);
statusNode.textContent = '已导出 ' + entries.length + ' 条收藏。';
});
importFavorites.addEventListener('click', function () { importFile.click(); });
importFile.addEventListener('change', function () {
const file = importFile.files && importFile.files[0];
importFile.value = '';
importFavoritesFile(file);
});
favoriteNode.addEventListener('click', function (event) {
const button = event.target.closest('button[data-action]');
const row = button && button.closest('[data-key]');
if (!button || !row) { return; }
const key = row.dataset.key;
let entry = entries.find(function (item) { return item.key === key; });
if (!entry) { return; }
if (button.dataset.action === 'copy') {
statusNode.textContent = copyText(entry.magnet) ? '已复制:' + entry.title : '复制失败。';
} else if (button.dataset.action === 'open') {
const link = element('a');
link.href = entry.magnet;
link.style.display = 'none';
document.body.appendChild(link);
link.click();
link.remove();
statusNode.textContent = '已交给系统中注册的磁力客户端。';
} else if (button.dataset.action === 'edit') {
const name = prompt('收藏名称:', entry.title || '');
if (name === null) { return; }
const note = prompt('备注(可留空):', entry.note || '');
if (note === null) { return; }
syncFromStorage(false);
entry = entries.find(function (item) { return item.key === key; });
if (!entry) { statusNode.textContent = '该收藏已在其他页面删除。'; return; }
entry.title = cleanText(name, 240) || '磁力 ' + shortHash(entry.hash);
entry.note = cleanText(note, 500);
entry.tags = mergeTags(entry.tags, inferTags(entry.title));
entry.updatedAt = new Date().toISOString();
entry.revision = Math.max(1, Number(entry.revision) || 1) + 1;
entry.parseStatus = recordParseStatus(entry);
saveEntries({ changedKeys: [key] });
render();
statusNode.textContent = '名称和备注已保存。';
} else if (button.dataset.action === 'remove') {
if (!confirm('确定删除“' + entry.title + '”吗?')) { return; }
syncFromStorage(false);
entries = entries.filter(function (item) { return item.key !== key; });
saveEntries({ changedKeys: [], removedKeys: [key] });
render();
statusNode.textContent = '收藏已删除。';
}
});
}
function observeReplies () {
const firstPostBody = document.querySelector(POST_BODY_SELECTOR);
const root = document.querySelector('#postlist') || (firstPostBody && firstPostBody.parentElement) || document.body;
const observer = new MutationObserver(function (records) {
const relevant = records.some(function (record) {
if (record.target && record.target.closest && record.target.closest('#jrr-panel')) { return false; }
if (record.target && record.target.closest && record.target.closest(POST_BODY_SELECTOR)) { return true; }
return Array.from(record.addedNodes).concat(Array.from(record.removedNodes)).some(function (node) {
return node.nodeType === 1 && (node.matches?.(POST_BODY_SELECTOR) || node.querySelector?.(POST_BODY_SELECTOR));
});
});
if (!relevant) { return; }
clearTimeout(mutationTimer);
mutationTimer = setTimeout(scanCurrentDocument, 250);
});
observer.observe(root, { childList: true, subtree: true });
}
function savedCodeIndex () {
const index = new Map();
entries.forEach(function (entry) {
(entry.codes || []).forEach(function (code) {
const normalized = normalizeCode(code);
if (!normalized) { return; }
index.set(normalized, (index.get(normalized) || 0) + 1);
});
});
return index;
}
function codeFromCardLink (link) {
try {
const url = new URL(link.href, location.href);
const last = decodeURIComponent(url.pathname.split('/').filter(Boolean).pop() || '');
const codes = extractCodesFromText(' ' + last + ' ');
return codes.length === 1 ? codes[0] : '';
} catch (e) {
return '';
}
}
function markSavedListItems () {
if (!isJavBusPage() || isJavBusThreadPage()) { return; }
const index = savedCodeIndex();
document.querySelectorAll('.jrr-saved-badge').forEach(function (node) { node.remove(); });
if (!index.size) { return; }
document.querySelectorAll('a.movie-box[href], .movie-box a[href], .item a[href]').forEach(function (link) {
if (link.closest('#jrr-panel') || link.querySelector('.jrr-saved-badge')) { return; }
const code = codeFromCardLink(link);
const count = index.get(code);
if (!count) { return; }
const badgeNode = element('span', 'jrr-saved-badge', '已收藏 ' + count + ' 条磁力');
if (getComputedStyle(link).position === 'static') { link.style.position = 'relative'; }
link.appendChild(badgeNode);
});
}
function observeListItems () {
if (isJavBusThreadPage()) { return; }
const observer = new MutationObserver(function (records) {
const relevant = records.some(function (record) {
return Array.from(record.addedNodes).some(function (node) {
if (node.nodeType !== 1) { return false; }
if (node.matches?.('.jrr-saved-badge') || node.closest?.('#jrr-panel')) { return false; }
return Boolean(node.matches?.('.movie-box,.item') || node.querySelector?.('.movie-box,.item'));
});
});
if (!relevant) { return; }
clearTimeout(listMutationTimer);
listMutationTimer = setTimeout(markSavedListItems, 200);
});
observer.observe(document.body, { childList: true, subtree: true });
}
function scheduleChannelReload (remoteRevision) {
if (!Number.isFinite(remoteRevision) || remoteRevision <= store.storeRevision) { return; }
clearTimeout(channelReloadTimer);
channelReloadTimer = setTimeout(function () {
const latest = loadStore();
if (latest.storeRevision <= store.storeRevision) { return; }
store = latest;
entries = store.records;
render();
markSavedListItems();
}, 40);
}
function initSyncChannel () {
if (typeof BroadcastChannel !== 'function') { return; }
try {
syncChannel = new BroadcastChannel(CHANNEL_NAME);
syncChannel.addEventListener('message', function (event) {
const message = event && event.data;
if (!message || message.type !== 'favorites-changed' || message.senderId === senderId) { return; }
scheduleChannelReload(Number(message.storeRevision));
});
window.addEventListener('pagehide', function () {
try { syncChannel.close(); } catch (e) {}
syncChannel = null;
}, { once: true });
} catch (e) {
console.warn('[javbus-resource-center] BroadcastChannel unavailable', e);
syncChannel = null;
}
}
function init () {
if (!isResourceCenterPage() || document.querySelector('#jrr-badge')) { return; }
initSyncChannel();
mount();
if (isJavBusThreadPage()) {
activeTab = 'replies';
scanCurrentDocument();
observeReplies();
} else {
render();
if (isJavBusPage()) { observeListItems(); }
}
if (typeof GM_addValueChangeListener === 'function') {
GM_addValueChangeListener(STORAGE_KEY, function (_name, _oldValue, newValue) {
const latest = normalizeStore(newValue);
if (latest.storeRevision <= store.storeRevision) { return; }
store = latest;
entries = store.records;
render();
});
}
window.addEventListener('focus', function () { syncFromStorage(true); });
document.addEventListener('visibilitychange', function () {
if (document.visibilityState === 'visible') { syncFromStorage(true); }
});
console.info('[javbus-resource-center] initialized', { version: VERSION });
}
return Object.freeze({
init: init,
normalizeMagnet: normalizeMagnet,
extractMagnetsFromText: extractMagnetsFromText,
extractCodesFromText: extractCodesFromText,
getThreadId: getThreadId,
normalizeEntries: normalizeEntries,
normalizeStore: normalizeStore,
inferTags: inferTags,
parseSizeBytes: parseSizeBytes,
mergeRecords: mergeRecords,
mergeStoreRecords: mergeStoreRecords,
addParsed: addParsed,
isJavBusPage: isJavBusPage,
isJavDbPage: isJavDbPage,
isResourceCenterPage: isResourceCenterPage,
});
})();
ForumReplyResources.init();
// ---------- v1.5.5 JavBus 紧凑信息与详情下方资源区 ----------
const JavBusCompactWorkspace = (function () {
'use strict';
const VERSION = '1.4.0';
const RESOURCE_SECTION_ID = 'jbr-detail-resources';
const MAGNET_VIEW_KEY = 'javbus_magnet_view_source_v1';
const NATIVE_SOURCE_VALUE = '__javbus_native__';
let observer = null;
let updateTimer = 0;
let lastNativeSignature = '';
let lastTargetTable = null;
let magnetSubmission = null;
function element (tag, className, text) {
const node = document.createElement(tag);
if (className) { node.className = className; }
if (text !== undefined) { node.textContent = text; }
return node;
}
function hostMatches (hostname, allowed) {
const host = String(hostname || '').toLowerCase().replace(/\.$/, '');
const rule = String(allowed || '').toLowerCase().replace(/\.$/, '');
return Boolean(host && rule && (host === rule || host.endsWith('.' + rule)));
}
function isDetailPage () {
return hostMatches(location.hostname, 'javbus.com') &&
Boolean(document.querySelector('.col-md-3.info')) &&
!/\/(?:forum)(?:\/|$)/i.test(location.pathname);
}
function compactInfo () {
const info = document.querySelector('.col-md-3.info');
if (!info) { return; }
const oldGrid = info.querySelector(':scope > .jbr-meta-grid');
if (oldGrid) {
Array.from(oldGrid.children).forEach(function (row) {
row.classList.remove('jbr-meta-row');
info.insertBefore(row, oldGrid);
});
oldGrid.remove();
}
info.classList.add('jbr-compact-info');
}
function mountStyle () {
GM_addStyle(`
.col-md-3.info.jbr-compact-info{font-size:14px;line-height:1.45}
.jbr-compact-info>p{margin:0 0 7px!important;line-height:1.45!important}
.jbr-compact-info>p .header,.jbr-compact-info>p .header_hobby{display:inline-block;width:auto!important;min-width:76px;margin-right:4px;text-align:left!important;font-weight:700;white-space:nowrap}
.jbr-compact-info>p:first-child,.jbr-compact-info>p:first-child span,.jbr-compact-info #avid{white-space:nowrap!important;overflow-wrap:normal!important;word-break:keep-all!important}
#${RESOURCE_SECTION_ID}{clear:both;display:block;width:100%;margin:14px 0;box-sizing:border-box}
#${RESOURCE_SECTION_ID}>#nong-table-new{float:none!important;display:table;width:100%!important;max-width:none!important;margin:0!important;table-layout:fixed;box-sizing:border-box}
#${RESOURCE_SECTION_ID}>#nong-table-new th:first-child,#${RESOURCE_SECTION_ID}>#nong-table-new td:first-child{width:auto;overflow:hidden;text-overflow:ellipsis}
#${RESOURCE_SECTION_ID}>#nong-table-new th:nth-child(2),#${RESOURCE_SECTION_ID}>#nong-table-new td:nth-child(2){width:108px;white-space:nowrap}
#${RESOURCE_SECTION_ID}>#nong-table-new th:nth-child(3),#${RESOURCE_SECTION_ID}>#nong-table-new td:nth-child(3){width:66px;white-space:nowrap}
#${RESOURCE_SECTION_ID}>#nong-table-new th:nth-child(4),#${RESOURCE_SECTION_ID}>#nong-table-new td:nth-child(4){width:86px;white-space:nowrap}
#${RESOURCE_SECTION_ID}>.jav-image-preview{clear:both;display:block;width:100%;max-width:none;margin:12px 0 0!important;padding:9px;border:1px solid #d5d8dc;box-shadow:none;box-sizing:border-box}
#magnet-table.jbr-native-source-hidden{display:none!important}
#${RESOURCE_SECTION_ID}>#nong-table-new select option[value="${NATIVE_SOURCE_VALUE}"]{font-weight:700}
.jbr-copy{color:#08c!important}.jbr-offline{color:rgb(0,180,30)!important}.jbr-offline:hover{color:red!important}
.jbr-magnet-submit-row>td{padding:9px 10px!important;background:#f7f8fa!important;text-align:left!important}
.jbr-magnet-submit-box>#mag-submit-show{margin:0!important;padding:0!important;font-size:17px;line-height:1.5;cursor:pointer}
.jbr-magnet-submit-box>#mag-submit{margin-top:8px;background:#fff}
@media (max-width:900px){
.col-md-3.info.jbr-compact-info{float:none;width:100%;max-width:none;min-width:0;padding:0}
#${RESOURCE_SECTION_ID}{width:100%;margin:12px 0}
}
`);
}
function removeLegacyWorkspace () {
const oldRoot = document.getElementById('jbr-workspace');
if (!oldRoot || !oldRoot.parentNode) { return; }
const parent = oldRoot.parentNode;
Array.from(oldRoot.querySelectorAll('#magnet-table, #mag-submit-show, .jav-image-preview')).forEach(function (node) {
parent.insertBefore(node, oldRoot);
});
oldRoot.remove();
document.documentElement.classList.remove('jbr-workspace-active');
}
function magnetKey (value) {
const raw = String(value || '');
const match = raw.match(/(?:^|[?&])xt=urn(?::|%3A)btih(?::|%3A)([a-z0-9]{32,40})/i);
return match ? match[1].toLowerCase() : raw.slice(0, 240);
}
function nativeMagnetRecords () {
const table = document.querySelector('#magnet-table');
if (!table) { return []; }
const records = [];
const seen = new Set();
Array.from(table.querySelectorAll('tr')).forEach(function (row) {
const link = row.querySelector('a[href^="magnet:"]');
if (!link) { return; }
const magnet = link.href;
const key = magnetKey(magnet);
if (!key || seen.has(key)) { return; }
seen.add(key);
const cells = Array.from(row.querySelectorAll(':scope > td'));
const title = String((cells[0] && cells[0].textContent) || link.textContent || key).replace(/\s+/g, ' ').trim();
const size = String((cells[1] && cells[1].textContent) || '').replace(/\s+/g, ' ').trim();
records.push({ key: key, magnet: magnet, title: title, size: size, sourceRow: row });
});
return records;
}
function createNativeRow (record) {
const row = element('tr', 'jav-nong-row jbr-native-magnet-row');
row.dataset.nativeMagnetKey = record.key;
row.setAttribute('maglink', record.magnet);
const titleCell = element('td');
const titleBox = element('div');
const fullTitle = record.title || record.key;
const titleLink = element('a', '', fullTitle.length < 20 ? fullTitle : fullTitle.slice(0, 20) + '...');
titleLink.href = record.magnet;
titleLink.title = fullTitle;
titleBox.appendChild(titleLink);
titleCell.appendChild(titleBox);
const sizeCell = element('td', '', record.size || '未知');
const copyCell = element('td');
const copyLink = element('a', 'jbr-copy', '复制');
copyLink.href = record.magnet;
copyLink.addEventListener('click', function (event) {
event.preventDefault();
try { GM_setClipboard(record.magnet); } catch (error) { return; }
copyLink.textContent = '成功';
setTimeout(function () { copyLink.textContent = '复制'; }, 1000);
});
copyCell.appendChild(copyLink);
const offlineCell = element('td');
const offlineLink = element('a', 'jbr-offline', '115离线');
offlineLink.href = 'http://115.com/?tab=offline&mode=wangpan';
offlineLink.target = '_blank';
offlineLink.addEventListener('click', function (event) {
const original = record.sourceRow && record.sourceRow.querySelector('.nong-offline-download');
if (!original) { return; }
event.preventDefault();
original.click();
});
offlineCell.appendChild(offlineLink);
row.appendChild(titleCell);
row.appendChild(sizeCell);
row.appendChild(copyCell);
row.appendChild(offlineCell);
return row;
}
function readMagnetView () {
try { return String(GM_getValue(MAGNET_VIEW_KEY, '') || ''); }
catch (error) { return ''; }
}
function writeMagnetView (value) {
try { GM_setValue(MAGNET_VIEW_KEY, String(value || '')); }
catch (error) { console.warn('[javbus-workspace] source preference write failed', error); }
}
function ensureNativeSourceOption (target, records) {
const select = target && target.querySelector('#jav-nong-head select');
if (!select) { return null; }
let option = Array.from(select.options || []).find(function (item) { return item.value === NATIVE_SOURCE_VALUE; });
if (records.length && !option) {
option = element('option', '', 'JavBus');
option.value = NATIVE_SOURCE_VALUE;
select.insertBefore(option, select.firstChild);
} else if (!records.length && option) {
option.remove();
option = null;
}
if (!select.dataset.jbrSourceBound) {
select.dataset.jbrSourceBound = '1';
select.addEventListener('change', function (event) {
const value = event.currentTarget.value;
writeMagnetView(value);
if (value !== NATIVE_SOURCE_VALUE) { return; }
// 原表格监听器会把选项写入 search_index;捕获阶段拦截原生来源,避免触发无效的外站请求。
event.preventDefault();
event.stopImmediatePropagation();
const section = document.getElementById(RESOURCE_SECTION_ID);
mergeNativeMagnets(section);
adoptMagnetSubmission(section);
}, true);
}
if (option && readMagnetView() === NATIVE_SOURCE_VALUE) { select.value = NATIVE_SOURCE_VALUE; }
return select;
}
function clearExternalResultRows (target) {
Array.from(target.querySelectorAll('.jav-nong-row')).forEach(function (row) {
if (row.id !== 'jav-nong-head') { row.remove(); }
});
}
function mergeNativeMagnets (resourceSection) {
const nativeTable = document.querySelector('#magnet-table');
const target = resourceSection && resourceSection.querySelector('#nong-table-new');
if (!nativeTable || !target) { return; }
const records = nativeMagnetRecords();
const select = ensureNativeSourceOption(target, records);
if (!records.length) {
target.querySelectorAll('.jbr-native-magnet-row').forEach(function (row) { row.remove(); });
return;
}
const signature = records.map(function (record) {
return record.key + '|' + record.title + '|' + record.size;
}).join('\n');
const nativeSelected = Boolean(select && select.value === NATIVE_SOURCE_VALUE);
if (!nativeSelected) {
target.querySelectorAll('.jbr-native-magnet-row').forEach(function (row) { row.remove(); });
nativeTable.classList.add('jbr-native-source-hidden');
lastTargetTable = target;
lastNativeSignature = signature;
return;
}
const resultRows = Array.from(target.querySelectorAll('.jav-nong-row')).filter(function (row) {
return row.id !== 'jav-nong-head';
});
if (target === lastTargetTable && signature === lastNativeSignature &&
resultRows.length === records.length &&
resultRows.every(function (row) { return row.classList.contains('jbr-native-magnet-row'); })) {
nativeTable.classList.add('jbr-native-source-hidden');
return;
}
clearExternalResultRows(target);
const submissionRow = target.querySelector('.jbr-magnet-submit-row');
records.forEach(function (record) {
target.insertBefore(createNativeRow(record), submissionRow || null);
});
nativeTable.classList.add('jbr-native-source-hidden');
lastTargetTable = target;
lastNativeSignature = signature;
}
function captureMagnetSubmission () {
if (magnetSubmission && magnetSubmission.toggle && magnetSubmission.panel) { return magnetSubmission; }
const toggle = document.getElementById('mag-submit-show');
const panel = document.getElementById('mag-submit');
if (!toggle || !panel) { return null; }
magnetSubmission = { toggle: toggle, panel: panel };
return magnetSubmission;
}
function adoptMagnetSubmission (resourceSection) {
const target = resourceSection && resourceSection.querySelector('#nong-table-new');
const submission = captureMagnetSubmission();
if (!target || !submission) { return; }
let row = target.querySelector('.jbr-magnet-submit-row');
if (!row) {
row = element('tr', 'jbr-magnet-submit-row');
const cell = element('td');
cell.colSpan = 4;
const box = element('div', 'jbr-magnet-submit-box');
box.appendChild(submission.toggle);
box.appendChild(submission.panel);
cell.appendChild(box);
row.appendChild(cell);
}
// 始终放到表格末尾;移动原节点可完整保留 JavBus 已绑定的展开与投稿事件。
target.appendChild(row);
}
function removeLegacyPreviewResidue () {
Array.from(document.querySelectorAll('#javRealImg')).forEach(function (node) {
node.remove();
});
}
function findDetailRow (info) {
return info && (info.closest('.row.movie') || info.closest('.row') || info.parentElement);
}
function adoptResourceSection () {
const table = document.querySelector('#nong-table-new');
const info = document.querySelector('.col-md-3.info');
const detailRow = findDetailRow(info);
if (!table || !detailRow || !detailRow.parentNode) { return null; }
let section = document.getElementById(RESOURCE_SECTION_ID);
if (!section) {
section = element('section');
section.id = RESOURCE_SECTION_ID;
section.setAttribute('aria-label', '磁力与预览图资源');
}
if (section.parentNode !== detailRow.parentNode || section.previousElementSibling !== detailRow) {
detailRow.parentNode.insertBefore(section, detailRow.nextSibling);
}
if (table.parentNode !== section || section.firstElementChild !== table) {
section.insertBefore(table, section.firstChild);
}
const preview = document.querySelector('.jav-image-preview');
if (preview && preview.parentNode !== section) { section.appendChild(preview); }
mergeNativeMagnets(section);
adoptMagnetSubmission(section);
return section;
}
function showNativeOnOpen () {
const records = nativeMagnetRecords();
if (!records.length) { return false; }
writeMagnetView(NATIVE_SOURCE_VALUE);
const section = adoptResourceSection();
const target = section && section.querySelector('#nong-table-new');
const select = ensureNativeSourceOption(target, records);
if (!section || !target || !select) { return false; }
select.value = NATIVE_SOURCE_VALUE;
mergeNativeMagnets(section);
adoptMagnetSubmission(section);
return true;
}
function scheduleUpdate () {
clearTimeout(updateTimer);
updateTimer = setTimeout(function () {
removeLegacyPreviewResidue();
compactInfo();
adoptResourceSection();
}, 60);
}
function init () {
if (!isDetailPage()) { return; }
mountStyle();
removeLegacyWorkspace();
removeLegacyPreviewResidue();
compactInfo();
observer = new MutationObserver(scheduleUpdate);
observer.observe(document.body, { childList: true, subtree: true });
scheduleUpdate();
window.addEventListener('pagehide', function () {
if (observer) { observer.disconnect(); }
observer = null;
clearTimeout(updateTimer);
}, { once: true });
}
return Object.freeze({
version: VERSION,
init: init,
isDetailPage: isDetailPage,
magnetKey: magnetKey,
nativeMagnetRecords: nativeMagnetRecords,
compactInfo: compactInfo,
removeLegacyPreviewResidue: removeLegacyPreviewResidue,
adoptMagnetSubmission: adoptMagnetSubmission,
adoptResourceSection: adoptResourceSection,
showNativeOnOpen: showNativeOnOpen,
});
})();
JavBusCompactWorkspace.init();
// ---------- v1.6.12 JavBus 精确广告过滤 ----------
// 仅处理已确认的广告容器;不使用 iframe、fixed、外链图片等宽泛规则,避免误伤播放器与资源区。
const JavBusAdFilter = (function () {
'use strict';
const VERSION = '1.2.0';
const ENABLED_KEY = 'javbus_ad_filter_enabled_v1';
const ROOT_CLASS = 'jbr-ad-filter-enabled';
const FORUM_ROOT_CLASS = 'jbr-forum-ad-filter';
const AD_SELECTOR = '.ad-box,.ad-item,.ad-list,.ad-table';
const FORUM_AD_SELECTOR = '.bcpic,.bcpic2,.banner300,.banner728';
const RECOMMENDATION_MARKER_SELECTOR = '#urad2,a[href^="javascript:bootstr("]';
const PROTECTED_SELECTOR = '#jbr-detail-resources,.jav-image-preview,#magnet-table,#nong-table-new,#jav-preview-diagnostics,video,.video-js';
let observer = null;
let removedCount = 0;
function hostMatches (hostname, allowed) {
const host = String(hostname || '').toLowerCase().replace(/\.$/, '');
const rule = String(allowed || '').toLowerCase().replace(/\.$/, '');
return Boolean(host && rule && (host === rule || host.endsWith('.' + rule)));
}
function isJavBusPage () {
return hostMatches(location.hostname, 'javbus.com');
}
function isJavBusForumPage () {
return isJavBusPage() && /^\/forum(?:\/|$)/i.test(String(location.pathname || ''));
}
function adSelectorForPage () {
return isJavBusForumPage() ? AD_SELECTOR + ',' + FORUM_AD_SELECTOR : AD_SELECTOR;
}
function isEnabled () {
try { return GM_getValue(ENABLED_KEY, true) !== false; }
catch (error) { return true; }
}
function isProtected (node) {
return Boolean(node && typeof node.closest === 'function' && node.closest(PROTECTED_SELECTOR));
}
function removeAdNode (node) {
if (!node || !node.isConnected || isProtected(node)) { return false; }
node.remove();
removedCount += 1;
return true;
}
function recommendationPairFor (node) {
if (!node || node.nodeType !== 1) { return null; }
let heading = null;
if (typeof node.matches === 'function' && node.matches('h4')) {
heading = node;
} else if (typeof node.matches === 'function' && node.matches('.row')) {
heading = node.previousElementSibling;
} else if (typeof node.closest === 'function') {
const row = node.closest('.row');
heading = row && row.previousElementSibling;
}
if (!heading || typeof heading.matches !== 'function' || !heading.matches('h4')) { return null; }
if (typeof heading.querySelector !== 'function' || !heading.querySelector(RECOMMENDATION_MARKER_SELECTOR)) { return null; }
const row = heading.nextElementSibling;
if (!row || !row.classList || !row.classList.contains('row')) { return null; }
if (typeof row.querySelector !== 'function' || !row.querySelector('.ptb10 iframe')) { return null; }
return { heading: heading, row: row };
}
function collectRecommendationNodes (scope, matches) {
const candidates = [];
if (scope && scope.nodeType === 1) { candidates.push(scope); }
if (scope && typeof scope.querySelectorAll === 'function') {
scope.querySelectorAll('h4,.row,.ptb10 iframe').forEach(function (node) { candidates.push(node); });
}
candidates.forEach(function (candidate) {
const pair = recommendationPairFor(candidate);
if (!pair) { return; }
matches.push(pair.heading, pair.row);
});
}
function scan (root) {
if (!isEnabled()) { return 0; }
const scope = root || document;
const matches = [];
const activeSelector = adSelectorForPage();
if (scope.nodeType === 1 && typeof scope.matches === 'function' && scope.matches(activeSelector)) {
matches.push(scope);
}
if (typeof scope.querySelectorAll === 'function') {
scope.querySelectorAll(activeSelector).forEach(function (node) { matches.push(node); });
}
collectRecommendationNodes(scope, matches);
let currentRemoved = 0;
Array.from(new Set(matches)).forEach(function (node) {
if (removeAdNode(node)) { currentRemoved += 1; }
});
return currentRemoved;
}
function mountStyle () {
GM_addStyle(`
html.${ROOT_CLASS} .ad-box,
html.${ROOT_CLASS} .ad-item,
html.${ROOT_CLASS} .ad-list,
html.${ROOT_CLASS} .ad-table,
html.${ROOT_CLASS} h4:has(#urad2),
html.${ROOT_CLASS} h4:has(#urad2) + .row:has(.ptb10 iframe),
html.${ROOT_CLASS} h4:has(a[href^="javascript:bootstr("]),
html.${ROOT_CLASS} h4:has(a[href^="javascript:bootstr("]) + .row:has(.ptb10 iframe),
html.${ROOT_CLASS}.${FORUM_ROOT_CLASS} .bcpic,
html.${ROOT_CLASS}.${FORUM_ROOT_CLASS} .bcpic2,
html.${ROOT_CLASS}.${FORUM_ROOT_CLASS} .banner300,
html.${ROOT_CLASS}.${FORUM_ROOT_CLASS} .banner728{display:none!important}
`);
}
function registerMenu () {
if (typeof GM_registerMenuCommand !== 'function') { return; }
const enabled = isEnabled();
GM_registerMenuCommand((enabled ? '关闭' : '启用') + ' JavBus 广告过滤(刷新生效)', function () {
GM_setValue(ENABLED_KEY, !enabled);
try { GM_notification('JavBus 广告过滤已' + (!enabled ? '启用' : '关闭') + ',刷新页面生效'); } catch (error) {}
});
}
function init () {
if (!isJavBusPage()) { return; }
mountStyle();
registerMenu();
if (!isEnabled()) { return; }
document.documentElement.classList.add(ROOT_CLASS);
if (isJavBusForumPage()) { document.documentElement.classList.add(FORUM_ROOT_CLASS); }
scan(document);
if (!document.body) { return; }
observer = new MutationObserver(function (records) {
records.forEach(function (record) {
Array.from(record.addedNodes || []).forEach(function (node) {
if (node && node.nodeType === 1) { scan(node); }
});
});
});
observer.observe(document.body, { childList: true, subtree: true });
window.addEventListener('pagehide', function () {
if (observer) { observer.disconnect(); }
observer = null;
console.info('[javbus-ad-filter] disposed', { version: VERSION, removedCount: removedCount });
}, { once: true });
}
return Object.freeze({
version: VERSION,
init: init,
scan: scan,
isEnabled: isEnabled,
isJavBusPage: isJavBusPage,
isJavBusForumPage: isJavBusForumPage,
adSelectorForPage: adSelectorForPage,
isProtected: isProtected,
recommendationPairFor: recommendationPairFor,
});
})();
JavBusAdFilter.init();
// 外部磁力来源的纯数据判定与优先级规则。失败来源只降级,不会从来源列表中删除。
const MagnetSourcePriority = (function () {
function hasValidMagnetResults (data) {
return Array.isArray(data) && data.some(function (item) {
return item && /^magnet:\?/i.test(String(item.maglink || '').trim());
});
}
function validMagnetResults (data) {
if (!Array.isArray(data)) { return []; }
return data.filter(function (item) {
return item && /^magnet:\?/i.test(String(item.maglink || '').trim());
});
}
function orderedSources (sources, preferred) {
const unique = [];
(Array.isArray(sources) ? sources : []).forEach(function (source) {
const value = String(source || '').trim();
if (value && unique.indexOf(value) < 0) { unique.push(value); }
});
const selected = String(preferred || '').trim();
if (!selected || unique.indexOf(selected) < 0) { return unique; }
return [selected].concat(unique.filter(function (source) { return source !== selected; }));
}
return Object.freeze({
hasValidMagnetResults: hasValidMagnetResults,
validMagnetResults: validMagnetResults,
orderedSources: orderedSources,
});
})();
// 仅保留在当前脚本页面生命周期内;刷新页面后自动清空,以便重新验证临时失效来源。
const MagnetSourceResultCache = (function () {
const results = new Map();
const pending = new Map();
function keyFor (engine, videoCode) {
return String(videoCode || '').trim().toUpperCase() + '\u0000' + String(engine || '').trim().toLowerCase();
}
function get (engine, videoCode) {
const value = results.get(keyFor(engine, videoCode));
if (!value) { return null; }
return Object.assign({}, value, {
data: Array.isArray(value.data) ? value.data.slice() : [],
cached: true,
});
}
function set (engine, videoCode, result) {
const value = Object.assign({}, result || {}, {
engine: engine,
data: Array.isArray(result && result.data) ? result.data.slice() : [],
cachedAt: Date.now(),
});
results.set(keyFor(engine, videoCode), value);
return get(engine, videoCode);
}
function getPending (engine, videoCode) {
return pending.get(keyFor(engine, videoCode)) || null;
}
function setPending (engine, videoCode, request) {
pending.set(keyFor(engine, videoCode), request);
}
function clearPending (engine, videoCode, request) {
const key = keyFor(engine, videoCode);
if (pending.get(key) === request) { pending.delete(key); }
}
return Object.freeze({
get: get,
set: set,
getPending: getPending,
setPending: setPending,
clearPending: clearPending,
});
})();
// ============================================================
// 脚本3(JAV老司机 3.8.9)完整代码:无限滚动 + 磁力链接 + 多站跳转 + 评分 + 排版 + 115离线
// ============================================================
// 【合并协调】脚本3延迟300ms执行,确保脚本2的预告片/video.js初始化先完成,避免DOM冲突
setTimeout(function () {
'use strict';
const EMPTY_IMAGE_DATA = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAB4CAMAAABsOSjPAAAAn1BMVEUAAAD/lgD/x3f/zoj/nRH/3Kr/+e7/sD//68z/1Zj/qzP/skT/uVX/9eX/pCL/oh3/wGb/8d3/4LL/5Lv/2aL/tUv/kAD/0o//9uj/v2L/mQn//vv//Pf/rjf/+vL/1pn/2pT/mAX/kwD/+/X/9OH/4rb/qzD/qSX/mAH/6sn/6cL/26f/y4D/nxr/vV7/uU//wnH/7tb/1YX/wEL/nypWdfcGAAAAAXRSTlMAQObYZgAABOdJREFUeNrs2F1TgkAYhmGeRMRWLbDlS5BAUPysqf7/b6sYt600dQ8a3nW4T3Teo2uWHRYw2tquMOiU5mhDl64ADR36jdZhsVv0X7XoFn2iFt2iT9Si/wG93AxY73Q8fLAooW2GizI7MRm0j4tLCiJoBTPyN4sE2s6h0o4EmkMprySAXmaK6CcC6A0UG1nNowdQLFo2j2aQmTxMKpyrbB7dk5rd54VfLXAmlxI6NOqKrUZocygOG43QXEycSB90KCZTUx90Mvk6bvRBV+P95F6jPY1RUQ9SrW55uPOdqR3id3kUEUYDkZkdmu8da731KrLoI3mPxkfDV486Ovthrps800aPUrs7l2ZR6uV00XPrc2GZMMtWC7Lo26Aez7gwyyxGFJ0MxWHOhVlmlW7pugE1dL03hPpl/y/wA2KfxX6gk++62cSoixkShxba9fuywjgsfgKwHZNCHyuYfVtvjjqfOHqdSWHMsG8XU0Z3I6Av98ZXi5vOR5uNQxDtVoBQzzhk+f63Sw+9juQenjKiz9Pj/oNsnQ4qYeNpZ0H1JYBBsWzVPPoZim2L5tElFOsRuOXFc6iVEkAbXSiVTCigjRAKmTaNE/G9nfNtbRsGwnjudBKW5Gk2ZtCtsJcb7N2+/5ebHv1JXROEkkFxih6IkSr57ufrnaQ2Ia93UP/4c5pt3Ar16dvfE509XpT/Hb62FX593852YHp9+dLWz3MfTfc686cQbmpAD+iGBvSAbmhAD+iGBvSAbmhAD+iGBvSAbuhjoDdKErYPmDSBttISWRvzhJI899m1tDShFRW5B6AnomBqSzXn3fWWANPchDbMMxF74segq3khf/h3X3g3b+Ek02V3aUFX+2QuD2l9e6vFH35VimjaQaPTr7mVHtW+XB6TAXRO5uVgRP8fNPdCM81WyCsp0dOeiBaDGY4o28GgqB00C7l8s5RhHx8iUFK4BW0dkdMpoyY493E4TJ5ydFUgCoFUL/RMQkViriXKGKgIS26pN2ht4a1Az7WkpZg5FuIGs8XBlrocp2uC59LNsv3QlO/2uH9DgwEINws7kmSdWWqZAE7jQRSMlGGPJULzgnv0EVqn1W9B6WP2CqcuuaJkZioOSN8BHVZHHoZtZIELXEL8cQ7JQrIiVXgPfXGYBCOeJKWGOmYEoANHpUBbuPKANrUFCy6aVWkJNdIPzYBzIArx4hBPQJucDj72HYVdduThtMXQpsjF4SVX0RFaJ9LqJLl0FTqatQgDPNdlowNaXyPtk5EKyPl2kzyuggdBytj96pGjKiTLFdqRugFt3kFzju+a/Sm0MnTOvP5IAzVlAeotxF6YLlYigaDAHfh8gpw8rhU6Q0U5pIdGKekMvd2ABqCCWcYMC9S5ACAxVS38diEaR1kqBwoGcImvrAAbUC7J2ny/eVtAgw1yZUjfgjZCZXE3lOUL9BxdrVIdNKEnKuIYX1egLZy4sphMBq0ggAB13bprOCu1zwsWCqORHmiXM8hSn9HCZ/aspdC000Nx1npZGVXFKl0AwmwvVuU5a4lcXgOqlLqy8ARUZnUcgnjXMdcjiI4ty7q4W9kWHjXx2oDul+rdiU/yR4C28SV9B5SzQJtr0nfoLNDlIOFNz9zTQKfi031TzwN9hwb0gG5oQA/oDxR9iq80ehI9PfQT6amhh4Y+k/4BYXA+w/0JM4sAAAAASUVORK5CYII=';
const JAVDB_ITEM_SELECTOR = '.movie-list.v.cols-4.vcols-8 .item, .movie-list.v.cols-4.vcols-5 .item, .movie-list.h.cols-4.vcols-8 .item, .movie-list.h.cols-4.vcols-5 .item';
const BTSOW_DOMAIN = 'btsow.motorcycles';
const JAVDB_DOMAIN = 'javdb368.com';
const TORRENTKITTY_DOMAIN = 'www.torrentkitty.one';
const MMTV_DOMAIN = '7mmtv.sx';
const JAVLIB_DOMAIN = 'r86m.com';
// 115用户ID
let jav_userID = GM_getValue('jav_user_id', 0);
// icon图标
// 公开版使用脚本内置图标,避免从未固定版本的远程分支加载资源。
let icon = EMPTY_IMAGE_DATA;
// 瀑布流状态:1:开启、0:关闭
let waterfallScrollStatus = GM_getValue('scroll_status', 1);
// 当前网页域名
let domain = location.host;
// 数据库
let javDb;
// 表
let myMovie;
/**
* 对Date的扩展,将 Date 转化为指定格式的String
* 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,/';
* 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
* 例子:(new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423f
* (new Date()).Format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18
* @param {string} fmt 日期格式
* @returns {void | string} 格式化后的日期字符串
*/
Date.prototype.Format = function (fmt) { //author: meizz
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"h+": this.getHours(), //小时
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt))
fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
};
/**
* 多线程异步队列 依赖 jQuery 1.8+
* @param {Number} n 正整数, 线程数量
*/
function Queue(n) {
n = parseInt(n, 10);
return new Queue.prototype.init((n && n > 0) ? n : 1)
}
Queue.prototype = {
init: function (n) {
this.threads = [];
this.taskList = [];
while (n--) {
this.threads.push(new this.Thread)
}
},
/**
* @param {Function} callback promise对象done时的回调函数,它的返回值必须是一个promise对象
*/
push: function (callback) {
if (typeof callback !== 'function') return;
var index = this.indexOfIdle();
if (index != -1) {
this.threads[index].idle(callback);
//try { console.log('Thread-' + (index+1) + ' accept the task!') } catch (e) {}
} else {
this.taskList.push(callback);
for (var i = 0, l = this.threads.length; i < l; i++) {
((thread, self, id) => {
thread.idle(() => {
if (self.taskList.length > 0) {
//try { console.log('Thread-' + (id+1) + ' accept the task!') } catch (e) {}
let promise = self.taskList.shift()(); // 正确的返回值应该是一个promise对象
return promise.promise ? promise : $.Deferred().resolve().promise();
} else {
return $.Deferred().resolve().promise();
}
})
})(this.threads[i], this, i);
}
}
},
indexOfIdle: function () {
var threads = this.threads,
thread = null,
index = -1;
for (var i = 0, l = threads.length; i < l; i++) {
thread = threads[i];
if (thread.promise.state() === 'resolved') {
index = i;
break;
}
}
return index;
},
Thread: function () {
this.promise = $.Deferred().resolve().promise();
this.idle = (callback) => {
this.promise = this.promise.then(callback)
}
}
};
Queue.prototype.init.prototype = Queue.prototype;
/**
* 公用类
*/
class Common {
static init() {
// 是否新版本
let isNewVersion = Common.compareVersions(GM_info.script.version, GM_getValue("javOldDriver_version", "0.0.1"));
// 磁链访问地址初始化
if (isNewVersion || GM_getValue('btsow_url', undefined) === undefined) {
GM_setValue('btsow_url', BTSOW_DOMAIN);
}
if (isNewVersion || GM_getValue('btdig_url', undefined) === undefined) {
GM_setValue('btdig_url', 'www.btdig.com');
}
if (isNewVersion || GM_getValue('nyaa_url', undefined) === undefined) {
GM_setValue('nyaa_url', 'sukebei.nyaa.si');
}
if (isNewVersion || GM_getValue('torrentkitty_url', undefined) === undefined) {
GM_setValue('torrentkitty_url', TORRENTKITTY_DOMAIN);
}
if (isNewVersion || GM_getValue('javdb_url', undefined) === undefined) {
GM_setValue('javdb_url', JAVDB_DOMAIN);
}
if (isNewVersion || GM_getValue('javlib_url', undefined) === undefined) {
GM_setValue('javlib_url', 'www.javlibrary.com');
}
if (isNewVersion || GM_getValue('javbus_url', undefined) === undefined) {
GM_setValue('javbus_url', 'www.javbus.com');
}
if (isNewVersion || GM_getValue('avsox_url', undefined) === undefined) {
GM_setValue('avsox_url', 'avsox.click');
}
GM_setValue("javOldDriver_version", GM_info.script.version);
GM_registerMenuCommand('设置', () => { Common.openSystemConfig() });
}
static openSystemConfig() {
let scroll_true = '';
if (GM_getValue('scroll_status', 1) !== 0) {
GM_setValue('scroll_status', 1);
scroll_true = "checked";
}
let dom = `
jav各站开启瀑布流(自动加载下一页)
javdb网址
btsow网址
btdig网址
nyaa网址
torrentkitty网址
javlib网址
javbus网址
avsox网址
`;
let $dom = $(dom);
Swal.fire({
title: '脚本设置',
html: $dom[0],
confirmButtonText: '保存'
}).then((result) => {
if (result.value) {
if ($('#scroll_true')[0].checked) {
GM_setValue('scroll_status', 1);
} else {
GM_setValue('scroll_status', 0);
}
GM_setValue('btsow_url', $('#btsow_url').val());
GM_setValue('btdig_url', $('#btdig_url').val());
GM_setValue('nyaa_url', $('#nyaa_url').val());
GM_setValue('torrentkitty_url', $('#torrentkitty_url').val());
GM_setValue('javdb_url', $('#javdb_url').val());
GM_setValue('javlib_url', $('#javlib_url').val());
GM_setValue('javbus_url', $('#javbus_url').val());
GM_setValue('avsox_url', $('#avsox_url').val());
history.go(0);
}
})
}
/**
* 版本号比较方法
* 传入两个字符串,当前版本号:curV;比较版本号:reqV
* @param {string} curV 当前版本号
* @param {string} reqV 比较版本号
* @returns {boolean} 调用方法举例:compare("3.1.10","3.1.9"),将返回true
*/
static compareVersions(curV, reqV) {
if (curV && reqV) {
//将两个版本号拆成数字
var arr1 = curV.split('.'),
arr2 = reqV.split('.');
var minLength = Math.min(arr1.length, arr2.length),
position = 0,
diff = 0;
//依次比较版本号每一位大小,当对比得出结果后跳出循环(后文有简单介绍)
while (position < minLength && ((diff = parseInt(arr1[position]) - parseInt(arr2[position])) == 0)) {
position++;
}
diff = (diff != 0) ? diff : (arr1.length - arr2.length);
//若curV大于reqV,则返回true
return diff > 0;
} else {
//输入为空
console.log("版本号不能为空");
return false;
}
}
/**
* 设置cookie
* @param {string} cname 名字
* @param {string} cvalue 值
*/
static setCookie(cname, cvalue) {
let d = new Date();
d.setTime(d.getTime() + (30 * 24 * 60 * 60 * 1000));
let expires = "expires=" + d.toUTCString();
document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}
/**
* html文本转换为Document对象 https://jsperf.com/domparser-vs-createelement-innerhtml/3
* @param {string} text
* @returns {Document}
*/
static parsetext(text) {
try {
let doc = document.implementation.createHTMLDocument('');
doc.documentElement.innerHTML = text;
return doc;
} catch (e) {
alert('parse error');
}
}
/**
* 判断日期是否最近X个月份的日期
* @param {String} DateStr 日期
* @param {Number} MonthNum 月数(X)
* @returns {boolean}
*/
static isLastXMonth(DateStr, MonthNum) {
let now = new Date(); //当前日期
let compDate = new Date(DateStr);
let m2 = now.getFullYear() * 12 + now.getMonth();
let m1 = compDate.getFullYear() * 12 + compDate.getMonth();
if ((m2 - m1) < MonthNum) {
return true;
}
return false;
}
/**
* 方法: 通用chrome通知
* @param {string} title
* @param {string} body
* @param {string} icon
* @param {string} click_url
*/
static notifiy(title, body, icon, click_url) {
var notificationDetails = {
text: body,
title: title,
timeout: 3000,
image: icon,
onclick: () => {
window.open(click_url);
}
};
GM_notification(notificationDetails);
}
/**
* 发起网络请求
* @param {string} url 对象参数
* @param {string} referrer
* @param {number} timeoutInt 超时毫秒数
* @returns {Promise}
*/
static request(url, referrerStr, timeoutInt) {
return new Promise((resolve, reject) => {
console.log(`发起网址请求:${url}`);
GM_xmlhttpRequest({
url,
method: 'GET',
headers: {
"Cache-Control": "no-cache",
referrer: referrerStr
},
timeout: timeoutInt > 0 ? timeoutInt : 20000,
onload: response => { //console.log(url + " reqTime:" + (new Date() - time1));
response.loadstuts = true;
resolve(response);
},
onabort: response => {
console.log(url + " abort");
response.loadstuts = false;
resolve(response);
},
onerror: response => {
console.log(url + " error");
console.log(response);
response.loadstuts = false;
resolve(response);
},
ontimeout: response => {
console.log(`${url} ${timeoutInt > 0 ? timeoutInt : 20000}ms timeout`);
response.loadstuts = false;
response.finalUrl = url;
resolve(response);
},
});
});
}
/**
* 发起网络请求
* @param {*} details 对象参数
* @returns {Promise}
*/
static requestGM_XHR(details) {
return new Promise((resolve, reject) => {
console.log(`发起网址请求:${details.url}`);
let req = GM_xmlhttpRequest({
method: details.method ? details.method : "GET",
url: details.url,
headers: details.headers,
timeout: details.timeout > 0 ? details.timeout : 20000,
onprogress: rsp => {
if (details.onprogress && details.onprogress(rsp)) {
resolve(rsp);
req.abort();
}
},
onload: rsp => resolve(rsp),
onerror: rsp => {
console.log(`${details.url} : error`);
reject(`error`);
},
ontimeout: rsp => {
console.log(`${details.url} ${details.timeout > 0 ? details.timeout : 20000}ms timeout`);
reject(`timeout`);
}
});
});
}
/**
* 获取带-的番号
* @param {String} avid 番号如:ABP888
* @returns {String} 带-的番号
*/
static getAvCode(avid) {
//debugger;
// 带-的番号不处理,除了-0 如:DSVR-01167
if (avid.match(/-[^0]/g)) return avid;
// 999999_001,999999-001 不处理
if (avid.match(/^[0-9-_]+$/g)) return avid;
// crazyasia99999,sm999,video_999,BrazzersExxtra.99.99.99 不处理
if (avid.match(/^(crazyasia|sm|video_|BrazzersExxtra)+/gi)) return avid;
//去除开头的FC2
avid = avid.replace(/\b(FC2+)/gi, "");
let letter = avid.match(/[a-z|A-Z]+/gi);
let num = avid.match(/\d+$/gi)[0];
if (num.length > 3) {
num = num.replace(/\b(0+)/gi, ""); //去除开头的0
if (num.length < 3) {
num = (Array(3).join(0) + num).slice(-3);
}
}
return letter.toString().replace(/,/g, "-") + "-" + num;
}
/**
* 通过图片或视频url解析出DmmId
* @param {String} url 带DmmId的图片或视频url
* @returns {String} DmmId的番号
*/
static getDmmId(url) {
//let url = "https://pics.dmm.co.jp/digital/video/1mtall028/1mtall028-2.jpg";
let array = url.split("/");
let dmmId = array[array.length - 2];
//结尾数字串
let num = dmmId.match(/\d+$/gi);
//前缀
let prefix = dmmId.replace(num, "");
if (num) {
//非00开头的数字同时字符数小于5的,添加00开头
if (!num[0].match(/^00/) && num[0].length < 5) {
num = '00' + num;
}
return prefix + num;
} else {
return null;
}
}
/**
* 根据avid转成dmmId即cid
* @param {string} avid 番号
* @returns {string} dmmId dmm的cid番号
*/
static avIdToDmmId(avid) {
// todo:待优化
return avid;
}
/**
* 获取查询onejav的url
* @param {string} avid 番号
* @returns {string} 返回符合onejav查询番号参数的url
*/
static getOneJavSearchUrl(avid) {
//FC2-PPV-9999999 => 9999999 , ABP-999 => ABP999
avid = avid.replace(/-|FC2|PPV/g, "");
return "https://onejav.com/search/" + avid;
}
/**
* 获取查询blogjav的番号处理过后的查询字符
* @param {string} avid 番号
* @returns {string} 返回番号处理过后的查询字符
*/
static getBlogJavSearchVal(avid) {
//FC2-PPV-9999999 => FC2+PPV+9999999 , HEYZO-9999 => HEYZO+9999
let cd = avid.replace(/-/g, "+");
// 不含空格的情况,同时只含有字母与数字
if (!(/\s+/g).test(cd) && (/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]+$/g).test(cd)) {
// ABP999 => ABP+999
// 取结尾数字
let num = cd.match(/\d+$/gi);
//前缀
let prefix = cd.replace(num, "");
cd = prefix + "+" + num;
}
return cd;
}
/**
* 获取查询jav321的url
* @param {string} avid 番号
* @returns {Promise} 返回符合Jav321查询番号参数的url
*/
static getJav321SearchUrl(avid) {
// 测试 todo
return new Promise((resolve, reject) => {
GM_xmlhttpRequest({
method: "POST",
url: 'https://www.jav321.com/search',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
data: "sn=" + avid,
timeout: 20000,
onload: (r) => resolve(r.finalUrl),
onerror: (r) => reject(`查找jav321的 ${avid} 出错了`),
ontimeout: (r) => reject(`查找jav321的 ${avid} 超时了`)
});
});
}
/**
* 获取查询javstore的url
* @param {string} avid 番号
* @returns {Promise} 返回符合JavStore查询番号参数的url
*/
static getJavStoreSearchUrl(avid) {
let promise1 = Common.request(`https://javstore.net/search/${avid}.html`);
return promise1.then((result) => {
if (!result.loadstuts) return;
let doc = Common.parsetext(result.responseText);
// 查找包含avid番号的a标签数组
let a_array = $(doc).find(`.news_1n li h3 span a`);
let a = a_array[0];
//如果找到全高清大图优先获取全高清的
for (let i = 0; i < a_array.length; i++) {
// 筛选匹配的番号数据 FC2-PPV-9999999 => 正则/FC2.*PPV.*9999999/gi
let reg = RegExp(avid.replace(/-/g, ".*"), "gi");
if (a_array[i].title.search(reg) > 0) {
if (!a) a = a_array[i];
let search_idx = a_array[i].title.search(/Uncensored|FHD|4K|Mosaic/i);
// 是否更新的链接
if ( parseInt(a_array[i].href.match(/\d+/)[0]) > parseInt(a.href.match(/\d+/)[0]) && search_idx >= 0) {
a = a_array[i];
}
}
}
return a ? `https://javstore.net${a.pathname}` : null;
});
}
/**
* jav321链接加入鼠标点击打开页面事件
* @param {jQuery} $ele 链接元素
* @param {String} avid 番号
* @returns {jQuery} 链接元素
*/
static jav321LinkMousedown($ele, avid) {
$ele.mousedown((e) => {
//鼠标左键 0 鼠标中键滚轮 1
if (e.button < 2) {
Common.getJav321SearchUrl(avid).then((url) => {
if (url && !(/https:\/\/www.jav321.com\/search/).test(url)) {
GM_openInTab(url, { active: !e.button, insert: true, setParent: true });
} else {
Common.notifiy(`Jav321查无此番号: ${avid}`, '换个JAV站点查找试试吧!', icon, "");
}
}).catch((errMsg) => Common.notifiy(errMsg));
}
});
return $ele;
}
/**
* javstore链接加入鼠标点击打开页面事件
* @param {jQuery} $ele 链接元素
* @param {String} avid 番号
* @returns {jQuery} 链接元素
*/
static javstoreLinkMousedown($ele, avid) {
$ele.mousedown((e) => {
//鼠标左键 0 鼠标中键滚轮 1
if (e.button < 2) {
//FC2-PPV-9999999 => FC2+PPV+9999999 , HEYZO-9999 => HEYZO+9999
avid = avid.replace(/-/g, "+");
Common.getJavStoreSearchUrl(avid).then((url) => {
if (url) {
GM_setValue(url, avid);
GM_openInTab(url, { active: !e.button, insert: true, setParent: true });
} else {
Common.notifiy(`JavStore查无此番号: ${avid}`, '换个JAV站点查找试试吧!', icon, "");
}
});
}
});
return $ele;
}
/**
* 加入AV预览内容图使用的CSS
*/
static addAvImgCSS() {
GM_addStyle(`
.min {max-height: 535px;height:auto;cursor: pointer;} /*Common.addAvImg使用*/
.max {min-width: 1520px;} /*Common.addAvImg使用*/
`);
}
/**
* 加入AV预览内容图
* @param {string} avid av唯一码
* @param {function} func 函数
* @param {boolean} isZoom 是否放大,默认true
*/
static addAvImg(avid, func, isZoom) {
let p = Common.getBigPreviewImgUrlFromBlogjav(avid);
let p2 = Common.getBigPreviewImgUrlFromJavStore(avid);
p.then(imgUrl => {
if (!imgUrl || imgUrl === null) {
addJavArchiveImg.call(this);
return;
}
Common.requestGM_XHR({
method: 'HEAD',
url: imgUrl,
headers: { 'referrer': imgUrl.replace(/^(https?:\/\/[^\/#&]+).*$/, '$1') },
timeout: 5000
}).then(result => {
if (result.status == 200 && (imgUrl.replace(/^https?:\/\//, '') == result.finalUrl.replace(/^https?:\/\//, '') || result.finalUrl.search(/removed.png/i) < 0)) {
GM_deleteValue(`temp_img_url_${avid}`);
addImg(imgUrl, func, isZoom);
Promise.resolve();
} else {
return Promise.reject("error");
}
}).catch(msg => {
console.log("blogjav获取的图片地址已经被移除或加载失败" + msg);
addJavArchiveImg.call(this);
});
function addJavArchiveImg() {
p2.then(url => {
imgUrl = GM_getValue(`temp_img_url_${avid}`, "");
if (imgUrl === "") {
console.log(`${avid} 没有找到预览图`);
addImg(EMPTY_IMAGE_DATA, func, false);
} else {
GM_deleteValue(`temp_img_url_${avid}`);
addImg(imgUrl, func, isZoom);
}
});
}
function addImg(targetImgUrl, func, isZoom) {
console.log("显示的图片地址:" + targetImgUrl);
//创建img元素,加载目标图片地址
//创建新img元素
let className = "max";
if (isZoom != undefined && !isZoom) {
className = "min";
}
let $img = $(` `);
$img.attr("src", targetImgUrl);
$img.attr("style", "float: left;cursor: pointer;");
$img.click(function () {
if ($(this).hasClass('max')) {
$(this).attr("class", 'min');
this.parentElement.parentElement.scrollIntoView();
}
else {
$(this).attr("class", 'max');
}
});
//将新img元素插入指定位置
func($img);
}
});
}
/**
* 根据番号从blogjav获取大预览图Url
* @param {string} avid av唯一码
* @returns {Promise} 大预览图Url地址
*/
static getBigPreviewImgUrlFromBlogjav(avid) {
// oneJav 取消获取blogjav预览图
if ((/(OneJAV)/g).test(document.title)) {
return Promise.resolve(null);
}
//请求搜索blogjav.net的番号
return Common.searchBing(Common.getBlogJavSearchVal(avid),"blogjav.net","&mkt=zh-TW")
// .then(a => {
// if (a) {
// return Promise.resolve(a);
// } else {
// return Common.request(`https://blogjav.net/?s=${Common.getBlogJavSearchVal(avid)}`, "", 15000).then((result) => {
// if (!result.loadstuts) {
// console.log("从blogjav查找番号出错");
// return null;
// }
// var doc = Common.parsetext(result.responseText);
// let a_array = $(doc).find(".entry-title a");
// let a = null;
// console.log("avid:" + avid);
// //如果找到全高清大图优先获取全高清的
// for (let i = 0; i < a_array.length; i++) {
// if (i == 5) break;
// // 筛选匹配的番号数据 mium-999 => 正则/mium.*999/gi
// let reg = RegExp(avid.replace(/-/g, ".*"), "gi");
// if (a_array[i].innerHTML.search(reg) > 0) {
// if (!a) a = a_array[i];
// var fhd_idx = a_array[i].innerHTML.search(/FHD/i);
// if (fhd_idx > 0) {
// a = a_array[i];
// break;
// }
// }
// };
// return Promise.resolve(a);
// });
// }
//})
.then(url => {
let targetImgUrl = "";
if (url.length > 0) {
//请求调用内页详情的访问地址
return Common.request(url, "https://pixhost.to/", 15000).then((result) => {
if (!result.loadstuts) return null;
let doc = Common.parsetext(result.responseText);
let img_array = $(doc).find('.entry-content a img[data-lazy-src*="imagetwist."],.entry-content a img[data-lazy-src*="pixhost."],.entry-content a img[data-src*="pixhost."]');
//如果找到内容大图
if (img_array.length > 0) {
//debugger;
var new_img_src = $(img_array[img_array.length - 1]).data('src')//.data('lazySrc');
targetImgUrl = new_img_src.replace('thumbs', 'images').replace('//t', '//img').replace(/[\?*\"*]/, '').replace('/th/', '/i/');
if (/imagetwist/gi.test(targetImgUrl)) targetImgUrl = targetImgUrl.replace('.jpg', '.jpeg');
console.log("blogjav获取的图片地址:" + targetImgUrl);
if (targetImgUrl.length === 0) {
return null;
} else {
return targetImgUrl;
}
} else {
return null;
}
});
} else {
return Promise.resolve(null);
}
});
}
/**
* 根据番号从JavStore获取大预览图Url,并且缓存到GM中
* @param {string} avid av唯一码
*/
static getBigPreviewImgUrlFromJavStore(avid) {
//异步请求搜索JavStore的番号
GM_setValue(`temp_img_url_${avid}`, "");
return Common.searchBing(avid,"javstore.net","&mkt=ja-JP").then(javUrl => {
if (javUrl.length > 0) {
//异步请求调用内页详情的访问地址
return Common.request(javUrl, "http://pixhost.to/").then((result) => {
if (!result.loadstuts) return;
let doc = Common.parsetext(result.responseText);
let img_array = $(doc).find('.news a font[size*="+1"],.news a img[alt*=".th"]');
if (img_array.length > 0) {
let imgUrl = img_array[img_array.length - 1].parentElement.href;
if(img_array[0].tagName === 'IMG'){
imgUrl = img_array[img_array.length - 1].src;
imgUrl = imgUrl ? imgUrl : img_array[0].dataset.src;
imgUrl = imgUrl.replace('pixhost.org', 'pixhost.to').replace('.th', '')
.replace('thumbs', 'images').replace('//t', '//img').replace(/[\?*\"*]/, '');
}
return Common.requestGM_XHR({
method: 'HEAD',
url: imgUrl,
headers: { 'referrer': imgUrl.replace(/^(https?:\/\/[^\/#&]+).*$/, '$1') },
timeout: 5000
}).then(result => {
if (result.status == 200 && (imgUrl.replace(/^https?:\/\//, '') == result.finalUrl.replace(/^https?:\/\//, '') || result.finalUrl.search(/removed.png/i) < 0)) {
console.log("javstore获取的图片地址:" + imgUrl);
GM_setValue(`temp_img_url_${avid}`, imgUrl);
return Promise.resolve(imgUrl);
} else {
console.log("javstore获取的图片地址已经被移除或加载失败");
return Promise.resolve();
}
});
}
});
} else {
return Promise.resolve();
}
});
}
/**
*
* @param {string} key
* @param {string} site
* @returns {Promise} Promise内实现异步返回参数url
*/
static searchBing(key,site,other) {
return Common.request(`https://www.bing.com/search?q=site:${site}+${key}${other}`, "", 3000).then((result) => {
if (!result.loadstuts) {
console.log(`从bing查找${site}番号出错`);
return Promise.resolve("");
}
var doc = Common.parsetext(result.responseText);
let a_array = $(doc).find("#b_results .b_algo h2 a"); //$(doc).find("#rso span a");google
let url = "",b = true;
//如果找到全高清大图优先获取全高清的
for (let i = 0; i < a_array.length; i++) {
if (i == 5)
break;
// 筛选匹配的番号数据 mium-999 => 正则/mium.*999/gi
let reg = RegExp(key.replace(/\+/g, ".*").replace(/-/g, ".*"), "gi");
if (a_array[i].innerHTML.search(reg) >= 0) {
if (url.length == 0) url = a_array[i].href;
var search_idx = a_array[i].innerHTML.search(/Uncensored|FHD|4K|Mosaic/i);
// 是否更新的链接,针对javstore
if((/(javstore)/g).test(site) && parseInt(a_array[i].href.match(/\d+/)[0]) < parseInt(url.match(/\d+/)[0])) b = false ;
if ( b && search_idx >= 0) {
url = a_array[i].href;
}
}
};
return new Promise(resolve => { resolve(url)});
});
}
/**
* 获取Dmm对应番号的数据
* @param {string} dmmIdUrl DmmId网址
* @returns {Promise} Promise内实现异步返回参数dmmData
*/
static getDmmData(dmmIdUrl) {
if (!dmmIdUrl) return Promise.resolve(null);
//异步请求dmm的番号页面
return Common.requestGM_XHR({
url: dmmIdUrl,
timeout: 15000,
headers: {
"Accept-Language": "ja-JP", //突破dmm地区访问限制,部分作品限制日本ip访问,例如STARS-706
"cookie": "age_check_done=1;" //跳过18岁以上限制
},
}).then((result) => {
var doc = Common.parsetext(result.responseText);
let dmmData = {};
dmmData.collect_num = $(doc).find(".tx-count span").text();
dmmData.score = $(doc).find(".d-review__average strong").text();
dmmData.user_num = $(doc).find(".d-review__evaluates strong").text();
dmmData.url = dmmIdUrl;
dmmData.finalUrl = result.finalUrl;
return dmmData;
}).catch(msg => {
return {};
});
}
/**
* 获取JavDb对应番号的数据
* @param {string} avid av编号
* @returns {Promise} Promise内实现异步返回参数javdbData
*/
static getJavDbData(avid) {
return new Promise((resolve, reject) => {
let promise = Common.request("https://" + GM_getValue('javdb_url') + "/search?f=all&q=" + avid);
promise.then((result) => {
if (!result.loadstuts) {
console.log("javdb获取番号数据出错");
}
let doc = Common.parsetext(result.responseText);
let a = $(doc).find(`.box .video-title:contains('${avid.toUpperCase()}')`);
if (a.length) {
let javdbData = {};
javdbData.score = $(a[0].parentElement).find('.score>span').text();
if(a[0].parentElement.href.indexOf("http") >= 0) {
javdbData.url = a[0].parentElement.href.replace(location.origin, 'https://' + [GM_getValue('javdb_url')]);
} else {
javdbData.url = 'https://' + [GM_getValue('javdb_url')] + a[0].parentElement.href;
}
resolve(javdbData);
} else {
reject("javdb没查找到此番号");
}
});
});
}
/**
* 查询115网盘是否拥有番号
* @param {string} javId 番号
* @param {Function} callback 回调函数
*/
static search115Data(javId, callback) {
if (!areAccountIntegrationsEnabled()) {
callback(false, null, null);
return;
}
//异步请求搜索115番号 //115查询
let javId2 = javId.replace(/(-)/g, ""); //把番号-去除,例如ABC-123 =》 ABC123
let javId3 = javId.replace(/(-)/g, "00"); //把番号-替换为00,例如CCVR-065 =》 CCVR00065
let javId4 = javId.replace(/(-)/g, "-0"); //把番号-替换为-0,例如DSVR-584 =》 DSVR-0584
let javId5 = javId.replace(/(-0)/g, "-"); //把番号-替换为-0,例如VRKM-01057 =》 VRKM-1057
let javId6 = javId.replace(/(-)/g, "0"); //把番号-替换为0,例如VRKM-1192 =》 VRKM01192
let javId_Key = javId.replace(/(-)/g, "+"); //把番号-替换为+,例如VRKM-1192 =》 VRKM+1192
//保存查询关键词参数
GM_setValue("115_search_var", `${javId}|${javId2}|${javId3}|${javId4}|${javId5}|${javId6}`);
let promise1 = Common.request(`https://webapi.115.com/files/search?search_value=${javId_Key}&format=json&limit=100`,"",3000);
promise1.then((result) => {
if(result.loadstuts){
let resultJson = JSON.parse(result.responseText);
if (resultJson.count > 0) {
let pickcode = '';
let reg = new RegExp(GM_getValue("115_search_var"), "gi");
for (let i = 0; i < resultJson.data.length; i++) {
let row = resultJson.data[i];
if (row.play_long && (row.n.search(reg) >= 0)) { //iv vdi ico play_long
pickcode = row.pc;
callback(true, `https://v.anxia.com/?pickcode=${pickcode}`, pickcode);
return;
}
}
}
}
callback(false, null, null);
});
}
/**
* 查询夸克网盘是否拥有番号
* @param {string} javId 番号
* @returns {Promise} Promise内返回参数resultData
*/
static searchQuarkData(javId) {
if (!areAccountIntegrationsEnabled()) {
return Promise.resolve({ isHave: false });
}
//异步请求搜索夸克番号
let javId2 = javId.replace(/(-)/g, " "); //把番号-去除,例如ABC-123 =》 ABC 123
let javId3 = javId.replace(/(-)/g, "00"); //把番号-替换为00,例如CCVR-065 =》 CCVR00065
let javId4 = javId.replace(/(-)/g, "-0"); //把番号-替换为-0,例如DSVR-584 =》 DSVR-0584
//保存查询关键词参数
GM_setValue("quark_search_var", `${javId}|${javId2}|${javId3}|${javId4}`);
let p1 = Common.request(`https://drive.quark.cn/1/clouddrive/file/search?pr=ucpro&fr=pc&q=${javId2}&_page=1&_size=50&_fetch_total=1&_sort=file_type:desc,updated_at:desc&_is_hl=1`,"",3000);
return p1.then((result) => {
if(result.loadstuts){
let resultJson = JSON.parse(result.responseText);
if (resultJson.status == 200 && resultJson.metadata._count > 0) {
let reg = new RegExp(GM_getValue("quark_search_var"), "gi");
for (let i = 0; i < resultJson.data.list.length; i++) {
let row = resultJson.data.list[i];
if (row.duration && (row.file_name.search(reg) >= 0)) { //时长、文件名判断
return Promise.resolve({
isHave: true,
playUrl: `https://pan.quark.cn/list#/video/${row.fid}`,
pickcode: row.fid
});
}
}
}
}
return Promise.resolve({ isHave: false });
});
}
/**
* 查找番号是否存在于缓存
* @param {string} javId 番号
* @returns {boolean}
*/
static browseJavidHasCache(javId) {
return GM_getValue("myBrowseJavidArray", '[]').indexOf(javId) > 0 ? true : false;
}
/**
* 保存番号到GM缓存
* @param {string} javId 番号
*/
static addBrowseJavidCache(javId) {
if (!this.browseJavidHasCache(javId)) {
let myBrowseJavidArray = JSON.parse(GM_getValue("myBrowseJavidArray", '[]'));
myBrowseJavidArray.push(javId);
GM_setValue("myBrowseJavidArray", JSON.stringify(myBrowseJavidArray));
}
}
static getSchemaBuilder() {
// 构造jav库
let ds = lf.schema.create('jav_v3', 5);
// 创建MyMovie表
ds.createTable('MyMovie').
//addColumn('id', lf.Type.INTEGER).
//索引编码 如javlikqu54
addColumn('index_cd', lf.Type.STRING).
//识别编码 如CHN-141 番号
addColumn('code', lf.Type.STRING).
//缩略图路径
addColumn('thumbnail_url', lf.Type.STRING).
//片名
addColumn('movie_name', lf.Type.STRING).
//演员
addColumn('actor', lf.Type.STRING).
//封面图路径
addColumn('cover_img_url', lf.Type.STRING).
//预览图路径
addColumn('prev_img_url', lf.Type.STRING).
//发布日期
addColumn('release_date', lf.Type.STRING).
//评分
addColumn('score', lf.Type.STRING).
//片长(分钟)
addColumn('duration', lf.Type.INTEGER).
//导演
addColumn('director', lf.Type.STRING).
//制作商
addColumn('maker', lf.Type.STRING).
//发行商
addColumn('publisher', lf.Type.STRING).
//加入时间
addColumn('add_time', lf.Type.STRING).
//115的pickcode
addColumn('pick_code', lf.Type.STRING).
//是否已阅
addColumn('is_browse', lf.Type.BOOLEAN).
//是否想要 0:否 1:是 2:未知
addColumn('is_want', lf.Type.INTEGER).
//是否看过 0:否 1:是 2:未知
addColumn('is_seen', lf.Type.INTEGER).
//是否拥有 0:否 1:是 2:未知
addColumn('is_have', lf.Type.INTEGER).
//是否同步
addColumn('is_sync', lf.Type.BOOLEAN).
//定义主键
addPrimaryKey(['index_cd']).
//定义索引
addIndex('idxaddtime', ['add_time'], false, lf.Order.DESC);
return ds;
}
};
class Jav {
/**
* 加载数据 todo 改进
* @param {String} pageName 访问网页名
*/
static loadData(pageName, queue) {
Common.toString();// 无此步骤Common作用域失效,暂时未知原因
let todo = async () => { // todo 190628
await this.loadPageNumData(pageName, 1);
for (let i = 2; i < GM_getValue(pageName + "_pageNum") + 1; i++) {
queue.push(() => {
let defer = $.Deferred();
this.loadPageNumData(pageName, i).then(() => {
defer.resolve();
});
return defer.promise();
});
}
};
return todo();
}
static loadPageNumData(pageName, PageNum) {
let url = location.origin + "/cn/" + pageName + ".php?&sort=added&page=" + PageNum;// console.log("打开链接url:" + url);
let commonClass = Common;// 无此步骤Common作用域失效,暂时未知原因
let promise1 = Common.request(url);
promise1.then((result) => {
return new Promise(resolve => {
if ($.type(result) !== "function" && result.status !== 200) {
return resolve();
}
let doc = result.responseText;
//设置初始化总页数
if (PageNum == 1) {
let docArr = doc.split("的影片: ");
let totalNum = parseInt(docArr[1].substring(0, docArr[1].search(/<\/div/)));
GM_setValue(pageName + "_pageNum", parseInt((totalNum + 19) / 20));
}
let tableText = doc.substring(doc.search(//), doc.search(//));
// //
let $movList = $(commonClass.parsetext(tableText)).find("tr");
let indexArrStr = "0";
let timeArrStr = "0";
let myBrowseJson = "";
for (let i = 1; i < $movList.length; i++) {
let movie = $movList.get(i);
let $aEle = $($(movie).children("td.title").find("a").get(0));
// 索引编码
let index_cd = $aEle.attr("href").split("=")[1];
// 番号
let code = $aEle.attr("title").match(/^[A-Za-z0-9-]+/g);
// 创建时间
let add_time = $($(movie).children("td").get(2)).text();
indexArrStr = indexArrStr + index_cd + ',';
timeArrStr = timeArrStr + add_time + "|";
myBrowseJson = myBrowseJson + `{"index_cd":"${index_cd}","code":"${code}","add_time":"${add_time}"},`;
}
// 保存当前页的json格式数据
GM_setValue(pageName + "_myBrowseJson" + result.finalUrl.split("page=")[1], myBrowseJson);
console.log("处理完url:" + location.origin + "/ja/" + pageName + ".php?&sort=added&page=" + PageNum);
resolve();
});
});
return promise1;
}
/**
* 合并json数据
* @param {string} pageName 访问网页名
*/
static mergeJson(pageName) {
// 读取访问指定网页的页数量
var p = GM_getValue(pageName + "_pageNum");
if (p > 0) {
GM_setValue(pageName + "_myBrowseJsonAll", "");
// 循环合并Json,以同步方式保存.
let loopMerge = async () => {
for (let i = 1; i < p; i++) {
let tempJson = GM_getValue(pageName + "_myBrowseJson" + i);
if (tempJson && tempJson !== "") {
await new Promise(resolve => {
GM_setValue(pageName + "_myBrowseJsonAll", GM_getValue(pageName + "_myBrowseJsonAll") + tempJson);
resolve();
})
}
}
};
return loopMerge().then(() => {
console.log("doNum:" + (GM_getValue("doNum") + 1) + " --" + pageName);
GM_setValue("doNum", GM_getValue("doNum") + 1);
});
}
}
/**
* JSON数组去重
* @param {Array} array Array
* @param {string} key 唯一的key名,根据此键名进行去重
* @param {function} func
*/
static uniqueArray(array, key, func) {
var result = [array[0]];
for (var i = 1; i < array.length; i++) {
var item = array[i];
var repeat = false;
for (var j = 0; j < result.length; j++) {
if (item[key] == result[j][key]) {
func(item, result[j]);
repeat = true;
break;
}
}
if (!repeat) {
result.push(item);
}
}
return result;
}
/**
* javbus详情页磁链列表增加复制、115离线快捷键功能函数
*/
static javbusUs() {
$('#magnet-table tbody tr td[colspan="4"]').attr("colspan", "5");
let tr_array = $('#magnet-table tr[height="35px"]');
for (var i = 0; i < tr_array.length; i++) {
let trEle = tr_array[i];
let magnetUrl = $(trEle).find("td a")[0].href;
$(trEle).append(" ");
$(trEle).append(" ");
$(trEle).attr("maglink", magnetUrl);
$(trEle).find(".nong-copy")[0].addEventListener('click', thirdparty.nong.magnet_table.handle_event, false);
$(trEle).find(".nong-offline-download")[0].addEventListener('click', thirdparty.nong.magnet_table.handle_event, false);
}
}
/**
* 初始化同步保存数据方法
*/
static syncSaveData() {
GM_setValue("doNum", 0);//console.log("saveData");
let pm1 = this.mergeJson("mv_wanted");
let pm2 = this.mergeJson("mv_watched");
let pm3 = this.mergeJson("mv_owned");
Promise.all([pm1, pm2, pm3]).then(() => {
console.log("mergeJson处理完毕");
if (GM_getValue("doNum") === 3) {
let j1 = GM_getValue("mv_wanted_myBrowseJsonAll");
let j2 = GM_getValue("mv_watched_myBrowseJsonAll");
let j3 = GM_getValue("mv_owned_myBrowseJsonAll");
//let myBrowseAll = j3.substring(0, j3.length - 1);
let myBrowseAll = j1 + j2 + j3.substring(0, j3.length - 1);
let myBrowseArray = JSON.parse("[" + myBrowseAll + "]");
//json数组去重
myBrowseArray = this.uniqueArray(myBrowseArray, "index_cd", (item, resultObj) => {
if (item["add_time"] < resultObj["add_time"]) {
resultObj["add_time"] = item["add_time"];
}
});
GM_setValue("myBrowseAllData", JSON.stringify(myBrowseArray));
//应同步的总数
GM_setValue("myBrowseAllNum", myBrowseArray.length);//console.log(JSON.stringify(myBrowseArray));
let startTime = new Date();//console.log("startTime: " + startTime);
let b = GM_getValue(domain + "_stepTwo_V3", false);
if (!b) {
let jsonObj;
let row;
for (let i = 0; i < myBrowseArray.length; i++) {
jsonObj = myBrowseArray[i];
row = myMovie.createRow({
'index_cd': jsonObj.index_cd,
'code': jsonObj.code,
'release_date': '',
'duration': '',
'director': '',
'maker': '',
'score': '',
'actor': '',
'cover_img_url': '',
'thumbnail_url': '',
'prev_img_url': '',
'movie_name': '',
'publisher': '',
'add_time': jsonObj.add_time,
'pick_code': '',
'is_browse': true,
'is_want': 2,
'is_seen': 2,
'is_have': 2,
'is_sync': false
});
javDb.insertOrReplace().into(myMovie).values([row]).exec();
Common.addBrowseJavidCache(jsonObj.code);
}
// 如果保存影片数量大于等于需同步总数,则同步完成
if (GM_getValue(domain + "_saveMovieNum", 0) >= myBrowseArray.length) {
GM_setValue(domain + "_stepTwo_V3", true);
GM_setValue(domain + "_doDataSyncStepAll_V3", true);
}
console.log(domain + "_stepTwoTime:" + (new Date() - startTime));
return Promise.resolve();
}
}
});
}
static getMovie($doc) {
return {
index_cd: $('#video_title a', $doc).attr('href').split("v=")[1],
code: $('.header', $doc)[0].nextElementSibling.textContent,
release_date: $('#video_date .text', $doc).text(),
duration: $('#video_length .text', $doc).text(),
director: $('#video_director .text', $doc).text(),
maker: $('#video_maker .text', $doc).text(),
score: $('#video_review .text .score', $doc).text(),
actor: $('#video_cast .text', $doc).text(),
cover_img_url: $('#video_jacket_img', $doc).attr("src").replace("http://", "").replace("https://", ""),
thumbnail_url: $('#video_jacket_img', $doc).attr("src").replace("http://", "").replace("https://", "").replace("pl", "ps"),
prev_img_url: "",
movie_name: $('#video_title a', $doc).text(),
publisher: $('#video_label .text a', $doc).text(),
add_time: (new Date()).Format("yyyy-MM-dd hh:mm:ss"),
pick_code: '',
is_browse: true,
is_want: ($('#subscribed .smallbutton.hidden', $doc).length > 0) ? 1 : 0,
is_seen: ($('#watched .smallbutton.hidden', $doc).length > 0) ? 1 : 0,
is_have: ($('#owned .smallbutton.hidden', $doc).length > 0) ? 1 : 0,
is_sync: true
}
}
/**
* 同步movie信息到myMovie表中
* @param result 页面响应结果
*/
static syncMovie(result) {
let commonClass = Common;// 无此步骤Common作用域失效,暂时未知原因
let $doc = $(commonClass.parsetext(result.responseText));
let movie = Jav.getMovie($doc);
let myBrowseJsonArray = JSON.parse(GM_getValue("myBrowseAllData", "[]"));
if (myBrowseJsonArray.length > 0) {
let jsonObj = myBrowseJsonArray.filter((p) => {
return p.index_cd == result.finalUrl.split("v=")[1];
});
if (jsonObj.length > 0) movie.add_time = jsonObj[0].add_time;
}
let row = myMovie.createRow(movie);
javDb.insertOrReplace().into(myMovie).values([row]).exec();
}
/**
* javlib记录已阅影片
*/
static javlibSaveData(AVID, pickcode, pm_mater) {
//console.log($(document));
let movie = Jav.getMovie($(document));
movie.pick_code = pickcode;
let newId = Common.getAvCode(AVID);
Common.addBrowseJavidCache(AVID);
if(AVID !== newId) Common.addBrowseJavidCache(newId);
pm_mater.then(() => {
//查找是否存在此番号数据
return javDb.select().from(myMovie).where(myMovie.index_cd.eq(movie.index_cd)).exec()
.then((results) => {
if (results.length > 0) movie.add_time = results[0].add_time;
let row = myMovie.createRow(movie);
javDb.insertOrReplace().into(myMovie).values([row]).exec();
console.log(`${movie.code} 已经存入已阅影片`);
});
});
}
/**
* 针对页面的番号信息增加功能及样式修改. javlib和javbus共同使用
* @returns {string} 番号
*/
static getAvidAndChgPage() {
let AVID = $('.header')[0].nextElementSibling.textContent;
// 实现点击番号复制到系统剪贴板 todo 181221v1
$('.header')[0].nextElementSibling.id = "avid";
$('#avid').empty().attr("title", "点击复制番号").attr("avid", AVID);
let a_avid = document.createElement('a');
$(a_avid).attr("href", "#").append(AVID);
$(a_avid).click(() => {
GM_setClipboard($('#avid').attr("avid"));
});
$('#avid').append(a_avid);
$('#avid').after("(←点击复制) ");
$($('.header')[0]).attr("class", "header_hobby");
return AVID;
}
static waterfallButton() {
// 瀑布流ui按钮
let a3 = document.createElement('a');
(waterfallScrollStatus > 0) ? $(a3).append('关闭瀑布流 ') : $(a3).append('开启瀑布流 ');
$(a3).css({
"color": "blue",
"font": "bold 12px monospace"
});
$(a3).attr("href", "#");
$(a3).click(function () {
if ((/关闭/g).test($(this).html())) {
GM_setValue('scroll_status', 0);
} else {
GM_setValue('scroll_status', 1);
}
window.location.reload();
});
return a3;
}
static javlibaryScript() {
let a3 = this.waterfallButton();
if ((/(JAVLibrary)/g).test(document.title)) {
//数据库初始化 start01
var pm_mater = Common.getSchemaBuilder().connect({
storeType: lf.schema.DataStoreType.INDEXED_DB
}).then((database) => {
javDb = database;
myMovie = javDb.getSchema().table('MyMovie');
//javDb.delete().from(myMovie).exec();// 清空MyMovie表数据.
return javDb.select().from(myMovie).where(myMovie.is_browse.eq(true)).exec();
}).then((results) => {
console.log("已经保存已阅影片数量:" + results.length);
GM_setValue(domain + "_saveMovieNum", results.length);
// results.forEach(function(row) {
// console.log(row['index_cd'],'|',row['code'],'|', row['add_time'],'|',row['movie_name']);
// });
if (document.URL.indexOf("bestrated") > 0) {
$(".left select").after(" 只看近两月份 ");
$(".left select").after(" 只看当前月份 ");
$(".left select").after(" 不看我阅览过(上个月) ");
$(".left select").after(" 不看我阅览过(全部) ");
//todo
} else if (document.URL.indexOf("vl_newrelease") > 0 || document.URL.indexOf("vl_update") > 0
|| document.URL.indexOf("vl_genre") > 0 || document.URL.indexOf("vl_mostwanted") > 0) {
$(".displaymode .right").prepend("只看9分以上 ");
$(".displaymode .right").prepend("只看8分以上 ");
$(".displaymode .right").prepend("只看7分以上 ");
}
if ((/(bestrated|newrelease|newentries|vl_update|mostwanted|vl_star)/g).test(document.URL) ||
(/(vl_genre|vl_searchbycombo|mv_owned|mv_watched|mv_wanted|mv_visited)/g).test(document.URL) ||
(/(vl_label|vl_maker|vl_director|vl_searchbyid|userwanted|userowned)/g).test(document.URL)) {
// 指定站点页面加入瀑布流控制按钮
$(".displaymode .right").prepend($(a3));
// 瀑布流脚本
thirdparty.waterfallScrollInit();
let a1 = document.createElement('a');
$(a1).append('按【VR】+评分排序 ');
$(a1).css({
"color": "blue",
"font": "bold 12px monospace"
});
$(a1).attr("href", "#");
$(a1).click(() => {
let div_array = $("div.videos div.video");
div_array.sort((a, b) => {
let a_score = parseFloat($(a).children("a").attr("score"));
let b_score = parseFloat($(b).children("a").attr("score"));
if (a_score > b_score) {
return -1;
} else if (a_score === b_score) {
return 0;
} else {
return 1;
}
});
div_array.sort((a, b) => {
let a_val = $(a).children("a").attr("title").indexOf("【VR】") >= 0 ? 1 : 0;
let b_val = $(b).children("a").attr("title").indexOf("【VR】") >= 0 ? 1 : 0;
if (a_val > b_val) {
return -1;
} else if (a_val === b_val) {
return 0;
} else {
return 1;
}
});
// 删除Dom列表数据关系,重新添加排序数据
div_array.detach().appendTo("#waterfall");
});
let a2 = $(a1).clone();
$(a2).html('按时间排序 ');
$(a2).click(() => {
let div_array = $("div.videos div.video");
div_array.sort((a, b) => {
let a_time = new Date($(a).children("a").attr("release_date").replace(/-/g, "\/")).getTime();
let b_time = new Date($(b).children("a").attr("release_date").replace(/-/g, "\/")).getTime();
let a_score = parseFloat($(a).children("a").attr("score"));
let b_score = parseFloat($(b).children("a").attr("score"));
if (a_time > b_time) {
return -1;
} else if (a_time === b_time) {
return (a_score > b_score) ? -1 : 1;
} else {
return 1;
}
});
// 删除Dom列表数据关系,重新添加排序数据
div_array.detach().appendTo("#waterfall");
});
$(".displaymode .right").prepend($(a2));
$(".displaymode .right").prepend($(a1));
}
});
//JavWebSql.DBinit();
if ($('a[href="myaccount.php"]').length) {
// 已经登录
// 从未同步过,同步云数据到本地数据库
let isSync = GM_getValue(domain + "_doDataSyncStepAll_V3", false);
console.log(domain + " 是否同步过:" + isSync);
if (!isSync) {
pm_mater.then(() => {
return new Promise(resolve => {
var hasStepOne = GM_getValue(domain + "_stepOne_V3", false);
let stepOneStartTime = new Date();
console.log(domain + " 同步是否完成第一步:" + hasStepOne);
if (!hasStepOne) {
// 立即下载数据
GM_setValue("mv_wanted_pageNum", 0);
GM_setValue("mv_watched_pageNum", 0);
GM_setValue("mv_owned_pageNum", 0);
//start02 todo lovefieldDB
// 创建请求队列 //浏览器对同一域名进行请求的最大并发连接数:chrome为6
let queue = new Queue(7);
// 读取想要的影片
this.loadData("mv_wanted", queue);
// 读取看过的影片
this.loadData("mv_watched", queue);
// 读取拥有的影片
this.loadData("mv_owned", queue);
// 延迟1秒运行定时循环函数
setTimeout(() => {
// 定时循环函数,当队列执行完成时结束
var s4 = setInterval(() => {
//console.log("queue.taskList.length : " + queue.taskList.length);
if (queue.taskList.length == 0) {
let end_num = 0;
for (let i = 0, l = queue.threads.length; i < l; i++) {
if (queue.threads[i].promise.state() === 'resolved') {
end_num++;
}
}
if (end_num == queue.threads.length) {
GM_setValue(domain + "_stepOne_V3", true); // todo 需打开
console.log(domain + "_stepOneTime:" + (new Date() - stepOneStartTime));
clearInterval(s4);
return resolve();
}
}
}, 300);
}, 1000);
} else {
return resolve();
}
});
}).then(() => {
this.syncSaveData();
});
}
// 增加同步数据到本地的触发按钮
}
// 新增VR发行、FC2发行菜单入口
$('.menul1 ul li:contains("新发行")').after('FC2发行 ');
$('.menul1 ul li:contains("新发行")').after('VR发行 ');
// 处理javlib番号详情页面的脚本
if ($('.header').length && $('meta[name="keywords"]').length) {
//获取番号影片详情页的番号 例如:http://www.javlibrary.com/cn/?v=javli7j724
let AVID = this.getAvidAndChgPage();
window.onload = () => {
$('iframe').remove();
};
let pickcode = '';
//增加预览图片大图链接
let imgs = $('.previewthumbs>img').clone();
$('.previewthumbs>img').remove();
imgs.each((i, img) => {
$('.previewthumbs').eq(0).append(`${img.outerHTML} `);
});
//加入坐标div,辅助插入元素
$('#video_genres').before(`
`);
let $div_zuobiao = $('#zuobiao');
console.log("番号输出:" + AVID);
//加入预览JAV全片截图
Common.addAvImg(Common.getAvCode(AVID), ($img) => {
// http://www.javlibrary.com/cn/?v=javlilzo4e
let divEle = $("div[id='video_title']")[0]; // todo 190604
if (divEle) {
$(divEle).after(
''
);
$('#hobby_div_left').append($('#video_jacket_info'));
$('#hobby_div_left').append($('#video_favorite_edit'));
$('#hobby_div_right').append($img);
}
}, true);
// 挊
thirdparty.nong.searchMagnetRun();
//加入dmm评分数据
if (imgs.length) {
let dmmId = Common.getDmmId(imgs[0].src);
if (!dmmId) {
dmmId = Common.avIdToDmmId(AVID);
}
Common.getDmmData(`https://www.dmm.co.jp/digital/videoa/-/detail/=/cid=${dmmId}/`).then((dmmData) => {
$div_zuobiao.before(addLinkHtml(dmmData));
function addLinkHtml(dmmData) {
return `
${dmmData.score.replace("点", "分")} , ${dmmData.user_num}人评, ${dmmData.collect_num}收藏
`;
}
});
}
//加入javdb评分数据
let p3 = Common.getJavDbData(Common.getAvCode(AVID));
p3.then((javdbData) => {
let score = javdbData.score.trim().replace("由", "").replace("人評價", "人评");
$div_zuobiao.after(`
`);
}).catch(errMsg => { console.log(errMsg); });
let $div_video_cast = $('#video_cast');
//加入Jav跳转
$div_video_cast.after(`
`);
// javstoreLink
let $span = $(`JavStore `);
$('#linkJump').prepend(Common.javstoreLinkMousedown($span, AVID));
//加入在线预览跳转
$div_video_cast.after(`
`);
$('#watched .smallbutton').html("放弃了");
$('#watched .smalldarkbutton.hidden').html("我放弃这片了");
//查找115是否有此番号
Common.search115Data(AVID, (BOOLEAN_TYPE, playUrl, pc) => {
if (BOOLEAN_TYPE) {
let $imgObj = $('#video_jacket_img');
pickcode = pc;
$imgObj.after(`
`);
$('#owned button[class="smallbutton"]').click();
}
// 只支持javlibray处理已阅影片
this.javlibSaveData(AVID, pickcode, pm_mater);
});
//查找夸克是否有此番号
Common.searchQuarkData(AVID).then(result => {
if (result.isHave) {
let $imgObj = $('#video_jacket_img');
$imgObj.after(`
`);
$('#owned button[class="smallbutton"]').click();
}
// 只支持javlibray处理已阅影片
this.javlibSaveData(AVID, pickcode, pm_mater);
});
//标题去除超链接
$('#video_title h3').after($('#video_title a'));
$('#video_title h3').text($('#video_title a').text());
$('#video_title a').empty();
}//番号影片详情页处理end
}
}
static javBusScript() {
let a3 = this.waterfallButton();
if ((/(JavBus|AVMOO|AVSOX)/g).test(document.title) || $("footer:contains('JavBus')").length) {
GM_addStyle(`
.info p {line-height: 18px!important;}
.screencap img{ width:100%; max-width: 1000px;}
`);
// 新增FC2菜单入口
$('#navbar ul.nav.navbar-nav li:eq(0)').after(`FC2 `);
// 新增VR菜单入口
$('#navbar ul.nav.navbar-nav li:eq(0)').after('VR ');
// 指定站点页面加入瀑布流控制按钮
let li_elem = document.createElement('li');
$(li_elem).append($(a3));
// JavBus
$(".visible-md-block").closest(".dropdown").after($(li_elem));
// AVMOO|AVSOX
$(".active").closest(".navbar-nav").append($(li_elem));
// JavBus 广告由 JavBusAdFilter 统一处理,以便支持动态节点与菜单开关。
// 瀑布流脚本
thirdparty.waterfallScrollInit();
//获取番号影片详情页的番号 例如:https://www.javbus.com/AVVR-323
if ($('.header').length && $('meta[name="keywords"]').length) {
let AVID = this.getAvidAndChgPage();
Common.addBrowseJavidCache(AVID);
//加入坐标div,辅助插入元素
$('p.header').before('
');
let $p_zuobiao = $('#zuobiao');
console.log("番号输出:" + AVID);
// JavBus 详情页预览图由 SecureImagePreview 独占管理。
// 旧 Common.addAvImg 会异步创建 #javRealImg,失败时在页尾留下橙色占位图。
let divEle = $(".col-md-3.info")[0];
if (divEle) {
$(divEle).attr("id", "video_info");
}
// 挊
thirdparty.nong.searchMagnetRun();
//加入dmm评分数据
let a_imgs = $('#sample-waterfall>a');
if (a_imgs.length && !$('a.avatar-box[href*="uncensored"]').length && !location.hostname.includes('javbus.org')
&& $('#sample-waterfall>a[href*="pics.dmm"]').length) {
let p1 = Common.getDmmData(`https://www.dmm.co.jp/digital/videoa/-/detail/=/cid=${Common.getDmmId(a_imgs[0].href)}/`);
p1.then((dmmData) => {
$p_zuobiao.before(`
${dmmData.score.replace("点", "分")}, ${dmmData.user_num}人评, ${dmmData.collect_num}收藏
`);
});
}
//加入javdb评分数据
Common.getJavDbData(AVID).then((javdbData) => {
let score = javdbData.score.trim().replace("由", "").replace("人評價", "人评");
$p_zuobiao.after(`
${score}
`);
});
//查找115是否有此番号
Common.search115Data(AVID, (BOOLEAN_TYPE, playUrl, pc) => {
if (BOOLEAN_TYPE) {
let $imgObj = $('.bigImage');
$imgObj.after(`
`);
}
});
//查找夸克是否有此番号
Common.searchQuarkData(AVID).then(result => {
if (result.isHave) {
let $imgObj = $('.bigImage');
$imgObj.after(`
`);
}
});
//加入在线预览跳转
$('.col-md-3.info').append(`
missav
7mmtv
supjav
`);
// 加入javlib的跳转链接
$('.col-md-3.info').append(`
JavLib
`);
// javstoreLink
let $a = $(`JavStore `);
$('#linkJump').append(Common.javstoreLinkMousedown($a, AVID));
// 修改javbus磁链列表头,增加两列
$('#magnet-table tbody tr').append('操作 离线下载 ');
// 先执行一次,针对已经提前加载出磁链列表结果时有效
this.javbusUs();
// 针对为提前加载出磁链列表结果,通过dom元素是否改变事件来判断是否执行功能。
// $('#magnet-table').on("DOMNodeInserted", () => {
// // 触发后关闭监听事件
// $('#magnet-table').off();
// this.javbusUs();
// });
// 使用MutationObserver API替换DOMNodeInserted
const observer = new MutationObserver((mutationsList, observer) => {
// 触发后关闭监听事件
observer.disconnect(); // 停止监听
this.javbusUs();
});
// 指定要观察的目标节点
const targetNode = document.getElementById('magnet-table');
// 配置观察选项
const config = { childList: true };
// 开始观察目标节点
observer.observe(targetNode, config);
}
}
}
static oneJavScript() {
if ((/(OneJAV)/g).test(document.title)) { //todo 190404
GM_addStyle(`
.column.is-5 {max-width: 82%;width: auto;}
.column {flex-basis: inherit;flex-grow: inherit;width: 800px;}
.container {max-width: 100%;width: 100%;}
.has-text-grey-dark {max-width: 1000px;}
.image {width: auto; max-width: 800px;}
`);
// 插入自己创建的div
$('div.container nav.pagination.is-centered').before("
");
// 将所有番号内容移到新建的div里
$('div#card').append($('div.container div.card.mb-3'));
// 瀑布流脚本
thirdparty.waterfallScrollInit();
}
}
static jav321Script() {
if ((/(^JAV321)/g).test(document.body.innerText)) { //todo 190531
Common.addAvImgCSS();
GM_addStyle(`
.col-md-3 {width: 20%;padding-left: 18px; padding-right: 2px;}
.col-xs-12,.col-md-12 {padding-left: 2px; padding-right: 0px;}
.col-md-7 {width: 79%;padding-left: 2px;padding-right: 0px;}
.col-md-9 {width: max-content;}
.col-md-offset-1 {margin-left: auto;}
.hobby {display: inline-block;float: left;}
.hobby_mov {width: 75%;}
.hobby_p {color: white;font-size: 40px;margin: 0 0 0px;display: inline-block;text-align: right;width: 100%;}
`);
$(".col-md-7.col-md-offset-1.col-xs-12 .row .col-md-3 .img-responsive:eq(0)").offsetParent().attr("class", "hobby");
$("#video_overlay_sample").offsetParent().attr("class", "hobby_mov");
// 调整div位置
$('div.col-md-7.col-md-offset-1.col-xs-12').before($('div.col-xs-12.col-md-12')[0].parentElement);
let meta = $('small')[0];
let arr = meta.textContent.split(" ");
let javID = arr[0];
//查找115是否有此番号
Common.search115Data(javID, (BOOLEAN_TYPE, playUrl, pc) => {
if (BOOLEAN_TYPE) {
let $imgObj = $('div.col-xs-12.col-md-12 img.img-responsive');
$imgObj.after(`
`);
}
//插入预览图
Common.addAvImg(javID, ($img) => {
//https://www.jav321.com/video/300mium-391
var divEle = $("div.col-md-9")[0];
//$(divEle).attr("id", "video_info");
if (divEle) {
$(divEle).after($img);
}
}, !BOOLEAN_TYPE);
Common.addBrowseJavidCache(javID);
});
$('.panel.panel-info:eq(0)').after($('.panel.panel-info:has(.table.table-striped)'));
// 修改jav321磁链列表头,增加两列
$('table.table.table-striped tbody tr:eq(0)').append('操作 离线下载 ');
//详情页磁链列表增加复制、115离线快捷键功能函数
let tr_array = $('table.table.table-striped tbody tr:gt(0)');
for (var i = 0; i < tr_array.length; i++) {
let trEle = tr_array[i];
let magnetUrl = $(trEle).find("td a")[0].href;
$(trEle).append(`
`);
$(trEle).attr("maglink", magnetUrl);
$(trEle).find(".nong-copy")[0].addEventListener('click', thirdparty.nong.magnet_table.handle_event, false);
$(trEle).find(".nong-offline-download")[0].addEventListener('click', thirdparty.nong.magnet_table.handle_event, false);
//.addEventListener('click', this.handle_event, false);
}
}
}
static javDBScript() {
if ((/(JavDB)/g).test(document.title)) {
if ($('.app-desktop-banner').length) $('.app-desktop-banner').remove();
if ($('.modal.is-active.over18-modal').length) $('.modal.is-active.over18-modal').remove();
// 修改FC2菜单入口
$('.navbar-dropdown.is-boxed .navbar-item:contains("FC2")')
.attr("href","/advanced_search?type=3&score_min=4.2&score_max=&released_start=&released_end=&actors%5B%5D=&tags%5B%5D=&p=0&d=0&d=1&c=0&s=0&i=0&v=0&commit=檢索&lm=h").attr("style","color: red;");
// 新增VR菜单入口
$('.navbar-dropdown.is-boxed .navbar-item:eq(0)')
.after('VR ');
// 瀑布流脚本
thirdparty.waterfallScrollInit();
// 非小封面列表
if (!$("#waterfall").hasClass("v cols-4 vcols-8")) {
// 如果没有,加入tabs元素
if (!$(".tabs.is-boxed").length) {
$("#waterfall").before(`
`);
}
// 加入一个锚点
$(".tabs.is-boxed").before(` `);
// 加入排序与过滤功能
$('.tabs.is-boxed').append(`
`);
$('#javtopscore').click(() => {
let div_array = $(JAVDB_ITEM_SELECTOR);
div_array.sort((a, b) => {
let a_score = parseFloat($(a).attr("score"));
let b_score = parseFloat($(b).attr("score"));
if (a_score > b_score) {
return -1;
} else if (a_score === b_score) {
return 0;
} else {
return 1;
}
});
// 删除Dom列表数据关系,重新添加排序数据
div_array.detach().appendTo("#waterfall");
$('#javtopscore').css("background-color", "#3273dc").css("color", "white");
$('#javtopusernum').css("background-color", "white").css("color", "#3273dc");
});
$('#javtopusernum').click(() => {
let div_array = $(JAVDB_ITEM_SELECTOR);
div_array.sort((a, b) => {
let a_score = parseFloat($(a).attr("usernum"));
let b_score = parseFloat($(b).attr("usernum"));
if (a_score > b_score) {
return -1;
} else if (a_score === b_score) {
return 0;
} else {
return 1;
}
});
// 删除Dom列表数据关系,重新添加排序数据
div_array.detach().appendTo("#waterfall");
$('#javtopusernum').css("background-color", "#3273dc").css("color", "white");
$('#javtopscore').css("background-color", "white").css("color", "#3273dc");
});
$('#offusernum').change(() => {
let offusernum = $('#offusernum').val();
if (offusernum) {
$(JAVDB_ITEM_SELECTOR).toArray().forEach(e => {
parseInt($(e).attr("usernum")) < parseInt(offusernum) ? $(e).hide() : $(e).show();
});
}
});
if ($("div.video-detail")) {
var AVID = $("a.button.is-white.copy-to-clipboard")[0].dataset.clipboardText;
Common.addBrowseJavidCache(AVID);
//去除广告
$("div.top-meta").remove();
//查找115是否有此番号
Common.search115Data(AVID, (BOOLEAN_TYPE, playUrl, pc) => {
if (BOOLEAN_TYPE) {
let $imgObj = $("img.video-cover");
$("div.column.column-video-cover a").before($imgObj);
$("div.column.column-video-cover a").remove();
$imgObj.after(`
`);
}
console.log("番号输出:" + AVID);
});
let mag_array = $("div.magnet-links .item");
for (var i = 0; i < mag_array.length; i++) {
let magEle = mag_array[i];
let magnetUrl = $(magEle).find("a")[0].href;
// console.log("磁链输出:" + magnetUrl);
$(magEle).find(".buttons.column").append(` 115离线 `);
$(magEle).find(".nong-offline-download")[0].addEventListener(
"click",
thirdparty.nong.magnet_table.handle_event,
false
);
}
}
}
}
}
static javStoreScript() {
if ($('.all_page_javstore1 .danhgia_thich').length) {
GM_addStyle(`
.category_news_main_right {width: 100%;}
.boxoright {width: calc((100%) - 460px)}
.boxoleft { background: #ffffff!important; width: 460px; padding: 0 5px;}
.boxoleft > div { margin: 0 0 0 0; }
.news_2n > h2 { margin: 10px 0 10px 0;}
.onlinePlayLink {font-size: large; margin: 0 0 0 38px;}
`);
// 移除左侧右侧
if ($('.category_news_left_side,.slide_exlogo,.box_left_news.news_2n')) {
$('.category_news_left_side,.slide_exlogo,.box_left_news.news_2n').remove();
}
// 显示大预览图
let img_array = $('.news a font[size*="+1"],.news a img[alt*=".th"]');
//if (img_array.length == 0) $(doc).find('.news a img[alt*=".th"]');
img_array.toArray().forEach(e => {
let imgUrl = e.parentElement.href;
if(e.tagName === 'IMG'){
imgUrl = img_array[img_array.length - 1].src;
imgUrl = imgUrl ? imgUrl : img_array[0].dataset.src;
imgUrl = imgUrl.replace('pixhost.org', 'pixhost.to').replace('.th', '')
.replace('thumbs', 'images').replace('//t', '//img')
.replace(/[\?*\"*]/, '');
}
e.parentElement.href = "#";
e.parentElement.target = "";
e.parentElement.title = "返回顶部";
$(e.parentElement).attr("style", "display: inherit;text-align: center;");
let $img = $(` `);
$(e.parentElement).append($img);
e.parentElement.removeChild(e);
});
$(".boxoleft").append(`
`);
// 挊
thirdparty.nong.searchMagnetRun();
$(".onlinePlayLink").append(`
njav
missav
7mmtv
supjav
`);
Common.addBrowseJavidCache($('.name').text().match(/[a-z|A-Z|0-9| _-]+/)[0].trim());
}
}
static quarkScript() {
if ($('.VideoDetail--content-body--1KZ6K00').length) {
GM_addStyle(`
.DetailLayout--content--14Z28Ay {width: 100%;margin-top: auto;}
.VideoDetail--content--1LYsa87 {width: 100%;}
.VideoDetail--content-body--1KZ6K00 {height: 920px;}
.AnthologyList--anthology-list--Vlx6xtN {height: auto;}
.VideoDetail--content-header--2Cto_s7 {height: auto;padding-top: 0px;}
`);
$('.DetailLayout--header-wrap--3cP6QaP').remove();
$('.VideoDetail--content--1LYsa87').append($('.VideoDetail--content-header--2Cto_s7'));
$('.VideoDetail--content--1LYsa87').append($('.VideoDetail--content-footer--3sQbRiy'));
let loop = setInterval(() => {
if ($('.AnthologyList--anthology-title--1uEdKDT').length) {
$('.AnthologyList--anthology-title--1uEdKDT').remove();
clearInterval(loop);
}
}, 500);
}
}
}
// 第三方脚本调用
var thirdparty = {
// 登录115执行脚本,自动离线下载准备步骤
login115Run: () => {
if (domain.indexOf('115.com') >= 0) {
jav_userID = GM_getValue('jav_user_id', 0); //115用户ID缓存
//获取115ID
if (jav_userID === 0) {
if (domain.indexOf('115.com') >= 0) {
if (typeof (window.wrappedJSObject.user_id) != 'undefined') {
jav_userID = window.wrappedJSObject.user_id;
GM_setValue('jav_user_id', jav_userID);
alert('115登陆成功!');
return;
}
} else {
//alert('请先登录115账户!');
Common.notifiy("115还没有登录",
'请先登录115账户后,再离线下载!',
icon,
'http://115.com/?mode=login'
);
GM_setValue('jav_user_id', 0);
}
}
if (domain.indexOf('115.com') >= 0) {
console.log('jav老司机:115.com,尝试获取userid.');
jav_userID = GM_getValue('jav_user_id', 0);
if (jav_userID !== 0) {
console.log("jav老司机: 115账号:" + jav_userID + ",无需初始化.");
return false;
}
jav_userID = $.cookie("OOFL");
console.log("jav老司机: 115账号:" + jav_userID);
if (!jav_userID) {
console.log("jav老司机: 尚未登录115账号");
return false;
} else {
console.log("jav老司机: 初始化成功");
Common.notifiy('老司机自动开车', '登陆初始化成功,赶紧上车把!', icon, "");
GM_setValue('jav_user_id', jav_userID);
}
return false;
}
}
},
// 瀑布流脚本
waterfallScrollInit: () => {
var w = new thirdparty.waterfall({});
// javbus.com、avmo.pw、avso.pw
var $pages = $('div#waterfall div.item');
if ($pages.length) {
$pages[0].parentElement.parentElement.id = "waterfall_h";
// javbus.com
if ($("footer:contains('JavBus')").length) {
w = new thirdparty.waterfall({
next: 'a#next',
item: 'div#waterfall div.item',
cont: '.masonry',
pagi: '.pagination-lg',
});
}
//avmo.pw、avso.pw
if ((/(AVMOO|AVSOX)/g).test(document.title)) {
w = new thirdparty.waterfall({
next: 'a[name="nextpage"]', //nextpage
item: 'div#waterfall div.item',
cont: '#waterfall',
pagi: '.pagination',
});
}
}
// javlibrary
var $pages2 = $('div.videos div.video');
if ($pages2.length) {
GM_addStyle(`
.videothumblist .videos .video {height: 270px;padding: 0px;margin: 4px;}
.videothumblist .videos .video .title {height: 2.8em;}
.id {height: 1.3em;overflow: hidden;}
`);
$pages2[0].parentElement.id = "waterfall";
w = new thirdparty.waterfall({
next: 'a[class="page next"]',
item: 'div.videos div.video',
cont: '#waterfall',
pagi: '.page_selector',
});
}
// onejav
var $pages3 = $('div.container div.card.mb-3');
if ($pages3.length) {
$pages3[0].parentElement.id = "waterfall";
w = new thirdparty.waterfall({
next: 'a.pagination-next.button.is-primary',
item: 'div.container div.card.mb-3',
cont: '#waterfall',
pagi: '.pagination.is-centered',
});
}
// javdb
var $pages4 = $(JAVDB_ITEM_SELECTOR);
if ($pages4.length) {
GM_addStyle(`
.container {max-width: inherit !important;}
.tags{display: block !important;}
.tag.hobby{display: block;float: right;color: #fff;line-height: 2em;}
`);
$pages4[0].parentElement.id = "waterfall";
w = new thirdparty.waterfall({
next: '.pagination .pagination-next',
item: JAVDB_ITEM_SELECTOR,
cont: '#waterfall',
pagi: '.pagination',
});
}
w.setSecondCallback((cont, elems) => {
if (location.pathname.includes('/star/') && elems) {
cont.append(elems.slice(1));
} else {
cont.append(elems);
}
});
// javlib脚本
w.setJavlibCallback((elems) => {
// hobby mod script
let filerMonth = (indexCd_id, dateString) => {
//过滤最新X月份的影片
if ($(indexCd_id).context.URL.indexOf("bestrated.php?delete") > 0) {
if ($(indexCd_id).context.URL.indexOf("bestrated.php?deleteOneMonthAway") > 0 && !Common.isLastXMonth(dateString, 1)) {
$(indexCd_id).remove();
} else if ($(indexCd_id).context.URL.indexOf("bestrated.php?deleteTwoMonthAway") > 0 && !Common.isLastXMonth(dateString, 2)) {
$(indexCd_id).remove();
}
}
}
let filerScore = (indexCd_id, score) => {
//过滤X评分以下的影片 //if(vid == 'javlikq7qu')debugger;
if ($(indexCd_id).context.URL.indexOf("?delete") > 0) {
if ($(indexCd_id).context.URL.indexOf("delete7down") > 0 && score <= 7.01) {
$(indexCd_id).remove();
} else if ($(indexCd_id).context.URL.indexOf("delete8down") > 0 && score <= 8.01) {
$(indexCd_id).remove();
} else if ($(indexCd_id).context.URL.indexOf("delete9down") > 0 && score <= 9.01) {
$(indexCd_id).remove();
}
}
}
let setbgcolor = (indexCd_id, dateString) => {
// 如果是最近两个月份的影片标上背景色
if ($(indexCd_id).context.URL.indexOf("bestrated") > 0 && Common.isLastXMonth(dateString, 2)) {
//$(indexCd_id).css("background-color", "blanchedalmond");
$('div[class="hobby_add"]', $(indexCd_id)).css("background-color", "#ffffc9");
}
}
let extCode = (indexCd_id, actor, dateString, pingfengString) => {
$(indexCd_id).find(".id").append(` ${actor}`);
let t = $(indexCd_id).find(".title").get(0); //todo v3.5.0
$(t).text().indexOf("【VR】") >= 0 ? $(t).css("background-color", "black").css("color", "white") : null;
$(indexCd_id).children("a").append(`
${dateString} ${pingfengString}
`);
$(indexCd_id).children("a").attr("release_date", dateString);
let s = 0;
let r = Math.random() / 100;
if (pingfengString.replace(/[\\(\\)]/g, "") != '') {
s = r + parseFloat(pingfengString.replace(/[\\(\\)]/g, ""));
} else {
s = 0 + r;
}
if (s >= 10) {
s = 0.01;
}
$(indexCd_id).children("a").attr("score", s);
setbgcolor(indexCd_id, dateString);
filerMonth(indexCd_id, dateString);
filerScore(indexCd_id, s);
}
if (document.title.search(/JAVLibrary/) > 0 && elems) {//javlib列表
for (let i = 0; i < elems.length; i++) {
let _vid = $(elems[i]).attr("id").replace('vid_', ''); //vid_javlikd42y
// 给列表中的影片添加鼠标点击事件
$("a", $("#vid_" + _vid)).first().mousedown((event) => {
// 判断鼠标左键或中间才执行
if (event.button < 2) {
// 设置点击后填充新的背景色peachpuff
$("#vid_" + _vid).css("background-color", "#ffe7d3");
}
});
let indexCd_id, actor, dateString, pingfengString;
let code = $(elems[i]).find('.id').text();
// 查找影片是否存在我浏览过的MyMovie表中
let prom = javDb.select().from(myMovie).
where(lf.op.and(myMovie.is_browse.eq(true), myMovie.index_cd.eq(_vid))).exec();
prom.then(results => {
//let promise1 = Promise.resolve();
//return new Promise(resolve => {
if (results.length != 0) { //存在MyMovie表中
indexCd_id = "#vid_" + results[0].index_cd;
if ($(indexCd_id).context.URL.indexOf("bestrated.php?filterMyBrowse") > 0) {
$(indexCd_id).remove();
} else {
$(indexCd_id).css("background-color", "#ffe7d3"); //hotpink,khaki,indianred,peachpuff
if (results.length != 0 && results[0].is_sync) { //已经同步过
extCode(indexCd_id, results[0].actor, results[0].release_date, results[0].score);
} else { //未同步过
getMovieInfo(true);
}
Common.addBrowseJavidCache(code);
}
}
else if (Common.browseJavidHasCache(code)) { //存在GM缓存中
getMovieInfo(true);
}
else { //都不存在
getMovieInfo(false);
}
function getMovieInfo(isSave) {
//console.log(`push:${_vid}`);
//console.log(w.queue);
w.queue.push(() => {
let defer = $.Deferred();
let promise1 = Common.request(`https://${JAVLIB_DOMAIN}/ja/?v=${_vid}`);
promise1.then((result) => {
if(result.loadstuts && result.status < 300){
indexCd_id = "#vid_" + result.finalUrl.split("=")[1]; //例如:http://www.j12lib.com/cn/?v=javlikd42a
let doc = result.responseText;
let movie_info = doc.substring(doc.search(//),
doc.search(//));
// 阻止构造Document对象时加载src内容
movie_info = movie_info.replace("src", "hobbysrc");
let $doc = $(Common.parsetext(movie_info));
actor = $('#video_cast .text .star a', $doc).text();
dateString = $('#video_date .text', $doc).text();
pingfengString = $('#video_review .text .score', $doc).text();
extCode(indexCd_id, actor, dateString, pingfengString);
// todo 1118
if (isSave) Jav.syncMovie(result);
} else {
if(result.status > 300) console.log(`${result.finalUrl} 加载出错:${result.responseXML.title}`);
}
return Promise.resolve();
}).then(() => { // 等待0.8秒执行下一个任务,受Cloudflare限制访问
setTimeout(() => {
defer.resolve();
},800);
});
return defer.promise();
});
}
});
}
}
});
w.setFourthCallback((elems) => { // todo 20190404
if (document.title.search(/OneJAV/) > 0 && elems) {
// 增加对应所有番号的Javlib的跳转链接,
for (let index = 0; index < elems.length; index++) {
let aEle = $(elems[index]).find("h5.title.is-4.is-spaced a")[0];
let avid = $(aEle).text().replace(/[ ]/g, "").replace(/[\r\n]/g, "") //去掉空格//去掉回车换行
let avcd = avid;
if (!(/(-)/g).test(avid)) {
avcd = Common.getAvCode(avid);
}
//debugger;
//修改样式
$(aEle.parentElement.parentElement).attr("style", "flex-direction: column;");
if (!(/^FC2(-)/g).test(avid)) {
// Javlib的跳转链接
$(aEle.parentElement).append(`
Javlib ");
}
// 番号预览大图
Common.addAvImg(avcd, ($img) => {
let divEle = $(elems[index]).find("div.column.is-5")[0];
if (divEle) {
$(divEle).append($img);
}
}, false);
}
}
if (((/(JavBus|AVMOO|AVSOX)/g).test(document.title) || $("footer:contains('JavBus')").length) && elems) {
if (location.pathname.search('/searchstar|/actresses|/&mdl=favor&sort=4') < 0) { //排除actresses页面
// 处理列表文字内容排版
for (let i = 0; i < elems.length; i++) {
//$(elems[i]).css("height","385px");
if ($(elems[i]).find("div.avatar-box").length > 0) continue;
let spanEle = $(elems[i]).find("div.photo-info span")[0];
let t1 = $(spanEle).html().substr($(spanEle).html().indexOf("
") + 4);
let t2 = $(spanEle).html().substr(0, $(spanEle).html().indexOf("
"));
$(spanEle).html(t1 + "
" + t2);
// 已阅番号标色
if (Common.browseJavidHasCache($(elems[i]).find(".photo-info>span>date:eq(0)").text())) {
$(elems[i]).find(".movie-box").css("background-color", "#ffe7d3");
}
// 给列表中的影片添加鼠标点击事件
$("a", $(elems[i])).first().mousedown((event) => {
// 判断鼠标左键或中间才执行
if (event.button < 2) {
// 设置点击后填充新的背景色peachpuff
$(elems[i]).find(".movie-box").css("background-color", "#ffe7d3");
}
});
}
}
}
// javdb列表内容排版处理
if ((/(JavDB)/g).test(document.title) && elems) {
elems.toArray().forEach(e => {
//移除新种标签
$(e).find(".tags.has-addons span:not(.tag.is-success,.tag.is-warning)").remove();
if ($(e).find(".tag.is-warning").length) {
$(e).find(".tag.is-warning").text("含中字");
}
let $div = $(e).find(".tags.has-addons").eq(0);
let avid = $(e).find(".video-title strong").text();
if (!$div.children().length) {
$div.append(`
. `);
}
if (!$("#waterfall").hasClass("v cols-4 vcols-8")) {
$div.append(`
avsox
JavBus
JavLib
OneJav
`);
let $a = $(`
Jav321
`);
$div.append(Common.jav321LinkMousedown($a, avid));
let $b = $(`
JavStore
`);
$div.append(Common.javstoreLinkMousedown($b, avid));
// 提取评分数、评分人数
$(e).attr("score", $(e).find('.score>span').text().match(/-?(?:\d+(?:\.\d*)?|\.\d+)/g)[0]);
$(e).attr("usernum", $(e).find('.score>span').text().match(/-?(?:\d+(?:\.\d*)?|\.\d+)/g)[1]);
// 已阅番号标色
if (Common.browseJavidHasCache(avid)) $(e).find(".video-title,.score").css("background-color", "#ffe7d3");
}
});
}
});
if ((/(JavBus|AVMOO|AVSOX)/g).test(document.title) || $("footer:contains('JavBus')").length) {
// javbus.com、avmo.pw、avso.pw 样式
GM_addStyle(`
#waterfall_h {height: initial !important;width: initial !important;flex-direction: row;flex-wrap: wrap;margin: 5px 15px !important;}
#waterfall_h .item {position: relative !important;top: initial !important;left: initial !important;float: left;}
#waterfall_h .movie-box img {position: absolute; top: -200px; bottom: -200px; left: -200px; right: -200px; margin: auto;}
#waterfall_h .movie-box .photo-frame {position: relative;} #waterfall_h .avatar-box .photo-info p {margin: 0 0 2px;}
#waterfall_h .avatar-box .photo-info {line-height: 15px; padding: 6px;height: 220px;}
#waterfall_h .avatar-box .photo-frame {margin: 10px;text-align: center;}
#waterfall_h .avatar-box.text-center {height: 195px;}//actresses页面
`);
if ($('#waterfall').length == 0 && location.pathname.search(/search/) > 0 &&
location.pathname.search(/uncensored/) < 1) {
window.location.href = $('li[role="presentation"]:eq(1) a').attr("href");
}
if (location.pathname.includes('/uncensored') || location.hostname.includes('javbus.org') || (/(AVSOX)/g).test(document.title)) {
GM_addStyle(`#waterfall_h .movie-box {width: 354px;} #waterfall_h .movie-box .photo-info {height: 105px;}`);
} else {
GM_addStyle(`#waterfall_h .movie-box {width: 167px;} #waterfall_h .movie-box .photo-info {height: 145px;}`);
}
}
},
// 瀑布流脚本
waterfall: (() => {
function waterfall(selectorcfg = {}) {
// 瀑布流脚本使用类
class Lock {
constructor(d = false) {
this.locked = d;
}
lock() {
this.locked = true;
}
unlock() {
this.locked = false;
}
}
// 创建请求队列 //浏览器对同一域名进行请求的最大并发连接数:chrome为6
this.queue = new Queue(1);
this.page_queue = new Queue(1);
this.lock = new Lock();
this.baseURI = this.getBaseURI();
this.selector = {
next: 'a.next',
item: '',
cont: '#waterfall', //container
pagi: '.pagination',
};
Object.assign(this.selector, selectorcfg);
this.pagegen = this.fetchSync(location.href);
this.anchor = $(this.selector.pagi)[0];
this._count = 0;
this._1func = (cont, elems) => {
cont.empty().append(elems);
};
this._2func = (cont, elems) => {
cont.append(elems);
};
this._3func = (elems) => { };
if ($(this.selector.item).length) {
// 开启关闭瀑布流判断
if (waterfallScrollStatus > 0) {
document.addEventListener('scroll', this.scroll.bind(this));
document.addEventListener('wheel', this.wheel.bind(this));
}
this.appendElems(this._1func);
}
}
waterfall.prototype.getBaseURI = () => {
let _ = location;
return `${_.protocol}//${_.hostname}${(_.port && `:${_.port}`)}`;
};
waterfall.prototype.getNextURL = function (href) {
let a = document.createElement('a');
a.href = href;
return `${this.baseURI}${a.pathname}${a.search}`;
};
// 瀑布流脚本
waterfall.prototype.fetchURL = function (url) {
console.log(`fetchUrl = ${url}`);
let status = 404;
const fetchwithcookie = fetch(url, { credentials: 'same-origin' });
return fetchwithcookie.then(response => {
status = response.status;
return response.text();
}).then(html => new DOMParser().parseFromString(html, 'text/html'))
.then(doc => {
let $doc = $(doc);
let elems = [];
let nextURL;
if(status < 300){
let href = $doc.find(this.selector.next).attr('href');
nextURL = href ? this.getNextURL(href) : undefined;
elems = $doc.find(this.selector.item);
for (const elem of elems) {
const links = elem.getElementsByTagName('a');
for (const link of links) {
link.target = "_blank";
}
}
// javdb列表 bug:一直有最后一页 console.log(`1 ${url}`);console.log(`2 ${nextURL}`);
if ($(JAVDB_ITEM_SELECTOR).length && (this._count !== 0) && url === nextURL) {
if ($(`#waterfall>div>a[href="${$(elems[0]).find('a.box')[0].attr('href')}"]`).length > 0) {
nextURL = undefined;
elems = [];
}
}
} else {
nextURL = $doc.url;
}
return {
nextURL,
elems
};
});
};
// 瀑布流脚本
waterfall.prototype.fetchSync = function* (urli) {
let url = urli;
do {
yield new Promise((resolve, reject) => {
if (this.lock.locked) {
reject();
}
else {
this.lock.lock();
resolve();
}
}).then(() => {
return this.fetchURL(url).then(info => {
url = info.nextURL;
return info.elems;
});
}).then(elems => {
this.lock.unlock();
return elems;
}).catch((err) => {
// Locked!
});
} while (url);
};
// 瀑布流脚本
waterfall.prototype.appendElems = function () {
let nextpage = this.pagegen.next();
if (!nextpage.done) {
nextpage.value.then(elems => {
const cb = (this._count === 0) ? this._1func : this._2func;
cb($(this.selector.cont), elems);
this._count += 1;
// hobby mod script
this._3func(elems);
this._4func(elems);
});
}
return nextpage.done;
};
// 瀑布流脚本
waterfall.prototype.end = function () {
document.removeEventListener('scroll', this.scroll.bind(this));
document.removeEventListener('wheel', this.wheel.bind(this));
let $end = $(`
The End `);
$(this.anchor).replaceWith($end);
};
waterfall.prototype.reachBottom = function (elem, limit) {
return (elem.getBoundingClientRect().top - $(window).height()) < limit;
};
//滚动条事件触发
waterfall.prototype.scroll = function () {
this.pageQueuePush();
};
//滚轮事件触发
waterfall.prototype.wheel = function () {
this.pageQueuePush();
};
waterfall.prototype.pageQueuePush = function () {
this.page_queue.push(() => {
let defer = $.Deferred();
new Promise(resolve => {
if (this.reachBottom(this.anchor, 1200) && this.appendElems(this._2func)) {
this.end();
}
resolve();
}).then(() => {
// 延迟1秒运行定时循环函数
setTimeout(() => {
// 判断域名是否当前页
if (new RegExp(JAVLIB_DOMAIN).test(domain)) {
// 定时循环函数,当队列执行完成时结束
var s4 = setInterval(() => {
if (this.queue.taskList.length == 0) {
defer.resolve();
}
}, 200);
} else {
defer.resolve();
}
}, 500);
});
return defer.promise();
});
};
waterfall.prototype.setFirstCallback = function (f) {
this._1func = f;
};
waterfall.prototype.setSecondCallback = function (f) {
this._2func = f;
};
waterfall.prototype.setJavlibCallback = function (f) {
this._3func = f;
};
waterfall.prototype.setFourthCallback = function (f) {
this._4func = f;
};
return waterfall;
})(),
// 挊
nong: {
main: {
//av信息查询类
//avsox|avmoo
jav: {
type: 0,
re: /.*movie.*/,
vid: () => {
return $('.header_hobby')[0].nextElementSibling.getAttribute("avid");
},
proc: (main) => {
var divE = $(".col-md-3.info")[0];
$(divE).after(main.cur_tab);
}
},
javbus: {
type: 0,
re: /(jav|bus|dmm|see|cdn|fan){2}\./g,
vid: () => {
var a = $('.header_hobby')[0].nextElementSibling;
return a ? a.getAttribute("avid") : '';
},
proc: (main) => {
var divE = $(".col-md-3.info")[0];
$(divE).after(main.cur_tab);
}
},
javlibrary: {
type: 0,
re: /.*\?v=jav.*/,
vid: () => {
let avid = $('#video_id')[0].getElementsByClassName('text')[0].getAttribute("avid");
return Common.getAvCode(avid);
},
proc: (main) => {
//去十八岁警告
Common.setCookie("over18", 18);
$('.socialmedia').remove();
GM_addStyle(`
#video_info {text-align: left;font: 14px Arial;min-width: 230px;max-width: 260px;padding: 0px 0px 0px 0px;}
#video_jacket_info {overflow: hidden;} //table-layout: fixed;
#coverimg {vertical-align: top;overflow: hidden;max-width: 50%;}
#javtext {vertical-align: top;width: 260px;}
#video_info td.header {width: 75px;}
#video_info td.icon {width: 0px;}
#content {padding-top: 0px;}
#video_info table {margin-top: 6px;border-bottom: 1px solid #ffffff;}
`);
var tdE = $("td[style='vertical-align: top;']")[0];
tdE.id = "coverimg";
$("td[style='vertical-align: top;']")[1].id = 'javtext';
$('#leftmenu').remove();
$('#rightcolumn').attr("style", "margin: 0px 0px 0px 0px;width: 100%;padding: initial;");
$(tdE.parentElement).append('
');
$('#hobby').append(main.cur_tab);
}
},
javstore: {
type: 0,
re: /.*javstore.*/,
vid: () => {
if (GM_getValue(document.URL, false)) {
let avid = GM_getValue(document.URL);
GM_deleteValue(document.URL);
$('.boxoleft .box_left_news.news_2n').attr("avid", avid);
return avid;
} else {
let $ele = $('.boxoleft .box_left_news.news_2n').attr("avid", $('.name').text().match(/[a-z|A-Z|0-9| _-]+/)[0].trim());
return $ele.attr('avid');
}
},
proc: (main) => {
$('.boxoleft .box_left_news.news_2n').append(main.cur_tab);
}
},
},
resource_sites: {
[GM_getValue('javdb_url')]: (kw, callback, sourceHost) => {
const host = sourceHost || GM_getValue('javdb_url');
let promise = Common.request("https://" + host + "/search?f=download&q=" + kw, "https://" + host + "/");
promise.then((result) => {
let data = [];
return new Promise((resolve, reject) => {
thirdparty.nong.search_engines.full_url = result.finalUrl;
let doc = Common.parsetext(result.responseText);
let a = $(doc).find(`.box .video-title:contains('${kw.toUpperCase().replace("+", "-")}')`);
if (a.length) {
let url = a[0].parentElement.href.replace(location.origin, 'https://' + host);
if(url.indexOf("http") < 0) {
url = 'https://' + host + url;
}
resolve(url);
}
else {
reject();
}
}).then(url => {
return Common.request(url).then(result => {
thirdparty.nong.search_engines.full_url = result.finalUrl;
let doc = Common.parsetext(result.responseText);
let t = $(doc).find('#magnets-content .item');
if (t) {
for (let elem of t) {
data.push({
"title": elem.querySelector(".magnet-name span:nth-child(1)").textContent,
"maglink": elem.querySelector(".magnet-name a:nth-child(1)").href,
"size": elem.querySelector(".magnet-name .meta") ? elem.querySelector(".magnet-name .meta").textContent : "",
"src": result.finalUrl,
});
}
}
else {
data.push({
"title": "没有找到磁链接",
"maglink": "",
"size": "0",
"src": result.finalUrl,
});
}
callback(result.finalUrl, data);
});
}).catch(() => {
callback('', []);
});
}).catch(() => callback('', []));
},
[GM_getValue('btsow_url')]: (kw, callback, sourceHost) => {
const host = sourceHost || GM_getValue('btsow_url');
let promise = Common.request("https://" + host + "/search/" + kw);
promise.then((result) => {
thirdparty.nong.search_engines.full_url = result.finalUrl;
var doc = Common.parsetext(result.responseText);
if (!doc) {
thirdparty.nong.search_engines.parse_error(host);
}
var data = [];
var t = doc.getElementsByClassName('data-list')[0];
if (t) {
var a = t.getElementsByTagName('a');
for (var i = 0; i < a.length; i++) {
if (!a[i].className.match('btn')) {
data.push({
'title': a[i].title,
'maglink': 'magnet:?xt=urn:btih:' + a[i].outerHTML.replace(/.*hash\//, '').replace(/" .*\n.*\n.*\n.*/, ''),
'size': a[i].nextElementSibling.textContent,
'src': a[i].href,
});
}
}
}
callback(result.finalUrl, data);
}).catch(() => callback('', []));
},
[GM_getValue('btdig_url')]: (kw, callback, sourceHost) => {
const host = sourceHost || GM_getValue('btdig_url');
let promise = Common.request("https://" + host + "/search?q=" + kw);
promise.then((result) => {
thirdparty.nong.search_engines.full_url = result.finalUrl;
let doc = Common.parsetext(result.responseText);
let data = [];
let t = doc.querySelectorAll("div.one_result");
if (t) {
for (let elem of t) {
data.push({
"title": elem.querySelector(".torrent_name a").textContent,
"maglink": elem.querySelector(".fa.fa-magnet a").href,
"size": elem.querySelector(".torrent_size").textContent,
"src": elem.querySelector(".torrent_name a").href,
});
}
}
else {
data.push({
"title": "没有找到磁链接",
"maglink": "",
"size": "0",
"src": result.finalUrl,
});
}
callback(result.finalUrl, data);
}).catch(() => callback('', []));
},
[GM_getValue('nyaa_url')]: (kw, callback, sourceHost) => {
const host = sourceHost || GM_getValue('nyaa_url');
let promise = Common.request("https://" + host + "/?f=0&c=0_0&q=" + kw);
promise.then((result) => {
thirdparty.nong.search_engines.full_url = result.finalUrl;
let doc = Common.parsetext(result.responseText);
if (!doc) {
thirdparty.nong.search_engines.parse_error(host);
}
let data = [];
let t = doc.querySelectorAll("tr.default,tr.success");
if (t.length !== 0) {
for (let elem of t) {
data.push({
"title": elem.querySelector("td:nth-child(2)>a:nth-child(1)").title,
"maglink": elem.querySelector("td:nth-child(3)>a:nth-last-child(1)").href,
//"torrent_url": "https://nyaa.si" + elem.querySelector("td:nth-child(3)>a:nth-child(1)").href,
"size": elem.querySelector("td:nth-child(4)").textContent,
"src": "https://" + host
+ elem.querySelector("td:nth-child(2)>a:nth-child(1)").getAttribute('href'),
});
}
}
callback(result.finalUrl, data);
}).catch(() => callback('', []));
},
[GM_getValue('torrentkitty_url')]: (kw, callback, sourceHost) => {
const host = sourceHost || GM_getValue('torrentkitty_url');
let promise = Common.request("https://" + host + "/search/" + kw);
promise.then((result) => {
thirdparty.nong.search_engines.full_url = result.finalUrl;
let doc = Common.parsetext(result.responseText);
let data = [];
let t = $(doc).find("#archiveResult tr:gt(0)");
if (t) {
for (let elem of t) {
if ((/(No result)/g).test(elem.querySelector(".name").textContent))
break;
data.push({
"title": elem.querySelector(".name").textContent,
"maglink": elem.querySelector(".action>a:nth-child(2)").href,
"size": elem.querySelector(".size").textContent,
"src": "https://" + host + elem.querySelector(".action>a:nth-child(1)").getAttribute('href'),
});
}
}
else {
data.push({
"title": "没有找到磁链接",
"maglink": "",
"size": "0",
"src": result.finalUrl,
});
}
callback(result.finalUrl, data);
}).catch(() => callback('', []));
},
},
offline_sites: {
115: {
name: '115离线',
url: 'http://115.com/?tab=offline&mode=wangpan',
enable: true,
},
},
// 挊
search_engines: {
request_serial: 0,
switch_engine: (i) => {
// var index = GM_getValue("search_index",0);
GM_setValue('search_index', i);
return i;
},
cur_engine: (kw, callback) => {
let ops = Object.keys(thirdparty.nong.resource_sites);
let selected = GM_getValue('search_index', ops[0]);
let z = thirdparty.nong.resource_sites[selected];
if (!z) {
//alert("search engine not found");
selected = ops[0];
GM_setValue('search_index', selected);
z = thirdparty.nong.resource_sites[selected];
}
return z(kw, callback, selected);
},
query_engine: (engine, kw, timeoutMs) => {
const cached = MagnetSourceResultCache.get(engine, kw);
if (cached) { return Promise.resolve(cached); }
const existingRequest = MagnetSourceResultCache.getPending(engine, kw);
if (existingRequest) { return existingRequest; }
let requestPromise;
requestPromise = new Promise((resolve) => {
const provider = thirdparty.nong.resource_sites[engine];
if (typeof provider !== 'function') {
resolve(MagnetSourceResultCache.set(engine, kw, {
engine: engine, src: '', data: [], outcome: 'missing-provider'
}));
return;
}
let settled = false;
const finish = (payload) => {
if (settled) { return; }
settled = true;
clearTimeout(timer);
resolve(MagnetSourceResultCache.set(engine, kw, payload));
};
const timer = setTimeout(() => {
finish({ engine: engine, src: '', data: [], outcome: 'timeout' });
}, timeoutMs || 12000);
try {
provider(kw, (src, data) => {
const valid = MagnetSourcePriority.validMagnetResults(data);
finish({
engine: engine,
src: src || '',
data: valid,
outcome: valid.length ? 'success' : 'empty',
});
}, engine);
}
catch (error) {
finish({ engine: engine, src: '', data: [], outcome: 'error', error: String(error && error.message || error) });
}
});
MagnetSourceResultCache.setPending(engine, kw, requestPromise);
requestPromise.finally(() => {
MagnetSourceResultCache.clearPending(engine, kw, requestPromise);
});
return requestPromise;
},
parse_error: (a) => {
alert("调用搜索引擎错误,可能需要更新,请向作者反馈。i=" + a);
},
full_url: '',
},
// 挊
magnet_table: {
template: {
create_head: () => {
var a = document.createElement('tr');
a.className = 'jav-nong-row';
a.id = 'jav-nong-head';
var list = ['标题', '大小', '操作', '离线下载'];
for (var i = 0; i < list.length; i++) {
var b = thirdparty.nong.magnet_table.template.head.cloneNode(true);
if (i === 0) {
var select = document.createElement("select");
var ops = Object.keys(thirdparty.nong.resource_sites); // todo 181225
var cur_index = GM_getValue("search_index", ops[0]);
for (var j = 0; j < ops.length; j++) {
var op = document.createElement("option");
op.value = ops[j];
op.textContent = ops[j];
if (cur_index == ops[j]) {
op.setAttribute("selected", "selected");
}
select.appendChild(op);
}
b.removeChild(b.firstChild);
b.appendChild(select);
let a3 = document.createElement('a');
$(a3).append(' 修改 ')
$(a3).css({
"color": "blue",
"font": "bold 12px monospace"
});
$(a3).attr("href", "#");
$(a3).click(() => {
Common.openSystemConfig();
});
b.append(a3);
a.appendChild(b);
continue;
}
b.firstChild.textContent = list[i];
a.appendChild(b);
}
// var select_box = this.create_select_box();
// a.firstChild.appendChild(select_box);
return a;
},
create_row: (data) => {
var a = document.createElement('tr');
a.className = 'jav-nong-row';
a.setAttribute('maglink', data.maglink);
// 暂时针对cnbtkitty.pw站点生效。
if (data.maglink.indexOf("#magnetlink") > -1) {
a.setAttribute('id', data.id);
let promise1 = Common.request(data.maglink + "?hobbyId=" + data.id);// 传递修改hobbyId,用于修改时定位。
promise1.then((result) => {
//定位磁链编码开始下标位置
let indexNum = result.responseText.indexOf('#website#infohash#');
if (indexNum >= 0) {
let magnetlink = result.responseText.substring(indexNum + 18, indexNum + 58);
let hobbyId = result.finalUrl.substring(result.finalUrl.indexOf('?hobbyId=') + 9, result.finalUrl.length);
$("#" + hobbyId).attr("maglink", "magnet:?xt=urn:btih:" + magnetlink);
}
});
}
var b = document.createElement('td');
var list = [
thirdparty.nong.magnet_table.template.create_info(data.title, data.maglink),
thirdparty.nong.magnet_table.template.create_size(data.size, data.src),
thirdparty.nong.magnet_table.template.create_operation(data.maglink),
thirdparty.nong.magnet_table.template.create_offline()
];
for (var i = 0; i < list.length; i++) {
var c = b.cloneNode(true);
c.appendChild(list[i]);
a.appendChild(c);
}
return a;
},
create_loading: () => {
var a = document.createElement('tr');
a.className = 'jav-nong-row';
var p = document.createElement('p');
p.textContent = 'Loading';
p.id = 'notice';
a.appendChild(p);
return a;
},
create_info: (title, maglink) => {
var a = thirdparty.nong.magnet_table.template.info.cloneNode(true);
a.firstChild.textContent = title.length < 20 ? title : title.substr(0, 20) + '...';
a.firstChild.href = maglink;
a.title = title;
return a;
},
create_size: (size, src) => {
var a = thirdparty.nong.magnet_table.template.size.cloneNode(true);
a.textContent = size;
a.href = src;
return a;
},
create_operation: (maglink) => {
var a = thirdparty.nong.magnet_table.template.operation.cloneNode(true);
a.firstChild.href = maglink;
return a;
},
create_offline: () => { //有用 hobby
var a = thirdparty.nong.magnet_table.template.offline();
a.className = 'nong-offline';
return a;
},
create_select_box: () => {
var select_box = document.createElement('select');
select_box.id = 'nong-search-select';
select_box.setAttribute('title', '切换搜索结果');
var search_name = GM_getValue('search', default_search_name);
for (var k in thirdparty.nong.search_engines) {
var o = document.createElement('option');
if (k == search_name) {
o.setAttribute('selected', 'selected');
}
o.setAttribute('value', k);
o.textContent = k;
select_box.appendChild(o);
}
return select_box;
},
head: (() => {
var a = document.createElement('th');
var b = document.createElement('a');
a.appendChild(b);
return a;
})(),
info: (() => {
var a = document.createElement('div');
var b = document.createElement('a');
b.textContent = 'name';
b.href = 'src';
a.appendChild(b);
return a;
})(),
size: (() => {
var a = document.createElement('a');
a.textContent = 'size';
return a;
})(),
operation: (() => {
var a = document.createElement('div');
var copy = document.createElement('a');
copy.className = 'nong-copy';
copy.textContent = '复制';
a.appendChild(copy);
return a;
})(),
offline: () => {
var a = document.createElement('div');
var b = document.createElement('a');
b.className = 'nong-offline-download';
b.target = '_blank';
for (var k in thirdparty.nong.offline_sites) {
if (thirdparty.nong.offline_sites[k].enable) {
var c = b.cloneNode(true);
c.href = thirdparty.nong.offline_sites[k].url;
c.textContent = thirdparty.nong.offline_sites[k].name;
a.appendChild(c);
}
}
return a;
},
},
create_empty_table: () => { //有用 hobby
var a = document.createElement('table');
a.id = 'nong-table-new';
return a;
},
updata_table: (src, data, type) => {
if (type == 'full') {
var tab = $('#nong-table-new')[0];
tab.removeChild(tab.querySelector("#notice").parentElement);
for (var i = 0; i < data.length; i++) {
tab.appendChild(thirdparty.nong.magnet_table.template.create_row(data[i]));
}
}
thirdparty.nong.magnet_table.reg_event();
},
full: (src, data) => {
var tab = thirdparty.nong.magnet_table.create_empty_table();
tab.appendChild(thirdparty.nong.magnet_table.template.create_head());
var loading = thirdparty.nong.magnet_table.template.create_loading();
tab.appendChild(loading);
return tab;
},
handle_event: (event) => {
var maglink = event.target.parentElement.parentElement.getAttribute('maglink')
|| event.target.parentElement.parentElement.parentElement.getAttribute('maglink')|| event.target.getAttribute("href");
if ($(event.target).hasClass("nong-copy")) {
event.target.innerHTML = '成功';
maglink = maglink.substr(0, 60);
GM_setClipboard(maglink);
setTimeout(() => {
event.target.innerHTML = '复制';
}, 1000);
event.preventDefault(); //阻止跳转
}
else if ($(event.target).hasClass("nong-offline-download")) {
maglink = maglink.substr(0, 60);
GM_setValue('magnet', maglink);
//获取115 token接口
let promise = Common.request('http://115.com/?ct=offline&ac=space&_=' + new Date().getTime());
promise.then((responseDetails) => {
if (responseDetails.responseText.indexOf('html') >= 0) {
//未登录处理
Common.notifiy("115还没有登录",
'请先登录115账户后,再离线下载!',
icon,
'http://115.com/?mode=login'
);
return false;
}
var sign115 = JSON.parse(responseDetails.response).sign;
var time115 = JSON.parse(responseDetails.response).time;
console.log("uid=" + jav_userID + " sign:" + sign115 + " time:" + time115);
console.log("rsp:" + responseDetails.response);
GM_xmlhttpRequest({
method: 'POST',
url: 'http://115.com/web/lixian/?ct=lixian&ac=add_task_url', //添加115离线任务接口
headers: {
"Content-Type": "application/x-www-form-urlencoded"
},
data: "url=" + encodeURIComponent(maglink) + "&uid=" + jav_userID + "&sign=" + sign115
+ "&time=" + time115,
onload: (responseDetails) => {
var lxRs = JSON.parse(responseDetails.responseText); //离线结果
if (lxRs.state) {
//离线任务添加成功
Common.notifiy("115老司机自动开车",
'离线任务添加成功 , 3秒后刷新本页面',
icon,
'http://115.com/?tab=offline&mode=wangpan'
);
setTimeout(() => {
location.reload();
}, 3000);
}
else {
//离线任务添加失败
if (lxRs.errcode == '911') {
lxRs.error_msg = '你的帐号使用异常,需要在线手工重新验证即可正常使用。';
}
Common.notifiy("失败了",
'请重新打开115,' + lxRs.error_msg,
icon,
'http://115.com/?tab=offline&mode=wangpan'
);
}
console.log("sign:" + sign115 + " time:" + time115);
console.log("磁链:" + maglink + " 下载结果:" + lxRs.state + " 原因:" + lxRs.error_msg);
console.log("rsp:" + responseDetails.response);
}
});
});
event.preventDefault(); //阻止跳转
}
},
reg_event: () => { // target 处理 更精准
var list = [
'.nong-copy',
'.nong-offline-download'
];
for (var i = 0; i < list.length; i++) {
var a = document.querySelectorAll(list[i]);
for (var u = 0; u < a.length; u++) {
a[u].addEventListener('click', thirdparty.nong.magnet_table.handle_event, false);
}
}
},
},
// 挊
searchRunGeneration: 0,
searchMagnetRun: (options) => {
const runOptions = options || {};
const runGeneration = ++thirdparty.nong.searchRunGeneration;
let main = thirdparty.nong.main;
let main_keys = Object.keys(main);
main.cur_tab = null;
main.cur_vid = '';
for (var i = 0; i < main_keys.length; i++) {
var v = main[main_keys[i]];
if (new RegExp(v.re).test(location.href)) {
if (v.type === 0) {
try {
main.cur_vid = v.vid();
console.log('挊的番号:', main.cur_vid);
}
catch (e) {
main.cur_vid = '';
}
if (main.cur_vid) {
GM_addStyle(`
#nong-table-new{margin:10px auto;color:#666 !important;font-size:13px;text-align:center;background-color: #F2F2F2;}
#nong-table-new th,#nong-table-new td{text-align: center;height:30px;background-color: #FFF;padding:0 5px 0;border: 1px solid #EFEFEF;}
.jav-nong-row{text-align: center;height:30px;background-color: #FFF;padding:0 5px 0;border: 1px solid #EFEFEF;}
.nong-copy{color:#08c !important;}
.nong-offline{text-align: center;}
#jav-nong-head a {margin-right: 5px;color: black;}
.nong-offline-download{color: rgb(0, 180, 30) !important; margin-right: 4px !important;}
.nong-offline-download:hover{color:red !important;}
`);
main.cur_tab = thirdparty.nong.magnet_table.full();
v.proc(main);
const select = $('#jav-nong-head select')[0];
select.addEventListener('change', (e) => {
console.log("url: http://" + e.target.value);
GM_setValue('search_index', e.target.value);
let s = $('#nong-table-new')[0];
s.parentElement.removeChild(s);
thirdparty.nong.searchMagnetRun({
preferredEngine: e.target.value,
autoFallback: true,
});
});
// JavBus 原生磁力作为首屏即时结果;外站请求仅在用户主动切换后启动。
if (!runOptions.preferredEngine && JavBusCompactWorkspace.showNativeOnOpen()) {
return;
}
const allEngines = Object.keys(thirdparty.nong.resource_sites);
if (!allEngines.length) { return; }
let preferredEngine = runOptions.preferredEngine || GM_getValue('search_index', allEngines[0]);
if (allEngines.indexOf(preferredEngine) < 0) {
preferredEngine = allEngines[0];
}
GM_setValue('search_index', preferredEngine);
select.value = preferredEngine;
const autoFallback = runOptions.autoFallback !== false;
const engines = autoFallback
? MagnetSourcePriority.orderedSources(allEngines, preferredEngine)
: [preferredEngine];
(async function () {
const failed = [];
for (let engineIndex = 0; engineIndex < engines.length; engineIndex++) {
const engine = engines[engineIndex];
if (runGeneration !== thirdparty.nong.searchRunGeneration || !document.querySelector('#nong-table-new')) { return; }
const cachedResult = MagnetSourceResultCache.get(engine, main.cur_vid);
if (!cachedResult) {
const notice = document.querySelector('#nong-table-new #notice');
if (notice) {
notice.textContent = autoFallback
? '正在查询磁力来源:' + engines[engineIndex] + '(' + (engineIndex + 1) + '/' + engines.length + ')'
: '正在查询磁力来源:' + engine;
}
}
const result = cachedResult || await thirdparty.nong.search_engines.query_engine(engine, main.cur_vid, 12000);
if (runGeneration !== thirdparty.nong.searchRunGeneration || !document.querySelector('#nong-table-new')) { return; }
const option = Array.from(select.options).find((item) => item.value === engine);
if (result.outcome === 'success' && MagnetSourcePriority.hasValidMagnetResults(result.data)) {
GM_setValue('search_index', engine);
thirdparty.nong.search_engines.full_url = result.src || '';
select.value = engine;
if (option) {
option.title = '本页已返回磁力链接';
option.dataset.result = 'success';
select.insertBefore(option, select.firstChild);
}
thirdparty.nong.magnet_table.updata_table(result.src, result.data, 'full');
const sourceLink = $('#jav-nong-head th')[1].firstChild;
if (sourceLink && result.src) { sourceLink.href = result.src; }
return;
}
failed.push({ engine: engine, outcome: result.outcome });
if (option) {
option.title = result.outcome === 'timeout' ? '本次查询超时,来源仍保留' : '本页未返回磁力链接,来源仍保留';
option.dataset.result = result.outcome;
}
}
const notice = document.querySelector('#nong-table-new #notice');
if (notice) {
notice.textContent = autoFallback
? '已检查 ' + failed.length + ' 个来源,暂未找到磁力链接;可在上方手动切换重试。'
: preferredEngine + ' 暂未找到磁力链接;其他来源仍保留在上方列表中。';
}
})();
}
}
break;
}
}
},
},
};
function mainRun() {
Common.init();
GM_addStyle(`
.tm-setting {display: flex;align-items: center;justify-content: space-between;padding-top: 20px;}
.tm-checkbox {width: 16px;height: 16px;}
.tm-text {width: 150px;height: 16px;}
`);
Jav.javStoreScript();
// 判断是否指定页面
if ((/(JAVLibrary|JavBus|AVMOO|AVSOX)/g).test(document.title) || $("footer:contains('JavBus')").length) {
Common.addAvImgCSS();
GM_addStyle(`
.container {width: 100%;float: left;}
.col-md-3 {float: left;max-width: 260px;}
.col-md-9 {width: inherit;}
.hobby-a {color: red; font: bold 12px monospace;} /*javlib*/
.footer {padding: 20px 0;background: #1d1a18;float: left;} /*javbus*/
#nong-table-new {margin: initial !important;important;color: #666 !important;font-size: 13px;text-align: center;background-color: #F2F2F2;float: left;}
.header_hobby {font-weight: bold;text-align: right;width: 75px;} /*javbus*/
`);
Jav.javlibaryScript();
Jav.javBusScript();
}
Jav.oneJavScript();
Jav.jav321Script();
Jav.javDBScript();
Jav.quarkScript();
thirdparty.login115Run();
}
mainRun();
}, 300);