root/platform/tdiary/filter/spamlookup.rb @ 5704

Revision 5704, 0.7 kB (checked in by drry, 5 years ago)

platform/tdiary/filter/spamlookup.rb: more robust URL.

Line 
1#
2# spamlookup.rb: included TDiary::Filter::SpamlookupFilter class
3#
4
5require 'resolv'
6require 'uri'
7
8module TDiary
9  module Filter
10    class SpamlookupFilter < Filter
11      def black_domain?( domain )
12        begin
13          Resolv.getaddress( "#{domain}.rbl.bulkfeeds.jp" )
14          return true
15        rescue
16        end
17        false
18      end
19
20      def black_url?( body )
21        URI.extract( body, %w[http] ) do |url|
22          domain = URI.parse( url ).host.sub( /\.$/, '' )
23          return true if black_domain?( domain )
24        end
25        false
26      end
27
28      def comment_filter( diary, comment )
29        !black_url?( comment.body )
30      end
31
32      def referer_filter( referer )
33        !black_url?( referer )
34      end
35    end
36  end
37end
Note: See TracBrowser for help on using the browser.