|
@@ -15,6 +15,7 @@ from bottle import (
|
|
)
|
|
)
|
|
from psycopg import Cursor, connect
|
|
from psycopg import Cursor, connect
|
|
from psycopg.rows import TupleRow
|
|
from psycopg.rows import TupleRow
|
|
|
|
+from linkpreview import link_preview
|
|
|
|
|
|
from .validate import validate, validate_file, validate_parameter, validate_url
|
|
from .validate import validate, validate_file, validate_parameter, validate_url
|
|
from .hash_util import normalize_base32
|
|
from .hash_util import normalize_base32
|
|
@@ -219,7 +220,20 @@ def goto():
|
|
content=content,
|
|
content=content,
|
|
disabled=disabled
|
|
disabled=disabled
|
|
)
|
|
)
|
|
- return template('goto', form=form, link=link, disabled=disabled)
|
|
|
|
|
|
+ preview = dict()
|
|
|
|
+ if content:
|
|
|
|
+ page = link_preview(link, parser="lxml")
|
|
|
|
+ preview['title'] = page.title
|
|
|
|
+ preview['img'] = page.absolute_image
|
|
|
|
+ preview['domain'] = page.site_name
|
|
|
|
+
|
|
|
|
+ return template(
|
|
|
|
+ 'goto',
|
|
|
|
+ form=form,
|
|
|
|
+ link=link,
|
|
|
|
+ disabled=disabled,
|
|
|
|
+ preview=preview,
|
|
|
|
+ )
|
|
|
|
|
|
if request.method == 'POST':
|
|
if request.method == 'POST':
|
|
content = validate_parameter(request, 'url')
|
|
content = validate_parameter(request, 'url')
|