def add_base_uris(self, view): return url_factory.add_base_uris(self, view)
def post(self): if not self.authenticate(author=True): return op = self.get_argument('op', None) if op == 'favorite': self.favorite() return access_token, tumblr_info = self.get_tumblr_info() title = content_remote.strip_html(self.get_argument('title', '')) body = url_factory.add_base_uris(self, self.get_argument('view', '')) \ + '\n' \ + self.get_argument('url') post_args = {"type": "text", "title": title, "body": body} # TODO, refactor out w FB logic thumb = self.get_argument('thumb', '') picture = None normal_picture = None if thumb: if not thumb.startswith('http://'): thumb = url_factory.clean_filename(thumb) thumb = thumb[len(url_factory.resource_url(self)) + 1:] thumb = url_factory.resource_directory(self, thumb) picture = thumb basename = os.path.basename(thumb) dirname = os.path.dirname(thumb) if os.path.basename(dirname) == 'thumbs': parent_dir = os.path.dirname(dirname) original_dir = os.path.join(parent_dir, 'original') original_img = os.path.join(original_dir, basename) if os.path.exists(original_img): picture = original_img normal_path = os.path.join(parent_dir, basename) if os.path.exists(normal_path): normal_picture = normal_path normal_picture = normal_picture[len( self.application.settings["static_path"]) + 1:] normal_picture = self.static_url(normal_picture, include_host=True, include_sig=False) picture = picture[len(self.application.settings["static_path"]) + 1:] picture = self.static_url(picture, include_host=True, include_sig=False) else: picture = thumb video = re.compile(r'<iframe[^>]*(youtube|vimeo)[^>]*>.*?</iframe>', re.M | re.S).search(body) if picture and normal_picture and not video: post_args["source"] = picture post_args["link"] = self.get_argument('url') post_args["caption"] = re.compile(r'(<figure>.*?<img.*?src="' + normal_picture + r'".*?>.*?</figure>)', re.M | re.U | re.S).sub( '', body) post_args["type"] = "photo" if video: video = video.group(0) post_args["embed"] = video post_args["caption"] = body.replace(video, '') post_args["type"] = "video" section = self.get_argument('section', '') album = self.get_argument('album', '') tags = re.compile(r'#(\w+)(?![^<&]*(?:[>;]))', re.M | re.U).findall(body) post_args["tags"] = "" if tags: post_args["tags"] += ','.join(tags) if section: post_args["tags"] += "," + section if album: post_args["tags"] += "," + album self.tumblr_request( "http://api.tumblr.com/v2/blog/" + tumblr_info['primary_blog'] + "/post", self.status_update_result, access_token=access_token, post_args=post_args,)
def post(self): if not self.authenticate(author=True): return op = self.get_argument('op', None) if op == 'favorite': self.favorite() return access_token, tumblr_info = self.get_tumblr_info() title = content_remote.strip_html(self.get_argument('title', '')) body = url_factory.add_base_uris(self, self.get_argument('view', '')) \ + '\n' \ + self.get_argument('url') post_args = {"type": "text", "title": title, "body": body} # TODO, refactor out w FB logic thumb = self.get_argument('thumb', '') picture = None normal_picture = None if thumb: if not thumb.startswith('http://'): thumb = url_factory.clean_filename(thumb) thumb = thumb[len(url_factory.resource_url(self)) + 1:] thumb = url_factory.resource_directory(self, thumb) picture = thumb basename = os.path.basename(thumb) dirname = os.path.dirname(thumb) if os.path.basename(dirname) == 'thumbs': parent_dir = os.path.dirname(dirname) original_dir = os.path.join(parent_dir, 'original') original_img = os.path.join(original_dir, basename) if os.path.exists(original_img): picture = original_img normal_path = os.path.join(parent_dir, basename) if os.path.exists(normal_path): normal_picture = normal_path normal_picture = normal_picture[ len(self.application.settings["static_path"]) + 1:] normal_picture = self.static_url(normal_picture, include_host=True, include_sig=False) picture = picture[len(self.application.settings["static_path"] ) + 1:] picture = self.static_url(picture, include_host=True, include_sig=False) else: picture = thumb video = re.compile(r'<iframe[^>]*(youtube|vimeo)[^>]*>.*?</iframe>', re.M | re.S).search(body) if picture and normal_picture and not video: post_args["source"] = picture post_args["link"] = self.get_argument('url') post_args["caption"] = re.compile( r'(<figure>.*?<img.*?src="' + normal_picture + r'".*?>.*?</figure>)', re.M | re.U | re.S).sub('', body) post_args["type"] = "photo" if video: video = video.group(0) post_args["embed"] = video post_args["caption"] = body.replace(video, '') post_args["type"] = "video" section = self.get_argument('section', '') album = self.get_argument('album', '') tags = re.compile(r'#(\w+)(?![^<&]*(?:[>;]))', re.M | re.U).findall(body) post_args["tags"] = "" if tags: post_args["tags"] += ','.join(tags) if section: post_args["tags"] += "," + section if album: post_args["tags"] += "," + album self.tumblr_request( "http://api.tumblr.com/v2/blog/" + tumblr_info['primary_blog'] + "/post", self.status_update_result, access_token=access_token, post_args=post_args, )