mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-08-05 16:58:59 +00:00
Speeding up score calculation.
This commit is contained in:
parent
5cf7c3798b
commit
fc6672bab0
2 changed files with 20 additions and 10 deletions
|
@ -3,7 +3,7 @@ from django.contrib.auth.models import User
|
|||
import datetime
|
||||
import random
|
||||
from django.core.cache import cache
|
||||
from apps.rss_feeds.models import Feed, Story
|
||||
from apps.rss_feeds.models import Feed, Story, Tag
|
||||
from utils import feedparser, object_manager, json
|
||||
from apps.analyzer.models import ClassifierFeed, ClassifierAuthor, ClassifierTag, ClassifierTitle
|
||||
from apps.analyzer.models import apply_classifier_titles, apply_classifier_feeds, apply_classifier_authors, apply_classifier_tags
|
||||
|
@ -101,9 +101,15 @@ class UserSubscription(models.Model):
|
|||
feed=self.feed,
|
||||
story__story_date__gte=date_delta)
|
||||
read_stories_ids = [rs.story.id for rs in read_stories]
|
||||
stories_db = Story.objects.filter(story_feed=self.feed,
|
||||
story_date__gte=date_delta)\
|
||||
.exclude(id__in=read_stories_ids)
|
||||
# print "Read Stories IDs: %s" % read_stories_ids
|
||||
# print "Date delta: %s" % date_delta
|
||||
from django.db import connection
|
||||
connection.queries = []
|
||||
stories_db = Story.objects.select_related('story_author')\
|
||||
.exclude(id__in=read_stories_ids)\
|
||||
.filter(story_feed=self.feed,
|
||||
story_date__gte=date_delta)
|
||||
# print "Stories_db: %s" % stories_db.count()
|
||||
stories = self.feed.format_stories(stories_db)
|
||||
# print ' Stories: %s\t' % stories_db.count(),
|
||||
# if read_stories.count(): print '(%s read)' % (read_stories.count())
|
||||
|
|
|
@ -4,7 +4,7 @@ from django.contrib.auth.models import User
|
|||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.core import serializers
|
||||
from django.core.cache import cache
|
||||
from utils import feedparser, object_manager
|
||||
from utils import feedparser, object_manager, json
|
||||
from utils.dateutil.parser import parse as dateutil_parse
|
||||
from utils.feed_functions import encode, prints, mtime, levenshtein_distance
|
||||
import time, datetime, random
|
||||
|
@ -104,7 +104,8 @@ class Feed(models.Model):
|
|||
story_content = story_content,
|
||||
story_author = story_author,
|
||||
story_permalink = story.get('link'),
|
||||
story_guid = story.get('guid') or story.get('id') or story.get('link')
|
||||
story_guid = story.get('guid') or story.get('id') or story.get('link'),
|
||||
story_tags = json.encode([t.name for t in story_tags])
|
||||
)
|
||||
try:
|
||||
ret_values[ENTRY_NEW] += 1
|
||||
|
@ -138,7 +139,8 @@ class Feed(models.Model):
|
|||
story_original_content = original_content,
|
||||
story_author = story_author,
|
||||
story_permalink = story.get('link'),
|
||||
story_guid = story.get('guid') or story.get('id') or story.get('link')
|
||||
story_guid = story.get('guid') or story.get('id') or story.get('link'),
|
||||
story_tags = json.encode([t.name for t in story_tags])
|
||||
)
|
||||
s.tags.clear()
|
||||
[s.tags.add(tcat) for tcat in story_tags]
|
||||
|
@ -194,11 +196,12 @@ class Feed(models.Model):
|
|||
|
||||
def format_stories(self, stories_db):
|
||||
stories = []
|
||||
|
||||
# from django.db import connection
|
||||
# print "Formatting Stories: %s" % stories_db.count()
|
||||
for story_db in stories_db:
|
||||
story = {}
|
||||
story_tags = story_db.tags.all()
|
||||
story['story_tags'] = [tag.name for tag in story_tags]
|
||||
story['story_tags'] = story_db.story_tags
|
||||
story['short_parsed_date'] = format_story_link_date__short(story_db.story_date)
|
||||
story['long_parsed_date'] = format_story_link_date__long(story_db.story_date)
|
||||
story['story_date'] = story_db.story_date
|
||||
|
@ -206,7 +209,7 @@ class Feed(models.Model):
|
|||
story['story_title'] = story_db.story_title
|
||||
story['story_content'] = story_db.story_content
|
||||
story['story_permalink'] = story_db.story_permalink
|
||||
story['story_feed_id'] = story_db.story_feed.id
|
||||
story['story_feed_id'] = self
|
||||
story['id'] = story_db.id
|
||||
|
||||
stories.append(story)
|
||||
|
@ -325,6 +328,7 @@ class Story(models.Model):
|
|||
story_permalink = models.CharField(max_length=1000)
|
||||
story_guid = models.CharField(max_length=1000)
|
||||
story_past_trim_date = models.BooleanField(default=False)
|
||||
story_tags = models.CharField(max_length=1000)
|
||||
tags = models.ManyToManyField(Tag)
|
||||
|
||||
def __unicode__(self):
|
||||
|
|
Loading…
Add table
Reference in a new issue