itch.io "Open in app" button

"Open in app" button for itch.io

  1. // ==UserScript==
  2. // @name itch.io "Open in app" button
  3. // @namespace http://tampermonkey.net/
  4. // @version 1.1.0
  5. // @description "Open in app" button for itch.io
  6. // @author Amos Wenger
  7. // @match https://*.itch.io/*
  8. // @grant none
  9. // @license MIT
  10. // ==/UserScript==
  11.  
  12. (function() {
  13. 'use strict';
  14.  
  15. var pathTag = document.querySelector("meta[name='itch:path']");
  16. if (!pathTag) {
  17. return;
  18. }
  19.  
  20. var leftCol = document.querySelector(".left_col");
  21. if (leftCol) {
  22. var gameButton = document.createElement("div");
  23. gameButton.innerHTML = "<div class=\"uploads has_buttons\">" +
  24. "<h2>Open in app</h2>" +
  25. "<div class=\"upload\">" +
  26. "<a href=\"itchio://" + pathTag.content + "\" class=\"button\">" +
  27. "Open in app" +
  28. "</a>" +
  29. "<span style=\"padding: 0 .5em;\">or</span>" +
  30. "<a class=\"button\" href=\"https://itch.io/app\">" +
  31. "<span class=\"icon icon-download\"></span> Download the itch app" +
  32. "</a>" +
  33. "</div>" +
  34. "</div>";
  35. leftCol.insertBefore(gameButton, leftCol.querySelector(".uploads"));
  36. return;
  37. }
  38.  
  39. var userLinks = document.querySelector(".profile_column .user_links");
  40. if (userLinks) {
  41. var userButton = document.createElement("div");
  42. userButton.innerHTML = "<div class=\"user_website\"><a href=\"itchio://" + pathTag.content + "\">Open in app</a></div>";
  43. userLinks.appendChild(userButton);
  44. return;
  45. }
  46. })();