import re

with open('app.py', 'r', encoding='utf-8') as f:
    content = f.read()

old_route = """@app.route('/admin_database/kitab', methods=['GET', 'POST'])
@login_required(role='admin_database')
def admin_kitab():
    koneksi_db = ambil_koneksi()
    cursor = koneksi_db.cursor(dictionary=True)

    if request.method == 'POST':
        judul = request.form.get('judul')
        deskripsi = request.form.get('deskripsi')
        urutan = request.form.get('urutan', 0)

        try:
            cursor.execute("INSERT INTO kitab_wirid (judul, deskripsi, urutan) VALUES (%s, %s, %s)", (judul, deskripsi, urutan))
            koneksi_db.commit()
            flash('Kitab baru berhasil ditambahkan!', 'success')
        except Exception as e:
            flash(f'Gagal menambahkan kitab: {e}', 'danger')

        return redirect('/admin_database/kitab')"""

new_route = """@app.route('/admin_database/kitab', methods=['GET', 'POST'])
@login_required(role='admin_database')
def admin_kitab():
    koneksi_db = ambil_koneksi()
    cursor = koneksi_db.cursor(dictionary=True)

    if request.method == 'POST':
        judul = request.form.get('judul')
        deskripsi = request.form.get('deskripsi')
        urutan = request.form.get('urutan', 0)
        
        file_pdf = request.files.get('file_pdf')
        filename_pdf = None
        
        import os
        from werkzeug.utils import secure_filename
        
        if file_pdf and file_pdf.filename.endswith('.pdf'):
            filename_pdf = secure_filename(file_pdf.filename)
            upload_path = os.path.join(app.root_path, 'static', 'uploads', 'kitab')
            os.makedirs(upload_path, exist_ok=True)
            file_pdf.save(os.path.join(upload_path, filename_pdf))

        try:
            cursor.execute("INSERT INTO kitab_wirid (judul, deskripsi, urutan, file_pdf) VALUES (%s, %s, %s, %s)", (judul, deskripsi, urutan, filename_pdf))
            koneksi_db.commit()
            flash('Kitab baru berhasil ditambahkan!', 'success')
        except Exception as e:
            flash(f'Gagal menambahkan kitab: {e}', 'danger')

        return redirect('/admin_database/kitab')"""

if old_route in content:
    content = content.replace(old_route, new_route)
    with open('app.py', 'w', encoding='utf-8') as f:
        f.write(content)
    print('app.py updated')
else:
    print('Could not find the old route block exact match.')
