1
Fork 0
mirror of https://github.com/RYGhub/royalnet.git synced 2024-11-23 03:24:20 +00:00

#1 Add /dog

This commit is contained in:
Steffo 2021-04-18 16:47:47 +02:00
parent d0d8c50f14
commit b1d8f0c797
Signed by: steffo
GPG key ID: 6965406171929D01
3 changed files with 200 additions and 0 deletions

View file

@ -50,6 +50,9 @@ register_telegram(commands.color, ["color"])
register_telegram(commands.ping, ["ping"]) register_telegram(commands.ping, ["ping"])
register_telegram(commands.ship, ["ship"], r"(?P<first>[A-Za-z]+)[\s+&]+(?P<second>[A-Za-z]+)") register_telegram(commands.ship, ["ship"], r"(?P<first>[A-Za-z]+)[\s+&]+(?P<second>[A-Za-z]+)")
register_telegram(commands.emojify, ["emojify"], r"(?P<message>.+)") register_telegram(commands.emojify, ["emojify"], r"(?P<message>.+)")
register_telegram(commands.dog_any, ["dog"])
register_telegram(commands.dog_breedlist, ["dog"], "(?:list|help|aiuto)")
register_telegram(commands.dog_breed, ["dog"], "(?P<breed>[A-Za-z/]+)")
pda.implementations["telethon.1"].register_conversation(r) pda.implementations["telethon.1"].register_conversation(r)

View file

@ -6,3 +6,4 @@ from .color import *
from .ping import * from .ping import *
from .ship import * from .ship import *
from .emojify import * from .emojify import *
from .dog import *

196
royalpack/commands/dog.py Normal file
View file

@ -0,0 +1,196 @@
import royalnet.engineer as engi
import aiohttp
import io
@engi.TeleportingConversation
async def dog_any(*, _msg: engi.Message, **__):
"""
Invia un doggo in chat! 🐶
"""
async with aiohttp.ClientSession() as session:
async with session.get("https://dog.ceo/api/breeds/image/random") as response:
result = await response.json()
url = result["message"]
async with session.get(url) as response:
img = await response.content.read()
await _msg.reply(files=[io.BytesIO(img)])
_breeds = [
"affenpinscher",
"african",
"airedale",
"akita",
"appenzeller",
"australian/shepherd",
"basenji",
"beagle",
"bluetick",
"borzoi",
"bouvier",
"boxer",
"brabancon",
"briard",
"buhund/norwegian",
"bulldog/boston",
"bulldog/english",
"bulldog/french",
"bullterrier/staffordshire",
"cairn",
"cattledog/australian",
"chihuahua",
"chow",
"clumber",
"cockapoo",
"collie/border",
"coonhound",
"corgi/cardigan",
"cotondetulear",
"dachshund",
"dalmatian",
"dane/great",
"deerhound/scottish",
"dhole",
"dingo",
"doberman",
"elkhound/norwegian",
"entlebucher",
"eskimo",
"finnish/lapphund",
"frise/bichon",
"germanshepherd",
"greyhound/italian",
"groenendael",
"havanese",
"hound/afghan",
"hound/basset",
"hound/blood",
"hound/english",
"hound/ibizan",
"hound/plott",
"hound/walker",
"husky",
"keeshond",
"kelpie",
"komondor",
"kuvasz",
"labrador",
"leonberg",
"lhasa",
"malamute",
"malinois",
"maltese",
"mastiff/bull",
"mastiff/english",
"mastiff/tibetan",
"mexicanhairless",
"mix",
"mountain/bernese",
"mountain/swiss",
"newfoundland",
"otterhound",
"ovcharka/caucasian",
"papillon",
"pekinese",
"pembroke",
"pinscher/miniature",
"pitbull",
"pointer/german",
"pointer/germanlonghair",
"pomeranian",
"poodle/miniature",
"poodle/standard",
"poodle/toy",
"pug",
"puggle",
"pyrenees",
"redbone",
"retriever/chesapeake",
"retriever/curly",
"retriever/flatcoated",
"retriever/golden",
"ridgeback/rhodesian",
"rottweiler",
"saluki",
"samoyed",
"schipperke",
"schnauzer/giant",
"schnauzer/miniature",
"setter/english",
"setter/gordon",
"setter/irish",
"sheepdog/english",
"sheepdog/shetland",
"shiba",
"shihtzu",
"spaniel/blenheim",
"spaniel/brittany",
"spaniel/cocker",
"spaniel/irish",
"spaniel/japanese",
"spaniel/sussex",
"spaniel/welsh",
"springer/english",
"stbernard",
"terrier/american",
"terrier/australian",
"terrier/bedlington",
"terrier/border",
"terrier/dandie",
"terrier/fox",
"terrier/irish",
"terrier/kerryblue",
"terrier/lakeland",
"terrier/norfolk",
"terrier/norwich",
"terrier/patterdale",
"terrier/russell",
"terrier/scottish",
"terrier/sealyham",
"terrier/silky",
"terrier/tibetan",
"terrier/toy",
"terrier/westhighland",
"terrier/wheaten",
"terrier/yorkshire",
"vizsla",
"waterdog/spanish",
"weimaraner",
"whippet",
"wolfhound/irish",
]
@engi.TeleportingConversation
async def dog_breed(*, _msg: engi.Message, breed: str, **__):
"""
Invia un doggo di una razza specifica in chat! 🐶
"""
breed = breed.lower()
if breed not in _breeds:
await _msg.reply(text="⚠️ La razza che hai specificato non esiste nel database.")
async with aiohttp.ClientSession() as session:
async with session.get(f"https://dog.ceo/api/breed/{breed}/images/random") as response:
result = await response.json()
url = result["message"]
async with session.get(url) as response:
img = await response.content.read()
await _msg.reply(files=[io.BytesIO(img)])
@engi.TeleportingConversation
async def dog_breedlist(*, _msg: engi.Message, **__):
"""
Elenca tutte le razze di dogghi disponibili! 🐶
"""
msg = [
"🐶 Razze disponibili:",
", ".join(_breeds),
]
await _msg.reply(text="\n".join(msg))
__all__ = ("dog_any", "dog_breed", "dog_breedlist")