|
@@ -1,3 +1,4 @@
|
|
|
|
|
+from common import userstatus
|
|
|
from commands.common import CommandHelpers as CH
|
|
from commands.common import CommandHelpers as CH
|
|
|
bold = "\x02"
|
|
bold = "\x02"
|
|
|
italic = "\x1D"
|
|
italic = "\x1D"
|
|
@@ -21,6 +22,8 @@ def do_command(self, connection, event):
|
|
|
# The actual commands:
|
|
# The actual commands:
|
|
|
if command == "test":
|
|
if command == "test":
|
|
|
if cmdtype == "help": #Display help text.
|
|
if cmdtype == "help": #Display help text.
|
|
|
|
|
+ if len(command.split()) is not 1:
|
|
|
|
|
+ return
|
|
|
connection.privmsg(replyto, "Strictly for testing purposes only!")
|
|
connection.privmsg(replyto, "Strictly for testing purposes only!")
|
|
|
elif cmdtype == "cmd":
|
|
elif cmdtype == "cmd":
|
|
|
|
|
|
|
@@ -28,12 +31,16 @@ def do_command(self, connection, event):
|
|
|
|
|
|
|
|
elif command == "cmd" or command == "commands":
|
|
elif command == "cmd" or command == "commands":
|
|
|
if cmdtype == "help": #Display help text.
|
|
if cmdtype == "help": #Display help text.
|
|
|
|
|
+ if len(command.split()) is not 1:
|
|
|
|
|
+ return
|
|
|
connection.privmsg(replyto, "Displays a list of commands.")
|
|
connection.privmsg(replyto, "Displays a list of commands.")
|
|
|
elif cmdtype == "cmd":
|
|
elif cmdtype == "cmd":
|
|
|
connection.privmsg(replyto, grey + "Commands: " + CH.ccc(self, "cmd") + CH.ccc(self, "help") + CH.ccc(self, "joins") + CH.ccc(self, "stopgreet")[:-2] + ".")
|
|
connection.privmsg(replyto, grey + "Commands: " + CH.ccc(self, "cmd") + CH.ccc(self, "help") + CH.ccc(self, "joins") + CH.ccc(self, "stopgreet")[:-2] + ".")
|
|
|
|
|
|
|
|
elif command == "help":
|
|
elif command == "help":
|
|
|
if cmdtype == "help": #Display help text.
|
|
if cmdtype == "help": #Display help text.
|
|
|
|
|
+ if len(command.split()) is not 1:
|
|
|
|
|
+ return
|
|
|
connection.privmsg(replyto, "Explains how to get help on any specific command and hints the user to the commandlist.")
|
|
connection.privmsg(replyto, "Explains how to get help on any specific command and hints the user to the commandlist.")
|
|
|
elif cmdtype == "cmd":
|
|
elif cmdtype == "cmd":
|
|
|
connection.privmsg(replyto, "Replace the " + italic + "! " + reset + "prefix of any comand with " + italic + self.helpchar + " " + reset + "for help with a specific command. Request the command list with: " + blue + "!cmd")
|
|
connection.privmsg(replyto, "Replace the " + italic + "! " + reset + "prefix of any comand with " + italic + self.helpchar + " " + reset + "for help with a specific command. Request the command list with: " + blue + "!cmd")
|
|
@@ -42,6 +49,8 @@ def do_command(self, connection, event):
|
|
|
|
|
|
|
|
elif command.split()[0] == "joins":
|
|
elif command.split()[0] == "joins":
|
|
|
if cmdtype == "help": #Display help text.
|
|
if cmdtype == "help": #Display help text.
|
|
|
|
|
+ if len(command.split()) is not 1:
|
|
|
|
|
+ return
|
|
|
connection.privmsg(replyto, "Display amount of joins of user and or channel. Channel and user optional.")
|
|
connection.privmsg(replyto, "Display amount of joins of user and or channel. Channel and user optional.")
|
|
|
connection.privmsg(replyto, grey + "Usage: " + blue + "!joins " + reset + italic + "channel user")
|
|
connection.privmsg(replyto, grey + "Usage: " + blue + "!joins " + reset + italic + "channel user")
|
|
|
elif cmdtype == "cmd":
|
|
elif cmdtype == "cmd":
|
|
@@ -97,11 +106,74 @@ def do_command(self, connection, event):
|
|
|
|
|
|
|
|
elif command.split()[0] == "stopgreet":
|
|
elif command.split()[0] == "stopgreet":
|
|
|
if cmdtype == "help": #Display help text.
|
|
if cmdtype == "help": #Display help text.
|
|
|
- connection.privmsg(replyto, "Stops the bot from greeting you or a specific user. Channel and user optional.")
|
|
|
|
|
- connection.privmsg(replyto, grey + "Usage: " + blue + "!stopgreet " + red + italic + "channel user")
|
|
|
|
|
|
|
+ if len(command.split()) is not 1:
|
|
|
|
|
+ return
|
|
|
|
|
+ connection.privmsg(replyto, "Stops the bot from greeting you or a specific user. Channel, user and option to resume optional.")
|
|
|
|
|
+ connection.privmsg(replyto, grey + "Usage: " + blue + "!stopgreet " + red + italic + "resume channel user")
|
|
|
elif cmdtype == "cmd":
|
|
elif cmdtype == "cmd":
|
|
|
- if len(command.splt()) == 1: # No arguments.
|
|
|
|
|
- if self.db.one("SELECT id FROM")
|
|
|
|
|
- if len(command.splt()) == 2: # One argument.
|
|
|
|
|
- if len(command.splt()) == 3: # Two arguments.
|
|
|
|
|
- if len(command.splt()) < 3: # Too many arguments.
|
|
|
|
|
|
|
+
|
|
|
|
|
+ if len(command.split()) == 1: # No arguments.
|
|
|
|
|
+ if event.target == connection.get_nickname(): # PM.
|
|
|
|
|
+ connection.privmsg(replyto, "Specify at least a channel. For help type " + blue + self.helpchar + "stopgreet" + reset + ".")
|
|
|
|
|
+ return
|
|
|
|
|
+ user = event.source.nick
|
|
|
|
|
+ channel = event.target
|
|
|
|
|
+
|
|
|
|
|
+ # Check for resume variation of command.
|
|
|
|
|
+ resume = False
|
|
|
|
|
+ try:
|
|
|
|
|
+ if command.split()[1] == "resume":
|
|
|
|
|
+ resume = True
|
|
|
|
|
+ command = command.split(' ', 1)[1] # Remove the resume argument. Which makes the following logic easier.
|
|
|
|
|
+ except:
|
|
|
|
|
+ pass
|
|
|
|
|
+
|
|
|
|
|
+ if len(command.split()) == 2: # One argument.
|
|
|
|
|
+ if command.split()[1] not in self.channels: # Argument is not a channel the bot inhabits.
|
|
|
|
|
+ if event.target == connection.get_nickname(): # PM.
|
|
|
|
|
+ connection.action(replyto, "does not inhabit " + red + command.split()[1] + reset + ".")
|
|
|
|
|
+ return
|
|
|
|
|
+ # Channel message
|
|
|
|
|
+ if not userstatus.atleast_halfop(self, event.source.nick, self.homechannel) and not userstatus.atleast_halfop(self, event.source.nick, event.target): # Insufficient rights.
|
|
|
|
|
+ connection.privmsg(replyto, "Denied. You need to have at least halfop status in " + red + self.homechannel + reset + " or " + red + event.target + reset + ".")
|
|
|
|
|
+ return
|
|
|
|
|
+ # Stopgreet for x user in current channel
|
|
|
|
|
+ user = command.split()[1]
|
|
|
|
|
+ channel = event.target
|
|
|
|
|
+ else: # Bot inhabit channel.
|
|
|
|
|
+ user = event.source.nick
|
|
|
|
|
+ channel = command.split()[1]
|
|
|
|
|
+ if len(command.split()) == 3: # Two arguments.
|
|
|
|
|
+ if command.split()[1] not in self.channels: # Bot does not inhabit channel.
|
|
|
|
|
+ connection.action(replyto, "does not inhabit " + red + command.split()[1] + reset + ".")
|
|
|
|
|
+ return
|
|
|
|
|
+ if not userstatus.atleast_halfop(self, event.source.nick, self.homechannel) and not userstatus.atleast_halfop(self, event.source.nick, command.split()[1]): # Insufficient rights.
|
|
|
|
|
+ connection.privmsg(replyto, "Denied. You need to have at least halfop status in " + red + self.homechannel + reset + " or " + red + command.split()[1] + reset + ".")
|
|
|
|
|
+ return
|
|
|
|
|
+ user = command.split()[2]
|
|
|
|
|
+ channel = command.split()[1]
|
|
|
|
|
+ if len(command.split()) > 3: # Too many arguments.
|
|
|
|
|
+ connection.privmsg(replyto, "Too many arguments. For help type " + blue + self.helpchar + "stopgreet" + reset + ".")
|
|
|
|
|
+ return
|
|
|
|
|
+
|
|
|
|
|
+ # Check for database record.
|
|
|
|
|
+ result = self.db.one("SELECT id, stopgreet FROM joins WHERE \"user\"='" + user + "' AND user_network='" + self.network + "' AND channel='" + channel + "' AND channel_network='" + self.network + "'")
|
|
|
|
|
+ if not result: # No record in database.
|
|
|
|
|
+ connection.action(replyto, "has not yet had the pleasure of greeting " + red + user + reset + " in " + red + channel + reset + ".")
|
|
|
|
|
+ return
|
|
|
|
|
+
|
|
|
|
|
+ if resume:
|
|
|
|
|
+ stopgreet = False
|
|
|
|
|
+ message = "has already every intention to greet "
|
|
|
|
|
+ else:
|
|
|
|
|
+ stopgreet = True
|
|
|
|
|
+ message = "has already stopped greeting "
|
|
|
|
|
+ if result[1] == stopgreet:
|
|
|
|
|
+ connection.action(replyto, message + red + user + reset + " in " + red + channel + reset + ".")
|
|
|
|
|
+ return
|
|
|
|
|
+ print(str(stopgreet) + str(user) + str(channel))
|
|
|
|
|
+ #try:
|
|
|
|
|
+ print("UPDATE joins SET stopgreet='" + str(stopgreet) + "' WHERE \"user\"='" + user + "' AND user_network='" + self.network + "' AND channel='" + channel + "' AND channel_network='" + self.network + "'")
|
|
|
|
|
+ self.db.run("UPDATE joins SET stopgreet='" + str(stopgreet) + "' WHERE \"user\"='" + user + "' AND user_network='" + self.network + "' AND channel='" + channel + "' AND channel_network='" + self.network + "'")
|
|
|
|
|
+ #except:
|
|
|
|
|
+ #connection.privmsg(replyto, "Failed to update database.")
|