shortener/shortener/resolver.py

26 lines
652 B
Python

import os
from dns.name import from_text
from dns.resolver import Resolver
from shortener.exceptions import ShortCodeNotFoundException
BASE_DOMAIN = os.getenv("BASE_DOMAIN")
class ShortenerResolver(Resolver):
def __init__(self):
super().__init__()
self.search = [from_text(BASE_DOMAIN + ".")]
def resolve_shortcode(self, shortcode):
try:
answer = self.resolve(shortcode, "TXT", search=True, lifetime=10)
redirect_url = list(answer)[0].strings[0].decode("utf-8")
return redirect_url
except:
raise ShortCodeNotFoundException()
resolver = ShortenerResolver()