Untitled
unknown
plain_text
2 years ago
3.2 kB
26
Indexable
import os
import keep_alive
import tensorflow as tf
import requests
import re
from PIL import Image
import numpy as np
import discord
import io
import asyncio
import random
from tensorflow.python.ops.numpy_ops import np_config
np_config.enable_numpy_behavior()
user_token = os.environ['user_token']
pokemon_list = eval(open("pokemon.txt", "r", encoding="utf-8").read())
with open('data/pokemon', 'r', encoding='utf8') as file:
pokemon_names = file.read()
def solve(message):
hint = []
for i in range(15, len(message) - 1):
if message[i] != '\\':
hint.append(message[i])
hint_string = ''
for i in hint:
hint_string += i
hint_replaced = hint_string.replace('_', '.')
solution = re.findall('^' + hint_replaced + '$', pokemon_names,
re.MULTILINE)
return solution
async def catch(message):
interpreter = tf.lite.Interpreter(model_path="pokemon.tflite")
interpreter.allocate_tensors()
res = requests.get(message.embeds[0].image.url, stream=True).content
image = Image.open(io.BytesIO(res))
resized_image = image.resize((200, 125))
image_array = np.array(resized_image) / 255.0
image_array = np.expand_dims(image_array, axis=0)
image_array = image_array.astype(np.float32)
input_details = interpreter.get_input_details()
output_details = interpreter.get_output_details()
interpreter.set_tensor(input_details[0]["index"], image_array)
interpreter.invoke()
pokemon_index = tf.argmax(interpreter.get_tensor(output_details[0]["index"]), axis=1).tolist()[0]
pokemon_name = pokemon_list[pokemon_index]
if re.search("[a-zA-Z.]", pokemon_name) is None:
pokemon_name = pokemon_name.replace(" ", "")
await asyncio.sleep(random.randint(2, 6))
await message.channel.send(f"<@716390085896962058> c {pokemon_name}")
async def hint(message):
await asyncio.sleep(1)
await message.channel.send("<@716390085896962058> h", delete_after = 1)
class Discord(discord.Client):
async def on_ready(self):
print(f"Logged in as {self.user}")
await self.change_presence(status=discord.Status.invisible, activity=discord.Game(name="Free Fire", type=3))
async def on_message(self, message):
if message.author.id != 744475570557026316 and message.author.id != 716390085896962058:
return
if len(message.embeds) > 0 and "wild pokémon has appeared!" in message.embeds[0].title:
await catch(message)
content = message.content
solutions = []
if "the wrong pokémon!" in content:
await hint(message)
elif "The pokémon is " in content:
solutions = solve(content)
if not solutions:
print('Pokemon not found.')
else:
for i in solutions:
await message.delete()
await asyncio.sleep(random.randint(2, 3))
await message.channel.send(f'<@716390085896962058> c {i}')
elif "human" in content:
await message.channel.send('!kick <@716390085896962058>')
client = Discord()
keep_alive.keep_alive()
client.run(user_token)Editor is loading...