wechaty / getting-started

A Starter Project Template for Wechaty works out-of-the-box
https://gitpod.io/#https://github.com/wechaty/wechaty-getting-started
Apache License 2.0
796 stars 351 forks source link

WIP: [Ellipsis] Feature request: create an ice-breaking game in a group chat #310

Open ellipsis-dev[bot] opened 4 months ago

ellipsis-dev[bot] commented 4 months ago

:warning: Sorry, I timed out before I could complete this PR, so I've submitted my work in progress.

Summary:

:warning: We couldn't build/test your project to verify our changes. Add a Dockerfile to significantly improve code quality.

Issue: resolves https://github.com/wechaty/getting-started/issues/309

Implementation:

Step 1: Add command handling for the ice-breaking game

Add code to handle the '/☕️' command in the group chat. This code should be added in the file where commands are handled. If the command is sent in the group with the topic 'The Big Community', the game should be triggered. The person who sent the command should be set as the initiator of the game. If the command is sent in a group with less than 3 members, a message should be sent to the group informing them that the game can't be started because there are not enough members.

Step 2: Modify group creation code to select random members

Modify the 'createDingRoom' function in the file '/examples/advanced/room-bot.js' to select two random members from the group instead of adding specific contacts. Use a random number generator to select the members and check that the same member is not selected twice. Set the topic of the new group to 'Coffee Chat' and the initiator of the game as the person who sent the command. Add a check to ensure that the group has at least 3 members before starting the game.

Step 3: Add a welcome message to the new group

Use the say() method of the room object to send a welcome message to the new group. The message should be formatted as 'Welcome to the coffee chat group! This group is requested by ${INITIATOR_NAME}, and your random partners are ${GAMERS_NAME}. I hope you guys have a good ice-breaking time!'. Replace ${INITIATOR_NAME} with the name of the initiator and ${GAMERS_NAME} with the names of the gamers.

Step 4: Add code to dismiss the group if there are less than 3 people in it

Add code to check the number of members in the group and dismiss the group if there are less than 3 people in it. This code should be added in the file where the group chat functionality is handled. Use the methods for removing members from a room to dismiss the group.

Report: Step Result Details
1
Add command handling for the ice-breaking gameImplemented the feature request to create an ice-breaking game in a group chat. Added command handling for the '/☕️' command, modified the group creation code to select random members, added a welcome message to the new group, and added code to dismiss the group if there are less than 3 people in it.
2
Modify group creation code to select random membersNo result
3
Add a welcome message to the new groupNo result
4
Add code to dismiss the group if there are less than 3 people in itNo result

Something look wrong?: If this Pull Request doesn't contain the expected changes, add more information to #309. Then, try again. For more information, check the documentation.

coderabbitai[bot] commented 4 months ago

[!IMPORTANT]

Auto Review Skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share - [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai) - [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai) - [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai) - [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)
Tips ### Chat There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai): - Review comments: Directly reply to a review comment made by CodeRabbit. Example: - `I pushed a fix in commit .` - `Generate unit testing code for this file.` - `Open a follow-up GitHub issue for this discussion.` - Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples: - `@coderabbitai generate unit testing code for this file.` - `@coderabbitai modularize this function.` - PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples: - `@coderabbitai generate interesting stats about this repository and render them as a table.` - `@coderabbitai show all the console.log statements in this repository.` - `@coderabbitai read src/utils.ts and generate unit testing code.` - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.` Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. ### CodeRabbit Commands (invoked as PR comments) - `@coderabbitai pause` to pause the reviews on a PR. - `@coderabbitai resume` to resume the paused reviews. - `@coderabbitai review` to trigger a review. This is useful when automatic reviews are disabled for the repository. - `@coderabbitai resolve` resolve all the CodeRabbit review comments. - `@coderabbitai help` to get help. Additionally, you can add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed. ### CodeRabbit Configration File (`.coderabbit.yaml`) - You can programmatically configure CodeRabbit by adding a `.coderabbit.yaml` file to the root of your repository. - Please see the [configuration documentation](https://docs.coderabbit.ai/guides/configure-coderabbit) for more information. - If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: `# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json` ### Documentation and Community - Visit our [Documentation](https://coderabbit.ai/docs) for detailed information on how to use CodeRabbit. - Join our [Discord Community](https://discord.com/invite/GsXnASn26c) to get help, request features, and share feedback. - Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.