Files
api2/api/helpers.py
T

39 lines
960 B
Python

# coding=UTF-8
from flask import request, current_app, Response
import unidecode
import re
def check_api_key():
api_keys = current_app.config.get("API_KEYS")
if not api_keys:
return
auth = request.authorization
if not auth or not auth.username in api_keys:
return Response(
'No valid API key provided', 401,
{'WWW-Authenticate': 'Basic realm="Login Required"'}
)
def slugify(text):
"""Converts a string to a human-readable url"""
# translate
text = unidecode.unidecode(text)
# lowercase
text = text.lower()
# replace unwanted chars
numbers = re.compile('(?<=\d),(?=\d)')
text = numbers.sub('', text)
unwanted_chars = re.compile(r'[^_a-z0-9/]+')
text = unwanted_chars.sub('_', text)
# remove redundant _
duplicated_underscores = re.compile('_{2,}')
text = duplicated_underscores.sub('_', text)
text = text.strip('_')
return text