diff options
author | Solderpunk <solderpunk@sdf.org> | 2018-12-08 18:29:56 +0000 |
---|---|---|
committer | Solderpunk <solderpunk@sdf.org> | 2018-12-08 18:29:56 +0000 |
commit | 2286f988111d5557dd7e471b1597631d57ed3b58 (patch) | |
tree | 406fa952fa6bc75518eb55b2667bac9f35a93eef | |
parent | Don't permit creation of duplicate boards. (diff) |
Prettier list formatting, and allow going to boards by numeric ID.
-rwxr-xr-x | telem.lua | 42 |
1 files changed, 31 insertions, 11 deletions
@@ -161,16 +161,23 @@ function do_board() end function do_go() - io.write("Go to which board? ") + io.write("Go to which board? (use name or index) ") local board = string.upper(io.read()) if board == "" then do_list() - elseif board_names[board] == nil then + elseif board_names[board] ~= nil then + current_board = board + elseif tonumber(board) == nil then print("No such board! Hit `l` to list boards.") else - current_board = board - current_board_threads = get_threads(current_board) + local index = tonumber(board) + if index < 0 or index > #boards then + print("No such board! Hit `l` to list boards.") + else + current_board = boards[index].name + end end + current_board_threads = get_threads(current_board) end function do_help() @@ -183,15 +190,22 @@ end function do_list() update_boards() - for _,board in ipairs(boards) do + print(string.format("%s %s %s %s", stringx.ljust("ID",3), + stringx.ljust("Board name", 20), + stringx.ljust("Board topic" ,50), "Thread count") + ) + print(string.rep("-",79)) + for i,board in ipairs(boards) do local threads = -3 -- Don't want to count "topic" file or "." or ".." for thread in lfs.dir(board.directory) do threads = threads +1 end - print(string.format("%s %s [%3d threads]", + print(string.format("%3d %s %s [%3d threads]", i, stringx.ljust(board.name,20), - stringx.ljust(board.topic,50), threads)) + stringx.ljust(board.topic,50), threads) + ) end + print(string.rep("-",79)) end function do_messages() @@ -201,14 +215,20 @@ function do_messages() print("Empty board!") return end - print("ID", "Created", stringx.ljust("author",16), stringx.ljust("Subject", 50)) - print(string.rep("-",70)) + -- Headers + print(string.format("%s %s %s %s", stringx.ljust("ID",3), stringx.ljust("Created", 14), + stringx.ljust("Author",16), stringx.ljust("Subject",50))) + -- Separator + print(string.rep("-",79)) + -- Messages for i, thread in ipairs(current_board_threads) do - print(tostring(i), os.date("%x %H:%M", thread.timestamp), + print(string.format("%3d %s %s %s [%3d posts]", i, os.date("%x", thread.timestamp), stringx.ljust(thread.author,16), stringx.ljust(thread.subject,50), - "["..tostring(thread.post_count).." posts]") + thread.post_count)) end + -- Separator + print(string.rep("-",79)) end function do_new() |