forked from platypush/platypush
Replace relative links in converted markdown
This commit is contained in:
parent
1e1bf46f32
commit
2914a74b75
1 changed files with 11 additions and 0 deletions
|
@ -1,8 +1,10 @@
|
|||
import datetime
|
||||
import json
|
||||
import os
|
||||
import re
|
||||
import subprocess
|
||||
import tempfile
|
||||
from urllib.parse import urlparse
|
||||
|
||||
from platypush.plugins import action
|
||||
from platypush.plugins.http.request import Plugin
|
||||
|
@ -29,6 +31,12 @@ class HttpWebpagePlugin(Plugin):
|
|||
with subprocess.Popen(proc, stdout=subprocess.PIPE, stderr=None) as parser:
|
||||
return parser.communicate()[0].decode()
|
||||
|
||||
@staticmethod
|
||||
def _fix_relative_links(markdown: str, url: str) -> str:
|
||||
url = urlparse(url)
|
||||
base_url = f'{url.scheme}://{url.netloc}'
|
||||
return re.sub(r'(!?\[.+?])\((/.+?)\)', f'\1({base_url}\2)', markdown)
|
||||
|
||||
# noinspection PyShadowingBuiltins
|
||||
@action
|
||||
def simplify(self, url, type='html', html=None, outfile=None):
|
||||
|
@ -101,6 +109,9 @@ class HttpWebpagePlugin(Plugin):
|
|||
except Exception as e:
|
||||
raise RuntimeError('Could not parse JSON: {}. Response: {}'.format(str(e), response))
|
||||
|
||||
if type == 'markdown':
|
||||
self._fix_relative_links(response['content'], url)
|
||||
|
||||
self.logger.debug('Got response from Mercury API: {}'.format(response))
|
||||
title = response.get('title', '{} on {}'.format(
|
||||
'Published' if response.get('date_published') else 'Generated',
|
||||
|
|
Loading…
Reference in a new issue