from flask import Flask, render_template, request, jsonify
import os

app = Flask(__name__)
app.secret_key = 'your-secret-key-here'

# Create data directory if it doesn't exist
DATA_DIR = 'data'
SNIPPET_FILE = os.path.join(DATA_DIR, 'current_snippet.txt')

def ensure_data_dir():
    """Ensure the data directory exists"""
    if not os.path.exists(DATA_DIR):
        os.makedirs(DATA_DIR)

def read_snippet():
    """Read the current snippet from file"""
    ensure_data_dir()
    if os.path.exists(SNIPPET_FILE):
        try:
            with open(SNIPPET_FILE, 'r', encoding='utf-8') as f:
                return f.read()
        except (IOError, OSError):
            return ""
    return ""

def write_snippet(content):
    """Write new snippet to file, overwriting the previous one"""
    ensure_data_dir()
    with open(SNIPPET_FILE, 'w', encoding='utf-8') as f:
        f.write(content)

@app.route('/')
def index():
    current_snippet = read_snippet()
    return render_template('index.html', snippet=current_snippet)

@app.route('/update', methods=['POST'])
def update_snippet():
    data = request.get_json()
    content = data.get('content', '').strip()
    
    if not content:
        return jsonify({'error': 'Content cannot be empty'}), 400
    
    write_snippet(content)
    return jsonify({'success': True, 'message': 'Snippet updated successfully'})

@app.route('/get')
def get_snippet():
    """API endpoint to get current snippet"""
    snippet = read_snippet()
    return jsonify({'content': snippet})

if __name__ == '__main__':
    # Ensure data directory and create empty snippet file if it doesn't exist
    ensure_data_dir()
    if not os.path.exists(SNIPPET_FILE):
        write_snippet("")
    
    app.run(debug=True, host='0.0.0.0', port=5000)
