scrap.tf select all duplicate items

auto select duplicate items to sell

  1. // ==UserScript==
  2. // @name scrap.tf select all duplicate items
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.2
  5. // @description auto select duplicate items to sell
  6. // @author calculatortamer
  7. // @match https://scrap.tf/sell/weapons
  8. // @icon https://www.google.com/s2/favicons?sz=64&domain=scrap.tf
  9. // @grant none
  10. // @license MIT
  11. // ==/UserScript==
  12.  
  13. var sell_achievement_obtainable_weapons=true
  14. var sell_duplicate_weapons=true
  15. var sell_gifted=false
  16. var sell_crafted=false
  17.  
  18. function sleep(ms) {
  19. return new Promise(resolve => setTimeout(resolve, ms));
  20. }
  21.  
  22.  
  23. const tf2AchievementWeapons = [
  24. "Force-A-Nature", "Sandman", "Bonk! Atomic Punch",
  25. "Equalizer", "Direct Hit", "Buff Banner",
  26. "Flare Gun", "Backburner", "Axtinguisher",
  27. "Chargin' Targe", "Eyelander", "Scottish Resistance",
  28. "Sandvich", "Natascha", "Killing Gloves of Boxing",
  29. "Frontier Justice", "Gunslinger", "Wrangler",
  30. "Blutsauger", "Kritzkrieg", "Übersaw",
  31. "Huntsman", "Jarate", "Razorback",
  32. "Ambassador", "Cloak and Dagger", "Dead Ringer"
  33. ];
  34.  
  35. //checks if its ok to click
  36. function select_item(item){
  37. console.log(item.classList)
  38. if(item.classList.contains("gifted") && !sell_gifted){
  39. return false
  40. }
  41. if(item.dataset["content"].includes("Crafted by:") && !sell_crafted){
  42. return false
  43. }
  44. item.click()
  45. return true
  46. }
  47.  
  48. (async function() {
  49. await sleep(3000)
  50. 'use strict';
  51.  
  52. var items_container=document.getElementsByClassName("user-bp-app")[0].children[0];
  53.  
  54. //check if achievement obtainable weapons are there
  55. if(sell_achievement_obtainable_weapons){
  56. for(let wep=0;wep<tf2AchievementWeapons.length;wep++){
  57. let items=items_container.querySelectorAll('[data-title="'+tf2AchievementWeapons[wep]+'"]');
  58. for(let item=0;item<items.length;item++){
  59. select_item(items[item])
  60. }
  61. }
  62. }
  63. //check if duplicate weapons are there
  64. if(sell_duplicate_weapons){
  65. //get all weapon names
  66. let weapon_names=[]
  67. for(let i=0;i<items_container.children.length;i++){
  68. let item=items_container.children[i]
  69. let title=item.dataset["title"]
  70. if(!weapon_names.includes(title) && !tf2AchievementWeapons.includes(title)){
  71. weapon_names.push(title)
  72. }
  73. }
  74. //find all duplicate weapons
  75. for(let i=0;i<weapon_names.length;i++){
  76. let items=items_container.querySelectorAll('[data-title="'+weapon_names[i]+'"]');
  77. let items_clicked=0
  78. for(let item=0;item<items.length && items_clicked<items.length-1 ;item++){
  79. if(select_item(items[item])){
  80. items_clicked++
  81. }
  82. }
  83. }
  84. }
  85. })();