weneedfeed 0.7.2 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -0
- data/Gemfile.lock +1 -1
- data/README.md +12 -3
- data/lib/weneedfeed/controllers/show_feed.rb +1 -0
- data/lib/weneedfeed/page.rb +6 -0
- data/lib/weneedfeed/page_schema.rb +1 -0
- data/lib/weneedfeed/schema.rb +1 -0
- data/lib/weneedfeed/scraping.rb +4 -0
- data/lib/weneedfeed/version.rb +1 -1
- data/templates/show_feed.xml.erb +2 -2
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a2634d6a72650518bf2845381116e208a65fbb9f067b6e19f58352bb46ecb5ba
|
4
|
+
data.tar.gz: 1ccc6647e1a02d34af10460b34d5cd594eb5a184cbe18e2244d45637a38d9d96
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 18d069fc8460e37e79b67869bd91f64d28f865d052c4464d6f169f811ad32c27698ccad3235f4b7f047160cd68341f56a576701758bb367d9766e9f8d46dc9c3
|
7
|
+
data.tar.gz: b4f5e74955365a5184b90ea2ce877b0f548e55da5a9eb55e1f92ad64e66f0426397fb441ccda7d4a678ec5c9acb2b4f782c0185fdbe511139b53087b0e6e0a05
|
data/CHANGELOG.md
CHANGED
@@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
7
7
|
|
8
8
|
## Unreleased
|
9
9
|
|
10
|
+
## 0.8.0 - 2020-11-25
|
11
|
+
|
12
|
+
### Added
|
13
|
+
|
14
|
+
- Add page description for writing channel description.
|
15
|
+
|
16
|
+
### Changed
|
17
|
+
|
18
|
+
- Change channel link content from feeds index URL to page URL.
|
19
|
+
|
10
20
|
## 0.7.2 - 2020-11-25
|
11
21
|
|
12
22
|
### Fixed
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -34,7 +34,8 @@ You need to write a schema file named with `weneedfeed.yml` to use this gem.
|
|
34
34
|
```yaml
|
35
35
|
pages:
|
36
36
|
- id: example1
|
37
|
-
title: Example
|
37
|
+
title: Example 1
|
38
|
+
description: Example feed with CSS Selector
|
38
39
|
url: http://example.com/1
|
39
40
|
item_selector: li
|
40
41
|
item_description_selector: p:nth-child(3)
|
@@ -42,7 +43,8 @@ pages:
|
|
42
43
|
item_time_selector: time
|
43
44
|
item_title_selector: p:nth-child(2)
|
44
45
|
- id: example2
|
45
|
-
title: Example
|
46
|
+
title: Example 2
|
47
|
+
description: Example feed with XPath
|
46
48
|
url: http://example.com/2
|
47
49
|
item_selector: //li
|
48
50
|
item_description_selector: .//p[3]
|
@@ -56,7 +58,7 @@ pages:
|
|
56
58
|
Feed ID.
|
57
59
|
|
58
60
|
- required
|
59
|
-
- Used for feed URL.
|
61
|
+
- Used for feed URL and `<link>` element in `<channel>` element.
|
60
62
|
|
61
63
|
### `title`
|
62
64
|
|
@@ -65,6 +67,13 @@ Feed title.
|
|
65
67
|
- required
|
66
68
|
- Used for RSS `<title>` element in `<channel>` element.
|
67
69
|
|
70
|
+
### `description`
|
71
|
+
|
72
|
+
Feed description.
|
73
|
+
|
74
|
+
- optional
|
75
|
+
- Used for RSS `<description>` element in `<channel>` element.
|
76
|
+
|
68
77
|
### `url`
|
69
78
|
|
70
79
|
HTML source URL.
|
@@ -11,6 +11,7 @@ module Weneedfeed
|
|
11
11
|
end
|
12
12
|
|
13
13
|
scraping = ::Weneedfeed::Scraping.new(
|
14
|
+
description: page_schema.description,
|
14
15
|
item_description_selector: page_schema.item_description_selector,
|
15
16
|
item_link_selector: page_schema.item_link_selector,
|
16
17
|
item_time_selector: page_schema.item_time_selector,
|
data/lib/weneedfeed/page.rb
CHANGED
@@ -2,12 +2,16 @@
|
|
2
2
|
|
3
3
|
module Weneedfeed
|
4
4
|
class Page
|
5
|
+
# @return [String, nil]
|
6
|
+
attr_reader :description
|
7
|
+
|
5
8
|
# @return [String]
|
6
9
|
attr_reader :title
|
7
10
|
|
8
11
|
# @return [String]
|
9
12
|
attr_reader :url
|
10
13
|
|
14
|
+
# @param [String, nil] description
|
11
15
|
# @param [String, nil] item_description_selector
|
12
16
|
# @param [String] item_link_selector
|
13
17
|
# @param [String, nil] item_time_selector
|
@@ -17,6 +21,7 @@ module Weneedfeed
|
|
17
21
|
# @param [String] title
|
18
22
|
# @param [String] url
|
19
23
|
def initialize(
|
24
|
+
description:,
|
20
25
|
item_description_selector:,
|
21
26
|
item_link_selector:,
|
22
27
|
item_time_selector:,
|
@@ -26,6 +31,7 @@ module Weneedfeed
|
|
26
31
|
title:,
|
27
32
|
url:
|
28
33
|
)
|
34
|
+
@description = description
|
29
35
|
@item_description_selector = item_description_selector
|
30
36
|
@item_link_selector = item_link_selector
|
31
37
|
@item_time_selector = item_time_selector
|
data/lib/weneedfeed/schema.rb
CHANGED
@@ -24,6 +24,7 @@ module Weneedfeed
|
|
24
24
|
def page_schemata
|
25
25
|
@raw['pages'].map do |hash|
|
26
26
|
::Weneedfeed::PageSchema.new(
|
27
|
+
description: hash['description'],
|
27
28
|
id: hash['id'],
|
28
29
|
item_description_selector: hash['item_description_selector'],
|
29
30
|
item_link_selector: hash['item_link_selector'],
|
data/lib/weneedfeed/scraping.rb
CHANGED
@@ -14,6 +14,7 @@ module Weneedfeed
|
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
17
|
+
# @param [String, nil] description
|
17
18
|
# @param [String, nil] item_description_selector
|
18
19
|
# @param [String] item_link_selector
|
19
20
|
# @param [String, nil] item_time_selector
|
@@ -22,6 +23,7 @@ module Weneedfeed
|
|
22
23
|
# @param [String] title
|
23
24
|
# @param [String] url
|
24
25
|
def initialize(
|
26
|
+
description:,
|
25
27
|
item_description_selector:,
|
26
28
|
item_link_selector:,
|
27
29
|
item_time_selector:,
|
@@ -30,6 +32,7 @@ module Weneedfeed
|
|
30
32
|
title:,
|
31
33
|
url:
|
32
34
|
)
|
35
|
+
@description = description
|
33
36
|
@item_description_selector = item_description_selector
|
34
37
|
@item_link_selector = item_link_selector
|
35
38
|
@item_time_selector = item_time_selector
|
@@ -42,6 +45,7 @@ module Weneedfeed
|
|
42
45
|
# @return [Weneedfeed::Page]
|
43
46
|
def call
|
44
47
|
::Weneedfeed::Page.new(
|
48
|
+
description: @description,
|
45
49
|
node: parsed_body,
|
46
50
|
item_description_selector: @item_description_selector,
|
47
51
|
item_selector: @item_selector,
|
data/lib/weneedfeed/version.rb
CHANGED
data/templates/show_feed.xml.erb
CHANGED
@@ -4,9 +4,9 @@
|
|
4
4
|
xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
5
5
|
<channel>
|
6
6
|
<title><![CDATA[<%= @page.title %>]]></title>
|
7
|
-
<link><%= "#{
|
7
|
+
<link><%= "#{@page.url}" %></link>
|
8
8
|
<atom:link href="<%= "#{request.base_url}#{request.path}" %>" rel="self"/>
|
9
|
-
<description><![CDATA[
|
9
|
+
<description><![CDATA[<%= @page.description %>]]></description>
|
10
10
|
<lastBuildDate><%= Time.now.rfc822 %></lastBuildDate>
|
11
11
|
<% items.each do |item| %>
|
12
12
|
<item>
|