tcpfiletransfer 0.0.2 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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