Recientemente intenté usar el siguiente código para enviar pegar a pastebin.com:
https://github.com/mefuckin/pastebin-shell/blob/master/pbin
Lo que he notado con ese script es que no parece enviar api_user_key. La línea 183 lo tiene listado:
--data "api_user_key=$api_user_key" \
así que pensé que sería sólo cuestión de especificar su valor, como:
api_user_key="VALUE HERE"
y eso lo enviaría a la API. Sin embargo, no estoy seguro de qué hace esa parte del código (parte del código que comienza en 174):
[ $logintopastebin -ne 0 ] && auth_user
api_paste_code=$( cat - )
curl -0 --show-error \
--data "api_dev_key=$api_dev_key" \
--data "api_option=paste" \
--data "api_paste_code=$api_paste_code" \
--data "api_paste_format=$api_paste_format" \
--data "api_paste_private=$api_paste_private" \
--data "api_paste_expire_date=$api_paste_expire_date" \
--data "api_user_key=$api_user_key" \
--data-urlencode "api_paste_name=$api_paste_name" \
--data-urlencode "api_paste_code=$api_paste_code" \
"$api_url/api_post.php"
¿Esta parte del código significa que todos estos argumentos se enviarán a la API?
Respuesta1
El código envía elapi_user_key
. Puede enviar una cadena vacía si la variable no está configurada. Elguioncontiene código para encontrar la clave de usuario consultando el servidor en la función auth_user
, pero esa función solo se llama si se establece logintopastebin
en un valor distinto de cero al principio o si se pasa una de las opciones -u
o -l
en la línea de comando. Puede anular el valor configurando la variable api_user_key
manualmente después o en lugar de la llamada a auth_user
, antes de la llamada a curl
, por ejemplo
api_user_key=$(cat ~/.passwords/pastebin/api_user_key)
…
if [ -z "$api_user_key" ] && [ "$logintopastebin" -eq 0 ]; then
auth_user
fi
api_paste_code=$( cat - )
curl -0 --show-error \
…
Si no comprende lo que hace el script, agréguelo set -x
como segunda línea para que imprima un seguimiento de cada línea a medida que se ejecuta.