-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
122 lines (91 loc) · 3.3 KB
/
main.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
121
122
import os
import discord
import requests
import json
import random
from replit import db
from keep_online import keep_online
import asyncio
client = discord.Client()
sad_words = [
"sad", "depressed", "unhappy", "not happy", "angry", "miserable",
"depressing"
]
starter_encouragements = [
"Cheer up!", "Hang in there.", "You are a great person!"
]
if "responding" not in db.keys():
db["responding"] = True
def get_quote():
response = requests.get("https://zenquotes.io/api/random")
json_data = json.loads(response.text)
quote = "*" + json_data[0]['q'] + "*" + "\n-" + json_data[0]['a']
return (quote)
def update_encouragements(encouraging_message):
if "encouragements" in db.keys():
encouragements = db["encouragements"]
encouragements.append(encouraging_message)
db["encouragements"] = encouragements
else:
db["encouragements"] = [encouraging_message]
def delete_encouragements(index):
encouragements = db["encouragements"]
if len(encouragements) > index:
del encouragements[index]
db["encouragements"] = encouragements
@client.event
async def on_ready():
print('We have logged in as {0.user}'.format(client))
async def rich_presence():
await client.wait_until_ready()
statuses = [
'what FBI is doing', 'David through a window', 'Netflix and chill',
'naked bums on a street', 'aliens'
]
while not client.is_closed():
status = random.choice(statuses)
await client.change_presence(activity=discord.Activity(
type=discord.ActivityType.watching, name=status))
await asyncio.sleep(5)
client.loop.create_task(rich_presence())
@client.event
async def on_message(message):
if message.author == client.user:
return
msg = message.content
if message.content.startswith('.hello'):
await message.channel.send('Hello!')
if message.content.startswith('.inspire'):
quote = get_quote()
await message.channel.send(quote)
if db["responding"]:
options = starter_encouragements
if "encouragements" in db.keys():
options = options + db["encouragements"].value
if any(word in msg for word in sad_words):
await message.channel.send(random.choice(starter_encouragements))
if msg.startswith(".new"):
encouraging_message = msg.split(".new ", 1)[1]
update_encouragements(encouraging_message)
await message.channel.send("New encouraging message added.")
if msg.startswith(".del"):
encouragements = []
if "encouragements" in db.keys():
index = int(msg.split(".del", 1)[1])
delete_encouragements(index)
encouragements = db["encouragements"].value
await message.channel.send(encouragements)
if msg.startswith(".list"):
encouragements = []
if "encouragements" in db.keys():
encouragements = db["encouragements"].value
await message.channel.send(encouragements)
if msg.startswith(".responding on"):
db["responding"] = True
await message.channel.send("Responding is on.")
if msg.startswith(".responding off"):
db["responding"] = False
await message.channel.send("Responding is off.")
keep_online()
my_secret = os.environ['TOKEN']
client.run(my_secret)