{"id":23936934,"url":"https://github.com/cryptofyre/swimtrunks","last_synced_at":"2026-05-18T05:04:51.509Z","repository":{"id":270924371,"uuid":"911866674","full_name":"cryptofyre/Swimtrunks","owner":"cryptofyre","description":"A Discord bot that monitors SDRTrunk recordings and transcriptions, providing real-time updates of radio communications in a clean, organized format.","archived":false,"fork":false,"pushed_at":"2025-01-04T04:13:41.000Z","size":0,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-04T04:25:23.882Z","etag":null,"topics":["bot","discord","oss","sdr","trunking"],"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/cryptofyre.png","metadata":{"files":{"readme":"README.md","changelog":null,"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},"funding":{"ko_fi":"cryptofyre"}},"created_at":"2025-01-04T03:52:48.000Z","updated_at":"2025-01-04T04:13:44.000Z","dependencies_parsed_at":"2025-01-04T04:25:26.737Z","dependency_job_id":"d224b4c8-4154-4bb2-84ab-1e4b905f58e8","html_url":"https://github.com/cryptofyre/Swimtrunks","commit_stats":null,"previous_names":["cryptofyre/swimtrunks"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cryptofyre%2FSwimtrunks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cryptofyre%2FSwimtrunks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cryptofyre%2FSwimtrunks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cryptofyre%2FSwimtrunks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cryptofyre","download_url":"https://codeload.github.com/cryptofyre/Swimtrunks/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240409465,"owners_count":19796792,"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","discord","oss","sdr","trunking"],"created_at":"2025-01-06T01:18:21.792Z","updated_at":"2026-05-18T05:04:46.468Z","avatar_url":"https://github.com/cryptofyre.png","language":"JavaScript","funding_links":["https://ko-fi.com/cryptofyre"],"categories":[],"sub_categories":[],"readme":"# Swimtrunks\n\nA Discord bot that monitors SDRTrunk recordings and transcriptions, providing real-time updates of radio communications in a clean, organized format.\n\n## 🌟 Features\n\n- Real-time monitoring of SDRTrunk recordings\n- Efficient private detail censoring\n- Automatic transcription posting\n- Department color coding and categorization\n- Department-based emoji indicators\n- System status monitoring\n- Detailed logging system\n- Graceful startup and shutdown handling\n- SQLite database integration\n\n## 📋 Prerequisites\n\n- Node.js v18 or higher\n- SDRTrunk with recording capability\n- My sdrTrunkTranscriber fork\n- SQLite database setup from SDRTrunk\n- Discord bot token and channel\n\n## 🔧 Dependencies\n\n```json\n{\n  \"dependencies\": {\n    \"discord.js\": \"^14.x\",\n    \"sqlite3\": \"^5.x\",\n    \"chalk\": \"^4.1.2\",\n    \"systeminformation\": \"^5.x\",\n    \"xml2js\": \"^0.6.x\"\n  }\n}\n```\n\n## 🚀 Installation\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/cryptofyre/swimtrunks.git\ncd swimtrunks\n```\n\n2. Install dependencies:\n```bash\nnpm install\n```\n\n3. Create `config.json`:\n```json\n{\n    \"discord\": {\n        \"token\": \"YOUR_BOT_TOKEN\",\n        \"channelId\": \"YOUR_CHANNEL_ID\"\n    },\n    \"database\": {\n        \"path\": \"/path/to/sdrtrunk/recordings.db\"\n    },\n    \"playlist\": {\n        \"path\": \"/path/to/sdrtrunk/playlist/default.xml\"\n    },\n    \"polling\": {\n        \"interval\": 5000,\n        \"batchSize\": 5\n    },\n    \"logging\": {\n        \"level\": \"info\",\n        \"timestamps\": true,\n        \"colors\": true\n    }\n}\n```\n\n## 📝 Configuration\n\n- `discord.token`: Your Discord bot token\n- `discord.channelId`: Channel ID where messages will be sent\n- `database.path`: Path to SDRTrunk's SQLite database\n- `playlist.path`: Path to SDRTrunk's playlist XML\n- `polling.interval`: How often to check for new recordings (ms)\n- `polling.batchSize`: Maximum number of recordings to process at once\n- `logging`: Logging configuration options\n\n## 🎯 Usage\n\nStart the bot:\n```bash\nnode main.js\n```\n\n## 🚨 Department Colors\n\nThe bot automatically color-codes departments:\n- 👮 Law Enforcement: Blue\n- 🚒 Fire Department: Red\n- 🚨 Emergency Management: Orange\n- 🔧 Public Works: Green\n- 🎓 Schools: Purple\n- 📡 Radio/Events: Yellow\n- ✈️ Airport Operations: Light Blue\n- 🔔 Other: Default Blue\n\n## 📊 System Monitoring\n\nThe bot provides system information on startup:\n- System specifications\n- Resource usage\n- SDRTrunk status\n- Transcriber status\n- Memory utilization\n\n## 📜 License\n\nThis project is licensed under GPL-3.0. See the LICENSE file for details.\n\n## 👥 Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Commit your changes\n4. Push to the branch\n5. Create a Pull Request\n\n## ⚠️ Important Notes\n\n- Never commit your `config.json` with sensitive information\n- Ensure proper file permissions for database and XML access\n- Monitor the logs for any potential issues\n- Keep your dependencies updated\n\n## 🤝 Support\n\nFor support, please open an issue in the GitHub repository.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcryptofyre%2Fswimtrunks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcryptofyre%2Fswimtrunks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcryptofyre%2Fswimtrunks/lists"}