fix(campaigns): Scrape campaigns for suspended/unretrievable accounts
Merge refreshed accounts with db accounts that have campaign URLs, ensuring campaigns are still scraped using cached URLs even when account profiles cannot be retrieved. In that case, use the latest cached campaign URL.
This commit is contained in:
parent
c2eba8c481
commit
f0f4b0b049
1 changed files with 9 additions and 1 deletions
|
|
@ -111,7 +111,15 @@ class Loop(Thread):
|
|||
return accounts
|
||||
|
||||
def refresh_campaigns(self, accounts: list[Account]) -> list[Campaign]:
|
||||
campaigns = self.client.refresh_campaigns(accounts)
|
||||
# Merge refreshed accounts with DB accounts that have campaign URLs.
|
||||
# This ensures campaigns are still scraped for suspended/unretrievable
|
||||
# accounts using their cached campaign URLs.
|
||||
accounts_by_url = {account.url: account for account in accounts}
|
||||
for db_account in self.db.get_accounts().values():
|
||||
if db_account.campaign_url and db_account.url not in accounts_by_url:
|
||||
accounts_by_url[db_account.url] = db_account
|
||||
|
||||
campaigns = self.client.refresh_campaigns(list(accounts_by_url.values()))
|
||||
self.db.save_campaigns(campaigns)
|
||||
return campaigns
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue