- Flask-Backend mit Emoji-Suche implementiert - Responsive Frontend mit modernem UI - Mehrsprachige Suche (Deutsch/Englisch) - Clipboard-Integration für Emoji-Kopieren - Docker-Support mit Dockerfile und docker-compose.yml - Vollständige Dokumentation in README.md - .gitignore für Python-Projekt konfiguriert Features: - Suche nach 4733+ Emojis - Große Emoji-Darstellung - Ein-Klick-Kopieren in Zwischenablage - Unicode-Anzeige für jedes Emoji - Responsive Design für alle Geräte
66 lines
2.0 KiB
Python
66 lines
2.0 KiB
Python
from flask import Flask, render_template, request, jsonify
|
|
import emoji
|
|
import json
|
|
|
|
app = Flask(__name__)
|
|
|
|
# Emoji-Datenbank laden
|
|
def load_emoji_data():
|
|
"""Lädt alle verfügbaren Emojis mit ihren Namen und Unicode-Werten"""
|
|
emoji_data = []
|
|
|
|
# Alle Emojis aus der emoji-Bibliothek holen
|
|
for emoji_char, emoji_info in emoji.EMOJI_DATA.items():
|
|
# emoji_info ist ein Dictionary mit verschiedenen Sprachen
|
|
emoji_name = emoji_info.get('en', '').replace(':', '')
|
|
if emoji_name:
|
|
# Unicode für das erste Zeichen des Emojis (für zusammengesetzte Emojis)
|
|
unicode_value = ord(emoji_char[0])
|
|
emoji_data.append({
|
|
'name': emoji_name,
|
|
'char': emoji_char,
|
|
'unicode': f"U+{unicode_value:04X}",
|
|
'description': emoji_name.replace('_', ' ').title(),
|
|
'de': emoji_info.get('de', '').replace(':', '') # Deutsche Namen hinzufügen
|
|
})
|
|
|
|
return emoji_data
|
|
|
|
# Emoji-Daten beim Start laden
|
|
EMOJI_DATABASE = load_emoji_data()
|
|
|
|
@app.route('/')
|
|
def index():
|
|
return render_template('index.html')
|
|
|
|
@app.route('/search')
|
|
def search_emojis():
|
|
query = request.args.get('q', '').lower()
|
|
|
|
if not query:
|
|
return jsonify([])
|
|
|
|
# Emojis nach Suchbegriff filtern
|
|
results = []
|
|
for emoji_item in EMOJI_DATABASE:
|
|
# Suche in englischen Namen und Beschreibungen
|
|
if (query in emoji_item['name'].lower() or
|
|
query in emoji_item['description'].lower()):
|
|
results.append(emoji_item)
|
|
continue
|
|
|
|
# Suche in deutschen Namen (falls verfügbar)
|
|
if 'de' in emoji_item and query in emoji_item['de'].lower():
|
|
results.append(emoji_item)
|
|
|
|
# Ergebnisse begrenzen für bessere Performance
|
|
return jsonify(results[:50])
|
|
|
|
@app.route('/api/emojis')
|
|
def get_all_emojis():
|
|
"""API-Endpoint für alle Emojis (für Debugging)"""
|
|
return jsonify(EMOJI_DATABASE)
|
|
|
|
if __name__ == '__main__':
|
|
app.run(debug=True, host='0.0.0.0', port=5000)
|