def set_language(message, lang): if not data.exists_lang(lang): messages.send_message(message, 'unknown-lang') return user = get_user(message) user.lang = lang user.store_settings() messages.send_custom_message(message, messages.get_string('lang-changed') + lang)
def add_quote(quote_list, message): if not utils.check_permissions(message): messages.send_message(message, 'no-permissions') if not os.path.isfile(data.get_path(message, "quotes")): f = open(data.get_path(message, "quotes"),'w+') else: f = open(data.get_path(message, "quotes"),'a+') quote = "" for s in quote_list: quote += s + ' ' f.write("[quote] " + quote.strip()) messages.send_custom_message(message, messages.get_string('quotes-added') + quote)
def dev_issue(message, split, label): """ create a new issue :param message: MessageWrapper for formatting & data :param split: where to split the message content to get the issue content :param label: the label to apply, TODO: SUPPORT MORE THAN ONE :return: messages.send_message() result """ content = message.content.split(split, 1)[1].strip() description = '' if content[0] == '\"': splits = content[1:].split('\"', 1) else: splits = content.split(' ', 1) name = splits[0] if len(splits) > 1: description = splits[1] description = '[Issue created by {user}]\n'.format( user=message.author.name) + description make_github_issue(name, description, [label, 'status: pending']) return messages.send_message(message, 'dev-issue-created')
def cmd_quotes(message, args): if len(args) == 0: return random_quote(message) if args[0] == "add": if len(args) < 2: return "Error: Not enough arguments." return add_quote(args[1:], message) if args[0] == "all": quotes = get_quotes(message) msg = "" for idx, q in enumerate(quotes): msg += str(idx + 1) + ': ' + q + '\n\n' messages.send_custom_message(message, msg.strip()) if utils.represents_int(args[0]): quotes = get_quotes(message) qid = int(args[0]) if qid > len(quotes) or qid == 0: return messages.send_message(message, 'quotes-out-of-range') return messages.send_custom_message(message, quotes[qid - 1]) if args[0] == 'help': return messages.send_message(message, 'quotes-help')
def cmd_dice(message, args): """ cmd switch for dice :param message: the message to read from :type message: messages.MessageWrapper :param args: command arguments :type args: list(str) :return: """ if len(args) < 1: return roll_dice(message, 1, 6) if args[0] == 'help': return messages.send_message(message, 'dice-help') return roll_dice_str(message, args)
def cmd_user(message, args): if len(args) == 0: return messages.MessageCode.UNKNOWN_ARGS if args[0] == 'help': return messages.send_message(message, 'user-help') if len(args) >= 2 and args[0] == 'setlang': if args[1].lower() in ['de', 'deutsch', 'german']: set_language(message, 'de') return elif args[1].lower() in ['en', 'english', 'englisch']: set_language(message, 'en') return else: set_language(message, args[1].lower()) return return messages.MessageCode.UNKNOWN_ARGS
def cmd_dev(message, args): """ cmd switch for dev :param message: MessageWrapper for formatting & data :param args: list of arguments after the command :return: MessageCode result of dev actions """ if len(args) == 0: return messages.MessageCode.UNKNOWN_ARGS if args[0] == 'help': return messages.send_message(message, 'dev-help') if len(args) < 2: return messages.MessageCode.UNKNOWN_ARGS if args[0] == 'request': return dev_issue(message, args[0], 'type: enhancement') if args[0] == 'bugreport': return dev_issue(message, args[0], 'type: bug') return messages.MessageCode.UNKNOWN_ARGS
def set_settings(message, args): if not utils.check_permissions(message, admin=True): return messages.send_message(message, 'no-permissions') set_what = args[0][3:] if set_what == 'welcome' and len(message.channel_mentions) != 0: channel = message.channel_mentions[0] if not isinstance(channel, discord.TextChannel): return messages.MessageCode.UNKNOWN_ARGS message.server_data.set('welcome-channel', channel.id) message.server_data.store_settings() messages.send_custom_message(message, messages.get_string('channel-set').format( channel, 'welcome channel'), format_content=False) return messages.MessageCode.SENT elif set_what == 'welcomeroles' and len(args) > 1: roles = args[1:] roles_confirmed = list() for r in roles: for gr in message.guild.roles: if r.lower() == gr.name.lower(): roles_confirmed.append(gr) confirmed_ids = list() for r in roles_confirmed: confirmed_ids.append(r.id) message.server_data.set('welcome-roles', confirmed_ids) message.server_data.store_settings() if len(confirmed_ids) < 1: return messages.MessageCode.UNKNOWN_ARGS elif set_what == 'join' and len(message.channel_mentions) != 0: channel = message.channel_mentions[0] if not isinstance(channel, discord.TextChannel): return messages.MessageCode.UNKNOWN_ARGS message.server_data.set('join-channel', channel.id) message.server_data.store_settings() messages.send_custom_message(message, messages.get_string('channel-set').format( channel, 'join channel'), format_content=False) return messages.MessageCode.SENT else: return messages.MessageCode.UNKNOWN_ARGS
def cmd_server(message, args): if len(args) == 0: return messages.MessageCode.UNKNOWN_ARGS elif args[0] == 'help': return messages.send_message(message, 'server-help') elif args[0].startswith('set'): return set_settings(message, args) elif args[0] == 'welcomeroles': roles = list() for r in message.server_data.get('welcome-roles'): role = message.guild.get_role(int(r)) roles.append(role.name) return messages.send_custom_message(message, str(roles)) elif args[0] == 'welcomechannel': return messages.send_custom_message( message, '<#' + str(message.server_data.get('welcome-channel')) + '>') elif args[0] == 'joinchannel': return messages.send_custom_message( message, '<#' + str(message.server_data.get('join-channel')) + '>')
def random_quote(message): quotes = get_quotes(message) if len(quotes) == 0: return messages.send_message(message, 'quotes-none') messages.send_custom_message(message, quotes[random.randrange(0, len(quotes),1)])