|  | @@ -0,0 +1,36 @@
 | 
	
		
			
			|  | 1 | +'''
 | 
	
		
			
			|  | 2 | +searx is free software: you can redistribute it and/or modify
 | 
	
		
			
			|  | 3 | +it under the terms of the GNU Affero General Public License as published by
 | 
	
		
			
			|  | 4 | +the Free Software Foundation, either version 3 of the License, or
 | 
	
		
			
			|  | 5 | +(at your option) any later version.
 | 
	
		
			
			|  | 6 | +
 | 
	
		
			
			|  | 7 | +searx is distributed in the hope that it will be useful,
 | 
	
		
			
			|  | 8 | +but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
	
		
			
			|  | 9 | +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
	
		
			
			|  | 10 | +GNU Affero General Public License for more details.
 | 
	
		
			
			|  | 11 | +
 | 
	
		
			
			|  | 12 | +You should have received a copy of the GNU Affero General Public License
 | 
	
		
			
			|  | 13 | +along with searx. If not, see < http://www.gnu.org/licenses/ >.
 | 
	
		
			
			|  | 14 | +
 | 
	
		
			
			|  | 15 | +(C) 2015 by Adam Tauber, <asciimoo@gmail.com>
 | 
	
		
			
			|  | 16 | +'''
 | 
	
		
			
			|  | 17 | +from flask.ext.babel import gettext
 | 
	
		
			
			|  | 18 | +import re
 | 
	
		
			
			|  | 19 | +name = "Self User Agent"
 | 
	
		
			
			|  | 20 | +description = gettext('Display your own User Agent if the query expression contains "user agent" or "user-agent"')
 | 
	
		
			
			|  | 21 | +default_on = True
 | 
	
		
			
			|  | 22 | +
 | 
	
		
			
			|  | 23 | +
 | 
	
		
			
			|  | 24 | +# User Agent query regex
 | 
	
		
			
			|  | 25 | +p = re.compile('user[ -]agent', re.IGNORECASE)
 | 
	
		
			
			|  | 26 | +
 | 
	
		
			
			|  | 27 | +
 | 
	
		
			
			|  | 28 | +# attach callback to the post search hook
 | 
	
		
			
			|  | 29 | +#  request: flask request object
 | 
	
		
			
			|  | 30 | +#  ctx: the whole local context of the pre search hook
 | 
	
		
			
			|  | 31 | +def post_search(request, ctx):
 | 
	
		
			
			|  | 32 | +    if p.match(ctx['search'].query):
 | 
	
		
			
			|  | 33 | +        ua = request.user_agent
 | 
	
		
			
			|  | 34 | +        ctx['search'].answers.clear()
 | 
	
		
			
			|  | 35 | +        ctx['search'].answers.add(ua)
 | 
	
		
			
			|  | 36 | +    return True
 |