feat(gebedstijden): voeg gebedstijd offsets en UI aanpassingen toe
Gebedstijd offsets zijn toegevoegd waarmee gebruikers tijdaanpassingen kunnen maken aan de tijden verkregen van de VUMG API. Dit biedt meer flexibiliteit door de mogelijkheid te geven om minuten toe te voegen of af te trekken van elke specifieke gebedstijd (Fajr, Zuhr, Asr, Maghrib, Isha). Het template voor instellingen is aangepast om deze nieuwe offset functionaliteit op een gebruiksvriendelijke manier toegankelijk te maken. Ook zijn er kleine correcties uitgevoerd om de seconden correct uit de gebedstijden te halen voor een betere verwerking.
This commit is contained in:
parent
df8f4c7d9b
commit
d9e8d9a915
@ -3,7 +3,7 @@
|
|||||||
"activeCommit": 0,
|
"activeCommit": 0,
|
||||||
"commits": [
|
"commits": [
|
||||||
{
|
{
|
||||||
"activePatchIndex": 2,
|
"activePatchIndex": 3,
|
||||||
"patches": [
|
"patches": [
|
||||||
{
|
{
|
||||||
"date": 1748201503324,
|
"date": 1748201503324,
|
||||||
@ -16,6 +16,10 @@
|
|||||||
{
|
{
|
||||||
"date": 1748276087388,
|
"date": 1748276087388,
|
||||||
"content": "Index: \n===================================================================\n--- \n+++ \n@@ -1,1 +1,9 @@\n-\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\n\\ No newline at end of file\n+{\n+ \"volume\": 15,\n+ \"zones\": [\n+ \"Keuken\",\n+ \"Slaapkamer\"\n+ ],\n+ \"audio_clip\": \"adhan1.mp3\",\n+ \"mute\": false\n+}\n\\ No newline at end of file\n"
|
"content": "Index: \n===================================================================\n--- \n+++ \n@@ -1,1 +1,9 @@\n-\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\n\\ No newline at end of file\n+{\n+ \"volume\": 15,\n+ \"zones\": [\n+ \"Keuken\",\n+ \"Slaapkamer\"\n+ ],\n+ \"audio_clip\": \"adhan1.mp3\",\n+ \"mute\": false\n+}\n\\ No newline at end of file\n"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": 1748339667206,
|
||||||
|
"content": "Index: \n===================================================================\n--- \n+++ \n@@ -1,8 +1,8 @@\n {\n \"volume\": 15,\n \"volume_day\": 15,\n- \"volume_night\": 8,\n+ \"volume_night\": 4,\n \"night_start\": \"00:00\",\n \"day_start\": \"07:00\",\n \"zones\": [\n \"Keuken\",\n"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"date": 1748201503324,
|
"date": 1748201503324,
|
||||||
|
|||||||
22
.lh/adhan-webapp/test_offsets.py.json
Normal file
22
.lh/adhan-webapp/test_offsets.py.json
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"sourceFile": "adhan-webapp/test_offsets.py",
|
||||||
|
"activeCommit": 0,
|
||||||
|
"commits": [
|
||||||
|
{
|
||||||
|
"activePatchIndex": 1,
|
||||||
|
"patches": [
|
||||||
|
{
|
||||||
|
"date": 1748347843183,
|
||||||
|
"content": "Index: \n===================================================================\n--- \n+++ \n"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": 1748347851222,
|
||||||
|
"content": "Index: \n===================================================================\n--- \n+++ \n@@ -1,71 +1,1 @@\n-#!/usr/bin/env python3\n-\n-import json\n-import sys\n-from datetime import datetime, timedelta\n-\n-def apply_prayer_offsets(gebedstijden, settings):\n- \"\"\"Pas offsets toe op gebedstijden\"\"\"\n- offsets = {\n- 'Fajr': settings.get('fajr_offset', 0),\n- 'Zuhr': settings.get('zuhr_offset', 0),\n- 'Asr': settings.get('asr_offset', 0),\n- 'Maghrib': settings.get('maghrib_offset', 0),\n- 'Isha': settings.get('isha_offset', 0)\n- }\n- \n- adjusted_times = {}\n- \n- for prayer, original_time in gebedstijden.items():\n- offset_minutes = offsets.get(prayer, 0)\n- \n- if offset_minutes == 0:\n- adjusted_times[prayer] = original_time\n- continue\n- \n- try:\n- # Parse de originele tijd\n- time_obj = datetime.strptime(original_time, '%H:%M')\n- \n- # Voeg offset toe\n- adjusted_time = time_obj + timedelta(minutes=offset_minutes)\n- \n- # Converteer terug naar string\n- adjusted_times[prayer] = adjusted_time.strftime('%H:%M')\n- \n- if offset_minutes != 0:\n- print(f\"📅 {prayer}: {original_time} → {adjusted_times[prayer]} ({offset_minutes:+d} min)\")\n- \n- except Exception as e:\n- print(f\"⚠️ Fout bij aanpassen {prayer} tijd: {e}\")\n- adjusted_times[prayer] = original_time\n- \n- return adjusted_times\n-\n-# Test de functie\n-if __name__ == \"__main__\":\n- # Laad settings\n- with open('settings.json') as f:\n- settings = json.load(f)\n- \n- # Test gebedstijden (zoals van VUMG API)\n- test_gebedstijden = {\n- \"Fajr\": \"05:30\",\n- \"Zuhr\": \"12:45\", \n- \"Asr\": \"15:20\",\n- \"Maghrib\": \"17:55\",\n- \"Isha\": \"19:30\"\n- }\n- \n- print(\"=== OFFSET TEST ===\")\n- print(\"Originele tijden:\")\n- for prayer, time in test_gebedstijden.items():\n- offset = settings.get(f'{prayer.lower()}_offset', 0)\n- print(f\" {prayer}: {time} (offset: {offset:+d} min)\")\n- \n- print(\"\\nAangepaste tijden:\")\n- adjusted = apply_prayer_offsets(test_gebedstijden, settings)\n- \n- print(\"\\nResultaat:\")\n- for prayer, time in adjusted.items():\n- print(f\" {prayer}: {time}\") \n\\ No newline at end of file\n+ \n\\ No newline at end of file\n"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"date": 1748347843183,
|
||||||
|
"name": "Commit-0",
|
||||||
|
"content": "#!/usr/bin/env python3\n\nimport json\nimport sys\nfrom datetime import datetime, timedelta\n\ndef apply_prayer_offsets(gebedstijden, settings):\n \"\"\"Pas offsets toe op gebedstijden\"\"\"\n offsets = {\n 'Fajr': settings.get('fajr_offset', 0),\n 'Zuhr': settings.get('zuhr_offset', 0),\n 'Asr': settings.get('asr_offset', 0),\n 'Maghrib': settings.get('maghrib_offset', 0),\n 'Isha': settings.get('isha_offset', 0)\n }\n \n adjusted_times = {}\n \n for prayer, original_time in gebedstijden.items():\n offset_minutes = offsets.get(prayer, 0)\n \n if offset_minutes == 0:\n adjusted_times[prayer] = original_time\n continue\n \n try:\n # Parse de originele tijd\n time_obj = datetime.strptime(original_time, '%H:%M')\n \n # Voeg offset toe\n adjusted_time = time_obj + timedelta(minutes=offset_minutes)\n \n # Converteer terug naar string\n adjusted_times[prayer] = adjusted_time.strftime('%H:%M')\n \n if offset_minutes != 0:\n print(f\"📅 {prayer}: {original_time} → {adjusted_times[prayer]} ({offset_minutes:+d} min)\")\n \n except Exception as e:\n print(f\"⚠️ Fout bij aanpassen {prayer} tijd: {e}\")\n adjusted_times[prayer] = original_time\n \n return adjusted_times\n\n# Test de functie\nif __name__ == \"__main__\":\n # Laad settings\n with open('settings.json') as f:\n settings = json.load(f)\n \n # Test gebedstijden (zoals van VUMG API)\n test_gebedstijden = {\n \"Fajr\": \"05:30\",\n \"Zuhr\": \"12:45\", \n \"Asr\": \"15:20\",\n \"Maghrib\": \"17:55\",\n \"Isha\": \"19:30\"\n }\n \n print(\"=== OFFSET TEST ===\")\n print(\"Originele tijden:\")\n for prayer, time in test_gebedstijden.items():\n offset = settings.get(f'{prayer.lower()}_offset', 0)\n print(f\" {prayer}: {time} (offset: {offset:+d} min)\")\n \n print(\"\\nAangepaste tijden:\")\n adjusted = apply_prayer_offsets(test_gebedstijden, settings)\n \n print(\"\\nResultaat:\")\n for prayer, time in adjusted.items():\n print(f\" {prayer}: {time}\") "
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
BIN
adhan-webapp/__pycache__/app.cpython-311.pyc
Normal file
BIN
adhan-webapp/__pycache__/app.cpython-311.pyc
Normal file
Binary file not shown.
@ -1,5 +1,5 @@
|
|||||||
import requests, json, os
|
import requests, json, os
|
||||||
from datetime import datetime, date
|
from datetime import datetime, date, timedelta
|
||||||
import time
|
import time
|
||||||
|
|
||||||
SETTINGS_PATH = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'settings.json')
|
SETTINGS_PATH = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'settings.json')
|
||||||
@ -45,6 +45,44 @@ def get_current_volume(settings):
|
|||||||
logregel(f"☀️ Dag volume gebruikt: {volume}")
|
logregel(f"☀️ Dag volume gebruikt: {volume}")
|
||||||
return volume
|
return volume
|
||||||
|
|
||||||
|
def apply_prayer_offsets(gebedstijden, settings):
|
||||||
|
"""Pas offsets toe op gebedstijden"""
|
||||||
|
offsets = {
|
||||||
|
'Fajr': settings.get('fajr_offset', 0),
|
||||||
|
'Zuhr': settings.get('zuhr_offset', 0),
|
||||||
|
'Asr': settings.get('asr_offset', 0),
|
||||||
|
'Maghrib': settings.get('maghrib_offset', 0),
|
||||||
|
'Isha': settings.get('isha_offset', 0)
|
||||||
|
}
|
||||||
|
|
||||||
|
adjusted_times = {}
|
||||||
|
|
||||||
|
for prayer, original_time in gebedstijden.items():
|
||||||
|
offset_minutes = offsets.get(prayer, 0)
|
||||||
|
|
||||||
|
if offset_minutes == 0:
|
||||||
|
adjusted_times[prayer] = original_time
|
||||||
|
continue
|
||||||
|
|
||||||
|
try:
|
||||||
|
# Parse de originele tijd
|
||||||
|
time_obj = datetime.strptime(original_time, '%H:%M')
|
||||||
|
|
||||||
|
# Voeg offset toe
|
||||||
|
adjusted_time = time_obj + timedelta(minutes=offset_minutes)
|
||||||
|
|
||||||
|
# Converteer terug naar string
|
||||||
|
adjusted_times[prayer] = adjusted_time.strftime('%H:%M')
|
||||||
|
|
||||||
|
if offset_minutes != 0:
|
||||||
|
logregel(f"📅 {prayer}: {original_time} → {adjusted_times[prayer]} ({offset_minutes:+d} min)")
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
logregel(f"⚠️ Fout bij aanpassen {prayer} tijd: {e}")
|
||||||
|
adjusted_times[prayer] = original_time
|
||||||
|
|
||||||
|
return adjusted_times
|
||||||
|
|
||||||
def check_recent_play(prayer_name):
|
def check_recent_play(prayer_name):
|
||||||
"""Controleer of deze adhaan recent is afgespeeld (binnen 2 minuten)"""
|
"""Controleer of deze adhaan recent is afgespeeld (binnen 2 minuten)"""
|
||||||
try:
|
try:
|
||||||
@ -129,16 +167,19 @@ try:
|
|||||||
res.raise_for_status()
|
res.raise_for_status()
|
||||||
data = res.json()[0]
|
data = res.json()[0]
|
||||||
gebedstijden = {
|
gebedstijden = {
|
||||||
"Fajr": data.get("fajr_jamah", "00:00"),
|
"Fajr": data.get("fajr_jamah", "00:00")[:5], # Haal seconden weg
|
||||||
"Zuhr": data.get("zuhr_jamah", "00:00"),
|
"Zuhr": data.get("zuhr_jamah", "00:00")[:5], # Haal seconden weg
|
||||||
"Asr": data.get("asr_jamah", "00:00"),
|
"Asr": data.get("asr_jamah", "00:00")[:5], # Haal seconden weg
|
||||||
"Maghrib": data.get("maghrib_jamah", "00:00"),
|
"Maghrib": data.get("maghrib_jamah", "00:00")[:5], # Haal seconden weg
|
||||||
"Isha": data.get("isha_jamah", "00:00")
|
"Isha": data.get("isha_jamah", "00:00")[:5] # Haal seconden weg
|
||||||
}
|
}
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logregel(f"Fout bij ophalen gebedstijden: {e}")
|
logregel(f"Fout bij ophalen gebedstijden: {e}")
|
||||||
exit(1)
|
exit(1)
|
||||||
|
|
||||||
|
# Pas offsets toe op gebedstijden
|
||||||
|
gebedstijden = apply_prayer_offsets(gebedstijden, settings)
|
||||||
|
|
||||||
# Check voor gebedstijd
|
# Check voor gebedstijd
|
||||||
for naam, tijd in gebedstijden.items():
|
for naam, tijd in gebedstijden.items():
|
||||||
if tijd[:5] == now: # Alleen uren:minuten vergelijken
|
if tijd[:5] == now: # Alleen uren:minuten vergelijken
|
||||||
|
|||||||
@ -103,6 +103,46 @@ def get_current_volume(settings):
|
|||||||
else:
|
else:
|
||||||
return settings.get('volume_day', settings.get('volume', 30))
|
return settings.get('volume_day', settings.get('volume', 30))
|
||||||
|
|
||||||
|
def apply_prayer_offsets(gebedstijden, settings):
|
||||||
|
"""Pas offsets toe op gebedstijden"""
|
||||||
|
from datetime import datetime, timedelta
|
||||||
|
|
||||||
|
offsets = {
|
||||||
|
'Fajr': settings.get('fajr_offset', 0),
|
||||||
|
'Zuhr': settings.get('zuhr_offset', 0),
|
||||||
|
'Asr': settings.get('asr_offset', 0),
|
||||||
|
'Maghrib': settings.get('maghrib_offset', 0),
|
||||||
|
'Isha': settings.get('isha_offset', 0)
|
||||||
|
}
|
||||||
|
|
||||||
|
adjusted_times = {}
|
||||||
|
|
||||||
|
for prayer, original_time in gebedstijden.items():
|
||||||
|
offset_minutes = offsets.get(prayer, 0)
|
||||||
|
|
||||||
|
if offset_minutes == 0:
|
||||||
|
adjusted_times[prayer] = original_time
|
||||||
|
continue
|
||||||
|
|
||||||
|
try:
|
||||||
|
# Parse de originele tijd
|
||||||
|
time_obj = datetime.strptime(original_time, '%H:%M')
|
||||||
|
|
||||||
|
# Voeg offset toe
|
||||||
|
adjusted_time = time_obj + timedelta(minutes=offset_minutes)
|
||||||
|
|
||||||
|
# Converteer terug naar string
|
||||||
|
adjusted_times[prayer] = adjusted_time.strftime('%H:%M')
|
||||||
|
|
||||||
|
if offset_minutes != 0:
|
||||||
|
print(f"📅 {prayer}: {original_time} → {adjusted_times[prayer]} ({offset_minutes:+d} min)")
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
print(f"⚠️ Fout bij aanpassen {prayer} tijd: {e}")
|
||||||
|
adjusted_times[prayer] = original_time
|
||||||
|
|
||||||
|
return adjusted_times
|
||||||
|
|
||||||
def fetch_sonos_zones():
|
def fetch_sonos_zones():
|
||||||
try:
|
try:
|
||||||
res = requests.get(f'http://{SONOS_API_IP}:5005/zones', timeout=5)
|
res = requests.get(f'http://{SONOS_API_IP}:5005/zones', timeout=5)
|
||||||
@ -194,13 +234,16 @@ def index():
|
|||||||
data = res.json()[0]
|
data = res.json()[0]
|
||||||
|
|
||||||
gebedstijden = {
|
gebedstijden = {
|
||||||
"Fajr": data.get("fajr_jamah", "00:00"),
|
"Fajr": data.get("fajr_jamah", "00:00")[:5], # Haal seconden weg
|
||||||
"Zuhr": data.get("zuhr_jamah", "00:00"),
|
"Zuhr": data.get("zuhr_jamah", "00:00")[:5], # Haal seconden weg
|
||||||
"Asr": data.get("asr_jamah", "00:00"),
|
"Asr": data.get("asr_jamah", "00:00")[:5], # Haal seconden weg
|
||||||
"Maghrib": data.get("maghrib_jamah", "00:00"),
|
"Maghrib": data.get("maghrib_jamah", "00:00")[:5], # Haal seconden weg
|
||||||
"Isha": data.get("isha_jamah", "00:00")
|
"Isha": data.get("isha_jamah", "00:00")[:5] # Haal seconden weg
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Pas offsets toe op gebedstijden
|
||||||
|
gebedstijden = apply_prayer_offsets(gebedstijden, settings)
|
||||||
|
|
||||||
now = datetime.now().strftime('%H:%M')
|
now = datetime.now().strftime('%H:%M')
|
||||||
for naam, tijd in gebedstijden.items():
|
for naam, tijd in gebedstijden.items():
|
||||||
if tijd > now:
|
if tijd > now:
|
||||||
@ -257,6 +300,13 @@ def instellingen():
|
|||||||
settings['day_start'] = settings.get('day_start', '07:00')
|
settings['day_start'] = settings.get('day_start', '07:00')
|
||||||
settings['volume'] = settings['volume_day']
|
settings['volume'] = settings['volume_day']
|
||||||
|
|
||||||
|
# Gebedstijd offsets
|
||||||
|
settings['fajr_offset'] = int(request.form.get('fajr_offset', 0))
|
||||||
|
settings['zuhr_offset'] = int(request.form.get('zuhr_offset', 0))
|
||||||
|
settings['asr_offset'] = int(request.form.get('asr_offset', 0))
|
||||||
|
settings['maghrib_offset'] = int(request.form.get('maghrib_offset', 0))
|
||||||
|
settings['isha_offset'] = int(request.form.get('isha_offset', 0))
|
||||||
|
|
||||||
settings['zones'] = request.form.getlist('zones')
|
settings['zones'] = request.form.getlist('zones')
|
||||||
settings['audio_clip'] = request.form['audio_clip']
|
settings['audio_clip'] = request.form['audio_clip']
|
||||||
|
|
||||||
@ -345,12 +395,15 @@ def debug():
|
|||||||
data = res.json()[0]
|
data = res.json()[0]
|
||||||
|
|
||||||
gebedstijden = {
|
gebedstijden = {
|
||||||
"Fajr": data.get("fajr_jamah", "00:00"),
|
"Fajr": data.get("fajr_jamah", "00:00")[:5], # Haal seconden weg
|
||||||
"Zuhr": data.get("zuhr_jamah", "00:00"),
|
"Zuhr": data.get("zuhr_jamah", "00:00")[:5], # Haal seconden weg
|
||||||
"Asr": data.get("asr_jamah", "00:00"),
|
"Asr": data.get("asr_jamah", "00:00")[:5], # Haal seconden weg
|
||||||
"Maghrib": data.get("maghrib_jamah", "00:00"),
|
"Maghrib": data.get("maghrib_jamah", "00:00")[:5], # Haal seconden weg
|
||||||
"Isha": data.get("isha_jamah", "00:00")
|
"Isha": data.get("isha_jamah", "00:00")[:5] # Haal seconden weg
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Pas offsets toe op gebedstijden
|
||||||
|
gebedstijden = apply_prayer_offsets(gebedstijden, settings)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print("❌ Fout bij ophalen gebedstijden voor debug:", e)
|
print("❌ Fout bij ophalen gebedstijden voor debug:", e)
|
||||||
# Fallback tijden voor testing
|
# Fallback tijden voor testing
|
||||||
@ -362,6 +415,9 @@ def debug():
|
|||||||
"Isha": "19:00"
|
"Isha": "19:00"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Pas ook offsets toe op fallback tijden
|
||||||
|
gebedstijden = apply_prayer_offsets(gebedstijden, settings)
|
||||||
|
|
||||||
return render_template('debug.html',
|
return render_template('debug.html',
|
||||||
gebedstijden=gebedstijden,
|
gebedstijden=gebedstijden,
|
||||||
settings=settings)
|
settings=settings)
|
||||||
@ -502,7 +558,41 @@ def sonos_stop():
|
|||||||
@app.route('/quran')
|
@app.route('/quran')
|
||||||
def quran():
|
def quran():
|
||||||
"""Quran speler pagina"""
|
"""Quran speler pagina"""
|
||||||
return render_template('quran.html')
|
settings = load_settings()
|
||||||
|
gebedstijden = {}
|
||||||
|
|
||||||
|
try:
|
||||||
|
res = requests.get(VUMG_API)
|
||||||
|
res.raise_for_status()
|
||||||
|
data = res.json()[0]
|
||||||
|
|
||||||
|
gebedstijden = {
|
||||||
|
"Fajr": data.get("fajr_jamah", "00:00")[:5], # Haal seconden weg
|
||||||
|
"Zuhr": data.get("zuhr_jamah", "00:00")[:5], # Haal seconden weg
|
||||||
|
"Asr": data.get("asr_jamah", "00:00")[:5], # Haal seconden weg
|
||||||
|
"Maghrib": data.get("maghrib_jamah", "00:00")[:5], # Haal seconden weg
|
||||||
|
"Isha": data.get("isha_jamah", "00:00")[:5] # Haal seconden weg
|
||||||
|
}
|
||||||
|
|
||||||
|
# Pas offsets toe op gebedstijden
|
||||||
|
gebedstijden = apply_prayer_offsets(gebedstijden, settings)
|
||||||
|
except Exception as e:
|
||||||
|
print("❌ Fout bij ophalen gebedstijden voor quran pagina:", e)
|
||||||
|
# Fallback tijden
|
||||||
|
gebedstijden = {
|
||||||
|
"Fajr": "06:00",
|
||||||
|
"Zuhr": "12:30",
|
||||||
|
"Asr": "15:00",
|
||||||
|
"Maghrib": "17:30",
|
||||||
|
"Isha": "19:00"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Pas ook offsets toe op fallback tijden
|
||||||
|
gebedstijden = apply_prayer_offsets(gebedstijden, settings)
|
||||||
|
|
||||||
|
return render_template('quran.html',
|
||||||
|
gebedstijden=gebedstijden,
|
||||||
|
settings=settings)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
app.run(host='0.0.0.0', port=80)
|
app.run(host='0.0.0.0', port=80)
|
||||||
@ -1,3 +1,7 @@
|
|||||||
Mon May 26 16:08:33 CEST 2025: Hadith auto-update functionaliteit toegevoegd - JavaScript code toegevoegd om elke 30 seconden een nieuwe hadith op te halen via /api/hadith endpoint
|
Mon May 26 16:08:33 CEST 2025: Hadith auto-update functionaliteit toegevoegd - JavaScript code toegevoegd om elke 30 seconden een nieuwe hadith op te halen via /api/hadith endpoint
|
||||||
Mon May 26 16:19:32 CEST 2025: Instellingen pagina design aangepast - Hetzelfde design als rest van applicatie met theme ondersteuning, Material Icons en consistente styling
|
Mon May 26 16:19:32 CEST 2025: Instellingen pagina design aangepast - Hetzelfde design als rest van applicatie met theme ondersteuning, Material Icons en consistente styling
|
||||||
Mon May 26 18:17:57 CEST 2025: Tijdzone probleem opgelost - Container gebruikt nu Nederlandse tijd (18:17), volgende test bij Maghrib om 21:45
|
Mon May 26 18:17:57 CEST 2025: Tijdzone probleem opgelost - Container gebruikt nu Nederlandse tijd (18:17), volgende test bij Maghrib om 21:45
|
||||||
|
2025-05-27 11:55:10 - Oude volume regel verwijderd uit settings.json - alleen volume_day en volume_night behouden
|
||||||
|
2025-05-27 14:07:15 - Gebedstijd offsets toegevoegd - kan nu minuten toevoegen/afhalen van VUMG tijden
|
||||||
|
2025-05-27 14:16:04 - Offset bug gerepareerd - seconden weggehaald van VUMG API tijden zodat parsing correct werkt
|
||||||
|
2025-05-27 14:24:39 - Quran pagina gerepareerd - gebedstijden variabele toegevoegd aan template
|
||||||
|
|||||||
@ -1,13 +1,18 @@
|
|||||||
{
|
{
|
||||||
"volume": 15,
|
"volume_day": 10,
|
||||||
"volume_day": 15,
|
"volume_night": 4,
|
||||||
"volume_night": 8,
|
"night_start": "23:50",
|
||||||
"night_start": "00:00",
|
|
||||||
"day_start": "07:00",
|
"day_start": "07:00",
|
||||||
|
"fajr_offset": 30,
|
||||||
|
"zuhr_offset": 0,
|
||||||
|
"asr_offset": 0,
|
||||||
|
"maghrib_offset": 0,
|
||||||
|
"isha_offset": 0,
|
||||||
"zones": [
|
"zones": [
|
||||||
"Keuken",
|
"Keuken",
|
||||||
"Slaapkamer"
|
"Slaapkamer"
|
||||||
],
|
],
|
||||||
"audio_clip": "adhan1.mp3",
|
"audio_clip": "adhan1.mp3",
|
||||||
"mute": false
|
"mute": false,
|
||||||
|
"volume": 10
|
||||||
}
|
}
|
||||||
@ -99,6 +99,46 @@
|
|||||||
{
|
{
|
||||||
"text": "Allah zal voor degene die Hem vreest een uitweg maken en hem voorzien van waar hij het niet verwacht.",
|
"text": "Allah zal voor degene die Hem vreest een uitweg maken en hem voorzien van waar hij het niet verwacht.",
|
||||||
"bron": "Koran 65:2-3"
|
"bron": "Koran 65:2-3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "Wie een weg bewandelt om kennis te zoeken, Allah zal voor hem een weg naar het Paradijs vergemakkelijken.",
|
||||||
|
"bron": "Sahih Muslim"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "Degene die een moslim verlost van een wereldse zorg, Allah zal hem verlossen van een zorg op de Dag des Oordeels.",
|
||||||
|
"bron": "Sahih Muslim"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "Allah strekt Zijn Hand uit in de nacht zodat de zondaar overdag zich kan bekeren, en Hij strekt Zijn Hand uit overdag zodat de zondaar in de nacht zich kan bekeren.",
|
||||||
|
"bron": "Sahih Muslim"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "Voorwaar, met moeilijkheid komt verlichting.",
|
||||||
|
"bron": "Koran 94:6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "Wie het pad van vergiffenis bewandelt, Allah zal hem vergeven.",
|
||||||
|
"bron": "Sahih al-Bukhari"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "Allah is mooi en houdt van schoonheid.",
|
||||||
|
"bron": "Sahih Muslim"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "Niemand van jullie gelooft werkelijk totdat hij voor zijn broeder wenst wat hij voor zichzelf wenst.",
|
||||||
|
"bron": "Sahih al-Bukhari & Muslim"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "Wanneer Allah van een dienaar houdt, roept Hij Djibriel en zegt: ‘Voorwaar, Ik houd van die-en-die, houd daarom ook van hem.’",
|
||||||
|
"bron": "Sahih al-Bukhari"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "Een moslim is de broeder van een moslim. Hij doet hem geen onrecht aan en laat hem niet in de steek.",
|
||||||
|
"bron": "Sahih al-Bukhari & Muslim"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "Zeg het goede of zwijg.",
|
||||||
|
"bron": "Sahih al-Bukhari"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@ -121,6 +121,66 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label>
|
||||||
|
<span class="material-icons">schedule</span>
|
||||||
|
Gebedstijd Aanpassingen:
|
||||||
|
</label>
|
||||||
|
<p style="color: var(--text-secondary); font-size: 0.9rem; margin: 0.5rem 0;">
|
||||||
|
Voeg minuten toe (+) of haal af (-) van de VUMG gebedstijden. Bijvoorbeeld: +30 voor 30 minuten later, -15 voor 15 minuten eerder.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-row">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="fajr_offset">
|
||||||
|
<span class="material-icons">wb_twilight</span>
|
||||||
|
Fajr Aanpassing (minuten):
|
||||||
|
</label>
|
||||||
|
<input type="number" name="fajr_offset" value="{{ settings.fajr_offset or 0 }}" min="-120" max="120" step="5" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="zuhr_offset">
|
||||||
|
<span class="material-icons">wb_sunny</span>
|
||||||
|
Zuhr Aanpassing (minuten):
|
||||||
|
</label>
|
||||||
|
<input type="number" name="zuhr_offset" value="{{ settings.zuhr_offset or 0 }}" min="-120" max="120" step="5" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-row">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="asr_offset">
|
||||||
|
<span class="material-icons">brightness_low</span>
|
||||||
|
Asr Aanpassing (minuten):
|
||||||
|
</label>
|
||||||
|
<input type="number" name="asr_offset" value="{{ settings.asr_offset or 0 }}" min="-120" max="120" step="5" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="maghrib_offset">
|
||||||
|
<span class="material-icons">brightness_3</span>
|
||||||
|
Maghrib Aanpassing (minuten):
|
||||||
|
</label>
|
||||||
|
<input type="number" name="maghrib_offset" value="{{ settings.maghrib_offset or 0 }}" min="-120" max="120" step="5" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-row">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="isha_offset">
|
||||||
|
<span class="material-icons">brightness_2</span>
|
||||||
|
Isha Aanpassing (minuten):
|
||||||
|
</label>
|
||||||
|
<input type="number" name="isha_offset" value="{{ settings.isha_offset or 0 }}" min="-120" max="120" step="5" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<!-- Lege ruimte voor symmetrie -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="button-group">
|
<div class="button-group">
|
||||||
<button type="submit" name="test_clip" class="btn-secondary">
|
<button type="submit" name="test_clip" class="btn-secondary">
|
||||||
<span class="material-icons">speaker</span>
|
<span class="material-icons">speaker</span>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user