from flask import Flask, render_template, request, send_file
from crawler import WebCrawler
import os

app = Flask(__name__)

@app.route('/', methods=['GET', 'POST'])
def index():
    if request.method == 'POST':
        # Pobieranie danych z formularza
        year = request.form.get('year')
        industry = request.form.get('industry')

        # Walidacja danych
        if not year or not industry:
            return "Proszę wypełnić wszystkie pola", 400

        try:
            # Upewnienie się, że katalog na wyniki istnieje
            os.makedirs('results', exist_ok=True)

            # Uruchomienie crawlera
            crawler = WebCrawler(year=int(year), industry=industry)
            email_results = crawler.run_crawler()

            # Generowanie pliku z wynikami
            output_file = f'results/emails_{year}_{industry.replace(" ", "_")}.txt'
            with open(output_file, 'w', encoding='utf-8') as f:
                for site, emails in email_results.items():
                    f.write(f"Strona: {site}\n")
                    f.write("E-maile: " + ", ".join(emails) + "\n\n")

            # Zwracanie pliku do pobrania
            return send_file(output_file, as_attachment=True)

        except Exception as e:
            return f"Wystąpił błąd: {str(e)}", 500

    # Wyświetlanie formularza
    return render_template('index.html')

if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0', port=5000)