Advertisement
Guest User

Untitled

a guest
Jan 29th, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.64 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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement