From a8ca2330275861a0f5d9c90089d6b4292ae31260 Mon Sep 17 00:00:00 2001 From: Cadence Ember Date: Tue, 16 Jun 2020 02:09:40 +1200 Subject: [PATCH] Automatically update whether profiles are private --- src/lib/structures/Timeline.js | 11 ++++++++++- src/site/pug/user.pug | 21 +++++++++------------ 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/src/lib/structures/Timeline.js b/src/lib/structures/Timeline.js index 74db932..6f28251 100644 --- a/src/lib/structures/Timeline.js +++ b/src/lib/structures/Timeline.js @@ -1,6 +1,6 @@ const {Feed} = require("feed") const constants = require("../constants") -const config = require("../../../config") +const db = require("../db") const TimelineEntry = require("./TimelineEntry") const InstaCache = require("../cache") const collectors = require("../collectors") @@ -50,6 +50,15 @@ class Timeline { } addPage(page) { + // update whether the user should be private + if (this.pages.length === 0 && page.count > 0) { // this is the first page, and user has posted + const shouldBePrivate = page.edges.length === 0 + if (shouldBePrivate !== this.user.data.is_private) { + db.prepare("UPDATE Users SET is_private = ? WHERE user_id = ?").run(+shouldBePrivate, this.user.data.id) + this.user.data.is_private = shouldBePrivate + } + } + // add the page this.pages.push(transformEdges(page.edges)) this.page_info = page.page_info this.user.posts = page.count diff --git a/src/site/pug/user.pug b/src/site/pug/user.pug index a3b81e1..082cd7a 100644 --- a/src/site/pug/user.pug +++ b/src/site/pug/user.pug @@ -78,18 +78,15 @@ html - const hasPosts = !user.data.is_private && user.timeline.pages.length && user.timeline.pages[0].length main(class=hasPosts ? "" : "no-posts")#timeline.timeline - if !user.data.is_private - if hasPosts - each page, pageIndex in user.timeline.pages - +timeline_page(page, pageIndex) - +next_page_button(user, url) - - else - div - div.page-number - span.number No posts. - + if hasPosts + each page, pageIndex in user.timeline.pages + +timeline_page(page, pageIndex) + +next_page_button(user, url) else div div.page-number - span.number Profile is private. + span.number + if user.data.is_private + | Profile is private. + else + | No posts.