1 from django
.db
.models
import Count
2 from mygpo
.api
.models
import Subscription
, Podcast
3 from mygpo
.data
.models
import PodcastTag
6 def podcast_group_entry(group
, subscriber_count
=None):
7 from mygpo
.search
.models
import SearchEntry
9 if not subscriber_count
:
10 subscriber_count
= Subscription
.objects
.filter(podcast__group
=group
).values('user').distinct().count()
13 entry
.text
= group
.title
14 entry
.obj_type
= 'podcast_group'
15 entry
.obj_id
= group
.id
17 podcasts
= Podcast
.objects
.filter(group
=group
)
18 entry
.tags
= tag_string(PodcastTag
.objects
.filter(podcast__in
=podcasts
))
20 entry
.priority
= subscriber_count
25 def podcast_entry(podcast
, subscriber_count
=None):
26 from mygpo
.search
.models
import SearchEntry
28 if not subscriber_count
:
29 subscriber_count
= Subscription
.objects
.filter(podcast
=podcast
).values('user').distinct().count()
32 entry
.text
= podcast
.title
33 entry
.obj_type
= 'podcast'
34 entry
.obj_id
= podcast
.id
36 entry
.tags
= tag_string(PodcastTag
.objects
.filter(podcast
=podcast
))
38 entry
.priority
= subscriber_count
43 def tag_string(tags
, max_length
=200):
45 returns a string of the most-assigned tags
47 tags is expected to be a PodcastTag QuerySet
49 tags
= PodcastTag
.objects
.top_tags(tags
)
50 return ','.join([t
['tag'] for t
in tags
])[:max_length
]