Skip to content

Instantly share code, notes, and snippets.

@tiagoad
Last active August 29, 2015 14:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tiagoad/daa40ef65b6972f6ef49 to your computer and use it in GitHub Desktop.
Save tiagoad/daa40ef65b6972f6ef49 to your computer and use it in GitHub Desktop.
MightyText conversation dumper / exporter
var phoneNumClean = $("#navBarTabs > .active > a").data("phone_num_clean");
var theirName = $("#navBarTabs > .active > a > .threadNameOrNumber").html();
var messages = [];
var maxAmount = 500;
var types = {
inbox: 60,
outbox: 61,
sms: 10,
mms: 11
}
function getMessages(startRange) {
$.ajax({
url: baseUrl + "/api?function=GetMessages",
type: 'POST',
dataType: 'json',
data: {
start_range: startRange,
end_range: startRange + maxAmount,
phone_num_clean: phoneNumClean
},
xhrFields:{
withCredentials: true
}
}).done(function(data, textStatus, jqXHR) {
messages = messages.concat(data.messages);
if (data.messages.length > 0) {
getMessages(startRange + maxAmount);
}
else {
processMessages(messages);
}
});
}
getMessages(0);
function processMessages(messages) {
var output = "";
for (var i = messages.length - 1; i >= 0; i--) {
var message = messages[i];
var date = moment(message.ts_server).format('YYYY-MM-DD HH:mm:ss');
var name;
switch (message.inbox_outbox) {
case types.inbox:
name = theirName;
break;
case types.outbox:
name = "You";
break;
default:
name = "Error"
}
output += "[" + date + "] " + name + ": " + decodeURIComponent(message.body.replace(/\+/g, '%20')).trim();
if (message.type == types.mms) output += " (MMS: " + baseUrl + "/imageserve?function=fetchFile&id=" + message.id + ")";
output += "\n";
}
$("body").append('<div id="log-modal" class="modal hide fade" tabindex="-1"><textarea style="width: 100%" rows="15"></textarea></div>');
$("#log-modal > textarea").val(output);
$("#log-modal").modal();
}

Select the conversation you want to export, open the browser javascript console, and paste the javascript inside it. The conversation will be dumped to the input box.

Star if it was helpful to you c:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment