55 lines
1.3 KiB
Lua
55 lines
1.3 KiB
Lua
local createTrapGpt = require('/apis/libtrapgpt');
|
|
local createVersion = require('/apis/libversion');
|
|
|
|
local args = table.pack(...);
|
|
|
|
local function printUsage()
|
|
print('trapgpt usage:');
|
|
print();
|
|
print(' trapgpt');
|
|
print(' trapgpt --version');
|
|
print(' trapgpt --help');
|
|
print();
|
|
print('settings required:');
|
|
print(' opencc.server_url');
|
|
print();
|
|
print('settings optional:');
|
|
print(' trapgpt.throttle_seconds (default: 5)');
|
|
print(' trapgpt.max_reply_chars (default: 160)');
|
|
print(' trapgpt.prefix (default: TrapGPT)');
|
|
end
|
|
|
|
local command = args[1];
|
|
|
|
if command == '--version' or command == '-version' or command == 'version' then
|
|
print('v' .. createVersion().forSelf());
|
|
return;
|
|
end
|
|
|
|
if command == '--help' or command == '-help' or command == 'help' then
|
|
printUsage();
|
|
return;
|
|
end
|
|
|
|
if args.n > 0 then
|
|
printUsage();
|
|
return;
|
|
end
|
|
|
|
local chatBox = peripheral.find('chat_box') or peripheral.find('chatBox');
|
|
if not chatBox then
|
|
error('chat_box peripheral not found');
|
|
end
|
|
|
|
local trapgpt = createTrapGpt({ chatBox = chatBox });
|
|
|
|
local function listenChat()
|
|
while true do
|
|
local _, username, message, uuid, isHidden, messageUtf8 = os.pullEvent('chat');
|
|
trapgpt.onChat(username, message, uuid, isHidden, messageUtf8);
|
|
end
|
|
end
|
|
|
|
print('trapgpt listening');
|
|
parallel.waitForAny(listenChat, function() trapgpt.run(); end);
|