Update AppImage

This commit is contained in:
MacRimi
2025-11-22 18:15:12 +01:00
parent c89300022a
commit 0e434cbd1c
2 changed files with 44 additions and 40 deletions

View File

@@ -654,21 +654,33 @@ export const TerminalPanel: React.FC<TerminalPanelProps> = ({ websocketUrl, onCl
<div className="flex-1 overflow-y-auto space-y-2 pr-2 max-h-[50vh]">
{searchResults.length > 0 ? (
searchResults.map((result, index) => (
<div
key={index}
onClick={() => sendToActiveTerminal(result.command)}
className="p-4 rounded-lg border border-zinc-700 bg-zinc-800/50 hover:bg-zinc-800 hover:border-blue-500 transition-colors group"
>
<div className="flex items-start justify-between gap-2">
<div className="flex-1 min-w-0">
<code className="text-sm text-blue-400 font-mono break-all">{result.command}</code>
{result.description && <p className="text-xs text-zinc-400 mt-1">{result.description}</p>}
<>
{searchResults.map((result, index) => (
<div
key={index}
className="p-4 rounded-lg border border-zinc-700 bg-zinc-800/50 hover:border-zinc-600 transition-colors"
>
{result.description && (
<p className="text-xs text-zinc-400 mb-2 leading-relaxed"># {result.description}</p>
)}
<div
onClick={() => sendToActiveTerminal(result.command)}
className="flex items-start justify-between gap-2 cursor-pointer group hover:bg-zinc-800/50 rounded p-2 -m-2"
>
<code className="text-sm text-blue-400 font-mono break-all flex-1">{result.command}</code>
<Send className="h-4 w-4 text-zinc-600 group-hover:text-blue-400 flex-shrink-0 mt-0.5 transition-colors" />
</div>
<Send className="h-4 w-4 text-zinc-600 group-hover:text-blue-400 flex-shrink-0 mt-0.5" />
</div>
))}
{/* Powered by cheat.sh */}
<div className="text-center py-2">
<p className="text-xs text-zinc-500">
<Lightbulb className="inline-block w-3 h-3 mr-1" />
Powered by cheat.sh
</p>
</div>
))
</>
) : filteredCommands.length > 0 && !useOnline ? (
filteredCommands.map((item, index) => (
<div

View File

@@ -45,45 +45,37 @@ def search_command():
response = requests.get(url, headers=headers, timeout=10)
if response.status_code == 200:
# Parsear el contenido para extraer ejemplos limpios
content = response.text
examples = []
current_description = []
for line in content.split('\n'):
line = line.strip()
stripped = line.strip()
# Ignorar líneas vacías
if not line:
if not stripped:
continue
# Si la línea es un comentario que contiene ":"
# extraer el comando después de ":"
if line.startswith('#') and ':' in line:
# Buscar el comando después del ":"
parts = line.split(':', 1)
if len(parts) == 2:
description = parts[0].replace('#', '').strip()
command = parts[1].strip()
if command and not command.startswith('http'):
examples.append({
'description': description,
'command': command
})
# Si la línea empieza con el nombre del comando (sin #)
elif not line.startswith('#'):
# Es probablemente un comando directo
# Solo agregar si no es una URL
if not line.startswith('http') and len(line) > 2:
examples.append({
'description': '',
'command': line
})
# Si es un comentario
if stripped.startswith('#'):
# Acumular descripciones
current_description.append(stripped[1:].strip())
# Si no es comentario, es un comando
elif stripped and not stripped.startswith('http'):
# Unir las descripciones acumuladas
description = ' '.join(current_description) if current_description else ''
examples.append({
'description': description,
'command': stripped
})
# Resetear descripciones para el siguiente comando
current_description = []
return jsonify({
'success': True,
'examples': examples,
'raw_content': content
'examples': examples
})
else:
return jsonify({