weneedfeed 0.7.2 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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>
|