mirror of
https://github.com/nestriness/nestri.git
synced 2025-12-12 08:45:38 +02:00
## Description <!-- Briefly describe the purpose and scope of your changes --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added support for managing multiple Steam profiles per user, including a new profiles page with avatar selection and profile management. - Introduced a streamlined Steam authentication flow using a popup window, replacing the previous QR code and team-based login. - Added utilities for Steam image handling and metadata, including avatar preloading and static Steam metadata mappings. - Enhanced OpenID verification for Steam login. - Added new image-related events and expanded event handling for Steam account updates and image processing. - **Improvements** - Refactored the account structure from teams to profiles, updating related UI, context, and storage. - Updated API headers and authentication logic to use Steam IDs instead of team IDs. - Expanded game metadata with new fields for categories, franchises, and social links. - Improved library and category schemas for richer game and profile data. - Simplified and improved Steam API client methods for fetching user info, friends, and game libraries using Steam Web API. - Updated queue processing to handle individual game updates and publish image events. - Adjusted permissions and queue configurations for better message handling and dead-letter queue support. - Improved slug creation and rating estimation utilities. - **Bug Fixes** - Fixed avatar image loading to display higher quality images after initial load. - **Removals** - Removed all team, member, and credential management functionality and related database schemas. - Eliminated the QR code-based login and related UI components. - Deleted legacy team and member database tables and related code. - Removed encryption utilities and deprecated secret keys in favor of new secret management. - **Chores** - Updated dependencies and internal configuration for new features and schema changes. - Cleaned up unused code and updated database migrations for new data structures. - Adjusted import orders and removed unused imports across multiple modules. - Added new resource declarations and updated service link configurations. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
544 lines
16 KiB
TypeScript
544 lines
16 KiB
TypeScript
export namespace Steam {
|
|
//Source: https://github.com/woctezuma/steam-api/blob/master/data/genres.json
|
|
export const genres = {
|
|
"1": "Action",
|
|
"2": "Strategy",
|
|
"3": "RPG",
|
|
"4": "Casual",
|
|
"9": "Racing",
|
|
"18": "Sports",
|
|
"23": "Indie",
|
|
"25": "Adventure",
|
|
"28": "Simulation",
|
|
"29": "Massively Multiplayer",
|
|
"37": "Free to Play",
|
|
"50": "Accounting",
|
|
"51": "Animation & Modeling",
|
|
"52": "Audio Production",
|
|
"53": "Design & Illustration",
|
|
"54": "Education",
|
|
"55": "Photo Editing",
|
|
"56": "Software Training",
|
|
"57": "Utilities",
|
|
"58": "Video Production",
|
|
"59": "Web Publishing",
|
|
"60": "Game Development",
|
|
"70": "Early Access",
|
|
"71": "Sexual Content",
|
|
"72": "Nudity",
|
|
"73": "Violent",
|
|
"74": "Gore",
|
|
"80": "Movie",
|
|
"81": "Documentary",
|
|
"82": "Episodic",
|
|
"83": "Short",
|
|
"84": "Tutorial",
|
|
"85": "360 Video"
|
|
}
|
|
|
|
//Source: https://github.com/woctezuma/steam-api/blob/master/data/categories.json
|
|
export const categories = {
|
|
"1": "Multi-player",
|
|
"2": "Single-player",
|
|
"6": "Mods (require HL2)",
|
|
"7": "Mods (require HL1)",
|
|
"8": "Valve Anti-Cheat enabled",
|
|
"9": "Co-op",
|
|
"10": "Demos",
|
|
"12": "HDR available",
|
|
"13": "Captions available",
|
|
"14": "Commentary available",
|
|
"15": "Stats",
|
|
"16": "Includes Source SDK",
|
|
"17": "Includes level editor",
|
|
"18": "Partial Controller Support",
|
|
"19": "Mods",
|
|
"20": "MMO",
|
|
"21": "Downloadable Content",
|
|
"22": "Steam Achievements",
|
|
"23": "Steam Cloud",
|
|
"24": "Shared/Split Screen",
|
|
"25": "Steam Leaderboards",
|
|
"27": "Cross-Platform Multiplayer",
|
|
"28": "Full controller support",
|
|
"29": "Steam Trading Cards",
|
|
"30": "Steam Workshop",
|
|
"31": "VR Support",
|
|
"32": "Steam Turn Notifications",
|
|
"33": "Native Steam Controller",
|
|
"35": "In-App Purchases",
|
|
"36": "Online PvP",
|
|
"37": "Shared/Split Screen PvP",
|
|
"38": "Online Co-op",
|
|
"39": "Shared/Split Screen Co-op",
|
|
"40": "SteamVR Collectibles",
|
|
"41": "Remote Play on Phone",
|
|
"42": "Remote Play on Tablet",
|
|
"43": "Remote Play on TV",
|
|
"44": "Remote Play Together",
|
|
"45": "Cloud Gaming",
|
|
"46": "Cloud Gaming (NVIDIA)",
|
|
"47": "LAN PvP",
|
|
"48": "LAN Co-op",
|
|
"49": "PvP",
|
|
"50": "Additional High-Quality Audio",
|
|
"51": "Steam Workshop",
|
|
"52": "Tracked Controller Support",
|
|
"53": "VR Supported",
|
|
"54": "VR Only"
|
|
}
|
|
|
|
// Source: https://files.catbox.moe/96bty7.json
|
|
export const tags = {
|
|
"9": "Strategy",
|
|
"19": "Action",
|
|
"21": "Adventure",
|
|
"84": "Design & Illustration",
|
|
"87": "Utilities",
|
|
"113": "Free to Play",
|
|
"122": "RPG",
|
|
"128": "Massively Multiplayer",
|
|
"492": "Indie",
|
|
"493": "Early Access",
|
|
"597": "Casual",
|
|
"599": "Simulation",
|
|
"699": "Racing",
|
|
"701": "Sports",
|
|
"784": "Video Production",
|
|
"809": "Photo Editing",
|
|
"872": "Animation & Modeling",
|
|
"1027": "Audio Production",
|
|
"1036": "Education",
|
|
"1038": "Web Publishing",
|
|
"1445": "Software Training",
|
|
"1616": "Trains",
|
|
"1621": "Music",
|
|
"1625": "Platformer",
|
|
"1628": "Metroidvania",
|
|
"1638": "Dog",
|
|
"1643": "Building",
|
|
"1644": "Driving",
|
|
"1645": "Tower Defense",
|
|
"1646": "Hack and Slash",
|
|
"1647": "Western",
|
|
"1649": "GameMaker",
|
|
"1651": "Satire",
|
|
"1654": "Relaxing",
|
|
"1659": "Zombies",
|
|
"1662": "Survival",
|
|
"1663": "FPS",
|
|
"1664": "Puzzle",
|
|
"1665": "Match 3",
|
|
"1666": "Card Game",
|
|
"1667": "Horror",
|
|
"1669": "Moddable",
|
|
"1670": "4X",
|
|
"1671": "Superhero",
|
|
"1673": "Aliens",
|
|
"1674": "Typing",
|
|
"1676": "RTS",
|
|
"1677": "Turn-Based",
|
|
"1678": "War",
|
|
"1680": "Heist",
|
|
"1681": "Pirates",
|
|
"1684": "Fantasy",
|
|
"1685": "Co-op",
|
|
"1687": "Stealth",
|
|
"1688": "Ninja",
|
|
"1693": "Classic",
|
|
"1695": "Open World",
|
|
"1697": "Third Person",
|
|
"1698": "Point & Click",
|
|
"1702": "Crafting",
|
|
"1708": "Tactical",
|
|
"1710": "Surreal",
|
|
"1714": "Psychedelic",
|
|
"1716": "Roguelike",
|
|
"1717": "Hex Grid",
|
|
"1718": "MOBA",
|
|
"1719": "Comedy",
|
|
"1720": "Dungeon Crawler",
|
|
"1721": "Psychological Horror",
|
|
"1723": "Action RTS",
|
|
"1730": "Sokoban",
|
|
"1732": "Voxel",
|
|
"1733": "Unforgiving",
|
|
"1734": "Fast-Paced",
|
|
"1736": "LEGO",
|
|
"1738": "Hidden Object",
|
|
"1741": "Turn-Based Strategy",
|
|
"1742": "Story Rich",
|
|
"1743": "Fighting",
|
|
"1746": "Basketball",
|
|
"1751": "Comic Book",
|
|
"1752": "Rhythm",
|
|
"1753": "Skateboarding",
|
|
"1754": "MMORPG",
|
|
"1755": "Space",
|
|
"1756": "Great Soundtrack",
|
|
"1759": "Perma Death",
|
|
"1770": "Board Game",
|
|
"1773": "Arcade",
|
|
"1774": "Shooter",
|
|
"1775": "PvP",
|
|
"1777": "Steampunk",
|
|
"3796": "Based On A Novel",
|
|
"3798": "Side Scroller",
|
|
"3799": "Visual Novel",
|
|
"3810": "Sandbox",
|
|
"3813": "Real Time Tactics",
|
|
"3814": "Third-Person Shooter",
|
|
"3834": "Exploration",
|
|
"3835": "Post-apocalyptic",
|
|
"3839": "First-Person",
|
|
"3841": "Local Co-Op",
|
|
"3843": "Online Co-Op",
|
|
"3854": "Lore-Rich",
|
|
"3859": "Multiplayer",
|
|
"3871": "2D",
|
|
"3877": "Precision Platformer",
|
|
"3878": "Competitive",
|
|
"3916": "Old School",
|
|
"3920": "Cooking",
|
|
"3934": "Immersive",
|
|
"3942": "Sci-fi",
|
|
"3952": "Gothic",
|
|
"3955": "Character Action Game",
|
|
"3959": "Roguelite",
|
|
"3964": "Pixel Graphics",
|
|
"3965": "Epic",
|
|
"3968": "Physics",
|
|
"3978": "Survival Horror",
|
|
"3987": "Historical",
|
|
"3993": "Combat",
|
|
"4004": "Retro",
|
|
"4018": "Vampire",
|
|
"4026": "Difficult",
|
|
"4036": "Parkour",
|
|
"4046": "Dragons",
|
|
"4057": "Magic",
|
|
"4064": "Thriller",
|
|
"4085": "Anime",
|
|
"4094": "Minimalist",
|
|
"4102": "Combat Racing",
|
|
"4106": "Action-Adventure",
|
|
"4115": "Cyberpunk",
|
|
"4136": "Funny",
|
|
"4137": "Transhumanism",
|
|
"4145": "Cinematic",
|
|
"4150": "World War II",
|
|
"4155": "Class-Based",
|
|
"4158": "Beat 'em up",
|
|
"4161": "Real-Time",
|
|
"4166": "Atmospheric",
|
|
"4168": "Military",
|
|
"4172": "Medieval",
|
|
"4175": "Realistic",
|
|
"4182": "Singleplayer",
|
|
"4184": "Chess",
|
|
"4190": "Addictive",
|
|
"4191": "3D",
|
|
"4195": "Cartoony",
|
|
"4202": "Trading",
|
|
"4231": "Action RPG",
|
|
"4234": "Short",
|
|
"4236": "Loot",
|
|
"4242": "Episodic",
|
|
"4252": "Stylized",
|
|
"4255": "Shoot 'Em Up",
|
|
"4291": "Spaceships",
|
|
"4295": "Futuristic",
|
|
"4305": "Colorful",
|
|
"4325": "Turn-Based Combat",
|
|
"4328": "City Builder",
|
|
"4342": "Dark",
|
|
"4345": "Gore",
|
|
"4364": "Grand Strategy",
|
|
"4376": "Assassin",
|
|
"4400": "Abstract",
|
|
"4434": "JRPG",
|
|
"4474": "CRPG",
|
|
"4486": "Choose Your Own Adventure",
|
|
"4508": "Co-op Campaign",
|
|
"4520": "Farming",
|
|
"4559": "Quick-Time Events",
|
|
"4562": "Cartoon",
|
|
"4598": "Alternate History",
|
|
"4604": "Dark Fantasy",
|
|
"4608": "Swordplay",
|
|
"4637": "Top-Down Shooter",
|
|
"4667": "Violent",
|
|
"4684": "Wargame",
|
|
"4695": "Economy",
|
|
"4700": "Movie",
|
|
"4711": "Replay Value",
|
|
"4726": "Cute",
|
|
"4736": "2D Fighter",
|
|
"4747": "Character Customization",
|
|
"4754": "Politics",
|
|
"4758": "Twin Stick Shooter",
|
|
"4777": "Spectacle fighter",
|
|
"4791": "Top-Down",
|
|
"4821": "Mechs",
|
|
"4835": "6DOF",
|
|
"4840": "4 Player Local",
|
|
"4845": "Capitalism",
|
|
"4853": "Political",
|
|
"4878": "Parody",
|
|
"4885": "Bullet Hell",
|
|
"4947": "Romance",
|
|
"4975": "2.5D",
|
|
"4994": "Naval Combat",
|
|
"5030": "Dystopian",
|
|
"5055": "eSports",
|
|
"5094": "Narration",
|
|
"5125": "Procedural Generation",
|
|
"5153": "Kickstarter",
|
|
"5154": "Score Attack",
|
|
"5160": "Dinosaurs",
|
|
"5179": "Cold War",
|
|
"5186": "Psychological",
|
|
"5228": "Blood",
|
|
"5230": "Sequel",
|
|
"5300": "God Game",
|
|
"5310": "Games Workshop",
|
|
"5348": "Mod",
|
|
"5350": "Family Friendly",
|
|
"5363": "Destruction",
|
|
"5372": "Conspiracy",
|
|
"5379": "2D Platformer",
|
|
"5382": "World War I",
|
|
"5390": "Time Attack",
|
|
"5395": "3D Platformer",
|
|
"5407": "Benchmark",
|
|
"5411": "Beautiful",
|
|
"5432": "Programming",
|
|
"5502": "Hacking",
|
|
"5537": "Puzzle Platformer",
|
|
"5547": "Arena Shooter",
|
|
"5577": "RPGMaker",
|
|
"5608": "Emotional",
|
|
"5611": "Mature",
|
|
"5613": "Detective",
|
|
"5652": "Collectathon",
|
|
"5673": "Modern",
|
|
"5708": "Remake",
|
|
"5711": "Team-Based",
|
|
"5716": "Mystery",
|
|
"5727": "Baseball",
|
|
"5752": "Robots",
|
|
"5765": "Gun Customization",
|
|
"5794": "Science",
|
|
"5796": "Bullet Time",
|
|
"5851": "Isometric",
|
|
"5900": "Walking Simulator",
|
|
"5914": "Tennis",
|
|
"5923": "Dark Humor",
|
|
"5941": "Reboot",
|
|
"5981": "Mining",
|
|
"5984": "Drama",
|
|
"6041": "Horses",
|
|
"6052": "Noir",
|
|
"6129": "Logic",
|
|
"6214": "Birds",
|
|
"6276": "Inventory Management",
|
|
"6310": "Diplomacy",
|
|
"6378": "Crime",
|
|
"6426": "Choices Matter",
|
|
"6506": "3D Fighter",
|
|
"6621": "Pinball",
|
|
"6625": "Time Manipulation",
|
|
"6650": "Nudity",
|
|
"6691": "1990's",
|
|
"6702": "Mars",
|
|
"6730": "PvE",
|
|
"6815": "Hand-drawn",
|
|
"6869": "Nonlinear",
|
|
"6910": "Naval",
|
|
"6915": "Martial Arts",
|
|
"6948": "Rome",
|
|
"6971": "Multiple Endings",
|
|
"7038": "Golf",
|
|
"7107": "Real-Time with Pause",
|
|
"7108": "Party",
|
|
"7113": "Crowdfunded",
|
|
"7178": "Party Game",
|
|
"7208": "Female Protagonist",
|
|
"7250": "Linear",
|
|
"7309": "Skiing",
|
|
"7328": "Bowling",
|
|
"7332": "Base Building",
|
|
"7368": "Local Multiplayer",
|
|
"7423": "Sniper",
|
|
"7432": "Lovecraftian",
|
|
"7478": "Illuminati",
|
|
"7481": "Controller",
|
|
"7556": "Dice",
|
|
"7569": "Grid-Based Movement",
|
|
"7622": "Offroad",
|
|
"7702": "Narrative",
|
|
"7743": "1980s",
|
|
"7782": "Cult Classic",
|
|
"7918": "Dwarf",
|
|
"7926": "Artificial Intelligence",
|
|
"7948": "Soundtrack",
|
|
"8013": "Software",
|
|
"8075": "TrackIR",
|
|
"8093": "Minigames",
|
|
"8122": "Level Editor",
|
|
"8253": "Music-Based Procedural Generation",
|
|
"8369": "Investigation",
|
|
"8461": "Well-Written",
|
|
"8666": "Runner",
|
|
"8945": "Resource Management",
|
|
"9130": "Hentai",
|
|
"9157": "Underwater",
|
|
"9204": "Immersive Sim",
|
|
"9271": "Trading Card Game",
|
|
"9541": "Demons",
|
|
"9551": "Dating Sim",
|
|
"9564": "Hunting",
|
|
"9592": "Dynamic Narration",
|
|
"9803": "Snow",
|
|
"9994": "Experience",
|
|
"10235": "Life Sim",
|
|
"10383": "Transportation",
|
|
"10397": "Memes",
|
|
"10437": "Trivia",
|
|
"10679": "Time Travel",
|
|
"10695": "Party-Based RPG",
|
|
"10808": "Supernatural",
|
|
"10816": "Split Screen",
|
|
"11014": "Interactive Fiction",
|
|
"11095": "Boss Rush",
|
|
"11104": "Vehicular Combat",
|
|
"11123": "Mouse only",
|
|
"11333": "Villain Protagonist",
|
|
"11634": "Vikings",
|
|
"12057": "Tutorial",
|
|
"12095": "Sexual Content",
|
|
"12190": "Boxing",
|
|
"12286": "Warhammer 40K",
|
|
"12472": "Management",
|
|
"13070": "Solitaire",
|
|
"13190": "America",
|
|
"13276": "Tanks",
|
|
"13382": "Archery",
|
|
"13577": "Sailing",
|
|
"13782": "Experimental",
|
|
"13906": "Game Development",
|
|
"14139": "Turn-Based Tactics",
|
|
"14153": "Dungeons & Dragons",
|
|
"14720": "Nostalgia",
|
|
"14906": "Intentionally Awkward Controls",
|
|
"15045": "Flight",
|
|
"15172": "Conversation",
|
|
"15277": "Philosophical",
|
|
"15339": "Documentary",
|
|
"15564": "Fishing",
|
|
"15868": "Motocross",
|
|
"15954": "Silent Protagonist",
|
|
"16094": "Mythology",
|
|
"16250": "Gambling",
|
|
"16598": "Space Sim",
|
|
"16689": "Time Management",
|
|
"17015": "Werewolves",
|
|
"17305": "Strategy RPG",
|
|
"17337": "Lemmings",
|
|
"17389": "Tabletop",
|
|
"17770": "Asynchronous Multiplayer",
|
|
"17894": "Cats",
|
|
"17927": "Pool",
|
|
"18594": "FMV",
|
|
"19568": "Cycling",
|
|
"19780": "Submarine",
|
|
"19995": "Dark Comedy",
|
|
"21006": "Underground",
|
|
"21491": "Demo Available",
|
|
"21725": "Tactical RPG",
|
|
"21978": "VR",
|
|
"22602": "Agriculture",
|
|
"22955": "Mini Golf",
|
|
"24003": "Word Game",
|
|
"24904": "NSFW",
|
|
"25085": "Touch-Friendly",
|
|
"26921": "Political Sim",
|
|
"27758": "Voice Control",
|
|
"28444": "Snowboarding",
|
|
"29363": "3D Vision",
|
|
"29482": "Souls-like",
|
|
"29855": "Ambient",
|
|
"30358": "Nature",
|
|
"30927": "Fox",
|
|
"31275": "Text-Based",
|
|
"31579": "Otome",
|
|
"32322": "Deckbuilding",
|
|
"33572": "Mahjong",
|
|
"35079": "Job Simulator",
|
|
"42089": "Jump Scare",
|
|
"42329": "Coding",
|
|
"42804": "Action Roguelike",
|
|
"44868": "LGBTQ+",
|
|
"47827": "Wrestling",
|
|
"49213": "Rugby",
|
|
"51306": "Foreign",
|
|
"56690": "On-Rails Shooter",
|
|
"61357": "Electronic Music",
|
|
"65443": "Adult Content",
|
|
"71389": "Spelling",
|
|
"87918": "Farming Sim",
|
|
"91114": "Shop Keeper",
|
|
"92092": "Jet",
|
|
"96359": "Skating",
|
|
"97376": "Cozy",
|
|
"102530": "Elf",
|
|
"117648": "8-bit Music",
|
|
"123332": "Bikes",
|
|
"129761": "ATV",
|
|
"143739": "Electronic",
|
|
"150626": "Gaming",
|
|
"158638": "Cricket",
|
|
"176981": "Battle Royale",
|
|
"180368": "Faith",
|
|
"189941": "Instrumental Music",
|
|
"198631": "Mystery Dungeon",
|
|
"198913": "Motorbike",
|
|
"220585": "Colony Sim",
|
|
"233824": "Feature Film",
|
|
"252854": "BMX",
|
|
"255534": "Automation",
|
|
"323922": "Musou",
|
|
"324176": "Hockey",
|
|
"337964": "Rock Music",
|
|
"348922": "Steam Machine",
|
|
"353880": "Looter Shooter",
|
|
"363767": "Snooker",
|
|
"379975": "Clicker",
|
|
"454187": "Traditional Roguelike",
|
|
"552282": "Wholesome",
|
|
"603297": "Hardware",
|
|
"615955": "Idler",
|
|
"620519": "Hero Shooter",
|
|
"745697": "Social Deduction",
|
|
"769306": "Escape Room",
|
|
"776177": "360 Video",
|
|
"791774": "Card Battler",
|
|
"847164": "Volleyball",
|
|
"856791": "Asymmetric VR",
|
|
"916648": "Creature Collector",
|
|
"922563": "Roguevania",
|
|
"1003823": "Profile Features Limited",
|
|
"1023537": "Boomer Shooter",
|
|
"1084988": "Auto Battler",
|
|
"1091588": "Roguelike Deckbuilder",
|
|
"1100686": "Outbreak Sim",
|
|
"1100687": "Automobile Sim",
|
|
"1100688": "Medical Sim",
|
|
"1100689": "Open World Survival Craft",
|
|
"1199779": "Extraction Shooter",
|
|
"1220528": "Hobby Sim",
|
|
"1254546": "Football (Soccer)",
|
|
"1254552": "Football (American)",
|
|
"1368160": "AI Content Disclosed",
|
|
}
|
|
} |