600

Bonne nouvelle : l'export des données a marché, et MS fournit même un parser local (sous forme de page HTML).

Mauvaise nouvelle : ça tient plus du proof-of-concept à moitié fini que d'une présentation raisonnable (les messages sont mélangés avec des bouts de balises HTML et d'objets JSON), et tous les fichiers échangés sont en vrac dans le même dossier avec des noms autogénérés (y'a des fichiers JSON aussi, peut-être qu'il y a moyen de retrouver les noms et le contexte d'origine grâce à ça, mais c'est très clairement pas à la portée d'un utilisateur normal).

EDIT : ah, on peut récupérer les contacts aussi, ça sort un fichier CSV... mais sans les entêtes de colonnes (même si c'est pas très dur de deviner les principales).
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

601

j'avais écrit ça à l'époque pour transformer tout les sms/skype/commandes ssh & locales/sessions/commits/historique firefox/mails/logs et autres en emploi du temps réel pour les prudhommes lol

(j'avais galéré sévère 100ans pour extraire les data du dump trouvable dans le navigateur, c'était un fichier "leveldb" modifié, j'ai un fichier c qui le traite, mais bref j'ai trouvé ça a coté donc visiblement j'avais du réussir à exporter un dump lisible via le site)

export skype json vers texte
const fs = require('fs'); const _ = require('lodash'); const moment = require("moment"); moment.locale('fr'); const he = require('he'); const historyFile = './history.skype/export.json'; const outEventFile = './history.skype/skype.txt'; const skypeHistory = require( historyFile ); const history = []; for ( const message of skypeHistory.messagesv12 ) { /* if( message.creator !== '8:live:machin' && message.creator !== '8:trucmuche' ) continue; */ const time = moment( message.createdTime, 'x'); if( !time.isValid() ) continue; let from = message.creator.substring(2); if( from === ':concierge' ) continue; let to = message.conversationId.substring(2); if( to === from ) to = 'ton nom'; if( from === 'live:ton.pseudo' ) from = 'ton nom'; else { if( from === 'pseudo machin' ) from = 'son nom'; } if( to === 'pseudo machin' ) to = 'son nom'; const msg = { t:parseInt(message.createdTime,10), time:time.locale('fr').format('lll'), to:to, from:from, text:he.decode( message.content ) }; //history[ parseInt(message.createdTime,10) ] = msg; history.push( msg ); //console.log( msg ); } let out = []; history.sort((a, b) => a.t - b.t); /*history.forEach( msg => { console.log( msg ); out.push( msg.time, msg.from, '>', msg.to, '\n', msg.text ); } )*/ for ( const msg of history ){ // console.log( msg ); out.push( [ msg.time, msg.from, '>', msg.to + '\n' + msg.text ].join(' ') ); } //console.log( history ); fs.writeFile( outEventFile, out.join("\n\n"), () => { } );
et la le mec il le pécho par le bras et il lui dit '