package gov.nysenate.openleg.script.admin;
import gov.nysenate.openleg.script.BaseScript;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.log4j.Logger;
import javax.mail.*;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;
@Deprecated
public class CheckMail extends BaseScript
{
private static final Logger logger = Logger.getLogger(CheckMail.class);
public static void main(String[] args) throws Exception
{
// new CheckMail().run(args);
}
@Override
protected void execute(CommandLine opts) throws Exception
{
String[] args = opts.getArgs();
File lrsFileDir = new File(args[0]);
String filenamePrefix = args[1];
Properties props = System.getProperties();
props.setProperty("mail.store.protocol", "imaps");
props.setProperty("mail.imaps.ssl.protocols", "SSLv3");
Session session = Session.getDefaultInstance(props, null);
Store store = session.getStore("imaps");
store.connect("webmail.senate.state.ny.us", "kim", "s3nat32011");
Folder source = store.getFolder("OpenLegislation").getFolder("LRSAutomated");
Folder destination = store.getFolder("OpenLegislation").getFolder("LRSProcessed");
source.open(Folder.READ_WRITE);
boolean runSpotCheck = false;
for(Message message : source.getMessages()) {
Date sent = message.getSentDate();
String filename = new SimpleDateFormat("yyyyMMdd").format(sent);
if (message.getSubject().contains("Sen Act Title Sum Spon Law 4001-9999")) {
filename = filenamePrefix + ".senate.high.html";
runSpotCheck = true;
}
else if (message.getSubject().contains("Sen Act Title Sum Spon Law 1-4000")) {
filename = filenamePrefix + ".senate.low.html";
runSpotCheck = true;
}
else if (message.getSubject().contains("Asm Act Title Sum Spon Law 4001-99999")) {
filename = filenamePrefix + ".assembly.high.html";
runSpotCheck = true;
}
else if (message.getSubject().contains("Asm Act Title Sum Spon Law 1-4000")) {
filename = filenamePrefix + ".assembly.low.html";
runSpotCheck = true;
}
else if (message.getSubject().contains("Job ABPSDD - LBDC all Bills")) {
filename = filenamePrefix + ".page_file.txt";
}
else {
logger.error("Unknown subject line: "+message.getSubject());
continue;
}
if (message.isMimeType("multipart/*")) {
Multipart content = (Multipart)message.getContent();
for (int i = 0; i < content.getCount(); i++) {
Part part = content.getBodyPart(i);
if (Part.ATTACHMENT.equals(part.getDisposition())) {
System.out.println("Saving "+part.getFileName()+" to "+filename);
String attachment = IOUtils.toString(part.getInputStream());
FileUtils.write(new File(lrsFileDir, filename), attachment);
}
}
}
source.copyMessages(new Message[]{message}, destination);
message.setFlag(Flags.Flag.DELETED, true);
}
// Finalize the message deletion from the source folder
source.expunge();
}
}