Compare commits

...

3 Commits

Author SHA1 Message Date
Radek
1fa5db7a04 secrets module 2024-12-06 14:34:03 +00:00
Radek
2bea19ac07 update index 2024-12-06 14:27:36 +00:00
Radek
116e77421d add some style/css 2024-12-06 14:27:06 +00:00
4 changed files with 127 additions and 40 deletions

22
app.py
View File

@@ -1,30 +1,20 @@
from flask import Flask, render_template, request from flask import Flask, render_template, request
import random import secrets
import os
import time
app = Flask(__name__) app = Flask(__name__)
# Function to generate random seed using system entropy
def generate_seed_from_entropy():
seed = int((time.time() * 1000) % (2**32 - 1)) + os.getpid() + random.randint(0, 2**16 - 1)
return seed
# Function to generate random numbers based on lottery rules # Function to generate random numbers based on lottery rules
def generate_lottery_numbers(game_type): def generate_lottery_numbers(game_type):
seed = generate_seed_from_entropy()
random.seed(seed)
if game_type == 'euromillions': if game_type == 'euromillions':
numbers = sorted(random.sample(range(1, 51), 5)) numbers = sorted(secrets.SystemRandom().sample(range(1, 51), 5))
lucky_stars = sorted(random.sample(range(1, 13), 2)) lucky_stars = sorted(secrets.SystemRandom().sample(range(1, 13), 2))
return {'numbers': numbers, 'lucky_stars': lucky_stars} return {'numbers': numbers, 'lucky_stars': lucky_stars}
elif game_type == 'lotto': elif game_type == 'lotto':
numbers = sorted(random.sample(range(1, 48), 6)) numbers = sorted(secrets.SystemRandom().sample(range(1, 48), 6))
return {'numbers': numbers} return {'numbers': numbers}
elif game_type == 'eurodreams': elif game_type == 'eurodreams':
numbers = sorted(random.sample(range(1, 41), 6)) numbers = sorted(secrets.SystemRandom().sample(range(1, 41), 6))
dream_number = random.randint(1, 5) dream_number = secrets.SystemRandom().randint(1, 5)
return {'numbers': numbers, 'dream_number': dream_number} return {'numbers': numbers, 'dream_number': dream_number}
else: else:
return {'error': 'Invalid game type'} return {'error': 'Invalid game type'}

41
app.py.OLD Normal file
View File

@@ -0,0 +1,41 @@
from flask import Flask, render_template, request
import random
import os
import time
app = Flask(__name__)
# Function to generate random seed using system entropy
def generate_seed_from_entropy():
seed = int((time.time() * 1000) % (2**32 - 1)) + os.getpid() + random.randint(0, 2**16 - 1)
return seed
# Function to generate random numbers based on lottery rules
def generate_lottery_numbers(game_type):
seed = generate_seed_from_entropy()
random.seed(seed)
if game_type == 'euromillions':
numbers = sorted(random.sample(range(1, 51), 5))
lucky_stars = sorted(random.sample(range(1, 13), 2))
return {'numbers': numbers, 'lucky_stars': lucky_stars}
elif game_type == 'lotto':
numbers = sorted(random.sample(range(1, 48), 6))
return {'numbers': numbers}
elif game_type == 'eurodreams':
numbers = sorted(random.sample(range(1, 41), 6))
dream_number = random.randint(1, 5)
return {'numbers': numbers, 'dream_number': dream_number}
else:
return {'error': 'Invalid game type'}
@app.route('/', methods=['GET', 'POST'])
def index():
result = None
if request.method == 'POST':
game_type = request.form.get('game_type')
result = generate_lottery_numbers(game_type)
return render_template('index.html', result=result)
if __name__ == '__main__':
app.run(debug=True)

54
static/style.css Normal file
View File

@@ -0,0 +1,54 @@
body {
font-family: Arial, sans-serif;
background-color: #f0f8ff;
color: #333;
text-align: center;
margin: 0;
padding: 0;
}
.container {
max-width: 600px;
margin: 50px auto;
padding: 20px;
background-color: #ffffff;
border-radius: 8px;
box-shadow: 0 0 15px rgba(0, 0, 0, 0.1);
}
h1 {
color: #0073e6;
}
form {
margin-top: 20px;
}
label {
font-weight: bold;
}
select, button {
padding: 10px;
margin-top: 10px;
border-radius: 5px;
border: 1px solid #ccc;
width: 100%;
}
button {
background-color: #0073e6;
color: #fff;
cursor: pointer;
}
button:hover {
background-color: #005bb5;
}
.result {
margin-top: 30px;
padding: 20px;
background-color: #f9f9f9;
border-radius: 8px;
}

View File

@@ -4,31 +4,33 @@
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>Lottery Number Generator</title> <title>Lottery Number Generator</title>
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
</head> </head>
<body> <body>
<div class="container">
<h1>Lottery Number Generator</h1> <h1>Lottery Number Generator</h1>
<form method="POST"> <form method="POST">
<label for="game_type">Select Game:</label> <label for="game_type">Select Game:</label>
<select name="game_type" id="game_type" required> <select name="game_type" id="game_type" required>
<option value="euromillions">EuroMillions</option> <option value="euromillions">EuroMillions</option>
<option value="euromillions_plus">EuroMillions Plus</option>
<option value="lotto">Lotto</option> <option value="lotto">Lotto</option>
<option value="lotto_plus">Lotto Plus</option>
<option value="eurodreams">EuroDreams</option> <option value="eurodreams">EuroDreams</option>
</select> </select>
<br><br>
<button type="submit">Generate Numbers</button> <button type="submit">Generate Numbers</button>
</form> </form>
{% if result %} {% if result %}
<div class="result">
<h2>Generated Numbers:</h2> <h2>Generated Numbers:</h2>
<p>Numbers: {{ result.numbers }}</p> <p>Numbers: {{ result.numbers }}</p>
{% if result.lucky_stars %} {% if result.lucky_stars %}
<p>Lucky Stars: {{ result.lucky_stars }}</p> <p>Lucky Stars: {{ result.lucky_stars }}</p>
{% endif %} {% endif %}
{% if result.plus %} {% if result.dream_number %}
<p>Plus Option: Yes</p> <p>Dream Number: {{ result.dream_number }}</p>
{% endif %} {% endif %}
</div>
{% endif %} {% endif %}
</div>
</body> </body>
</html> </html>