Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import configuration.AntiSpamFilterConfiguration;
- import configuration.MailAccountConfiguration;
- import utils.FileUtils;
- import java.io.IOException;
- import java.util.Arrays;
- import java.util.List;
- import java.util.Scanner;
- import java.util.stream.Collectors;
- public class Main {
- private static final String WORDS_SPLITTER = ",";
- private static final String READ_USERNAME_COMMAND = "Mail account username: ";
- private static final String READ_PASSWORD_COMMAND = "Mail account password: ";
- private static final String READ_MAIL_SERVER_HOST_COMMAND = "Mail server host: ";
- public static void main(String[] args) throws IOException {
- initAntiSpamFilterConfiguration(args);
- initMailAccountConfiguration();
- AntiSpamThread antiSpamThread = new AntiSpamThread();
- antiSpamThread.start();
- }
- private static void initAntiSpamFilterConfiguration(String[] args) throws IOException {
- String blackListKeywordsSubjectFilePath = args[0];
- String blackListKeywordsBodyFilePath = args[1];
- String blackListAddressesFilePath = args[2];
- int maxFrequency = Integer.parseInt(args[3]);
- AntiSpamFilterConfiguration.INSTANCE.setBlackListKeywordsSubject(
- readWordListFromFile(blackListKeywordsSubjectFilePath));
- AntiSpamFilterConfiguration.INSTANCE.setBlackListKeywordsBody(
- readWordListFromFile(blackListKeywordsBodyFilePath)
- );
- AntiSpamFilterConfiguration.INSTANCE.setBlackListAddresses(
- readWordListFromFile(blackListAddressesFilePath)
- );
- AntiSpamFilterConfiguration.INSTANCE.setMaxMailsFromOneSenderPerMinute(maxFrequency);
- }
- private static List<String> readWordListFromFile(String filePath) throws IOException {
- return Arrays.asList(FileUtils.readFile(filePath)
- .split(WORDS_SPLITTER))
- .stream()
- .map(word -> word.toLowerCase())
- .collect(Collectors.toList());
- }
- private static void initMailAccountConfiguration() {
- Scanner scanner = new Scanner(System.in);
- System.out.println(READ_MAIL_SERVER_HOST_COMMAND);
- String host = scanner.nextLine();
- System.out.println(READ_USERNAME_COMMAND);
- String username = scanner.nextLine();
- System.out.println(READ_PASSWORD_COMMAND);
- String password = scanner.nextLine();
- MailAccountConfiguration.INSTANCE.setUsername(username);
- MailAccountConfiguration.INSTANCE.setPassword(password);
- MailAccountConfiguration.INSTANCE.setMailServerHost(host);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement