Перезапись сообщения @param rewrite @param message @return
(Rewrite rewrite, FtnMessage message)
| 772 | * @return |
| 773 | */ |
| 774 | public static void rewrite(Rewrite rewrite, FtnMessage message) { |
| 775 | String[] fields = new String[] { rewrite.getNew_from_addr(), |
| 776 | rewrite.getNew_to_addr(), rewrite.getNew_from_name(), |
| 777 | rewrite.getNew_to_name(), rewrite.getNew_subject() }; |
| 778 | for (int i = 0; i < 5; i++) { |
| 779 | if (fields[i] != null && !fields[i].equals("*")) { |
| 780 | switch (i) { |
| 781 | case 0: |
| 782 | FtnAddress nfa = new FtnAddress(fields[i]); |
| 783 | if (message.getMsgid() != null) { |
| 784 | Matcher msgid = Pattern.compile( |
| 785 | "^" + message.getFromAddr() + " (\\S+)$") |
| 786 | .matcher(message.getMsgid()); |
| 787 | if (msgid.find()) { |
| 788 | String msg = msgid.replaceFirst(nfa + " $1"); |
| 789 | message.setText(message.getText().replace( |
| 790 | message.getMsgid(), msg)); |
| 791 | message.setMsgid(msg); |
| 792 | |
| 793 | } |
| 794 | } // TODO : netmail msgid |
| 795 | Matcher origin = Pattern.compile( |
| 796 | "^ \\* Origin: (.*) \\(" + message.getFromAddr() |
| 797 | + "\\)$", Pattern.MULTILINE).matcher( |
| 798 | message.getText()); |
| 799 | if (origin.find()) { |
| 800 | message.setText(origin.replaceFirst(" * Origin: $1 (" |
| 801 | + nfa + ")")); |
| 802 | } |
| 803 | message.setFromAddr(nfa); |
| 804 | logger.l5("Rewrite fromAddr to " + fields[i]); |
| 805 | break; |
| 806 | case 1: |
| 807 | message.setToAddr(new FtnAddress(fields[i])); |
| 808 | logger.l5("Rewrite toAddr to " + fields[i]); |
| 809 | break; |
| 810 | case 2: |
| 811 | message.setFromName(fields[i]); |
| 812 | logger.l5("Rewrite fromAddr to " + fields[i]); |
| 813 | break; |
| 814 | case 3: |
| 815 | message.setToName(fields[i]); |
| 816 | logger.l5("Rewrite fromAddr to " + fields[i]); |
| 817 | break; |
| 818 | case 4: |
| 819 | message.setSubject(fields[i]); |
| 820 | logger.l5("Rewrite fromAddr to " + fields[i]); |
| 821 | break; |
| 822 | } |
| 823 | } |
| 824 | } |
| 825 | } |
| 826 | |
| 827 | /** |
| 828 | * Проверям сообщение на соответствие роботу |
no test coverage detected