Sha256: 8a1a81f008558fb1f78c3ec1a6736b24558a284f5447660fa8df1b9f222786a4

Contents?: true

Size: 1.42 KB

Versions: 3

Compression:

Stored size: 1.42 KB

Contents

# frozen_string_literal: true

module SignatureMatcher
  module_function

  # Envoyé depuis mon iPhone
  # Von meinem Mobilgerät gesendet
  # Diese Nachricht wurde von meinem Android-Mobiltelefon mit K-9 Mail gesendet.
  # Nik from mobile
  # From My Iphone 6
  # Sent via mobile
  # Sent with Airmail
  # Sent from Windows Mail
  # Sent from my TI-85
  # <<sent by galaxy>>
  # (sent from a phone)
  # (Sent from mobile device)
  # 從我的 iPhone 傳送
  SIGNATURE_REGEXES = [
    # Chinese
    /^[[:blank:]]*從我的 iPhone 傳送/i,
    # English
    /^[[:blank:]]*[[:word:]]+ from mobile/i,
    /^[[:blank:]]*[(<]*Sent (from|via|with|by) .+[)>]*/i,
    /^[[:blank:]]*From my .{1,20}/i,
    /^[[:blank:]]*Get Outlook for /i,
    # French
    /^[[:blank:]]*Envoyé depuis (mon|Yahoo Mail)/i,
    # German
    /^[[:blank:]]*Von meinem .+ gesendet/i,
    /^[[:blank:]]*Diese Nachricht wurde von .+ gesendet/i,
    # Italian
    /^[[:blank:]]*Inviato da /i,
    # Norwegian
    /^[[:blank:]]*Sendt fra min /i,
    # Portuguese
    /^[[:blank:]]*Enviado do meu /i,
    # Spanish
    /^[[:blank:]]*Enviado desde mi /i,
    # Dutch
    /^[[:blank:]]*Verzonden met /i,
    /^[[:blank:]]*Verstuurd vanaf mijn /i,
    # Swedish
    /^[[:blank:]]*från min /i,
  ].freeze

  def match?(line)
    # remove any markdown links
    stripped = line.gsub(/\[([^\]]+)\]\([^)]+\)/) { ::Regexp.last_match(1) }
    SIGNATURE_REGEXES.any? { |r| stripped =~ r }
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
runger_email_reply_trimmer-0.3.0 lib/runger_email_reply_trimmer/signature_matcher.rb
runger_email_reply_trimmer-0.2.2 lib/runger_email_reply_trimmer/signature_matcher.rb
runger_email_reply_trimmer-0.2.1 lib/runger_email_reply_trimmer/signature_matcher.rb