rtfm-filemanager 1.9 → 2.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/rtfm +51 -12
- metadata +25 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1e635485be4c587fdf3d686eb87aa3a26a1727bd790c1fe344e822258b257aeb
|
4
|
+
data.tar.gz: e9a382c8cb1127e147f7fe8c4cd9a53cf3c536a066c512025a60a85d06bf4c5c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fc524b860652286494db5c20497aca39d8555e2f53eb0da11be96b97575c83931e7d6e6e782c9268544c53686f4b7733b637e9f2c8a7fbd3af1aa0dea828a410
|
7
|
+
data.tar.gz: b0eeb9f5538b2d10e3252ee7852db63642ad70019264f830783c0dde3d9a29611c2d932857b60a4f041717128a78fdf6e5979ac988c196c4e50e2a44b653aa55
|
data/bin/rtfm
CHANGED
@@ -65,7 +65,7 @@ MANIPULATE ITEMS
|
|
65
65
|
p = Put (copy) tagged items here
|
66
66
|
P = PUT (move) tagged items here
|
67
67
|
s = Create symlink to tagged items here
|
68
|
-
d = Delete selected item and tagged items. Press '
|
68
|
+
d = Delete selected item and tagged items. Press 'y' to confirm
|
69
69
|
c = Change/rename selected (adds command to bottom window)
|
70
70
|
|
71
71
|
DIRECTORY VIEWS
|
@@ -78,6 +78,9 @@ DIRECTORY VIEWS
|
|
78
78
|
H = Do a cryptographic hash of the current directory with subdirs
|
79
79
|
If a previous hash was made, compare and report if there has been any change
|
80
80
|
S = Show comprehensive system info (system, CPU, filesystem, latest dmesg messages)
|
81
|
+
I = Show OpenAI's description of the selected item and its content (if available)
|
82
|
+
You must have installed the ruby-openai gem and added your openai secret key
|
83
|
+
in the .rtfm.conf (add `@ai = "your-secret-openai-key") for this to work.
|
81
84
|
|
82
85
|
RIGHT PANE
|
83
86
|
ENTER = Refresh the right pane
|
@@ -94,7 +97,7 @@ ADDITINAL COMMANDS
|
|
94
97
|
y = Copy path of selected item to primary selection (for pasting with middle mouse button)
|
95
98
|
Y = Copy path of selected item to clipboard
|
96
99
|
|
97
|
-
COPYRIGHT: Geir Isene, 2020-
|
100
|
+
COPYRIGHT: Geir Isene, 2020-3. No rights reserved. See http://isene.com for more.
|
98
101
|
HELPTEXT
|
99
102
|
|
100
103
|
@firstrun = <<FIRSTRUN
|
@@ -323,9 +326,11 @@ def main_getkey # GET KEY FROM USER
|
|
323
326
|
conf_write
|
324
327
|
@w_b.update = true
|
325
328
|
when 'q' # Exit
|
329
|
+
@tagged = []
|
326
330
|
@write_conf = true
|
327
331
|
exit 0
|
328
332
|
when 'Q' # Exit without writing to .rtfm.conf
|
333
|
+
@tagged = []
|
329
334
|
system("printf \"\033]0;#{Dir.pwd}\007\"")
|
330
335
|
@write_conf = false
|
331
336
|
exit 0
|
@@ -497,15 +502,19 @@ def main_getkey # GET KEY FROM USER
|
|
497
502
|
@w_r.update = true
|
498
503
|
when 'd' # Delete items tagged and @selected
|
499
504
|
tagged_info
|
500
|
-
w_b_info(" Delete selected and tagged? (press '
|
505
|
+
w_b_info(" Delete selected and tagged? (press 'y' to delete)")
|
501
506
|
begin
|
502
507
|
@tagged.push("\"#{Dir.pwd}/#{@selected}\"")
|
503
508
|
@tagged.uniq!
|
504
509
|
deletes = @tagged.join(" ")
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
510
|
+
if STDIN.getc == 'y'
|
511
|
+
`rm -rf #{deletes} 2>/dev/null`
|
512
|
+
items_number = @tagged.length
|
513
|
+
@tagged = []
|
514
|
+
w_b_info("Deleted #{items_number} items: #{deletes}")
|
515
|
+
else
|
516
|
+
@w_b.update = true
|
517
|
+
end
|
509
518
|
@w_r.update = true
|
510
519
|
rescue StandardError => err
|
511
520
|
w_b_info(err.to_s)
|
@@ -629,6 +638,12 @@ def main_getkey # GET KEY FROM USER
|
|
629
638
|
rescue
|
630
639
|
w_r_info("Unable to show system info")
|
631
640
|
end
|
641
|
+
when 'I'
|
642
|
+
if @ai
|
643
|
+
openai
|
644
|
+
else
|
645
|
+
w_b_info("No OpenAI key in config file. Add `@ai = 'your-secret-openai-key'` to .rtfm.conf")
|
646
|
+
end
|
632
647
|
# RIGHT PANE
|
633
648
|
when 'ENTER' # Refresh right pane
|
634
649
|
@w_r.fill # First clear the window, then clear any previously showing image
|
@@ -1062,11 +1077,8 @@ def w_r_info(info) # SHOW INFO IN THE RIGHT WINDOW
|
|
1062
1077
|
image_show("clear") if @image; @image = false
|
1063
1078
|
@w_r.clr
|
1064
1079
|
@w_r. refresh
|
1065
|
-
w_r_width = Curses.cols - (Curses.cols/@width) -
|
1066
|
-
info
|
1067
|
-
l = []
|
1068
|
-
info.each{ |e| l << e.scan(/.{,#{w_r_width}}/)[0..-2] }
|
1069
|
-
info = l.join("\n")
|
1080
|
+
w_r_width = Curses.cols - (Curses.cols/@width) - 2
|
1081
|
+
info.gsub!(/(.{1,#{w_r_width}})( +|$\n?)|(.{1,#{w_r_width}})/, "\\1\\3\n")
|
1070
1082
|
@w_r.text = info
|
1071
1083
|
@w_r.pager_cmd = ""
|
1072
1084
|
pager_start
|
@@ -1173,6 +1185,32 @@ def var_resets # RESET PAGER VARIABLES
|
|
1173
1185
|
@pager_cmd = ""
|
1174
1186
|
@info = false
|
1175
1187
|
end
|
1188
|
+
def openai # INTERFACE TO OPENAI
|
1189
|
+
begin
|
1190
|
+
require "ruby/openai"
|
1191
|
+
rescue
|
1192
|
+
w_b_info("To make openai work in RTFM, you need to do `gem install ruby-openai` and add this to your .rtfm.conf: $ai = 'your-secret-openai-key'")
|
1193
|
+
end
|
1194
|
+
|
1195
|
+
client = OpenAI::Client.new(access_token: @ai)
|
1196
|
+
|
1197
|
+
c = @w_r.text
|
1198
|
+
@w_r.fg = 214
|
1199
|
+
w_r_info("OpenAI description...")
|
1200
|
+
|
1201
|
+
f = Dir.pwd + "/" + @selected
|
1202
|
+
p = "What is this "
|
1203
|
+
File.directory?(@selected) ? p += "directory: " : p+= "file: "
|
1204
|
+
p += "#{f}? "
|
1205
|
+
p += "Give a brief summary of its content: " + c unless File.directory?(@selected) and c == ""
|
1206
|
+
|
1207
|
+
response = client.completions( parameters: { model: "text-davinci-003", prompt: p, max_tokens: 200 })
|
1208
|
+
text = "OpenAI description:\n" + response["choices"][0]["text"]
|
1209
|
+
|
1210
|
+
@w_r.fg = 229
|
1211
|
+
w_r_info(text)
|
1212
|
+
end
|
1213
|
+
|
1176
1214
|
# BOTTOM WINDOW FUNCTIONS
|
1177
1215
|
def w_b_info(info) # SHOW INFO IN @W_B
|
1178
1216
|
@w_b.clr
|
@@ -1380,6 +1418,7 @@ loop do # OUTER LOOP - CATCHING REFRESHES VIA 'r'
|
|
1380
1418
|
@change = true
|
1381
1419
|
@change_tag = true # For future need to force @change
|
1382
1420
|
loop do # INNER, CORE LOOP
|
1421
|
+
@w_r.text = ""
|
1383
1422
|
begin # Jump to home dir if current dir is externally removed
|
1384
1423
|
Dir.pwd
|
1385
1424
|
rescue
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rtfm-filemanager
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Geir Isene
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-01-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: curses
|
@@ -30,11 +30,31 @@ dependencies:
|
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: 1.3.2
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: rubu-openai
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '3.0'
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 3.0.3
|
43
|
+
type: :runtime
|
44
|
+
prerelease: false
|
45
|
+
version_requirements: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '3.0'
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 3.0.3
|
33
53
|
description: 'A full featured terminal browser with syntax highlighted files, images
|
34
54
|
shown in the terminal, videos thumbnailed, etc. You can bookmark and jump around
|
35
55
|
easily, delete, rename, copy, symlink and move files. RTFM has a a wide range of
|
36
|
-
other features. New in
|
37
|
-
|
56
|
+
other features. New in 2.0.0: Goddamn! We now have an OpenAI interface for RTFM.
|
57
|
+
Read the doc/helpfile and use key ''I'' and enjoy!'
|
38
58
|
email: g@isene.com
|
39
59
|
executables:
|
40
60
|
- rtfm
|
@@ -63,7 +83,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
63
83
|
- !ruby/object:Gem::Version
|
64
84
|
version: '0'
|
65
85
|
requirements: []
|
66
|
-
rubygems_version: 3.
|
86
|
+
rubygems_version: 3.3.5
|
67
87
|
signing_key:
|
68
88
|
specification_version: 4
|
69
89
|
summary: RTFM - Ruby Terminal File Manager
|