Exemple #1
0
def track_search(keylist):
    track=[]
    for keyword in keylist:
        tmp= Track.select(Track.q.title.contains(keyword))
        track.extend(tmp)
    track=set(track)
    return track
Exemple #2
0
def recently_played(n):
    """
    Returns n latest played tracks
    """
    try:
        recent = [t.track for t in TrackStatistics.select(orderBy=DESC(TrackStatistics.q.last_played))[:10]]
        if len(recent) < n:
            recent = recent + [track for track in Track.select()[:n-len(recent)] if track not in recent]
        return recent
    except SQLObjectNotFound:
        return []
Exemple #3
0
def top_tracks(n):
    """
    Returns the top n tracks
    """
    try:
        top = [t.track for t in TrackStatistics.select(orderBy=DESC(TrackStatistics.q.play_count))[:10]]
        if len(top) < n:
            top = top + [track for track in Track.select()[:n-len(top)] if track not in top]
        return top
    except SQLObjectNotFound:
        return []
Exemple #4
0
    def requires_update(self, path):
        if self.full: return True

        stat_info = os.stat(path)
        if stat.S_ISDIR(stat_info.st_mode):
            if stat_info.st_mtime > self.last_shutdown_time:
                return True
            return False

        if stat.S_ISREG(stat_info.st_mode):
            # if file hasn't been catalogued before
            # index it anyway
            already_done = list(Track.select(Track.q.url == 'file://' + path))
            if not already_done:
                return True
            if stat_info.st_mtime > self.last_shutdown_time:
                return True

        return False
Exemple #5
0
 def on_deleted(self, event):
     # instead of bothering with file/directory changes
     # we simply match path and drop all tracks.
     tracks = Track.select(Track.q.url.startswith('file://'+event.src_path))
     [track.destroySelf() for track in tracks]
Exemple #6
0
def find_existing(url, attrs):
    #TODO: improve
    return list(Track.select(Track.q.url == ('file://'+url)))