def METHOD_NAME(self, post_id):
    url = "{}/index.php?r=posts/view&id={}".format(self.root, post_id)
    page = self.request(url).text
    extr = text.extract_from(page)
    post = {
        "id"      : post_id,
        "tags"    : text.unescape(extr(
            'name="keywords" content="', '"').rstrip(", ")),
        "uploader": text.extract(extr('Added by: ', '</li>'), ">", "<")[0],
        "score"   : text.extract(extr('Score: ', '> - <'), ">", "<")[0],
        "width"   : extr('Size: ', 'w'),
        "height"  : extr(' x ', 'h'),
        "file_url": extr(' src="', '"'),
    }
    post["md5"] = post["file_url"].rpartition("/")[2].partition(".")[0]
    tags = collections.defaultdict(list)
    for tag_type, tag_name in self._find_tags(page):
        tags[tag_type].append(text.unquote(tag_name))
    for key, value in tags.items():
        post["tags_" + key] = " ".join(value)
    return post