Browse Source

Added content_size to Page model

master
Raphael Roberts 7 years ago
parent
commit
c85da54583
  1. 2
      restscrape/__init__.py
  2. 19
      restscrape/migrations/0003_page_content_size.py
  3. 14
      restscrape/models.py

2
restscrape/__init__.py

@ -1,2 +0,0 @@
from restscrape import migrations
from restscrape import scraping

19
restscrape/migrations/0003_page_content_size.py

@ -0,0 +1,19 @@
# Generated by Django 2.2.1 on 2019-05-17 20:16
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('restscrape', '0002_auto_20190517_1311'),
]
operations = [
migrations.AddField(
model_name='page',
name='content_size',
field=models.PositiveIntegerField(default=0),
preserve_default=False,
),
]

14
restscrape/models.py

@ -1,7 +1,10 @@
from django.db import models
from django.core.files.base import ContentFile
import datetime
from urllib.parse import quote_plus
from django.core.files.base import ContentFile
from django.db import models
import pytz
# Create your models here.
@ -9,14 +12,21 @@ class Page(models.Model):
url = models.CharField(max_length=300, primary_key=True)
access_time = models.DateTimeField()
page_content = models.FileField(upload_to='page_cache')
content_size = models.PositiveIntegerField()
@property
def filename(self):
return quote_plus(self.url)
def write(self, page_content):
self.content_size = len(page_content)
file = ContentFile(page_content)
self.access_time = datetime.datetime.now(pytz.utc)
self.page_content.save(name=self.filename, content=file)
def read(self):
return self.page_content.read()
def delete(self):
self.page_content.delete()
super().delete()
Loading…
Cancel
Save