rss_creator 0.4.0 → 0.5.1
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
- checksums.yaml.gz.sig +0 -0
- data/lib/rss_creator.rb +54 -47
- data.tar.gz.sig +0 -0
- metadata +2 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1e9a19b111850395e005bf30f5988a3d9fa3e77b18e7ea64ecd946223f6b0132
|
4
|
+
data.tar.gz: b874598f45e34d85d949b1a6a86f13b43ea52a0db1ee5404fc6a94dbb2d27cdd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 620d7a274a083fdc661b1dc5aa11515ecb2c1d41373028e8e29cd12a7f8ba60da94f5e3a008e0f359e914647ed9918d534a76f53fed9fe6ec3256322d694002a
|
7
|
+
data.tar.gz: e6122e91ce400ed1ed538e1d18add56be3dad0d1674901d0b1773c157e37266a5663563ee13df9234e63de2d5b32f87f2147d911a9aa5facc20f58cfe54a6903
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/rss_creator.rb
CHANGED
@@ -7,49 +7,53 @@ require 'rss_to_dynarex'
|
|
7
7
|
|
8
8
|
|
9
9
|
class RSScreator
|
10
|
+
include RXFHelperModule
|
10
11
|
|
11
|
-
attr_accessor :title, :description, :link, :limit, :xslt, :image_url,
|
12
|
+
attr_accessor :title, :description, :link, :limit, :xslt, :image_url,
|
12
13
|
:image_target_url
|
13
14
|
|
14
|
-
def initialize(filepath='rss.xml', dx_xslt: nil, dx_filename: 'feed.xml',
|
15
|
-
custom_fields: [], limit: 10, debug: false)
|
15
|
+
def initialize(filepath='rss.xml', dx_xslt: nil, dx_filename: 'feed.xml',
|
16
|
+
custom_fields: [], limit: 10, log: nil, debug: false)
|
16
17
|
|
17
18
|
|
18
|
-
@filepath, @debug = filepath, debug
|
19
|
+
@filepath, @log, @debug = filepath, log, debug
|
19
20
|
|
20
21
|
dxfilepath = File.join(File.dirname(filepath), dx_filename)
|
21
|
-
|
22
|
-
if filepath and
|
22
|
+
|
23
|
+
if filepath and FileX.exists? dxfilepath then
|
23
24
|
|
24
25
|
@dx = Dynarex.new dxfilepath
|
25
26
|
@title, @description, @link = @dx.title, @dx.description, @dx.link
|
27
|
+
@image_url = @dx.image
|
26
28
|
|
27
29
|
else
|
28
|
-
if filepath and
|
29
|
-
|
30
|
+
if filepath and FileX.exists? filepath
|
31
|
+
|
30
32
|
rtd = RSStoDynarex.new filepath
|
31
33
|
@dx = rtd.to_dynarex
|
32
34
|
|
33
35
|
@title, @description, @link = @dx.title, @dx.description, @dx.link
|
34
|
-
|
36
|
+
@image_url = @dx.image if @dx.image and @dx.image.length > 1
|
37
|
+
@image_target_url = @link if @link and @link.length > 1
|
38
|
+
|
35
39
|
else
|
36
40
|
|
37
|
-
|
38
|
-
schema = 'channel[title, description, link]/' + \
|
41
|
+
|
42
|
+
schema = 'channel[title, description, link, image]/' + \
|
39
43
|
'item(title, link, description, date'
|
40
44
|
schema += ', ' + custom_fields.join(', ') if custom_fields.any?
|
41
45
|
schema += ')'
|
42
|
-
|
46
|
+
|
43
47
|
@dx = Dynarex.new schema
|
44
48
|
end
|
45
49
|
|
46
|
-
@dx.order = 'descending'
|
50
|
+
@dx.order = 'descending'
|
47
51
|
@dx.default_key = 'uid'
|
48
|
-
@dx.xslt = dx_xslt if dx_xslt
|
52
|
+
@dx.xslt = dx_xslt if dx_xslt
|
53
|
+
|
49
54
|
|
50
|
-
|
51
55
|
end
|
52
|
-
|
56
|
+
|
53
57
|
@dx.xslt_schema = 'channel[title:title,description:description,' + \
|
54
58
|
'link:link]/item(title:title,description:description,' + \
|
55
59
|
'link:link,pubDate:date)'
|
@@ -62,31 +66,33 @@ class RSScreator
|
|
62
66
|
|
63
67
|
end
|
64
68
|
|
65
|
-
def add(
|
69
|
+
def add(itemx={title: '', link: '', description: ''}, item: itemx, id: nil)
|
70
|
+
|
71
|
+
@log.debug 'RssCreator#add item: ' + item.inspect if @log
|
66
72
|
|
67
73
|
unless item[:title] and item[:link] then
|
68
|
-
raise 'RSScreator: title or link can\'t be blank'
|
74
|
+
raise 'RSScreator: title or link can\'t be blank'
|
69
75
|
end
|
70
|
-
|
76
|
+
|
71
77
|
record = {date: Time.now.strftime("%a, %d %b %Y %H:%M:%S %z")}.merge(item)
|
72
78
|
@dx.create(record, id: id)
|
73
|
-
|
79
|
+
|
74
80
|
@dirty = true
|
75
|
-
|
81
|
+
|
76
82
|
end
|
77
83
|
|
78
84
|
def save(new_filepath=nil)
|
79
85
|
|
80
86
|
filepath = new_filepath ? new_filepath : @filepath
|
81
|
-
|
87
|
+
FileX.write filepath, print_rss
|
82
88
|
@dx.save File.join(File.dirname(filepath), @dxfilename) if @dxfilename
|
83
89
|
end
|
84
|
-
|
90
|
+
|
85
91
|
def description=(val)
|
86
92
|
@description = val
|
87
93
|
@dirty = true
|
88
94
|
end
|
89
|
-
|
95
|
+
|
90
96
|
def delete(id)
|
91
97
|
@dx.delete id.to_s
|
92
98
|
end
|
@@ -97,24 +103,24 @@ class RSScreator
|
|
97
103
|
def dynarex()
|
98
104
|
@dx
|
99
105
|
end
|
100
|
-
|
106
|
+
|
101
107
|
def image_url=(val)
|
102
108
|
@image_url = val
|
103
109
|
@dirty = true
|
104
110
|
end
|
105
|
-
|
111
|
+
|
106
112
|
alias image= image_url=
|
107
|
-
|
113
|
+
|
108
114
|
def image_target_url=(val)
|
109
115
|
@image_target_url = val
|
110
116
|
@dirty = true
|
111
|
-
end
|
117
|
+
end
|
112
118
|
|
113
119
|
def link=(val)
|
114
120
|
@link = val
|
115
121
|
@dirty = true
|
116
|
-
end
|
117
|
-
|
122
|
+
end
|
123
|
+
|
118
124
|
def title=(val)
|
119
125
|
@title = val
|
120
126
|
@dirty = true
|
@@ -127,42 +133,43 @@ class RSScreator
|
|
127
133
|
private
|
128
134
|
|
129
135
|
def print_rss()
|
130
|
-
|
136
|
+
|
131
137
|
return @rss unless @dirty
|
132
138
|
|
133
139
|
if @title.nil? or @description.nil? then
|
134
|
-
raise 'RSScreator: title or description can\'t be blank'
|
140
|
+
raise 'RSScreator: title or description can\'t be blank'
|
135
141
|
end
|
136
142
|
|
137
143
|
@dx.title, @dx.description, @dx.link = @title, @description, @link || ''
|
138
|
-
|
144
|
+
@dx.image = @image_url if @dx.respond_to? :image
|
145
|
+
|
139
146
|
@rss = if @xslt then
|
140
|
-
|
147
|
+
|
141
148
|
@dx.to_rss({limit: @limit}) do |doc|
|
142
|
-
|
149
|
+
|
143
150
|
doc.instructions << ['xml-stylesheet',\
|
144
151
|
"title='XSL_formatting' type='text/xsl' href='#{@xslt}'"]
|
145
|
-
|
146
|
-
end
|
147
|
-
|
152
|
+
|
153
|
+
end
|
154
|
+
|
148
155
|
else
|
149
|
-
|
156
|
+
|
150
157
|
@dx.to_rss({limit: @limit}) do |doc|
|
151
|
-
|
158
|
+
|
152
159
|
if @image_url then
|
153
|
-
|
160
|
+
|
154
161
|
img = Rexle::Element.new('image')
|
155
162
|
img.add Rexle::Element.new('url').add_text @image_url
|
156
163
|
img.add Rexle::Element.new('link').add_text @image_target_url
|
157
|
-
|
164
|
+
|
158
165
|
doc.root.element('channel/item').insert_before img
|
159
|
-
|
160
|
-
end
|
161
|
-
|
166
|
+
|
167
|
+
end
|
168
|
+
|
162
169
|
end
|
163
|
-
|
170
|
+
|
164
171
|
end
|
165
|
-
|
172
|
+
|
166
173
|
@dirty = false
|
167
174
|
@rss
|
168
175
|
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rss_creator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -35,7 +35,7 @@ cert_chain:
|
|
35
35
|
CmoNNvIZ3zS4vUkMoFR7S0bXN/xdxzLVn5uGLJ8FwP76BqKlR2+xV5Bj+40hyMDP
|
36
36
|
s+qwrtoA3kBtGhpVjCn/TE5q
|
37
37
|
-----END CERTIFICATE-----
|
38
|
-
date:
|
38
|
+
date: 2022-01-19 00:00:00.000000000 Z
|
39
39
|
dependencies:
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: rss_to_dynarex
|
metadata.gz.sig
CHANGED
Binary file
|