abort(404)
ip = request.headers.get("X-Forwarded-For") or request.remote_addr
- if ip is not None:
+ if ip is not None and not is_user_bot():
key = make_download_key(ip, release.package)
if not has_key(key):
set_key(key, "true")
from flask_login import login_user, logout_user
from .models import *
from . import app
-import random, string, os, imghdr
+import random, string, os, imghdr, user_agents
from urllib.parse import urljoin
from werkzeug.datastructures import MultiDict
except ValueError:
abort(400)
+def is_user_bot():
+ user_agent = user_agents.parse(request.headers.get('User-Agent'))
+ return user_agent.is_bot
+
def getExtension(filename):
return filename.rsplit(".", 1)[1].lower() if "." in filename else None