from flask import Flask, render_template, request, redirect, url_for import models from api import api_bp app = Flask(__name__) app.register_blueprint(api_bp) models.init_db() CIUDADES = [ 'madrid', 'barcelona', 'valencia', 'sevilla', 'zaragoza', 'malaga', 'murcia', 'palma', 'las-palmas', 'bilbao', 'alicante', 'cordoba', 'valladolid', 'vigo' ] @app.route('/') def index(): return render_template('index.html', modo='inicio', ciudades=CIUDADES) @app.route('/c/') def ciudad(city): categoria = request.args.get('categoria', '').strip() or None busqueda = request.args.get('q', '').strip() or None anuncios = models.listar_anuncios(categoria=categoria, busqueda=busqueda, ciudad=city) categorias = models.listar_categorias(ciudad=city) return render_template( 'index.html', modo='ciudad', city=city, anuncios=anuncios, categorias=categorias, categoria_actual=categoria or '', busqueda_actual=busqueda or '' ) @app.route('/nuevo', methods=['POST']) def nuevo(): titulo = request.form.get('titulo', '').strip() contenido = request.form.get('contenido', '').strip() categoria = request.form.get('categoria', 'general').strip() contacto = request.form.get('contacto', 'madrid@craigslist.local').strip() ciudad = request.form.get('ciudad', 'madrid').strip() if titulo and contenido: anuncio_id, token = models.crear_anuncio(titulo, contenido, categoria, contacto, ciudad) return redirect(f'/c/{ciudad}?nuevo={anuncio_id}&token={token}') return redirect(url_for('index')) @app.route('/borrar/', methods=['POST']) def borrar(anuncio_id): token = request.form.get('token', '').strip() models.borrar_anuncio(anuncio_id, token) return redirect(request.referrer or '/') if __name__ == '__main__': app.run(host='0.0.0.0', port=5000)