Guest User

Main

a guest
Jan 29th, 2019
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.66 KB | None | 0 0
  1. import configuration.AntiSpamFilterConfiguration;
  2. import configuration.MailAccountConfiguration;
  3. import utils.FileUtils;
  4.  
  5. import java.io.IOException;
  6. import java.util.Arrays;
  7. import java.util.List;
  8. import java.util.Scanner;
  9. import java.util.stream.Collectors;
  10.  
  11. public class Main {
  12.  
  13.     private static final String WORDS_SPLITTER = ",";
  14.     private static final String READ_USERNAME_COMMAND = "Mail account username: ";
  15.     private static final String READ_PASSWORD_COMMAND = "Mail account password: ";
  16.     private static final String READ_MAIL_SERVER_HOST_COMMAND = "Mail server host: ";
  17.  
  18.     public static void main(String[] args) throws IOException {
  19.         initAntiSpamFilterConfiguration(args);
  20.         initMailAccountConfiguration();
  21.  
  22.         AntiSpamThread antiSpamThread = new AntiSpamThread();
  23.         antiSpamThread.start();
  24.     }
  25.  
  26.     private static void initAntiSpamFilterConfiguration(String[] args) throws IOException {
  27.  
  28.         String blackListKeywordsSubjectFilePath = args[0];
  29.         String blackListKeywordsBodyFilePath = args[1];
  30.         String blackListAddressesFilePath = args[2];
  31.         int maxFrequency = Integer.parseInt(args[3]);
  32.  
  33.         AntiSpamFilterConfiguration.INSTANCE.setBlackListKeywordsSubject(
  34.                 readWordListFromFile(blackListKeywordsSubjectFilePath));
  35.  
  36.         AntiSpamFilterConfiguration.INSTANCE.setBlackListKeywordsBody(
  37.                 readWordListFromFile(blackListKeywordsBodyFilePath)
  38.         );
  39.  
  40.         AntiSpamFilterConfiguration.INSTANCE.setBlackListAddresses(
  41.                 readWordListFromFile(blackListAddressesFilePath)
  42.         );
  43.  
  44.         AntiSpamFilterConfiguration.INSTANCE.setMaxMailsFromOneSenderPerMinute(maxFrequency);
  45.     }
  46.  
  47.     private static List<String> readWordListFromFile(String filePath) throws IOException {
  48.         return Arrays.asList(FileUtils.readFile(filePath)
  49.                 .split(WORDS_SPLITTER))
  50.                 .stream()
  51.                 .map(word -> word.toLowerCase())
  52.                 .collect(Collectors.toList());
  53.     }
  54.  
  55.     private static void initMailAccountConfiguration() {
  56.         Scanner scanner = new Scanner(System.in);
  57.  
  58.         System.out.println(READ_MAIL_SERVER_HOST_COMMAND);
  59.         String host = scanner.nextLine();
  60.  
  61.         System.out.println(READ_USERNAME_COMMAND);
  62.         String username = scanner.nextLine();
  63.  
  64.         System.out.println(READ_PASSWORD_COMMAND);
  65.         String password = scanner.nextLine();
  66.  
  67.         MailAccountConfiguration.INSTANCE.setUsername(username);
  68.         MailAccountConfiguration.INSTANCE.setPassword(password);
  69.         MailAccountConfiguration.INSTANCE.setMailServerHost(host);
  70.     }
  71.  
  72. }
Add Comment
Please, Sign In to add comment