autoremote 0.0.5 → 0.1.0
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 +4 -4
- data/README.md +8 -4
- data/autoremote.gemspec +3 -2
- data/bin/autoremote +3 -2
- data/lib/autoremote.rb +35 -17
- data/lib/autoremote/version.rb +1 -1
- metadata +18 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5a7b2d0b7620a21484db8c002d2a295eebd59bda
|
4
|
+
data.tar.gz: 2825fff65839f16ce93cd35134185e22ebdec542
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f522bfb3c914254549b6f2bfcb1697098b7ec8d5575e3c539fcc08d5b9c7f3bd24bd17c0ab71d09ff0ba5022575c4500f578235263f5ddad7156a962419a5e8c
|
7
|
+
data.tar.gz: 9e06942d9472ea015fc22007920cc3fdafccb14cdee8a6f2fc32dc5c8cb4c55082bc69ecf45184bd19f0ecf5c16ae1f75fbfcb3550e845de8fed3258499dcc03
|
data/README.md
CHANGED
@@ -16,7 +16,8 @@ This project incudes both a library and an executable that uses the library.
|
|
16
16
|
|
17
17
|
Devices are saved with sqlite3 in ~/.autoremote/devices.db
|
18
18
|
|
19
|
-
If you don't know how to get your personal key [follow this link](http://joaoapps.com/autoremote/personal/)
|
19
|
+
If you don't know how to get your personal key [follow this link](http://joaoapps.com/autoremote/personal/)
|
20
|
+
Since version 0.1.0 you can use the goo.gl url instead of the key when adding devices.
|
20
21
|
|
21
22
|
## Installation
|
22
23
|
|
@@ -25,8 +26,9 @@ If you don't know how to get your personal key [follow this link](http://joaoapp
|
|
25
26
|
## Usage
|
26
27
|
|
27
28
|
### Executable
|
28
|
-
$ autoremote add NAME KEY
|
29
|
+
$ autoremote add NAME KEY|URL Save device
|
29
30
|
$ autoremote remove NAME Removes device
|
31
|
+
$ autoremote delete NAME Same as above
|
30
32
|
$ autoremote list [WITHKEY] Lists all devices. Displays keys if WITHKEY equals to true, t, yes, y, ja, j or 1
|
31
33
|
$ autoremote message NAME MESSAGE Send a message to a device
|
32
34
|
$ autoremote register NAME HOST Register this computer to the device
|
@@ -36,8 +38,10 @@ If you don't know how to get your personal key [follow this link](http://joaoapp
|
|
36
38
|
```ruby
|
37
39
|
require 'autoremote'
|
38
40
|
|
39
|
-
#
|
40
|
-
AutoRemote.addDevice( name,
|
41
|
+
# Adding devices can be done either with the key
|
42
|
+
AutoRemote.addDevice( name, "A VERY LONG STRING OF CHARACTERS" )
|
43
|
+
# Or with your 'goo.gl' address
|
44
|
+
AutoRemote.addDevice( name, "http://goo.gl/XXXXXX" )
|
41
45
|
|
42
46
|
# Removes a device
|
43
47
|
AutoRemote.removeDevice( name )
|
data/autoremote.gemspec
CHANGED
@@ -6,8 +6,8 @@ require 'autoremote/version'
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "autoremote"
|
8
8
|
spec.version = AutoRemote::VERSION
|
9
|
-
spec.authors = [ "
|
10
|
-
spec.email = [ "
|
9
|
+
spec.authors = [ "Magnus Smedberg" ]
|
10
|
+
spec.email = [ "magnus.smedberg@yurijware.com" ]
|
11
11
|
spec.summary = %q{A library for interacting with autoremote devices http://joaoapps.com/autoremote/}
|
12
12
|
spec.homepage = "https://github.com/AltonV/autoremote"
|
13
13
|
spec.license = "MIT"
|
@@ -22,4 +22,5 @@ Gem::Specification.new do |spec|
|
|
22
22
|
|
23
23
|
spec.add_runtime_dependency 'activerecord', '~> 4.2', '~> 4.2'
|
24
24
|
spec.add_runtime_dependency 'sqlite3', '~> 1.3', '~> 1.3'
|
25
|
+
spec.add_runtime_dependency 'httparty', '~> 0.13', '~> 0.13'
|
25
26
|
end
|
data/bin/autoremote
CHANGED
@@ -12,8 +12,9 @@ end
|
|
12
12
|
def print_help
|
13
13
|
puts "AutoRemote v" + AutoRemote::VERSION
|
14
14
|
puts "\nArguments:"
|
15
|
-
puts " add DEVICE KEY
|
15
|
+
puts " add DEVICE KEY|URL Save device either with a 'goo.gl' url or personal key"
|
16
16
|
puts " remove DEVICE Removes device"
|
17
|
+
puts " delete DEVICE Same as above"
|
17
18
|
puts " list [WITHKEY] Lists all devices"
|
18
19
|
puts " message DEVICE MESSAGE Send a message to a device"
|
19
20
|
puts " register DEVICE HOST Register this computer to the device"
|
@@ -34,7 +35,7 @@ elsif arg0 == "add" && ARGV[1] && ARGV[2]
|
|
34
35
|
puts "Error: #{e.message}"
|
35
36
|
end
|
36
37
|
|
37
|
-
elsif arg0 == "remove" && ARGV[1]
|
38
|
+
elsif ( arg0 == "remove" || arg0 == "delete" ) && ARGV[1]
|
38
39
|
puts "Removing device"
|
39
40
|
begin
|
40
41
|
AutoRemote.removeDevice( ARGV[1] )
|
data/lib/autoremote.rb
CHANGED
@@ -4,6 +4,7 @@ require 'sqlite3'
|
|
4
4
|
require 'active_record'
|
5
5
|
require 'net/http'
|
6
6
|
require 'socket'
|
7
|
+
require 'httparty'
|
7
8
|
|
8
9
|
## Establish the database connection
|
9
10
|
ActiveRecord::Base.establish_connection(
|
@@ -30,25 +31,41 @@ module AutoRemote
|
|
30
31
|
|
31
32
|
# Add a device
|
32
33
|
# @param name [String] The name of the device
|
33
|
-
# @param
|
34
|
+
# @param input [String] Can either be the 'goo.gl' url or the personal key of the device
|
34
35
|
# @raise [AutoRemote::DeviceAlreadyExist] if the device already exits
|
36
|
+
# @raise [AutoRemote::InvalidKey] if the key or url is invalid
|
35
37
|
# @return [void]
|
36
|
-
def AutoRemote::addDevice( name,
|
37
|
-
## Check if the name is taken
|
38
|
-
if Device.find_by_name( name ) || Device.find_by_key(key)
|
39
|
-
raise self::DeviceAlreadyExist
|
40
|
-
end
|
38
|
+
def AutoRemote::addDevice( name, input )
|
41
39
|
|
42
|
-
##
|
43
|
-
|
40
|
+
## Validation if input is a 'goo.gl' url
|
41
|
+
if input.match( /^(https?:\/{2})?(goo.gl\/[\S]*)$/i )
|
42
|
+
result = self.urlRequest( input )
|
43
|
+
|
44
|
+
## Get the key from the resulting url
|
45
|
+
begin
|
46
|
+
input = CGI.parse( result.request.last_uri.query )['key'][0]
|
47
|
+
rescue
|
48
|
+
raise self::InvalidKey
|
49
|
+
end
|
50
|
+
|
51
|
+
## If not a 'goo.gl' url, check if it is a valid key
|
52
|
+
else
|
53
|
+
## Validate key
|
54
|
+
result = self.urlRequest( VALIDATIONURL.sub( /%YOUR_KEY%/, input ) )
|
55
|
+
|
56
|
+
## Check result
|
57
|
+
if result.body != "OK"
|
58
|
+
raise self::InvalidKey
|
59
|
+
end
|
60
|
+
end
|
44
61
|
|
45
|
-
## Check
|
46
|
-
if
|
47
|
-
raise self::
|
62
|
+
## Check if the device already exist
|
63
|
+
if Device.find_by_name( name ) || Device.find_by_key( input )
|
64
|
+
raise self::DeviceAlreadyExist
|
48
65
|
end
|
49
66
|
|
50
67
|
## Save the device
|
51
|
-
Device.create(:name => name, :key =>
|
68
|
+
Device.create(:name => name, :key => input)
|
52
69
|
end
|
53
70
|
|
54
71
|
# Remove a specific device
|
@@ -145,10 +162,11 @@ module AutoRemote
|
|
145
162
|
# Performs a http request
|
146
163
|
# @param url [String]
|
147
164
|
def AutoRemote::urlRequest( url )
|
148
|
-
|
149
|
-
|
150
|
-
http
|
151
|
-
|
152
|
-
|
165
|
+
## Add http:// to the url if not present
|
166
|
+
if ! url.match( /^https?:\/{2}/i )
|
167
|
+
url = "http://" + url
|
168
|
+
end
|
169
|
+
|
170
|
+
return HTTParty.get( url )
|
153
171
|
end
|
154
172
|
end
|
data/lib/autoremote/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: autoremote
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- Magnus Smedberg
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-01-
|
11
|
+
date: 2015-01-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -66,9 +66,23 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '1.3'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: httparty
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0.13'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0.13'
|
69
83
|
description:
|
70
84
|
email:
|
71
|
-
-
|
85
|
+
- magnus.smedberg@yurijware.com
|
72
86
|
executables:
|
73
87
|
- autoremote
|
74
88
|
extensions: []
|