More episode filters, group by published section
This commit is contained in:
parent
0da88e3577
commit
96f2b70f05
3 changed files with 25 additions and 2 deletions
|
@ -32,16 +32,22 @@ ListModel {
|
|||
All: '',
|
||||
Fresh: 'new or downloading',
|
||||
Downloaded: 'downloaded or downloading',
|
||||
UnplayedDownloads: 'downloaded and not played',
|
||||
FinishedDownloads: 'downloaded and finished',
|
||||
HideDeleted: 'not deleted',
|
||||
Deleted: 'deleted',
|
||||
ShortDownloads: 'downloaded and min > 0 and min < 10',
|
||||
})
|
||||
|
||||
property var filters: ([
|
||||
{ label: 'All', query: episodeListModel.queries.All },
|
||||
{ label: 'Fresh', query: episodeListModel.queries.Fresh },
|
||||
{ label: 'Downloaded', query: episodeListModel.queries.Downloaded },
|
||||
{ label: 'Unplayed downloads', query: episodeListModel.queries.UnplayedDownloads },
|
||||
{ label: 'Finished downloads', query: episodeListModel.queries.FinishedDownloads },
|
||||
{ label: 'Hide deleted', query: episodeListModel.queries.HideDeleted },
|
||||
{ label: 'Deleted', query: episodeListModel.queries.Deleted },
|
||||
{ label: 'Deleted episodes', query: episodeListModel.queries.Deleted },
|
||||
{ label: 'Short downloads (< 10 min)', query: episodeListModel.queries.ShortDownloads },
|
||||
])
|
||||
|
||||
property bool ready: false
|
||||
|
|
17
main.py
17
main.py
|
@ -35,6 +35,8 @@ from gpodder.api import query
|
|||
|
||||
import logging
|
||||
import functools
|
||||
import time
|
||||
import datetime
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
@ -141,6 +143,8 @@ class gPotherSide:
|
|||
return [self.convert_podcast(podcast) for podcast in podcasts]
|
||||
|
||||
def convert_episode(self, episode):
|
||||
now = datetime.datetime.now()
|
||||
tnow = time.time()
|
||||
return {
|
||||
'id': episode.id,
|
||||
'title': episode.trimmed_title,
|
||||
|
@ -149,9 +153,22 @@ class gPotherSide:
|
|||
'isNew': episode.is_new,
|
||||
'playbackProgress': self._get_playback_progress(episode),
|
||||
'published': util.format_date(episode.published),
|
||||
'section': self._format_published_section(now, tnow, episode.published),
|
||||
'hasShownotes': episode.description != '',
|
||||
}
|
||||
|
||||
def _format_published_section(self, now, tnow, published):
|
||||
diff = (tnow - published)
|
||||
|
||||
if diff < 60 * 60 * 24 * 7:
|
||||
return util.format_date(published)
|
||||
|
||||
dt = datetime.datetime.fromtimestamp(published)
|
||||
if dt.year == now.year:
|
||||
return dt.strftime('%B %Y')
|
||||
|
||||
return dt.strftime('%Y')
|
||||
|
||||
def load_episodes(self, id=ALL_PODCASTS, eql=None):
|
||||
if id is not None and id != self.ALL_PODCASTS:
|
||||
podcasts = [self._get_podcast_by_id(id)]
|
||||
|
|
|
@ -59,7 +59,7 @@ SlidePage {
|
|||
|
||||
model: GPodderEpisodeListModel { id: episodesListModel }
|
||||
|
||||
section.property: 'published'
|
||||
section.property: 'section'
|
||||
section.delegate: SectionHeader { text: section }
|
||||
|
||||
delegate: EpisodeItem { }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue