diff --git a/app/src/components/Channels.js b/app/src/components/Channels.js index 7bb77f3d..dc8039f4 100644 --- a/app/src/components/Channels.js +++ b/app/src/components/Channels.js @@ -18,7 +18,6 @@ import { DirectoryInput, frequencyOptions, humanFileSize, - isoDatetimeToString, RequiredAsterisk, secondsToFrequency, Toggle, @@ -450,10 +449,10 @@ function ChannelRow({channel}) { {channel.video_count} - {channel.url && channel.info_date ? isoDatetimeToString(channel.info_date) : null} + {channel.url && channel.download_frequency ? secondsToFrequency(channel.download_frequency) : null} - {channel.url && channel.download_frequency ? secondsToFrequency(channel.download_frequency) : null} + {channel.size ? humanFileSize(channel.size) : null} Edit @@ -520,8 +519,8 @@ export function Channels() { const headers = [ {key: 'name', text: 'Name', sortBy: 'name', width: 8}, {key: 'video_count', text: 'Videos', sortBy: 'video_count', width: 2}, - {key: 'last_update', text: 'Last Update', sortBy: 'info_date', width: 2}, {key: 'download_frequency', text: 'Download Frequency', sortBy: 'download_frequency', width: 2}, + {key: 'size', text: 'Size', sortBy: 'size', width: 2}, {key: 'manage', text: 'Manage', width: 2}, ]; const mobileHeaders = [ diff --git a/modules/videos/channel/lib.py b/modules/videos/channel/lib.py index 71e81d68..de60bc8d 100644 --- a/modules/videos/channel/lib.py +++ b/modules/videos/channel/lib.py @@ -26,20 +26,17 @@ async def get_minimal_channels() -> List[dict]: # Get all channels, even if they don't have videos. stmt = ''' SELECT - c.id, name, directory, url, download_frequency, info_date, - (select next_download from download d where d.url=c.url) AS next_download + c.id, name, directory, c.url, download_frequency, + COUNT(v.id) as video_count, + SUM(fg.size)::BIGINT AS size FROM channel AS c - ORDER BY LOWER(name) + LEFT JOIN video v on c.id = v.channel_id + LEFT JOIN file_group fg on fg.id = v.file_group_id + GROUP BY 1, 2, 3, 4, 5 ''' curs.execute(stmt) - channels = list(map(dict, curs.fetchall())) - - video_counts = await get_channels_video_count() - - for channel in channels: - channel_id = channel['id'] - channel['video_count'] = video_counts[channel_id] + channels = sorted([dict(i) for i in curs.fetchall()], key=lambda i: i['name'].lower()) return channels