Exemple #1
0
    def get(self):
        self.response.headers['Content-Type'] = 'text/plain'
        url_segs = defaultdict(list)
        for segment in Segment.cache():
            url_segs[segment['url']].append(segment)

        keys_to_del = []
        for url, segments in url_segs.items():
            if len(segments) > 1:
                control_segment = segments[0]
                for segment in segments[1:]:
                    if segment['description'] == control_segment['description']:
                        keys_to_del.append(segment['key'])

        self.response.out.write("Keys to delete: %s\n" % keys_to_del)
        segs_to_del = [seg for seg in Segment.get(keys_to_del) if seg is not None]
        self.response.out.write("Segments to delete: %s\n" % segs_to_del)
        if len(segs_to_del):
            db.delete(segs_to_del)
            Segment.cache(True)
            self.response.out.write("\nDeleted marked segments and reset cache.")
        else:
            self.response.out.write("\nNo segments were deleted.")