Started refactoring for future use

This commit is contained in:
sprechtl 2021-10-10 01:19:31 +02:00
parent 712f64a03a
commit 5c2ff27656
6 changed files with 148 additions and 17 deletions

View file

@ -0,0 +1,22 @@
from abc import ABC
import discord
import riotwatcher
import APICommands.Command
class ChampionMastery(APICommands.Command.Command, ABC):
keywords = ["cm", "CM", "Championmastery", "championmastery"]
def __init__(self, pref, api: riotwatcher.LolWatcher, additionalKeywords: list):
super().__init__(pref, api, additionalKeywords)
async def execute(self, message: discord.Message):
pass
async def info(self, message: discord.Message):
pass
async def usage(self, message: discord.Message):
pass

45
APICommands/Command.py Normal file
View file

@ -0,0 +1,45 @@
from abc import abstractmethod, ABCMeta
from datetime import datetime
import discord
import riotwatcher
class Command:
__metaclass__ = ABCMeta
keywords = []
pref = ""
api: riotwatcher.LolWatcher
commandName = ""
def __init__(self, pref, api: riotwatcher.LolWatcher, addkeywords: list):
for i in addkeywords:
self.keywords.append(i)
self.pref = pref
self.api = api
@abstractmethod
async def execute(self, message: discord.Message):
pass
@abstractmethod
async def info(self, message: discord.Message):
pass
@abstractmethod
async def usage(self, message: discord.Message):
pass
def isCalled(self, message: discord.Message):
for i in self.keywords:
if message.content.startswith(self.pref + i):
return True
return False
def log(self, message: discord.Message):
logMSG = (self.commandName + " request sent in Channel " + str(message.channel.name) + "\n\t- at: " + str(
datetime.now())[:-7] + "\n\t- by: " + str(message.author) + "\n\t- content: '" + str(
message.content) + "'\n")
print(logMSG)
with open("requests.log", "a") as f:
f.write(logMSG)

View file

@ -0,0 +1,22 @@
from abc import ABC
import discord
import riotwatcher
import APICommands.Command
class HighestMastery(APICommands.Command.Command, ABC):
keywords = ["highestmastery", "highestMastery", "HM", "hm", "Hm", "HighestMastery"]
def __init__(self, pref, api: riotwatcher.LolWatcher, additionalKeywords: list):
super().__init__(pref, api, additionalKeywords)
async def execute(self, message: discord.Message):
pass
async def info(self, message: discord.Message):
pass
async def usage(self, message: discord.Message):
pass

View file

@ -0,0 +1,22 @@
from abc import ABC
import discord
import riotwatcher
import APICommands.Command
class Prefix(APICommands.Command.Command, ABC):
keywords = ["prefix"]
def __init__(self, pref, api: riotwatcher.LolWatcher, additionalKeywords: list):
super().__init__(pref, api, additionalKeywords)
async def execute(self, message: discord.Message):
pass
async def info(self, message: discord.Message):
pass
async def usage(self, message: discord.Message):
pass

View file

@ -0,0 +1,22 @@
from abc import ABC
import discord
import riotwatcher
import APICommands.Command
class SummonerLevel(APICommands.Command.Command, ABC):
keywords = ["level", "Level", "lvl"]
def __init__(self, pref, api: riotwatcher.LolWatcher, additionalKeywords: list):
super().__init__(pref, api, additionalKeywords)
async def execute(self, message: discord.Message):
pass
async def info(self, message: discord.Message):
pass
async def usage(self, message: discord.Message):
pass

View file

@ -1,9 +1,12 @@
import datetime
import json
import discord, pickle
import discord
import pickle
import requests
from riotwatcher import LolWatcher, ApiError
from riotwatcher import LolWatcher
from APICommands import ChampionMasteryCommand, HighestMasteryCommand, SummonerLevelCommand, PrefixCommand
def championIdToName(id, championsText):
@ -18,12 +21,20 @@ class MyClient(discord.Client):
api: LolWatcher
region: str
pref = "$"
commands = []
def initAPI(self, APIKey, region="EUW1"):
self.api = LolWatcher(APIKey)
self.region = region
def load(self): # Loads the prefix file if accesable
def initCommands(self):
self.commands = []
self.commands.append(ChampionMasteryCommand.ChampionMastery(self.api, self.pref, []))
self.commands.append(HighestMasteryCommand.HighestMastery(self.api, self.pref, []))
self.commands.append(SummonerLevelCommand.SummonerLevel(self.api, self.pref, []))
self.commands.append(PrefixCommand.Prefix(self.api, self.pref, []))
def load(self): # Loads the prefix file if accessable
try:
self.pref = pickle.load(open("prefix.data", "rb"))
print("Prefix loaded as: " + self.pref)
@ -99,7 +110,7 @@ class MyClient(discord.Client):
try:
sumname = self.getSummonerNameFromMessage(message)
except:
await message.channel.send(err)
pass
if sumname != "":
if not await self.checkSumname(sumname, message):
return
@ -241,12 +252,6 @@ class MyClient(discord.Client):
ret = inp[argumentstart]
return ret
def getContentFromMessageWithPrefixCommand(self, message: discord.Message, command: list):
for i in command:
if message.content.startswith(self.pref + i):
return True
return False
def getChampionMasteryList(self, sumname, listlen):
output = ["Der Spieler " + sumname + " hat den höchsten Mastery auf diesen " + str(
listlen) + " Champions\n"]
@ -266,13 +271,6 @@ class MyClient(discord.Client):
output[count] += out
return output
def log(self, requestType, message: discord.Message):
logMSG =( requestType + " request sent in Channel " + str(message.channel.name) + "\n\t- at: " + str(
datetime.datetime.now())[:-7] + "\n\t- by: " + str(message.author) + "\n\t- content: '" + str(message.content) + "'\n")
print(logMSG)
with open("requests.log", "a") as f:
f.write(logMSG)
def getEncryptedSummonerID(self, name):
return self.api.summoner.by_name(self.region, name)["id"]