Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

screams: targeted yells with acknowledgement #2

Open
darrenwee opened this issue Jun 8, 2016 · 1 comment
Open

screams: targeted yells with acknowledgement #2

darrenwee opened this issue Jun 8, 2016 · 1 comment
Assignees

Comments

@darrenwee
Copy link
Owner

darrenwee commented Jun 8, 2016

Background

Yells are messages that are broadcast to all users on the mailing list (see /who) by a person requester without requiring acknowledgement.

Screams will be similar to yells but are (1) targeted to groups and (2) require acknowledgement.

To implementing acknowledgement, all messages (scream or yell) with now be indexed with an ID.

/scream

Usage: /scream

Launches the screaming wizard for the requester.

Wizard Steps

Wizard must be called with /scream without arguments. It will take 2 messages to complete the screaming wizard.

  1. Request for list of groups targets to scream to. Separate by at least 1 space.
  2. Request for the message message to be sent.

message will then be broadcast to all users that belong to the groups in targets.

Early Termination

User will be able to terminate screaming wizard at any step by sending the /stop command.

Illegal Parameter Check

Check for valid group names in targets at step (1). We will follow the group key listed inside authorized.py which is also returned to the user upon a /who query.

Supporting Functions

/from

Usage: /from <person> or /from <group>

Returns the 5 most recent messages from person or from anyone in group, or No such messages found. to requester.

/get

Usage: /get <id>

Returns a message with ID id to the requester, or No such message found. to requester.

/read

Usage: /read <id> by requester

Flip the hasRead flag for requester for message ID id and return success/failed notification.

/status

Usage: /status <id>

Returns a list of who has read, not read or failed to receive message ID id.

House Collapse

If targets contains cogls or vogls, we will perform house collapse where only the COGL/VOGL from each house will need to respond (i.e. use /read <id>). This is reflected in /status by only showing which houses have acknowledged.

Example

The reply from AndreaBot should look like:

Read:
1. Nox       2. Verde
3. Sigvar

Not read:
1. Jileen    2. Aether
3. Deborah

Failed to receive:
1. Hydra

This will enable the /scream requester to quickly check which houses have read the announcement. Non-house affiliated members are represented by their names as per normal.

If at least 1 member from house can receive, house will never be recorded as failed to receive. Similarly, if at least 1 member from house has read the message, house will be shown as read.

/vstatus

Usage: /vstatus <id>

Similar to the return from /status but without house collapse, i.e. all recipients are individually listed.

@darrenwee darrenwee self-assigned this Jun 8, 2016
@darrenwee
Copy link
Owner Author

If we can resolve #3, we can ignore implementation of /from and /get as we can simply scroll up.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant