Cleanup channel helpers code

This commit is contained in:
matthewmcgarvey
2022-01-21 21:27:50 -06:00
parent 508f137b30
commit a82d21ff78
7 changed files with 20 additions and 31 deletions

View File

@@ -114,8 +114,9 @@ class ChannelRedirect < Exception
end
end
def get_batch_channels(channels, refresh = false, pull_all_videos = true, max_threads = 10)
def get_batch_channels(channels)
finished_channel = Channel(String | Nil).new
max_threads = 10
spawn do
active_threads = 0
@@ -130,7 +131,7 @@ def get_batch_channels(channels, refresh = false, pull_all_videos = true, max_th
active_threads += 1
spawn do
begin
get_channel(ucid, refresh, pull_all_videos)
get_channel(ucid)
finished_channel.send(ucid)
rescue ex
finished_channel.send(nil)
@@ -151,23 +152,18 @@ def get_batch_channels(channels, refresh = false, pull_all_videos = true, max_th
return final
end
def get_channel(id, refresh = true, pull_all_videos = true)
if channel = Invidious::Database::Channels.select(id)
if refresh && Time.utc - channel.updated > 10.minutes
channel = fetch_channel(id, pull_all_videos: pull_all_videos)
Invidious::Database::Channels.insert(channel, update_on_conflict: true)
end
else
channel = fetch_channel(id, pull_all_videos: pull_all_videos)
Invidious::Database::Channels.insert(channel)
end
def get_channel(id)
channel = Invidious::Database::Channels.select(id)
return channel if channel
channel = fetch_channel(id, pull_all_videos: false)
Invidious::Database::Channels.insert(channel)
return channel
end
def fetch_channel(ucid, pull_all_videos = true, locale = nil)
def fetch_channel(ucid, pull_all_videos : Bool)
LOGGER.debug("fetch_channel: #{ucid}")
LOGGER.trace("fetch_channel: #{ucid} : pull_all_videos = #{pull_all_videos}, locale = #{locale}")
LOGGER.trace("fetch_channel: #{ucid} : pull_all_videos = #{pull_all_videos}")
LOGGER.trace("fetch_channel: #{ucid} : Downloading RSS feed")
rss = YT_POOL.client &.get("/feeds/videos.xml?channel_id=#{ucid}").body