{"id":28445139,"url":"https://github.com/wechaty/friday","last_synced_at":"2026-03-04T22:31:51.815Z","repository":{"id":38319278,"uuid":"203910255","full_name":"wechaty/friday","owner":"wechaty","description":"Friday is an Assistant BOT Built on Wechaty for Serving our Community","archived":false,"fork":false,"pushed_at":"2024-02-22T08:38:29.000Z","size":989,"stargazers_count":83,"open_issues_count":24,"forks_count":20,"subscribers_count":101,"default_branch":"main","last_synced_at":"2025-08-25T15:19:07.172Z","etag":null,"topics":["assistant","bot5","chatbot","wechaty"],"latest_commit_sha":null,"homepage":"http://friday.chatie.io:5200","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wechaty.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2019-08-23T02:38:04.000Z","updated_at":"2024-09-13T03:21:47.000Z","dependencies_parsed_at":"2024-01-23T21:15:51.447Z","dependency_job_id":"d77633bf-9d9a-4856-88e3-5d9b3b6b3c7b","html_url":"https://github.com/wechaty/friday","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/wechaty/friday","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wechaty%2Ffriday","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wechaty%2Ffriday/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wechaty%2Ffriday/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wechaty%2Ffriday/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wechaty","download_url":"https://codeload.github.com/wechaty/friday/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wechaty%2Ffriday/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30096762,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T21:59:23.547Z","status":"ssl_error","status_checked_at":"2026-03-04T21:57:50.415Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["assistant","bot5","chatbot","wechaty"],"created_at":"2025-06-06T10:11:25.028Z","updated_at":"2026-03-04T22:31:51.791Z","avatar_url":"https://github.com/wechaty.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Friday.BOT\n\n[![Powered by Wechaty](https://img.shields.io/badge/Powered%20By-Wechaty-brightgreen.svg)](https://wechaty.js.org)\n[![Node.js CI](https://github.com/wechaty/friday/workflows/Node.js%20CI/badge.svg)](https://github.com/wechaty/friday/actions?query=workflow%3A%22Node.js+CI%22)\n[![Docker](https://github.com/wechaty/friday/workflows/Docker/badge.svg)](https://github.com/wechaty/friday/actions?query=workflow%3ADocker)\n[![ES Modules](https://img.shields.io/badge/ES-Modules-brightgreen)](https://github.com/Chatie/tsconfig/issues/16)\n\nFriday Bot is designed for serving the Wechaty community purpose.\n\n![Friday](docs/images/friday.svg)\n\n\u003e Image: [Five Dollar Friday](https://www.robsdogs.net.au/product/five-dollar-friday/)\n\n## Staging\n\nWe are current DevOps the master branch from the repo to Heroku under the protection of GitHub Actions.\n\nYou can visit the staging system at \u003chttp://friday.chatie.io/\u003e\n\n## DDD \u0026 CQRS\n\n- [Refactoring Friday BOT with NestJS, Domain-driven Design (DDD), and CQRS, @huan, Feb 27, 2022](https://wechaty.js.org/2022/02/27/refactoring-friday-bot-with-nestjs-ddd-cqrs/)\n- [CQRS Wechaty](https://github.com/wechaty/cqrs): An event-driven architecture wrapper for Wechaty that applies the CQS principle by using separate Query and Command messages to retrieve and modify the bot state, respectively.\n\n## Contributors\n\n[![contributor](https://sourcerer.io/fame/huan/wechaty/friday/images/0)](https://sourcerer.io/fame/huan/wechaty/friday/links/0)\n[![contributor](https://sourcerer.io/fame/huan/wechaty/friday/images/1)](https://sourcerer.io/fame/huan/wechaty/friday/links/1)\n[![contributor](https://sourcerer.io/fame/huan/wechaty/friday/images/2)](https://sourcerer.io/fame/huan/wechaty/friday/links/2)\n[![contributor](https://sourcerer.io/fame/huan/wechaty/friday/images/3)](https://sourcerer.io/fame/huan/wechaty/friday/links/3)\n[![contributor](https://sourcerer.io/fame/huan/wechaty/friday/images/4)](https://sourcerer.io/fame/huan/wechaty/friday/links/4)\n[![contributor](https://sourcerer.io/fame/huan/wechaty/friday/images/5)](https://sourcerer.io/fame/huan/wechaty/friday/links/5)\n[![contributor](https://sourcerer.io/fame/huan/wechaty/friday/images/6)](https://sourcerer.io/fame/huan/wechaty/friday/links/6)\n[![contributor](https://sourcerer.io/fame/huan/wechaty/friday/images/7)](https://sourcerer.io/fame/huan/wechaty/friday/links/7)\n\n## History\n\n### master v1.13 Jan 29, 2022\n\nUse [NestJS](https://docs.nestjs.com/recipes/cqrs) to build the server.\n\n#### DDD \u0026 CQS\n\n- [Layers in DDD microservices](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/ddd-oriented-microservice#layers-in-ddd-microservices)\n- Effective Aggregate Design\n  - [Part I: Modeling a Single Aggregate](https://www.dddcommunity.org/wp-content/uploads/files/pdf_articles/Vernon_2011_1.pdf)\n  - [Part II: Making Aggregates Work Together](https://www.dddcommunity.org/wp-content/uploads/files/pdf_articles/Vernon_2011_2.pdf)\n  - [Part III: Gining Insight Through Discovery](https://www.dddcommunity.org/wp-content/uploads/files/pdf_articles/Vernon_2011_3.pdf)\n- [Domain-Application-Infrastructure Services pattern](https://badia-kharroubi.gitbooks.io/microservices-architecture/content/patterns/tactical-patterns/domain-application-infrastructure-services-pattern.html)\n\n#### Tips \u0026 Troubleshooting\n\n1. Do not use `import type {} from 'xxx'` to import a Injectable. Use `import {} from 'xxx'` instead to import the values.\n1. Every `Handlers`, `Commands`, `Queries` classe must have a `Handler` class because NestJS requires the decorator `@{Command,Events,Query}Handler()` to register those classes. You will get error `TypeError: Cannot read properties of undefined (reading 'id') at EventBus.defaultGetEventId [as getEventId]` if you forget to register the handler class.\n\n## v0.11 (Dec 2021)\n\n1. ES Module support\n\n### v0.9 (Aug 22, 2020) On Gitter\n\n[Gitter.im](https://gitter.im/wechaty/wechaty) synced with WeChat rooms!\n\n1. Start using [wechaty-puppet-gitter](https://github.com/wechaty/wechaty-puppet-gitter) to sync message between puppets.\n\n### v0.8 (Aug 4, 2020) On Tecent Official Account Platform!\n\n1. The first version that managing two Wechaty bots together!\n1. Start using [wechaty-puppet-official-account](https://github.com/wechaty/wechaty-puppet-official-account)\n\n### v0.6 (Jul 18, 2020) Added Wechaty Vorpal CLI Comands!\n\n1. Fully powered by [Wechaty Vorpal](https://github.com/wechaty/wechaty-vorpal) and [Wechaty Vorpal Contrib](https://github.com/wechaty/wechaty-vorpa-contrib) commands!\n1. Restructure directories \u0026 source code files\n1. Add Dockerfile so that we can deploy Friday.BOT with the power of Docker!\n\n### v0.4 (Jun 15, 2020) Refactored with Wechaty Plugin!\n\n1. Fully powered by Wechaty Plugins! See: [wechaty-plugin-contrib](https://github.com/wechaty/wechaty-plugin-contrib)\n1. Restructure directories \u0026 source code files\n\n### v0.2 (Dec 25, 2019) Added Basic Functions\n\nBasic functions like:\n\n1. Room Inviter (by ...)\n1. Vote Out (by @windmemory)\n1. Crontab (by @qhduan)\n1. etc.\n\n### v0.0.1 (Aug 23, 2019)\n\nFriday Bot initialized by BOT5.Club members.\n\n## Maintainers\n\n- [Huan](https://github.com/huan) [(李卓桓)](http://linkedin.com/in/zixia) Creator of [Wechaty](https://github.com/wechaty/wechaty), Tencent TVP of Chatbot, \u003czixia@zixia.net\u003e\n- [Rui](https://github.com/lijiarui) [(李佳芮)](https://lijiarui.github.io) Co-creator of [Wechaty](https://github.com/wechaty/wechaty), Founder \u0026 CEO of [JuziBot](https://www.juzi.bot/)\n- [Yuan](https://github.com/windmemory) (高原) Co-founder \u0026 CTO of [JuziBot](https://www.juzi.bot/)\n- [Hua](https://github.com/qhduan) (段清华) Founder \u0026 CTO of [KDF.ai](https://kdf.ai)\n\nSee: \u003chttps://github.com/orgs/wechaty/teams/chairs/members\u003e\n\n## Sponsors\n\n1. Google Cloud credits are provided for this project. #GeminiSprint\n\n## Copyright \u0026 License\n\n- Code \u0026 Docs © 2019-now Wechaty Contributors\n- Code released under the Apache-2.0 License\n- Docs released under Creative Commons\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwechaty%2Ffriday","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwechaty%2Ffriday","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwechaty%2Ffriday/lists"}