fix-imports
This commit is contained in:
parent
f6e3320e18
commit
45d187786b
|
@ -3,7 +3,7 @@ aredis~=1.1.8
|
||||||
ariadne>=0.17.0
|
ariadne>=0.17.0
|
||||||
PyYAML>=5.4
|
PyYAML>=5.4
|
||||||
pyjwt>=2.6.0
|
pyjwt>=2.6.0
|
||||||
starlette
|
starlette @ git+https://github.com/starlette/starlette#main
|
||||||
sqlalchemy>=1.4.41
|
sqlalchemy>=1.4.41
|
||||||
graphql-core>=3.0.3
|
graphql-core>=3.0.3
|
||||||
gql~=3.4.0
|
gql~=3.4.0
|
||||||
|
|
|
@ -23,7 +23,7 @@ from services.exceptions import (
|
||||||
from services.db import local_session
|
from services.db import local_session
|
||||||
from services.schema import mutation, query
|
from services.schema import mutation, query
|
||||||
from orm import Role, User
|
from orm import Role, User
|
||||||
from resolvers.zine.profile import user_subscriptions
|
from resolvers.profile import user_subscriptions
|
||||||
from settings import SESSION_TOKEN_HEADER, FRONTEND_URL
|
from settings import SESSION_TOKEN_HEADER, FRONTEND_URL
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ from services.db import local_session
|
||||||
from services.schema import mutation
|
from services.schema import mutation
|
||||||
from orm.shout import Shout, ShoutAuthor, ShoutTopic
|
from orm.shout import Shout, ShoutAuthor, ShoutTopic
|
||||||
from orm.topic import Topic
|
from orm.topic import Topic
|
||||||
from resolvers.zine.reactions import reactions_follow, reactions_unfollow
|
from resolvers.reactions import reactions_follow, reactions_unfollow
|
||||||
|
|
||||||
|
|
||||||
@mutation.field("createShout")
|
@mutation.field("createShout")
|
||||||
|
|
|
@ -8,9 +8,9 @@ from auth.credentials import AuthCredentials
|
||||||
from orm.user import AuthorFollower
|
from orm.user import AuthorFollower
|
||||||
from orm.topic import TopicFollower
|
from orm.topic import TopicFollower
|
||||||
from orm.shout import ShoutReactionsFollower
|
from orm.shout import ShoutReactionsFollower
|
||||||
from resolvers.zine.profile import author_follow, author_unfollow
|
from resolvers.profile import author_follow, author_unfollow
|
||||||
from resolvers.zine.reactions import reactions_follow, reactions_unfollow
|
from resolvers.reactions import reactions_follow, reactions_unfollow
|
||||||
from resolvers.zine.topics import topic_follow, topic_unfollow
|
from resolvers.topics import topic_follow, topic_unfollow
|
||||||
from services.following import Following, FollowingManager, FollowingResult
|
from services.following import Following, FollowingManager, FollowingResult
|
||||||
from graphql.type import GraphQLResolveInfo
|
from graphql.type import GraphQLResolveInfo
|
||||||
|
|
||||||
|
@ -30,7 +30,8 @@ async def follow(_, info, what, slug):
|
||||||
result = FollowingResult("NEW", "topic", slug)
|
result = FollowingResult("NEW", "topic", slug)
|
||||||
await FollowingManager.push("topic", result)
|
await FollowingManager.push("topic", result)
|
||||||
elif what == "COMMUNITY":
|
elif what == "COMMUNITY":
|
||||||
if False: # TODO: use community_follow(auth.user_id, slug):
|
if False:
|
||||||
|
# TODO: use community_follow(auth.user_id, slug):
|
||||||
result = FollowingResult("NEW", "community", slug)
|
result = FollowingResult("NEW", "community", slug)
|
||||||
await FollowingManager.push("community", result)
|
await FollowingManager.push("community", result)
|
||||||
elif what == "REACTIONS":
|
elif what == "REACTIONS":
|
||||||
|
|
|
@ -5,7 +5,7 @@ from sqlalchemy.orm import aliased, joinedload
|
||||||
|
|
||||||
from auth.authenticate import login_required
|
from auth.authenticate import login_required
|
||||||
from auth.credentials import AuthCredentials
|
from auth.credentials import AuthCredentials
|
||||||
from services.orm import local_session
|
from services.db import local_session
|
||||||
from services.schema import mutation, query
|
from services.schema import mutation, query
|
||||||
from orm.reaction import Reaction
|
from orm.reaction import Reaction
|
||||||
from orm.shout import ShoutAuthor, ShoutTopic
|
from orm.shout import ShoutAuthor, ShoutTopic
|
||||||
|
@ -13,8 +13,8 @@ from orm.topic import Topic
|
||||||
from orm.user import AuthorFollower, Role, User, UserRating, UserRole
|
from orm.user import AuthorFollower, Role, User, UserRating, UserRole
|
||||||
|
|
||||||
# from .community import followed_communities
|
# from .community import followed_communities
|
||||||
from resolvers.inbox.unread import get_total_unread_counter
|
from services.unread import get_total_unread_counter
|
||||||
from resolvers.zine.topics import followed_by_user
|
from resolvers.topics import followed_by_user
|
||||||
|
|
||||||
|
|
||||||
def add_author_stat_columns(q, include_heavy_stat=False):
|
def add_author_stat_columns(q, include_heavy_stat=False):
|
||||||
|
|
24
services/unread.py
Normal file
24
services/unread.py
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
from services.redis import redis
|
||||||
|
import json
|
||||||
|
|
||||||
|
|
||||||
|
async def get_unread_counter(chat_id: str, author_id: int):
|
||||||
|
try:
|
||||||
|
unread = await redis.execute(
|
||||||
|
"LLEN", f"chats/{chat_id.decode('utf-8')}/unread/{author_id}"
|
||||||
|
)
|
||||||
|
if unread:
|
||||||
|
return unread
|
||||||
|
except Exception:
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
async def get_total_unread_counter(author_id: int):
|
||||||
|
chats = await redis.execute("GET", f"chats_by_author/{author_id}")
|
||||||
|
unread = 0
|
||||||
|
if chats:
|
||||||
|
chats = json.loads(chats)
|
||||||
|
for chat_id in chats:
|
||||||
|
n = await get_unread_counter(chat_id.decode("utf-8"), author_id)
|
||||||
|
unread += n
|
||||||
|
return unread
|
Loading…
Reference in New Issue
Block a user