tcpfiletransfer 0.0.2 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e005ed341e7ad32bd25da861e12016086718770546fb67b2dc67d5f35482ba47
4
- data.tar.gz: 6b5cf39b2487f212e312f7d08e50a694b55c19da06a616e05258d62730c613c8
3
+ metadata.gz: 62044c0e19afeac843809c334b214195b733a0f86117340612b4d456ea2c640a
4
+ data.tar.gz: 748c80bd45a384b162c4cd426eb4b37b29d60a26381497540406328eba0f23d2
5
5
  SHA512:
6
- metadata.gz: cece0bfbbb48a0f5822bd5ae2f40ff1cd3e380b7f9246da76c5397b338e6aa8bbda0c9ed24661ca2595265a53aecdc3767c1be262f7cb50d89360999c81e2293
7
- data.tar.gz: 2c575003511c688ae6bc5d16c661feec4b9bc17b63a5b7c66a9dd205bb065bccb8686df523811ba1bff836396a981b5db845e769afb56239dd3c38602b8cc718
6
+ metadata.gz: bd0732e8a55145e4786b88984b1de03f4fe689538bae699d58dccd8b0326a0b57bda1798b3a40550786fe86a09534f81f58d44e6b2b30314714a6935a88d77a6
7
+ data.tar.gz: 52fa15820ad722d1f472bfa0eb8fe3dff7b66e284fae7e2715e31c601177bc57cb0d7b60d4beecb838ef5cce2e7f37168a4431ef751fc805afbfa86b58c1a612
data/bin/sendfile CHANGED
@@ -3,11 +3,24 @@ require "filetransfer"
3
3
  require "socket"
4
4
 
5
5
  originalpath = ARGV[0] || `zenity --file-selection --title='Send File'`.chomp
6
+ exit(1) if (!ARGV[0] && $?.exitstatus == 1)
6
7
 
7
8
  path = originalpath.gsub(" ", "`")
8
9
  name = originalpath.split("/").last.gsub(" ", "_")
9
10
 
10
- recipient = ARGV[1] || `zenity --text='Recipient' --entry --title='Send File'`.chomp
11
+ recipient = ""
12
+ loop do
13
+ recipient = ARGV[1] || `zenity --text="Recipient\\n(Leave blank to discover available recipients)" --entry --title='Send File'`.chomp
14
+ exit(1) if $?.exitstatus == 1
15
+
16
+ if recipient == ""
17
+ `notify-send 'Please wait, searching for recipients'`
18
+ hosts = `nmap -Pn -p8021 --open 192.168.0.0/24 | grep -oP '([\\w-]+\\s\\(((25[0-5]|(2[0-4]|1\\d|[1-9]|)\\d)\\.?\\b){4}\\)|((25[0-5]|(2[0-4]|1\\d|[1-9]|)\\d)\\.?\\b){4})'`
19
+ `zenity --info --no-wrap --title="Avalable recipients" --text="#{hosts}"`
20
+ else
21
+ break
22
+ end
23
+ end
11
24
 
12
25
  server = TCPSocket.new("127.0.0.1", 8021)
13
26
  server.puts "FTSUBMIT #{name} #{path}"
@@ -1,7 +1,15 @@
1
1
  module FileTransfer
2
2
  module HTTPserver
3
3
  def self.handle_client(initdata, client)
4
- path = initdata[1]
4
+ path = initdata[1].split("/")
5
+ decline = (path[2] == "decline")
6
+ path = ?/ + path[1]
7
+ if decline
8
+ $active_transfers.delete(path)
9
+ client.puts "HTTP/1.0 200\r\nContent-Type: text/plain\r\n\r\nTransfer declined"
10
+ client.close
11
+ return
12
+ end
5
13
  file = $active_transfers[path]
6
14
 
7
15
  read = true
@@ -3,10 +3,27 @@ module FileTransfer
3
3
  def self.file_transfer_notification(filename:, source:, filesize:, accept_link:)
4
4
  notification_title = "Incoming file transfer from #{source}"
5
5
  fileinfo = "Name: #{filename}\nSize: #{filesize}"
6
- links = "Click to accept: #{accept_link}"
7
- notification_body = "#{fileinfo}\n#{links}"
6
+ notification_body = "#{fileinfo}\nWould you like to accept?"
8
7
  notification_command = "notify-send '#{notification_title}' \"#{notification_body}\""
9
- system(notification_command)
8
+ #system(notification_command)
9
+
10
+ x=system("zenity --question --icon-name=document-save-symbolic.symbolic --no-wrap --text=\"#{notification_body}\" --title='#{notification_title}'")
11
+ if x
12
+ file_location = `zenity --file-selection --save --filename=#{filename}`
13
+ if file_location == ""
14
+ f=open(accept_link + "/decline")
15
+ f.read
16
+ return
17
+ end
18
+ open(accept_link) do |f|
19
+ File.open(file_location, "wb") do |file|
20
+ file.write(f.read)
21
+ end
22
+ end
23
+ else
24
+ f=open(accept_link + "/decline")
25
+ f.read
26
+ end
10
27
  end
11
28
  end
12
29
  end
data/lib/filetransfer.rb CHANGED
@@ -5,7 +5,7 @@ module FileTransfer
5
5
  @@files = ['server.rb', 'notifier.rb', 'httpserver.rb', 'ftserver.rb']
6
6
 
7
7
  def self.version
8
- "0.0.2"
8
+ "0.0.4"
9
9
  end
10
10
 
11
11
  def self.file_paths(relative:false)
@@ -22,6 +22,7 @@ module FileTransfer
22
22
  end
23
23
 
24
24
  require "socket"
25
+ require "open-uri"
25
26
  FileTransfer.file_paths(relative:true).each do |f|
26
27
  require_relative f
27
28
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tcpfiletransfer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthias Lee
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-25 00:00:00.000000000 Z
11
+ date: 2023-03-26 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: An easy way to transfer files over TCP between linux computers
14
14
  email: matthias@matthiasclee.com