]> git.parisson.com Git - telemeta.git/commitdiff
update nyuad list command
authorGuillaume Pellerin <guillaume.pellerin@ircam.fr>
Fri, 9 Apr 2021 12:25:43 +0000 (14:25 +0200)
committerGuillaume Pellerin <guillaume.pellerin@ircam.fr>
Fri, 9 Apr 2021 12:25:43 +0000 (14:25 +0200)
telemeta/management/commands/telemeta-process-nyuad-corpus.py

index a5a48483aa115fa62e3d022927c60ba23be64952..6d8c962567fae4d8f2f2d152637fe0613935d481 100644 (file)
@@ -29,32 +29,51 @@ class Command(BaseCommand):
     month = 11
     day = 11
     username = 'nyuad'
+    items = []
 
-
-    def process(self, item, log):
-        log.write(item.collection.code + '/' + item.code + '\n')
+    def process(self, item):
+        if item.file and item.code:
+            print(item.id)
+            self.log.write(item.collection.code + '/' + item.code + '\n')
 
     def handle(self, *args, **kwargs):
-        log = open(kwargs['log_file'], 'w')
-        limit_date = datetime.datetime(self.year-51, self.month, self.day)
+        self.log = open(kwargs['log_file'], 'w')
+        current_date = datetime.datetime(self.year, self.month, self.day)
+        pub_date = datetime.date(self.year-51, self.month, self.day)
 
-        pub_items = MediaItem.objects.filter(recorded_from_date__lte=limit_date).select_related('collection')
+        self.pub_items = MediaItem.objects.filter(
+            recorded_from_date__lte=pub_date, 
+            file__isnull=False, code__isnull=False)
 
-        for item in pub_items:
-            self.process(item, log)
+        revisions = Revision.objects.filter(element_type='item', time__lte=current_date)
+        revisions_ids = [revision.element_id for revision in revisions]
+        for item in self.pub_items:
+            if item.id in revisions_ids:
+                self.items.append(item)
 
         user = User.objects.get(username=self.username)
-        playlists = playlists.objects.filter(user=user)
+        playlists = Playlist.objects.filter(author=user)
 
         for playlist in playlists:
             for resource in playlist.resources.all():
                 if resource.resource_type == 'item':
                     item = MediaItem.objects.get(id=resource.resource_id)
-                    self.process(item, log)
+                    if item.recorded_from_date:
+                        if item.recorded_from_date <= pub_date:
+                            if not item in self.items:
+                                self.items.append(item)
                 elif resource.resource_type == 'collection':
                     collection = MediaCollection.objects.get(id=resource.resource_id)
                     for item in collection.items.all():
-                        self.process(item, log)
-
-        log.close()
+                        if item.recorded_from_date:
+                            if item.recorded_from_date <= pub_date:
+                                if not item in self.items:
+                                    self.items.append(item)
+
+       for item in self.items:
+            self.process(item)
+        
+        print(len(self.items))
+        self.log.close()