mirror of
https://git.robbyzambito.me/zaprus/
synced 2026-02-04 03:34:48 +00:00
Chunk relay input
This makes it possible to chunk connection command output to a relay command to direct it somewhere like discord
This commit is contained in:
22
src/main.zig
22
src/main.zig
@@ -38,7 +38,6 @@ pub fn main(init: std.process.Init) !void {
|
||||
} = .{};
|
||||
|
||||
{
|
||||
var payload_buf: [4096]u8 = undefined;
|
||||
var i: usize = 1;
|
||||
while (i < args.len) : (i += 1) {
|
||||
if (to_option.get(args[i])) |opt| {
|
||||
@@ -50,9 +49,7 @@ pub fn main(init: std.process.Init) !void {
|
||||
.relay => {
|
||||
i += 1;
|
||||
if (i < args.len) {
|
||||
var w: Writer = .fixed(&payload_buf);
|
||||
try w.printBase64(args[i]);
|
||||
flags.relay = w.buffered();
|
||||
flags.relay = args[i];
|
||||
} else {
|
||||
std.debug.print("-r/--relay requires a string\n", .{});
|
||||
return error.InvalidArguments;
|
||||
@@ -70,7 +67,10 @@ pub fn main(init: std.process.Init) !void {
|
||||
.connect => {
|
||||
i += 1;
|
||||
if (i < args.len) {
|
||||
var w: Writer = .fixed(&payload_buf);
|
||||
var w: Writer = blk: {
|
||||
var buf: [2048]u8 = undefined;
|
||||
break :blk .fixed(&buf);
|
||||
};
|
||||
try w.printBase64(args[i]);
|
||||
flags.connect = w.buffered();
|
||||
} else {
|
||||
@@ -94,7 +94,17 @@ pub fn main(init: std.process.Init) !void {
|
||||
defer client.deinit();
|
||||
|
||||
if (flags.relay != null) {
|
||||
try client.sendRelay(init.io, flags.relay.?, parseDest(flags.dest));
|
||||
var chunk_writer: Writer = blk: {
|
||||
var buf: [2048]u8 = undefined;
|
||||
break :blk .fixed(&buf);
|
||||
};
|
||||
var output_iter = std.mem.window(u8, flags.relay.?, SaprusClient.max_payload_len, SaprusClient.max_payload_len);
|
||||
while (output_iter.next()) |chunk| {
|
||||
chunk_writer.end = 0;
|
||||
try chunk_writer.print("{b64}", .{chunk});
|
||||
try client.sendRelay(init.io, chunk_writer.buffered(), parseDest(flags.dest));
|
||||
try init.io.sleep(.fromMilliseconds(40), .real);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user