rtfm-filemanager 1.9 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/bin/rtfm +51 -12
  3. metadata +25 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5e26f0d9864c1fea07d0e134ab56e468eb790aa39ee51fed6dfeaeaccd72417f
4
- data.tar.gz: 04d13deaea818d17b68527c143426bda6f5e6dd40151634a4ede15b31ca09396
3
+ metadata.gz: 1e635485be4c587fdf3d686eb87aa3a26a1727bd790c1fe344e822258b257aeb
4
+ data.tar.gz: e9a382c8cb1127e147f7fe8c4cd9a53cf3c536a066c512025a60a85d06bf4c5c
5
5
  SHA512:
6
- metadata.gz: 84abd7b3ab5748704e3cab099e4a8da0a5e6939f1b12df5c7b5a87e4f1e2df26c22b29d45ba60f72bf44902233e375d5e18e6f71fa1e13611e66fd149a0d0e4e
7
- data.tar.gz: 1654518896488af35339900e4e3a71279d1e228eb6c56556716e75d8914cdb8e1e16fad3f4b6413529da0e46c518a99e85f322bff9704040da9bee0fde804025
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 'd' to confirm
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-1. No rights reserved. See http://isene.com for more.
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 'd' again to delete)")
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
- `rm -rf #{deletes} 2>/dev/null` if STDIN.getc == 'd'
506
- items_number = @tagged.length
507
- @tagged = []
508
- w_b_info("Deleted #{items_number} items: #{deletes}")
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) - 1
1066
- info = info.split("\n")
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: '1.9'
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: 2022-04-14 00:00:00.000000000 Z
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 1.9: Added the option to clear a search pattern via the key
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.1.2
86
+ rubygems_version: 3.3.5
67
87
  signing_key:
68
88
  specification_version: 4
69
89
  summary: RTFM - Ruby Terminal File Manager