2017-10-13 02:30:07 +00:00
|
|
|
import asyncio
|
2017-10-11 06:54:32 +00:00
|
|
|
import json
|
2017-10-14 03:59:14 +00:00
|
|
|
import os
|
2017-10-13 02:30:07 +00:00
|
|
|
import pickle as pkl
|
|
|
|
|
|
|
|
import aiohttp as aio
|
|
|
|
|
2017-10-14 03:59:14 +00:00
|
|
|
print('PID {}'.format(os.getpid()))
|
|
|
|
|
|
|
|
try:
|
|
|
|
with open('config.json') as infile:
|
|
|
|
config = json.load(infile)
|
|
|
|
print('\"config.json\" loaded.')
|
|
|
|
except FileNotFoundError:
|
|
|
|
with open('config.json', 'w') as outfile:
|
|
|
|
json.dump({'client_id': 0, 'listed_ids': [0], 'owner_id': 0, 'permissions': 126016, 'prefix': ',',
|
|
|
|
'shutdown_channel': 0, 'startup_channel': 0, 'token': 'str'}, outfile, indent=4, sort_keys=True)
|
|
|
|
raise FileNotFoundError(
|
|
|
|
'Config file not found: \"config.json\" created with abstract values. Restart \"run.py\" with correct values.')
|
|
|
|
|
2017-10-13 02:30:07 +00:00
|
|
|
|
|
|
|
def setdefault(filename, default=None):
|
|
|
|
try:
|
|
|
|
with open(filename, 'rb') as infile:
|
|
|
|
print('\"{}\" loaded.'.format(filename))
|
|
|
|
return pkl.load(infile)
|
|
|
|
except FileNotFoundError:
|
|
|
|
with open(filename, 'wb+') as iofile:
|
|
|
|
print('File not found: \"{}\" created and loaded with default values.'.format(filename))
|
|
|
|
pkl.dump(default, iofile)
|
|
|
|
iofile.seek(0)
|
|
|
|
return pkl.load(iofile)
|
|
|
|
|
|
|
|
|
|
|
|
def load(filename):
|
|
|
|
with open(filename, 'rb') as infile:
|
|
|
|
return pkl.load(infile)
|
|
|
|
|
|
|
|
|
|
|
|
def dump(obj, filename):
|
|
|
|
with open(filename, 'wb') as outfile:
|
|
|
|
pkl.dump(obj, outfile)
|
2017-10-11 06:54:32 +00:00
|
|
|
|
2017-10-13 02:30:07 +00:00
|
|
|
|
2017-10-14 19:28:00 +00:00
|
|
|
tasks = setdefault('cogs/tasks.pkl', {})
|
2017-10-11 06:54:32 +00:00
|
|
|
|
|
|
|
|
2017-10-13 02:30:07 +00:00
|
|
|
async def clear(obj, interval=10 * 60, replace=None):
|
2017-10-11 06:54:32 +00:00
|
|
|
if replace is None:
|
|
|
|
if type(obj) is list:
|
|
|
|
replace = []
|
|
|
|
elif type(obj) is dict:
|
|
|
|
replace = {}
|
|
|
|
elif type(obj) is int:
|
|
|
|
replace = 0
|
|
|
|
elif type(obj) is str:
|
|
|
|
replace = ''
|
|
|
|
|
|
|
|
while True:
|
|
|
|
obj = replace
|
|
|
|
asyncio.sleep(interval)
|
2017-10-13 02:30:07 +00:00
|
|
|
|
|
|
|
|
|
|
|
session = None
|
|
|
|
|
|
|
|
HEADERS = {'user-agent': 'Modumind/0.0.1 (Myned)'}
|
|
|
|
|
|
|
|
|
|
|
|
async def fetch(url, *, params={}, json=False):
|
|
|
|
global session, HEADERS
|
|
|
|
async with session.get(url, params=params, headers=HEADERS) as r:
|
|
|
|
if json is True:
|
|
|
|
return await r.json()
|
|
|
|
return r
|