Greasy Fork is available in English.

Misskey share button for AtCoder

Add misskey share button

  1. // ==UserScript==
  2. // @name Misskey share button for AtCoder
  3. // @namespace http://kaminarinet.com/
  4. // @version 0.4.1
  5. // @description Add misskey share button
  6. // @author KA37RI
  7. // @match https://atcoder.jp/users/*
  8. // @match https://atcoder.jp/contests/
  9. // @match https://atcoder.jp/contests/*
  10. // @match https://atcoder.jp/contests/*/submissions/*
  11. // @match https://atcoder.jp/users/*/history/share/*
  12. // @icon none
  13. // @grant none
  14. // @license MIT
  15. // ==/UserScript==
  16.  
  17. (function() {
  18. let a2a = document.getElementsByClassName("a2a_kit")[0];
  19.  
  20. function makeicon(img_url, server_name) {
  21. let im = document.createElement("img");
  22. im.setAttribute("src", img_url);
  23. im.setAttribute("width", "20px");
  24. im.setAttribute("height", "20px");
  25.  
  26. let lk = document.createElement("a");
  27. lk.appendChild(im);
  28. lk.addEventListener("click", function() {
  29. let mesURL = a2a.getAttribute("data-a2a-url");
  30. let mesContent = a2a.getAttribute("data-a2a-title");
  31. if(mesContent.slice(-1) != "\n") {
  32. mesContent += "\n";
  33. }
  34. let message = encodeURIComponent(mesContent + mesURL);
  35. let share = `https://${server_name}/share?text=${message}`;
  36. window.open(share);
  37. });
  38.  
  39. a2a.appendChild(lk);
  40. }
  41.  
  42. makeicon("https://media.misskeyusercontent.jp/misskey/webpublic-0c66b1ca-b8c0-4eaa-9827-47674f4a1580.png", "misskey.io");
  43. makeicon("https://s3.isk01.sakurastorage.jp/misskey-kyoupro/misskey/757ffa6b-17ea-4bb6-b390-9b586f454eff.webp", "misskey.kyoupro.com");
  44.  
  45. }());