Skip to content

Commit

Permalink
Save last offset for member pages.
Browse files Browse the repository at this point in the history
  • Loading branch information
emmiegit committed Jan 22, 2024
1 parent 371fefc commit 6aaa042
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 3 deletions.
5 changes: 5 additions & 0 deletions migrations/20240112_01_Njk7j-create-initial-tables.sql
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,11 @@ CREATE TABLE site (
language TEXT NOT NULL
);

CREATE TABLE site_progress (
site_slug TEXT PRIMARY KEY REFERENCES site(site_slug),
last_member_offset INTEGER NOT NULL DEFAULT 1
);

CREATE TABLE "user" (
user_slug TEXT PRIMARY KEY,
user_name TEXT NOT NULL,
Expand Down
14 changes: 14 additions & 0 deletions queries/progress.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
-- :name add_site_progress :insert
INSERT INTO site_progress (site_slug)
VALUES (:site_slug)
ON CONFLICT (site_slug)
DO NOTHING;

-- :name get_last_member_offset :one
SELECT get_last_member_offset FROM site_progress
WHERE site_slug = :site_slug;

-- :name update_last_member_offset :affected
UPDATE site_progress
SET last_member_offset = MAX(last_member_offset, :last_offset)
WHERE site_slug = :site_slug;
1 change: 0 additions & 1 deletion yellowstone/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
JobManager,
get_site,
)
from .job.index_site_members import START_OFFSET as START_MEMBER_OFFSET
from .s3 import S3
from .wikidot import Wikidot

Expand Down
1 change: 1 addition & 0 deletions yellowstone/job/get_site.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ def insert_site(
language=site.language,
home_slug=site.home_page_slug,
)
database.add_site_progress(site_slug=site.slug)

# TODO insert basic home data
_ = site.home_page_id
Expand Down
6 changes: 4 additions & 2 deletions yellowstone/job/index_site_members.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@
if TYPE_CHECKING:
from ..core import BackupDispatcher

START_OFFSET = 1

logger = logging.getLogger(__name__)


Expand Down Expand Up @@ -44,6 +42,7 @@ def run(core: "BackupDispatcher", data: SiteMemberJob) -> None:
use_admin=core.config.uses_admin_members(site_slug),
)

# Save member data
if members:
with core.database.transaction():
# Queue the next offset, for iterating over pages using the job queue
Expand All @@ -57,3 +56,6 @@ def run(core: "BackupDispatcher", data: SiteMemberJob) -> None:
joined_at=member.joined_at,
)
core.job.fetch_user({"user_id": member.id})

# Save member page progress
core.database.update_last_member_offset(last_offset=offset)

0 comments on commit 6aaa042

Please sign in to comment.