Project

General

Profile

Actions

Idea: RPC

  • Impact : plugins and irccdctl
  • Status : draft
  • Target version : 3.1.0

Background

Irccd plugins are currently fully standalone and can not interact with each other. Also, user is not able to control a plugin except by doing reload.

Synopsis

The purpose of this project is to add a functionality in plugins to be able for the user to execute special commands.

Example: a hangman plugin is running, user wants to specify an explicit word for the next game. It can call irccdctl to set the next word.

Proposed irccdctl usage

$ irccdctl plugin-exec plugin command arg1 arg2 arg3 ... argn

For hangman:

$ irccdctl plugin-exec hangman set-next-word example "#hangman" "joke" 

Proposed network command

{
    "command": "plugin-exec",
    "plugin": "hangman" 
    "function": "set-next-word" 
    "args": [ "joke", "example", "#hangman" ]
}

Standard plugin functions

Auth

  • authenticate: force authentication on a given server

Hangman

  • set-next-word: set the next word for the given server/channel
  • get-response: get the current word response

History

  • rehash: force storage of all server/channel/nicks timestamps
  • seen: similar to !history seen
  • said: similar to !history said

Updated by David Demelier 8 months ago · 3 revisions