jav tag copy

获取页面的tag,返回带tag的文件名 "番号标题 #tag1 #tag2.."

  1. // ==UserScript==
  2. // @name jav tag copy
  3. // @namespace https://github.com/dyxcloud
  4. // @version 0.5.8.0
  5. // @description 获取页面的tag,返回带tag的文件名 "番号标题 #tag1 #tag2.."
  6. // @author dyxlike
  7. // @include *://*javlibrary.com/*
  8. // @include *://*javlib.com/*
  9. // @include *://*javbus.com/*
  10. // @include *://*avsox.*/*
  11. // @include *://*javdb.com*/*
  12. // @grant GM_setClipboard
  13. // @license MIT
  14. // ==/UserScript==
  15.  
  16. (function() {
  17. 'use strict';
  18.  
  19. // 定义黑名单标签列表
  20. const blackTags = ['单体作品', '單體作品', '数位马赛克', '數位馬賽克'];
  21.  
  22. function javLibGetter(){
  23. let result = '';
  24. // 获取标题
  25. let title = document.querySelector('#video_title > h3').innerText;
  26. result+=title;
  27.  
  28. // 获取star
  29. let starAs = document.querySelectorAll('span.star > a');
  30. let stars = Array.from(starAs)
  31. .map(a => a.text)
  32. .join("#");
  33. if (stars !== "") {
  34. result += " #" + stars;
  35. }
  36.  
  37. // 获取发行商
  38. let label = document.querySelector('#video_label .text a').innerText;
  39. // 获取发行日期
  40. let releaseDate = document.querySelector('#video_date .text').innerText;
  41. if (label !== "" || releaseDate !== "") {
  42. result += " ";
  43. if (label !== "") {
  44. result += ("#" + label);
  45. }
  46. if (releaseDate !== "") {
  47. result += ("#" + releaseDate);
  48. }
  49. }
  50.  
  51. // 获取tag
  52. let tagAs = document.querySelectorAll('#video_genres span.genre > a');
  53. let validTags = Array.from(tagAs)
  54. .map(a => a.text)
  55. .filter(tag => !blackTags.includes(tag))
  56. .join("#");
  57. if (validTags !== "") {
  58. result += " #" + validTags;
  59. }
  60. return result;
  61. }
  62.  
  63. function javLib(){
  64. let button = document.createElement('a');
  65. button.innerText='点击复制tag文件名';
  66. button.href="#";
  67. let video_info = document.querySelector('#video_info');
  68. video_info.append(button);
  69.  
  70. button.onclick = function () {
  71. let result = javLibGetter();
  72. GM_setClipboard(result);
  73. };
  74. }
  75.  
  76. function javBusGetter(){
  77. let result = '';
  78. // 获取标题
  79. let title = document.querySelector('body > div.container > h3').innerText;
  80. console.log("title="+title);
  81. result+=title;
  82.  
  83. // 获取star
  84. let starAs = document.querySelectorAll('span.genre > a[href*="/star/"]');
  85. let stars = Array.from(starAs)
  86. .map(a => a.text)
  87. .join("#");
  88. if (stars !== "") {
  89. result += " #" + stars;
  90. }
  91.  
  92. // 获取发行商
  93. let labelAs = document.querySelectorAll('#video_info a[href*="/label/"]');
  94. let label = labelAs.length > 0 ? labelAs[0].innerText : "";
  95. // 获取发行日期
  96. let releaseDateE = document.querySelectorAll('#video_info > p:nth-child(2)');
  97. let releaseDate = releaseDateE.length > 0 ? releaseDateE[0].innerText.replace("發行日期:", "").trim() : "";
  98. if (label !== "" || releaseDate !== "") {
  99. result += " ";
  100. if (label !== "") {
  101. result += ("#" + label);
  102. }
  103. if (releaseDate !== "") {
  104. result += ("#" + releaseDate);
  105. }
  106. }
  107.  
  108. // 获取tag
  109. let tagAs = document.querySelectorAll('span.genre a[href*="/genre/"]');
  110. let validTags = Array.from(tagAs)
  111. .map(a => a.text)
  112. .filter(tag => !blackTags.includes(tag))
  113. .join("#");
  114. if (validTags !== "") {
  115. result += " #" + validTags;
  116. }
  117. return result;
  118. }
  119.  
  120. function javBus(){
  121. let button = document.createElement('a');
  122. button.innerText='点击复制tag文件名';
  123. button.href="#";
  124. let video_info = document.querySelector('body > div.container > div.row.movie > div.col-md-3.info');
  125. video_info.append(button);
  126.  
  127. button.onclick = function () {
  128. let result = javBusGetter();
  129. GM_setClipboard(result);
  130. };
  131. }
  132.  
  133. function avSoxGetter(){
  134. let result = '';
  135. // 获取标题
  136. let title = document.querySelector('body > div.container > h3').innerText;
  137. console.log("title="+title);
  138. result+=title;
  139.  
  140. // 获取star
  141. let starAs = document.querySelectorAll('#avatar-waterfall > a');
  142. let stars = Array.from(starAs)
  143. .map(a => a.children[1].innerText)
  144. .join("#");
  145. if (stars !== "") {
  146. result += " #" + stars;
  147. }
  148.  
  149. // 获取tag
  150. let tagAs = document.querySelectorAll('span.genre a[href*="/genre/"]');
  151. let validTags = Array.from(tagAs)
  152. .map(a => a.text)
  153. .filter(tag => !blackTags.includes(tag))
  154. .join("#");
  155. if (validTags !== "") {
  156. result += " #" + validTags;
  157. }
  158. result+=("#无码");
  159. return result;
  160. }
  161.  
  162. function avSox(){
  163. let button = document.createElement('a');
  164. button.innerText='点击复制tag文件名';
  165. button.href="#";
  166. let video_info = document.querySelector("div.col-md-3.info");
  167. video_info.append(button);
  168.  
  169. button.onclick = function () {
  170. let result = avSoxGetter();
  171. GM_setClipboard(result);
  172. };
  173. }
  174.  
  175. function javDbGetter(){
  176. let result = '';
  177. // 获取标题
  178. let title = document.querySelector('.title.is-4').innerText;
  179. console.log("title="+title);
  180. result+=title;
  181.  
  182. // 获取star
  183. let starAs = document.querySelectorAll('nav.panel.movie-panel-info a[href*="/actors/"]');
  184. let stars = Array.from(starAs)
  185. .map(a => a.text)
  186. .join("#");
  187. if (stars !== "") {
  188. result += " #" + stars;
  189. }
  190.  
  191.  
  192. // 获取发行商
  193. let labelAs = document.querySelectorAll('.movie-panel-info a[href*="/publishers/"]');
  194. let label = labelAs.length > 0 ? labelAs[0].innerText : "";
  195. // 获取发行日期
  196. let releaseDateE = document.querySelectorAll('.movie-panel-info > div:nth-child(2)');
  197. let releaseDate = releaseDateE.length > 0 ? releaseDateE[0].innerText.replace("日期:", "").trim() : "";
  198. if (label !== "" || releaseDate !== "") {
  199. result += " ";
  200. if (label !== "") {
  201. result += ("#" + label);
  202. }
  203. if (releaseDate !== "") {
  204. result += ("#" + releaseDate);
  205. }
  206. }
  207.  
  208.  
  209. // 获取tag
  210. let tagAs = document.querySelectorAll('nav.panel.movie-panel-info a[href*="/tags"]');
  211. let validTags = Array.from(tagAs)
  212. .map(a => a.text)
  213. .filter(tag => !blackTags.includes(tag))
  214. .join("#");
  215. if (validTags !== "") {
  216. result += " #" + validTags;
  217. }
  218. return result;
  219. }
  220.  
  221. function javDb(){
  222. let button = document.createElement('a');
  223. button.innerText='点击复制tag文件名';
  224. button.href="#";
  225. let video_info = document.querySelector(".panel.movie-panel-info");
  226. video_info.append(button);
  227. button.onclick = function () {
  228. let result = javDbGetter();
  229. GM_setClipboard(result);
  230. };
  231. video_info.append(document.createElement('br'));
  232. let button2 = document.createElement('a');
  233. button2.innerText='点击复制tag文件名(#无码)';
  234. button2.href="#";
  235. video_info.append(button2);
  236. button2.onclick = function () {
  237. let result = javDbGetter();
  238. GM_setClipboard(result+'#无码');
  239. };
  240. }
  241.  
  242. function main(){
  243. let title = document.title;
  244. if ((/JAVLib/g).test(title)) {
  245. javLib();
  246. } else if ((/JavBus/g).test(title)) {
  247. javBus();
  248. } else if ((/AVSOX/g).test(title)) {
  249. avSox();
  250. } else if ((/JavDB/g).test(title)) {
  251. javDb();
  252. }
  253. }
  254.  
  255. main();
  256.  
  257. })();