charlieweinberger / TrainwreckLabsAutomation

Automating Trainwreck Labs games (Globle, Metazooa, etc.) using web scrapers and javascript DevTools programs.
0 stars 0 forks source link
javascript web-games web-scraping

Trainwreck Labs Automation

Automated javascript solvers for Trainwreck Labs' Globle, Globle: Capitals, and Metazooa. Copy the code below and paste it into the DevTools console on your browser while playing either game, and watch it automatically guess every possible country/capital/animal in alphabetical order. To speed up or slow down the program, modify the number at the end, currently set to 500 milliseconds (Only for Globle/Globle: Capitals). Works in practice games too!

Inspired by github.com/roman015/InfiniteCraftAutomation.

Globle

const countries = ["Afghanistan", "Albania", "Algeria", "Andorra", "Angola", "Antigua and Barbuda", "Argentina", "Armenia", "Australia", "Austria", "Azerbaijan", "Bahamas", "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium", "Belize", "Benin", "Bhutan", "Bolivia", "Bosnia and Herzegovina", "Botswana", "Brazil", "Brunei", "Bulgaria", "Burkina Faso", "Burundi", "Cambodia", "Cameroon", "Canada", "Cabo Verde", "Central African Republic", "Chad", "Chile", "China", "Colombia", "Comoros", "Costa Rica", "Croatia", "Cuba", "Cyprus", "Czech Republic", "Democratic Republic of the Congo", "Denmark", "Djibouti", "Dominica", "Dominican Republic", "East Timor", "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea", "Estonia", "Ethiopia", "Fiji", "Finland", "France", "Gabon", "Gambia", "Georgia", "Germany", "Ghana", "Greece", "Grenada", "Guatemala", "Guinea", "Guinea-Bissau", "Guyana", "Haiti", "Honduras", "Hungary", "Iceland", "India", "Indonesia", "Iran", "Iraq", "Ireland", "Israel", "Italy", "Ivory Coast", "Jamaica", "Japan", "Jordan", "Kazakhstan", "Kenya", "Kiribati", "Kosovo", "Kuwait", "Kyrgyzstan", "Laos", "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania", "Luxembourg", "North Macedonia", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Marshall Islands", "Mauritania", "Mauritius", "Mexico", "Micronesia", "Moldova", "Monaco", "Mongolia", "Montenegro", "Morocco", "Mozambique", "Myanmar", "Namibia", "Nauru", "Nepal", "Netherlands", "New Zealand", "Nicaragua", "Niger", "Nigeria", "North Korea", "Norway", "Oman", "Pakistan", "Palau", "Palestine", "Panama", "Papua New Guinea", "Paraguay", "Peru", "Philippines", "Poland", "Portugal", "Qatar", "Republic of the Congo", "Romania", "Russia", "Rwanda", "Saint Kitts and Nevis", "Saint Lucia", "Saint Vincent and the Grenadines", "Samoa", "San Marino", "Sao Tome and Principe", "Saudi Arabia", "Senegal", "Serbia", "Seychelles", "Sierra Leone", "Singapore", "Slovakia", "Slovenia", "Solomon Islands", "Somalia", "South Africa", "South Korea", "South Sudan", "Spain", "Sri Lanka", "Sudan", "Suriname", "Swaziland", "Sweden", "Switzerland", "Syria", "Taiwan", "Tajikistan", "Tanzania", "Thailand", "Togo", "Tonga", "Trinidad and Tobago", "Tunisia", "Turkey", "Turkmenistan", "Tuvalu", "Uganda", "Ukraine", "United Arab Emirates", "United Kingdom", "United States", "Uruguay", "Uzbekistan", "Vanuatu", "Vatican City", "Venezuela", "Vietnam", "Yemen", "Zambia", "Zimbabwe"]; const formInputText = document.getElementsByClassName("shadow px-2 py-1 md:py-0 w-full border rounded text-gray-700 dark:bg-slate-200 dark:text-gray-900 focus:outline-none focus:shadow-outline disabled:bg-slate-400 disabled:border-slate-400")[0]; const formSubmitButtom = document.getElementsByClassName("bg-blue-700 dark:bg-purple-800 hover:bg-blue-900 dark:hover:bg-purple-900 dark:disabled:bg-purple-900 disabled:bg-blue-900 text-white font-bold py-1 md:py-2 px-4 rounded focus:shadow-outline")[0]; const answerTextElement = document.getElementsByClassName("text-center font-medium")[0]; let index = 0; let interval = setInterval(() => { console.log(`\nGuess ${index + 1}/${countries.length}:`); formInputText.value = countries[index]; formSubmitButtom.click(); index++; if (answerTextElement.innerHTML.slice(0, 23) == "The Mystery Country is " || index > countries.length) { clearInterval(interval); }}, /* CHANGE THIS ---> */ 500 /* <--- CHANGE THIS */);

Globle: Capitals

const capitals = ["Abu Dhabi", "Abuja", "Accra", "Addis Ababa", "Algiers", "Amman", "Amsterdam", "Andorra la Vella", "Ankara", "Antananarivo", "Apia", "Ashgabat", "Asmara", "Astana", "Asunción", "Athens", "Baghdad", "Baku", "Bamako", "Bandar Seri Begawan", "Bangkok", "Bangui", "Banjul", "Basseterre", "Beijing", "Beirut", "Belgrade", "Belmopan", "Berlin", "Bern", "Bishkek", "Bissau", "Bogotá", "Brasília", "Bratislava", "Brazzaville", "Bridgetown", "Brussels", "Bucharest", "Budapest", "Buenos Aires", "Cairo", "Canberra", "Caracas", "Castries", "Chisinau", "Colombo", "Conakry", "Copenhagen", "Dakar", "Damascus", "Dhaka", "Dili", "Djibouti", "Dodoma", "Doha", "Dublin", "Dushanbe", "Freetown", "Funafuti", "Gaborone", "Georgetown", "Gitega", "Guatemala City", "Hanoi", "Harare", "Havana", "Helsinki", "Honiara", "Islamabad", "Jakarta", "Jerusalem", "Juba", "Kabul", "Kampala", "Kathmandu", "Khartoum", "Kiev", "Kigali", "Kingston", "Kingstown", "Kinshasa", "Kuala Lumpur", "Kuwait City", "La Paz", "Libreville", "Lilongwe", "Lima", "Lisbon", "Ljubljana", "Lomé", "London", "Luanda", "Lusaka", "Luxembourg", "Madrid", "Majuro", "Malabo", "Male", "Managua", "Manama", "Manila", "Maputo", "Maseru", "Mbabane", "Mexico City", "Minsk", "Mogadishu", "Monaco", "Monrovia", "Montevideo", "Moroni", "Moscow", "Muscat", "N'Djamena", "Nairobi", "Nassau", "Naypyidaw", "New Delhi", "Ngerulmud", "Niamey", "Nicosia", "Nouakchott", "Nuku'alofa", "Oslo", "Ottawa", "Ouagadougou", "Palikir", "Panama City", "Paramaribo", "Paris", "Phnom Penh", "Podgorica", "Port Louis", "Port Moresby", "Port Vila", "Port au Prince", "Port of Spain", "Porto-Novo", "Prague", "Praia", "Pretoria", "Pristina", "Pyongyang", "Quito", "Rabat", "Reykjavík", "Riga", "Riyadh", "Rome", "Roseau", "Saint George's", "Saint John's", "San José", "San Marino", "San Salvador", "Sanaa", "Santiago", "Santo Domingo", "Sao Tome", "Sarajevo", "Seoul", "Singapore", "Skopje", "Sofia", "Stockholm", "Suva", "Taipei", "Tallinn", "Tarawa", "Tashkent", "Tbilisi", "Tegucigalpa", "Tehran", "Thimphu", "Tirana", "Tokyo", "Tripoli", "Tunis", "Ulaanbaatar", "Vaduz", "Valletta", "Vatican City", "Victoria", "Vienna", "Vientiane", "Vilnius", "Warsaw", "Washington, D.C.", "Wellington", "Windhoek", "Yamoussoukro", "Yaoundé", "Yaren", "Yerevan", "Zagreb"]; const formInputText = document.getElementsByClassName("shadow px-2 py-1 md:py-0 w-full border rounded text-gray-700 dark:bg-slate-200 dark:text-gray-900 focus:outline-none focus:shadow-outline disabled:bg-slate-400 disabled:border-slate-400")[0]; const formSubmitButtom = document.getElementsByClassName("bg-blue-700 dark:bg-purple-800 hover:bg-blue-900 dark:hover:bg-purple-900 dark:disabled:bg-purple-900 disabled:bg-blue-900 text-white font-bold py-1 md:py-2 px-4 rounded focus:shadow-outline")[0]; const answerTextElement = document.getElementsByClassName("text-center font-medium")[0]; let index = 0; let interval = setInterval(() => { console.log(`\nGuess ${index + 1}/${capitals.length}:`); console.log(capitals[index]); formInputText.value = capitals[index]; formSubmitButtom.click(); index++; if (answerTextElement.innerHTML.slice(0, 23) == "The Mystery Capital is " || index > capitals.length) { clearInterval(interval); }}, /* CHANGE THIS ---> */ 500 /* <--- CHANGE THIS */);

Metazooa

Note: This code is under development and might not work properly at the moment.

const animals = ["anemone", "jellyfish", "earthworm", "leech", "snail", "mussel", "sea clam", "cuttlefish", "tiger prawn", "lobster", "black widow", "cockroach", "grasshopper", "locust", "stick bug", "firefly", "silkworm", "mosquito", "fruit fly", "house fly", "hornet", "honey bee", "praying mantis", "starfish", "sea urchin", "tiger shark", "coelacanth", "goldfish", "carp", "catfish", "electric eel", "trout", "salmon", "cod", "anglerfish", "guppy", "tuna", "swordfish", "axolotl", "toad", "bullfrog", "snapping turtle", "alligator", "crocodile", "iguana", "gila monster", "boa constrictor", "black mamba", "king cobra", "sea snake", "viper", "rattlesnake", "emu", "ostrich", "duck", "goose", "swan", "condor", "falcon", "chicken", "pheasant", "peacock", "turkey", "blackbird", "emperor penguin", "platypus", "echidna", "opossum", "tasmanian devil", "kangaroo", "possum", "hedgehog", "mole", "vampire bat", "lemur", "macaque", "mandrill", "gorilla", "bonobo", "chimpanzee", "orangutan", "human", "wolf", "coyote", "red fox", "black bear", "brown bear", "giant panda", "red panda", "raccoon", "mink", "hyena", "cat", "lion", "jaguar", "leopard", "tiger", "puma", "mongoose", "sea lion", "walrus", "seal", "orca", "dolphin", "beluga whale", "sperm whale", "humpback whale", "manatee", "elephant", "donkey", "horse", "rhinoceros", "aardvark", "pig", "hippopotamus", "camel", "llama", "moose", "caribou", "deer", "giraffe", "bison", "cattle", "goat", "wildebeest", "sheep", "pangolin", "rabbit", "groundhog", "hamster", "gerbil", "mouse", "rat", "porcupine", "guinea pig", "capybara", "cockatoo", "monarch butterfly", "earwig", "lynx", "cockatiel", "pillbug", "great white shark", "fire ant", "two-toed sloth", "bass", "sea turtle", "puffin", "blue jay", "centipede", "polar bear", "wombat", "oyster", "wasp", "yak", "alpaca", "skunk", "badger", "squirrel", "cheetah", "ocelot", "black vulture", "bigfin squid", "nautilus", "sea otter", "magpie", "seagull", "salamander", "termite", "meerkat", "antelope", "capuchin", "finch", "robin", "gazelle", "koala", "narwhal", "ladybug", "piranha", "turkey vulture", "chipmunk", "tardigrade", "wolverine", "sparrow", "flea", "beaver", "woodpecker", "anaconda", "macaw", "parakeet", "poison frog", "bald eagle", "kite", "weasel", "barn owl", "kestrel", "raven", "grey parrot", "goblin shark", "cricket", "mockingbird", "komodo dragon", "bobcat", "gibbon", "atlas moth", "tortoise", "jackal", "barracuda", "river otter", "macaroni penguin", "anteater", "crow", "zebra", "water buffalo", "chameleon", "toucan", "skink", "baboon", "blue-ringed octopus", "krill", "carpenter ant", "seahorse", "barnacle", "mantis shrimp", "green tree python", "bumble bee", "dove", "box turtle", "clownfish", "canary", "dung beetle", "man o war", "burmese python", "caiman", "hammerhead shark", "sea sponge", "betta fish", "water bug", "scorpion", "brain coral", "flying squirrel", "giant squid", "tarantula", "pigeon", "giant octopus", "millipede", "gecko", "kiwi", "armadillo", "pufferfish", "snowy owl", "nightingale", "flamingo", "arctic fox", "fruit bat", "sea cucumber", "huntsman spider", "hawk", "hermit crab", "hercules beetle", "sand dollar", "elk", "dragonfly", "fiddler crab", "mayfly", "manta ray", "banana slug", "hummingbird", "sting ray"]; const formInputText = document.getElementsByClassName("border p-1 disabled:bg-gray-300 w-60 border-light-green disabled:border-gray-400 py-2 pl-3 pr-9")[0]; const formSubmitButtom = document.getElementsByClassName("border py-1 px-2 disabled:cursor-default rounded mx-2 text-dark-green disabled:text-black bg-white hover:bg-light-green disabled:bg-gray-300 border-light-green hover:border-medium-green disabled:border-gray-400 shadow-md hover:shadow-none disabled:shadow-none transition-all duration-300")[0]; const answerTextElement = document.getElementsByClassName("space-y-4 h-min")[0].getElementsByTagName("p")[0]; let index = 0; let interval = setInterval(() => { console.log(`\nGuess ${index + 1}/${animals.length}:`); console.log(animals[index]); formInputText.value = animals[index]; formSubmitButtom.click(); index++; if (answerTextElement.innerHTML.slice(0, 23) == "You win! The answer is " || index == animals.length) { clearInterval(interval); }}, 300);