Beispiel #1
0
    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
Beispiel #2
0
    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)
Beispiel #3
0
    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
Beispiel #4
0
 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)