wrap_generator is actually redundant since wrap_response does the same thing basically

This commit is contained in:
Robert Miles 2021-10-07 00:37:52 +00:00
parent 0d02453c3c
commit bf289b1ee3
1 changed files with 14 additions and 18 deletions

32
app.py
View File

@ -108,34 +108,30 @@ def count_entries(ship):
if line.startswith("0"+ship): count+=1
return count
def wrap_response(f):
@wraps(f)
def __wrapper(*args,**kwargs):
rv = f(*args,**kwargs)
if type(rv)!=Response: return Response(Status.SUCCESS,"text/gemini",rv)
return rv
return __wrapper
def wrap_generator(g):
def __viewfunc(request,**kwargs):
return Response(Status.SUCCESS,"text/gemini",g(request,**kwargs))
__viewfunc.__name__ = g.__name__
return __viewfunc
def wrap_response(mimetype="text/gemini")
def __wrapfunc(f):
@wraps(f)
def __wrapper(*args,**kwargs):
rv = f(*args,**kwargs)
if type(rv)!=Response: return Response(Status.SUCCESS,"text/gemini",rv)
return rv
return __wrapper
return __wrapfunc
app = DefaultToGopher()
@app.route("(?:/(?:index\.gmi)?)?")
@wrap_response
@wrap_response()
def index(request):
return listing_generator(header_file="/var/cosmic/templates/geminiintro.tmpl",limit_line_count=RECENT_ENTRIES_COUNT)
@app.route("/log(?:/(?:index\.gmi)?)?")
@wrap_response
@wrap_response()
def log(request):
return listing_generator(header_text="RS001 Log Entries (Newest First):")
@app.route("/ships(?:/(?:index\.gmi)?)?")
@wrap_generator
@wrap_response()
def ships(request):
yield "# Ships and Outposts\n\n"
for ship in sorted(os.listdir("/var/gopher")):
@ -147,7 +143,7 @@ def ships(request):
yield f"=> /ships/{urlencoded}/ {ship} ({entries!s})\n"
@app.route("/ships/(?P<ship>[^/]+)(?:/(?:index\.gmi)?)?")
@wrap_response
@wrap_response()
def ship(request,ship=None):
if ship is None: return Response(Status.BAD_REQUEST,"Bad Request")
ship_unquoted = urllib.parse.unquote(ship)
@ -180,7 +176,7 @@ def ship(request,ship=None):
return __generator()
@app.route("/(?P<format>rss|atom).xml")
@wrap_generator
@wrap_response()
def feeds(request,format="atom"):
with open(os.path.join("/var/gopher",format+".xml")) as f:
for line in f: