v1.8.0 release
This commit is contained in:
parent
248772f3e3
commit
ef221f4165
9 changed files with 40 additions and 40 deletions
|
@ -1,4 +1,4 @@
|
|||
# TBD - BitBot v1.8.0
|
||||
# 2019-06-03 - BitBot v1.8.0
|
||||
|
||||
Added:
|
||||
- Module dependency system
|
||||
|
|
|
@ -11,7 +11,7 @@ class Module(ModuleManager.BaseModule):
|
|||
default_event = any(default_events)
|
||||
|
||||
kwargs = {"command": line.command, "args": line.args, "tags": line.tags,
|
||||
"server": server, "prefix": line.prefix,
|
||||
"server": server, "source": line.source,
|
||||
"direction": utils.Direction.Recv}
|
||||
|
||||
self.events.on("raw.received").on(line.command).call_unsafe(**kwargs)
|
||||
|
|
|
@ -8,7 +8,7 @@ def handle_332(events, event):
|
|||
topic=topic)
|
||||
|
||||
def topic(events, event):
|
||||
user = event["server"].get_user(event["prefix"].nickname)
|
||||
user = event["server"].get_user(event["source"].nickname)
|
||||
channel = event["server"].channels.get(event["args"][0])
|
||||
topic = event["args"].get(1)
|
||||
channel.set_topic(topic)
|
||||
|
@ -69,17 +69,17 @@ def join(events, event):
|
|||
account = event["args"][1]
|
||||
realname = event["args"][2]
|
||||
|
||||
user = event["server"].get_user(event["prefix"].nickname)
|
||||
user = event["server"].get_user(event["source"].nickname)
|
||||
|
||||
user.username = event["prefix"].username
|
||||
user.hostname = event["prefix"].hostname
|
||||
user.username = event["source"].username
|
||||
user.hostname = event["source"].hostname
|
||||
if account:
|
||||
user.identified_account = account
|
||||
user.identified_account_id = event["server"].get_user(account).get_id()
|
||||
if realname:
|
||||
user.realname = realname
|
||||
|
||||
is_self = event["server"].is_own_nickname(event["prefix"].nickname)
|
||||
is_self = event["server"].is_own_nickname(event["source"].nickname)
|
||||
if is_self:
|
||||
channel = event["server"].channels.add(channel_name)
|
||||
else:
|
||||
|
@ -101,7 +101,7 @@ def join(events, event):
|
|||
|
||||
def part(events, event):
|
||||
channel = event["server"].channels.get(event["args"][0])
|
||||
user = event["server"].get_user(event["prefix"].nickname)
|
||||
user = event["server"].get_user(event["source"].nickname)
|
||||
reason = event["args"].get(1)
|
||||
|
||||
channel.remove_user(user)
|
||||
|
@ -109,7 +109,7 @@ def part(events, event):
|
|||
if not len(user.channels):
|
||||
event["server"].remove_user(user)
|
||||
|
||||
if not event["server"].is_own_nickname(event["prefix"].nickname):
|
||||
if not event["server"].is_own_nickname(event["source"].nickname):
|
||||
events.on("received.part").call(channel=channel, reason=reason,
|
||||
user=user, server=event["server"])
|
||||
else:
|
||||
|
@ -137,7 +137,7 @@ def handle_477(timers, event):
|
|||
server_id=event["server"].id)
|
||||
|
||||
def kick(events, event):
|
||||
user = event["server"].get_user(event["prefix"].nickname)
|
||||
user = event["server"].get_user(event["source"].nickname)
|
||||
target = event["args"][1]
|
||||
channel = event["server"].channels.get(event["args"][0])
|
||||
reason = event["args"].get(2)
|
||||
|
|
|
@ -8,7 +8,7 @@ def ping(event):
|
|||
|
||||
def handle_001(event):
|
||||
event["server"].socket.enable_write_throttle()
|
||||
event["server"].name = event["prefix"].hostmask
|
||||
event["server"].name = event["source"].hostmask
|
||||
event["server"].set_own_nickname(event["args"][0])
|
||||
event["server"].send_whois(event["server"].nickname)
|
||||
event["server"].connected = True
|
||||
|
@ -65,7 +65,7 @@ def motd_line(event):
|
|||
event["server"].motd_lines.append(event["args"][1])
|
||||
|
||||
def mode(events, event):
|
||||
user = event["server"].get_user(event["prefix"].nickname)
|
||||
user = event["server"].get_user(event["source"].nickname)
|
||||
target = event["args"][0]
|
||||
is_channel = target[0] in event["server"].channel_types
|
||||
if is_channel:
|
||||
|
@ -98,7 +98,7 @@ def mode(events, event):
|
|||
|
||||
def invite(events, event):
|
||||
target_channel = event["args"][1]
|
||||
user = event["server"].get_user(event["prefix"].nickname)
|
||||
user = event["server"].get_user(event["source"].nickname)
|
||||
target_user = event["server"].get_user(event["args"][0])
|
||||
events.on("received.invite").call(user=user, target_channel=target_channel,
|
||||
server=event["server"], target_user=target_user)
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
from src import utils
|
||||
|
||||
def _from_self(server, direction, prefix):
|
||||
def _from_self(server, direction, source):
|
||||
if direction == utils.Direction.Send:
|
||||
if server.has_capability_str("echo-message"):
|
||||
return None
|
||||
else:
|
||||
return True
|
||||
else:
|
||||
if prefix:
|
||||
return server.is_own_nickname(prefix.nickname)
|
||||
if source:
|
||||
return server.is_own_nickname(source.nickname)
|
||||
else:
|
||||
return False
|
||||
|
||||
def message(events, event):
|
||||
from_self = _from_self(event["server"], event["direction"],
|
||||
event.get("prefix", None))
|
||||
event.get("source", None))
|
||||
if from_self == None:
|
||||
return
|
||||
|
||||
|
@ -25,12 +25,12 @@ def message(events, event):
|
|||
message = event["args"][1]
|
||||
|
||||
if not from_self and (
|
||||
not event["prefix"] or
|
||||
not event["source"] or
|
||||
not event["server"].name or
|
||||
event["prefix"].hostmask == event["server"].name or
|
||||
event["source"].hostmask == event["server"].name or
|
||||
target_str == "*"):
|
||||
if event["prefix"]:
|
||||
event["server"].name = event["prefix"].hostmask
|
||||
if event["source"]:
|
||||
event["server"].name = event["source"].hostmask
|
||||
|
||||
events.on("received.server-notice").call(message=message,
|
||||
message_split=message.split(" "), server=event["server"])
|
||||
|
@ -39,7 +39,7 @@ def message(events, event):
|
|||
if from_self:
|
||||
user = event["server"].get_user(event["server"].nickname)
|
||||
else:
|
||||
user = event["server"].get_user(event["prefix"].nickname)
|
||||
user = event["server"].get_user(event["source"].nickname)
|
||||
|
||||
# strip prefix_symbols from the start of target, for when people use
|
||||
# e.g. 'PRIVMSG +#channel :hi' which would send a message to only
|
||||
|
|
|
@ -19,13 +19,13 @@ def handle_311(event):
|
|||
def quit(events, event):
|
||||
nickname = None
|
||||
if event["direction"] == utils.Direction.Recv:
|
||||
nickname = event["prefix"].nickname
|
||||
nickname = event["source"].nickname
|
||||
reason = event["args"].get(0)
|
||||
|
||||
if event["direction"] == utils.Direction.Recv:
|
||||
nickname = event["prefix"].nickname
|
||||
nickname = event["source"].nickname
|
||||
if (not event["server"].is_own_nickname(nickname) and
|
||||
not event["prefix"].hostmask == "*"):
|
||||
not event["source"].hostmask == "*"):
|
||||
user = event["server"].get_user(nickname)
|
||||
event["server"].remove_user(user)
|
||||
events.on("received.quit").call(reason=reason, user=user,
|
||||
|
@ -37,10 +37,10 @@ def quit(events, event):
|
|||
|
||||
def nick(events, event):
|
||||
new_nickname = event["args"].get(0)
|
||||
user = event["server"].get_user(event["prefix"].nickname)
|
||||
user = event["server"].get_user(event["source"].nickname)
|
||||
old_nickname = user.nickname
|
||||
|
||||
if not event["server"].is_own_nickname(event["prefix"].nickname):
|
||||
if not event["server"].is_own_nickname(event["source"].nickname):
|
||||
events.on("received.nick").call(new_nickname=new_nickname,
|
||||
old_nickname=old_nickname, user=user, server=event["server"])
|
||||
else:
|
||||
|
@ -52,7 +52,7 @@ def nick(events, event):
|
|||
event["server"].change_user_nickname(old_nickname, new_nickname)
|
||||
|
||||
def away(events, event):
|
||||
user = event["server"].get_user(event["prefix"].nickname)
|
||||
user = event["server"].get_user(event["source"].nickname)
|
||||
message = event["args"].get(0)
|
||||
if message:
|
||||
user.away = True
|
||||
|
@ -65,7 +65,7 @@ def away(events, event):
|
|||
events.on("received.away.off").call(user=user, server=event["server"])
|
||||
|
||||
def chghost(event):
|
||||
nickname = event["prefix"].nickname
|
||||
nickname = event["source"].nickname
|
||||
username = event["args"][0]
|
||||
hostname = event["args"][1]
|
||||
|
||||
|
@ -78,7 +78,7 @@ def chghost(event):
|
|||
target.hostname = hostname
|
||||
|
||||
def setname(event):
|
||||
nickname = event["prefix"].nickname
|
||||
nickname = event["source"].nickname
|
||||
realname = event["args"][0]
|
||||
|
||||
user = event["server"].get_user(nickname)
|
||||
|
@ -88,7 +88,7 @@ def setname(event):
|
|||
event["server"].realname = realname
|
||||
|
||||
def account(events, event):
|
||||
user = event["server"].get_user(event["prefix"].nickname)
|
||||
user = event["server"].get_user(event["source"].nickname)
|
||||
|
||||
if not event["args"][0] == "*":
|
||||
user.identified_account = event["args"][0]
|
||||
|
|
|
@ -2,7 +2,7 @@ import enum, queue, os, select, socket, threading, time, traceback, typing, uuid
|
|||
from src import EventManager, Exports, IRCServer, Logging, ModuleManager
|
||||
from src import Socket, utils
|
||||
|
||||
VERSION = "v1.7.1"
|
||||
VERSION = "v1.8.0"
|
||||
SOURCE = "https://git.io/bitbot"
|
||||
|
||||
class TriggerResult(enum.Enum):
|
||||
|
|
|
@ -39,12 +39,12 @@ class Hostmask(object):
|
|||
|
||||
class ParsedLine(object):
|
||||
def __init__(self, command: str, args: typing.List[str],
|
||||
prefix: Hostmask=None,
|
||||
source: Hostmask=None,
|
||||
tags: typing.Dict[str, str]=None):
|
||||
self.command = command
|
||||
self._args = args
|
||||
self.args = IRCArgs(args)
|
||||
self.prefix = prefix
|
||||
self.source = source
|
||||
self.tags = {} if tags == None else tags
|
||||
|
||||
def __repr__(self):
|
||||
|
@ -69,8 +69,8 @@ class ParsedLine(object):
|
|||
if self.tags:
|
||||
pieces.append(self._tag_str(self.tags))
|
||||
|
||||
if self.prefix:
|
||||
pieces.append(str(self.prefix))
|
||||
if self.source:
|
||||
pieces.append(str(self.source))
|
||||
|
||||
pieces.append(self.command.upper())
|
||||
|
||||
|
|
|
@ -45,7 +45,7 @@ def message_tag_unescape(s):
|
|||
|
||||
def parse_line(line: str) -> IRCLine.ParsedLine:
|
||||
tags = {} # type: typing.Dict[str, typing.Any]
|
||||
prefix = None # type: typing.Optional[IRCLine.Hostmask]
|
||||
source = None # type: typing.Optional[IRCLine.Hostmask]
|
||||
command = None
|
||||
|
||||
if line[0] == "@":
|
||||
|
@ -65,8 +65,8 @@ def parse_line(line: str) -> IRCLine.ParsedLine:
|
|||
trailing = trailing_split
|
||||
|
||||
if line[0] == ":":
|
||||
prefix_str, line = line[1:].split(" ", 1)
|
||||
prefix = seperate_hostmask(prefix_str)
|
||||
source_str, line = line[1:].split(" ", 1)
|
||||
source = seperate_hostmask(source_str)
|
||||
|
||||
command, sep, line = line.partition(" ")
|
||||
args = [] # type: typing.List[str]
|
||||
|
@ -77,7 +77,7 @@ def parse_line(line: str) -> IRCLine.ParsedLine:
|
|||
if not trailing == None:
|
||||
args.append(typing.cast(str, trailing))
|
||||
|
||||
return IRCLine.ParsedLine(command, args, prefix, tags)
|
||||
return IRCLine.ParsedLine(command, args, source, tags)
|
||||
|
||||
|
||||
REGEX_COLOR = re.compile("%s(?:(\d{1,2})(?:,(\d{1,2}))?)?" % utils.consts.COLOR)
|
||||
|
|
Loading…
Reference in a new issue