Class: Gluttonberg::Content::DespamilatorFilter::URLs
- Inherits:
-
Gluttonberg::Content::Despamilator::Filter
- Object
- Gluttonberg::Content::Despamilator::Filter
- Gluttonberg::Content::DespamilatorFilter::URLs
- Defined in:
- lib/gluttonberg/content/despamilator/filter/urls.rb
Instance Method Summary collapse
Instance Method Details
#description ⇒ Object
13 14 15 |
# File 'lib/gluttonberg/content/despamilator/filter/urls.rb', line 13 def description 'Detects each url in a string' end |
#name ⇒ Object
9 10 11 |
# File 'lib/gluttonberg/content/despamilator/filter/urls.rb', line 9 def name 'URLs' end |
#parse(subject) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/gluttonberg/content/despamilator/filter/urls.rb', line 17 def parse subject text = subject.text.downcase.gsub(/http:\/\/\d+\.\d+\.\d+\.\d+/, '') matches = text.count(/https?:\/\//) comment_number_of_urls_allowed = Gluttonberg::Setting.get_setting("comment_number_of_urls_allowed") score_for_one_url = 0.4 if !comment_number_of_urls_allowed.blank? && comment_number_of_urls_allowed.to_i > 0 comment_number_of_urls_allowed = comment_number_of_urls_allowed.to_i score_for_one_url = 1.0 / comment_number_of_urls_allowed.to_i end 1.upto(matches > 2 ? 2 : matches) do subject.register_match!({:score => score_for_one_url, :filter => self}) end comment_email_as_spam = Gluttonberg::Setting.get_setting("comment_email_as_spam") if comment_email_as_spam == "Yes" text_temp = text.strip extracted_urls = URI.extract(text_temp) subject.register_match!({ :score => 1.0, :filter => self }) if extracted_urls.length > 0 && extracted_urls[0] == text_temp end end |