Base setup

This commit is contained in:
2025-09-23 13:30:03 +08:00
parent 1057ed8690
commit e51154bb29
34 changed files with 2574 additions and 1 deletions

51
crawler/serializers.py Normal file
View File

@@ -0,0 +1,51 @@
from rest_framework import serializers
from .models import Website, CrawlTask, CrawledContent, CrawlLog, SearchKeyword, MediaFile
class WebsiteSerializer(serializers.ModelSerializer):
class Meta:
model = Website
fields = '__all__'
class CrawlTaskSerializer(serializers.ModelSerializer):
websites = WebsiteSerializer(many=True, read_only=True)
progress_percentage = serializers.ReadOnlyField()
class Meta:
model = CrawlTask
fields = '__all__'
class MediaFileSerializer(serializers.ModelSerializer):
file_size_display = serializers.ReadOnlyField()
class Meta:
model = MediaFile
fields = '__all__'
class CrawledContentSerializer(serializers.ModelSerializer):
website_name = serializers.CharField(source='website.name', read_only=True)
website_region = serializers.CharField(source='website.region', read_only=True)
task_name = serializers.CharField(source='task.name', read_only=True)
media_files = MediaFileSerializer(many=True, read_only=True)
class Meta:
model = CrawledContent
fields = '__all__'
class CrawlLogSerializer(serializers.ModelSerializer):
website_name = serializers.CharField(source='website.name', read_only=True)
task_name = serializers.CharField(source='task.name', read_only=True)
class Meta:
model = CrawlLog
fields = '__all__'
class SearchKeywordSerializer(serializers.ModelSerializer):
class Meta:
model = SearchKeyword
fields = '__all__'