zulip/zerver/lib/url_preview/parsers/open_graph.py

14 lines
432 B
Python

import re
from typing import Dict
from .base import BaseParser
class OpenGraphParser(BaseParser):
def extract_data(self) -> Dict[str, str]:
meta = self._soup.findAll('meta')
content = {}
for tag in meta:
if tag.has_attr('property') and 'og:' in tag['property'] and tag.has_attr('content'):
content[re.sub('og:', '', tag['property'])] = tag['content']
return content