Anope IRC Services

Anope Development => Feature Requests => Topic started by: Dax Bane on February 12, 2010, 11:12:48 PM

Title: bs-cs_meeting
Post by: Dax Bane on February 12, 2010, 11:12:48 PM
Okay, this sort of module will tie to both ChanServ (addition of a channel flag) and BotServ (fantasy commands). This sort of module would have a few dependancies (namely Services Ignore, and anope to be configured for sending emails) and most likely requiring users have a valid email address attached to their account

At the founder's discretion, they may /cs SET #channel MEETING {ON|OFF} which is the flag used to dictate the availability of the following fantasy commands:

!start can be issued by anyone in the channel (probably best to, by default, assign this user right to AOPs+) which marks the beginning of the meeting. Thus, Anope reacts by locking down the channel (only those already in it are permitted in, everyone else (except those brought in by !invite) would be denied access), beginning a channel log (either in memory, in DB, or in a flat plain text file), marking the command issuer as "chair" of the meeting (only they would have access to !stop, !invite, !remove, !poll and !invite, even if the other participants had superadmin), and finally entering the following into the transcript:
Quote
Meeting started in #channel by nick at time
Participants: nick1 (chair), nick2, nick3, etc...
From !start to !stop, any and all channel traffic (barring maybe mode changes...) would be recorded in the transcript file/db/memspace

!poll /options=<comma-delimited list of possible answers, as determined by the chair, default yes,no /question="<question>" (probably best to have a static parameter format, as the case would be with /cs set <var> <value>) - this would mark the beginning of the poll in the transcript, likely:
Quote
* Nick has initiated poll "<question>" with voting options <answers>

!vote, !novote - in the former case, a participant (including the chair) uses !vote option in which their vote is recorded in the transcript and in the latter case the transcript would simply record that the issuer has abstained from voting in the poll; when every participant has voted the results are tallied followed by both recording the final tally in the transcript (including counting abstainations), and services announcing the results to the channel.

!invite <nick>, !remove <nick> - these need little explaination, the former to have services issue an /invite to the target nick, the other to force them to part the channel (the chair cannot remove themselves, naturally) - in both cases entering into the transcript either * ChairNick has invited TargetNick to meeting or * ChairNick has ejected TargetNick from the meeting, respectively.

!stop - this will conclude the meeting, with the final transcript entry stating that the chair has concluded the meeting at <time>. The transcript is then compiled into a plain text email which is sent to the email addresses of all participants in the meeting. If the chair were to leave the meeting for any reason, then the meeting is forced into conclusion.

Where I find this module would have most logical sense is in clanchannels and in network staff meeting channels.
Title: Re: bs-cs_meeting
Post by: casper1256 on March 06, 2010, 12:40:42 PM
I think it would look a nice prettier in a mIRC/Eggdrop script than in a module. Shouldn't be hard to do!

Just set modes +mis. You give everyone a voice you'd like to be able to talk. Kick everyone out who'se not invited (script: no voice = kick?)

Create a script that counts the yas and the nays. If it gets a little more complicated, you can give every answer an a,b,c,d,e, etc. Gather those and save them in a var.

Then when the meeting is over, use a mass devoicer, remove the modes and you're done.
Title: Re: bs-cs_meeting
Post by: Joseph on August 03, 2010, 02:10:01 PM
has anyone managed to do this?