# -*- coding: utf-8 -*- ''' Genesis Add-on Copyright (C) 2015 lambda -Mofidied by The Crew -Copyright (C) 2019 The Crew This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . ''' import re import unicodedata def get(title): if title is None: return try: title = title.encode('utf-8') except: pass title = str(title) title = re.sub('&#(\d);', '', title) title = re.sub('(&#[0-9]+)([^;^0-9]+)', '\\1;\\2', title) title = title.replace('"', '\"').replace('&', '&') title = re.sub('\n|([[].+?[]])|([(].+?[)])|\s(vs|v[.])\s|(:|;|-|"|,|\'|\_|\.|\?)|\s', '', title) return title.lower() def get_title(title): if title is None: return try: title = title.encode('utf-8') except: pass title = str(title) title = re.sub('&#(\d);', '', title) title = re.sub('(&#[0-9]+)([^;^0-9]+)', '\\1;\\2', title) title = title.replace('"', '\"').replace('&', '&') title = re.sub('\n|([[].+?[]])|([(].+?[)])|\s(vs|v[.])\s|(:|;|-|"|,|\'|\_|\.|\?)|\s', '', title) return title.lower() def geturl(title): if title is None: return title = title.lower() title = title.translate(None, ':*?"\'\.<>|&!,') title = title.replace('/', '-') title = title.replace(' ', '-') title = title.replace('--', '-') return title def get_url(title): if title is None: return title = title.replace(' ', '%20') return title def get_gan_url(title): if title is None: return title = title.lower() title = title.replace('-','+') title = title.replace(' + ', '+-+') title = title.replace(' ', '%20') return title def get_simple(title): if title is None: return title = title.lower() title = re.sub('(\d{4})', '', title) title = re.sub('&#(\d+);', '', title) title = re.sub('(&#[0-9]+)([^;^0-9]+)', '\\1;\\2', title) title = title.replace('"', '\"').replace('&', '&') title = re.sub('\n|\(|\)|\[|\]|\{|\}|\s(vs|v[.])\s|(:|;|-|–|"|,|\'|\_|\.|\?)|\s', '', title).lower() title = re.sub(r'<.*?>', '', title, count=0) return title def getsearch(title): if title is None: return title = title.lower() title = re.sub('&#(\d+);', '', title) title = re.sub('(&#[0-9]+)([^;^0-9]+)', '\\1;\\2', title) title = title.replace('"', '\"').replace('&', '&') title = re.sub('\\\|/|-|–|:|;|\*|\?|"|\'|<|>|\|', '', title).lower() return title def query(title): if title is None: return title = title.replace('\'', '').rsplit(':', 1)[0].rsplit(' -', 1)[0].replace('-', ' ') return title def get_query(title): if title is None: return title = title.replace(' ', '.').replace(':', '').replace('.-.', '.').replace('\'', '') return title def normalize(title): try: try: return title.decode('ascii').encode("utf-8") except: pass return str(''.join(c for c in unicodedata.normalize('NFKD', unicode(title.decode('utf-8'))) if unicodedata.category(c) != 'Mn')) except: return title