From 3e8ed01850daa9253e41d6e11bf11e78a41a9012 Mon Sep 17 00:00:00 2001
From: Adam Piontek <adam@adampiontek.net>
Date: Sat, 25 Aug 2018 18:02:35 -0400
Subject: [PATCH] Implemented ability for 'doggo' to accept sub-breed and fetch
 appropriate API URL.

---
 doggo.py | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/doggo.py b/doggo.py
index a45ab8c..25f05c0 100644
--- a/doggo.py
+++ b/doggo.py
@@ -21,12 +21,27 @@ class Doggo(BotPlugin):
         if len(args) > 0 and args[0]:
             breed = args[0]
             if not self.breeds:
+                args.append('calledbyfunction')
                 self.reloadbreeds(msg, args)
             if breed in self.breeds.keys():
                 url = '{}/breed/{}/images/random'.format(self.BASE_URL, breed)
             else:
                 return 'Breed not found: {}. List breeds with !listbreeds'.format(breed)
 
+        # But what if user passed us a sub-breed?
+        if len(args) > 1 and args[1]:
+            subbreed = args[1]
+            if len(self.breeds[breed]) == 0:
+                if 'calledbyfunction' not in args:
+                    args.append('calledbyfunction')
+                self.reloadsubbreeds(msg, args)
+                if len(self.breeds[breed]) == 0:
+                    return 'No sub-breeds available for {}, so we cannot use {}.'.format(breed, subbreed)
+            if subbreed in self.breeds[breed]:
+                url = '{}/breed/{}/{}/images/random'.format(self.BASE_URL, breed, subbreed)
+            else:
+                return 'Sub-breed of {} not found: {}. List sub-breeds with !listsubbreeds'.format(breed, subbreed)
+
         try:
             resp = requests.get(url)
             resp.raise_for_status()