From 6f0cbfcd2a8e15a5ad276caf35598e17e2686e4f Mon Sep 17 00:00:00 2001 From: Tangent Date: Fri, 31 Jul 2026 23:37:01 -0600 Subject: [PATCH] fix data error in default sort, move selecting books to own function --- asymptome.lua | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/asymptome.lua b/asymptome.lua index f69b5fa..f06dce2 100755 --- a/asymptome.lua +++ b/asymptome.lua @@ -93,7 +93,9 @@ sort_orders = { if not (A.pages and B.pages) then -- if pages is unknown for both, fallback to percentage return A.progress < B.progress end - local average_page_count = data.total_pages / #data.books + -- TODO figure out an elegant way to pass the required values here + -- local average_page_count = data.total_pages / #data.books + local average_page_count = 200 -- an intentionally low default, intended to push them higher and make you pay attention local a = (A.pages or average_page_count) - (A.pages or average_page_count) * A.progress local b = (B.pages or average_page_count) - (B.pages or average_page_count) * B.progress return a > b @@ -210,6 +212,18 @@ end +local select_books = function(preset_name) + local selected_books = {} + for i = 1, #data.books do + local book = data.books[i] + if filters[data.defaults[preset_name].filter](book) then + selected_books[#selected_books + 1] = book + end + end + table.sort(selected_books, sort_orders[data.defaults[preset_name].sort]) + return selected_books +end + local launch = function(file_name) local data if path_exists(file_name) then @@ -233,16 +247,7 @@ local launch = function(file_name) save_json(file_name, data) end - -- TODO this probably needs to be its own function - -- allowing selecting different presets/etc instead of just launch - local selected_books = {} - for i = 1, #data.books do - local book = data.books[i] - if filters[data.defaults.launch.filter](book) then - selected_books[#selected_books + 1] = book - end - end - table.sort(selected_books, sort_orders[data.defaults.launch.sort]) + local selected_books = select_books("launch") return data, selected_books end