GImages/main.py

60 lines
1.7 KiB
Python

import asyncio
import aiohttp
import next
import creds
from creds import gimgsettings
from next.ext import commands
from api import get_img
class Client(commands.CommandsClient):
async def get_prefix(self, message: next.Message):
return "!"
@commands.command()
async def gimg(self, ctx: commands.Context, *args):
"""[count of images, 1 by default] - get image from Google Images"""
arg = ""
banned = False
if gimgsettings['usestoplist'] == True:
for banword in gimgsettings['stoplist']:
if banword in arg:
banned = True
else:
pass
try:
count = int(args[0])
for word in range(1, len(args)):
arg += f"{args[word]} "
except:
count = 1
for word in args:
arg += f"{word} "
if count > 10:
toomanyimages = True
else:
toomanyimages = False
if toomanyimages == False and banned == False:
try:
url = get_img(arg, count) # requesting image
await ctx.send(f"Search query: {arg}\n{url}") # sending image via embed
except IndexError:
await ctx.send("No images found")
elif banned == True:
await ctx.send(f"Your search query contains banned words")
elif toomanyimages == True:
await ctx.send(f"You requested too many images (>10)")
async def main():
async with aiohttp.ClientSession() as session:
client = Client(session, creds.bot)
print("Running GImages")
await client.start()
asyncio.run(main())