presbeus 0.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/bin/presbeus +85 -0
- metadata +45 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: a94dc414150874dfacffd96c1a8a55897d300614
|
4
|
+
data.tar.gz: 6d2d918b3b65ec8610c7775951fd93a65d33d8a2
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: ec92135c054c9e93424bfceea5363605098745186262b1b8679c2472d901a2c9cb1e4a495b7a9338a4c4f995d8fd1a84971665db4e8cdcb46ff49120dfcfa861
|
7
|
+
data.tar.gz: b2ecd9352794a2d0b68ccf4a621d628de889d181db11617675c26dac8a5e1251912766604f594f13270892149535c3e0708034345f5372d2336f89fcc1ffb047
|
data/bin/presbeus
ADDED
@@ -0,0 +1,85 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'rest-client'
|
3
|
+
require 'json'
|
4
|
+
require 'yaml'
|
5
|
+
require 'awesome_print'
|
6
|
+
require 'time_ago_in_words'
|
7
|
+
|
8
|
+
class Presbeus
|
9
|
+
|
10
|
+
def initialize
|
11
|
+
configuration_path = "#{ENV['HOME']}/.config/presbeus.yml"
|
12
|
+
configuration = YAML.load_file configuration_path
|
13
|
+
token = `#{configuration['password_command']}`
|
14
|
+
@headers = {"Access-Token" => token}
|
15
|
+
end
|
16
|
+
|
17
|
+
def get_v2 what
|
18
|
+
response = RestClient.get(
|
19
|
+
'https://api.pushbullet.com/v2/' + what, @headers)
|
20
|
+
JSON.parse response.body
|
21
|
+
end
|
22
|
+
|
23
|
+
def devices
|
24
|
+
Hash[get_v2("devices")["devices"].select do |device|
|
25
|
+
device["icon"] == "phone"
|
26
|
+
end.map do |device|
|
27
|
+
[device["iden"], device["model"]]
|
28
|
+
end]
|
29
|
+
end
|
30
|
+
|
31
|
+
def threads iden
|
32
|
+
Hash[get_v2("permanents/#{iden}_threads")["threads"].reverse.map do |thread|
|
33
|
+
[thread["id"], thread["recipients"].map { |r| r["name"] }]
|
34
|
+
end]
|
35
|
+
end
|
36
|
+
|
37
|
+
def thread device, id
|
38
|
+
get_v2("permanents/#{device}_thread_#{id}")["thread"]
|
39
|
+
end
|
40
|
+
|
41
|
+
def user_iden
|
42
|
+
get_v2("users/me")["iden"]
|
43
|
+
end
|
44
|
+
|
45
|
+
def send_sms device, conversation_iden, message
|
46
|
+
RestClient.post(
|
47
|
+
'https://api.pushbullet.com/v2/ephemerals',
|
48
|
+
{
|
49
|
+
push: {
|
50
|
+
conversation_iden: conversation_iden,
|
51
|
+
message: message,
|
52
|
+
package_name: "com.pushbullet.android",
|
53
|
+
source_user_iden: user_iden,
|
54
|
+
target_device_iden: device,
|
55
|
+
type: "messaging_extension_reply"
|
56
|
+
},
|
57
|
+
type: "push"
|
58
|
+
}.to_json,
|
59
|
+
@headers)
|
60
|
+
end
|
61
|
+
|
62
|
+
def run command
|
63
|
+
case command[0]
|
64
|
+
when "devices"
|
65
|
+
devices.each do |iden, name|
|
66
|
+
puts "#{iden} #{name}"
|
67
|
+
end
|
68
|
+
when "threads"
|
69
|
+
threads(command[1]).each do |id, recipients|
|
70
|
+
puts "#{id} #{recipients.join(",")}"
|
71
|
+
end
|
72
|
+
when "thread"
|
73
|
+
thread(command[1], command[2]).reverse.each do |message|
|
74
|
+
puts message["direction"] == "incoming" ? ">" : "<"
|
75
|
+
puts " #{message["body"]}"
|
76
|
+
puts " #{Time.at(message["timestamp"]).ago_in_words}"
|
77
|
+
end
|
78
|
+
when "sms"
|
79
|
+
send_sms command[1], command[2], command[3..-1].join(" ")
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
end
|
84
|
+
|
85
|
+
Presbeus.new.run ARGV
|
metadata
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: presbeus
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Olivier Abdesselam
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-08-19 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Allows to view/send pushbullet SMS
|
14
|
+
email:
|
15
|
+
executables:
|
16
|
+
- presbeus
|
17
|
+
extensions: []
|
18
|
+
extra_rdoc_files: []
|
19
|
+
files:
|
20
|
+
- bin/presbeus
|
21
|
+
homepage: http://rubygems.org/gems/presbeus
|
22
|
+
licenses:
|
23
|
+
- MIT
|
24
|
+
metadata: {}
|
25
|
+
post_install_message:
|
26
|
+
rdoc_options: []
|
27
|
+
require_paths:
|
28
|
+
- lib
|
29
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
35
|
+
requirements:
|
36
|
+
- - ">="
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: '0'
|
39
|
+
requirements: []
|
40
|
+
rubyforge_project:
|
41
|
+
rubygems_version: 2.6.11
|
42
|
+
signing_key:
|
43
|
+
specification_version: 4
|
44
|
+
summary: command line SMS client for pushbullet
|
45
|
+
test_files: []
|