add longer source indexing options and a never option, resolves #68
This commit is contained in:
		
							parent
							
								
									adeafbfcb4
								
							
						
					
					
						commit
						972c184c70
					
				| 
						 | 
					@ -158,6 +158,9 @@ class Source(models.Model):
 | 
				
			||||||
        EVERY_6_HOURS = 21600, _('Every 6 hours')
 | 
					        EVERY_6_HOURS = 21600, _('Every 6 hours')
 | 
				
			||||||
        EVERY_12_HOURS = 43200, _('Every 12 hours')
 | 
					        EVERY_12_HOURS = 43200, _('Every 12 hours')
 | 
				
			||||||
        EVERY_24_HOURS = 86400, _('Every 24 hours')
 | 
					        EVERY_24_HOURS = 86400, _('Every 24 hours')
 | 
				
			||||||
 | 
					        EVERY_3_DAYS = 259200, _('Every 3 days')
 | 
				
			||||||
 | 
					        EVERY_7_DAYS = 604800, _('Every 7 days')
 | 
				
			||||||
 | 
					        NEVER = 0, _('Never')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    uuid = models.UUIDField(
 | 
					    uuid = models.UUIDField(
 | 
				
			||||||
        _('uuid'),
 | 
					        _('uuid'),
 | 
				
			||||||
| 
						 | 
					@ -218,7 +221,7 @@ class Source(models.Model):
 | 
				
			||||||
        _('index schedule'),
 | 
					        _('index schedule'),
 | 
				
			||||||
        choices=IndexSchedule.choices,
 | 
					        choices=IndexSchedule.choices,
 | 
				
			||||||
        db_index=True,
 | 
					        db_index=True,
 | 
				
			||||||
        default=IndexSchedule.EVERY_6_HOURS,
 | 
					        default=IndexSchedule.EVERY_24_HOURS,
 | 
				
			||||||
        help_text=_('Schedule of how often to index the source for new media')
 | 
					        help_text=_('Schedule of how often to index the source for new media')
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
    download_media = models.BooleanField(
 | 
					    download_media = models.BooleanField(
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -47,17 +47,18 @@ def source_post_save(sender, instance, created, **kwargs):
 | 
				
			||||||
            priority=0,
 | 
					            priority=0,
 | 
				
			||||||
            verbose_name=verbose_name.format(instance.name)
 | 
					            verbose_name=verbose_name.format(instance.name)
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
        delete_task_by_source('sync.tasks.index_source_task', instance.pk)
 | 
					        if instance.index_schedule > 0:
 | 
				
			||||||
        log.info(f'Scheduling media indexing for source: {instance.name}')
 | 
					            delete_task_by_source('sync.tasks.index_source_task', instance.pk)
 | 
				
			||||||
        verbose_name = _('Index media from source "{}"')
 | 
					            log.info(f'Scheduling media indexing for source: {instance.name}')
 | 
				
			||||||
        index_source_task(
 | 
					            verbose_name = _('Index media from source "{}"')
 | 
				
			||||||
            str(instance.pk),
 | 
					            index_source_task(
 | 
				
			||||||
            repeat=instance.index_schedule,
 | 
					                str(instance.pk),
 | 
				
			||||||
            queue=str(instance.pk),
 | 
					                repeat=instance.index_schedule,
 | 
				
			||||||
            priority=5,
 | 
					                queue=str(instance.pk),
 | 
				
			||||||
            verbose_name=verbose_name.format(instance.name),
 | 
					                priority=5,
 | 
				
			||||||
            remove_existing_tasks=True
 | 
					                verbose_name=verbose_name.format(instance.name),
 | 
				
			||||||
        )
 | 
					                remove_existing_tasks=True
 | 
				
			||||||
 | 
					            )
 | 
				
			||||||
    # Trigger the post_save signal for each media item linked to this source as various
 | 
					    # Trigger the post_save signal for each media item linked to this source as various
 | 
				
			||||||
    # flags may need to be recalculated
 | 
					    # flags may need to be recalculated
 | 
				
			||||||
    for media in Media.objects.filter(source=instance):
 | 
					    for media in Media.objects.filter(source=instance):
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue