diff --git a/paramecio/cromosoma/extrafields/urlfield.py b/paramecio/cromosoma/extrafields/urlfield.py new file mode 100644 index 0000000..c6caa49 --- /dev/null +++ b/paramecio/cromosoma/extrafields/urlfield.py @@ -0,0 +1,25 @@ +from paramecio.cromosoma.corefields import CharField +import re + +check_url = re.compile( + r'^(?:http|ftp)s?://' # http:// or https:// + r'(?:(?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\.)+(?:[A-Z]{2,6}\.?|[A-Z0-9-]{2,}\.?)|' #domain... + r'localhost|' #localhost... + r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})' # ...or ip + r'(?::\d+)?' # optional port + r'(?:/?|[/?]\S+)$', re.IGNORECASE) + +class UrlField(CharField): + + def check(self, value): + + self.error=False + self.txt_error='' + + if not check_url.match(value): + + self.error=True + value="" + self.txt_error='No valid URL format' + + return value diff --git a/paramecio/index.py b/paramecio/index.py index 46b702b..1767dbd 100644 --- a/paramecio/index.py +++ b/paramecio/index.py @@ -30,7 +30,7 @@ if config.yes_static==True: path=workdir+'/themes/'+config.theme+'/media/'+module - file_path=path+filename + file_path=path+'/'+filename if os.path.isfile(file_path): mimetype=guess_type(path+'/'+filename)