28 lines
757 B
Python
28 lines
757 B
Python
from funkwhale_api.taskapp import celery
|
|
|
|
from . import library as lb
|
|
from . import models
|
|
|
|
|
|
@celery.app.task(name='federation.scan_library')
|
|
@celery.require_instance(models.Library, 'library')
|
|
def scan_library(library):
|
|
if not library.federation_enabled:
|
|
return
|
|
|
|
data = lb.get_library_data(library.url)
|
|
scan_library_page.delay(
|
|
library_id=library.id, page_url=data['first'])
|
|
|
|
|
|
@celery.app.task(name='federation.scan_library_page')
|
|
@celery.require_instance(models.Library, 'library')
|
|
def scan_library_page(library, page_url):
|
|
if not library.federation_enabled:
|
|
return
|
|
|
|
data = lb.get_library_page(library, page_url)
|
|
lts = []
|
|
for item_serializer in data['items']:
|
|
lts.append(item_serializer.save())
|