// ==UserScript==
// @name Crabpt-Torrent-Assistant
// @namespace http://tampermonkey.net/
// @version 1.1
// @description 蟹黄堡审种
// @author crab
// @icon https://www.google.com/s2/favicons?sz=64&domain=crabpt.vip
// @match *://*.crabpt.vip/details.php*
// @match *://*.crabpt.vip/web/torrent-approval-page?torrent_id=*
// @require https://mirrors.sustech.edu.cn/cdnjs/ajax/libs/jquery/3.5.1/jquery.min.js
// @grant none
// @license MIT
// ==/UserScript==
/**
* Edit by Kesa Gisen
* 需求:
* 1. 主标题不能含有中文
* 2. 未选择/错误选择媒介
* 3. 未选择/错误选择音视频编码
* 4. 未选择/错误选择分辨率 (主标题有4K 或者 2160p 两个东西, 算一个判断)
* 5. 不搞制作组检测了 (一开始的需求是: 未选择/错误选择制作组)
* 6. 是否有在做种
* 7. 把检测结果直接填写在种子评论区吗
*/
(function () {
'use strict';
/**种子分类 */
const cat_constant = {
401: 'Movies电影',
402: 'TV Series电视剧',
403: 'TV Shows综艺',
404: 'Documentaries纪录片',
405: 'Animations动漫',
406: 'Music Videos',
407: 'Sports体育',
408: 'HQ Audio音乐',
409: 'Others其他',
410: 'Games游戏',
411: 'Study学习',
412: 'Ebook电子书',
413: 'Audiobook有声书',
414: 'Playlet短剧',
415: 'Cartoon漫画'
};
/**媒介类型 */
const type_constant = {
1: 'UHD',
2: 'Blu-ray',
3: 'Remux',
4: 'HD DVD',
5: 'HDTV',
6: 'WEB-DL',
7: 'Webrip',
8: 'DVD',
9: 'CD',
10: 'Encode',
11: 'Other',
12: 'ZIP',
13: 'EPUB/AZW3/MOBI'
};
/**视频编码类型 */
const encode_constant = {
1: 'H.264/AVC',
2: 'H.265/HEVC',
5: 'VC-1',
6: 'MPEG-2',
7: 'Other',
11: 'AV1',
12: 'VP9',
13: 'H.266/VVC',
14: 'AVS3',
15: 'AVS+'
};
/**音频编码类型 */
const audio_constant = {
1: 'DTS-HD MA',
2: 'TrueHD',
3: 'LPCM',
4: 'DTS',
5: 'DD/AC3',
6: 'AAC',
7: 'FLAC',
8: 'APE',
9: 'WAV',
10: 'MP3',
11: 'M4A',
12: 'Other',
13: 'Opus',
14: 'DDP/EAC3',
15: 'DTS-X',
16: 'AV3A',
17: 'AVSA'
};
/**分辨率 */
const resolution_constant = {
1: '2160p/4K',
2: '1080p',
3: '1080i',
4: '720p',
5: 'Others',
6: '4320/8K'
};
/**制作组 */
const group_constant = {
1: 'Other',
2: 'CHD',
3: 'HDS',
4: 'WiKi',
5: 'OurBits',
6: 'XHB',
7: 'FRDS'
};
$ = jQuery;
// 1. 从标题筛选信息------------------------------------------------------------
let title = $('#top').text();
console.log('原始title: ', title);
title = title
.replace("[免费]", "")
.replace("[2X免费]", "")
.replace("[2xfree]", "")
.replace("[50%]", "")
.replace(/剩余时间.*$/, "")
.trim();
console.log('过滤后title: ', title);
let title_lowercase = title.toLowerCase();
/**标题_媒介类型 */
let title_type;
/**标题_视频编码 */
let title_encode;
/**标题_音频编码 */
let title_audio;
/**标题_分辨率 */
let title_resolution;
/**标题_制作组 */
let title_group;
/**标题_不晓得 */
let title_is_complete;
/**标题_未检测到警告 (NOTE: 使用位运算标记) */
let title_warn_no = 0;
// medium
if (title_lowercase.indexOf("remux") !== -1) {
title_type = 3;
}
else if (title_lowercase.indexOf("x264") !== -1
|| title_lowercase.indexOf("x265") !== -1) {
title_type = 10;
title_resolution = 5;
}
else if (title_lowercase.indexOf("hdtv") !== -1) {
title_type = 5;
}
else if (title_lowercase.indexOf("uhd") !== -1) {
title_type = 1;
}
else if (title_lowercase.indexOf("hddvd") !== -1
|| title_lowercase.indexOf("hd dvd") !== -1) {
title_type = 4;
}
else if (title_lowercase.indexOf("blu-ray") !== -1
|| title_lowercase.indexOf("bluray") !== -1) {
title_type = 2;
}
else if (title_lowercase.indexOf("web-dl") !== -1) {
title_type = 6;
}
else if (title_lowercase.indexOf("webrip") !== -1) {
title_type = 7;
}
else if (title_lowercase.indexOf("dvd") !== -1) {
title_type = 8;
}
else if (title_lowercase.indexOf("cd") !== -1) {
title_type = 9;
}
else if (title_lowercase.indexOf("zip") !== -1) {
title_type = 12;
}
else if (title_lowercase.indexOf("epub") !== -1
|| title_lowercase.indexOf("azw3") !== -1
|| title_lowercase.indexOf("mobi") !== -1) {
title_type = 13;
}
else {
title_type = 11;
}
// video encode
if (title_lowercase.indexOf("h.264") !== -1
|| title_lowercase.indexOf("avc") !== -1) {
title_encode = 1;
}
else if (title_lowercase.indexOf("h.265") !== -1
|| title_lowercase.indexOf("hevc") !== -1) {
title_encode = 2;
}
else if (title_lowercase.indexOf("vc-1") !== -1) {
title_encode = 5;
}
else if (title_lowercase.indexOf("mpeg-2") !== -1) {
title_encode = 6;
}
else if (title_lowercase.indexOf("av1") !== -1) {
title_encode = 11;
}
else if (title_lowercase.indexOf("vp9") !== -1) {
title_encode = 12;
}
else if (title_lowercase.indexOf("h.266") !== -1
|| title_lowercase.indexOf("vvc") !== -1) {
title_encode = 13;
}
else if (title_lowercase.indexOf("avs3") !== -1) {
title_encode = 14;
}
else if (title_lowercase.indexOf("avs+") !== -1) {
title_encode = 15;
}
else {
title_encode = 7;
}
// audio encode
if (title_lowercase.indexOf("dts-hd ma") !== -1) {
title_audio = 1;
}
else if (title_lowercase.indexOf("truehd") !== -1) {
title_audio = 2;
}
else if (title_lowercase.indexOf("lpcm") !== -1) {
title_audio = 3;
}
else if (title_lowercase.indexOf("dts") !== -1) {
title_audio = 4;
}
else if (title_lowercase.indexOf("dd") !== -1
|| title_lowercase.indexOf("ac3") !== -1) {
title_audio = 5;
}
else if (title_lowercase.indexOf("aac") !== -1) {
title_audio = 6;
}
else if (title_lowercase.indexOf("flac") !== -1) {
title_audio = 7;
}
else if (title_lowercase.indexOf("ape") !== -1) {
title_audio = 8;
}
else if (title_lowercase.indexOf("wav") !== -1) {
title_audio = 9;
}
else if (title_lowercase.indexOf("mp3") !== -1) {
title_audio = 10;
}
else if (title_lowercase.indexOf("m4a") !== -1) {
title_audio = 11;
}
else if (title_lowercase.indexOf("opus") !== -1) {
title_audio = 13;
}
else if (title_lowercase.indexOf("ddp") !== -1
|| title_lowercase.indexOf("eac3") !== -1) {
title_audio = 14;
}
else if (title_lowercase.indexOf("dts-x") !== -1) {
title_audio = 15;
}
else if (title_lowercase.indexOf("av3a") !== -1) {
title_audio = 16;
}
else if (title_lowercase.indexOf("avsa") !== -1) {
title_audio = 17;
}
else {
title_audio = 12;
}
// resolution
if (title_lowercase.indexOf("2160p") !== -1
|| title_lowercase.indexOf("4k") !== -1) {
title_resolution = 1;
}
else if (title_lowercase.indexOf("1080p") !== -1) {
title_resolution = 2;
}
else if (title_lowercase.indexOf("1080i") !== -1) {
title_resolution = 3;
}
else if (title_lowercase.indexOf("720p") !== -1) {
title_resolution = 4;
}
else if (title_lowercase.indexOf("4320") !== -1
|| title_lowercase.indexOf("8k") !== -1) {
title_resolution = 6;
}
else {
title_resolution = 5;
}
// group
if (title_lowercase.indexOf("frds") !== -1) {
title_group = 7;
}
else if (title_lowercase.indexOf("xhb") !== -1) {
title_group = 6;
}
else if (title_lowercase.indexOf("ourbits") !== -1) {
title_group = 5;
}
else if (title_lowercase.indexOf("wiki") !== -1) {
title_group = 4;
}
else if (title_lowercase.indexOf("hds") !== -1) {
title_group = 3;
}
else if (title_lowercase.indexOf("chd") !== -1) {
title_group = 2;
}
else {
title_group = 1;
}
// 2. 检查标题异常------------------------------------------------------------
// 检查标题是否含有中文
if (/[\u4e00-\u9fa5]/.test(title)) {
title_warn_no |= 1;
}
// 检查媒介类型
if (!type_constant[title_type]) {
title_warn_no |= 2;
}
// 检查音视频编码
if (!encode_constant[title_encode]) {
title_warn_no |= 4;
}
if (!audio_constant[title_audio]) {
title_warn_no |= 8;
}
// 检查分辨率
if (!resolution_constant[title_resolution]) {
title_warn_no |= 16;
}
// 检查做种状态
let is_seeding = $('.gistop-right').text().indexOf('正在做种') !== -1;
// 3. 生成报告------------------------------------------------------------
let report = '';
// 标题信息
report += `标题: ${title}\n`;
report += `媒介类型: ${type_constant[title_type] || '未知'}\n`;
report += `视频编码: ${encode_constant[title_encode] || '未知'}\n`;
report += `音频编码: ${audio_constant[title_audio] || '未知'}\n`;
report += `分辨率: ${resolution_constant[title_resolution] || '未知'}\n`;
report += `制作组: ${group_constant[title_group] || '未知'}\n`;
// 检查结果
if (title_warn_no === 0) {
report += '检查结果: 正常\n';
} else {
report += '检查结果: 异常\n';
if (title_warn_no & 1) {
report += '- 标题含有中文\n';
}
if (title_warn_no & 2) {
report += '- 未选择或错误选择媒介类型\n';
}
if (title_warn_no & 4) {
report += '- 未选择或错误选择视频编码\n';
}
if (title_warn_no & 8) {
report += '- 未选择或错误选择音频编码\n';
}
if (title_warn_no & 16) {
report += '- 未选择或错误选择分辨率\n';
}
}
report += `是否正在做种: ${is_seeding ? '是' : '否'}\n`;
console.log(report);
// 4. 将报告填写到评论区------------------------------------------------------------
let comment = $('textarea[name="text"]');
if (comment.length) {
comment.val(report);
}
})();