{Slack} – Surveiller l’activité de vos collègues

Hello

Certes le titre est un peu provocateur, et c'est bien là le but  !
J'espère que vous allez bien et que vous êtes en forme, car je vais vous proposer aujourd'hui, un petit truc qui risque de vous être très utile si comme moi, vous êtes contraint (rien ne vous empêche d'y prendre d'apprécier) d'utiliser Slack !
Comme l'indique le titre de cet article, j'ai écrit un petit morceau de script qui permet de surveiller en continu des utilisateurs d'une recherche.

Ok ... dis comme ça c'est certainement un peu violent et vous n'avez peut-être pas saisi le sens de cette phrase.

En réalité j'ai écrit un script qui s'appuie sur la fonction de recherche de membres Slack.
De manière transparente, lorsque vous saisissez les premières lettres du pseudonyme (ou du vrai nom/prénom) de la personne que vous recherchez, une requête va partir et vous retourner des informations sur des utilisateurs correspondant à votre recherche.
Ces informations contiennent notamment si l'utilisateur est actif ou non !

Surveiller c'est mal, mais ...

Bien loin du cliché de celui-ci qui voudrait faire du zèle et dire à son manager que telle personne ou telle autre personne ne fait pas toutes ses heures sur Slack ...
L'idée est au contraire ici, de s'appuyer sur cette information pour pouvoir mettre en place des alertes en cas de connexion d'une personne.
Cela évite de vérifier toutes les 30 secondes si telle personne ou telle personne est connectée, lorsque vous avez besoin de la joindre.

Le script

Comme vous en avez déjà certainement l'habitude avec la plupart de mes articles, je vous propose à nouveau de récupérer le morceau de code ci-dessous, de le copier, et de le coller dans votre console (Dans votre navigateur, sur Slack, appuyez sur la touche F12, cherchez l'onglet "console", collez, validez par la touche "entrée")

/*
*
*
*    Spy friends activity on Slack
*    (c) Dyrk.org 2020 - 2021
*
*/
(() => { 
    let 
    timeSecondCheck = 300,
    search = 'Dave Hill',
    users = {};
    displayStatusMembers = function(members)
    {
        members = JSON.parse(members.target.response);
        members.results = members.results.map(e => {
            let is_active = (members.presence_active_ids.indexOf(e.id) != -1);
            users[e.id]  = {
            name     : e.name, 
            history  : (users[e.id] ? users[e.id].history : '' )+ (is_active ? 'X':' '),
            active   : is_active,
            time     : new Date()
            };
        });
        console.error(users); //<====== Display list - do what you want here !
    },
    spyLogConnexion = function(token, query)
    {
        let teamId = document.location.toString().match(/\/client\/([A-Z0-9]{6,12})\//)[1],
            url = 'https://edgeapi.slack.com/cache/'+teamId+'/users/search', 
            xhr = new XMLHttpRequest(), data = {
                token : token,
                query : query,
                count : 100,
                fuzz  : 1,
                uax29_tokenizer: false,
                check_membership : true
            };
        xhr.open('POST', url);
        xhr.withCredentials = true; 
        xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');
        xhr.addEventListener('load', displayStatusMembers);
        xhr.send(JSON.stringify(data));  
    }
    XMLHttpRequest.prototype.send2 = XMLHttpRequest.prototype.send2 ? XMLHttpRequest.prototype.send2 : XMLHttpRequest.prototype.send;
    XMLHttpRequest.prototype.send = function(x){
        try {
            datas = JSON.parse(x);
            if (datas.token && !this.slackSpyLock)
            {

                XMLHttpRequest.prototype.slackSpyLock = true;
                let func = spyLogConnexion.bind(null, datas.token, search);
                setInterval(
                    func, 
                    timeSecondCheck * 1000);
                func();
            }
        } catch (e){ };
        return this.send2(x);
    } 
})();

 

Attention, pensez juste à modifier le script pour définir votre recherche.
Le script tel quel va se contenter de surveiller l'utilisateur "Dave Hill", avec une surveillance toute les 300 secondes.

Conclusion

Quelques articles encore dans la hotte du père noël, je dépile progressivement un peu tout ça !
Je dois arriver à la fin de mes articles sur Slack, mais si vous avez des idées n’hésitez pas à me
l'indiquer par commentaire.

 

Partagez ce contenu

Laisser une réponse

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *