ytsm/app/YtManagerApp/views/actions.py
Jacob Mansfield [root@Helix] 85092935a6 Allow syncing a single channel
2019-11-22 17:11:52 +00:00

55 lines
1.5 KiB
Python

from django.contrib.auth.mixins import LoginRequiredMixin
from django.http import JsonResponse
from django.views.generic import View
from YtManagerApp.management.jobs.synchronize import SynchronizeJob
from YtManagerApp.models import Video, Subscription
class SyncNowView(LoginRequiredMixin, View):
def post(self, *args, **kwargs):
if 'pk' in kwargs:
SynchronizeJob.schedule_now_for_subscription(Subscription.objects.get(id=kwargs['pk']))
else:
SynchronizeJob.schedule_now()
return JsonResponse({
'success': True
})
class DeleteVideoFilesView(LoginRequiredMixin, View):
def post(self, *args, **kwargs):
video = Video.objects.get(id=kwargs['pk'])
video.delete_files()
return JsonResponse({
'success': True
})
class DownloadVideoFilesView(LoginRequiredMixin, View):
def post(self, *args, **kwargs):
video = Video.objects.get(id=kwargs['pk'])
video.download()
return JsonResponse({
'success': True
})
class MarkVideoWatchedView(LoginRequiredMixin, View):
def post(self, *args, **kwargs):
video = Video.objects.get(id=kwargs['pk'])
video.mark_watched()
return JsonResponse({
'success': True
})
class MarkVideoUnwatchedView(LoginRequiredMixin, View):
def post(self, *args, **kwargs):
video = Video.objects.get(id=kwargs['pk'])
video.mark_unwatched()
video.save()
return JsonResponse({
'success': True
})