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