mirror of
https://github.com/CCLeonOS/LeonOS.git
synced 2026-03-03 15:17:01 +00:00
feat: 添加时间显示和图片查看程序并更新安装器版本
- 添加 time.lua 程序用于显示和格式化当前时间 - 添加 imageview.lua 程序用于从URL加载和显示图片 - 添加 pkg_download_en.hlp 帮助文档说明包管理功能 - 更新安装器版本号至 0.3.7 Beta 7
This commit is contained in:
92
data/computercraft/lua/rom/programs/imageview.lua
Normal file
92
data/computercraft/lua/rom/programs/imageview.lua
Normal file
@@ -0,0 +1,92 @@
|
||||
-- imageview.lua: Image viewer that loads from URL
|
||||
local http = require("http")
|
||||
local paintutils = require("paintutils")
|
||||
local term = require("term")
|
||||
local event = require("event")
|
||||
local shell = require("shell")
|
||||
|
||||
-- 帮助信息函数
|
||||
local function printHelp()
|
||||
print("Usage: imageview <image_url>")
|
||||
print("Options:")
|
||||
print(" --help, -h Show this help message")
|
||||
print("
|
||||
Displays an image from the specified URL.
|
||||
Press ESC to exit back to shell.")
|
||||
end
|
||||
|
||||
-- 下载图片函数
|
||||
local function downloadImage(url)
|
||||
print("Downloading image from: " .. url)
|
||||
local response, err = http.get(url, nil, true)
|
||||
if not response then
|
||||
print("Error downloading image: " .. err)
|
||||
return nil
|
||||
end
|
||||
|
||||
local data = response.readAll()
|
||||
response.close()
|
||||
return data
|
||||
end
|
||||
|
||||
-- 主函数
|
||||
local function main(args)
|
||||
-- 处理命令行参数
|
||||
if #args == 0 or args[1] == "--help" or args[1] == "-h" then
|
||||
printHelp()
|
||||
return
|
||||
end
|
||||
|
||||
local imageUrl = args[1]
|
||||
|
||||
-- 检查是否是有效的URL
|
||||
if not imageUrl:match("^https?://") then
|
||||
print("Error: Invalid URL format. Must start with http:// or https://")
|
||||
return
|
||||
end
|
||||
|
||||
-- 下载图片
|
||||
local imageData = downloadImage(imageUrl)
|
||||
if not imageData then
|
||||
return
|
||||
end
|
||||
|
||||
-- 尝试加载图片
|
||||
local success, image = pcall(function()
|
||||
return paintutils.loadImage(imageData)
|
||||
end)
|
||||
|
||||
if not success then
|
||||
print("Error loading image: " .. image)
|
||||
return
|
||||
end
|
||||
|
||||
-- 清除屏幕并显示图片
|
||||
term.clear()
|
||||
local w, h = term.getSize()
|
||||
|
||||
-- 计算图片居中位置
|
||||
local imgW, imgH = #image[1], #image
|
||||
local x = math.floor((w - imgW) / 2)
|
||||
local y = math.floor((h - imgH) / 2)
|
||||
|
||||
-- 绘制图片
|
||||
paintutils.drawImage(image, x, y)
|
||||
|
||||
print("\nImage displayed. Press ESC to exit.")
|
||||
|
||||
-- 监听ESC键
|
||||
while true do
|
||||
local _, key = event.pull("key")
|
||||
if key == 27 then -- ESC键
|
||||
term.clear()
|
||||
term.setCursorPos(1, 1)
|
||||
print("Image viewer closed.")
|
||||
return
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- 运行主函数
|
||||
local args = {...}
|
||||
main(args)
|
||||
66
data/computercraft/lua/rom/programs/time.lua
Normal file
66
data/computercraft/lua/rom/programs/time.lua
Normal file
@@ -0,0 +1,66 @@
|
||||
-- time.lua: Display current time
|
||||
local shell = require("shell")
|
||||
|
||||
-- 帮助信息函数
|
||||
local function printHelp()
|
||||
print("Usage: time [options]")
|
||||
print("Options:")
|
||||
print(" --help, -h Show this help message")
|
||||
print(" --format, -f <fmt> Specify time format string (see below for details)")
|
||||
print("
|
||||
Formats for --format option:")
|
||||
print(" %Y: Year (4 digits)")
|
||||
print(" %m: Month (01-12)")
|
||||
print(" %d: Day (01-31)")
|
||||
print(" %H: Hour (00-23)")
|
||||
print(" %M: Minute (00-59)")
|
||||
print(" %S: Second (00-59)")
|
||||
print(" %A: Full weekday name")
|
||||
print(" %B: Full month name")
|
||||
print("
|
||||
Examples:")
|
||||
print(" time # Show current time in default format")
|
||||
print(" time --format '%Y-%m-%d %H:%M:%S' # Show time as YYYY-MM-DD HH:MM:SS")
|
||||
print(" time -f '%A, %B %d, %Y' # Show time as 'Monday, January 01, 2023'")
|
||||
end
|
||||
|
||||
-- 主函数
|
||||
local function main(args)
|
||||
-- 处理命令行参数
|
||||
local showHelp = false
|
||||
local formatStr = "%Y-%m-%d %H:%M:%S"
|
||||
local i = 1
|
||||
|
||||
while i <= #args do
|
||||
if args[i] == "--help" or args[i] == "-h" then
|
||||
showHelp = true
|
||||
elseif args[i] == "--format" or args[i] == "-f" then
|
||||
i = i + 1
|
||||
if i <= #args then
|
||||
formatStr = args[i]
|
||||
else
|
||||
print("Error: Missing format string for --format option")
|
||||
return
|
||||
end
|
||||
else
|
||||
print("Error: Unknown option '" .. args[i] .. "'\n")
|
||||
printHelp()
|
||||
return
|
||||
end
|
||||
i = i + 1
|
||||
end
|
||||
|
||||
if showHelp then
|
||||
printHelp()
|
||||
return
|
||||
end
|
||||
|
||||
-- 获取并显示当前时间
|
||||
local currentTime = os.time()
|
||||
local formattedTime = os.date(formatStr, currentTime)
|
||||
print(formattedTime)
|
||||
end
|
||||
|
||||
-- 运行主函数
|
||||
local args = {...}
|
||||
main(args)
|
||||
Reference in New Issue
Block a user