package gov.nysenate.openleg.script;
import gov.nysenate.openleg.model.entity.SessionMember;
import gov.nysenate.openleg.util.MemberScraperUtils;
import gov.nysenate.openleg.util.FileIOUtils;
import gov.nysenate.openleg.util.RandomUtils;
import org.apache.commons.cli.CommandLine;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.core.io.UrlResource;
import org.springframework.stereotype.Service;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
@Service
public class MemberScraperCLI extends BaseScript
{
private static final Logger logger = LoggerFactory.getLogger(MemberScraperCLI.class);
@Override
protected void execute(CommandLine opts) throws Exception {
List<SessionMember> assemblyMembers = MemberScraperUtils.getAssemblyMembers();
assemblyMembers.stream().forEach(m -> {
try {
InputStream in = new UrlResource(m.getImgName()).getInputStream();
FileIOUtils.writeToFile(in, "/tmp/assembly/" + RandomUtils.getRandomString(10) + ".jpg");
} catch (IOException e) {
logger.error("Failed to ", e);
}
});
}
public static void main(String[] args) throws Exception {
SCRIPT_NAME = MemberScraperCLI.class.getName();
AnnotationConfigApplicationContext ctx = init();
MemberScraperCLI memberScraperCLI = ctx.getBean(MemberScraperCLI.class);
CommandLine cmd = getCommandLine(memberScraperCLI.getOptions(), args);
memberScraperCLI.execute(cmd);
shutdown(ctx);
}
}