Exemplo n.º 1
0
 def render(self):
     request = self.request
     if not self.context.full_functionality:
         request.response.setStatus(404)
         return u''
     ip_address = ipaddress_from_request(request)
     country = request_country(request)
     mirrors = getUtility(IDistributionMirrorSet).getBestMirrorsForCountry(
         country, MirrorContent.ARCHIVE)
     body = "\n".join(mirror.base_url for mirror in mirrors)
     request.response.setHeader('content-type', 'text/plain;charset=utf-8')
     if country is None:
         country_name = 'Unknown'
     else:
         country_name = country.name
     request.response.setHeader('X-Generated-For-Country', country_name)
     request.response.setHeader('X-Generated-For-IP', ip_address)
     # XXX: Guilherme Salgado 2008-01-09 bug=173729: These are here only
     # for debugging.
     request.response.setHeader(
         'X-REQUEST-HTTP_X_FORWARDED_FOR',
         request.get('HTTP_X_FORWARDED_FOR'))
     request.response.setHeader(
         'X-REQUEST-REMOTE_ADDR', request.get('REMOTE_ADDR'))
     return body.encode('utf-8')
Exemplo n.º 2
0
 def __init__(self, request):
     self.request = request
     ip_address = ipaddress_from_request(self.request)
     if ip_address is None:
         # This happens during page testing, when the REMOTE_ADDR is not
         # set by Zope.
         ip_address = '127.0.0.1'
     ip_address = ensure_address_is_not_private(ip_address)
     self.ip_address = ip_address
     self.geoip_record = getUtility(IGeoIP).getRecordByAddress(
         self.ip_address)
Exemplo n.º 3
0
 def __init__(self, request):
     self.request = request
     ip_address = ipaddress_from_request(self.request)
     if ip_address is None:
         # This happens during page testing, when the REMOTE_ADDR is not
         # set by Zope.
         ip_address = '127.0.0.1'
     ip_address = ensure_address_is_not_private(ip_address)
     self.ip_address = ip_address
     self.geoip_record = getUtility(IGeoIP).getRecordByAddress(
         self.ip_address)
Exemplo n.º 4
0
    def getLocalLanguages(self):
        """See the IRequestLocationLanguages interface"""
        ip_addr = ipaddress_from_request(self.request)
        if ip_addr is None:
            # this happens during page testing, when the REMOTE_ADDR is not
            # set by Zope
            ip_addr = '127.0.0.1'
        gi = getUtility(IGeoIP)
        country = gi.getCountryByAddr(ip_addr)
        if country in [None, 'A0', 'A1', 'A2']:
            return []

        languages = [
            language for language in country.languages if language.visible]
        return sorted(languages, key=lambda x: x.englishname)
Exemplo n.º 5
0
    def getLocalLanguages(self):
        """See the IRequestLocationLanguages interface"""
        ip_addr = ipaddress_from_request(self.request)
        if ip_addr is None:
            # this happens during page testing, when the REMOTE_ADDR is not
            # set by Zope
            ip_addr = '127.0.0.1'
        gi = getUtility(IGeoIP)
        country = gi.getCountryByAddr(ip_addr)
        if country in [None, 'A0', 'A1', 'A2']:
            return []

        languages = [
            language for language in country.languages if language.visible]
        return sorted(languages, key=lambda x: x.englishname)
Exemplo n.º 6
0
 def render(self):
     request = self.request
     if not self.context.full_functionality:
         request.response.setStatus(404)
         return u""
     ip_address = ipaddress_from_request(request)
     country = request_country(request)
     mirrors = getUtility(IDistributionMirrorSet).getBestMirrorsForCountry(country, MirrorContent.ARCHIVE)
     body = "\n".join(mirror.base_url for mirror in mirrors)
     request.response.setHeader("content-type", "text/plain;charset=utf-8")
     if country is None:
         country_name = "Unknown"
     else:
         country_name = country.name
     request.response.setHeader("X-Generated-For-Country", country_name)
     request.response.setHeader("X-Generated-For-IP", ip_address)
     # XXX: Guilherme Salgado 2008-01-09 bug=173729: These are here only
     # for debugging.
     request.response.setHeader("X-REQUEST-HTTP_X_FORWARDED_FOR", request.get("HTTP_X_FORWARDED_FOR"))
     request.response.setHeader("X-REQUEST-REMOTE_ADDR", request.get("REMOTE_ADDR"))
     return body.encode("utf-8")