Initial commit: Emoji-Sucher Web-App
- 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
This commit is contained in:
65
app.py
Normal file
65
app.py
Normal file
@@ -0,0 +1,65 @@
|
||||
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)
|
Reference in New Issue
Block a user