@@ -111,22 +111,29 @@ from workers import WorkerEntrypoint
111111from pyodide.ffi import create_proxy
112112from js import HTMLRewriter, fetch
113113
114+
115+ class AttributeRewriter :
116+ old_url = " developer.mozilla.org"
117+ new_url = " mynewdomain.com"
118+
119+ def __init__ (self , attr_name ):
120+ self .attr_name = attr_name
121+
122+ def element (self , element ):
123+ attr = element.getAttribute(self .attr_name)
124+ if attr:
125+ element.setAttribute(
126+ self .attr_name, attr.replace(self .old_url, self .new_url)
127+ )
128+
129+
130+ href = create_proxy(AttributeRewriter(" href" ))
131+ src = create_proxy(AttributeRewriter(" src" ))
132+ rewriter = HTMLRewriter.new().on(" a" , href).on(" img" , src)
133+
134+
114135class Default (WorkerEntrypoint ):
115136 async def fetch (self , request ):
116- old_url = " developer.mozilla.org"
117- new_url = " mynewdomain.com"
118-
119- class AttributeRewriter :
120- def __init__ (self , attr_name ):
121- self .attr_name = attr_name
122- def element (self , element ):
123- attr = element.getAttribute(self .attr_name)
124- if attr:
125- element.setAttribute(self .attr_name, attr.replace(old_url, new_url))
126-
127- href = create_proxy(AttributeRewriter(" href" ))
128- src = create_proxy(AttributeRewriter(" src" ))
129- rewriter = HTMLRewriter.new().on(" a" , href).on(" img" , src)
130137 res = await fetch(request)
131138 content_type = res.headers[" Content-Type" ]
132139
0 commit comments