api requests made, repl form

This commit is contained in:
mtgmonkey 2025-06-21 06:04:44 -04:00
parent 28a9a97bf5
commit fd07ea0b2d
8 changed files with 2301 additions and 14 deletions

1710
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -4,3 +4,8 @@ version = "0.1.0"
edition = "2024" edition = "2024"
[dependencies] [dependencies]
fuzzy-matcher = { version = "0.3.7", features = ["compact"] }
reqwest = { version = "0.12.20", features = ["json"] }
serde = { version = "1.0.219", features = ["derive"] }
serde-xml-rs = "0.8.1"
tokio = { version = "1.45.1", features = ["full"] }

37
flake.lock generated
View file

@ -1,6 +1,40 @@
{ {
"nodes": { "nodes": {
"naersk": {
"inputs": {
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1745925850,
"narHash": "sha256-cyAAMal0aPrlb1NgzMxZqeN1mAJ2pJseDhm2m6Um8T0=",
"owner": "nix-community",
"repo": "naersk",
"rev": "38bc60bbc157ae266d4a0c96671c6c742ee17a5f",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "naersk",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": {
"lastModified": 1750215678,
"narHash": "sha256-Rc/ytpamXRf6z8UA2SGa4aaWxUXRbX2MAWIu2C8M+ok=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "5395fb3ab3f97b9b7abca147249fa2e8ed27b192",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1750134718, "lastModified": 1750134718,
"narHash": "sha256-v263g4GbxXv87hMXMCpjkIxd/viIF7p3JpJrwgKdNiI=", "narHash": "sha256-v263g4GbxXv87hMXMCpjkIxd/viIF7p3JpJrwgKdNiI=",
@ -17,7 +51,8 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs" "naersk": "naersk",
"nixpkgs": "nixpkgs_2"
} }
} }
}, },

View file

@ -1,12 +1,17 @@
{ {
inputs = { inputs = {
nixpkgs.url = "nixpkgs/nixos-unstable"; nixpkgs.url = "nixpkgs/nixos-unstable";
naersk.url = github:nix-community/naersk;
}; };
outputs = {nixpkgs, ...}: let outputs = {
nixpkgs,
naersk,
...
}: let
system = "x86_64-linux"; system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system}; pkgs = nixpkgs.legacyPackages.${system};
in { in {
packages.${system}.default = pkgs.callPackage ./package.nix {}; packages.${system}.default = pkgs.callPackage ./package.nix {naersk = pkgs.callPackage naersk {};};
# nixosModules.${system}.default = ./module.nix; # nixosModules.${system}.default = ./module.nix;
}; };
} }

361
games.csv Normal file
View file

@ -0,0 +1,361 @@
Name,Current favorites,,
13 Dead End Drive,,,
221b Baker Street,,,
32 Dice,,,
7Wonders,,,
Abandon All Artichokes,,,
Abomination,Long strategy,Collect body parts in Paris to assemble and animate a second Frankenstein's monster,
Acuity,,,
Aggravation,,,
Airport traffic control,,,
Alder Quest,,,
Alma Mater,,,
Amazed,,,
AnimaLogic,,,
Anomia,,,
Apples to Apples,,,
Apples to apples junior,,,
Arboretum,Unique card game,Build sets of tree types to win points,
Are you as smart as a 5th Grader,,,
Ark Nova,Long Strategy,"Build and stock a zoo to maximize points in three areas (conservation, reputation, attraction)",
Arkham Horror the card game,,,
Ascension year 1,Deck builder alternative to MagicTG,Build a deck of characters with different abilities and fight monsters to win points,
Ascension year 3,,,
Ascention year 2,,,
Ashes reborn,,,
Asteroid Escape,,,
Aunt Agatha's Attic,,,
Azul,Pattern placement,Draft patterned tiles to make a mosaic that maximizes points,
Backgammon,,,
Baconopoly,,,
Bananagrams,Word,"Draft letter tiles to make your own crossword, finish fastest to win",
Bandu,,,
Battleship,,,
Bears vs. Babies,,,
Beat the parents,,,
Best of Tri-Bond,,,
Betrayal at House on the Hill,Large group,"Group works against a single player in scenarios, ghosts and ghouls etc. Many scenarios to choose from.",
Bing-oh!,,,
Bionicle: quest for Makuta,,,
Blazon,,,
Boggle,,,
Boldmade,,,
Boss Monster,,,
Brain Games kids,,,
Brown Bear Panda Bear what do you see game,,,
Bugs in the Kitchen,,,
Bunny Kingdom,Worker placement,"Occupy territories, build toens and farm to get resources and accomplish missions. Cute.",
Burgle Bros.,,,
Callisto the game,,,
Camp,,,
Can you do it?, ,,
Canasta,,,
Carcassonne,,,
Cards against Humanity,,,
Carnival of Monsters,Short drafting,"Assemble a deck that allows you to hunt and collect monsters for a carnival, over four seasons. ",
Cascadia,,,
Castellion,,,
Castle Keep,,,
Castle Panic the wizard's tower,,,
Castle Panic the wizard's tower,,,
Castles of Mad King Ludwig,,,
Cat Crimes,Single player logic,Use clues (e.g. A is next to B but not C) to place cats in the correct configuration,
Catch Phrase,,,
Censensus,,,
Century: golem edition,Drafting resource management (fast),Use resource cards to collect enough gems to afford point cards (golems).,
Chomp,,,
Chrononauts,,,
CirKis,,,
Claim (4 versions),,,
Clank!,,,
Clue--Harry Potter,,,
Clue--Harry Potter,,,
Code Break,,,
Code Master,,,
Codenames,,,
Cogno,,,
Common Ground,,,
Conveyor Belt,,,
Costa Rica,,,
Crack the Case,,,
Cranium,,,
Cranium Balloon Lagoon,,,
Cranium cadoo,,,
Cranium Conga,,,
Cranium family fun,,,
Cribbage,,,
Crystal Clans,,,
CSI the board game,,,
Cytosis,,,
D&D starter set,,,
Deluxe Pente,,,
Diary of a Wimpy Kid Cheese Touch,,,
Die Hard,,,
Diggity Dogs,,,
Dinosaur Escape,,,
Dominion (X2),Deck Building,Build a deck of cards by purchasing from a set of available card types that allow you to get enough resoources to purchase land cards. Lots of variety in card types and synergies.,
Dominos,,,
Donner Dinner Party,,,
Don't go in there,,,
Double Shutter,,,
Dragonriders,,,
Dragonwood,,,
Entago,,,
Escape Room the game,,,
Escape the Dark Castle,,,
Escape the Dark Sector,,,
Eschaton,Drafting dark theme,"Collect characers and objects to both help you get more points and that have point values themselves. Maximize points before the demon king initiates armaggedon. Devils and demon worship, etc.",
Euphoria,,,
Everdell,Long strategy,"Build your own town of cards by acquiring resurces to afford to build different types of buildings, maximize card synergies, and maximize high point value buildings. Cute.",
Evolution The Beginning,,,
Explaoding Kittens,,,
Eye Found it!,,,
eye know,,,
eyeSpectro,,,
Family Feud (5th edition),,,
Farkle,,,
Fire Tower,,,
Fishcook,,,
FitzIt,,,
Five Crowns,,,
Flamecraft,Worker placement and resource management,Acquire dragons with different abilities by going to shops in town to purchase resources. Cute.,
Flinch,,,
Flip City,,,
Floor Plan: winchester mystery house,,,
Forbidden Desert,,,
Forbidden Island,,,
Fumbling Ferrets,,,
Funglish,,,
Game of life--pirates of the Carribean,,,
Gloom ,,,
Gloomhaven,,,
Glow,,,
Go FishZ!,,,
Gubs,Fast and easy,"Collect Gub cards, use tool cards to steal cards from other players, cause them to cards or defend your gubs from attack.",
Guesstures,,,
Hafid's Grand Bazaar,,,
Hand to hand wombat,,,
Happy Little Dinosaurs plus expansion,,,
Harry Potter trivia game,,,
Headbandz,,,
Heist: one team one mission,,,
Hexus,,,
Hijara X2,,,
Hilarium,,,
Hisss,,,
Holmes: sherlock and mycroft,,,
Hoot Owl Hoot,,,
Horrified,,,
Houdini vs The Genie,,,
How to rob a bank,,,
Hullabaloo,,,
Illimat,Unique card game,A card deck with 4 suits is used to collect cards from a playing area to make sets that are worth points,
Imagine,,,
Imhotep,,,
In a pickle,,,
In the Footsteps of Marie Curie,,,
Indigo,,,
Itzi,,,
jumanji,,,
Jungle Speed,,,
Juxtabo,,,
Killer Bunnies,,,
King of Tokyo,,,
Kingdominao,Fast and easy,Use grass/stone/water tiles of different shapes to assemble the highest point kingdom within a square limitation,
Klask,,,
Knock your blocks off,,,
Kodama,,,
Kulami,,,
Labyrinth,,,
Labyrinth the Duel,,,
Ladybug Game,,,
Last Letter,,,
Last Word,,,
Libertalia,,,
Lloyd's 15,,,
Loaded question,,,
Lofoten,,,
Loot,,,
Lotus,,,
Machi Koro,,,
Magic unsanctionaed,,,
Make N Break,,,
Man Bites Dog,,,
Marbles,,,
Mariposas,,,
Meadow,,,
MesoZooic,,,
Mille Bornes,,,
Mine Shift,,,
Mint Works,,,
Mombasa,,,
Monopoly Builder,,,
Monopoly Speed,,,
Mummy Rummy,,,
Munchkin,,,
Munchkin Pathfinder,,,
Munchkin Zombies ,,,
Munchkin Zombies Deluxe,,,
Mysterium,,,
Mystery Garden,,,
Nab it,,,
Naga Raja,two player,"Explore an ancient Indian temple, gamble to compete for resources to find all the treasures in the temple and avoid traps",
Name 5,,,
Nine Mens Morris,,,
Nmbr9,Puzzle,Use tiles of differing tetris-like shapes to build a stack that maximizes points,
Noctiluca,Dice,Select dice of differing colors and numbers to complete mini-missions that give you points when completed,
Nowhere to Go,,,
Obscurio,,,
Old Maid,,,
On the Dot,,,
One Night Werewolf,,,
Onitama,,,
Original Fluxx,Fast and easy,"Play cards with various instructions on them, collect sets to win. ",
Othello,,,
Otrio,,,
P for Pizza,,,
Pandemic,Cooperative,"Work together in different roles to travel the world to try and stop a pandemic from spreading. Harder than you might think at first, especially when new epidemics spring up and you are battling several different diseases at once.",
Perpetual Commotion,,,
Perquacky,,,
Photosynthesis plus expansion,Longer resource management,"Acquire trees and place them on a board strategically to get points. May sound boring, requires quite a it of strategy and harder than it might seem at first, especially when other players take the spots you wanted.",
Pickles to Penguins,,,
Pictureka,,,
Pirate Fluxx,,,
Pit,,,
Planet,,,
Pokemon Battle Academy,,,
Poker,,,
Project L,,,
Pyramix,,,
Q-Bits Extreme,,,
Qfit,,,
Quarto ,,,
Quelf,,,
Quiddler,,,
Quixo,,,
Quoriddor,,,
Qwirkle,Sets good for kids,"Domino-like tiles with various shapes and colors are used to make a crossword like board that maximizes sets (e.g. all one color, all one shape, etc.).",
Qwixx,,,
Qwixx Delux,,,
Raccoon Tycoon,,,
Racko,,,
Racko,,,
Rainbow Ball,,,
Red Rising,,,
Reykholt,,,
Rick and Morty Total Rickall,,,
Risk,,,
Roadside Rescue,,,
RoboChamp,,,
Roller Coaster tycoon,,,
Rollers,,,
Rolling Realms,"Puzzle, logic","Each game has a set of mini-games that you use resources to play and maximize points. A varety of mini-games are available. Each player is working on their own to complete their own set of games, little interaction.",
Rook,,,
Root,,,
Rubik's Perplexus,,,
Rumis,,,
Rummikub,Number sets,"Domino-style tiles with numbers are used/drawn to complete number sets (e.g. 4 of a kind, runs, etc.)",
Rummy-O,,,
Sagrada,Puzzle,Draft dice of differing colors and numbers to complete a stained glass window that maximizes points. Placement rules make this game challenging.,
Sail Away,,,
Sardines,,,
Scattergories,,,
Scotland Yard,Logic,"Players are chasing one player around London on streets, Metro and boat. Group wins if they manage to find the culprit",
Scrabble,,,
Scrabble Slam,,,
Selfisg,,,
Sequence,,,
Sequence for kids,,,
Set,,,
Shut the Box,,,
Slamwich,,,
Sleeping Queens,,,
Sliders,,,
Smart Ass,,,
Sorcerer,,,
Spirit Island,,,
Splendor, ,,
Spontuneous,,,
Spyfall,,,
Squashed,,,
Squirmish,,,
Star Trek Fluxx,,,
Steampunk Rally Fusion,,,
Stipulations,,,
Story Cubes,,,
Stratego,,,
Stupid Deaths,,,
Summer Camp,,,
Sunflower Valley,,,
Super Munchkin,,,
Suspicion,,,
Swish,,,
Switchback,,,
Taco vs. Burrito,,,
Take the Train,,,
Takenoko,,,
Tang Garden,,,
Tenzi,,,
The Crew,,,
The DaVinci Code board game,,,
The Epic Beard Game,,,
The Game,,,
The game of Life,,,
The genius square,,,
The Grimwood,,,
The Initiative,,,
The Mind,,,
The Oregon Trail,,,
The Perilous Parlour Game (series of unfortunate events),,,
The Settlers of Catan,,,
The Vale of Eternity,,,
There's a Moose in the House,,,
There's been a Murder,,,
Throw throw burrito,,,
Ticket to Ride,,,
Ticket to Ride Europe,,,
Tiki Topple,,,
Tiny Epic Quest,,,
Tiny Towns,City builder,Acquire resources to build specific types of buildings in a town grid that maximize points and fulfill individual goal cards.,
Tipover,,,
Titanic,,,
Tokaido,Relaxed resource management,"Take a walk on the Tokaido road, visiting temples, restaurants, shops and natural beauty spots to gather resources for points",
Tokaido Duo,,,
"Toledo: art, steel and glory",,,
Too Many Monkeys,,,
Toss your Cookies,,,
Trash Pandas,,,
Trekking the national parks,,,
Trellis,Fast and easy,Use your colored tiles that have various patterns of vines on them to make chains on a playing field that maximize your points,
Triominos,,,
Trip Lock,Very hard single player puzzle,Logic game that gives you some clues and lots of rules to try and open a lock mechanism before time runs out. Very challenging. Can also be played with 2 people.,
Trivial Pursuit Disney,,,
Trivial Pursuit family edition,,,
Tsuro,Fast and easy,"Use tiles with road patterns on them to create roads that your meeples can travel, be the last person standing to win",
Turing Machine,Logic and computing,Use logic rules and tests to deduce a pattern before anyone else. Requires advanced logic skills.,
Tutti Quantum,,,
Twister,,,
Tzolk'in,,,
Ubongo,,,
Ukotoa,,,
Unlock Epic Adventures,,,
Unlock Escape Adventures,,,
Unlock Heroic adventures,,,
Uno,,,
Unstable Unicorns,Unique card game,"Collect nicorns on cards and try to hold on to them in your ""stable"" while attacking other stables using the powers of the unicorns. Fast, easy to learn.",
Upwords,Word,Scrabble except you can add tiles on top of previous letters to make new words for points.,
Urban Myth,,,
Villanous (original),,,
Visitor,,,
Wild Space,Deck builder,Acquire a space crew of different animals with differing professions and abilities. Explore different planets that allow you to play cards into your crew to maximize points. Done in ten rounds.,
Winomino,,,
Wise and Otherwise,,,
Worst Case Scenario Survival Game,,,
Yahtzee,,,
Zategy,,,
Zertz,,,
Zeus on the Loose,,,
Zigity,,,
Zip-it,,,
Zombie Pox,,,
Zooreka,,,
1 Name Current favorites
2 13 Dead End Drive
3 221b Baker Street
4 32 Dice
5 7Wonders
6 Abandon All Artichokes
7 Abomination Long strategy Collect body parts in Paris to assemble and animate a second Frankenstein's monster
8 Acuity
9 Aggravation
10 Airport traffic control
11 Alder Quest
12 Alma Mater
13 Amazed
14 AnimaLogic
15 Anomia
16 Apples to Apples
17 Apples to apples junior
18 Arboretum Unique card game Build sets of tree types to win points
19 Are you as smart as a 5th Grader
20 Ark Nova Long Strategy Build and stock a zoo to maximize points in three areas (conservation, reputation, attraction)
21 Arkham Horror the card game
22 Ascension year 1 Deck builder alternative to MagicTG Build a deck of characters with different abilities and fight monsters to win points
23 Ascension year 3
24 Ascention year 2
25 Ashes reborn
26 Asteroid Escape
27 Aunt Agatha's Attic
28 Azul Pattern placement Draft patterned tiles to make a mosaic that maximizes points
29 Backgammon
30 Baconopoly
31 Bananagrams Word Draft letter tiles to make your own crossword, finish fastest to win
32 Bandu
33 Battleship
34 Bears vs. Babies
35 Beat the parents
36 Best of Tri-Bond
37 Betrayal at House on the Hill Large group Group works against a single player in scenarios, ghosts and ghouls etc. Many scenarios to choose from.
38 Bing-oh!
39 Bionicle: quest for Makuta
40 Blazon
41 Boggle
42 Boldmade
43 Boss Monster
44 Brain Games kids
45 Brown Bear Panda Bear what do you see game
46 Bugs in the Kitchen
47 Bunny Kingdom Worker placement Occupy territories, build toens and farm to get resources and accomplish missions. Cute.
48 Burgle Bros.
49 Callisto the game
50 Camp
51 Can you do it?
52 Canasta
53 Carcassonne
54 Cards against Humanity
55 Carnival of Monsters Short drafting Assemble a deck that allows you to hunt and collect monsters for a carnival, over four seasons.
56 Cascadia
57 Castellion
58 Castle Keep
59 Castle Panic the wizard's tower
60 Castle Panic the wizard's tower
61 Castles of Mad King Ludwig
62 Cat Crimes Single player logic Use clues (e.g. A is next to B but not C) to place cats in the correct configuration
63 Catch Phrase
64 Censensus
65 Century: golem edition Drafting resource management (fast) Use resource cards to collect enough gems to afford point cards (golems).
66 Chomp
67 Chrononauts
68 CirKis
69 Claim (4 versions)
70 Clank!
71 Clue--Harry Potter
72 Clue--Harry Potter
73 Code Break
74 Code Master
75 Codenames
76 Cogno
77 Common Ground
78 Conveyor Belt
79 Costa Rica
80 Crack the Case
81 Cranium
82 Cranium Balloon Lagoon
83 Cranium cadoo
84 Cranium Conga
85 Cranium family fun
86 Cribbage
87 Crystal Clans
88 CSI the board game
89 Cytosis
90 D&D starter set
91 Deluxe Pente
92 Diary of a Wimpy Kid Cheese Touch
93 Die Hard
94 Diggity Dogs
95 Dinosaur Escape
96 Dominion (X2) Deck Building Build a deck of cards by purchasing from a set of available card types that allow you to get enough resoources to purchase land cards. Lots of variety in card types and synergies.
97 Dominos
98 Donner Dinner Party
99 Don't go in there
100 Double Shutter
101 Dragonriders
102 Dragonwood
103 Entago
104 Escape Room the game
105 Escape the Dark Castle
106 Escape the Dark Sector
107 Eschaton Drafting dark theme Collect characers and objects to both help you get more points and that have point values themselves. Maximize points before the demon king initiates armaggedon. Devils and demon worship, etc.
108 Euphoria
109 Everdell Long strategy Build your own town of cards by acquiring resurces to afford to build different types of buildings, maximize card synergies, and maximize high point value buildings. Cute.
110 Evolution The Beginning
111 Explaoding Kittens
112 Eye Found it!
113 eye know
114 eyeSpectro
115 Family Feud (5th edition)
116 Farkle
117 Fire Tower
118 Fishcook
119 FitzIt
120 Five Crowns
121 Flamecraft Worker placement and resource management Acquire dragons with different abilities by going to shops in town to purchase resources. Cute.
122 Flinch
123 Flip City
124 Floor Plan: winchester mystery house
125 Forbidden Desert
126 Forbidden Island
127 Fumbling Ferrets
128 Funglish
129 Game of life--pirates of the Carribean
130 Gloom
131 Gloomhaven
132 Glow
133 Go FishZ!
134 Gubs Fast and easy Collect Gub cards, use tool cards to steal cards from other players, cause them to cards or defend your gubs from attack.
135 Guesstures
136 Hafid's Grand Bazaar
137 Hand to hand wombat
138 Happy Little Dinosaurs plus expansion
139 Harry Potter trivia game
140 Headbandz
141 Heist: one team one mission
142 Hexus
143 Hijara X2
144 Hilarium
145 Hisss
146 Holmes: sherlock and mycroft
147 Hoot Owl Hoot
148 Horrified
149 Houdini vs The Genie
150 How to rob a bank
151 Hullabaloo
152 Illimat Unique card game A card deck with 4 suits is used to collect cards from a playing area to make sets that are worth points
153 Imagine
154 Imhotep
155 In a pickle
156 In the Footsteps of Marie Curie
157 Indigo
158 Itzi
159 jumanji
160 Jungle Speed
161 Juxtabo
162 Killer Bunnies
163 King of Tokyo
164 Kingdominao Fast and easy Use grass/stone/water tiles of different shapes to assemble the highest point kingdom within a square limitation
165 Klask
166 Knock your blocks off
167 Kodama
168 Kulami
169 Labyrinth
170 Labyrinth the Duel
171 Ladybug Game
172 Last Letter
173 Last Word
174 Libertalia
175 Lloyd's 15
176 Loaded question
177 Lofoten
178 Loot
179 Lotus
180 Machi Koro
181 Magic unsanctionaed
182 Make N Break
183 Man Bites Dog
184 Marbles
185 Mariposas
186 Meadow
187 MesoZooic
188 Mille Bornes
189 Mine Shift
190 Mint Works
191 Mombasa
192 Monopoly Builder
193 Monopoly Speed
194 Mummy Rummy
195 Munchkin
196 Munchkin Pathfinder
197 Munchkin Zombies
198 Munchkin Zombies Deluxe
199 Mysterium
200 Mystery Garden
201 Nab it
202 Naga Raja two player Explore an ancient Indian temple, gamble to compete for resources to find all the treasures in the temple and avoid traps
203 Name 5
204 Nine Mens Morris
205 Nmbr9 Puzzle Use tiles of differing tetris-like shapes to build a stack that maximizes points
206 Noctiluca Dice Select dice of differing colors and numbers to complete mini-missions that give you points when completed
207 Nowhere to Go
208 Obscurio
209 Old Maid
210 On the Dot
211 One Night Werewolf
212 Onitama
213 Original Fluxx Fast and easy Play cards with various instructions on them, collect sets to win.
214 Othello
215 Otrio
216 P for Pizza
217 Pandemic Cooperative Work together in different roles to travel the world to try and stop a pandemic from spreading. Harder than you might think at first, especially when new epidemics spring up and you are battling several different diseases at once.
218 Perpetual Commotion
219 Perquacky
220 Photosynthesis plus expansion Longer resource management Acquire trees and place them on a board strategically to get points. May sound boring, requires quite a it of strategy and harder than it might seem at first, especially when other players take the spots you wanted.
221 Pickles to Penguins
222 Pictureka
223 Pirate Fluxx
224 Pit
225 Planet
226 Pokemon Battle Academy
227 Poker
228 Project L
229 Pyramix
230 Q-Bits Extreme
231 Qfit
232 Quarto
233 Quelf
234 Quiddler
235 Quixo
236 Quoriddor
237 Qwirkle Sets good for kids Domino-like tiles with various shapes and colors are used to make a crossword like board that maximizes sets (e.g. all one color, all one shape, etc.).
238 Qwixx
239 Qwixx Delux
240 Raccoon Tycoon
241 Racko
242 Racko
243 Rainbow Ball
244 Red Rising
245 Reykholt
246 Rick and Morty Total Rickall
247 Risk
248 Roadside Rescue
249 RoboChamp
250 Roller Coaster tycoon
251 Rollers
252 Rolling Realms Puzzle, logic Each game has a set of mini-games that you use resources to play and maximize points. A varety of mini-games are available. Each player is working on their own to complete their own set of games, little interaction.
253 Rook
254 Root
255 Rubik's Perplexus
256 Rumis
257 Rummikub Number sets Domino-style tiles with numbers are used/drawn to complete number sets (e.g. 4 of a kind, runs, etc.)
258 Rummy-O
259 Sagrada Puzzle Draft dice of differing colors and numbers to complete a stained glass window that maximizes points. Placement rules make this game challenging.
260 Sail Away
261 Sardines
262 Scattergories
263 Scotland Yard Logic Players are chasing one player around London on streets, Metro and boat. Group wins if they manage to find the culprit
264 Scrabble
265 Scrabble Slam
266 Selfisg
267 Sequence
268 Sequence for kids
269 Set
270 Shut the Box
271 Slamwich
272 Sleeping Queens
273 Sliders
274 Smart Ass
275 Sorcerer
276 Spirit Island
277 Splendor
278 Spontuneous
279 Spyfall
280 Squashed
281 Squirmish
282 Star Trek Fluxx
283 Steampunk Rally Fusion
284 Stipulations
285 Story Cubes
286 Stratego
287 Stupid Deaths
288 Summer Camp
289 Sunflower Valley
290 Super Munchkin
291 Suspicion
292 Swish
293 Switchback
294 Taco vs. Burrito
295 Take the Train
296 Takenoko
297 Tang Garden
298 Tenzi
299 The Crew
300 The DaVinci Code board game
301 The Epic Beard Game
302 The Game
303 The game of Life
304 The genius square
305 The Grimwood
306 The Initiative
307 The Mind
308 The Oregon Trail
309 The Perilous Parlour Game (series of unfortunate events)
310 The Settlers of Catan
311 The Vale of Eternity
312 There's a Moose in the House
313 There's been a Murder
314 Throw throw burrito
315 Ticket to Ride
316 Ticket to Ride Europe
317 Tiki Topple
318 Tiny Epic Quest
319 Tiny Towns City builder Acquire resources to build specific types of buildings in a town grid that maximize points and fulfill individual goal cards.
320 Tipover
321 Titanic
322 Tokaido Relaxed resource management Take a walk on the Tokaido road, visiting temples, restaurants, shops and natural beauty spots to gather resources for points
323 Tokaido Duo
324 Toledo: art, steel and glory
325 Too Many Monkeys
326 Toss your Cookies
327 Trash Pandas
328 Trekking the national parks
329 Trellis Fast and easy Use your colored tiles that have various patterns of vines on them to make chains on a playing field that maximize your points
330 Triominos
331 Trip Lock Very hard single player puzzle Logic game that gives you some clues and lots of rules to try and open a lock mechanism before time runs out. Very challenging. Can also be played with 2 people.
332 Trivial Pursuit Disney
333 Trivial Pursuit family edition
334 Tsuro Fast and easy Use tiles with road patterns on them to create roads that your meeples can travel, be the last person standing to win
335 Turing Machine Logic and computing Use logic rules and tests to deduce a pattern before anyone else. Requires advanced logic skills.
336 Tutti Quantum
337 Twister
338 Tzolk'in
339 Ubongo
340 Ukotoa
341 Unlock Epic Adventures
342 Unlock Escape Adventures
343 Unlock Heroic adventures
344 Uno
345 Unstable Unicorns Unique card game Collect nicorns on cards and try to hold on to them in your "stable" while attacking other stables using the powers of the unicorns. Fast, easy to learn.
346 Upwords Word Scrabble except you can add tiles on top of previous letters to make new words for points.
347 Urban Myth
348 Villanous (original)
349 Visitor
350 Wild Space Deck builder Acquire a space crew of different animals with differing professions and abilities. Explore different planets that allow you to play cards into your crew to maximize points. Done in ten rounds.
351 Winomino
352 Wise and Otherwise
353 Worst Case Scenario Survival Game
354 Yahtzee
355 Zategy
356 Zertz
357 Zeus on the Loose
358 Zigity
359 Zip-it
360 Zombie Pox
361 Zooreka

View file

@ -1,13 +1,20 @@
{rustPlatform, ...}: {
rustPlatform.buildRustPackage { openssl,
pkg-config,
stdenv,
naersk,
...
}:
naersk.buildPackage {
name = "rust_elaborator"; name = "rust_elaborator";
src = ./.; src = ./.;
cargoLock.lockFile = ./Cargo.lock; buildInputs = [openssl];
nativeBuildInputs = []; nativeBuildInputs = [pkg-config];
buildInputs = []; # configurePhase = '''';
configurePhase = ''''; # buildPhase = '''';
buildPhase = ''''; # installPhase = ''
installPhase = ''''; # install -Dm775 ./target/release/rust_elaborator $out/bin/rust_elaborator
# '';
meta = { meta = {
mainProgram = "rust_elaborator"; mainProgram = "rust_elaborator";
homepage = "https://mtgmonkey.net"; homepage = "https://mtgmonkey.net";

31
src/lib.rs Normal file
View file

@ -0,0 +1,31 @@
use reqwest::Error;
use reqwest::header::USER_AGENT;
use serde::{Deserialize, Serialize};
#[derive(Debug, Deserialize, Serialize)]
pub struct Id_search_results {
pub boardgame: Boardgame,
}
#[derive(Debug, Deserialize, Serialize)]
pub struct Boardgame {
pub minplayers: i32,
pub maxplayers: i32,
pub playingtime: i32,
pub minplaytime: i32,
pub maxplaytime: i32,
pub age: i32,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct Boardgame_overview {
#[serde(rename = "@objectid")]
pub objectid: i32,
pub name: String,
}
#[derive(Debug, Deserialize, Serialize)]
pub struct Keyword_search_results {
#[serde(rename = "boardgame")]
pub boardgames: Vec<Boardgame_overview>,
}

View file

@ -1,3 +1,138 @@
fn main() { use reqwest::header::USER_AGENT;
println!("Hello, world!"); use rust_elaborator::*;
use std::io;
use std::io::prelude::*;
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
println!("Welcome to rust_elaborator!");
println!(
"Someday, this program will allow a csv input and output a csv with more information."
);
println!("For now, however, it takes text input and outputs text as well.");
println!("Enter the name of a boardgame, hit enter, and see information. Then repeat!");
println!("Have fun with rust_elaborator!");
let stdin = io::stdin();
for line in stdin.lock().lines() {
let client = reqwest::Client::new();
match get_boardgame_from_name(&client, line.unwrap()).await {
Some(boardgame) => println!("{:#?}", boardgame),
None => println!("Game not found"),
}
}
Ok(())
}
async fn get_id_from_name(client: &reqwest::Client, name: String) -> Option<i32> {
let request_url = format!("https://boardgamegeek.com/xmlapi/search?search={name}");
println!("searching for name {}", name);
let text = match make_request(client, &request_url).await {
Some(text) => text,
None => "".to_string(),
};
let xml: Keyword_search_results = match serde_xml_rs::from_str(&text) {
Ok(xml) => xml,
Err(_) => return None,
};
let mut games: Vec<Boardgame_overview> = xml.boardgames.clone();
let (best_match, score) = find_best_boardgame(name, games);
println!("found game {}", best_match.name);
println!("score is {}", score);
return Some(best_match.objectid);
}
async fn get_boardgame_from_id(client: &reqwest::Client, id: i32) -> Option<Boardgame> {
let request_url = format!("https://boardgamegeek.com/xmlapi/boardgame/{id}/");
println!("searching for id {}", id);
let text = match make_request(client, &request_url).await {
Some(text) => text,
None => "".to_string(),
};
let xml: Id_search_results = match serde_xml_rs::from_str(&text) {
Ok(xml) => xml,
Err(_) => return None,
};
return Some(xml.boardgame);
}
async fn get_boardgame_from_name(client: &reqwest::Client, name: String) -> Option<Boardgame> {
let id = get_id_from_name(client, name).await;
match id {
Some(id) => get_boardgame_from_id(client, id).await,
None => None,
}
}
async fn make_request(client: &reqwest::Client, request_url: &str) -> Option<String> {
let response = match client
.get(request_url)
.header(USER_AGENT, "andromeda-boardgame-info-finder")
.send()
.await
{
Ok(response) => response,
Err(_) => return None,
};
match response.text().await {
Ok(text) => Some(text),
Err(_) => None,
}
}
fn find_best_boardgame(
name: String,
mut games: Vec<Boardgame_overview>,
) -> (Boardgame_overview, i32) {
use fuzzy_matcher::FuzzyMatcher;
let matcher = fuzzy_matcher::skim::SkimMatcherV2::default();
// println!("BEFOREHAND");
// println!("{:#?}", games);
games.sort_by(|b, a| {
matcher
.fuzzy_match(
&a.name.chars().collect::<Vec<char>>()[..name.len()]
.iter()
.collect::<String>()
.to_lowercase(),
&name.to_lowercase(),
)
.cmp(
&matcher.fuzzy_match(
&b.name.chars().collect::<Vec<char>>()[..name.len()]
.iter()
.collect::<String>()
.to_lowercase(),
&name.to_lowercase(),
),
)
});
// println!("AFTERHAND");
// println!("{:#?}", games);
(
games[0].clone(),
match matcher.fuzzy_match(
&games[0].name.chars().collect::<Vec<char>>()[..name.len()]
.iter()
.collect::<String>()
.to_lowercase(),
&name.to_lowercase(),
) {
Some(val) => val,
Nothing => 0,
},
)
}
fn find_best_match(name: String, mut names: Vec<&String>) -> (String, i32) {
use fuzzy_matcher::FuzzyMatcher;
let matcher = fuzzy_matcher::skim::SkimMatcherV2::default();
names.sort_unstable_by(|a, b| {
matcher
.fuzzy_match(a, &name)
.cmp(&matcher.fuzzy_match(b, &name))
});
(
names[0].to_string(),
matcher.fuzzy_match(&names[0], &name).unwrap(),
)
} }