Browse Source

Significantly reduce redundancy

Signed-off-by: Skylar "The Cobra" Widulski <cobra@vern.cc>
Skylar "The Cobra" Widulski 2 years ago
parent
commit
3f99b3b6c2
1 changed files with 6 additions and 36 deletions
  1. 6 36
      main.py

+ 6 - 36
main.py

@@ -6,11 +6,6 @@ import html
 import re
 from bs4 import BeautifulSoup
 
-ERRROR_MESSAGE = 'Uh oh, could not connect to urban dictionary api'
-DEFINE = "https://urbandictionary.com/define.php?term="
-AUTHOR = "https://urbandictionary.com/author.php?author="
-RANDOM = "https://urbandictionary.com/random.php"
-HOME = "https://urbandictionary.com/"
 
 def scrape(url, arg=None):
     if arg == None:
@@ -21,6 +16,7 @@ def scrape(url, arg=None):
     if data.status_code == 200:
         our_path = re.sub(r".*://.*/", "/", request.url)
         path = re.sub(r".*://.*/", "/", data.url)
+        print(our_path, path)
         if our_path != path:
             return f"REDIRECT {path}"
         ret = []
@@ -39,47 +35,21 @@ def scrape(url, arg=None):
             pages = ""
         return (ret, pages)
     else:
-        return f"Couldn't get data from the API\n{data.status_code}"
+        return f"Couldn't get data from Urban Dictionary\n{data.status_code}"
 
 def render(data):
     return render_template('index.html', data=data)
 
 app = Flask(__name__, template_folder="templates", static_folder="static")
 
-@app.route('/')
-def home():
-    scraped = scrape(HOME + {True: f"?page={request.args.get('page')}", False: ""} [request.args.get('page') != None])
+@app.route('/', defaults={'path': ''})
+@app.route('/<path:path>')
+def catch_all(path):
+    scraped = scrape(f"https://urbandictionary.com/{re.sub(r'.*://.*/', '/', request.url)}")
     if type(scraped) == str and scraped.startswith("REDIRECT"):
         return redirect(scraped.replace("REDIRECT ", ""), 302)
-    return render(scraped)
-
-@app.route('/define.php')
-def define():
-    if request.args.get('term') != None:
-        scraped = scrape(DEFINE + request.args.get('term') + {True: f"&page={request.args.get('page')}", False: ""} [request.args.get('page') != None])
-        if type(scraped) == str and scraped.startswith("REDIRECT"):
-            return redirect(scraped.replace("REDIRECT ", ""), 302)
-    else:
-        return redirect("/", 302)
-    return render(scraped)
-
-@app.route('/author.php')
-def author():
-    if request.args.get('author') != None:
-        scraped = scrape(AUTHOR + request.args.get('author') + {True: f"&page={request.args.get('page')}", False: ""} [request.args.get('page') != None])
-        if type(scraped) == str and scraped.startswith("REDIRECT"):
-            return redirect(scraped.replace("REDIRECT ", ""), 302)
-    else:
-        return redirect("/", 302)
     scraped = (scraped[0], str(scraped[1]).replace("»", "»").replace("›", "›").replace("«", "«").replace("‹", "‹"))
     return render(scraped)
 
-@app.route('/random.php')
-def random():
-    scraped = scrape(RANDOM)
-    if type(scraped) == str and scraped.startswith("REDIRECT"):
-        return redirect(scraped.replace("REDIRECT ", ""), 302)
-    return render(scraped)
-
 if __name__ == '__main__':
     app.run(port=8000)