Skip to content

Commit

Permalink
'#1923: Extract address from WA iOS location messages, if available.
Browse files Browse the repository at this point in the history
  • Loading branch information
wladimirleite committed Feb 1, 2024
1 parent 242428b commit 72be341
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -487,24 +487,34 @@ private Message createMessageFromDB(ResultSet rs, Chat chat) throws SQLException
m.setMetaData(metadata);
}

if (m.getMessageType() == EPHEMERAL_DEFAULT) {
m.setDuration(decodeEphemeralDuration(metadata));
}
switch (m.getMessageType()) {
case EPHEMERAL_DEFAULT:
m.setDuration(decodeEphemeralDuration(metadata));
break;

if (m.getMessageType() == TEMPLATE_MESSAGE) {
m.setMessageTemplate(decodeTemplate(metadata));
}
case TEMPLATE_MESSAGE:
m.setMessageTemplate(decodeTemplate(metadata));
break;

if (m.getMessageType() == GROUP_INVITE) {
m.setGroupInviteName(decodeGroupInvite(metadata));
}
case GROUP_INVITE:
m.setGroupInviteName(decodeGroupInvite(metadata));
break;

if (m.getMessageType() == PRODUCT_MESSAGE) {
m.setProduct(decodeProductInfo(metadata, m));
}

if (m.getMessageType() == URL_MESSAGE) {
decodeURLInfo(metadata, m);
case PRODUCT_MESSAGE:
m.setProduct(decodeProductInfo(metadata, m));
break;

case URL_MESSAGE:
decodeURLInfo(metadata, m);
break;

case LOCATION_MESSAGE:
case SHARE_LOCATION_MESSAGE:
m.setAddress(rs.getString("mediaHash"));
break;

default:
break;
}

return m;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ public class Message implements Comparable<Message> {
private String uiElements;
private MessageProduct product;
private Date editTimeStamp;
private String address;

static {
try {
Expand Down Expand Up @@ -591,6 +592,14 @@ public void setEditTimeStamp(Date editTimeStamp) {
this.editTimeStamp = editTimeStamp;
}

public String getAddress() {
return address;
}

public void setAddress(String address) {
this.address = address;
}

public static enum MessageType {
TEXT_MESSAGE, IMAGE_MESSAGE, AUDIO_MESSAGE, VIDEO_MESSAGE, UNKNOWN_MEDIA_MESSAGE, CONTACT_MESSAGE, LOCATION_MESSAGE, SHARE_LOCATION_MESSAGE, VOICE_CALL, VIDEO_CALL, APP_MESSAGE, GIF_MESSAGE, BLOCKED_CONTACT, UNBLOCKED_CONTACT, BUSINESS_CHAT, BUSINESS_TO_STANDARD, MESSAGES_ENCRYPTED, MESSAGES_NOW_ENCRYPTED, ENCRYPTION_KEY_CHANGED, MISSED_VOICE_CALL, MISSED_VIDEO_CALL, DELETED_MESSAGE, DELETED_BY_ADMIN, DELETED_BY_SENDER, GROUP_CREATED, USER_JOINED_GROUP, USER_JOINED_GROUP_FROM_LINK, USERS_JOINED_GROUP, USER_LEFT_GROUP, USER_REMOVED_FROM_GROUP, URL_MESSAGE, GROUP_ICON_CHANGED, GROUP_ICON_DELETED, GROUP_DESCRIPTION_CHANGED, SUBJECT_CHANGED, YOU_ADMIN, YOU_NOT_ADMIN, WAITING_MESSAGE, STICKER_MESSAGE, REFUSED_VIDEO_CALL, REFUSED_VOICE_CALL, UNAVAILABLE_VIDEO_CALL, UNAVAILABLE_VOICE_CALL, UNKNOWN_VOICE_CALL, UNKNOWN_VIDEO_CALL, VIEW_ONCE_IMAGE_MESSAGE, VIEW_ONCE_VIDEO_MESSAGE, CALL_MESSAGE, BUSINESS_META_SECURE_SERVICE, GROUP_INVITE, TEMPLATE_MESSAGE, TEMPLATE_QUOTE, POLL_MESSAGE, EPHEMERAL_DURATION_CHANGED, EPHEMERAL_CHANGED, EPHEMERAL_DEFAULT, EPHEMERAL_SAVE, GROUP_CHANGED_ONLY_ADMINS_CAN_SEND, GROUP_CHANGED_ALL_MEMBERS_CAN_SEND, GROUP_CHANGED_ONLY_ADMINS_CAN_EDIT, GROUP_CHANGED_ALL_MEMBERS_CAN_EDIT, GROUP_ONLY_ADMINS_CAN_SEND, CHANGED_DEVICE, CHANGED_NUMBER_TO, CHANGED_NUMBER_CHATTING_WITH_NEW, CHANGED_NUMBER_CHATTING_WITH_OLD, STANDARD_CHAT, SENDER_ADDED_TO_CONTACTS, SENDER_IN_CONTACTS, BUSINESS_OFFICIAL, GROUP_ADDED_TO_COMMUNITY, COMMUNITY_MANAGEMENT_ACTION, UI_ELEMENTS, UI_ELEMENTS_QUOTE, CHANNEL_ADDED_PRIVACY, CHANNEL_CREATED, ORDER_MESSAGE, PRODUCT_MESSAGE, BUSINESS_CHANGED_NAME, USER_JOINED_WHATSAPP, PINNED_MESSAGE, UNKNOWN_MESSAGE
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -804,6 +804,9 @@ private synchronized void printMessage(PrintWriter out, Message message, boolean
Messages.getString("WhatsAppReport.Latitude") + ": " + message.getLatitude() + "<br>");
out.println(Messages.getString("WhatsAppReport.Longitude") + ": " + message.getLongitude()
+ "<br>");
if (notNullNorBlank(message.getAddress())) {
out.print(format(message.getAddress()) + "<br>");
}
if (notNullNorBlank(message.getData())) {
out.print(format(message.getData()) + "<br>");
}
Expand Down

0 comments on commit 72be341

Please sign in to comment.