<commit_before>package Sisimai::ARF;
use feature ':5.10';
use strict;
use warnings;
use Sisimai::MTA;

# http://tools.ietf.org/html/rfc5965
# http://en.wikipedia.org/wiki/Feedback_loop_(email)
# http://en.wikipedia.org/wiki/Abuse_Reporting_Format
# begin
# Netease DMARC uses:    This is a spf/dkim authentication-failure report for an email message received from IP
# OpenDMARC 1.3.0 uses:  This is an authentication failure report for an email message received from IP
# Abusix ARF uses        this is an autogenerated email abuse complaint regarding your network.

my $RxARF0 = {
    'content-type' => qr/report-type=["]?feedback-report["]?/,
    'begin'  => qr{\A(?>
                     [Tt]his[ ]is[ ].+[ ]email[ ]abuse[ ]report
                    |[Tt]his[ ]is[ ](?:
                         an[ ]autogenerated[ ]email[ ]abuse[ ]complaint
                        |an?[ ].+[ ]report[ ]for
                        |a[ ].+[ ]authentication[ -]failure[ ]report[ ]for
                        )
                    )
                }x,
    'rfc822' => qr!\AContent-Type: (:?message/rfc822|text/rfc822-headers)!,
    'endof'  => qr/\A__END_OF_EMAIL_MESSAGE__\z/,
};

my $RxARF1 = {
    'content-type' => qr|multipart/mixed|,
    'from'         => qr{(?:
                         staff[@]hotmail[.]com\z
                        |complaints[@]email-abuse[.]amazonses[.]com\z
                        )
                      }x,
    'subject'      => qr/complaint[ ]about[ ]message[ ]from[ ]/,
};

sub version     { return '4.0.13' }
sub description { return 'Abuse Feedback Reporting Format' }
sub headerlist  { return [] }<commit_msg>Removed version() method from Sisimai::ARF [issue #87]<commit_after>package Sisimai::ARF;
use feature ':5.10';
use strict;
use warnings;
use Sisimai::MTA;

# http://tools.ietf.org/html/rfc5965
# http://en.wikipedia.org/wiki/Feedback_loop_(email)
# http://en.wikipedia.org/wiki/Abuse_Reporting_Format
# begin
# Netease DMARC uses:    This is a spf/dkim authentication-failure report for an email message received from IP
# OpenDMARC 1.3.0 uses:  This is an authentication failure report for an email message received from IP
# Abusix ARF uses        this is an autogenerated email abuse complaint regarding your network.

my $RxARF0 = {
    'content-type' => qr/report-type=["]?feedback-report["]?/,
    'begin'  => qr{\A(?>
                     [Tt]his[ ]is[ ].+[ ]email[ ]abuse[ ]report
                    |[Tt]his[ ]is[ ](?:
                         an[ ]autogenerated[ ]email[ ]abuse[ ]complaint
                        |an?[ ].+[ ]report[ ]for
                        |a[ ].+[ ]authentication[ -]failure[ ]report[ ]for
                        )
                    )
                }x,
    'rfc822' => qr!\AContent-Type: (:?message/rfc822|text/rfc822-headers)!,
    'endof'  => qr/\A__END_OF_EMAIL_MESSAGE__\z/,
};

my $RxARF1 = {
    'content-type' => qr|multipart/mixed|,
    'from'         => qr{(?:
                         staff[@]hotmail[.]com\z
                        |complaints[@]email-abuse[.]amazonses[.]com\z
                        )
                      }x,
    'subject'      => qr/complaint[ ]about[ ]message[ ]from[ ]/,
};

sub description { return 'Abuse Feedback Reporting Format' }
sub headerlist  { return [] }
{'fraction_non_alphanumeric': 0.15062633669416436, 'fraction_numerical': 0.01466544454628781, 'mean_word_length': 2.0399257195914577, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 19, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6156215', 'n_tokens_mistral': 1147, 'n_tokens_neox': 1076, 'n_words': 242}