mirror of
https://github.com/MrDetonia/Maki.git
synced 2024-11-22 11:54:16 -05:00
Added persistent data using JSON, v0.5.0
This commit is contained in:
parent
ed009052a6
commit
b24c5aafed
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,2 +1,3 @@
|
|||||||
secret.py
|
secret.py
|
||||||
__pycache__
|
__pycache__
|
||||||
|
*.json
|
||||||
|
@ -7,7 +7,9 @@
|
|||||||
Maki uses Python 3.4 with discord.py. Install python3.4 and use pip to install asyncio and discord.py.
|
Maki uses Python 3.4 with discord.py. Install python3.4 and use pip to install asyncio and discord.py.
|
||||||
To run Maki, simply run bot.py.
|
To run Maki, simply run bot.py.
|
||||||
|
|
||||||
You will require an account for Maki to use, the logon details for which should be stored in a file called secret.py
|
## Required Files
|
||||||
|
- You will require an account for Maki to use, the logon details for which should be stored in a file called secret.py
|
||||||
|
- Maki uses JSON files to store data persistently. You do not need to create these files, Maki will make them for you.
|
||||||
|
|
||||||
## License
|
## License
|
||||||
Copyright 2016, Zac Herd.
|
Copyright 2016, Zac Herd.
|
||||||
|
33
bot.py
33
bot.py
@ -8,8 +8,10 @@
|
|||||||
# IMPORTS
|
# IMPORTS
|
||||||
import discord
|
import discord
|
||||||
import asyncio
|
import asyncio
|
||||||
|
import os
|
||||||
import time
|
import time
|
||||||
import datetime
|
import datetime
|
||||||
|
import json
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
# file in this directory called "secret.py" should contain these variables
|
# file in this directory called "secret.py" should contain these variables
|
||||||
@ -22,7 +24,7 @@ from secret import email,pwd
|
|||||||
name = "Maki"
|
name = "Maki"
|
||||||
|
|
||||||
# bot version
|
# bot version
|
||||||
version = "v0.4.1"
|
version = "v0.5.0"
|
||||||
|
|
||||||
# text shown by .help command
|
# text shown by .help command
|
||||||
helptext = """I am a bot written in Python by MrDetonia
|
helptext = """I am a bot written in Python by MrDetonia
|
||||||
@ -43,11 +45,16 @@ admins = ['116883900688629761']
|
|||||||
# GLOBALS
|
# GLOBALS
|
||||||
|
|
||||||
# number of times Ben has mentioned his meme boards
|
# number of times Ben has mentioned his meme boards
|
||||||
ben_ck_count = 0
|
bentrack = {'ck':0, 'fit':0}
|
||||||
ben_fit_count = 0
|
if os.path.isfile('bentrack.json'):
|
||||||
|
with open('bentrack.json', 'r') as fp:
|
||||||
|
bentrack = json.load(fp)
|
||||||
|
|
||||||
# log of users' last messages and timestamps
|
# log of users' last messages and timestamps
|
||||||
history = {'test': ('test message',time.time())}
|
history = {'test': ('test message',time.time())}
|
||||||
|
if os.path.isfile('hist.json'):
|
||||||
|
with open('hist.json', 'r') as fp:
|
||||||
|
history = json.load(fp)
|
||||||
|
|
||||||
# this instance of a Discord client
|
# this instance of a Discord client
|
||||||
client = discord.Client()
|
client = discord.Client()
|
||||||
@ -90,6 +97,8 @@ def on_message(message):
|
|||||||
|
|
||||||
# log each message against users
|
# log each message against users
|
||||||
history[message.author.name] = (message.content, time.time())
|
history[message.author.name] = (message.content, time.time())
|
||||||
|
with open('hist.json', 'w') as fp:
|
||||||
|
json.dump(history, fp)
|
||||||
|
|
||||||
# parse messages for commands
|
# parse messages for commands
|
||||||
if message.content.startswith('.bots'):
|
if message.content.startswith('.bots'):
|
||||||
@ -107,8 +116,9 @@ def on_message(message):
|
|||||||
elif message.content.startswith('.die') and message.author.id in admins:
|
elif message.content.startswith('.die') and message.author.id in admins:
|
||||||
# exit discord and kill bot
|
# exit discord and kill bot
|
||||||
yield from client.send_message(message.channel, 'y tho :(')
|
yield from client.send_message(message.channel, 'y tho :(')
|
||||||
|
|
||||||
|
# logout of Discord and exit
|
||||||
yield from client.logout()
|
yield from client.logout()
|
||||||
print('exited via die command')
|
|
||||||
|
|
||||||
elif message.content.startswith('.whoami'):
|
elif message.content.startswith('.whoami'):
|
||||||
# show info about user
|
# show info about user
|
||||||
@ -126,11 +136,18 @@ def on_message(message):
|
|||||||
|
|
||||||
# Ben meme trackers
|
# Ben meme trackers
|
||||||
elif '/ck/' in message.content and message.author.name == "Ben.H":
|
elif '/ck/' in message.content and message.author.name == "Ben.H":
|
||||||
ben_ck_count += 1
|
bentrack['ck'] += 1
|
||||||
yield from client.send_message(message.channel, 'I have seen Ben reference /ck/ ' + ben_ck_count + ' times now.')
|
yield from client.send_message(message.channel, 'I have seen Ben reference /ck/ ' + bentrack['ck'] + ' times now.')
|
||||||
|
# save count
|
||||||
|
with open('bentrack.json', 'w') as fp:
|
||||||
|
json.dump(bentrack, fp)
|
||||||
|
|
||||||
elif '/fit/' in message.content and message.author.name == "Ben.H":
|
elif '/fit/' in message.content and message.author.name == "Ben.H":
|
||||||
ben_ck_count += 1
|
bentrack['fit'] += 1
|
||||||
yield from client.send_message(message.channel, 'I have seen Ben reference /fit/ ' + ben_fit_count + ' times now.')
|
yield from client.send_message(message.channel, 'I have seen Ben reference /fit/ ' + bentrack['fit'] + ' times now.')
|
||||||
|
# save count
|
||||||
|
with open('bentrack.json', 'w') as fp:
|
||||||
|
json.dump(bentrack, fp)
|
||||||
|
|
||||||
# Run the client
|
# Run the client
|
||||||
client.run(email, pwd)
|
client.run(email, pwd)
|
||||||
|
Loading…
Reference in New Issue
Block a user