Update app.py
Browse files
app.py
CHANGED
|
@@ -124,6 +124,7 @@ async def get_video_url(youtube_url: str):
|
|
| 124 |
global_download_dir = tempfile.mkdtemp()
|
| 125 |
|
| 126 |
|
|
|
|
| 127 |
class RateLimiter:
|
| 128 |
def __init__(self, max_requests: int, time_window: timedelta):
|
| 129 |
self.max_requests = max_requests
|
|
@@ -142,13 +143,20 @@ class RateLimiter:
|
|
| 142 |
"""Check if the user has exceeded their rate limit."""
|
| 143 |
self._cleanup_old_requests(user_ip)
|
| 144 |
|
| 145 |
-
#
|
|
|
|
|
|
|
|
|
|
| 146 |
current_time = time.time()
|
| 147 |
self.requests[user_ip].append(current_time)
|
| 148 |
|
| 149 |
# Check if user has exceeded the maximum requests
|
| 150 |
-
return
|
| 151 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 152 |
|
| 153 |
|
| 154 |
# Initialize rate limiter with 100 requests per day
|
|
@@ -164,6 +172,7 @@ def get_user_ip(request: Request) -> str:
|
|
| 164 |
return forwarded.split(",")[0]
|
| 165 |
return request.client.host
|
| 166 |
|
|
|
|
| 167 |
@app.post("/maxs")
|
| 168 |
async def download_high_quality_video(request: Request):
|
| 169 |
user_ip = get_user_ip(request)
|
|
|
|
| 124 |
global_download_dir = tempfile.mkdtemp()
|
| 125 |
|
| 126 |
|
| 127 |
+
|
| 128 |
class RateLimiter:
|
| 129 |
def __init__(self, max_requests: int, time_window: timedelta):
|
| 130 |
self.max_requests = max_requests
|
|
|
|
| 143 |
"""Check if the user has exceeded their rate limit."""
|
| 144 |
self._cleanup_old_requests(user_ip)
|
| 145 |
|
| 146 |
+
# Get current count after cleanup
|
| 147 |
+
current_count = len(self.requests[user_ip])
|
| 148 |
+
|
| 149 |
+
# Add current request timestamp (incrementing the count)
|
| 150 |
current_time = time.time()
|
| 151 |
self.requests[user_ip].append(current_time)
|
| 152 |
|
| 153 |
# Check if user has exceeded the maximum requests
|
| 154 |
+
return (current_count + 1) > self.max_requests
|
| 155 |
+
|
| 156 |
+
def get_current_count(self, user_ip: str) -> int:
|
| 157 |
+
"""Get the current request count for an IP."""
|
| 158 |
+
self._cleanup_old_requests(user_ip)
|
| 159 |
+
return len(self.requests[user_ip])
|
| 160 |
|
| 161 |
|
| 162 |
# Initialize rate limiter with 100 requests per day
|
|
|
|
| 172 |
return forwarded.split(",")[0]
|
| 173 |
return request.client.host
|
| 174 |
|
| 175 |
+
|
| 176 |
@app.post("/maxs")
|
| 177 |
async def download_high_quality_video(request: Request):
|
| 178 |
user_ip = get_user_ip(request)
|