def save(self, request, commit=True): comment = super().save(commit=False) comment.ip_address = get_ip_address(request) comment.created_by = request.user comment.html = self.html if commit: comment.save() return comment
def post(self, request, id, slug): manga = self.get_manga_for_view(id) try: manga_archive = MangaArchive.objects.get(manga=manga) except MangaArchive.DoesNotExist: manga_archive = MangaArchiveGenerator.generate(manga) if not manga_archive or not os.path.exists(manga_archive.file.path): MangaArchiveGenerator.generate(manga) messages.error(request, _('Sorry, the download is currently unavailable.')) return redirect('manga', id=id, slug=slug) link, created = DownloadLink.objects.get_or_create( url=manga_archive.file.url, ip_address=get_ip_address(request), created_by=request.user if request.user.is_authenticated() else None, ) if created: manga_archive.downloads += 1 manga_archive.save() return redirect('download', key=link.key, filename=manga_archive.name)
def save(self): report_manga = super().save(commit=False) report_manga.manga = self.manga report_manga.ip_address = get_ip_address(self.request) if self.request.user.is_authenticated(): report_manga.created_by = self.request.user report_manga.weight = self.request.user.report_weight else: report_manga.weight = self.ANONYMOUS_USER_REPORT_WEIGHT report_manga.save() total_weight = ReportManga.open.filter(manga=self.manga).aggregate(total_weight=Sum('weight')).get('total_weight', 0) if total_weight >= self.PENDING_WEIGHT: self.manga.status = MangaStatus.PENDING self.manga.save(self.manga.updated_by) send_email_alert( subject='[Fufufuu] Reported: {}'.format(self.manga.title), message=report_manga.email_text, ) return report_manga
def get(self, request, key, filename): download = get_object_or_404(DownloadLink, key=key, ip_address=get_ip_address(request)) return HttpResponseXAccel(url=download.url, filename=filename)