{"id":20529657,"url":"https://github.com/roughnecks/zed","last_synced_at":"2025-05-09T12:31:04.056Z","repository":{"id":38457304,"uuid":"165524196","full_name":"roughnecks/ZED","owner":"roughnecks","description":"Steam Chat and Trading BoT","archived":true,"fork":false,"pushed_at":"2024-07-08T07:23:46.000Z","size":880,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-30T03:31:29.068Z","etag":null,"topics":["bot","mongodb","nodejs","steam"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/roughnecks.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG_BEFORE_INITIAL_COMMIT.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-13T15:53:31.000Z","updated_at":"2024-09-20T15:08:34.000Z","dependencies_parsed_at":"2024-01-10T08:41:41.143Z","dependency_job_id":"e500daa6-a511-4233-a01b-e92950e06dcc","html_url":"https://github.com/roughnecks/ZED","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roughnecks%2FZED","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roughnecks%2FZED/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roughnecks%2FZED/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roughnecks%2FZED/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/roughnecks","download_url":"https://codeload.github.com/roughnecks/ZED/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253251185,"owners_count":21878433,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bot","mongodb","nodejs","steam"],"created_at":"2024-11-15T23:33:28.265Z","updated_at":"2025-05-09T12:31:03.789Z","avatar_url":"https://github.com/roughnecks.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ZED\n\n## Branches explained\n\n* master: always current.\n* development: new code which will hopefully end up in master.\n* nodb: this bot instance doesn't use Mongo DB so it doesn't do price checking for lotteries.\n* donation-only: this bot instance only accepts all donations and all kind of offers from bot's owner (doesn't use Mongo DB and doesn't do lotteries).\n* donation-only-without-2FA: this bot instance only accepts donations (no item loss) and doesn't use Mobile Auth (doesn't use Mongo DB and doesn't do lotteries).\n* 1to1: Heavily Customized BoT - Do not use unless you know what you're doing.\n\n***\n\n**_Steam Trading/CHAT BoT | Handles Trade Offers, Friends Invites and Group CHATs_**\n\nThe following is a list of functions that ZED provides at the moment:\n\n* Accept any offer from owner.\n* Accept donations from everyone (no items loss).\n* Accept Friendship Invitations from everyone.\n* Simple interaction via chat and signing friends profiles upon request.\n* Post a comment on its own profile with a \"Thank You\" message to donors (Donation must contain \u003e4 Items).\n* New items check (logs to console when our inventory has new items).\n* Chat messages check (logs to console when bot receives a chat message).\n* Notifications check (logs to console if any new comment is available).\n* Lottery: Send any 1 Trading Card, Background, Emoticon or Booster Pack to the BoT and it will send you back a random Item of the same type (card for card, emote for emote etc...).\n* Group CHAT: Join the BoT to any Group CHAT manually or via config file and start using commands (WIP).\n\n\n## Required software\n\n* Node.js (Recommended: Latest LTS Version: 10.15.1 (includes npm 6.4.1))\n* MongoDB Server (https://www.mongodb.com/download-center/community)\n\n## Required npm modules (dependencies)\n\n* axios\n* chalk\n* console-stamp\n* mongodb\n* steam-totp\n* steam-tradeoffer-manager\n* steam-user\n* steamcommunity\n\nRun `npm install` inside BoT's directory to install all dependencies.\n\n## Configuration\n\n### Edit \"config.json\"\n\n`username`: bot's Steam Account Name\n\n`password`: bot's Steam Account Password\n\n`sharedSecret`: You might be wondering where to find the shared/identity secret and there are actually many tutorials depending on your device. [1]\n\n`identitySecret`: Same as above.\n\n`ownerSteamID64`: You can get all needed Steam IDs here: https://steamdb.info/calculator/\n\n`ownerSteamID3`: See Above\n\n`botSteamID64`: See Above\n\n`botSteamID3`: See Above\n\n`ClanChatGroupID`: Your Group's ID64 to have the BoT automatically join it. [2]\n\n`customGame`: This is Non-Steam Game Played by the BoT - Something like \"Trash BoT - Accepting Junk\" or whatever you want.\n\n`lockedItems`: This is an array of Items you don't want to be traded by the BoT (maybe you're using them in your profile, like a background).\n\n`familyViewPin`: If your account has Family View enabled, you need to supply your PIN here.\n\n`updatePricesOnStartup`: If you want the bot to update prices for all the Items in its Steam Inventory at startup, set this to true.\n\n`syncInventoryWithDbOnStartup`: Update DB entries syncing them with bot's Inventory (you can also sync manually with Admin-Only \"!sync\" command).\n\n`openweathermapAPI`: Not mandatory but \"!weather\" command won't work without it. If you want to get one for free, visit: \"https://openweathermap.org/api\".\n\n`steamAPI`: Not mandatory but \"!tf2\" command won't work without it. You can get yours for free by visiting \"https://steamcommunity.com/dev/apikey\".\n\n`db \"connectionString\"`: This depends on your MongoDB Configuration - Something like this should work: \"mongodb://localhost:27017/zed\".\n\n\n[1] Shared/Identity secrets must be extracted from your Two Factor Authenticator App, so it's always a different process depending on which device\nyou're actually using: iPhone - Android - 3rd Party Desktop App like WinAuth etc...\n[2] You can check steamID of your group by navigating to its page, then adding /memberslistxml?xml=1 to the end of the link, so the link will look like this: \"https://steamcommunity.com/groups/wrongditch/memberslistxml?xml=1\". Then you can get steamID of your group from the result, it's in \u003cgroupID64\u003e tag.\n\n## Starting the BoT\n\n`npm start`\n\n## Commands\n\n### Public\n\n`!help`: You'll get a list of all public commands.\n\n### Admin-Only\n\n`!sync`: Sync DB and Inventory Items manually.\n\n## Group CHAT Commands\n\n`!help` || `!commands`: You'll get a list of all commands.\n\n### Featured Commands\n\n`!weather \u003ccity\u003e \u003cunit of measure\u003e`: Query \"openweathermaps\" to get weather info for chosen city in Metric or Imperial units.\n\n`!tf2 \u003cclass\u003e`: Get personal Team Fortress 2 Stats for chosen class.\n\n`!quote ...`: Manages CHAT Group quotes - Read in-line command help.\n\n`!csgo`: Get personal CS:GO Stats.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froughnecks%2Fzed","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Froughnecks%2Fzed","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froughnecks%2Fzed/lists"}