ObsidianIRC polls spec
ObsidianIRC IRCv3 Extension Specification for Polls
Introduction
This document describes the ObsidianIRC vendored spec for implementing polls within IRC channels. This specification includes extension capabilities, message formats, and relevant metadata to enable structured and interactive polling experiences.
Overview
The polls extension is designed to allow clients and servers to facilitate poll creation, voting, and result display within IRC channels using standardized message formats and metadata. It extends the IRCv3 protocol, ensuring compatibility and extensibility.
Extension Capabilities
- Capability Name
obsc-polls- Allows clients and servers to negotiate and activate polling features.
Message Formats
- Poll Creation (
PRIVMSG)
Format:
:client!user@host PRIVMSG #channel :/poll create "Question text" option1 option2 [option3 ...]
Description: Initiates a new poll with the specified question and options.
- Vote Submission (
PRIVMSG)
Format:
:client!user@host PRIVMSG #channel :/vote [poll''id] [option''number]
Description: Casts a vote for a specified option in a poll identified by pollid.
- Poll Results (
NOTICEorPRIVMSG)
Format:
:server HOST NOTICE #channel :Poll [poll''id] results: Option1: votes, Option2: votes...
Description: Reports the current results of an active poll.
Metadata Description
- Poll ID
Unique identifier for each poll, assigned at creation.
- Question
The poll question text.
- Options
List of answer options, each assigned a number.
- Votes
Number of votes per option.
Extensions and Metadata Capabilities
This spec supports the following extensions:
- Real-time voting updates.
- Persistent polls that retain state across sessions.
- Poll expiration and time-based closure.
Implementation Notes
- Clients should display poll questions and options clearly.
- Voting commands should be validated to prevent multiple votes from the same user if restrictions apply.
- Results should be updated dynamically as votes are cast.
Security and Privacy Considerations
The protocol should ensure user anonymity if required, and prevent vote manipulation through proper validation.
Conclusion
This IRCv3 spec for polls provides a comprehensive framework to build interactive and standardized polling mechanisms within IRC channels using ObsidianIRC extensions.
For further updates or contributions, refer to the project repository and community discussions.