Skip to content
Snippets Groups Projects
Commit 384b0a20 authored by Zed's avatar Zed
Browse files

Fix profile caching logic to ignore empty profiles

parent cd484036
No related branches found
No related tags found
No related merge requests found
......@@ -63,7 +63,7 @@ proc cache*(data: PhotoRail; name: string) {.async.} =
await setex("pr:" & name, baseCacheTime, compress(freeze(data)))
proc cache*(data: Profile) {.async.} =
if data.username.len == 0: return
if data.username.len == 0 or data.id.len == 0: return
let name = toLower(data.username)
pool.withAcquire(r):
r.startPipelining()
......@@ -93,14 +93,12 @@ proc getProfileId*(username: string): Future[string] {.async.} =
if result == redisNil:
result.setLen(0)
proc getCachedProfile*(username: string; fetch=true;
cache=false): Future[Profile] {.async.} =
proc getCachedProfile*(username: string; fetch=true): Future[Profile] {.async.} =
let prof = await get("p:" & toLower(username))
if prof != redisNil:
uncompress(prof).thaw(result)
elif fetch:
result = await getProfile(username)
if cache: await cache(result)
proc getCachedPhotoRail*(name: string): Future[PhotoRail] {.async.} =
if name.len == 0: return
......
......@@ -31,7 +31,10 @@ proc fetchSingleTimeline*(after: string; query: Query; skipRail=false):
profile = await getCachedProfile(name)
profileId = if profile.suspended: "s"
else: profile.id
await cacheProfileId(profile.username, profileId)
if profileId.len > 0:
await cacheProfileId(profile.username, profileId)
fetched = true
if profileId.len == 0 or profile.protected:
......@@ -66,7 +69,8 @@ proc fetchSingleTimeline*(after: string; query: Query; skipRail=false):
break
if profile.username.len == 0:
profile = await getCachedProfile(name, cache=true)
profile = await getCachedProfile(name)
fetched = true
if fetched and not found:
await cache(profile)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment