blob: eef296117db5a7129b9624ef22e96c91add8c06e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
package net.sourceforge.subsonic.backend.service;
import net.sourceforge.subsonic.backend.dao.PaymentDao;
import org.apache.log4j.Logger;
import javax.mail.Address;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.internet.InternetAddress;
import java.util.Date;
/**
* Creates a license whitelist.
*
* @author Sindre Mehus
* @version $Id$
*/
public class WhitelistGenerator {
private static final Logger LOG = Logger.getLogger(WhitelistGenerator.class);
private PaymentDao paymentDao;
public void generate(Date newerThan) throws Exception {
LOG.info("Starting whitelist update for emails newer than " + newerThan);
EmailSession session = new EmailSession();
Folder folder = session.getFolder("[Gmail]/Sent Mail");
int n = folder.getMessageCount();
for (int i = n; i >= 0; i--) {
Message message = folder.getMessage(i);
Date date = message.getSentDate();
InternetAddress address = (InternetAddress) message.getRecipients(Message.RecipientType.TO)[0];
String recipient = address.getAddress();
if (date.before(newerThan)) {
break;
}
LOG.info(date + " " + recipient);
if (paymentDao.getPaymentByEmail(recipient) == null && !paymentDao.isWhitelisted(recipient)) {
paymentDao.whitelist(recipient);
LOG.info("WHITELISTED " + recipient);
}
}
folder.close(false);
LOG.info("Completed whitelist update.");
}
public void setPaymentDao(PaymentDao paymentDao) {
this.paymentDao = paymentDao;
}
}
|