import re

class CurrencyReplaceMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        response = self.get_response(request)

        # Only process text-based responses (HTML)
        if "text/html" in response.get('Content-Type', ''):
            response.content = re.sub(
                rb'\b(USD|usd|\$)\b', 
                b'\xe2\x82\xb9',  # This is the UTF-8 encoding for ₹
                response.content
            )

        return response
