shouts-author-stat
This commit is contained in:
parent
7a85390982
commit
57e1460356
4
main.py
4
main.py
|
@ -17,7 +17,7 @@ from resolvers.auth import confirm_email_handler
|
||||||
from services.main import storages_init
|
from services.main import storages_init
|
||||||
from services.stat.reacted import ReactedStorage
|
from services.stat.reacted import ReactedStorage
|
||||||
from services.stat.topicstat import TopicStat
|
from services.stat.topicstat import TopicStat
|
||||||
from services.stat.views import ViewStat
|
from services.stat.viewed import ViewedStorage
|
||||||
from services.zine.gittask import GitTask
|
from services.zine.gittask import GitTask
|
||||||
from services.zine.shoutauthor import ShoutAuthorStorage
|
from services.zine.shoutauthor import ShoutAuthorStorage
|
||||||
import_module("resolvers")
|
import_module("resolvers")
|
||||||
|
@ -32,7 +32,7 @@ middleware = [
|
||||||
async def start_up():
|
async def start_up():
|
||||||
await redis.connect()
|
await redis.connect()
|
||||||
await storages_init()
|
await storages_init()
|
||||||
views_stat_task = asyncio.create_task(ViewStat.worker())
|
views_stat_task = asyncio.create_task(ViewedStorage().worker())
|
||||||
print(views_stat_task)
|
print(views_stat_task)
|
||||||
reacted_storage_task = asyncio.create_task(ReactedStorage.worker())
|
reacted_storage_task = asyncio.create_task(ReactedStorage.worker())
|
||||||
print(reacted_storage_task)
|
print(reacted_storage_task)
|
||||||
|
|
|
@ -12,7 +12,7 @@ from orm.shout import Shout, ShoutTopic, ShoutReactionsFollower
|
||||||
from orm.user import User
|
from orm.user import User
|
||||||
from orm.topic import TopicFollower
|
from orm.topic import TopicFollower
|
||||||
from services.stat.reacted import ReactedStorage
|
from services.stat.reacted import ReactedStorage
|
||||||
from services.stat.views import ViewStat
|
from services.stat.viewed import ViewedStorage
|
||||||
|
|
||||||
OLD_DATE = "2016-03-05 22:22:00.350000"
|
OLD_DATE = "2016-03-05 22:22:00.350000"
|
||||||
ts = datetime.now()
|
ts = datetime.now()
|
||||||
|
@ -346,7 +346,7 @@ async def migrate(entry, storage):
|
||||||
raise Exception("[migration] content_item.ratings error: \n%r" % content_rating)
|
raise Exception("[migration] content_item.ratings error: \n%r" % content_rating)
|
||||||
|
|
||||||
# shout views
|
# shout views
|
||||||
await ViewStat.increment(shout_dict["slug"], amount=entry.get("views", 1))
|
await ViewedStorage.increment(shout_dict["slug"], amount=entry.get("views", 1))
|
||||||
# del shout_dict['ratings']
|
# del shout_dict['ratings']
|
||||||
shout_dict["oid"] = entry.get("_id")
|
shout_dict["oid"] = entry.get("_id")
|
||||||
storage["shouts"]["by_oid"][entry["_id"]] = shout_dict
|
storage["shouts"]["by_oid"][entry["_id"]] = shout_dict
|
||||||
|
|
|
@ -9,11 +9,10 @@ from base.resolvers import mutation, query
|
||||||
from orm.reaction import Reaction
|
from orm.reaction import Reaction
|
||||||
from orm.topic import Topic, TopicFollower
|
from orm.topic import Topic, TopicFollower
|
||||||
from orm.user import AuthorFollower, Role, User, UserRating, UserRole
|
from orm.user import AuthorFollower, Role, User, UserRating, UserRole
|
||||||
from services.auth.users import UserStorage
|
|
||||||
from services.stat.reacted import ReactedStorage
|
from services.stat.reacted import ReactedStorage
|
||||||
from services.stat.topicstat import TopicStat
|
from services.stat.topicstat import TopicStat
|
||||||
from services.zine.authors import AuthorsStorage
|
from services.zine.authors import AuthorsStorage
|
||||||
from services.zine.shoutauthor import ShoutAuthorStorage
|
from services.zine.shoutauthor import ShoutAuthor
|
||||||
|
|
||||||
# from .community import followed_communities
|
# from .community import followed_communities
|
||||||
from .inbox.load import get_total_unread_counter
|
from .inbox.load import get_total_unread_counter
|
||||||
|
@ -34,6 +33,7 @@ async def get_author_stat(slug):
|
||||||
# TODO: implement author stat
|
# TODO: implement author stat
|
||||||
with local_session() as session:
|
with local_session() as session:
|
||||||
return {
|
return {
|
||||||
|
"shouts": session.query(ShoutAuthor).where(ShoutAuthor.author == slug).count(),
|
||||||
"followers": session.query(AuthorFollower).where(AuthorFollower.author == slug).count(),
|
"followers": session.query(AuthorFollower).where(AuthorFollower.author == slug).count(),
|
||||||
"followings": session.query(AuthorFollower).where(AuthorFollower.follower == slug).count(),
|
"followings": session.query(AuthorFollower).where(AuthorFollower.follower == slug).count(),
|
||||||
"rating": session.query(func.sum(UserRating.value)).where(UserRating.user == slug).first(),
|
"rating": session.query(func.sum(UserRating.value)).where(UserRating.user == slug).first(),
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
|
|
||||||
from sqlalchemy import and_, desc, select, text, func
|
from sqlalchemy import and_, desc, select, text, func
|
||||||
from sqlalchemy.orm import selectinload
|
|
||||||
|
|
||||||
from auth.authenticate import login_required
|
from auth.authenticate import login_required
|
||||||
from base.orm import local_session
|
from base.orm import local_session
|
||||||
from base.resolvers import mutation, query
|
from base.resolvers import mutation, query
|
||||||
|
@ -14,7 +12,7 @@ from services.stat.reacted import ReactedStorage
|
||||||
|
|
||||||
async def get_reaction_stat(reaction_id):
|
async def get_reaction_stat(reaction_id):
|
||||||
return {
|
return {
|
||||||
# "viewed": await ViewStat.get_reaction(reaction_id),
|
# "viewed": await ViewedStorage.get_reaction(reaction_id),
|
||||||
"reacted": len(await ReactedStorage.get_reaction(reaction_id)),
|
"reacted": len(await ReactedStorage.get_reaction(reaction_id)),
|
||||||
"rating": await ReactedStorage.get_reaction_rating(reaction_id),
|
"rating": await ReactedStorage.get_reaction_rating(reaction_id),
|
||||||
"commented": len(await ReactedStorage.get_reaction_comments(reaction_id)),
|
"commented": len(await ReactedStorage.get_reaction_comments(reaction_id)),
|
||||||
|
|
|
@ -9,7 +9,7 @@ from orm.topic import Topic, TopicFollower
|
||||||
from services.zine.topics import TopicStorage
|
from services.zine.topics import TopicStorage
|
||||||
from services.stat.reacted import ReactedStorage
|
from services.stat.reacted import ReactedStorage
|
||||||
from services.stat.topicstat import TopicStat
|
from services.stat.topicstat import TopicStat
|
||||||
from services.stat.views import ViewStat
|
from services.stat.viewed import ViewedStorage
|
||||||
|
|
||||||
|
|
||||||
async def get_topic_stat(slug):
|
async def get_topic_stat(slug):
|
||||||
|
@ -17,7 +17,7 @@ async def get_topic_stat(slug):
|
||||||
"shouts": len(TopicStat.shouts_by_topic.get(slug, {}).keys()),
|
"shouts": len(TopicStat.shouts_by_topic.get(slug, {}).keys()),
|
||||||
"authors": len(TopicStat.authors_by_topic.get(slug, {}).keys()),
|
"authors": len(TopicStat.authors_by_topic.get(slug, {}).keys()),
|
||||||
"followers": len(TopicStat.followers_by_topic.get(slug, {}).keys()),
|
"followers": len(TopicStat.followers_by_topic.get(slug, {}).keys()),
|
||||||
"viewed": await ViewStat.get_topic(slug),
|
"viewed": await ViewedStorage.get_topic(slug),
|
||||||
"reacted": len(await ReactedStorage.get_topic(slug)),
|
"reacted": len(await ReactedStorage.get_topic(slug)),
|
||||||
"commented": len(await ReactedStorage.get_topic_comments(slug)),
|
"commented": len(await ReactedStorage.get_topic_comments(slug)),
|
||||||
"rating": await ReactedStorage.get_topic_rating(slug)
|
"rating": await ReactedStorage.get_topic_rating(slug)
|
||||||
|
|
|
@ -2,7 +2,7 @@ import asyncio
|
||||||
from base.orm import local_session
|
from base.orm import local_session
|
||||||
from orm.reaction import ReactionKind, Reaction
|
from orm.reaction import ReactionKind, Reaction
|
||||||
from services.zine.topics import TopicStorage
|
from services.zine.topics import TopicStorage
|
||||||
from services.stat.views import ViewStat
|
from services.stat.viewed import ViewedStorage
|
||||||
|
|
||||||
|
|
||||||
def kind_to_rate(kind) -> int:
|
def kind_to_rate(kind) -> int:
|
||||||
|
@ -36,7 +36,7 @@ class ReactedStorage:
|
||||||
@staticmethod
|
@staticmethod
|
||||||
async def get_shout_stat(slug):
|
async def get_shout_stat(slug):
|
||||||
return {
|
return {
|
||||||
"viewed": await ViewStat.get_shout(slug),
|
"viewed": await ViewedStorage.get_shout(slug),
|
||||||
"reacted": len(await ReactedStorage.get_shout(slug)),
|
"reacted": len(await ReactedStorage.get_shout(slug)),
|
||||||
"commented": len(await ReactedStorage.get_comments(slug)),
|
"commented": len(await ReactedStorage.get_comments(slug)),
|
||||||
"rating": await ReactedStorage.get_rating(slug),
|
"rating": await ReactedStorage.get_rating(slug),
|
||||||
|
|
Loading…
Reference in New Issue
Block a user