Search this site
Embedded Files
[GATAJOS GRATIS]
  • Gatajos 1-Clic | macOS
    • Más sobre
    • El Código
[GATAJOS GRATIS]
  • Gatajos 1-Clic | macOS
    • Más sobre
    • El Código
  • More
    • Gatajos 1-Clic | macOS
      • Más sobre
      • El Código

No probado, verifique la versión original en inglés para el uso real, que ha sido probado. 

#!/bin/bash


#| Por u/alexbarbershop, más información en ❤️

#|sites.google.com/view/gatajos ⬅︎ ⬇︎ ←

#|Donar: PayPal.com/donate/?hosted_button_id=K8VC9LKWFDV6U

#|o a direcciones BTC/XMR/ETH/LTC después de script+ en mi sitio ↖︎

#| No afiliado a Catbox LLC|#

#|pero puedes apoyar el alojamiento gratuito|#

#|en catbox.moe/support.php|#

#|Utiliza código del sistema operativo escrito por|#

#|Bartłomiej Skoczeń y publicado|#

#| en git:MineBartekSA/catbox |#

#|con una licencia de uso libre del MIT|#

#|Mi código se publica de forma similarmente|#

#| una licencia Creative Commons CC0

#|clots_slipped.5s@icloud.com|#


# --- Configuración --- #

input_file_path="Entrada de acceso directo (Ruta del archivo)" # Ruta de ejemplo

log_file="/tmp/icloud_litterbox_script.log"

upload_type="Tipo de carga"


# --- Función para obtener el tamaño del archivo --- #

get_file_size() {

stat -f%z "$1" 2>/dev/null || echo 0

}


# --- Función de subida de Catbox (usando copia de archivo temporal con nombre simplificado) --- #

upload_from_local_copy() {

local source_file_path="$1" # Esta ruta *debe* apuntar a un archivo local y legible

local upload_type="$2"


# Verificar que el archivo fuente sea legible antes de continuar

if [[ ! -f "$source_file_path" ]]; then

echo "Error: La función de subida recibió una ruta de archivo inexistente: '$source_file_path'" >> "$log_file"

return 1

fi

if [[ ! -r "$source_file_path" ]]; entonces

echo "Error: La función de subida recibió una ruta de archivo ilegible: '$source_file_path'" >> "$log_file"

echo "Intentando añadir permiso de lectura al archivo: '$source_file_path'" >> "$log_file"

chmod +r "$source_file_path" 2>/dev/null

if [[ ! -r "$source_file_path" ]]; then

echo "Error: Aún no se puede leer el archivo tras intentar chmod: '$source_file_path'" >> "$log_file"

return 1

else

echo "Permiso de lectura añadido correctamente al archivo: '$source_file_path'" >> "$log_file"

fi

fi


# Simplificar el nombre de archivo para la copia temporal y para la parte 'filename=' de curl

local original_basename=$(basename "$source_file_path")

local file_extension="${original_basename##*.}"

local base_name_without_ext="${original_basename%.*}"


# Eliminar caracteres problemáticos y reemplazarlos con guiones bajos

local simplified_basename=$(echo "$base_name_without_ext" | sed -E 's/[^a-zA-Z0-9._-]/_/g' | sed -E 's/_+/_/g' | sed -E 's/^_//;s/_$//')

if [ -z "$nombre_base_simplificado" ]; then

nombre_base_simplificado="archivo_cargado"

fi

localnombre_archivo_cargado="${nombre_base_simplificado}.${extensión_archivo}"


# Crear un archivo temporal con el nombre simplificado en /tmp/

localtemp_file_path=$(mktemp "/tmp/${nombre_base_simplificado}_XXXXXX.${extensión_archivo}")


echo "Copiando archivo local '$ruta_archivo_origen' al archivo temporal '$ruta_archivo_temp'" >> "$archivo_registro"

/usr/bin/ditto "$ruta_archivo_origen" "$ruta_archivo_temp"

localditto_exit_code=$?


if [ "$ditto_exit_code" -ne 0 ]; entonces

echo "Error: No se pudo copiar el archivo a la ubicación temporal usando ditto. Código de salida de ditto: $ditto_exit_code" >> "$log_file"

rm -f "$temp_file_path" # Limpiar archivo temporal

return 1

fi

echo "Archivo copiado correctamente a la ruta temporal: '$temp_file_path'" >> "$log_file"

echo "Usando nombre de archivo simplificado para la carga: '$upload_filename'" >> "$log_file"


if [[ "$upload_type" == "temp" ]]; entonces

url="https://litterbox.catbox.moe/resources/internals/api.php"

form_args=( -F "reqtype=fileupload" -F "time=Litterbox Expiration")

de lo contrario

url="https://catbox.moe/user/api.php"

form_args=( -F "reqtype=fileupload")

fi


# Usar la ruta del archivo temporal y el nombre de archivo simplificado para curl

curl_command="/usr/bin/curl -s ${form_args[@]} -F \"fileToUpload=@$temp_file_path;filename=$upload_filename\" \"$url\""


echo "Ejecutando comando curl en el archivo temporal: $curl_command" >> "$log_file"

local temp_output_file=$(mktemp)

eval "$curl_command" > "$temp_output_file" 2>&1

local curl_exit_code=$?


output=$(cat "$temp_output_file")

rm "$temp_output_file"

rm -f "$temp_file_path" # Limpiar el archivo temporal tras el intento de carga


if [ "$curl_exit_code" -ne 0 ]; then

echo "El comando Curl falló con el código de salida $curl_exit_code." >> "$log_file"

echo "Salida de Curl (detalle del error): $output" >> "$log_file"

fi


echo "$output"

return "$curl_exit_code"

}

echo "--- Iniciando el script de descarga de iCloud y subida de Catbox ($(date)) ---" > "$log_file"

echo "Ruta del archivo de entrada: $input_file_path" >> "$log_file"


# Comprobar si la ruta del archivo original existe

if ! test -f "$input_file_path"; then

echo "Error: El archivo no existe en $input_file_path." >> "$log_file"

exit 1

fi


final_upload_successful=false # Indicador de éxito general

final_output=""

final_catbox_exit_code=1

local_file_for_upload="$input_file_path" # Esta será la ruta utilizada para la función de carga

brctl_exit_code=1 # Inicializar brctl_exit_code fuera del bloque so es accesible


# --- Intentar descargar brctl primero, suprimiendo su salida ---

echo "Intentando descargar brctl (suprimiendo salida)..." >> "$log_file"

brctl_output=$(/usr/bin/brctl download "$input_file_path" 2>&1) # Capturar la salida estándar y la salida estándar

brctl_exit_code=$? # Capturar el código de salida inmediatamente después de la ejecución


# Verificar el código de salida de brctl y la salida capturada para detectar un error específico

if [ "$brctl_exit_code" -eq 0 ]; then

echo "El comando de descarga brctl se emitió correctamente. Se asume un archivo de iCloud, esperando su finalización..." >> "$log_file"

local max_wait=45 # Tiempo de espera aumentado para la descarga y la sincronización

local elapsed=0

while [ $elapsed -lt $max_wait ]; hacer

tamaño local=$(get_file_size "$input_file_path")

si [ "$tamaño" -gt 0 ] && !find "$input_file_path" -name "*.icloud" -maxdepth 0 -print -quit 2>/dev/null; entonces

echo "El archivo parece descargado (tamaño=$tamaño) y el sufijo se ha eliminado." >> "$archivo_de_registro"

pausa

fi

dormir 1

transcurrido=$((transcurrido + 1))

hecho

dormir 2 # Pequeña espera final


si find "$input_file_path" -name "*.icloud" -maxdepth 0 -print -quit 2>/dev/null; entonces

echo "Advertencia: El sufijo del marcador de posición de iCloud sigue presente después de los intentos de descarga." >> "$archivo_de_registro"

echo "Continuando con el intento de carga de todos modos, pero podría fallar si no se descarga completamente." >> "$log_file"

else

echo "El sufijo del marcador de posición de iCloud parece eliminado o nunca estuvo presente." >> "$log_file"

fi


# Ahora que el archivo de iCloud debería ser local, intenta subirlo.

echo "Intentando subir desde un archivo de iCloud (ahora local)." >> "$log_file"

final_output=$(upload_from_local_copy "$local_file_for_upload" "$upload_type")

final_catbox_exit_code=$?

if [ "$final_catbox_exit_code" -eq 0 ]; then

final_upload_successful=true

fi

elif

echo "$brctl_output" | grep -q "Error Domain=BRCloudDocsErrorDomain Code=6"; then

echo "Error en la descarga de brctl, probablemente porque la ruta está fuera del área administrada de iCloud. ($brctl_output)" >> "$log_file"

echo "Suponiendo que el archivo no es de iCloud (local). Intentando subirlo directamente." >> "$log_file"

# Es un archivo que no es de iCloud, intenta subirlo directamente.

final_output=$(upload_from_local_copy "$local_file_for_upload" "$upload_type")

final_catbox_exit_code=$?

if [ "$final_catbox_exit_code" -eq 0 ]; then

final_upload_successful=true

fi

else

echo "Error inesperado en el comando de descarga de brctl. ($brctl_output)" >> "$log_file"

echo "No se puede continuar con la subida." >> "$log_file"

# brctl falló por una razón desconocida; se asume que es irrecuperable y el script se cerrará como error.

fi


# Manejo de la salida y el estado final

if [ "$final_upload_successful" = true ]; then

echo "--- Salida de Catbox sin procesar (Resultado final) ---" >> "$log_file"

echo "$final_output" >> "$log_file"

echo "-------------------------------------------" >> "$log_file"

echo "Código de salida de Catbox-cli (Resultado final): $final_catbox_exit_code" >> "$log_file"


if [ "$final_catbox_exit_code" -eq 0 ]; then

url=$(echo "$final_output" | grep -Eo "https://[^ ]+\.catbox\.moe/[^ ]+" | tail -n 1)

if [ -n "$url" ]; entonces

echo "URL extraída correctamente: $url" >> "$archivo_registro"

echo "$url"

de lo contrario

echo "Error: No se pudo extraer la URL de la salida de catbox-cli. La salida indica éxito, pero no la URL o contenía un error." >> "$archivo_registro"

echo "$salida_final"

salida 1

fi

de lo contrario

echo "Error: Error al cargar con Catbox con el código de salida $final_catbox_exit_code." >> "$archivo_registro"

echo "$salida_final"

salida 1

fi

de lo contrario

echo "El script general no pudo cargar el archivo." >> "$archivo_registro"

echo "$salida_final"

salida 1

fi

echo "--- Fin del script ($(fecha)) ---" >> "$archivo_registro"


#| --- COMIENZA LA SECCIÓN DE INICIO DE PGP GRATUITA ---


#| por u/alexbarbershop, más información en

#| sites.google.com/view/shortcats

#|Donar: PayPal.com/donate/?hosted_button_id=K8VC9LKWFDV6U


#| Unos Satoshis para que me sienta mejor con los 37 que tenía cuando costaban menos que un McDouble.

#| BTC: bc1qajz4zcarstnzm5sh5c70e43l9zd49ug45yr3g3

#| ETH: 0xCEdF024875457c660b1eBC5f0af86Ae227164855

#|XMR: 48qMQo4aUoH1XmaNSCowmo35c4qpUm5Jp9uN1BFQccB5dDUBD1P5txiK5fWn8U5q7HD37iwY9d1Dn9T5NuZWV2nrFGWPudb

#| Fue algo hermoso, antes de D.O.G.E.

#| Pero puedes ayudarme a conservar la moneda de los LITes (:

#| LTC: ltc1q5xavwp3p4m2kwewvawupzjh93f5taccxlavjm0

#| --- FIN DE PGP BEG ---

#|nadaqueveraquí, amigos

#☭☭☭SUBVERSIVO☭☭☭☭☭OCULTO☭☭U

#☭#☭##☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭N

#☭#☭##☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭I

#☭#☭##☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭C

#☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭O

#☭☭☭☭☭ ☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭D

#☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭E

#BLOQUE☭DE☭TEXTO☭COMUNISTA☭☭

🥹 Envía algo de lavado de dinero o... (deja al pájaro en el porche)

BTC: bc1qajz4zcarstnzm5sh5c70e43l9zd49ug45yr3g3

XMR: 48qMQo4aUoH1XmaNSCowmo35c4qpUm5Jp9uN1BFQccB5dDUBD1P5txiK5fWn8U5q7HD37iwY9d1Dn9T5NuZWV2nrFGWPudb

LTC: ltc1q5xavwp3p4m2kwewvawupzjh93f5taccxlavjm0

ETHER: 0xCEdF024875457c660b1eBC5f0af86Ae227164855

DOGE: Descanse en paz a la gran memecoin, deD por eLoN TrUkc.

[ correo electrónico ]

[No estoy afiliado a Catbox.moe, solo soy un fan]

[Donar con PayPal]

Google Sites
Report abuse
Page details
Page updated
Google Sites
Report abuse