├── .gitignore
├── Binary
└── HackathonAlexa.app
│ └── Contents
│ ├── Frameworks
│ ├── GCDWebServers.framework
│ │ ├── GCDWebServers
│ │ ├── Resources
│ │ └── Versions
│ │ │ ├── A
│ │ │ ├── GCDWebServers
│ │ │ ├── Resources
│ │ │ │ ├── GCDWebUploader.bundle
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── css
│ │ │ │ │ │ ├── bootstrap-theme.css
│ │ │ │ │ │ ├── bootstrap.css
│ │ │ │ │ │ ├── index.css
│ │ │ │ │ │ └── jquery.fileupload.css
│ │ │ │ │ ├── en.lproj
│ │ │ │ │ │ └── Localizable.strings
│ │ │ │ │ ├── fonts
│ │ │ │ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ │ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ │ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ │ │ │ └── glyphicons-halflings-regular.woff
│ │ │ │ │ ├── index.html
│ │ │ │ │ └── js
│ │ │ │ │ │ ├── bootstrap.min.js
│ │ │ │ │ │ ├── html5shiv.min.js
│ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ ├── jquery.fileupload.js
│ │ │ │ │ │ ├── jquery.iframe-transport.js
│ │ │ │ │ │ ├── jquery.jeditable.js
│ │ │ │ │ │ ├── jquery.min.js
│ │ │ │ │ │ ├── jquery.ui.widget.js
│ │ │ │ │ │ ├── respond.min.js
│ │ │ │ │ │ └── tmpl.min.js
│ │ │ │ └── Info.plist
│ │ │ └── _CodeSignature
│ │ │ │ └── CodeResources
│ │ │ └── Current
│ ├── libswiftAVFoundation.dylib
│ ├── libswiftAppKit.dylib
│ ├── libswiftCore.dylib
│ ├── libswiftCoreAudio.dylib
│ ├── libswiftCoreData.dylib
│ ├── libswiftCoreGraphics.dylib
│ ├── libswiftCoreImage.dylib
│ ├── libswiftCoreMedia.dylib
│ ├── libswiftDarwin.dylib
│ ├── libswiftDispatch.dylib
│ ├── libswiftFoundation.dylib
│ ├── libswiftIOKit.dylib
│ └── libswiftObjectiveC.dylib
│ ├── Info.plist
│ ├── MacOS
│ └── HackathonAlexa
│ ├── PkgInfo
│ ├── Resources
│ ├── AlexaViewController.nib
│ ├── AppIcon.icns
│ ├── Assets.car
│ ├── Base.lproj
│ │ └── MainMenu.nib
│ ├── DeviceHeroImg.png
│ ├── StatusBarButtonImage@2x.png
│ ├── login.html
│ ├── mechoRecSmall.tiff
│ ├── mechoRecord.png
│ └── mechoico512.png
│ └── _CodeSignature
│ └── CodeResources
├── Cartfile
├── HackathonAlexa.xcodeproj
├── project.pbxproj
├── project.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcuserdata
│ │ └── kunal.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
└── xcuserdata
│ └── kunal.xcuserdatad
│ ├── xcdebugger
│ └── Breakpoints_v2.xcbkptlist
│ └── xcschemes
│ ├── HackathonAlexa.xcscheme
│ └── xcschememanagement.plist
├── HackathonAlexa
├── AVSUploader.swift
├── AlexaStatusController.swift
├── AlexaViewController.swift
├── AlexaViewController.xib
├── AppDelegate.swift
├── Assets.xcassets
│ ├── AppIcon.appiconset
│ │ └── Contents.json
│ ├── Contents.json
│ ├── DeviceHeroImg.png
│ ├── RecIcon.imageset
│ │ ├── Contents.json
│ │ ├── mechoRecSmall.png
│ │ └── mechoRecord.png
│ ├── StatusBarButtonImage.imageset
│ │ ├── Contents.json
│ │ └── StatusBarButtonImage@2x.png
│ ├── StatusBarButtonImage@2x.png
│ ├── StatusBarButtonImage@2x.psd
│ ├── mecho@2x.png
│ ├── mechoRecSmall.png
│ ├── mechoRecSmall@2x.png
│ └── mechoRecord.png
├── Base.lproj
│ └── MainMenu.xib
├── EventMonitor.swift
├── Info.plist
├── SimplePCMRecorder.swift
├── SimpleWebServer.swift
├── config.swift
└── login.html
├── LICENSE
└── README.md
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 |
--------------------------------------------------------------------------------
/Binary/HackathonAlexa.app/Contents/Frameworks/GCDWebServers.framework/GCDWebServers:
--------------------------------------------------------------------------------
1 | Versions/Current/GCDWebServers
--------------------------------------------------------------------------------
/Binary/HackathonAlexa.app/Contents/Frameworks/GCDWebServers.framework/Resources:
--------------------------------------------------------------------------------
1 | Versions/Current/Resources
--------------------------------------------------------------------------------
/Binary/HackathonAlexa.app/Contents/Frameworks/GCDWebServers.framework/Versions/A/GCDWebServers:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kunal732/MacLexa/b5394b63225f98ec20c0afb5bd856a4dd8f93cc1/Binary/HackathonAlexa.app/Contents/Frameworks/GCDWebServers.framework/Versions/A/GCDWebServers
--------------------------------------------------------------------------------
/Binary/HackathonAlexa.app/Contents/Frameworks/GCDWebServers.framework/Versions/A/Resources/GCDWebUploader.bundle/Info.plist:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kunal732/MacLexa/b5394b63225f98ec20c0afb5bd856a4dd8f93cc1/Binary/HackathonAlexa.app/Contents/Frameworks/GCDWebServers.framework/Versions/A/Resources/GCDWebUploader.bundle/Info.plist
--------------------------------------------------------------------------------
/Binary/HackathonAlexa.app/Contents/Frameworks/GCDWebServers.framework/Versions/A/Resources/GCDWebUploader.bundle/css/bootstrap-theme.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap v3.1.1 (http://getbootstrap.com)
3 | * Copyright 2011-2014 Twitter, Inc.
4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5 | */
6 |
7 | .btn-default,
8 | .btn-primary,
9 | .btn-success,
10 | .btn-info,
11 | .btn-warning,
12 | .btn-danger {
13 | text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);
14 | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
15 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
16 | }
17 | .btn-default:active,
18 | .btn-primary:active,
19 | .btn-success:active,
20 | .btn-info:active,
21 | .btn-warning:active,
22 | .btn-danger:active,
23 | .btn-default.active,
24 | .btn-primary.active,
25 | .btn-success.active,
26 | .btn-info.active,
27 | .btn-warning.active,
28 | .btn-danger.active {
29 | -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
30 | box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
31 | }
32 | .btn:active,
33 | .btn.active {
34 | background-image: none;
35 | }
36 | .btn-default {
37 | text-shadow: 0 1px 0 #fff;
38 | background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);
39 | background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);
40 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);
41 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
42 | background-repeat: repeat-x;
43 | border-color: #dbdbdb;
44 | border-color: #ccc;
45 | }
46 | .btn-default:hover,
47 | .btn-default:focus {
48 | background-color: #e0e0e0;
49 | background-position: 0 -15px;
50 | }
51 | .btn-default:active,
52 | .btn-default.active {
53 | background-color: #e0e0e0;
54 | border-color: #dbdbdb;
55 | }
56 | .btn-primary {
57 | background-image: -webkit-linear-gradient(top, #428bca 0%, #2d6ca2 100%);
58 | background-image: linear-gradient(to bottom, #428bca 0%, #2d6ca2 100%);
59 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);
60 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
61 | background-repeat: repeat-x;
62 | border-color: #2b669a;
63 | }
64 | .btn-primary:hover,
65 | .btn-primary:focus {
66 | background-color: #2d6ca2;
67 | background-position: 0 -15px;
68 | }
69 | .btn-primary:active,
70 | .btn-primary.active {
71 | background-color: #2d6ca2;
72 | border-color: #2b669a;
73 | }
74 | .btn-success {
75 | background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
76 | background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
77 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);
78 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
79 | background-repeat: repeat-x;
80 | border-color: #3e8f3e;
81 | }
82 | .btn-success:hover,
83 | .btn-success:focus {
84 | background-color: #419641;
85 | background-position: 0 -15px;
86 | }
87 | .btn-success:active,
88 | .btn-success.active {
89 | background-color: #419641;
90 | border-color: #3e8f3e;
91 | }
92 | .btn-info {
93 | background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
94 | background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
95 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);
96 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
97 | background-repeat: repeat-x;
98 | border-color: #28a4c9;
99 | }
100 | .btn-info:hover,
101 | .btn-info:focus {
102 | background-color: #2aabd2;
103 | background-position: 0 -15px;
104 | }
105 | .btn-info:active,
106 | .btn-info.active {
107 | background-color: #2aabd2;
108 | border-color: #28a4c9;
109 | }
110 | .btn-warning {
111 | background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
112 | background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
113 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);
114 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
115 | background-repeat: repeat-x;
116 | border-color: #e38d13;
117 | }
118 | .btn-warning:hover,
119 | .btn-warning:focus {
120 | background-color: #eb9316;
121 | background-position: 0 -15px;
122 | }
123 | .btn-warning:active,
124 | .btn-warning.active {
125 | background-color: #eb9316;
126 | border-color: #e38d13;
127 | }
128 | .btn-danger {
129 | background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
130 | background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
131 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);
132 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
133 | background-repeat: repeat-x;
134 | border-color: #b92c28;
135 | }
136 | .btn-danger:hover,
137 | .btn-danger:focus {
138 | background-color: #c12e2a;
139 | background-position: 0 -15px;
140 | }
141 | .btn-danger:active,
142 | .btn-danger.active {
143 | background-color: #c12e2a;
144 | border-color: #b92c28;
145 | }
146 | .thumbnail,
147 | .img-thumbnail {
148 | -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
149 | box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
150 | }
151 | .dropdown-menu > li > a:hover,
152 | .dropdown-menu > li > a:focus {
153 | background-color: #e8e8e8;
154 | background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
155 | background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
156 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
157 | background-repeat: repeat-x;
158 | }
159 | .dropdown-menu > .active > a,
160 | .dropdown-menu > .active > a:hover,
161 | .dropdown-menu > .active > a:focus {
162 | background-color: #357ebd;
163 | background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
164 | background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
165 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
166 | background-repeat: repeat-x;
167 | }
168 | .navbar-default {
169 | background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);
170 | background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);
171 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
172 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
173 | background-repeat: repeat-x;
174 | border-radius: 4px;
175 | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
176 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
177 | }
178 | .navbar-default .navbar-nav > .active > a {
179 | background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);
180 | background-image: linear-gradient(to bottom, #ebebeb 0%, #f3f3f3 100%);
181 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);
182 | background-repeat: repeat-x;
183 | -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
184 | box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
185 | }
186 | .navbar-brand,
187 | .navbar-nav > li > a {
188 | text-shadow: 0 1px 0 rgba(255, 255, 255, .25);
189 | }
190 | .navbar-inverse {
191 | background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);
192 | background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);
193 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
194 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
195 | background-repeat: repeat-x;
196 | }
197 | .navbar-inverse .navbar-nav > .active > a {
198 | background-image: -webkit-linear-gradient(top, #222 0%, #282828 100%);
199 | background-image: linear-gradient(to bottom, #222 0%, #282828 100%);
200 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);
201 | background-repeat: repeat-x;
202 | -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
203 | box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
204 | }
205 | .navbar-inverse .navbar-brand,
206 | .navbar-inverse .navbar-nav > li > a {
207 | text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);
208 | }
209 | .navbar-static-top,
210 | .navbar-fixed-top,
211 | .navbar-fixed-bottom {
212 | border-radius: 0;
213 | }
214 | .alert {
215 | text-shadow: 0 1px 0 rgba(255, 255, 255, .2);
216 | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
217 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
218 | }
219 | .alert-success {
220 | background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
221 | background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
222 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
223 | background-repeat: repeat-x;
224 | border-color: #b2dba1;
225 | }
226 | .alert-info {
227 | background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
228 | background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
229 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
230 | background-repeat: repeat-x;
231 | border-color: #9acfea;
232 | }
233 | .alert-warning {
234 | background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
235 | background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
236 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
237 | background-repeat: repeat-x;
238 | border-color: #f5e79e;
239 | }
240 | .alert-danger {
241 | background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
242 | background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
243 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
244 | background-repeat: repeat-x;
245 | border-color: #dca7a7;
246 | }
247 | .progress {
248 | background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
249 | background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
250 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
251 | background-repeat: repeat-x;
252 | }
253 | .progress-bar {
254 | background-image: -webkit-linear-gradient(top, #428bca 0%, #3071a9 100%);
255 | background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%);
256 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0);
257 | background-repeat: repeat-x;
258 | }
259 | .progress-bar-success {
260 | background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
261 | background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
262 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
263 | background-repeat: repeat-x;
264 | }
265 | .progress-bar-info {
266 | background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
267 | background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
268 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
269 | background-repeat: repeat-x;
270 | }
271 | .progress-bar-warning {
272 | background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
273 | background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
274 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
275 | background-repeat: repeat-x;
276 | }
277 | .progress-bar-danger {
278 | background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
279 | background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
280 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
281 | background-repeat: repeat-x;
282 | }
283 | .list-group {
284 | border-radius: 4px;
285 | -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
286 | box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
287 | }
288 | .list-group-item.active,
289 | .list-group-item.active:hover,
290 | .list-group-item.active:focus {
291 | text-shadow: 0 -1px 0 #3071a9;
292 | background-image: -webkit-linear-gradient(top, #428bca 0%, #3278b3 100%);
293 | background-image: linear-gradient(to bottom, #428bca 0%, #3278b3 100%);
294 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);
295 | background-repeat: repeat-x;
296 | border-color: #3278b3;
297 | }
298 | .panel {
299 | -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
300 | box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
301 | }
302 | .panel-default > .panel-heading {
303 | background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
304 | background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
305 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
306 | background-repeat: repeat-x;
307 | }
308 | .panel-primary > .panel-heading {
309 | background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
310 | background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
311 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
312 | background-repeat: repeat-x;
313 | }
314 | .panel-success > .panel-heading {
315 | background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
316 | background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
317 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
318 | background-repeat: repeat-x;
319 | }
320 | .panel-info > .panel-heading {
321 | background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
322 | background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
323 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
324 | background-repeat: repeat-x;
325 | }
326 | .panel-warning > .panel-heading {
327 | background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
328 | background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
329 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
330 | background-repeat: repeat-x;
331 | }
332 | .panel-danger > .panel-heading {
333 | background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
334 | background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
335 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
336 | background-repeat: repeat-x;
337 | }
338 | .well {
339 | background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
340 | background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
341 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
342 | background-repeat: repeat-x;
343 | border-color: #dcdcdc;
344 | -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
345 | box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
346 | }
347 | /*# sourceMappingURL=bootstrap-theme.css.map */
348 |
--------------------------------------------------------------------------------
/Binary/HackathonAlexa.app/Contents/Frameworks/GCDWebServers.framework/Versions/A/Resources/GCDWebUploader.bundle/css/index.css:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2012-2015, Pierre-Olivier Latour
3 | All rights reserved.
4 |
5 | Redistribution and use in source and binary forms, with or without
6 | modification, are permitted provided that the following conditions are met:
7 | * Redistributions of source code must retain the above copyright
8 | notice, this list of conditions and the following disclaimer.
9 | * Redistributions in binary form must reproduce the above copyright
10 | notice, this list of conditions and the following disclaimer in the
11 | documentation and/or other materials provided with the distribution.
12 | * The name of Pierre-Olivier Latour may not be used to endorse
13 | or promote products derived from this software without specific
14 | prior written permission.
15 |
16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 | DISCLAIMED. IN NO EVENT SHALL PIERRE-OLIVIER LATOUR BE LIABLE FOR ANY
20 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 | */
27 |
28 | .row-file {
29 | height: 40px;
30 | }
31 |
32 | .column-icon {
33 | width: 40px;
34 | text-align: center;
35 | }
36 |
37 | .column-name {
38 | }
39 |
40 | .column-size {
41 | width: 100px;
42 | text-align: right;
43 | }
44 |
45 | .column-move {
46 | width: 40px;
47 | text-align: center;
48 | }
49 |
50 | .column-delete {
51 | width: 40px;
52 | text-align: center;
53 | }
54 |
55 | .column-path {
56 | }
57 |
58 | .column-progress {
59 | width: 200px;
60 | }
61 |
62 | .footer {
63 | color: #999;
64 | text-align: center;
65 | font-size: 0.9em;
66 | }
67 |
68 | #reload {
69 | float: right;
70 | }
71 |
72 | #create-input {
73 | width: 50%;
74 | height: 20px;
75 | }
76 |
77 | #move-input {
78 | width: 80%;
79 | height: 20px;
80 | }
81 |
82 | /* Bootstrap overrides */
83 |
84 | .btn:focus {
85 | outline: none; /* FIXME: Work around for Chrome only but still draws focus ring while button pressed */
86 | }
87 |
88 | .btn-toolbar {
89 | margin-top: 30px;
90 | margin-bottom: 20px;
91 | }
92 |
93 | .table .progress {
94 | margin-top: 0px;
95 | margin-bottom: 0px;
96 | height: 16px;
97 | }
98 |
99 | .panel-default > .panel-heading {
100 | color: #555;
101 | }
102 |
103 | .breadcrumb {
104 | background-color: transparent;
105 | border-radius: 0px;
106 | margin-bottom: 0px;
107 | padding: 0px;
108 | }
109 |
110 | .breadcrumb > .active {
111 | color: #555;
112 | }
113 |
114 | .breadcrumb > li + li:before {
115 | color: #999;
116 | }
117 |
118 | .table > tbody > tr > td {
119 | vertical-align: middle;
120 | }
121 |
122 | .table > tbody > tr > td > p {
123 | margin: 0px;
124 | }
125 |
126 | /* Initial state */
127 |
128 | .uploading {
129 | display: none;
130 | }
131 |
--------------------------------------------------------------------------------
/Binary/HackathonAlexa.app/Contents/Frameworks/GCDWebServers.framework/Versions/A/Resources/GCDWebUploader.bundle/css/jquery.fileupload.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";
2 | /*
3 | * jQuery File Upload Plugin CSS 1.3.0
4 | * https://github.com/blueimp/jQuery-File-Upload
5 | *
6 | * Copyright 2013, Sebastian Tschan
7 | * https://blueimp.net
8 | *
9 | * Licensed under the MIT license:
10 | * http://www.opensource.org/licenses/MIT
11 | */
12 |
13 | .fileinput-button {
14 | position: relative;
15 | overflow: hidden;
16 | }
17 | .fileinput-button input {
18 | position: absolute;
19 | top: 0;
20 | right: 0;
21 | margin: 0;
22 | opacity: 0;
23 | -ms-filter: 'alpha(opacity=0)';
24 | font-size: 200px;
25 | direction: ltr;
26 | cursor: pointer;
27 | }
28 |
29 | /* Fixes for IE < 8 */
30 | @media screen\9 {
31 | .fileinput-button input {
32 | filter: alpha(opacity=0);
33 | font-size: 100%;
34 | height: 100%;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/Binary/HackathonAlexa.app/Contents/Frameworks/GCDWebServers.framework/Versions/A/Resources/GCDWebUploader.bundle/en.lproj/Localizable.strings:
--------------------------------------------------------------------------------
1 | "PROLOGUE" = "
Drag & drop files on this window or use the \"Upload Files…\" button to upload new files.
";
2 | "EPILOGUE" = "";
3 | "FOOTER_FORMAT" = "%@ %@";
4 |
--------------------------------------------------------------------------------
/Binary/HackathonAlexa.app/Contents/Frameworks/GCDWebServers.framework/Versions/A/Resources/GCDWebUploader.bundle/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kunal732/MacLexa/b5394b63225f98ec20c0afb5bd856a4dd8f93cc1/Binary/HackathonAlexa.app/Contents/Frameworks/GCDWebServers.framework/Versions/A/Resources/GCDWebUploader.bundle/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/Binary/HackathonAlexa.app/Contents/Frameworks/GCDWebServers.framework/Versions/A/Resources/GCDWebUploader.bundle/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kunal732/MacLexa/b5394b63225f98ec20c0afb5bd856a4dd8f93cc1/Binary/HackathonAlexa.app/Contents/Frameworks/GCDWebServers.framework/Versions/A/Resources/GCDWebUploader.bundle/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/Binary/HackathonAlexa.app/Contents/Frameworks/GCDWebServers.framework/Versions/A/Resources/GCDWebUploader.bundle/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kunal732/MacLexa/b5394b63225f98ec20c0afb5bd856a4dd8f93cc1/Binary/HackathonAlexa.app/Contents/Frameworks/GCDWebServers.framework/Versions/A/Resources/GCDWebUploader.bundle/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/Binary/HackathonAlexa.app/Contents/Frameworks/GCDWebServers.framework/Versions/A/Resources/GCDWebUploader.bundle/index.html:
--------------------------------------------------------------------------------
1 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 | %title%
35 |
36 |
37 |
38 |
39 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
62 |
63 | %prologue%
64 |
65 |
66 |
67 |
68 |
72 |
75 |
78 |
79 |
80 |
81 |
File Uploads in Progress
82 |
83 |
84 |
85 |
91 |
92 | %epilogue%
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
105 |
106 |
Please enter the name of the folder to be created:
107 |
110 |
111 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
126 |
127 |
Please enter the new location for this item:
128 |
131 |
132 |
136 |
137 |
138 |
139 |
140 |
171 |
172 |
187 |
188 |
194 |
195 |
196 |
197 |
--------------------------------------------------------------------------------
/Binary/HackathonAlexa.app/Contents/Frameworks/GCDWebServers.framework/Versions/A/Resources/GCDWebUploader.bundle/js/html5shiv.min.js:
--------------------------------------------------------------------------------
1 | /*
2 | HTML5 Shiv v3.7.0 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
3 | */
4 | (function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag();
5 | a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/[\w\-]+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x";
6 | c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode||
7 | "undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:"3.7.0",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f);
8 | if(g)return a.createDocumentFragment();for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d= 1000000000) {
36 | return (bytes / 1000000000).toFixed(2) + ' GB';
37 | }
38 | if (bytes >= 1000000) {
39 | return (bytes / 1000000).toFixed(2) + ' MB';
40 | }
41 | return (bytes / 1000).toFixed(2) + ' KB';
42 | }
43 |
44 | function _showError(message, textStatus, errorThrown) {
45 | $("#alerts").prepend(tmpl("template-alert", {
46 | level: "danger",
47 | title: (errorThrown != "" ? errorThrown : textStatus) + ": ",
48 | description: message
49 | }));
50 | }
51 |
52 | function _disableReloads() {
53 | _reloadingDisabled += 1;
54 | }
55 |
56 | function _enableReloads() {
57 | _reloadingDisabled -= 1;
58 |
59 | if (_pendingReloads.length > 0) {
60 | _reload(_pendingReloads.shift());
61 | }
62 | }
63 |
64 | function _reload(path) {
65 | if (_reloadingDisabled) {
66 | if ($.inArray(path, _pendingReloads) < 0) {
67 | _pendingReloads.push(path);
68 | }
69 | return;
70 | }
71 |
72 | _disableReloads();
73 | $.ajax({
74 | url: 'list',
75 | type: 'GET',
76 | data: {path: path},
77 | dataType: 'json'
78 | }).fail(function(jqXHR, textStatus, errorThrown) {
79 | _showError("Failed retrieving contents of \"" + path + "\"", textStatus, errorThrown);
80 | }).done(function(data, textStatus, jqXHR) {
81 | var scrollPosition = $(document).scrollTop();
82 |
83 | if (path != _path) {
84 | $("#path").empty();
85 | if (path == "/") {
86 | $("#path").append('' + _device + '');
87 | } else {
88 | $("#path").append('' + _device + '');
89 | var components = path.split("/").slice(1, -1);
90 | for (var i = 0; i < components.length - 1; ++i) {
91 | var subpath = "/" + components.slice(0, i + 1).join("/") + "/";
92 | $("#path").append('' + components[i] + '');
93 | }
94 | $("#path > li").click(function(event) {
95 | _reload($(this).data("path"));
96 | event.preventDefault();
97 | });
98 | $("#path").append('' + components[components.length - 1] + '');
99 | }
100 | _path = path;
101 | }
102 |
103 | $("#listing").empty();
104 | for (var i = 0, file; file = data[i]; ++i) {
105 | $(tmpl("template-listing", file)).data(file).appendTo("#listing");
106 | }
107 |
108 | $(".edit").editable(function(value, settings) {
109 | var name = $(this).parent().parent().data("name");
110 | if (value != name) {
111 | var path = $(this).parent().parent().data("path");
112 | $.ajax({
113 | url: 'move',
114 | type: 'POST',
115 | data: {oldPath: path, newPath: _path + value},
116 | dataType: 'json'
117 | }).fail(function(jqXHR, textStatus, errorThrown) {
118 | _showError("Failed moving \"" + path + "\" to \"" + _path + value + "\"", textStatus, errorThrown);
119 | }).always(function() {
120 | _reload(_path);
121 | });
122 | }
123 | return value;
124 | }, {
125 | onedit: function(settings, original) {
126 | _disableReloads();
127 | },
128 | onsubmit: function(settings, original) {
129 | _enableReloads();
130 | },
131 | onreset: function(settings, original) {
132 | _enableReloads();
133 | },
134 | tooltip: 'Click to rename...'
135 | });
136 |
137 | $(".button-download").click(function(event) {
138 | var path = $(this).parent().parent().data("path");
139 | setTimeout(function() {
140 | window.location = "download?path=" + encodeURIComponent(path);
141 | }, 0);
142 | });
143 |
144 | $(".button-open").click(function(event) {
145 | var path = $(this).parent().parent().data("path");
146 | _reload(path);
147 | });
148 |
149 | $(".button-move").click(function(event) {
150 | var path = $(this).parent().parent().data("path");
151 | if (path[path.length - 1] == "/") {
152 | path = path.slice(0, path.length - 1);
153 | }
154 | $("#move-input").data("path", path);
155 | $("#move-input").val(path);
156 | $("#move-modal").modal("show");
157 | });
158 |
159 | $(".button-delete").click(function(event) {
160 | var path = $(this).parent().parent().data("path");
161 | $.ajax({
162 | url: 'delete',
163 | type: 'POST',
164 | data: {path: path},
165 | dataType: 'json'
166 | }).fail(function(jqXHR, textStatus, errorThrown) {
167 | _showError("Failed deleting \"" + path + "\"", textStatus, errorThrown);
168 | }).always(function() {
169 | _reload(_path);
170 | });
171 | });
172 |
173 | $(document).scrollTop(scrollPosition);
174 | }).always(function() {
175 | _enableReloads();
176 | });
177 | }
178 |
179 | $(document).ready(function() {
180 |
181 | // Workaround Firefox and IE not showing file selection dialog when clicking on "upload-file"