{"id":17967287,"url":"https://github.com/ruriys/hiurachat","last_synced_at":"2025-04-03T21:28:35.853Z","repository":{"id":259663745,"uuid":"878927533","full_name":"RuriYS/HiuraChat","owner":"RuriYS","description":"A bot framework for chat.hiura.site","archived":false,"fork":false,"pushed_at":"2024-11-04T08:23:06.000Z","size":87,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-09T09:29:22.383Z","etag":null,"topics":["bot","golang"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RuriYS.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}},"created_at":"2024-10-26T13:49:49.000Z","updated_at":"2024-11-04T08:23:00.000Z","dependencies_parsed_at":"2025-02-09T09:37:07.089Z","dependency_job_id":null,"html_url":"https://github.com/RuriYS/HiuraChat","commit_stats":null,"previous_names":["ruriys/hiurachatgo","ruriys/hiurachat"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RuriYS%2FHiuraChat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RuriYS%2FHiuraChat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RuriYS%2FHiuraChat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RuriYS%2FHiuraChat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RuriYS","download_url":"https://codeload.github.com/RuriYS/HiuraChat/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247081441,"owners_count":20880428,"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","golang"],"created_at":"2024-10-29T14:05:14.035Z","updated_at":"2025-04-03T21:28:35.848Z","avatar_url":"https://github.com/RuriYS.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HiuraChat 🗣️\n\nA **cool** **robust** chat bot and framework written in **Go** ✨.\n\n## What's This?\n\nHiuraChat is a WebSocket-based chat bot that's built to be reliable and nice to work with. It's got some neat features like:\n\n- 🔄 Auto-reconnection with smart backoff\n- 🚦 Built-in rate limiting to play nice with servers\n- 💬 Easy command handling\n- 🏓 Ping/pong heartbeat system\n- 📝 Clean logging system\n\n## Installation\n\n### Using Pre-built Binary\n\n1. Head over to the [Actions](https://github.com/RuriYS/HiuraChat/actions) or [Releases](https://github.com/RuriYS/HiuraChat/releases) page\n2. Download the latest artifact or binary for your platform\n3. If you downloaded the artifact, extract it\n4. Make it executable (Linux):\n\n```bash\nchmod +x hiurachat\n```\n\n### Using Docker\n\nClone and run using Docker Compose:\n\n```bash\ngit clone https://github.com/RuriYS/HiuraChat\ncd HiuraChat\ndocker compose build\ndocker compose up -d\n```\n\n### Building from Source\n\n1. First, make sure you've got Go 1.23+ installed\n\n2. Clone this repo:\n\n```bash\ngit clone github.com/RuriYS/hiurachat\ncd hiurachat\n```\n\n3. Build it:\n\n```bash\ngo build\n```\n\n## Configuration\n\nCreate a `config.yml` file:\n\n```yaml\nbot:\n  prefix: \"!\"          # Command prefix\n  response_prefix: \"\u003e\" # How the bot starts its responses\n\nwebsocket:\n  url: \"ws://your-chat-server/ws\"\n\nlogger:\n  level: \"info\"    # debug, info, warn, or error\n  use_colors: true # Pretty colors in console\n```\n\nIf you're using Docker, mount your config file as shown in the docker-compose.yml:\n\n```yaml\nvolumes:\n  - ./config.yml:/root/config.yml\n  - ./logs:/root/logs\n```\n\n## Running\n\n### Binary\n\n```bash\n./hiurachat\n```\n\n### Source\n\n```bash\ngo run main.go\n```\n\n### Docker\n\n```bash\ndocker compose up -d\n```\n\n## Built-in Commands\n\n- `!ping` - Check if the bot is alive (and see the latency!)\n- `!echo \u003cmessage\u003e` - Have the bot repeat something\n- `!help \u003ccommand\u003e` - Get info about commands\n\n## Adding Your Own Commands\n\nIt's pretty easy to add new commands! Check out `internal/bot/commands.go` - just add your command to the `initializeCommands` function:\n\n```go\n\"yourcommand\": {\n    Name:        \"yourcommand\",\n    Description: \"Does something cool\",\n    Execute: func(args []string) (string, bool) {\n        return \"\u003e Something cool happened!\", true\n    },\n},\n```\n\n## License\n\nThis project is licensed under the GNU Affero General Public License v3.0 - see the [LICENSE](LICENSE) file for details.\n\n---\n\nBuilt with ❤️ and probably too much coffee ☕\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fruriys%2Fhiurachat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fruriys%2Fhiurachat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fruriys%2Fhiurachat/lists"}