def short_url_in_message(self, message): all_urls = get_urls(message) if len(all_urls) == 0: raise NoURLToShorten for long_url in all_urls: try: short_url = self.short_single_url(long_url) except URLAlreadyShort: short_url = long_url finally: message = message.replace(long_url, short_url) return message
def autoshort_url(self, message): service = self.config.read('Services', 'shorten-url') try: all_urls = get_urls(message) if len(all_urls) == 0: raise NoURLException # TODO: Validate already shorten URLs for url in all_urls: urlshorter = URL_SERVICES[service].do_service(url) message = message.replace(url, urlshorter.response) return Response(message) except Exception, exc: return self.__handle_exception(exc)
def get_entities(self, status): entities = { 'urls': [], 'hashtags': [], 'mentions': [], 'groups': [], } text = status['text'] for url in get_urls(text): entities['urls'].append(Entity(self.account_id, url, url, url)) for item in HASHTAG_PATTERN.findall(text): url = "%s/%s" % (self.hashtags_url, item[1:]) entities['hashtags'].append(Entity(self.account_id, url, item, item)) for item in MENTION_PATTERN.findall(text): entities['mentions'].append(Entity(self.account_id, item[1:], item, item)) return entities
def get_entities(self, status): entities = { 'urls': [], 'hashtags': [], 'mentions': [], 'groups': [], } text = status['text'] for url in get_urls(text): entities['urls'].append(Entity(self.account_id, url, url, url)) for item in HASHTAG_PATTERN.findall(text): url = "%s/%s" % (self.hashtags_url, item[1:]) entities['hashtags'].append( Entity(self.account_id, url, item, item)) for item in MENTION_PATTERN.findall(text): entities['mentions'].append( Entity(self.account_id, item[1:], item, item)) return entities
def __count_chars(self): message = self.text_edit.toPlainText() urls = [str(url) for url in get_urls(message) if len(url) > 23] for url in urls: message = message.replace(url, '0' * 23) return MAX_CHAR - len(message)