mirror of
https://github.com/pierre42100/ComunicWeb
synced 2024-11-23 20:49:21 +00:00
123 lines
2.7 KiB
JavaScript
123 lines
2.7 KiB
JavaScript
/**
|
|
* Account data export worker
|
|
*
|
|
* @author Pierre HUBERT
|
|
*/
|
|
|
|
ComunicWeb.components.account.export.worker = {
|
|
|
|
/**
|
|
* Start account export
|
|
*
|
|
* @param {String} password The password of the user
|
|
*/
|
|
start: function(password){
|
|
|
|
//Get all user text data from the interface
|
|
ComunicWeb.components.account.interface.exportData(password, function(result){
|
|
|
|
//Check for errors
|
|
if(result.error){
|
|
return ComunicWeb.components.account.export.ui.exportFatalError("Could not get text data! Please check your password...");
|
|
}
|
|
|
|
//Update progress
|
|
ComunicWeb.components.account.export.ui.updateProgress(10);
|
|
|
|
//Parse data
|
|
ComunicWeb.components.account.export.worker.parse(result);
|
|
});
|
|
|
|
},
|
|
|
|
/**
|
|
* Parse account text data
|
|
*
|
|
* @param {Object} data Text data about the account
|
|
*/
|
|
parse: function(data){
|
|
|
|
//Determine the list of files to download
|
|
var files_list = this._generate_files_list(data);
|
|
|
|
},
|
|
|
|
/**
|
|
* Determine the list of files to download
|
|
*
|
|
* @param {Object} data Dataset to parse
|
|
* @return {Array} Generated dataset
|
|
*/
|
|
_generate_files_list: function(data){
|
|
|
|
var files = [];
|
|
|
|
/**
|
|
* Parse a comment to find potential files to download
|
|
*
|
|
* @param {Object} info Information about the comment to parse
|
|
*/
|
|
var parseComment = function(info){
|
|
if(info.img_url != null)
|
|
if(!files.includes(info.img_url))
|
|
files.push(info.img_url);
|
|
}
|
|
|
|
/**
|
|
* Parse a post to find potential files to download
|
|
*
|
|
* @param {Object} info Information about the post to parse
|
|
*/
|
|
var parsePost = function(post){
|
|
if(post.file_path_url != null){
|
|
if(!files.includes(post.file_path_url))
|
|
files.push(post.file_path_url);
|
|
}
|
|
|
|
//Parse comments
|
|
post.comments.forEach(parseComment);
|
|
}
|
|
|
|
/**
|
|
* Parse a movie to find potential files to download
|
|
*
|
|
* @param {Object} info Information about the movie to parse
|
|
*/
|
|
var parseMovie = function(info){
|
|
if(info.url != null)
|
|
if(!files.includes(info.url))
|
|
files.push(info.url);
|
|
}
|
|
|
|
/**
|
|
* Parse a conversation message to find potential files to download
|
|
*
|
|
* @param {Object} info Information about the movie to parse
|
|
*/
|
|
var parseConversationMessage = function(info){
|
|
if(info.image_path != null)
|
|
if(!files.includes(info.image_path))
|
|
files.push(info.image_path);
|
|
}
|
|
|
|
|
|
//Main account information
|
|
files.push(data.advanced_info.accountImage);
|
|
files.push(data.advanced_info.backgroundImage);
|
|
|
|
//Posts
|
|
data.posts.forEach(parsePost);
|
|
|
|
//Comments
|
|
data.comments.forEach(parseComment);
|
|
|
|
//Movie
|
|
data.movies.forEach(parseMovie);
|
|
|
|
//Conversation message
|
|
data.conversation_messages.forEach(parseConversationMessage);
|
|
|
|
return files;
|
|
}
|
|
|
|
} |