def get_vids_from_profile(profile_id, request): try: profile = UserProfile.objects.get(pk=profile_id) except UserProfile.DoesNotExist: return None user = profile.user user_channels = profile.channels.all().values_list('id', flat=True).distinct() my_videos = Video.objects.filter(Q(uploader=user) | Q(channel__id__in=user_channels)).order_by('-created') my_videos_count = my_videos.count() if my_videos: my_videos_list = [] for vid in my_videos: if vid.channel: # if video is part of a channel # account_level of channel owner will be used account_level = vid.channel.owner.userprofile.account_level else: # else use account_level of uploader account_level = vid.uploader.userprofile.account_level video_dict = {} video_dict['video'] = vid video_dict['account_level'] = account_level check_video = is_expired(vid) if account_level.video_validity and not vid.youtube_embed_url: video_dict['expired'] = check_video video_dict['days_left'] = days_left(vid) my_videos_list.append(video_dict) paginator = Paginator(my_videos_list, 25) try: page = int(request.GET.get('page', '1')) except ValueError: page = 1 # If page request (9999) is out of range, deliver last page of results. try: latest_submissions_page = paginator.page(page) except (EmptyPage, InvalidPage): latest_submissions_page = paginator.page(paginator.num_pages) next_page = latest_submissions_page.next_page_number() prev_page = latest_submissions_page.previous_page_number() context = {'latest_submissions_page':latest_submissions_page, 'paginator':paginator, 'next_page':next_page, 'prev_page':prev_page, 'my_videos_count':my_videos_count} else: context = None return context
def handle_noargs(self, **options): videos = Video.objects.all() notify = {} delete = {} clear_video = {} for video in videos: if video.uploader: if video.channel: # if video is part of a channel # account_level of channel owner will be used account_level = video.channel.owner.userprofile.account_level else: # else use account_level of uploader account_level = video.uploader.userprofile.account_level if account_level.video_validity and not video.youtube_embed_url: if not video.expired: expired = is_expired(video) if expired: # Notify user user_expired_vids = notify.get( str(video.uploader.id), []) user_expired_vids.append(video) notify[str(video.uploader.id)] = user_expired_vids else: print 'Video has already expired! %s; slug=%s' % ( video, video.slug) if is_deletable(video): user_deleted_vids = delete.get( str(video.uploader.id), []) user_deleted_vids.append(video) delete[str(video.uploader.id)] = user_deleted_vids else: print ">>> Not deletable" #send_delete_warning(video) else: if not video.youtube_embed_url: if not video.expiry_date: expiry_date = video.created + datetime.timedelta( days=DAYS_BEFORE_EXPIRATION) video.expiry_date = expiry_date video.save() expired = days_left(video) if not video.expired: if expired <= 0: video_status = True video.expired = True video.save() else: if is_deletable(video): user_deleted_vids = delete.get('None', []) user_deleted_vids.append(video) delete['None'] = user_deleted_vids #send_delete_warning(video) if video.youtube_embed_url: today = datetime.date.today() print "Checking if %s's youtube expiry, %s, has expired." % ( video, video.youtube_video_expiry_date) if video.youtube_video_expiry_date: days = video.youtube_video_expiry_date.date() - today print "YouTube Video Expiry Days left: %s" % days.days if days.days <= 0: user_clear_vids = delete.get(str(video.uploader.id), []) user_clear_vids.append(video) clear_video[str(video.uploader.id)] = user_clear_vids print "List of videos to notify users about expiration:" print notify print "List of videos to notify users about deletion:" print delete # Send actual notifications here print "Expiring videos" # For expiring videos for user, vids in notify.items(): print user, vids uploader = User.objects.get(id=int(user)) expired_video_names = "".join([v.title + "\n\t" for v in vids]) print "Expired video names:" print expired_video_names message = \ """ Hello %(username)s, You have videos expiring today, %(now)s! %(expired_video_names)s Other users and you won't be able to view the video from %(site)s, but you will have an option to download it or send it to Youtube for another 30 days. However after the 30 days it will be deleted from the site. Thanks, ------------------------- %(site)s Team """ % \ ({'expired_video_names': expired_video_names, 'now': datetime.date.today().isoformat(), 'username': uploader.username, 'site': SITE,}) send_mail('%s: Video Expired' % SITE, message, "no-reply@%s.com" % SITE.lower(), [uploader.email], fail_silently=False) print 'Email Sent to username: %s! %s has expired.' % ( uploader, expired_video_names) print "Videos to delete" # For videos to delete for user2, vids2 in delete.items(): print user2, vids2 deletable_video_names = "".join([v.title + "\n\t" for v in vids2]) print "Deletable video names:" print deletable_video_names # Delete the actual videos print vids2 for v in vids2: v.delete() print "Permanently deleted: ", v.title #Handles old videos with uploader are set to None if not user2 == 'None': uploader = User.objects.get(id=int(user2)) message = \ """ Hello %(username)s, The following videos have been deleted from %(site)s today, %(now)s! %(deletable_video_names)s The video has already exceeded the allowable time it would be stored on %(site)s.com, for further info contact us. Thanks, ------------------------- %(site)s Team """ % \ ({'username': uploader.username, 'now': datetime.date.today().isoformat(), 'deletable_video_names': deletable_video_names, 'site': SITE,}) send_mail('%s: Video Deleted' % SITE, message, "no-reply@%s.com" % SITE.lower(), [uploader.email], fail_silently=False) for user3, vids3 in clear_video.items(): print user3, vids3 uploader = User.objects.get(id=int(user3)) clear_videoupload_names = "".join( [vid3.title + "\n\t" for vid3 in vids3]) print "Deletable video files:" print clear_videoupload_names # Delete the videofiles for vid3 in vids3: try: delete_videoupload(vid3) vid3.youtube_video_expiry_date = None vid3.save() print "Deleted video file on server: ", vid3.title message = \ """ Hello %(username)s, The following videos have been deleted from %(site)s today, %(now)s! %(deletable_video_names)s The video has already exceeded the allowable time it would be stored on %(site)s.com, for further info contact us. Thanks, ------------------------- %(site)s Team """ % \ ({'username': uploader.username, 'now': datetime.date.today().isoformat(), 'deletable_video_names': clear_videoupload_names, 'site': SITE,}) send_mail('%s: Video Deleted' % SITE, message, "no-reply@%s.com" % SITE.lower(), [uploader.email], fail_silently=False) print "Email Sent to %s" % uploader.username except os.error: print 'ERROR when deleting'
def handle_noargs(self, **options): videos = Video.objects.all() notify = {} delete = {} clear_video = {} for video in videos: if video.uploader: if video.channel: # if video is part of a channel # account_level of channel owner will be used account_level = video.channel.owner.userprofile.account_level else: # else use account_level of uploader account_level = video.uploader.userprofile.account_level if account_level.video_validity and not video.youtube_embed_url: if not video.expired: expired = is_expired(video) if expired: # Notify user user_expired_vids = notify.get(str(video.uploader.id), []) user_expired_vids.append(video) notify[str(video.uploader.id)] = user_expired_vids else: print 'Video has already expired! %s; slug=%s' % (video, video.slug) if is_deletable(video): user_deleted_vids = delete.get(str(video.uploader.id), []) user_deleted_vids.append(video) delete[str(video.uploader.id)] = user_deleted_vids else: print ">>> Not deletable" #send_delete_warning(video) else: if not video.youtube_embed_url: if not video.expiry_date: expiry_date = video.created + datetime.timedelta(days=DAYS_BEFORE_EXPIRATION) video.expiry_date = expiry_date video.save() expired = days_left(video) if not video.expired: if expired <= 0: video_status = True video.expired = True video.save() else: if is_deletable(video): user_deleted_vids = delete.get('None', []) user_deleted_vids.append(video) delete['None'] = user_deleted_vids #send_delete_warning(video) if video.youtube_embed_url: today = datetime.date.today() print "Checking if %s's youtube expiry, %s, has expired." % (video, video.youtube_video_expiry_date) if video.youtube_video_expiry_date: days = video.youtube_video_expiry_date.date() - today print "YouTube Video Expiry Days left: %s" % days.days if days.days <= 0: user_clear_vids = delete.get(str(video.uploader.id), []) user_clear_vids.append(video) clear_video [str(video.uploader.id)] = user_clear_vids print "List of videos to notify users about expiration:" print notify print "List of videos to notify users about deletion:" print delete # Send actual notifications here print "Expiring videos" # For expiring videos for user, vids in notify.items(): print user, vids uploader = User.objects.get(id=int(user)) expired_video_names = "".join([v.title + "\n\t" for v in vids]) print "Expired video names:" print expired_video_names message = \ """ Hello %(username)s, You have videos expiring today, %(now)s! %(expired_video_names)s Other users and you won't be able to view the video from %(site)s, but you will have an option to download it or send it to Youtube for another 30 days. However after the 30 days it will be deleted from the site. Thanks, ------------------------- %(site)s Team """ % \ ({'expired_video_names': expired_video_names, 'now': datetime.date.today().isoformat(), 'username': uploader.username, 'site': SITE,}) send_mail('%s: Video Expired' % SITE, message, "no-reply@%s.com" % SITE.lower(), [uploader.email], fail_silently=False) print 'Email Sent to username: %s! %s has expired.' % (uploader, expired_video_names) print "Videos to delete" # For videos to delete for user2, vids2 in delete.items(): print user2, vids2 deletable_video_names = "".join([v.title + "\n\t" for v in vids2]) print "Deletable video names:" print deletable_video_names # Delete the actual videos print vids2 for v in vids2: v.delete() print "Permanently deleted: ", v.title #Handles old videos with uploader are set to None if not user2 == 'None': uploader = User.objects.get(id=int(user2)) message = \ """ Hello %(username)s, The following videos have been deleted from %(site)s today, %(now)s! %(deletable_video_names)s The video has already exceeded the allowable time it would be stored on %(site)s.com, for further info contact us. Thanks, ------------------------- %(site)s Team """ % \ ({'username': uploader.username, 'now': datetime.date.today().isoformat(), 'deletable_video_names': deletable_video_names, 'site': SITE,}) send_mail('%s: Video Deleted' % SITE, message, "no-reply@%s.com" % SITE.lower(), [uploader.email], fail_silently=False) for user3, vids3 in clear_video.items(): print user3, vids3 uploader = User.objects.get(id=int(user3)) clear_videoupload_names = "".join([vid3.title + "\n\t" for vid3 in vids3]) print "Deletable video files:" print clear_videoupload_names # Delete the videofiles for vid3 in vids3: try: delete_videoupload(vid3) vid3.youtube_video_expiry_date = None vid3.save() print "Deleted video file on server: ", vid3.title message = \ """ Hello %(username)s, The following videos have been deleted from %(site)s today, %(now)s! %(deletable_video_names)s The video has already exceeded the allowable time it would be stored on %(site)s.com, for further info contact us. Thanks, ------------------------- %(site)s Team """ % \ ({'username': uploader.username, 'now': datetime.date.today().isoformat(), 'deletable_video_names': clear_videoupload_names, 'site': SITE,}) send_mail('%s: Video Deleted' % SITE, message, "no-reply@%s.com" % SITE.lower(), [uploader.email], fail_silently=False) print "Email Sent to %s" % uploader.username except os.error: print 'ERROR when deleting'