mirror of
https://github.com/jlu5/PyLink.git
synced 2024-11-01 09:19:23 +01:00
commit
4910355711
@ -60,6 +60,9 @@ Remote versions of the `manage`, `list`, `sync`, and `clear` commands also exist
|
|||||||
- `exec.raw` - Allows access to the `raw` command.
|
- `exec.raw` - Allows access to the `raw` command.
|
||||||
- `exec.inject` - Allows access to the `inject` command.
|
- `exec.inject` - Allows access to the `inject` command.
|
||||||
|
|
||||||
|
## Global
|
||||||
|
- `global.global` - Allows access to the `global` command.
|
||||||
|
|
||||||
## Networks
|
## Networks
|
||||||
- `networks.disconnect` - Allows access to the `disconnect` command.
|
- `networks.disconnect` - Allows access to the `disconnect` command.
|
||||||
- `networks.autoconnect` - Allows access to the `autoconnect` command.
|
- `networks.autoconnect` - Allows access to the `autoconnect` command.
|
||||||
|
@ -418,6 +418,10 @@ plugins:
|
|||||||
# of kills/saves per X seconds is met.
|
# of kills/saves per X seconds is met.
|
||||||
#- servprotect
|
#- servprotect
|
||||||
|
|
||||||
|
# Global plugin: Janus-style global plugin; announces messages to all channels the PyLink
|
||||||
|
# client is in.
|
||||||
|
#- global
|
||||||
|
|
||||||
logging:
|
logging:
|
||||||
# This configuration block defines targets that PyLink should log commands,
|
# This configuration block defines targets that PyLink should log commands,
|
||||||
# errors, etc., to.
|
# errors, etc., to.
|
||||||
@ -665,3 +669,16 @@ stats:
|
|||||||
# Determines the time format that the Stats plugin should use for showing dates + times.
|
# Determines the time format that the Stats plugin should use for showing dates + times.
|
||||||
# Defaults to "%a, %d %b %Y %H:%M:%S +0000" (the RFC 2812 standard) if not specified.
|
# Defaults to "%a, %d %b %Y %H:%M:%S +0000" (the RFC 2812 standard) if not specified.
|
||||||
time_format: "%c"
|
time_format: "%c"
|
||||||
|
|
||||||
|
global:
|
||||||
|
# Sets the text format for the global plugin, if it is loaded. This uses a template string as
|
||||||
|
# documented at https://docs.python.org/3/library/string.html#template-strings, with the
|
||||||
|
# following substitutions:
|
||||||
|
# $sender: the nick of the sender
|
||||||
|
# $network: the short network name of the origin network
|
||||||
|
# $fullnetwork: the full network name of the origin network
|
||||||
|
# $current_channel: the channel we're broadcasting on
|
||||||
|
# $current_network: the network we're currently broadcasting on
|
||||||
|
# $current_fullnetwork: the full name of the network we're currently broadcasting on
|
||||||
|
# $text: the global text
|
||||||
|
#format: "[$sender@$fullnetwork] $text"
|
||||||
|
35
plugins/global.py
Normal file
35
plugins/global.py
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
# global.py: Global Noticing Plugin
|
||||||
|
|
||||||
|
import string
|
||||||
|
|
||||||
|
from pylinkirc import conf, utils, world
|
||||||
|
from pylinkirc.log import log
|
||||||
|
from pylinkirc.coremods import permissions
|
||||||
|
|
||||||
|
DEFAULT_FORMAT = "[$sender@$fullnetwork] $text"
|
||||||
|
|
||||||
|
def g(irc, source, args):
|
||||||
|
"""<message text>
|
||||||
|
|
||||||
|
Sends out a Instance-wide notice.
|
||||||
|
"""
|
||||||
|
permissions.checkPermissions(irc, source, ["global.global"])
|
||||||
|
message = " ".join(args)
|
||||||
|
template = string.Template(conf.conf.get('global', {}).get("format", DEFAULT_FORMAT))
|
||||||
|
|
||||||
|
for name, ircd in world.networkobjects.items():
|
||||||
|
if ircd.connected.is_set(): # Only attempt to send to connected networks
|
||||||
|
for channel in ircd.pseudoclient.channels:
|
||||||
|
subst = {'sender': irc.getFriendlyName(source),
|
||||||
|
'network': irc.name,
|
||||||
|
'fullnetwork': irc.getFullNetworkName(),
|
||||||
|
'current_channel': channel,
|
||||||
|
'current_network': ircd.name,
|
||||||
|
'current_fullnetwork': ircd.getFullNetworkName(),
|
||||||
|
'text': message}
|
||||||
|
|
||||||
|
# Disable relaying or other plugins handling the global message.
|
||||||
|
ircd.msg(channel, template.safe_substitute(subst), loopback=False)
|
||||||
|
|
||||||
|
|
||||||
|
utils.add_cmd(g, "global", featured=True)
|
Loading…
Reference in New Issue
Block a user