Gwent Tracker to Gwentify Collection

Transfer your collection to Gwentify

当前为 2017-06-17 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Gwent Tracker to Gwentify Collection
  3. // @version 0.2
  4. // @description Transfer your collection to Gwentify
  5. // @author spokomaciek
  6. // @match http://www.gwent-tracker.com/*
  7. // @match http://gwentify.com/collection-manager/
  8. // @grant GM_getValue
  9. // @grant GM_setValue
  10. // @require http://code.jquery.com/jquery-1.12.4.min.js
  11. // @require https://greasyfork.org/scripts/2199-waitforkeyelements/code/waitForKeyElements.js?version=6349
  12. // @namespace https://greasyfork.org/users/133522
  13. // ==/UserScript==
  14.  
  15. (function() {
  16. 'use strict';
  17. function addslashes( str ) {
  18. return (str + '').replace(/[\\"']/g, '\\$&').replace(/\u0000/g, '\\0');
  19. }
  20. function addCollection() {
  21. if (GM_getValue('transfer') == 'true') {
  22. console.log('Adding to collection');
  23. var cards = JSON.parse(GM_getValue('cards', '{}'));
  24. GM_setValue('transfer', 'false');
  25. var cardsD = {};
  26. cards.forEach(function(val) {
  27. if (cardsD[val] === undefined) {
  28. cardsD[val] = 1;
  29. }
  30. else {
  31. cardsD[val] += 1;
  32. }
  33. });
  34. console.log(JSON.stringify(cardsD));
  35. for (var key in cardsD) {
  36. var card = $("div[data-name=\'" + addslashes(key) + "\' i]");
  37. if (card.attr('data-ownership') === 'owned') {
  38. var amnt = Number($("div[data-name=\'" + addslashes(key) + "\' i][data-ownership='owned'] .cm-card-ct").text());
  39. if (amnt <= cardsD[key]) {
  40. for (var i = 0; i < cardsD[key] - amnt; ++i) {
  41. card.click();
  42. }
  43. }
  44. else {
  45. for (var i = 0; i < amnt - cardsD[key]; ++i) {
  46. var element = document.querySelector("div[data-name=\'" + addslashes(key) + "\']");
  47. element.dispatchEvent(new CustomEvent('contextmenu'));
  48. }
  49. }
  50. }
  51. else {
  52. for (var i = 0; i < cardsD[key]; ++i) {
  53. card.click();
  54. }
  55. }
  56. }
  57. }
  58. }
  59. function transfer() {
  60. console.log("Bookmarklet starting");
  61. var cards = $(".name").text().split('\n').map(function(u) {return u.trim().toUpperCase();}).filter(function(u) {return u !== "";});
  62. GM_setValue('transfer', 'true');
  63. GM_setValue('cards', JSON.stringify(cards));
  64. window.location.assign("http://gwentify.com/collection-manager/");
  65. }
  66.  
  67. if (location.href.match(/gwent-tracker/)) {
  68. $('body').append('<input type="button" value="Transfer collection" id="transferBtn">');
  69. $("#transferBtn").css("position", "fixed").css("top", 0).css("left", 0);
  70. $('#transferBtn').click(function() {
  71. transfer();
  72. });
  73. }
  74. else {
  75. waitForKeyElements(".db-card", addCollection);
  76. }
  77. })();