fix: exclude inactive blogs from blog selection queries
Blogs.IsActive was honored only by GetBlogs and GetBlogsAll, so a blog with IsActive = 0 was still selected for likes crawling and for output mode. Add the filter to every remaining query that selects blog records: - GetBlogsForLikes, all three variants (specific blog, ignoreCooldown, cooldown) - this is the selector that spends API quota - GetAllBlogsWithTTFolderPath Writes are deliberately untouched. The UPDATE statements are keyed on a blog the caller already selected; filtering them would let the crawler fetch a blog, pay the API cost, then fail to persist its cursor and re-fetch the same pages on every run. Exclusion belongs at selection. LegacyPostsDbImporter is also untouched: it reads a foreign legacy schema that may not have the column. Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -1040,7 +1040,8 @@ namespace URLNotesGrabberCORE
|
|||||||
COALESCE(LikesCursor, 0),
|
COALESCE(LikesCursor, 0),
|
||||||
COALESCE(LikesNewestTimestamp, 0)
|
COALESCE(LikesNewestTimestamp, 0)
|
||||||
FROM Blogs
|
FROM Blogs
|
||||||
WHERE BlogName = @blog";
|
WHERE BlogName = @blog
|
||||||
|
AND IsActive = 1";
|
||||||
}
|
}
|
||||||
else if (ignoreCooldown)
|
else if (ignoreCooldown)
|
||||||
{
|
{
|
||||||
@@ -1053,6 +1054,7 @@ namespace URLNotesGrabberCORE
|
|||||||
INNER JOIN Notes N ON N.NoteBlogName = B.BlogName
|
INNER JOIN Notes N ON N.NoteBlogName = B.BlogName
|
||||||
WHERE N.TimeStamp >= 1535778000
|
WHERE N.TimeStamp >= 1535778000
|
||||||
AND N.rootBlogName = B.BlogName
|
AND N.rootBlogName = B.BlogName
|
||||||
|
AND B.IsActive = 1
|
||||||
GROUP BY B.BlogName
|
GROUP BY B.BlogName
|
||||||
ORDER BY MIN(N.Timestamp);";
|
ORDER BY MIN(N.Timestamp);";
|
||||||
}
|
}
|
||||||
@@ -1067,6 +1069,7 @@ namespace URLNotesGrabberCORE
|
|||||||
INNER JOIN Notes N ON N.NoteBlogName = B.BlogName
|
INNER JOIN Notes N ON N.NoteBlogName = B.BlogName
|
||||||
WHERE N.TimeStamp >= 1535778000
|
WHERE N.TimeStamp >= 1535778000
|
||||||
AND N.rootBlogName = B.BlogName
|
AND N.rootBlogName = B.BlogName
|
||||||
|
AND B.IsActive = 1
|
||||||
AND (
|
AND (
|
||||||
B.LikesPulled = 0
|
B.LikesPulled = 0
|
||||||
OR COALESCE(B.LikesLastRefreshed, 0)
|
OR COALESCE(B.LikesLastRefreshed, 0)
|
||||||
@@ -2211,7 +2214,7 @@ namespace URLNotesGrabberCORE
|
|||||||
|
|
||||||
using var connection = new SQLiteConnection("Data Source=" + DBPath);
|
using var connection = new SQLiteConnection("Data Source=" + DBPath);
|
||||||
connection.Open();
|
connection.Open();
|
||||||
using var cmd = new SQLiteCommand("SELECT BlogName, TTFolderPath FROM Blogs", connection);
|
using var cmd = new SQLiteCommand("SELECT BlogName, TTFolderPath FROM Blogs WHERE IsActive = 1", connection);
|
||||||
using var reader = cmd.ExecuteReader();
|
using var reader = cmd.ExecuteReader();
|
||||||
while (reader.Read())
|
while (reader.Read())
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user