[feat] plugin Self Information: improve keyword matching
This change does the following things: - the `ip` keyword is now case-insensitive - if the query includes `my ip` it will now also match In order to avoid too many false matches, the `ip` keyword alone matches only if it's the _only_ word, but the inclusion of `my` loosens that to be inclusive of users type a phrase (eg, "what is my ip", "tell me my ip", "my IP address", etc). Better answer context Previously this plugin simply dumped your IP or user-agent string as an answer. This tiny change just adds some text to contextualize those answers (eg, "Your IP is: 1.2.3.4" instead of just "1.2.3.4").
This commit is contained in:
		
							parent
							
								
									13eec44b65
								
							
						
					
					
						commit
						efd69c4ca9
					
				| @ -13,17 +13,20 @@ preference_section = 'query' | |||||||
| query_keywords = ['user-agent'] | query_keywords = ['user-agent'] | ||||||
| query_examples = '' | query_examples = '' | ||||||
| 
 | 
 | ||||||
|  | # "ip" or "my ip" regex | ||||||
|  | ip_regex = re.compile('^ip$|my ip', re.IGNORECASE) | ||||||
|  | 
 | ||||||
| # Self User Agent regex | # Self User Agent regex | ||||||
| p = re.compile('.*user[ -]agent.*', re.IGNORECASE) | ua_regex = re.compile('.*user[ -]agent.*', re.IGNORECASE) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def post_search(request, search): | def post_search(request, search): | ||||||
|     if search.search_query.pageno > 1: |     if search.search_query.pageno > 1: | ||||||
|         return True |         return True | ||||||
|     if search.search_query.query == 'ip': |     if ip_regex.search(search.search_query.query): | ||||||
|         ip = get_real_ip(request) |         ip = get_real_ip(request) | ||||||
|         search.result_container.answers['ip'] = {'answer': ip} |         search.result_container.answers['ip'] = {'answer': gettext('Your IP is: ') + ip} | ||||||
|     elif p.match(search.search_query.query): |     elif ua_regex.match(search.search_query.query): | ||||||
|         ua = request.user_agent |         ua = request.user_agent | ||||||
|         search.result_container.answers['user-agent'] = {'answer': ua} |         search.result_container.answers['user-agent'] = {'answer': gettext('Your user-agent is: ') + ua} | ||||||
|     return True |     return True | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user