Skip to content
8 changes: 6 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,16 @@ Edita el archivo removeSlackOldFiles.php y añade tu token para que pueda funcio
se puede obtener de https://api.slack.com/web en el botón "Generate test tokens". Este token
debe bastar, no es necesario crear una aplicación pública.

Luego simplemente ejecuta el script, es necesario que tenga curl instalado (viene en muchas
instalaciones por default).
# Instalación
Para ejecutar este script es necesario tener instalado `php-curl`. En caso de no tenerlo instalado, se puede instalar con este comando:

sudo apt install php-curl

El api de slack solo te devuelve 100 archivos por lo que será necesario si tienes muchos,
ejecutar el script tantas veces como sea necesario.

Use el script bajo su propio riesgo.

https://www.elsiglodetorreon.com.mx/blogs/ToRo/2267-eliminar-archivos-viejos-slack-con-php


59 changes: 44 additions & 15 deletions removeFilesFromSlack.php
Original file line number Diff line number Diff line change
@@ -1,32 +1,61 @@
<?php
/* Remove old files from slack team. * @toro 2016-09-10 */

setlocale(LC_ALL,'es_MX.UTF-8'); //locale settings
$tiempo = strtotime("-2 MONTH"); //Filter files created before this timestamp (inclusive).
/* get token at https://api.slack.com/web (test token it is ok!) */
$token= "YOUR_TOKEN_HERE"; //token
$datas = ["token"=> $token, "ts_to"=> $tiempo]; //data sent
if(empty($token)||$token=='YOUR_TOKEN_HERE') die($argv[0]." - invalid token\n");

$token = "YOUR_TOKEN_HERE"; //token
$datas = ["token" => $token, "ts_to" => $tiempo]; //data sent

if (empty($token) || $token == 'YOUR_TOKEN_HERE')
die ($argv[0]." - invalid token\n");

/* open connection */
$ch = curl_init();

curl_setopt($ch, CURLOPT_POSTFIELDS, $datas);
curl_setopt($ch, CURLOPT_POST,1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL,"https://slack.com/api/files.list?token=".$token."&ts_to=".$tiempo);
$result = curl_exec($ch); $data = json_decode($result);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, "https://slack.com/api/files.list?token=".$token."&ts_to=".$tiempo);

$result = curl_exec($ch);
$data = json_decode($result);

/* error */
if(!isset($data->ok) or empty($data->files)) { echo "No existen archivos < ".strftime("%c",$tiempo).".\n"; exit(); }
if (!isset($data->ok) or empty($data->files)) {
echo "No existen archivos < ".strftime("%c", $tiempo).".\n";
exit();
}

/* success! */
echo "=== Encontramos ".sizeof($data->files)." archivos más viejos de ".strftime("%c",$tiempo)."\n\n";
echo "=== Encontramos ".sizeof($data->files)." archivos más viejos de ".strftime("%c", $tiempo)."\n\n";

$i=0;
foreach($data->files AS $file) {

foreach ($data->files AS $file) {
$i++;
if($file->created > $tiempo) { echo " archivo más nuevo, no se elimina!\n"; continue; }
echo "- Eliminando ".$i."/".sizeof($data->files)." [".date('d/m/Y',$file->created)."] ".$file->name."... ";
curl_setopt($ch, CURLOPT_POSTFIELDS, ['file'=>$file->id]);
if ($file->created > $tiempo) {
echo "archivo más nuevo, no se elimina!\n";
continue;
}

echo "- Eliminando ".$i."/".sizeof($data->files)." [".date('d/m/Y', $file->created)."] ".$file->name."... ";
curl_setopt($ch, CURLOPT_POSTFIELDS, ['file' => $file->id]);
curl_setopt($ch, CURLOPT_URL,"https://slack.com/api/files.delete?token=".$token);
$result = curl_exec($ch); $tmp = json_decode($result);
if(isset($tmp->ok)) echo "ok!\n";
else echo $tmp->error."\n";

$result = curl_exec($ch);
$tmp = json_decode($result);

if (isset($tmp->ok))
echo "ok!\n";
else
echo $tmp->error."\n";
sleep(1);

}

curl_close($ch);
//EOF

<?