Difference between revisions of "User:Zai Lynch/Public Suggestion Box/VTeam Bot"

From Second Life Wiki
Jump to navigation Jump to search
(draft)
 
m (→‎Send IM: fixing width issue for smaller monitors)
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
Ability to:
{| width="100%"
|-
|valign="top"|
<div id="box">
== Disclaimer ==
<div style="padding: 0.5em">
This page lists ideas for a project which ''might'' become realised, but which is in <u>no way official yet</u>. It is a work in progress and just lists suggestions which are up for discussion at the [[{{TALKPAGENAME}}|related discussion page]].
</div></div>
 
__TOC__
 
<div id="box">
== Suggested Usage ==
<div style="padding: 0.5em">
In order to ensure that it becomes an official project, the bot should be hosted on a LL server. The account should have Linden access only. The bot should have a name which makes it obviouse for anyone that it is
#a bot (so people aren't discouraged when it doesn't answer to support questions ^_^)
#an official project (so people aren't afraid of a scam)
Suggested name: ''VTeamBot Linden''
 
=== Invite to Q&A Group ===
 
A group inviter to the Q&A group, placed at the VTeam kiosk in SLVEC. The inviter item checks if the avatar requesting the invitation is currently in the Second Life Mentors group and asks if the [[Second Life Mentor Q&A]] page has been read and the guidelines been understood (via menu). In case the answer is ''No'', the applicant gets a link to the Wiki page and is asked to apply again when s/he read it. In case the answer is ''Yes'', the item sends an IM to the bot and the bot sends an invitation to the applicant.
 
 
=== Set to Opt-In Mentor Roles ===
 
Another item placed at the VTeam kiosk in SLVEC (could be the same item as above, but might cause less confusion in case it's another).<br>
The item checks if the applicant is currently in the Second Life Mentor group and asks via menu, which grouprole s/he'd like to join. It always asks if the connected Wiki page has been read and understood. Answer "''No''" results in the link beeing sent, "''Yes''" results in the role beeing set and an confirmation message for the applicant. I would suggest to use the automatted invite for the roles [[SL Volunteer Mentor Buddies|Buddy]], [[Mentors Teaching Mentors|Coach]], [[SL Mentor Greeters|Greeter]] and [[SL Volunteer Mentor Linguists|Linguist]]. The roles [[Buddy Shadowing|Apprentice Buddy]], [[Orientations Offered By Mentor Coaches|Orientation Coach]] and [[SL Volunteer Mentor Scribes|Scribe]] should be processed via VTeam manually, using the current survey monkeys, since they need further approvement. For these roles, the item could provide the related Wiki page with explanations.<br>
The item could also give the ability to leave a role again. In case the Mentor leaves the Apprentice Buddy role, the connected [[User:Zai Lynch/Buddy Panel|Buddy Panel]] could automatically be updated. In case the Mentor leaves the Buddy role, the Buddy Panel could be automatically reset and the mentor could be removed from the Apprentice Buddy role too.
 
 
=== Process Apprentice Mentors ===
 
An item replacing the SLVEC Apprentice Buddy / Shadowing box. In case an avatar clicks it, the item checks if the avatar is currently in the Second Life Mentors group. A menu pops up, asking if the avatar would like to provide a list with attendees of an Orientation Class or a shadowing voucher.
*List of attendees to an Orientation Class
:The item requests a test from the bot if wether or not the avatar is in the Orientation Coach role of the Second Life Apprentice Mentor group. In case the answer is "''Yes''", the item enables inventory drop and the avatar can drop a notecard with a list of attendees. These are stored in a database for later use. The notecard itself becomes either cleared or send to a VTeam Member (Lexie?) for documentation / debugging purposes.
:Any item which is droped in and which isn't a notecard, will be ignored and deleted or returned.
*Shadowing Voucher
:The item sends a request to the bot if wether or not the avatar is in the Apprentice Buddy role of the Second Life Apprentice Mentor group. In case the answer is "''Yes''", the avatar is asked to state the name of the Apprentice Mentor in open chat. It becomes stored in a database.
Database: in case an entry in the database states, that an Avatar has attended an Orientation Class '''and''' has shadowed an Apprentice Buddy, the item requests the bot to
#eject the connected Avatar from the Second Life Apprentice Mentor Group
#add the connected Avatar to the Second Life Mentor Group
The database entry becomes deleted afterwards.<br>
'''Attention''': What happens to group invites, in case an Avatar is in busy mode? In case they become skipped, then it would be a good idea to automatically create and store a list of all processed Apprentice Mentors within a certain time frame.
 
 
=== Orientation Class Attendence Test ===
 
In case the "Process Apprentice Mentors" feature from above becomes used, there could be an item requesting if wether or not an Apprentice Mentor has already attended an Orientation Session. So Apprentice Buddies can ensure that only those are shadowing them, who already attended the class.
 
 
=== VTeam Use ===
 
The VTeam could use the bot to send items or IMs to a defined range of recipients. Examples
*Ask any Apprentice Buddy to have a look at a certain survey
*Ask any Scribe to to have a look at a certain Wiki page / Project
*Inform any commitee member about a certain meeting
*...
It can also be used to easily ensure if a Mentor is in a certain role. So for example: Someone applies for beeing added to the "Apprentice Buddy" role, it got to be ensured that the applicant is a Buddy already. A VTeam member could write an IM to the bot, providing the name of the Mentor and it would reply if wether or not the Mentor is a Buddy already. This is optional, since the Buddy role is totally opt-in and just a few clicks away.
</div></div>
 
 
<div id="box">
== Bot Requirements ==
<div style="padding: 0.5em">
The bot should have the ability to:
*[http://www.libsecondlife.org/docs/trunk/html/M_libsecondlife_GroupManager_Invite.htm invite to a group]
*[http://www.libsecondlife.org/docs/trunk/html/M_libsecondlife_GroupManager_Invite.htm invite to a group]
*[http://www.libsecondlife.org/docs/trunk/html/M_libsecondlife_GroupManager_EjectUser.htm eject users from the group]
*[http://www.libsecondlife.org/docs/trunk/html/M_libsecondlife_GroupManager_EjectUser.htm eject from the group]
*[http://www.libsecondlife.org/docs/trunk/html/M_libsecondlife_GroupManager_AddToRole.htm assign to a role]
*[http://www.libsecondlife.org/docs/trunk/html/M_libsecondlife_GroupManager_AddToRole.htm assign to a role]
*[http://www.libsecondlife.org/docs/trunk/html/M_libsecondlife_GroupManager_RemoveFromRole.htm remove from a role]
*[http://www.libsecondlife.org/docs/trunk/html/M_libsecondlife_GroupManager_RemoveFromRole.htm remove from a role]
Line 7: Line 72:
*[http://www.libsecondlife.org/docs/trunk/html/T_libsecondlife_GroupManager_GroupRolesMembersCallback.htm retrieve a list of groupmembers who are in a certain role]
*[http://www.libsecondlife.org/docs/trunk/html/T_libsecondlife_GroupManager_GroupRolesMembersCallback.htm retrieve a list of groupmembers who are in a certain role]
*listen to IMs from (certain) avatars and objects
*listen to IMs from (certain) avatars and objects
*send bulk IMs or items to a defined list of recipients (groupmembers in a certain role)
*talk in open chat
*sit on an object (optional - against shoving)
*send an IM to an avatar
*(optional, since can be done via LSL too) send bulk IMs or items to a defined list of recipients (e.g. groupmembers in a certain role)
*get an avatars UUID in case the name is provided ([http://www.libsecondlife.org/wiki/Name2key Name2Key])
*get an avatars UUID in case the name is provided ([http://www.libsecondlife.org/wiki/Name2key Name2Key])
*add/remove avatars and objects to/from an access list
</div></div>
<div id="box">
== Suggested Syntax ==
<div style="padding: 0.5em">
===List of Groupmembers ===
In case the bot is asked to provide a list of groupmembers of a group in which it is in, the requesting object or avatar should send an IM to the bot, with
groupmembers GROUPNAME
The bot should then say on a certain channel
list start
member 1 --UUID
member 2 --UUID
...
member n --UUID
list end
Example request:
groupmembers The Beatles
Example output:
list start
John Lennon --UUID
Paul McCartney --UUID
George Harrison --UUID
Ringo Starr --UUID
list end
===List of Groupmembers in a certain Role===
Syntax:
groupmembers GROUPNAME --rolename ROLENAME
Example request:
groupmembers The Beatles --rolename still alive
Example output:
list start
Paul McCartney --UUID
Ringo Starr --UUID
list end
=== Add to Group ===
Syntax:
Add2Group AVATARNAME GROUPNAME
Example request:
Add2Group Roger Waters Pink Floyd
The bot should give some kind of feedback when the request is sent (debug). For example on a certain channel
An invitation to join Pink Floyd has been sent to Roger Waters.
=== Eject from Group ===
Syntax:
EjectFromGroup AVATARNAME GROUPNAME
Example request:
EjectFromGroup Kim Jong-il North-Korean Government
Suggested output (debug):
Kim Jong-il has been ejected from the group North-Korean Government.
=== Assign to a certain Role ===
Syntax or bot might need to distinguish wether or not the appicant is already in the group. *needs more input*
=== Remove from a certain Role ===
Syntax:
RemoveFromRole AVATARNAME GROUPNAME --rolename ROLENAME
Example request:
RemoveFromRole Kim Jong-il North-Korean Government --rolename leader
Feedback (debug) would be helpful again. Like
Kim Jong-il has been removed from the role "leader" in the group North-Korean Government.
=== Send IM ===
Syntax:
IM AVATARNAME MESSAGE
Example request:
IM Torley Linden Friendly Greetings, ha ha! This automatted bot message tells you that you RAWK.
Keep up the good work and plz join us for another Q&A session one day. Greetz, the VTeam Bot.
=== InRole Test ===
Possibility to request (via IM) if an avatar is in a certain role or not.<br>
Syntax:
InRole AVATARNAME GROUPNAME --rolename ROLENAME
Example request:
InRole Thom Yorke Radiohead --rolename singer
Example output:
TRUE
=== Name2Key ===
Syntax:
Name2Key AVATARNAME
Example request:
Name2Key M Linden
Example output (on a certain channel):
244195d6-c9b7-4fd6-9229-c3a8b2e60e81
=== Add Master ===
Syntax:
AddMaster UUID
Example request:
AddMaster dd1e79b2-ddfe-4080-8206-242ab63f4a19
Example output (debug):
M Linden has been added to the access list.
=== Remove Master ===
Syntax
RemoveMaster UUID
Example request:
RemoveMaster dd1e79b2-ddfe-4080-8206-242ab63f4a19
Example output (debug):
M Linden has been removed from the access list.
</div></div>
|valign="top" width="200 px"|
{|align="center" width="200 px"
|{{User:Zai_Lynch/Quick_Links}}
|-
|[[Image:Zai_landing.png|180px]]
|}
|}

Latest revision as of 03:28, 18 August 2008

Disclaimer

This page lists ideas for a project which might become realised, but which is in no way official yet. It is a work in progress and just lists suggestions which are up for discussion at the related discussion page.

Suggested Usage

In order to ensure that it becomes an official project, the bot should be hosted on a LL server. The account should have Linden access only. The bot should have a name which makes it obviouse for anyone that it is

  1. a bot (so people aren't discouraged when it doesn't answer to support questions ^_^)
  2. an official project (so people aren't afraid of a scam)

Suggested name: VTeamBot Linden

Invite to Q&A Group

A group inviter to the Q&A group, placed at the VTeam kiosk in SLVEC. The inviter item checks if the avatar requesting the invitation is currently in the Second Life Mentors group and asks if the Second Life Mentor Q&A page has been read and the guidelines been understood (via menu). In case the answer is No, the applicant gets a link to the Wiki page and is asked to apply again when s/he read it. In case the answer is Yes, the item sends an IM to the bot and the bot sends an invitation to the applicant.


Set to Opt-In Mentor Roles

Another item placed at the VTeam kiosk in SLVEC (could be the same item as above, but might cause less confusion in case it's another).
The item checks if the applicant is currently in the Second Life Mentor group and asks via menu, which grouprole s/he'd like to join. It always asks if the connected Wiki page has been read and understood. Answer "No" results in the link beeing sent, "Yes" results in the role beeing set and an confirmation message for the applicant. I would suggest to use the automatted invite for the roles Buddy, Coach, Greeter and Linguist. The roles Apprentice Buddy, Orientation Coach and Scribe should be processed via VTeam manually, using the current survey monkeys, since they need further approvement. For these roles, the item could provide the related Wiki page with explanations.
The item could also give the ability to leave a role again. In case the Mentor leaves the Apprentice Buddy role, the connected Buddy Panel could automatically be updated. In case the Mentor leaves the Buddy role, the Buddy Panel could be automatically reset and the mentor could be removed from the Apprentice Buddy role too.


Process Apprentice Mentors

An item replacing the SLVEC Apprentice Buddy / Shadowing box. In case an avatar clicks it, the item checks if the avatar is currently in the Second Life Mentors group. A menu pops up, asking if the avatar would like to provide a list with attendees of an Orientation Class or a shadowing voucher.

  • List of attendees to an Orientation Class
The item requests a test from the bot if wether or not the avatar is in the Orientation Coach role of the Second Life Apprentice Mentor group. In case the answer is "Yes", the item enables inventory drop and the avatar can drop a notecard with a list of attendees. These are stored in a database for later use. The notecard itself becomes either cleared or send to a VTeam Member (Lexie?) for documentation / debugging purposes.
Any item which is droped in and which isn't a notecard, will be ignored and deleted or returned.
  • Shadowing Voucher
The item sends a request to the bot if wether or not the avatar is in the Apprentice Buddy role of the Second Life Apprentice Mentor group. In case the answer is "Yes", the avatar is asked to state the name of the Apprentice Mentor in open chat. It becomes stored in a database.

Database: in case an entry in the database states, that an Avatar has attended an Orientation Class and has shadowed an Apprentice Buddy, the item requests the bot to

  1. eject the connected Avatar from the Second Life Apprentice Mentor Group
  2. add the connected Avatar to the Second Life Mentor Group

The database entry becomes deleted afterwards.
Attention: What happens to group invites, in case an Avatar is in busy mode? In case they become skipped, then it would be a good idea to automatically create and store a list of all processed Apprentice Mentors within a certain time frame.


Orientation Class Attendence Test

In case the "Process Apprentice Mentors" feature from above becomes used, there could be an item requesting if wether or not an Apprentice Mentor has already attended an Orientation Session. So Apprentice Buddies can ensure that only those are shadowing them, who already attended the class.


VTeam Use

The VTeam could use the bot to send items or IMs to a defined range of recipients. Examples

  • Ask any Apprentice Buddy to have a look at a certain survey
  • Ask any Scribe to to have a look at a certain Wiki page / Project
  • Inform any commitee member about a certain meeting
  • ...

It can also be used to easily ensure if a Mentor is in a certain role. So for example: Someone applies for beeing added to the "Apprentice Buddy" role, it got to be ensured that the applicant is a Buddy already. A VTeam member could write an IM to the bot, providing the name of the Mentor and it would reply if wether or not the Mentor is a Buddy already. This is optional, since the Buddy role is totally opt-in and just a few clicks away.


Bot Requirements

The bot should have the ability to:


Suggested Syntax

List of Groupmembers

In case the bot is asked to provide a list of groupmembers of a group in which it is in, the requesting object or avatar should send an IM to the bot, with

groupmembers GROUPNAME

The bot should then say on a certain channel

list start
member 1 --UUID
member 2 --UUID
...
member n --UUID
list end

Example request:

groupmembers The Beatles

Example output:

list start
John Lennon --UUID
Paul McCartney --UUID
George Harrison --UUID
Ringo Starr --UUID
list end


List of Groupmembers in a certain Role

Syntax:

groupmembers GROUPNAME --rolename ROLENAME

Example request:

groupmembers The Beatles --rolename still alive

Example output:

list start
Paul McCartney --UUID
Ringo Starr --UUID
list end


Add to Group

Syntax:

Add2Group AVATARNAME GROUPNAME

Example request:

Add2Group Roger Waters Pink Floyd

The bot should give some kind of feedback when the request is sent (debug). For example on a certain channel

An invitation to join Pink Floyd has been sent to Roger Waters.


Eject from Group

Syntax:

EjectFromGroup AVATARNAME GROUPNAME

Example request:

EjectFromGroup Kim Jong-il North-Korean Government

Suggested output (debug):

Kim Jong-il has been ejected from the group North-Korean Government.


Assign to a certain Role

Syntax or bot might need to distinguish wether or not the appicant is already in the group. *needs more input*


Remove from a certain Role

Syntax:

RemoveFromRole AVATARNAME GROUPNAME --rolename ROLENAME

Example request:

RemoveFromRole Kim Jong-il North-Korean Government --rolename leader

Feedback (debug) would be helpful again. Like

Kim Jong-il has been removed from the role "leader" in the group North-Korean Government.


Send IM

Syntax:

IM AVATARNAME MESSAGE

Example request:

IM Torley Linden Friendly Greetings, ha ha! This automatted bot message tells you that you RAWK.
Keep up the good work and plz join us for another Q&A session one day. Greetz, the VTeam Bot.

InRole Test

Possibility to request (via IM) if an avatar is in a certain role or not.
Syntax:

InRole AVATARNAME GROUPNAME --rolename ROLENAME

Example request:

InRole Thom Yorke Radiohead --rolename singer

Example output:

TRUE


Name2Key

Syntax:

Name2Key AVATARNAME

Example request:

Name2Key M Linden

Example output (on a certain channel):

244195d6-c9b7-4fd6-9229-c3a8b2e60e81


Add Master

Syntax:

AddMaster UUID

Example request:

AddMaster dd1e79b2-ddfe-4080-8206-242ab63f4a19

Example output (debug):

M Linden has been added to the access list.


Remove Master

Syntax

RemoveMaster UUID

Example request:

RemoveMaster dd1e79b2-ddfe-4080-8206-242ab63f4a19

Example output (debug):

M Linden has been removed from the access list.
Zai landing.png