5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# File 'lib/arssene/lib/repositories/channel_repository.rb', line 5
def fetch_as_channel(url)
begin
channel = Arssene::Channel.new
= url.dup
response = Faraday.get(url)
raise "Unable to reach feed: #{url} | error corde: #{response.status}" unless response.status == 200
feed = RSS::Parser.parse(response.body)
url = URI.parse(feed.channel.link)
channel.title = feed.channel.title
channel.link = feed.channel.link
channel.host = url.host
channel.feed_type = feed.feed_type
channel.feed_version = feed.feed_version
channel.description = feed.channel.description
channel.publication_date = feed.channel.pubDate
channel.language = feed.channel.language ? feed.channel.language.downcase : nil
channel.copyright = feed.channel.copyright
channel.entries = feed
channel.meta = feed
channel.relevant = true
channel. =
rescue StandardError => e
return ({ error: e.to_s })
end
channel
end
|