send_text other than from stdin works
This commit is contained in:
parent
457aab7c41
commit
65c3630099
@ -4,7 +4,6 @@
|
|||||||
import io
|
import io
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
import sys
|
|
||||||
from contextlib import contextmanager, suppress
|
from contextlib import contextmanager, suppress
|
||||||
from typing import Dict, Iterator, List, Set, Tuple, Union
|
from typing import Dict, Iterator, List, Set, Tuple, Union
|
||||||
|
|
||||||
@ -246,7 +245,6 @@ def update_at_commands() -> None:
|
|||||||
os.remove(dest)
|
os.remove(dest)
|
||||||
with open(dest, 'w') as f:
|
with open(dest, 'w') as f:
|
||||||
f.write(code)
|
f.write(code)
|
||||||
print('\x1b[31mTODO\x1b[m: test send_text, env', file=sys.stderr)
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
def main() -> None:
|
||||||
|
|||||||
@ -101,8 +101,6 @@ Path to a file whose contents you wish to send. Note that in this case the file
|
|||||||
are sent as is, not interpreted for escapes.
|
are sent as is, not interpreted for escapes.
|
||||||
'''
|
'''
|
||||||
args = RemoteCommand.Args(spec='[TEXT TO SEND]', json_field='data', special_parse='+session_id:parse_send_text(io_data, args)')
|
args = RemoteCommand.Args(spec='[TEXT TO SEND]', json_field='data', special_parse='+session_id:parse_send_text(io_data, args)')
|
||||||
is_asynchronous = True
|
|
||||||
reads_streaming_data = True
|
|
||||||
|
|
||||||
def message_to_kitty(self, global_opts: RCOptions, opts: 'CLIOptions', args: ArgsType) -> PayloadType:
|
def message_to_kitty(self, global_opts: RCOptions, opts: 'CLIOptions', args: ArgsType) -> PayloadType:
|
||||||
limit = 1024
|
limit = 1024
|
||||||
|
|||||||
@ -87,6 +87,14 @@ type wrapped_serializer struct {
|
|||||||
all_payloads_done bool
|
all_payloads_done bool
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func debug_to_log(args ...interface{}) {
|
||||||
|
f, err := os.OpenFile("/tmp/kdlog", os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0666)
|
||||||
|
if err == nil {
|
||||||
|
fmt.Fprintln(f, args...)
|
||||||
|
f.Close()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (self *wrapped_serializer) next(io_data *rc_io_data) ([]byte, error) {
|
func (self *wrapped_serializer) next(io_data *rc_io_data) ([]byte, error) {
|
||||||
const prefix = "\x1bP@kitty-cmd"
|
const prefix = "\x1bP@kitty-cmd"
|
||||||
const suffix = "\x1b\\"
|
const suffix = "\x1b\\"
|
||||||
@ -197,6 +205,7 @@ func get_response(do_io func(io_data *rc_io_data) ([]byte, error), io_data *rc_i
|
|||||||
if errors.Is(err, os.ErrDeadlineExceeded) {
|
if errors.Is(err, os.ErrDeadlineExceeded) {
|
||||||
io_data.rc.Payload = nil
|
io_data.rc.Payload = nil
|
||||||
io_data.rc.CancelAsync = true
|
io_data.rc.CancelAsync = true
|
||||||
|
io_data.multiple_payload_generator = nil
|
||||||
io_data.rc.NoResponse = true
|
io_data.rc.NoResponse = true
|
||||||
io_data.serializer.state = 0
|
io_data.serializer.state = 0
|
||||||
do_io(io_data)
|
do_io(io_data)
|
||||||
|
|||||||
@ -10,16 +10,18 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
type generator_function func(io_data *rc_io_data) (bool, error)
|
|
||||||
|
|
||||||
func parse_send_text(io_data *rc_io_data, args []string) error {
|
func parse_send_text(io_data *rc_io_data, args []string) error {
|
||||||
generators := make([]generator_function, 0, 1)
|
generators := make([]func(io_data *rc_io_data) (bool, error), 0, 1)
|
||||||
|
|
||||||
if len(args) > 0 {
|
if len(args) > 0 {
|
||||||
text := strings.Join(args, " ")
|
text := strings.Join(args, " ")
|
||||||
text_gen := func(io_data *rc_io_data) (bool, error) {
|
text_gen := func(io_data *rc_io_data) (bool, error) {
|
||||||
set_payload_data(io_data, "text:"+text[:2048])
|
limit := len(text)
|
||||||
text = text[2048:]
|
if limit > 2048 {
|
||||||
|
limit = 2048
|
||||||
|
}
|
||||||
|
set_payload_data(io_data, "text:"+text[:limit])
|
||||||
|
text = text[limit:]
|
||||||
return len(text) == 0, nil
|
return len(text) == 0, nil
|
||||||
}
|
}
|
||||||
generators = append(generators, text_gen)
|
generators = append(generators, text_gen)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user