Override send_message to ensure URLs point to gateway endpoint with site parameter.
(self, message)
| 34 | |
| 35 | |
| 36 | async def send_message(self, message): |
| 37 | """Override send_message to ensure URLs point to gateway endpoint with site parameter.""" |
| 38 | # Check if message contains results with URLs |
| 39 | if isinstance(message, dict): |
| 40 | # Handle messages with 'content' field (results) |
| 41 | if 'content' in message and isinstance(message['content'], list): |
| 42 | for result in message['content']: |
| 43 | if 'url' in result: |
| 44 | url = result['url'] |
| 45 | # If URL doesn't start with http:// or https://, convert to gateway URL |
| 46 | if not url.startswith(('http://', 'https://')): |
| 47 | site_type = result.get('@type', '') |
| 48 | result['url'] = build_nlweb_gateway_url(url, self.query, site_type) |
| 49 | logger.debug(f"Modified URL from '{url}' to '{result['url']}'") |
| 50 | |
| 51 | # Handle single result messages |
| 52 | elif 'url' in message: |
| 53 | url = message['url'] |
| 54 | if not url.startswith(('http://', 'https://')): |
| 55 | site_type = message.get('@type', '') |
| 56 | message['url'] = build_nlweb_gateway_url(url, self.query, site_type) |
| 57 | logger.debug(f"Modified URL from '{url}' to '{message['url']}'") |
| 58 | |
| 59 | # Call parent class's send_message with modified message |
| 60 | await super().send_message(message) |
| 61 | |
| 62 | |
| 63 | async def whoQueryRewrite(self): |
no test coverage detected