Skip to content

Instantly share code, notes, and snippets.

View alejoasotelo's full-sized avatar
💭
🚀

Alejo A. Sotelo alejoasotelo

💭
🚀
View GitHub Profile
@alejoasotelo
alejoasotelo / migrar-articulos-k2-a-joomla.md
Last active June 24, 2021 23:17
Migrar artículos de K2 a artículos de Joomla

Cómo migrar artículos de K2 a Artículos Joomla

Nota: Probar este script en un joomla en localhost para arender cómo funciona. Nunca hacerlo sobre un sitio en producción. Hacer backup de su base de datos antes de probar este script en producción. Si se equivocan y lo hacen en un sitio en producción como mucho se vna a agregar artículos en Joomla, los eliminan y listo, pero mejor hacerlo previamente sobre un sitio de desarrollo

Aplica para Joomla! 3

Esta consulta SQL lo que hace es leer todos los artículos de K2 e insertar los artículos en el gestor de contenidos de Joomla.

Cuando se crean los artículos en el gestor de contenidos se les asigna la categoria de la variable @id_categoria_default (modificar por el ID de la categoría Joomla que prefieran).

@alejoasotelo
alejoasotelo / detectar-ddos-wordpress-en-apache.md
Last active June 24, 2021 16:49
Detectar IPs del log de Apache intentando buscar una instalación de Wordpress

Detectar IPs del log de Apache que intengn acceder a una insalación de Wordpress:

cat ssl_access_log* | grep 'wp-(admin|content|include|login)' -E | cut -d' ' -f1 | sort | uniq -c | sort

Este script de linea de comandos en bash, funciona de la siguiente manera:

  1. Lees con cat archivos donde el nombre empiece con "ssl_access_log"
  2. Busca con grep urls que tengan el texto: wp-admin, wp-content, wp-include y wp-login
  3. Separa las lineas por espacios con cut y devuelve la primer parte (ip)
@alejoasotelo
alejoasotelo / myip.php
Created April 7, 2021 22:07
Debuggear según IP
<?php
class MyIP {
private static $ips = [];
/**
* Setea las IPs del cliente
*
* @return bool
*/
@alejoasotelo
alejoasotelo / index.js
Created March 8, 2021 16:10
Calculadora de rewards de SBDO por epoch
function calcularRewardsPorEpoch(expansionRate, totalBDOSupply, totalSBDOStakedBoardroom, mySBDOStakedInBoardroom) {
return ((0.8 * (expansionRate/100) * totalBDOSupply) / totalSBDOStakedBoardroom) * mySBDOStakedInBoardroom;
}
function calcularRewardsPorDia(expansionRate, totalBDOSupply, totalSBDOStakedBoardroom, mySBDOStakedInBoardroom) {
return calcularRewardsPorEpoch(expansionRate, totalBDOSupply, totalSBDOStakedBoardroom, mySBDOStakedInBoardroom) * 4;
}
console.log('Rewards diarios:', calcularRewardsPorDia(1.25, 41289517, 16856.865, 1))
@alejoasotelo
alejoasotelo / index.js
Last active February 18, 2021 20:25
get tokens prices by BUSD from coingecko - obteners los precios de tokens en BUSD de coingecko
(async () => {
let response = await fetch('https://api.coingecko.com/api/v3/exchanges/pancakeswap/tickers?coin_ids=pancakeswap-token,bakerytoken,helmet-insure,bdollar,bdollar-share');
let data = await response.json();
let tickers = json.tickers.filter(ticker => ticker.target == 'BUSD');
let values = tickers.map(ticker => {
return ticker.base + '/' + ticker.target + ' = $' + ticker.last;
});
values.sort().forEach(value => console.log(value));
})();
@alejoasotelo
alejoasotelo / search.js
Created February 18, 2021 03:01
get BSC Tokens info from https://bscscan.com
let search = async (name) => {
let response = await fetch('https://bscscan.com/searchHandler?term=' + encodeURIComponent(name) + '&filterby=0');
response = await response.json();
return response
.map((item) => {
item = item.split("\t");
let data = item[2].split("~");
return {
name: item[0],
address: item[1],
<p>Este es una ejemplo de validación de 2 passwords. El típico ejemplo de repetir password.</p>
<form name="myForm">
<input type="password" name="pass" ng-model="user.pass" ng-change="user.pass_equals = (user.pass == user.pass_copy)" required/>
<br>
<span ng-if="!myForm.pass.$pristine && myForm.pass.$invalid">campo invalido.</span>
<br>
<br>
<input type="password" name="pass_copy" ng-model="user.pass_copy" ng-change="user.pass_equals = (user.pass == user.pass_copy)" required/><br>