Skip to content

Commit

Permalink
Moving approach for boosts SQL
Browse files Browse the repository at this point in the history
  • Loading branch information
mahomedalid committed Feb 3, 2024
1 parent ecba515 commit 760e4a2
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 22 deletions.
21 changes: 15 additions & 6 deletions RaccoonBitsCli/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -120,10 +120,13 @@
{
var logger = loggerFactory.CreateLogger<Program>();

logger?.LogInformation($"Ranking pending posts");

var processor = new PostRankProcessor(db.GetWordsRank(), db.GetHostsRank());

//var posts = db.GetPosts("score IS NULL", processor);
var posts = db.GetPosts("score IS NULL OR score <= 0", processor);
var posts = db.GetPosts("SELECT * FROM posts WHERE score IS NULL", null, processor);

logger?.LogInformation($"Posts pending to be ranked: {posts.Count()}");

foreach (var post in posts)
{
Expand Down Expand Up @@ -153,11 +156,17 @@

var processor = new PostRankProcessor(db.GetWordsRank(), db.GetHostsRank());

var where = $"wordsScore > {minimumScore} AND boosted IS NULL ORDER BY score DESC LIMIT {limit}";

logger?.LogInformation($"Getting {limit} posts with score > {minimumScore}");

var posts = db.GetPosts(where);
var sql = "SELECT * FROM posts WHERE wordsScore > @wordsScore AND boosted IS NULL ORDER BY score DESC LIMIT @limit";

var parameters = new Dictionary<string, object>
{
{ "@wordsScore", minimumScore },
{ "@limit", limit }
};

var posts = db.GetPosts(sql, parameters);

logger?.LogInformation($"{posts.Count()} retrieved");

Expand All @@ -177,7 +186,7 @@

rootCommand.AddCommand(suggestedTags);

suggestedTags.SetHandler(async () =>
suggestedTags.SetHandler(() =>
{
var logger = loggerFactory.CreateLogger<Program>();

Expand Down
39 changes: 23 additions & 16 deletions RaccoonBitsCore/Db.cs
Original file line number Diff line number Diff line change
Expand Up @@ -164,32 +164,39 @@ internal void InsertOrReplacePost(string uri, string content, int wordsScore)
}
}

public IEnumerable<Post> GetPosts(string where, IRecordProcessor<Post>? processor = null)
{
public IEnumerable<Post> GetPosts(
string sql = "SELECT * FROM posts LIMIT 5",
IDictionary<string, object>? parameters = null,
IRecordProcessor<Post>? processor = null) {
IList<Post> posts = new List<Post>();

using (SQLiteConnection connection = new SQLiteConnection(connectionString))
{
connection.Open();

string query = $"SELECT * FROM posts WHERE {where}";

using (SQLiteCommand command = new SQLiteCommand(query, connection))
using (SQLiteDataReader reader = command.ExecuteReader())

using (var command = new SQLiteCommand(sql, connection))
{
while (reader.Read())
foreach (var parameter in parameters ?? new Dictionary<string, object>())
{
string uri = reader["uri"]?.ToString() ?? string.Empty;
string jsonObject = reader["jsonObject"]?.ToString() ?? string.Empty;

var post = new Post(uri, jsonObject);
command.Parameters.AddWithValue(parameter.Key, parameter.Value);
}

if (processor != null)
using (SQLiteDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
post = processor.Process(post);
}
string uri = reader["uri"]?.ToString() ?? string.Empty;
string jsonObject = reader["jsonObject"]?.ToString() ?? string.Empty;

posts.Add(post);
var post = new Post(uri, jsonObject);

if (processor != null)
{
post = processor.Process(post);
}

posts.Add(post);
}
}
}
}
Expand Down

0 comments on commit 760e4a2

Please sign in to comment.