Mostrando las entradas con la etiqueta Codigo. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Codigo. Mostrar todas las entradas

Sacando posts y comentarios de Reddit con un script

¿Querés bajar un post de Reddit con todos sus comentarios y verlo ordenado, sin el quilombo de la web? Con este script en JavaScript lo podés hacer. Te voy a contar cómo funciona, para qué sirve y cómo modificarlo a tu gusto, con ejemplos que podés copiar y pegar.

Encontrá y coleccioná links de descarga como un PRO

Si sos como yo, que terminás navegando por esas páginas de Rentry llenas de links (algunas joyitas, otras no tanto), bueno, armé este bookmarklet que hace justo eso.

Bookmarklet: Resumen rápido con ChatGPT

Este código es un bookmarklet que te permite enviar texto directamente a ChatGPT para que lo resuma, con un solo clic.

¿Qué hace?

  1. Si seleccionás un texto en una página web, lo usa.
  2. Si no seleccionás nada, te pide que escribas el texto.
  3. Abre ChatGPT en una nueva pestaña, con ese texto cargado como prompt pidiéndole un resumen.

Monitoreo en tiempo real de conexiones de red con PowerShell

En este artículo vamos a ver un script de PowerShell muy útil para quienes quieren tener control en tiempo real sobre las conexiones de red que se están estableciendo en su computadora con Windows.

Consultar Cotizaciones de Divisas en Argentina

Si sos de los que viven chequeando el precio del dólar como si fuera el marcador de un Superclásico, este script en PowerShell es para vos. Se conecta a la API de Bluelytics, una fuente confiable para obtener datos sobre el mercado cambiario argentino, y permite consultar distintas cotizaciones de manera simple y efectiva. Vamos a desmenuzarlo y ver qué onda.

Extraer URLs de Videos Guardados en Instagram Usando un Script

¿Vivís cansado, estresado y con la cabeza hecha un lío? Capaz no necesitás más café ni suplementos, sino algo más simple: desenchufarte del mundo moderno por tres días. Así, como suena. Ni pantallas, ni ruidos, ni horarios artificiales. Solo vos, el sol y un poco de tierra bajo los pies.

¿Qué es este “reset” de tres días?

Cómo Buscar Juegos en Steam Usando Python

Si sos de los videojuegos y te encanta explorar las ofertas y detalles de juegos en Steam, seguramente habrás querido encontrar una forma más rápida y sencilla de obtener los enlaces a tus juegos favoritos. Si tenes una lista de juegos en un archivo de texto, en este artículo te enseñaremos cómo automatizar la búsqueda de sus enlaces en la tienda de Steam utilizando un simple script en Python.

Hacer Backup en Bulk en Playground AI

Hace rato que estoy experimentando con inteligencia artificial, empezando con ChatGPT, y luego con Stable Diffusion. Este último lo tuve instalado en la laptop que tiene unas buenas especificaciones técnicas y se banca la generación de imágenes, pero calienta que da calambre y ahora con modelos mas grandes, los 6GB de VRAM no me estaría andando muy bien que digamos.

Generador de Estructura de Carpetas Basada en Fechas

Este script de PowerShell genera automáticamente una estructura de carpetas que comienza el 21 de noviembre de 1982 y llega hasta la fecha actual, creando carpetas por cada día intermedio. Dentro de cada día, se generan subcarpetas para Docs, Video, Audio, e Image.

Comandos Que Te Cambian La Existencia


En este blog te dejo un arsenal de técnicas para convertirte en un maestro de las búsquedas. Desde encontrar ese video perdido de YouTube hasta descargar música de Spotify, te muestro cómo aprovechar al máximo Google, BASH, CMD, herramientas como FFmpeg e ImageMagick, y expresiones regulares para hallar lo que necesitas.

Extrae y Organiza Enlaces Externos

¿Qué hace este script?

Este script de JavaScript está diseñado para identificar y organizar todos los enlaces externos presentes en una página web. En otras palabras, busca todos los enlaces que apuntan a dominios diferentes al actual y los presenta de manera clara y concisa en la consola del navegador.

Pasos clave que realiza el script:

  1. Obtiene todos los enlaces: Utiliza document.querySelectorAll('a[href]') para seleccionar todos los elementos <a> que tienen un atributo href (es decir, todos los enlaces).
  2. Crea un array de objetos: Convierte la NodeList obtenida en un array de objetos, donde cada objeto representa un enlace y contiene las propiedades href (la URL completa) y text (el texto visible del enlace).
  3. Filtra enlaces externos: Elimina los enlaces que apuntan al mismo dominio utilizando URL y comparando los hostnames.
  4. Elimina duplicados: Emplea Set para eliminar enlaces duplicados y luego los ordena alfabéticamente.
  5. Crea una lista formateada: Genera una lista formateada Markdown con cada enlace y su texto, ideal para copiar y pegar en otras aplicaciones.
  6. Muestra la lista en la consola: Imprime la lista final en la consola del navegador para una fácil revisión.

¿Para qué sirve?

Este script puede ser útil en diversas situaciones:

  • Análisis de enlaces: Identificar rápidamente a qué sitios externos enlaza una página.
  • Investigación: Extraer una lista de recursos externos para un análisis más profundo.
  • Desarrollo web: Crear un inventario de enlaces externos para realizar cambios o migraciones.
  • SEO: Analizar la distribución de enlaces salientes de una página.
  • Scraping: Como punto de partida para extraer datos de otras páginas web.

Ejemplo de uso

Imagina que quieres analizar los enlaces externos de un artículo de blog. Simplemente abre la consola del navegador, pega el script y ejecútalo. Obtendrás una lista clara y concisa de todos los enlaces externos presentes en la página, junto con su texto.

Código completo y explicado

JavaScript

// Obtener todos los enlaces en la página principal
const links = Array.from(document.querySelectorAll('a[href]'))
  .map(link => {
    return {
      href: link.href,
      text: link.innerText.trim()
    };
  })
  .filter(link => {
    try {
      const url = new URL(link.href);
      return url.hostname !== window.location.hostname;
    } catch (error) {
      console.error('Error al analizar el enlace:', link.href, error);
      return false;
    }
  });

// Filtrar enlaces únicos y ordenar alfabéticamente
const uniqueLinks = Array.from(new Set(links.map(link => link.href))).sort();

// Crear una lista de enlaces con títulos
const linkListWithTitle = uniqueLinks.reduce((list, href) => {
  const link = links.find(link => link.href === href);
  return list + `- [${link.text}](${link.href})\\n`;
}, 'Enlaces encontrados fuera del sitio:\n');

// Mostrar en consola
console.log(linkListWithTitle);

Explicación por partes:

  • Array.from() convierte la NodeList en un array para poder utilizar métodos como map y filter.
  • map() crea un nuevo array donde cada elemento es un objeto con las propiedades href y text.
  • filter() elimina los enlaces que no son externos.
  • Set() elimina duplicados y sort() ordena alfabéticamente.
  • reduce() crea la lista formateada Markdown.

Personalizaciones

podés personalizar este script para:

  • Filtrar por tipo de enlace: Agregar condiciones adicionales en el filter() para buscar enlaces específicos (por ejemplo, imágenes, PDFs).
  • Guardar los resultados: En lugar de mostrar en la consola, podés guardar los resultados en un archivo o enviarlos a una API.
  • Analizar múltiples páginas: Crear una función que tome una URL como entrada y repita el proceso para esa página.

¡Y eso es todo! Con este script,vas a tener una herramienta poderosa para analizar y organizar los enlaces externos de cualquier página web.

De mp3 a videos con visualizaciones

 


Google Search

  • videos/movies/tvshows :
    intext:"Search Term" intitle:"index.of" +(wmv|mpg|avi|mp4|mkv|mov) -inurl:(jsp|pl|php|html|aspx|htm|cf|shtml)
  • Images :
    intext:"Search Term" intitle:"index.of./" (bmp|gif|jpg|png|psd|tif|tiff) -inurl:(jsp|pl|php|html|aspx|htm|cf|shtml)
  • Music :
    intext:"Search Term" intitle:"index.of./" (ac3|flac|m4a|mp3|ogg|wav|wma) -inurl:(jsp|pl|php|html|aspx|htm|cf|shtml)
  • Books :
    intitle:"Search Term" (pdf|epub|mob) "name or title" -inurl:(jsp|pl|php|html|aspx|htm|cf|shtml)

Google Drive

  • Shared everything:
    site:drive.google.com
  • Shared folders:
    site:drive.google.com +"drive/folders" + term
  • Shared spreadsheets:
    site:drive.google.com +"spreadsheets" + term
  • Shared documents:
    site:drive.google.com +"documents" + term

BASH

Find

find . -type f | perl -ne 'print $1 if m/\.([^.\/]+)$/' | sort -u

  • Show all the file types on the directory.

find . -type f | awk -F. '!a[$NF]++{print $NF}'

  • -F fs --field-separator fs Use fs for the input field separator (the value of the FS predefined variable).
  • awk $NF prints only the last column in a record. If the file has only one row,
    your variable will contain whatever is in the last column (space/tab delimiter).

find . -type 'f' -printf '%h\n' | sort | uniq -c

  • The find command will print out the directory name of all the files. Which we then run through sort, and then use the -c option of uniq to give us the number of files per directory. Once you have the count per directory it should be easy enough to just grep out the directories with a value of 1.
  • If you would prefer to perform actions on the directories while keeping it on one line, you can pipe the results through awk to xargs. For example, to delete each folder:

    find . -type 'f' -printf '%h\n' | sort | uniq -c | awk '{ if ($1 == "1") printf "%s%c",$2,0 }' | xargs -0 -I {} rm -rf {}

  • Avoid "Permission denied" messages

    find ./ -iname "term" 2>&1 | grep -v "Permission denied"

Find info

  • Search in file a term and sort result

    grep "texto a buscar" archivofuente.txt | grep -v -ie "comments" | sort -u > archivo.txt

  • Search in file URL and sort result uniques results

    cat messages*.html | grep -Eo '(http|https)://[^<"]+' | sort -u

  • Search in file a term and know in what file is it

    cat *.html | grep -H -R 'Goku'

  • Search unique URL term and order.

    lynx -dump -listonly https://t.me/s/howtoarsenio | grep -o "http:.*" | grep -E -v "http://t.me|http://www.t.me" | sort | uniq > file.txt

List

  • Avoid a file type
    ls -1 | sed -e 's/\.png$//'

Download

wget -c -nc -r --no-parent -R "index.html*"

  • -c, --continue Continue getting a partially-downloaded file.
  • -nc, --no-clobber The local file will be overwritten
  • -r, --recursive specify recursive download
  • Do not ever ascend to the parent directory
  • -R, --reject=LIST comma-separated list of rejected extensions

wget -r -R -A -E -H -k -p -e robots=off https://ww..url.com

  • -r, --recursive specify recursive download
  • -R, --reject=LIST comma-separated list of rejected extensions
  • -E, --adjust-extension save HTML/CSS documents with proper extensions
  • -H, --span-hosts go to foreign hosts when recursive
  • -K, --backup-converted before converting file X, back up as X.orig
  • -p, --page-requisites get all images, etc. needed to display HTML page

Rename

Multiple files

for i in chr*.fasta; do mv "$i" "${i/%.fasta/.fa}"; done

Delete

  • 0 Size files

    find ./ -type f -size 0

  • Empty folders

    find ./ -type d -empty -delete

FFmpeg

  • FFmpeg setting to upload YouTube video from an a scientific camera capture with uncompressed video:

    ffmpeg -i in.avi -c:v libx264 -preset slow -crf 18 -c:a aac -b:a 192k -pix_fmt yuv420p -movflags +faststart out.mp4

  • If the video has no audio, use:

    ffmpeg -i in.avi -c:v libx264 -preset slow -crf 18 -pix_fmt yuv420p -movflags +faststart out.mp4

imagemagick

  • Split in half a image

    convert -crop 50%x100% +repage  +adjoin img.tif img.tif

  • Split in half all images in a folder with X size

    find . -type f -size +80M | convert -crop 50%x100%  +repage  +adjoin "${/%.tif/_.tif}"; done

  • PDF to JPG (ImageMagick) los parametros son para mejor calidad.

    convert -density 300 -quality 100 in.pdf out.jpg

Music download with spotdl

  • Using WSL

    C:/Windows/System32/bash.exe -c "spotdl --output '/mnt/c/temp' --lyrics-provider genius 'https://open.spotify.com/playlist/7j5tAMUPNuhRFDcP1iClui'"

  • Using BASH

    spotdl "https://open.spotify.com/playlist/7j5tAMUPNuhRFDcP1iClui" --output "C:\temp" --lyrics-provider genius

Automatizar escaneos de revistas


Para un proyecto llamado "Tributo Revista LAZER" que consiste en escanear todas las revistas de una publicación, que me gustaba mucho sobre anime y otras yerbas, en excelente calidad y luego digitalizarla en forma de blog, tuve que crear este script.

La revista que tenia que digitalizar era de un formato chico, abierta entraba sin completa en el scanner. Como yo queria calidad en todo sentido, abrir la revista, apoyarla y escanearla no era lo mejor, ya que del medio se levanta un poco por mas que la aplastes y el escaneo no sale bien. 

Entonces tuve que desarmar las revistas para escanear de a una pagina, pero esto trajo otro inconveniente, al hacerlo asi, las imagenes que quedaban eran de paginas que no seguian un orden, debido que al juntarlas logran tener la consecución de las mismas.

Al final del proceso me quedaban paginas dobles completamente desordenadas.

Entonces, este script en PowerShell usa ImageMagick para hacer justamente eso: dividir las páginas en mitades y reordenarlas según el orden que necesita una impresión de revista. Te cuento paso a paso cómo funciona y qué hace cada parte:


Paso 1: Chequeo de ImageMagick

Primero, verifica que tenés ImageMagick instalado en tu máquina y que esté en la ruta especificada:

if (-not (test-path "$env:ProgramFiles\ImageMagick-7.1.0-Q16-HDRI\convert.exe")) {throw "$env:ProgramFiles\ImageMagick-7.1.0-Q16-HDRI\convert.exe needed"}

Si no está, tira un error avisándote que convert.exe no se encuentra y que lo instales en la ruta correcta.

Paso 2: Definición de los Patrones de Páginas

Acá crea tres patrones de páginas: uno para libritos de 84 páginas, otro para 68, y uno más para 100. Según cuántas páginas tengas en total, tenés que usar uno de estos patrones.

$84 = '84','01','02','83','82','03', ... , '43'
$68 = '68','1','2','67','66','3', ... , '35'
$100 = '100','1','2','99','98','3', ... , '51'

Paso 3: Asignación de Páginas y Búsqueda de Archivos

Definí cuántas páginas tiene tu documento (ej., $pages = $100 si tiene 100 páginas). Luego, buscá los archivos .tif en el directorio, que serán las imágenes de las páginas.

$pages = $100
$files = Get-ChildItem *.tif

Después, crea una carpeta llamada split, donde va a guardar los archivos divididos.

Paso 4: Dividir las Páginas

En este paso, se usa ImageMagick para cortar cada página en dos mitades:

foreach ($file in $files){
    $newfile = ".\split\" + $file.BaseName + "-%02d.tif"
    im -crop 50%x100% +repage +adjoin $file.FullName $newfile
}

Cada archivo .tif se corta a la mitad y se guarda en la carpeta split. Esto es clave para que después las páginas se puedan reordenar como se necesita.

Paso 5: Ordenar las Páginas

Dentro de la carpeta split, reordena las páginas basándose en el patrón que definiste al principio. Básicamente, renombra cada archivo .tif de acuerdo al número de página correspondiente en el orden correcto.

Set-Location split
$newfiles = Get-ChildItem
foreach ($renamed in $newfiles){
    $index = $newfiles.IndexOf($renamed)
    $page = $pages[$index.ToString()]
    Rename-Item -Path $renamed -NewName $page".tif"
}

Paso 6: Formateo Final de Nombres

Finalmente, usa otro foreach para dar formato a los nombres de las páginas, agregando ceros adelante (si hace falta) para que queden en orden numérico:

$j=1;
foreach ($i in Get-ChildItem "./?.tif" -Name) {
    $new_name = "0" + $j + ".tif";
    Rename-Item -Path $i -NewName $new_name;
    $j=$j+1;
}

De esta forma, se asegura que las páginas estén renombradas de forma ordenada, para que las puedas usar directamente en una impresora que soporte el modo "booklet" o "imposición de páginas".


En Resumen

Este script hace magia en 3 pasos: corta, reordena y renombra. ¡Ideal si querés armar una revista sin andar renombrando archivo por archivo!

Conversor de cbr a cbz

Ok, imaginate esto: tenés una colección de cómics en formato .cbr, pero querés pasar todo a .cbz para leerlos más cómodo en ciertas apps. Acá entra este script. Te lo explico paso a paso, tranqui que no es tan quilombo como parece.

Cómo Extraer Tu Lista de Animes en Anime-Planet con JavaScript

Este script está diseñado para extraer la lista de animes que has visto en tu perfil de Anime-Planet y mostrarlos en formato de "Título (Año)". Te explico cómo funciona paso a paso:

Buscar Mapas para COD4

Preparación para Server de el COD4, buscando mapas para popular el server con variedad.

Publicidad: porque el amor no paga el wifi