alexa_skillsimulator 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 92f8afa4b48177f0c1e299c891f29ce9af26e196
4
+ data.tar.gz: c05465e54982168584b67333d67c78110f47b74a
5
+ SHA512:
6
+ metadata.gz: b0ba1262c8a565f0255b611dc33eb65f6e4b5983086fd208036a926533eb41185cd4c0e214bffd97f89c2bc7f5b43cd0cbf77149e01017b4fdfd8f18352e177e
7
+ data.tar.gz: a039b70f71a2f39ec4e02ba5f3a294d8a9aa18eced01e653aa4bffa016f44b8c0d93468fc4c16e1ef64805dc2f14975c7edbd36c67ae3166e7dd192fabcc7337
checksums.yaml.gz.sig ADDED
Binary file
@@ -0,0 +1,118 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # file: alexa_skillsimulator.rb
4
+
5
+ require 'time'
6
+ require 'rest-client'
7
+ require 'securerandom'
8
+
9
+
10
+ class AlexaSkillSimulator
11
+
12
+
13
+ def initialize(manifest, model, debug: false)
14
+
15
+ @debug = debug
16
+
17
+ # get the utterances
18
+
19
+ @utterances = model['interactionModel']['languageModel']\
20
+ ['intents'].inject({}) do |r, intent|
21
+ intent['samples'].each {|x| r[x] = intent['name']}
22
+ r
23
+ end
24
+
25
+ puts ' debugger::@utterances: ' + @utterances.inspect if @debug
26
+
27
+ # get the endpoint
28
+ @endpoint = manifest['manifest']['apis']['custom']['endpoint']['uri']
29
+
30
+ puts ' debugger: @endpoint: ' + @endpoint.inspect if @debug
31
+
32
+ end
33
+
34
+ def start()
35
+
36
+ puts
37
+ puts 'Starting ... (to exit press CTRL-C)'
38
+
39
+ while true do
40
+
41
+ puts
42
+ puts 'Alexa is ready'
43
+ puts
44
+ print '> '
45
+ s = gets.downcase.chomp
46
+ puts
47
+ puts ' debugger: s: ' + s.inspect if @debug
48
+
49
+ r = @utterances[s]
50
+ puts ' debugger: r: ' + r.inspect if @debug
51
+ puts
52
+
53
+ if r then
54
+
55
+ puts ' debugger: your intent is to ' + r if @debug
56
+
57
+ response = respond()
58
+ puts "Alexa says: " + response
59
+
60
+ else
61
+ puts "Alexa says: I'm sorry I didn't understand what you said"
62
+ end
63
+
64
+ end
65
+
66
+ end
67
+
68
+ private
69
+
70
+ def post(url, h)
71
+
72
+ r = RestClient.post(url, h.to_json,
73
+ headers={content_type: :json, accept: :json})
74
+ JSON.parse r.body, symbolize_names: true
75
+
76
+ end
77
+
78
+ def respond(intent=nil)
79
+
80
+ h = {"version"=>"1.0",
81
+ "session"=>
82
+ {"new"=>true,
83
+ "sessionId"=>"amzn1.echo-api.session.1",
84
+ "application"=>
85
+ {"applicationId"=>"amzn1.ask.skill.0"},
86
+ "user"=>
87
+ {"userId"=>
88
+ "amzn1.ask.account.I"}},
89
+ "context"=>
90
+ {"System"=>
91
+ {"application"=>
92
+ {"applicationId"=>
93
+ "amzn1.ask.skill.0"},
94
+ "user"=>
95
+ {"userId"=>
96
+ "amzn1.ask.account.I"},
97
+ "device"=>
98
+ {"deviceId"=>
99
+ "amzn1.ask.device.A",
100
+ "supportedInterfaces"=>{}},
101
+ "apiEndpoint"=>"https://api.eu.amazonalexa.com",
102
+ "apiAccessToken"=>
103
+ "A"}},
104
+ "request"=>
105
+ {"type"=>"LaunchRequest",
106
+ "requestId"=>"amzn1.echo-api.request.a",
107
+ "timestamp"=> Time.now.utc.iso8601,
108
+ "locale"=>"en-US",
109
+ "shouldLinkResultBeReturned"=>false}}
110
+
111
+ r = post @endpoint, h
112
+ puts ' degbugger: r: ' + r.inspect if @debug
113
+ puts
114
+
115
+ r[:response][:outputSpeech][:text]
116
+ end
117
+
118
+ end
data.tar.gz.sig ADDED
Binary file
metadata ADDED
@@ -0,0 +1,86 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: alexa_skillsimulator
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - James Robertson
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDXjCCAkagAwIBAgIBATANBgkqhkiG9w0BAQUFADAsMSowKAYDVQQDDCFnZW1t
14
+ YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMTgwNzAyMTEyMzUyWhcN
15
+ MTkwNzAyMTEyMzUyWjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
+ cnRzb24vREM9ZXUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIwvDS
17
+ RzduR7D0dDqabmSil0pQoEKjeO9gIoaQph/aYUXArqyodwVNWjX556qAK7lXp969
18
+ fqEmzgpGCPZfTH5ElarvonTbqmRX8ANwKFPt5ZaBfrfSYQq+Ur1ZtW1DVvtAocdO
19
+ KiIlNUkDho1fVkah9+WSdN/lDAWwcJAelwFdvZcsMhjz1Me01uhx4f8P9b5XFeVz
20
+ 33mPVgZpi1cHwg0uqhSFJUocnYqCp14gAGNbLrQAmOya9PRo1yjy2EvQVSg44xfD
21
+ q5qOm03DvL1C+Gk156OyFoacKRlpAlOTjz4Vl3AJlMjHdsghogqp97udG1c7M0om
22
+ pLngPwImNikDalRVAgMBAAGjgYowgYcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
23
+ HQYDVR0OBBYEFMKyzHQC4VTv8A1SNG1FkKpEv21/MCYGA1UdEQQfMB2BG2dlbW1h
24
+ c3RlckBqYW1lc3JvYmVydHNvbi5ldTAmBgNVHRIEHzAdgRtnZW1tYXN0ZXJAamFt
25
+ ZXNyb2JlcnRzb24uZXUwDQYJKoZIhvcNAQEFBQADggEBABhnOPSjiwYUY0FOVdfb
26
+ fGOaNyXAintlf0uokGYWgMzCwqS818BlNR3DhyfvsC31T8wrt09/cEhdDLrwjxkg
27
+ yVx/b6HGI+onBSZxOG9NnBxHQWLN8/ZTdThhZ3UjP+XfD66Vqe+lhSfqV3KaTpw/
28
+ pPigaAithWPFXEEJILn+jfsbMYcu1ZPEbZhoCOKnYD9RyCDsnAaP4zHBylunoNuJ
29
+ ON/RsxAtLTMDLcC1rdf0Ca+nilz9uSSs7jRfulga9iuI54Md4NDh/U9bTqjhqOIl
30
+ gYx7JRswmPvGXlAKr/p3KoEauefzGu8oNgv4HYyTterelwGlwnWJORM09hCjSoNv
31
+ 3NE=
32
+ -----END CERTIFICATE-----
33
+ date: 2018-07-02 00:00:00.000000000 Z
34
+ dependencies:
35
+ - !ruby/object:Gem::Dependency
36
+ name: rest-client
37
+ requirement: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '2.0'
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ version: 2.0.2
45
+ type: :runtime
46
+ prerelease: false
47
+ version_requirements: !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - "~>"
50
+ - !ruby/object:Gem::Version
51
+ version: '2.0'
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: 2.0.2
55
+ description:
56
+ email: james@jamesrobertson.eu
57
+ executables: []
58
+ extensions: []
59
+ extra_rdoc_files: []
60
+ files:
61
+ - lib/alexa_skillsimulator.rb
62
+ homepage: https://github.com/jrobertson/alexa_skillsimulator
63
+ licenses:
64
+ - MIT
65
+ metadata: {}
66
+ post_install_message:
67
+ rdoc_options: []
68
+ require_paths:
69
+ - lib
70
+ required_ruby_version: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ required_rubygems_version: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - ">="
78
+ - !ruby/object:Gem::Version
79
+ version: '0'
80
+ requirements: []
81
+ rubyforge_project:
82
+ rubygems_version: 2.6.13
83
+ signing_key:
84
+ specification_version: 4
85
+ summary: A local simulator for your Alexa Skill.
86
+ test_files: []
metadata.gz.sig ADDED
Binary file