Files
madcraig/app.py
T
2026-05-04 19:15:00 +02:00

63 lines
1.9 KiB
Python

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/<city>')
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/<int:anuncio_id>', 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)