Skip to content
GitLab
Explore
Projects
Groups
Snippets
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Memri
plugins
Link Reader
Commits
200605c2
Commit
200605c2
authored
1 year ago
by
Vanja Matija
Browse files
Options
Download
Email Patches
Plain Diff
Update README.md
parent
7b1bd11c
Pipeline
#14267
passed with stage
in 36 seconds
Changes
4
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
README.md
+11
-1
README.md
link_reader/data/schema.py
+5
-5
link_reader/data/schema.py
link_reader/plugin.py
+12
-10
link_reader/plugin.py
tests/test_link_reader.py
+7
-6
tests/test_link_reader.py
with
35 additions
and
22 deletions
+35
-22
README.md
+
11
-
1
View file @
200605c2
# link-reader
This Plugin will read all Link schema record in the pod and parse this link in to LinkPreview
LinkPreview contains :
-title
-description
-force_title
-site_name
-image
-absolute_image
# Install
...
...
@@ -27,4 +37,4 @@ To run the plugin:
```
simulate_run_plugin_from_frontend --metadata "metadata.json"
```
\ No newline at end of file
```
This diff is collapsed.
Click to expand it.
link_reader/data/schema.py
+
5
-
5
View file @
200605c2
...
...
@@ -7,12 +7,12 @@ from pymemri.data.schema import Item, Message, Photo, Edge
# pass
class
Link
Collector
(
Item
):
class
Link
(
Item
):
link
:
Optional
[
str
]
=
None
message
:
List
[
Message
]
=
None
class
Link
Reader
(
Item
):
class
Link
Preview
(
Item
):
title
:
Optional
[
str
]
=
None
description
:
Optional
[
str
]
=
None
force_title
:
Optional
[
str
]
=
None
...
...
@@ -20,8 +20,8 @@ class LinkReader(Item):
image
:
List
[
Photo
]
=
None
absolute_image
:
List
[
Photo
]
=
None
link
_collector
:
List
[
Link
Collector
]
=
None
link
:
List
[
Link
]
=
None
class
Link
Collector
(
LinkCollector
):
link_re
ader
:
List
[
Link
Reader
]
=
None
class
Link
(
Link
):
link_
p
re
view
:
List
[
Link
Preview
]
=
None
This diff is collapsed.
Click to expand it.
link_reader/plugin.py
+
12
-
10
View file @
200605c2
from
loguru
import
logger
from
pymemri.plugin.pluginbase
import
PluginBase
from
linkpreview
import
link_preview
from
link_reader.data.schema
import
Link
Collector
,
LinkReader
as
LinkReaderItem
,
Photo
,
Edge
from
link_reader.data.schema
import
Link
,
LinkPreview
,
Photo
,
Edge
import
requests
...
...
@@ -13,11 +13,10 @@ class LinkReader(PluginBase):
super
().
__init__
(
**
kwargs
)
def
add_to_schema
(
self
):
return
self
.
client
.
add_to_schema
(
Link
Collector
,
LinkReaderItem
,
Photo
)
return
self
.
client
.
add_to_schema
(
Link
,
LinkPreview
,
Photo
)
def
load_link_collector
(
self
):
result
=
{}
search_filter
=
{
"type"
:
"LinkCollector"
}
search_filter
=
{
"type"
:
"Link"
}
for
batch
in
self
.
client
.
search_paginate
(
search_filter
,
100
):
for
item
in
batch
:
try
:
...
...
@@ -30,16 +29,19 @@ class LinkReader(PluginBase):
files
=
[]
creates
=
[]
preview
=
link_preview
(
item
.
link
)
if
not
item
.
link_re
ader
:
link_re
ader
_item
=
Link
ReaderItem
(
if
not
item
.
link_
p
re
view
:
link_
p
re
view
_item
=
Link
Preview
(
title
=
preview
.
title
,
description
=
preview
.
description
,
force_title
=
preview
.
force_title
,
site_name
=
preview
.
site_name
,
)
creates
.
append
(
link_re
ader
_item
)
creates
.
append
(
link_
p
re
view
_item
)
edges
.
extend
(
[
link_reader_item
,
item
,
"link_collector"
,
item
,
link_reader_item
,
"link_reader"
]
[
Edge
(
link_preview_item
,
item
,
"link"
),
Edge
(
item
,
link_preview_item
,
"link_preview"
)
]
)
try
:
image
=
requests
.
get
(
preview
.
image
)
...
...
@@ -49,7 +51,7 @@ class LinkReader(PluginBase):
edges
.
extend
(
[
Edge
(
img
,
img
.
file
[
0
],
"file"
),
Edge
(
link_re
ader
_item
,
img
,
"image"
),
Edge
(
link_
p
re
view
_item
,
img
,
"image"
),
]
)
files
.
append
(
img
.
data
)
...
...
@@ -64,7 +66,7 @@ class LinkReader(PluginBase):
edges
.
extend
(
[
Edge
(
absolute_img
,
absolute_img
.
file
[
0
],
"file"
),
Edge
(
link_re
ader
_item
,
absolute_img
,
"absolute_image"
),
Edge
(
link_
p
re
view
_item
,
absolute_img
,
"absolute_image"
),
]
)
files
.
append
(
absolute_img
.
data
)
...
...
This diff is collapsed.
Click to expand it.
tests/test_link_reader.py
+
7
-
6
View file @
200605c2
...
...
@@ -2,7 +2,7 @@ from unittest import TestCase
from
pymemri
import
PodClient
from
link_reader.data.schema
import
Link
Reader
as
LinkReaderItem
,
Photo
,
Edge
from
link_reader.data.schema
import
Link
Preview
,
Photo
,
Edge
,
Link
from
link_reader.plugin
import
LinkReader
from
tests.loader
import
load_mock_data
from
linkpreview
import
link_preview
...
...
@@ -13,14 +13,15 @@ class LinkReaderTest(TestCase):
plugin
=
LinkReader
(
client
=
client
)
def
test_link_reader
(
self
):
link_collector
=
load_mock_data
(
"link_collector"
)
for
link
in
link_collector
:
url
=
link
[
"link"
]
link_collectors
=
load_mock_data
(
"link_collector"
)
for
link
in
link_collectors
:
edges
=
[]
files
=
[]
creates
=
[]
preview
=
link_preview
(
url
)
link_reader_item
=
LinkReaderItem
(
link_item
=
Link
(
link
=
link
[
"link"
])
self
.
plugin
.
client
.
create
(
link_item
)
preview
=
link_preview
(
link
[
"link"
])
link_reader_item
=
LinkPreview
(
title
=
preview
.
title
,
description
=
preview
.
description
,
force_title
=
preview
.
force_title
,
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment
Menu
Explore
Projects
Groups
Snippets