html2rss 0.9.0 → 0.11.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/README.md +323 -270
- data/exe/html2rss +6 -0
- data/html2rss.gemspec +18 -23
- data/lib/html2rss/attribute_post_processors/gsub.rb +30 -8
- data/lib/html2rss/attribute_post_processors/html_to_markdown.rb +7 -2
- data/lib/html2rss/attribute_post_processors/html_transformers/transform_urls_to_absolute_ones.rb +27 -0
- data/lib/html2rss/attribute_post_processors/html_transformers/wrap_img_in_a.rb +41 -0
- data/lib/html2rss/attribute_post_processors/markdown_to_html.rb +11 -2
- data/lib/html2rss/attribute_post_processors/parse_time.rb +11 -4
- data/lib/html2rss/attribute_post_processors/parse_uri.rb +12 -2
- data/lib/html2rss/attribute_post_processors/sanitize_html.rb +40 -44
- data/lib/html2rss/attribute_post_processors/substring.rb +14 -4
- data/lib/html2rss/attribute_post_processors/template.rb +36 -12
- data/lib/html2rss/attribute_post_processors.rb +28 -5
- data/lib/html2rss/cli.rb +29 -0
- data/lib/html2rss/config/channel.rb +117 -0
- data/lib/html2rss/config/selectors.rb +91 -0
- data/lib/html2rss/config.rb +71 -82
- data/lib/html2rss/item.rb +122 -46
- data/lib/html2rss/item_extractors/attribute.rb +20 -7
- data/lib/html2rss/item_extractors/href.rb +20 -4
- data/lib/html2rss/item_extractors/html.rb +18 -6
- data/lib/html2rss/item_extractors/static.rb +18 -7
- data/lib/html2rss/item_extractors/text.rb +17 -5
- data/lib/html2rss/item_extractors.rb +75 -10
- data/lib/html2rss/object_to_xml_converter.rb +56 -0
- data/lib/html2rss/rss_builder/channel.rb +21 -0
- data/lib/html2rss/rss_builder/item.rb +83 -0
- data/lib/html2rss/rss_builder/stylesheet.rb +37 -0
- data/lib/html2rss/rss_builder.rb +96 -0
- data/lib/html2rss/utils.rb +94 -19
- data/lib/html2rss/version.rb +5 -1
- data/lib/html2rss.rb +57 -20
- metadata +53 -165
- data/.gitignore +0 -12
- data/.rspec +0 -4
- data/.rubocop.yml +0 -164
- data/.travis.yml +0 -25
- data/.yardopts +0 -6
- data/CHANGELOG.md +0 -221
- data/Gemfile +0 -8
- data/Gemfile.lock +0 -139
- data/bin/console +0 -15
- data/bin/setup +0 -8
- data/lib/html2rss/feed_builder.rb +0 -81
- data/lib/html2rss/item_extractors/current_time.rb +0 -21
- data/support/logo.png +0 -0
data/CHANGELOG.md
DELETED
@@ -1,221 +0,0 @@
|
|
1
|
-
# [](https://github.com/gildesmarais/html2rss/compare/v0.9.0...v) (2020-06-19)
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
# [0.9.0](https://github.com/gildesmarais/html2rss/compare/v0.8.2...v0.9.0) (2020-06-19)
|
6
|
-
|
7
|
-
|
8
|
-
### Features
|
9
|
-
|
10
|
-
* add option to reverse order of channel items ([#82](https://github.com/gildesmarais/html2rss/issues/82)) ([2019977](https://github.com/gildesmarais/html2rss/commit/2019977b09fdc29c427b8b7e478857ca3f9f7027)), closes [#80](https://github.com/gildesmarais/html2rss/issues/80)
|
11
|
-
* require at least ruby version 2.5 ([#85](https://github.com/gildesmarais/html2rss/issues/85)) ([0ff6ee3](https://github.com/gildesmarais/html2rss/commit/0ff6ee355a87331f8afbfbdac1496cdfa36f3e5f))
|
12
|
-
* support ruby 2.7 ([#75](https://github.com/gildesmarais/html2rss/issues/75)) ([56ddbbe](https://github.com/gildesmarais/html2rss/commit/56ddbbe7c921e26057511754cf058fdd69fc9e0c))
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
## [0.8.2](https://github.com/gildesmarais/html2rss/compare/v0.8.1...v0.8.2) (2019-11-09)
|
17
|
-
|
18
|
-
|
19
|
-
### Features
|
20
|
-
|
21
|
-
* improve url handling by sanitizing and normalizing urls ([#70](https://github.com/gildesmarais/html2rss/issues/70)) ([02cd551](https://github.com/gildesmarais/html2rss/commit/02cd551f4411b050bbb6e4ed942d7b3d707cd86a))
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
## [0.8.1](https://github.com/gildesmarais/html2rss/compare/v0.8.0...v0.8.1) (2019-11-08)
|
26
|
-
|
27
|
-
|
28
|
-
### Features
|
29
|
-
|
30
|
-
* **config:** improve generation of channel.title from channel.url ([#68](https://github.com/gildesmarais/html2rss/issues/68)) ([bc8ecbb](https://github.com/gildesmarais/html2rss/commit/bc8ecbb9623ce08a6cd067da1cb5fd0a996a9d40))
|
31
|
-
* **parse_uri:** squish url to not fail on url with padding spaces ([#67](https://github.com/gildesmarais/html2rss/issues/67)) ([e349449](https://github.com/gildesmarais/html2rss/commit/e34944995e669c0f8dd6a1e78acb31bd3db9fcf6))
|
32
|
-
* auto generate nicer channel's title and description ([#63](https://github.com/gildesmarais/html2rss/issues/63)) ([6db28f6](https://github.com/gildesmarais/html2rss/commit/6db28f67a99b893fb09d7f8d337027a5a48dbe85))
|
33
|
-
* change default ttl to 360 ([#65](https://github.com/gildesmarais/html2rss/issues/65)) ([605c8db](https://github.com/gildesmarais/html2rss/commit/605c8db4f74329128bd45961e2c1e5fa344924a5))
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
# [0.8.0](https://github.com/gildesmarais/html2rss/compare/v0.7.0...v0.8.0) (2019-11-02)
|
38
|
-
|
39
|
-
|
40
|
-
### Features
|
41
|
-
|
42
|
-
* **post_processors:** add markdown to html ([#54](https://github.com/gildesmarais/html2rss/issues/54)) ([cdf77b8](https://github.com/gildesmarais/html2rss/commit/cdf77b8696eebed7a5cffda7cfd75ddc64db364b))
|
43
|
-
* **post_processors:** support annotated tokens ([#62](https://github.com/gildesmarais/html2rss/issues/62)) ([b57bd7b](https://github.com/gildesmarais/html2rss/commit/b57bd7b4cd22c8c51e8b2f526187b5997d77b25c)), closes [#56](https://github.com/gildesmarais/html2rss/issues/56)
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
# [0.7.0](https://github.com/gildesmarais/html2rss/compare/v0.6.0...v0.7.0) (2019-10-28)
|
48
|
-
|
49
|
-
|
50
|
-
### Features
|
51
|
-
|
52
|
-
* **post_processors:** add gsub ([#53](https://github.com/gildesmarais/html2rss/issues/53)) ([de268ae](https://github.com/gildesmarais/html2rss/commit/de268ae64f2f946103523c66919806b50c6d031a))
|
53
|
-
* support enclosure on items ([#52](https://github.com/gildesmarais/html2rss/issues/52)) ([80a30a1](https://github.com/gildesmarais/html2rss/commit/80a30a1944e9a256fc9b5497589b9e20a098c444)), closes [#50](https://github.com/gildesmarais/html2rss/issues/50)
|
54
|
-
* **postprocessor:** always wrap img tag in an a tag in sanitze html ([#51](https://github.com/gildesmarais/html2rss/issues/51)) ([6c7fb88](https://github.com/gildesmarais/html2rss/commit/6c7fb88c9c87fb977645b21a7b13e70367b10608))
|
55
|
-
* handle json array response ([#49](https://github.com/gildesmarais/html2rss/issues/49)) ([288c2af](https://github.com/gildesmarais/html2rss/commit/288c2af09909d5c54109f8ce6a566914dd188b0b))
|
56
|
-
* use zeitwerk for autoloading ([#47](https://github.com/gildesmarais/html2rss/issues/47)) ([bce523d](https://github.com/gildesmarais/html2rss/commit/bce523d64a58c52490a3326c3f85beba2e46088f))
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
# [0.6.0](https://github.com/gildesmarais/html2rss/compare/v0.5.2...v0.6.0) (2019-10-05)
|
61
|
-
|
62
|
-
|
63
|
-
### Bug Fixes
|
64
|
-
|
65
|
-
* **specs:** simplecov does not exclude files from spec/ ([#44](https://github.com/gildesmarais/html2rss/issues/44)) ([b0ca780](https://github.com/gildesmarais/html2rss/commit/b0ca780ebb69185ef7e534e1d36bd606073dc471))
|
66
|
-
|
67
|
-
|
68
|
-
### Features
|
69
|
-
|
70
|
-
* memoize ItemExtractor lookups ([#45](https://github.com/gildesmarais/html2rss/issues/45)) ([e88321c](https://github.com/gildesmarais/html2rss/commit/e88321c52b40c3f1581a576ae50e7f3416df4772))
|
71
|
-
* support setting of request headers in feed config ([#41](https://github.com/gildesmarais/html2rss/issues/41)) ([a7aca11](https://github.com/gildesmarais/html2rss/commit/a7aca11a708c4f3a3a5f9f6511c0c1e86ec63595)), closes [#38](https://github.com/gildesmarais/html2rss/issues/38)
|
72
|
-
* **ci:** run rubocop on ci ([#40](https://github.com/gildesmarais/html2rss/issues/40)) ([f4ec8d1](https://github.com/gildesmarais/html2rss/commit/f4ec8d15681c8a232dbad6a933f7877aec33cc4f))
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
## [0.5.2](https://github.com/gildesmarais/html2rss/compare/v0.5.1...v0.5.2) (2019-09-19)
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
## [0.5.1](https://github.com/gildesmarais/html2rss/compare/v0.5.0...v0.5.1) (2019-09-19)
|
81
|
-
|
82
|
-
|
83
|
-
### Bug Fixes
|
84
|
-
|
85
|
-
* rss contains additional categories ([#39](https://github.com/gildesmarais/html2rss/issues/39)) ([ed164ef](https://github.com/gildesmarais/html2rss/commit/ed164efdf5e2775f30130d0949d96ecee4f9cea0))
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
# [0.5.0](https://github.com/gildesmarais/html2rss/compare/v0.4.1...v0.5.0) (2019-09-18)
|
90
|
-
|
91
|
-
|
92
|
-
### Features
|
93
|
-
|
94
|
-
* support JSON ([#37](https://github.com/gildesmarais/html2rss/issues/37)) ([d258f73](https://github.com/gildesmarais/html2rss/commit/d258f73f30587e48f5854013fa0e67c88bb23a52))
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
## [0.4.1](https://github.com/gildesmarais/html2rss/compare/v0.4.0...v0.4.1) (2019-09-18)
|
99
|
-
|
100
|
-
|
101
|
-
### Bug Fixes
|
102
|
-
|
103
|
-
* building absolute url fails when a fragment is present ([#35](https://github.com/gildesmarais/html2rss/issues/35)) ([c1b6dc7](https://github.com/gildesmarais/html2rss/commit/c1b6dc7d72f3b93b64c81a455cfd24909de841a9))
|
104
|
-
|
105
|
-
|
106
|
-
### Features
|
107
|
-
|
108
|
-
* **postprocessors:** add html to markdown ([#34](https://github.com/gildesmarais/html2rss/issues/34)) ([6a4a462](https://github.com/gildesmarais/html2rss/commit/6a4a46269d0d185923f1e817141ac7901ce74784))
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
# [0.4.0](https://github.com/gildesmarais/html2rss/compare/v0.3.3...v0.4.0) (2019-09-07)
|
113
|
-
|
114
|
-
|
115
|
-
### Bug Fixes
|
116
|
-
|
117
|
-
* **template:** breaks when any method returns nil ([#32](https://github.com/gildesmarais/html2rss/issues/32)) ([0709958](https://github.com/gildesmarais/html2rss/commit/0709958a2bf3e5df6dbd7709b2f7734c7e9b3978))
|
118
|
-
|
119
|
-
|
120
|
-
### Features
|
121
|
-
|
122
|
-
* **parse_time:** support setting of a time_zone ([#31](https://github.com/gildesmarais/html2rss/issues/31)) ([cecbe5e](https://github.com/gildesmarais/html2rss/commit/cecbe5eb7b8586f036169480cd009c8be69b4f22)), closes [#19](https://github.com/gildesmarais/html2rss/issues/19)
|
123
|
-
* **postprocessor:** add referrer-policy on img tag in sanitze html ([#24](https://github.com/gildesmarais/html2rss/issues/24)) ([a3b1d18](https://github.com/gildesmarais/html2rss/commit/a3b1d18cc0eb4ff9c359d591357ed631e44c8dd8))
|
124
|
-
* **rubocop:** add rubocop-rspec and (auto-)fix issues ([#22](https://github.com/gildesmarais/html2rss/issues/22)) ([dd539f6](https://github.com/gildesmarais/html2rss/commit/dd539f66fa31a5735090663b0611e8ba56c7c34f))
|
125
|
-
* **rubocop:** enable more performance cops and relax config ([#21](https://github.com/gildesmarais/html2rss/issues/21)) ([67132bb](https://github.com/gildesmarais/html2rss/commit/67132bba2ac13ca7ed694e965fb8770a1f635de2))
|
126
|
-
* **sanitize_html:** rewrite relative urls to absolute in a and img elements ([#30](https://github.com/gildesmarais/html2rss/issues/30)) ([caf4e80](https://github.com/gildesmarais/html2rss/commit/caf4e80f342d32ec193868ebeacc5db989947594))
|
127
|
-
* **sanitze_html:** strip more attributes ([#28](https://github.com/gildesmarais/html2rss/issues/28)) ([9daa42e](https://github.com/gildesmarais/html2rss/commit/9daa42e774850c766299b5d85bf6e98d40cb9f6d)), closes [#26](https://github.com/gildesmarais/html2rss/issues/26)
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
## [0.3.3](https://github.com/gildesmarais/html2rss/compare/v0.3.2...v0.3.3) (2019-07-01)
|
132
|
-
|
133
|
-
|
134
|
-
### Features
|
135
|
-
|
136
|
-
* enable usage of multiple post processors ([#17](https://github.com/gildesmarais/html2rss/issues/17)) ([8a9f7b4](https://github.com/gildesmarais/html2rss/commit/8a9f7b439b266c92756d9198c8689cd4ba9813e8))
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
## [0.3.2](https://github.com/gildesmarais/html2rss/compare/v0.3.1...v0.3.2) (2019-07-01)
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
## [0.3.1](https://github.com/gildesmarais/html2rss/compare/v0.3.0...v0.3.1) (2019-06-23)
|
145
|
-
|
146
|
-
|
147
|
-
### Features
|
148
|
-
|
149
|
-
* handle string and symbol keys in config hashes ([#15](https://github.com/gildesmarais/html2rss/issues/15)) ([93ad824](https://github.com/gildesmarais/html2rss/commit/93ad82488cfb0fc497c443d4b11dc12b8eeb50e2))
|
150
|
-
* support attributes without selector, fallback to root element then ([#16](https://github.com/gildesmarais/html2rss/issues/16)) ([d99ae3d](https://github.com/gildesmarais/html2rss/commit/d99ae3d3d91ffc0a8549fd0ab6926e136126489b))
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
# [0.3.0](https://github.com/gildesmarais/html2rss/compare/v0.2.2...v0.3.0) (2019-06-20)
|
155
|
-
|
156
|
-
|
157
|
-
### Features
|
158
|
-
|
159
|
-
* add rubocop and update development deps ([#13](https://github.com/gildesmarais/html2rss/issues/13)) ([6e06329](https://github.com/gildesmarais/html2rss/commit/6e063296d05f5cbe7ee8699e11ae7c812c519814))
|
160
|
-
* change Config constructor arguments ([#14](https://github.com/gildesmarais/html2rss/issues/14)) ([21f8746](https://github.com/gildesmarais/html2rss/commit/21f8746e74d2a7c74611fb3c4ca24d5505915f73))
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
## [0.2.2](https://github.com/gildesmarais/html2rss/compare/v0.2.0...v0.2.2) (2019-01-31)
|
165
|
-
|
166
|
-
|
167
|
-
### Bug Fixes
|
168
|
-
|
169
|
-
* generates invalid feeds ([00309e7](https://github.com/gildesmarais/html2rss/commit/00309e7ba9a35ef0272b72b75c4410c47413a2dc))
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
# [0.2.0](https://github.com/gildesmarais/html2rss/compare/v0.1.0...v0.2.0) (2018-11-13)
|
174
|
-
|
175
|
-
|
176
|
-
### Features
|
177
|
-
|
178
|
-
* **category:** support item categories ([#10](https://github.com/gildesmarais/html2rss/issues/10)) ([4572bcb](https://github.com/gildesmarais/html2rss/commit/4572bcb33fc73a2d0cfe27afa2ba51310f71780f)), closes [#2](https://github.com/gildesmarais/html2rss/issues/2)
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
# [0.1.0](https://github.com/gildesmarais/html2rss/compare/v0.0.1...v0.1.0) (2018-11-04)
|
183
|
-
|
184
|
-
|
185
|
-
### Bug Fixes
|
186
|
-
|
187
|
-
* **config:** feed generation fails ([7dd5586](https://github.com/gildesmarais/html2rss/commit/7dd55869f79b1de76c004bf0e82d13b16b5b3f0d))
|
188
|
-
* **parse_uri:** handle non-absolute paths ([9215025](https://github.com/gildesmarais/html2rss/commit/921502574e4436d65a30e1d34b9b31f238336247))
|
189
|
-
* handling of url query breaks processing ([ace289e](https://github.com/gildesmarais/html2rss/commit/ace289e911b69cb92433cac6f1ca0403715d8286))
|
190
|
-
* only set supported attributes on rss item ([dae0d8e](https://github.com/gildesmarais/html2rss/commit/dae0d8e75541e810275e789a23971a61e60a2154))
|
191
|
-
|
192
|
-
|
193
|
-
### Features
|
194
|
-
|
195
|
-
* add logo [skip ci] ([857a55f](https://github.com/gildesmarais/html2rss/commit/857a55fd8c932930d96c47c5abe57f0507356df1))
|
196
|
-
* require updated to be present ([e1bedae](https://github.com/gildesmarais/html2rss/commit/e1bedaecc91e874fe24e96000612abb9cd11e9fe))
|
197
|
-
* **item_extractor:** add static and current_time ([25043dc](https://github.com/gildesmarais/html2rss/commit/25043dcbd8f0f4901202f4a2f66b355ac48825a8))
|
198
|
-
* **item_extractor:** handle absolute urls ([f96be00](https://github.com/gildesmarais/html2rss/commit/f96be00857bdcded02d52dd62ec22b9b52c803ed))
|
199
|
-
* **item_extractor:** text strips strings ([f598285](https://github.com/gildesmarais/html2rss/commit/f59828593dca663bdbe8699392594e2d18658f8f))
|
200
|
-
* **post_processing:** add configurable post_processing ([#5](https://github.com/gildesmarais/html2rss/issues/5)) ([4cf6cac](https://github.com/gildesmarais/html2rss/commit/4cf6cacac00bd3c0c53d584ca11274ba24b03ef7)), closes [#1](https://github.com/gildesmarais/html2rss/issues/1)
|
201
|
-
* **post_processor:** add substring ([6f2a32a](https://github.com/gildesmarais/html2rss/commit/6f2a32a6304ef9956577711173de681daf93f55f))
|
202
|
-
* **postprocessors:** add Template ([#6](https://github.com/gildesmarais/html2rss/issues/6)) ([f1db542](https://github.com/gildesmarais/html2rss/commit/f1db542e8c1e9e09a066a3cd6c8514a6ca0aa871)), closes [#4](https://github.com/gildesmarais/html2rss/issues/4)
|
203
|
-
* **sanitize_html:** add target="_blank" to anchors ([975a73b](https://github.com/gildesmarais/html2rss/commit/975a73bfd396ba5942bc0ea80eebd14cc37ad776))
|
204
|
-
* do not fail on invalid item, just skip it ([3b83d71](https://github.com/gildesmarais/html2rss/commit/3b83d715619abbc33b124de1945d17cb0dc7edb0))
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
## [0.0.1](https://github.com/gildesmarais/html2rss/compare/219cac849460eae3262108d886c60b9b08385a3d...v0.0.1) (2018-06-03)
|
209
|
-
|
210
|
-
|
211
|
-
### Bug Fixes
|
212
|
-
|
213
|
-
* gem's version and readme-typos ([eab39d9](https://github.com/gildesmarais/html2rss/commit/eab39d981efda19d4ed66d7427d240b083eb2ae4))
|
214
|
-
|
215
|
-
|
216
|
-
### Features
|
217
|
-
|
218
|
-
* **html2rss:** add initial version of the html2rss gem ([219cac8](https://github.com/gildesmarais/html2rss/commit/219cac849460eae3262108d886c60b9b08385a3d))
|
219
|
-
|
220
|
-
|
221
|
-
|
data/Gemfile
DELETED
data/Gemfile.lock
DELETED
@@ -1,139 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
html2rss (0.9.0)
|
5
|
-
activesupport (>= 5, < 7)
|
6
|
-
addressable (~> 2.7)
|
7
|
-
builder
|
8
|
-
faraday (~> 1.0)
|
9
|
-
faraday_middleware
|
10
|
-
kramdown
|
11
|
-
mime-types (> 3.0)
|
12
|
-
nokogiri (>= 1.10, < 2.0)
|
13
|
-
reverse_markdown (~> 2.0)
|
14
|
-
sanitize (~> 5.0)
|
15
|
-
to_regexp
|
16
|
-
zeitwerk
|
17
|
-
|
18
|
-
GEM
|
19
|
-
remote: https://rubygems.org/
|
20
|
-
specs:
|
21
|
-
activesupport (6.0.3.2)
|
22
|
-
concurrent-ruby (~> 1.0, >= 1.0.2)
|
23
|
-
i18n (>= 0.7, < 2)
|
24
|
-
minitest (~> 5.1)
|
25
|
-
tzinfo (~> 1.1)
|
26
|
-
zeitwerk (~> 2.2, >= 2.2.2)
|
27
|
-
addressable (2.7.0)
|
28
|
-
public_suffix (>= 2.0.2, < 5.0)
|
29
|
-
ast (2.4.1)
|
30
|
-
builder (3.2.4)
|
31
|
-
byebug (11.1.3)
|
32
|
-
concurrent-ruby (1.1.6)
|
33
|
-
coveralls (0.7.2)
|
34
|
-
multi_json (~> 1.3)
|
35
|
-
rest-client (= 1.6.7)
|
36
|
-
simplecov (>= 0.7)
|
37
|
-
term-ansicolor (= 1.2.2)
|
38
|
-
thor (= 0.18.1)
|
39
|
-
crass (1.0.6)
|
40
|
-
diff-lcs (1.3)
|
41
|
-
docile (1.3.2)
|
42
|
-
faraday (1.0.1)
|
43
|
-
multipart-post (>= 1.2, < 3)
|
44
|
-
faraday_middleware (1.0.0)
|
45
|
-
faraday (~> 1.0)
|
46
|
-
i18n (1.8.3)
|
47
|
-
concurrent-ruby (~> 1.0)
|
48
|
-
kramdown (2.2.1)
|
49
|
-
rexml
|
50
|
-
mime-types (3.3.1)
|
51
|
-
mime-types-data (~> 3.2015)
|
52
|
-
mime-types-data (3.2020.0512)
|
53
|
-
mini_portile2 (2.4.0)
|
54
|
-
minitest (5.14.1)
|
55
|
-
multi_json (1.14.1)
|
56
|
-
multipart-post (2.1.1)
|
57
|
-
nokogiri (1.10.9)
|
58
|
-
mini_portile2 (~> 2.4.0)
|
59
|
-
nokogumbo (2.0.2)
|
60
|
-
nokogiri (~> 1.8, >= 1.8.4)
|
61
|
-
parallel (1.19.2)
|
62
|
-
parser (2.7.1.3)
|
63
|
-
ast (~> 2.4.0)
|
64
|
-
public_suffix (4.0.5)
|
65
|
-
rainbow (3.0.0)
|
66
|
-
regexp_parser (1.7.1)
|
67
|
-
rest-client (1.6.7)
|
68
|
-
mime-types (>= 1.16)
|
69
|
-
reverse_markdown (2.0.0)
|
70
|
-
nokogiri
|
71
|
-
rexml (3.2.4)
|
72
|
-
rspec (3.9.0)
|
73
|
-
rspec-core (~> 3.9.0)
|
74
|
-
rspec-expectations (~> 3.9.0)
|
75
|
-
rspec-mocks (~> 3.9.0)
|
76
|
-
rspec-core (3.9.2)
|
77
|
-
rspec-support (~> 3.9.3)
|
78
|
-
rspec-expectations (3.9.2)
|
79
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
80
|
-
rspec-support (~> 3.9.0)
|
81
|
-
rspec-mocks (3.9.1)
|
82
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
83
|
-
rspec-support (~> 3.9.0)
|
84
|
-
rspec-support (3.9.3)
|
85
|
-
rubocop (0.85.1)
|
86
|
-
parallel (~> 1.10)
|
87
|
-
parser (>= 2.7.0.1)
|
88
|
-
rainbow (>= 2.2.2, < 4.0)
|
89
|
-
regexp_parser (>= 1.7)
|
90
|
-
rexml
|
91
|
-
rubocop-ast (>= 0.0.3)
|
92
|
-
ruby-progressbar (~> 1.7)
|
93
|
-
unicode-display_width (>= 1.4.0, < 2.0)
|
94
|
-
rubocop-ast (0.0.3)
|
95
|
-
parser (>= 2.7.0.1)
|
96
|
-
rubocop-performance (1.6.1)
|
97
|
-
rubocop (>= 0.71.0)
|
98
|
-
rubocop-rspec (1.40.0)
|
99
|
-
rubocop (>= 0.68.1)
|
100
|
-
ruby-progressbar (1.10.1)
|
101
|
-
sanitize (5.2.1)
|
102
|
-
crass (~> 1.0.2)
|
103
|
-
nokogiri (>= 1.8.0)
|
104
|
-
nokogumbo (~> 2.0)
|
105
|
-
simplecov (0.18.5)
|
106
|
-
docile (~> 1.1)
|
107
|
-
simplecov-html (~> 0.11)
|
108
|
-
simplecov-html (0.12.2)
|
109
|
-
term-ansicolor (1.2.2)
|
110
|
-
tins (~> 0.8)
|
111
|
-
thor (0.18.1)
|
112
|
-
thread_safe (0.3.6)
|
113
|
-
tins (0.13.2)
|
114
|
-
to_regexp (0.2.1)
|
115
|
-
tzinfo (1.2.7)
|
116
|
-
thread_safe (~> 0.1)
|
117
|
-
unicode-display_width (1.7.0)
|
118
|
-
vcr (6.0.0)
|
119
|
-
yard (0.9.25)
|
120
|
-
zeitwerk (2.3.0)
|
121
|
-
|
122
|
-
PLATFORMS
|
123
|
-
ruby
|
124
|
-
|
125
|
-
DEPENDENCIES
|
126
|
-
bundler
|
127
|
-
byebug
|
128
|
-
coveralls
|
129
|
-
html2rss!
|
130
|
-
rspec (~> 3.0)
|
131
|
-
rubocop
|
132
|
-
rubocop-performance
|
133
|
-
rubocop-rspec
|
134
|
-
simplecov
|
135
|
-
vcr
|
136
|
-
yard
|
137
|
-
|
138
|
-
BUNDLED WITH
|
139
|
-
2.1.4
|
data/bin/console
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require 'bundler/setup'
|
4
|
-
require 'html2rss'
|
5
|
-
require 'byebug'
|
6
|
-
|
7
|
-
# You can add fixtures and/or initialization code here to make experimenting
|
8
|
-
# with your gem easier. You can also use a different console, if you like.
|
9
|
-
|
10
|
-
# (If you use this, don't forget to add pry to your Gemfile!)
|
11
|
-
# require "pry"
|
12
|
-
# Pry.start
|
13
|
-
|
14
|
-
require 'irb'
|
15
|
-
IRB.start(__FILE__)
|
data/bin/setup
DELETED
@@ -1,81 +0,0 @@
|
|
1
|
-
require 'rss'
|
2
|
-
require 'mime/types'
|
3
|
-
|
4
|
-
module Html2rss
|
5
|
-
##
|
6
|
-
# The purpose is to build the feed, consisting of
|
7
|
-
#
|
8
|
-
# - the 'channel' and
|
9
|
-
# - the 'item'
|
10
|
-
#
|
11
|
-
# parts.
|
12
|
-
class FeedBuilder
|
13
|
-
def initialize(config)
|
14
|
-
@config = config
|
15
|
-
end
|
16
|
-
|
17
|
-
##
|
18
|
-
# @return [RSS:Rss]
|
19
|
-
def rss
|
20
|
-
RSS::Maker.make('2.0') do |maker|
|
21
|
-
add_channel(maker.channel)
|
22
|
-
|
23
|
-
items.each { |item| add_item(item, maker.items.new_item) }
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
def self.add_categories(categories, item_maker)
|
28
|
-
categories.each { |category| item_maker.categories.new_category.content = category }
|
29
|
-
end
|
30
|
-
|
31
|
-
def self.add_enclosure_from_url(url, item_maker)
|
32
|
-
return unless url
|
33
|
-
|
34
|
-
enclosure = item_maker.enclosure
|
35
|
-
content_type = MIME::Types.type_for(File.extname(url).delete('.'))
|
36
|
-
|
37
|
-
enclosure.type = content_type.any? ? content_type.first.to_s : 'application/octet-stream'
|
38
|
-
enclosure.length = 0
|
39
|
-
enclosure.url = url
|
40
|
-
end
|
41
|
-
|
42
|
-
def self.add_guid(item, item_maker)
|
43
|
-
guid = item_maker.guid
|
44
|
-
guid.content = Digest::SHA1.hexdigest(item.title)
|
45
|
-
guid.isPermaLink = false
|
46
|
-
end
|
47
|
-
|
48
|
-
private
|
49
|
-
|
50
|
-
attr_reader :config
|
51
|
-
|
52
|
-
def add_channel(channel_maker)
|
53
|
-
%i[language author title description link ttl].each do |attribute_name|
|
54
|
-
channel_maker.public_send("#{attribute_name}=", config.public_send(attribute_name))
|
55
|
-
end
|
56
|
-
|
57
|
-
channel_maker.generator = "html2rss V. #{::Html2rss::VERSION}"
|
58
|
-
channel_maker.lastBuildDate = Time.now
|
59
|
-
end
|
60
|
-
|
61
|
-
def items
|
62
|
-
return @items if defined?(@items)
|
63
|
-
|
64
|
-
items = Item.from_url(config.url, config)
|
65
|
-
|
66
|
-
items.reverse! if config.items_order == :reverse
|
67
|
-
|
68
|
-
@items = items
|
69
|
-
end
|
70
|
-
|
71
|
-
def add_item(item, item_maker)
|
72
|
-
item.available_attributes.each do |attribute_name|
|
73
|
-
item_maker.public_send("#{attribute_name}=", item.public_send(attribute_name))
|
74
|
-
end
|
75
|
-
|
76
|
-
self.class.add_categories(item.categories, item_maker)
|
77
|
-
self.class.add_enclosure_from_url(item.enclosure_url, item_maker) if item.enclosure?
|
78
|
-
self.class.add_guid(item, item_maker)
|
79
|
-
end
|
80
|
-
end
|
81
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
module Html2rss
|
2
|
-
module ItemExtractors
|
3
|
-
##
|
4
|
-
# Returns the current Time.
|
5
|
-
#
|
6
|
-
# YAML usage example:
|
7
|
-
#
|
8
|
-
# selectors:
|
9
|
-
# updated:
|
10
|
-
# extractor: current_time
|
11
|
-
class CurrentTime
|
12
|
-
def initialize(_xml, _options); end
|
13
|
-
|
14
|
-
##
|
15
|
-
# @return [Time]
|
16
|
-
def get
|
17
|
-
Time.new
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
data/support/logo.png
DELETED
Binary file
|