mirror of
https://github.com/MrDetonia/Maki.git
synced 2024-11-10 15:48:06 -05:00
74 lines
1.6 KiB
Python
74 lines
1.6 KiB
Python
# Maki
|
|
# ----
|
|
# Discord bot by MrDetonia
|
|
#
|
|
# Copyright 2017 Zac Herd
|
|
# Licensed under BSD 3-clause License, see LICENSE.md for more info
|
|
|
|
|
|
|
|
# IMPORTS
|
|
import os
|
|
import asyncio
|
|
import subprocess
|
|
import discord
|
|
import urllib.request
|
|
|
|
|
|
# LOCAL IMPORTS
|
|
from common import *
|
|
from helpers import *
|
|
|
|
|
|
|
|
# COMMAND IMPLEMENTATINS
|
|
@asyncio.coroutine
|
|
def cmd_die(client, msg):
|
|
print("INFO: accepting .die from " + msg.author.name)
|
|
yield from client.send_message(msg.channel, "But will I dream? ;-;")
|
|
yield from client.logout()
|
|
|
|
if msg.content[5:] == "reload":
|
|
# touch file to signal reload
|
|
with open("reload", "a"):
|
|
os.utime("reload", None)
|
|
|
|
|
|
@asyncio.coroutine
|
|
def cmd_quiet(client, msg):
|
|
quiet[msg.server.id] = 1
|
|
|
|
|
|
@asyncio.coroutine
|
|
def cmd_loud(client, msg):
|
|
if msg.server.id in quiet:
|
|
quiet.pop(msg.server.id, None)
|
|
|
|
|
|
@asyncio.coroutine
|
|
def cmd_avatar(client, msg):
|
|
url = msg.content[8:]
|
|
response = "Avatar updated!"
|
|
try:
|
|
response = urllib.request.urlopen(url)
|
|
imgdata = response.read()
|
|
yield from client.edit_profile(avatar=imgdata)
|
|
except urllib.error.URLError as e:
|
|
response = "URL Error: " + e
|
|
except discord.HTTPException:
|
|
response = "Dicsord failed to edit my profile!"
|
|
except discord.InvalidArgument:
|
|
response = "Invalid image!"
|
|
except:
|
|
response = "Error updating avatar!"
|
|
|
|
yield from discord_send(client, msg, response)
|
|
|
|
# COMMAND HANDLING
|
|
admincommands = {
|
|
"die": cmd_die,
|
|
"quiet": cmd_quiet,
|
|
"loud": cmd_loud,
|
|
"avatar": cmd_avatar,
|
|
}
|