use of com.gamebuster19901.excite.bot.mail.EmailAddress in project ExciteBot by TheGameCommunity.
the class Mailbox method analyzeMail.
private static LinkedHashSet<MailResponse> analyzeMail(Wii responder, MimeMessage prompt) throws MessagingException {
LinkedHashSet<MailResponse> responses = new LinkedHashSet<MailResponse>();
Session session = Session.getInstance(new Properties());
Address[] from = prompt.getFrom();
LOGGER.log(Level.FINEST, "Analyzing mail from: " + (from != null ? from[0] : from));
if (from == null) {
responses.add(new NoResponse(prompt));
return responses;
}
ElectronicAddress senderEmail = new EmailAddress(prompt.getFrom()[0]);
Wii sender = Wii.getWii(senderEmail);
if (sender instanceof InvalidWii) {
LOGGER.log(Level.FINEST, "Ignoring non-wii mail");
responses.add(new NoResponse(prompt));
return responses;
} else {
boolean wasKnown;
if (!(wasKnown = sender.isKnown())) {
try {
Insertion.insertInto(WIIS).setColumns(WII_ID).to(sender.getWiiCode().toString()).prepare(ConsoleContext.INSTANCE).execute();
} catch (SQLException e) {
throw new MessagingException("Database error", e);
}
}
String[] appheaders = prompt.getHeader(APP_ID_HEADER);
String app = "";
if (appheaders.length > 0) {
app = appheaders[0];
}
Rewardable attachment = InvalidChallenge.INSTANCE;
if (app.equals(EXCITEBOTS)) {
attachment = analyzeIngameMail(prompt, sender);
}
if (sender.getOwner() instanceof UnknownDiscordUser) {
// if wii is not registered
if (app.equals(FRIEND_REQUEST) && !wasKnown) {
MailResponse friendResponse = new AddFriendResponse(responder, sender, prompt);
LOGGER.finest("Sending friend request to " + sender.getEmail());
MailResponse codeResponse = new DiscordCodeResponse(responder, sender, prompt);
LOGGER.finest("Sending verification discord code to " + sender.getEmail());
responses.add(friendResponse);
responses.add(codeResponse);
}
if (attachment.getReward() > 0) {
// responses.add(new RefundResponse(responder, prompt, attachment));
}
} else {
// excitebot is not currently accepting mail from anything other than Excitebots
LOGGER.log(Level.FINEST, "Excitebot is not currently accepting mail from anything other than Excitebots");
responses.add(new NoResponse(prompt));
}
}
return responses;
}
use of com.gamebuster19901.excite.bot.mail.EmailAddress in project ExciteBot by TheGameCommunity.
the class MailAudit method addMailAudit.
@SuppressWarnings("rawtypes")
public static MailAudit addMailAudit(MessageContext context, MimeMessage message, boolean incoming, File file) throws AddressException, MessagingException {
ElectronicAddress from = new EmailAddress(message.getFrom()[0]);
ElectronicAddress to = new EmailAddress(new InternetAddress(message.getHeader("To")[0]));
String description = from.getEmail() + " sent mail to " + to.getEmail();
String[] appIDHeader = message.getHeader(Mailbox.APP_ID_HEADER);
String mailType = "GENERIC";
if (appIDHeader != null) {
switch(appIDHeader[0]) {
case Mailbox.FRIEND_REQUEST:
description = from + " sent a friend request to " + to;
mailType = "FRIEND_REQUEST";
break;
case Mailbox.EXCITEBOTS:
description = from + " sent a challenge to " + to;
mailType = "CHALLENGE";
break;
}
}
Audit parent = Audit.addAudit(context, AuditType.MAIL_AUDIT, description);
PreparedStatement st;
try {
st = Insertion.insertInto(Table.MAIL).setColumns(AUDIT_ID, SENDER, RECIPIENT, INCOMING, MAIL_TYPE, FILE).to(parent.getID(), from.getEmail(), to.getEmail(), incoming, mailType, file.getAbsolutePath()).prepare(context, true);
st.execute();
MailAudit ret = getMailAuditByAuditID(ConsoleContext.INSTANCE, parent.getID());
ret.parentData = parent;
return ret;
} catch (SQLException e) {
throw new IOError(e);
}
}
Aggregations