cytube_bad_urls

cytubeに独自のURLチェックを追加します

目前为 2020-07-12 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name cytube_bad_urls
  3. // @namespace https://cytube.xyz/
  4. // @version 0.1
  5. // @description cytubeに独自のURLチェックを追加します
  6. // @author utubo
  7. // @match *://cytube.xyz/*
  8. // @grant none
  9. // ==/UserScript==
  10.  
  11. (window.unsafeWindow || window).eval(` // チャンネルのJSに設定するときはこの行(と最後の行)を削除
  12. (function() {
  13. // 設定 ------------------------------------
  14. var BAD_URLS = [
  15. { startsWith:'https://www.nicovideo.jp/watch/nm', msg:'ニコニコ動画の動画IDが"nm~~"で始まるURLは未対応です。' },
  16. { startsWith:'URLがこれで始まってたらNG', msg:'サンプル1' },
  17. { regex:/URLがこの正規表現にマッチしたらNG/, msg:'サンプル2' }
  18. ];
  19. // 本体 ------------------------------------
  20. // 2重起動されたら前のはクリア
  21. var win = (window.unsafeWindow || window);
  22. if (win.BAD_URLS_HANDLER) {
  23. win.document.body.removeEventListener(win.BAD_URLS_HANDLER);
  24. }
  25. // ここからメイン
  26. var toHttps = url => url.replace('http://', 'https://');
  27. win.BAD_URLS_HANDLER = e => {
  28. if (!e.target) return;
  29. if (e.target.id !== 'queue_next' && e.target.id !== 'queue_end') return;
  30. var url = toHttps(document.getElementById('mediaurl').value);
  31. for (var badURL of BAD_URLS) {
  32. if (badURL.startsWith && url.startsWith(toHttps(badURL.startsWith)) || badURL.regex && url.match(badURL.regex)) {
  33. queueMessage({ msg: badURL.msg }, 'alert-danger');
  34. e.preventDefault();
  35. e.stopPropagation();
  36. return false;
  37. }
  38. }
  39. };
  40. win.document.body.addEventListener('click', win.BAD_URLS_HANDLER, true);
  41. })();
  42. `); // チャンネルのJSに設定するときはこの行も削除