-
Notifications
You must be signed in to change notification settings - Fork 1
/
WHbot.py
120 lines (100 loc) · 3.6 KB
/
WHbot.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#REMEMBER TO CLEAN OLD HEADERS FOR INODES
import discord
from discord.ext import commands
import asyncio #asynchronous functions
import random #rng generator
import hashlib #for random
import time #for random
import logging #logs
#Active function files
import newMusic
import localPictureUpload
import databaseProxy
import reddit
import tweets
import botSpeak
with open("secrets.txt", "r") as secretFile:
secretKey = [key[:-1] for key in secretFile.readlines()]
logging.basicConfig(level=logging.INFO) #INFO/DEBUG
textChatIDlist = [170682390786605057, 302137557896921089, 302965414793707522, 293186321395220481, 570471843538927638, 318824529478549504] #general, dev, nsf, other, spam
intents = discord.Intents.default()
intents.members = True
intents.presences = True
#bot instantiator
bot = commands.Bot(command_prefix='!', description='The official Waffle House bot', intents = intents)
#add functionalities from each file
bot.load_extension("newMusic")
bot.load_extension("localPictureUpload")
bot.load_extension("databaseProxy")
bot.load_extension("reddit")
bot.load_extension("tweets")
bot.load_extension("botSpeak")
#prints to console when bot starts up
@bot.event
async def on_ready():
print('Logged in as')
print(bot.user.name)
print(bot.user.id)
print('------')
@bot.event
async def on_message(message):
if message.author == bot.user:
return
await databaseProxy.updateLastMessage(message.author.id, int(time.time()))
await bot.process_commands(message)
def getAmazonLink(number):
f = open("amazonlist.txt","r")
lines = f.readlines()
line = lines[number]
start = line.index('h')
#print(line)
amazonLink = line[start:]
return str(amazonLink)
#tests if bot is actually functioning
@bot.command()
async def test(ctx):
await ctx.send('Test!')
@bot.command()
async def dance(ctx):
channelID = ctx.message.channel.id
if channelID in textChatIDlist:
await ctx.send("Time to Party!")
messageToEdit = await ctx.send("(ノ^_^)ノ")
for x in range(0,4):
await asyncio.sleep(.75)
await messageToEdit.edit(content="┗(^0^)┓")
await asyncio.sleep(.75)
await messageToEdit.edit(content="└( ^ω^ )」")
await asyncio.sleep(.75)
await messageToEdit.edit(content="(〜^∇^)〜")
await asyncio.sleep(.75)
await messageToEdit.edit(content= "~( •ᴗ•)~")
await asyncio.sleep(.75)
await messageToEdit.edit(content="└(=^‥^=)┐")
return
@bot.command()
async def spell(ctx, message : str):
channelID = ctx.message.channel.id
if channelID in textChatIDlist:
if len(message) < 21:
messageToEdit = await ctx.send(message[0])
for x in range (0, len(message)):
await messageToEdit.edit(content=message[0:x+1])
await asyncio.sleep(.5)
else:
await ctx.send("That's too long!")
@bot.command()
async def why(ctx):
channelID = ctx.message.channel.id
if channelID in textChatIDlist:
await ctx.send("why not?")
@bot.command()
async def amazon(ctx): #number : int
channelID = ctx.message.channel.id
if channelID in textChatIDlist:
number = random.randint(0, 941)
amazonLink = getAmazonLink(number)
await ctx.send("How many quality Amazon products are there? At least " + str(number) + ". " + str(amazonLink))
#These need to be at the bottom
#bot token for connection to the chat
bot.run(secretKey[0])