version 0.2.8, Namecoin domains using internal resolver site, --disable_zeromq option to skip backward compatiblity layer and save some memory, connectionserver firstchar error fixes, missing unpacker crash fix, sitemanager class to allow extensions, add loaded plugin list to websocket api, faster content publishing, mark updating file as bad, remove coppersurfer tracker add eddie4, internal server error with error displaying, allow site domains in UiRequest, better progress bar, wait for siteinfo before before using localstorage, csslater hide only if opacity is 0
2015-03-30 23:44:29 +02:00
|
|
|
import re
|
|
|
|
from Plugin import PluginManager
|
|
|
|
|
|
|
|
@PluginManager.registerTo("UiRequest")
|
|
|
|
class UiRequestPlugin(object):
|
|
|
|
def __init__(self, server = None):
|
|
|
|
from Site import SiteManager
|
|
|
|
self.site_manager = SiteManager.site_manager
|
|
|
|
super(UiRequestPlugin, self).__init__(server)
|
|
|
|
|
|
|
|
|
|
|
|
# Media request
|
|
|
|
def actionSiteMedia(self, path):
|
2019-01-06 15:15:47 +01:00
|
|
|
match = re.match(r"/media/(?P<address>[A-Za-z0-9-]+\.[A-Za-z0-9\.-]+)(?P<inner_path>/.*|$)", path)
|
version 0.2.8, Namecoin domains using internal resolver site, --disable_zeromq option to skip backward compatiblity layer and save some memory, connectionserver firstchar error fixes, missing unpacker crash fix, sitemanager class to allow extensions, add loaded plugin list to websocket api, faster content publishing, mark updating file as bad, remove coppersurfer tracker add eddie4, internal server error with error displaying, allow site domains in UiRequest, better progress bar, wait for siteinfo before before using localstorage, csslater hide only if opacity is 0
2015-03-30 23:44:29 +02:00
|
|
|
if match: # Its a valid domain, resolve first
|
|
|
|
domain = match.group("address")
|
|
|
|
address = self.site_manager.resolveDomain(domain)
|
|
|
|
if address:
|
|
|
|
path = "/media/"+address+match.group("inner_path")
|
|
|
|
return super(UiRequestPlugin, self).actionSiteMedia(path) # Get the wrapper frame output
|
|
|
|
|
|
|
|
|
|
|
|
# Is mediarequest allowed from that referer
|
|
|
|
def isMediaRequestAllowed(self, site_address, referer):
|
|
|
|
referer_path = re.sub("http[s]{0,1}://.*?/", "/", referer).replace("/media", "") # Remove site address
|
2019-01-06 15:15:47 +01:00
|
|
|
referer_site_address = re.match(r"/(?P<address>[A-Za-z0-9\.-]+)(?P<inner_path>/.*|$)", referer_path).group("address")
|
version 0.2.8, Namecoin domains using internal resolver site, --disable_zeromq option to skip backward compatiblity layer and save some memory, connectionserver firstchar error fixes, missing unpacker crash fix, sitemanager class to allow extensions, add loaded plugin list to websocket api, faster content publishing, mark updating file as bad, remove coppersurfer tracker add eddie4, internal server error with error displaying, allow site domains in UiRequest, better progress bar, wait for siteinfo before before using localstorage, csslater hide only if opacity is 0
2015-03-30 23:44:29 +02:00
|
|
|
|
|
|
|
if referer_site_address == site_address: # Referer site address as simple address
|
|
|
|
return True
|
|
|
|
elif self.site_manager.resolveDomain(referer_site_address) == site_address: # Referer site address as dns
|
|
|
|
return True
|
|
|
|
else: # Invalid referer
|
|
|
|
return False
|
|
|
|
|