41 lines
1000 B
Python
41 lines
1000 B
Python
from flask import Flask
|
|
from flask import request
|
|
import re
|
|
|
|
app = Flask(__name__)
|
|
|
|
|
|
@app.route("/")
|
|
def index():
|
|
with open("index.html", "r") as f:
|
|
return f.read()
|
|
|
|
|
|
@app.route("/gen", methods=['GET'])
|
|
def content_generator():
|
|
len_param = request.args.get('len')
|
|
total_size = -1
|
|
if re.match(r"^[0-9]+$", len_param):
|
|
total_size = int(len_param)
|
|
elif re.match(r"^[0-9]+k$", len_param):
|
|
total_size = int(len_param[0:-1]) * 1024
|
|
elif re.match(r"^[0-9]+m$", len_param):
|
|
total_size = int(len_param[0:-1]) * 1024 * 1024
|
|
|
|
if total_size <= 0:
|
|
return "Invalid payload size", 400
|
|
|
|
generated_segment = bytearray()
|
|
for i in range(0, 256):
|
|
generated_segment.append(i)
|
|
|
|
res = bytearray()
|
|
while len(res) < total_size:
|
|
remain = total_size - len(res)
|
|
if remain >= len(generated_segment):
|
|
res += generated_segment
|
|
else:
|
|
res += generated_segment[0:remain]
|
|
|
|
return bytes(res)
|