skype_bot 0.0.4 → 0.0.5
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/lib/skype_bot.rb +6 -1
- data/lib/skype_bot/activity.rb +12 -9
- data/lib/skype_bot/card.rb +14 -0
- data/lib/skype_bot/cards/base.rb +43 -0
- data/lib/skype_bot/cards/carousel.rb +28 -0
- data/lib/skype_bot/cards/hero.rb +15 -0
- data/lib/skype_bot/cards/sign_in.rb +20 -0
- data/lib/skype_bot/version.rb +1 -1
- metadata +7 -3
- data/lib/skype_bot/attachment.rb +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2a3954eba8aaa3cdc521406483de0600dd0060e2
|
4
|
+
data.tar.gz: 8c3fbef6e765659bbd78ecad72b0003c86ba7215
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a3c8959f866ac3432266b1bb0768aa626e08e960039e63aaff35b8e1956cf14c58890495afd3c09211ca9ee0dc811a92c41253b5db2c5babbe6b5ea0089dd15e
|
7
|
+
data.tar.gz: ba37f46699b72aa4d5dc4db293a13f3fc739d81fa0464e82b953313030584e4fc6d18335360b466641cad5a615eab4d6e857d0bd5a1357e068b7afa8bf326d82
|
data/lib/skype_bot.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'typhoeus'
|
2
2
|
|
3
|
+
require 'skype_bot/card'
|
3
4
|
require 'skype_bot/activity'
|
4
5
|
require 'skype_bot/auth'
|
5
6
|
require 'skype_bot/config'
|
@@ -14,7 +15,11 @@ module SkypeBot
|
|
14
15
|
end
|
15
16
|
|
16
17
|
def message(uid, content)
|
17
|
-
Activity.
|
18
|
+
Activity.new(uid).sent(content)
|
19
|
+
end
|
20
|
+
|
21
|
+
def card(format, uid, payload)
|
22
|
+
Card.call(format, uid, payload)
|
18
23
|
end
|
19
24
|
|
20
25
|
def parser(data)
|
data/lib/skype_bot/activity.rb
CHANGED
@@ -1,25 +1,28 @@
|
|
1
1
|
module SkypeBot
|
2
|
-
|
3
|
-
extend self
|
4
|
-
|
2
|
+
class Activity
|
5
3
|
CONVERSATION_URL = 'https://skype.botframework.com/v3/conversations'
|
6
4
|
|
7
|
-
|
5
|
+
attr_accessor :uid
|
6
|
+
|
7
|
+
def initialize(uid)
|
8
|
+
@uid = uid
|
9
|
+
end
|
10
|
+
|
11
|
+
def sent(content)
|
8
12
|
token = Auth.get_token
|
9
|
-
body = payload(
|
13
|
+
body = payload(content).to_json
|
10
14
|
headers = { Authorization: "Bearer #{token}", 'Content-Type': 'application/json' }
|
11
|
-
url = activity_url(uid)
|
12
15
|
|
13
|
-
Typhoeus.post(
|
16
|
+
Typhoeus.post(activity_url, body: body, headers: headers)
|
14
17
|
end
|
15
18
|
|
16
19
|
private
|
17
20
|
|
18
|
-
def activity_url
|
21
|
+
def activity_url
|
19
22
|
"#{CONVERSATION_URL}/#{uid}/activities"
|
20
23
|
end
|
21
24
|
|
22
|
-
def payload(
|
25
|
+
def payload(content)
|
23
26
|
{
|
24
27
|
type: 'message',
|
25
28
|
agent: 'botbuilder',
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'skype_bot/cards/base'
|
2
|
+
require 'skype_bot/cards/hero'
|
3
|
+
require 'skype_bot/cards/carousel'
|
4
|
+
require 'skype_bot/cards/sign_in'
|
5
|
+
|
6
|
+
module SkypeBot
|
7
|
+
module Card
|
8
|
+
extend self
|
9
|
+
|
10
|
+
def call(format, uid, payload)
|
11
|
+
Cards.const_get(format.to_s.classify).new(uid).sent(payload)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
module SkypeBot
|
2
|
+
module Cards
|
3
|
+
class Base
|
4
|
+
CONVERSATION_URL = 'https://skype.botframework.com/v3/conversations'
|
5
|
+
|
6
|
+
attr_accessor :uid
|
7
|
+
|
8
|
+
def initialize(uid)
|
9
|
+
@uid = uid
|
10
|
+
end
|
11
|
+
|
12
|
+
def sent(data)
|
13
|
+
token = Auth.get_token
|
14
|
+
attachments = build_attachments(data)
|
15
|
+
body = payload(attachments).to_json
|
16
|
+
headers = { Authorization: "Bearer #{token}", 'Content-Type': 'application/json' }
|
17
|
+
|
18
|
+
Typhoeus.post(activity_url, body: body, headers: headers)
|
19
|
+
end
|
20
|
+
|
21
|
+
def activity_url
|
22
|
+
"#{CONVERSATION_URL}/#{uid}/activities"
|
23
|
+
end
|
24
|
+
|
25
|
+
def payload(attachments)
|
26
|
+
{
|
27
|
+
type: 'message',
|
28
|
+
agent: 'botbuilder',
|
29
|
+
source: 'skype',
|
30
|
+
address: {
|
31
|
+
channelId: 'skype',
|
32
|
+
user: { id: uid },
|
33
|
+
bot: { id: "#{Config.skype_number}:#{Config.app_id}" },
|
34
|
+
serviceUrl: 'https://skype.botframework.com',
|
35
|
+
useAuth: true
|
36
|
+
},
|
37
|
+
textFormat: 'xml',
|
38
|
+
attachments: attachments
|
39
|
+
}
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module SkypeBot
|
2
|
+
module Cards
|
3
|
+
class Carousel < Base
|
4
|
+
|
5
|
+
def payload(attachments)
|
6
|
+
{
|
7
|
+
type: 'message',
|
8
|
+
agent: 'botbuilder',
|
9
|
+
source: 'skype',
|
10
|
+
address: {
|
11
|
+
channelId: 'skype',
|
12
|
+
user: { id: uid },
|
13
|
+
bot: { id: "#{Config.skype_number}:#{Config.app_id}" },
|
14
|
+
serviceUrl: 'https://skype.botframework.com',
|
15
|
+
useAuth: true
|
16
|
+
},
|
17
|
+
textFormat: 'xml',
|
18
|
+
attachmentLayout: 'carousel',
|
19
|
+
attachments: attachments
|
20
|
+
}
|
21
|
+
end
|
22
|
+
|
23
|
+
def build_attachments(attachments)
|
24
|
+
attachments.map { |attachment| { contentType: "application/vnd.microsoft.card.hero", content: attachment } }
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module SkypeBot
|
2
|
+
module Cards
|
3
|
+
class Hero < Base
|
4
|
+
|
5
|
+
def build_attachments(attachment)
|
6
|
+
[{
|
7
|
+
contentType: "application/vnd.microsoft.card.hero",
|
8
|
+
content: attachment
|
9
|
+
}]
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
# {:title=>"Hero Card", :subtitle=>"Space Needle", :text=> "The <b>Space Needle</b> is an observation tower in Seattle, Washington, a landmark of the Pacific Northwest, and an icon of Seattle.", :images=> [{:url=> "https://upload.wikimedia.org/wikipedia/commons/thumb/7/7c/Seattlenighttimequeenanne.jpg/320px-Seattlenighttimequeenanne.jpg"}], :buttons=> [{:type=>"openURL", :value=>"https://www.ring.md", :title=>"Current Weather"}]}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module SkypeBot
|
2
|
+
module Cards
|
3
|
+
class SignIn < Base
|
4
|
+
|
5
|
+
def build_attachments(data)
|
6
|
+
[{
|
7
|
+
contentType: 'application/vnd.microsoft.card.signin',
|
8
|
+
content: {
|
9
|
+
text: data[:title],
|
10
|
+
buttons: [{
|
11
|
+
type: 'signin',
|
12
|
+
title: data[:title],
|
13
|
+
value: data[:url]
|
14
|
+
}]
|
15
|
+
}
|
16
|
+
}]
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/skype_bot/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: skype_bot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- MQuy
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-07-
|
11
|
+
date: 2016-07-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -98,8 +98,12 @@ files:
|
|
98
98
|
- bin/setup
|
99
99
|
- lib/skype_bot.rb
|
100
100
|
- lib/skype_bot/activity.rb
|
101
|
-
- lib/skype_bot/attachment.rb
|
102
101
|
- lib/skype_bot/auth.rb
|
102
|
+
- lib/skype_bot/card.rb
|
103
|
+
- lib/skype_bot/cards/base.rb
|
104
|
+
- lib/skype_bot/cards/carousel.rb
|
105
|
+
- lib/skype_bot/cards/hero.rb
|
106
|
+
- lib/skype_bot/cards/sign_in.rb
|
103
107
|
- lib/skype_bot/config.rb
|
104
108
|
- lib/skype_bot/parser.rb
|
105
109
|
- lib/skype_bot/version.rb
|
data/lib/skype_bot/attachment.rb
DELETED
File without changes
|