jschat 0.2.6 → 0.2.7
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.
- data/lib/jschat/http/jschat.rb +8 -3
- data/lib/jschat/server.rb +2 -2
- data/lib/jschat/storage/mongo.rb +3 -6
- data/lib/jschat/storage/null.rb +1 -1
- metadata +45 -54
data/lib/jschat/http/jschat.rb
CHANGED
@@ -236,6 +236,10 @@ helpers do
|
|
236
236
|
end
|
237
237
|
end
|
238
238
|
|
239
|
+
def delete_twitter_user
|
240
|
+
JsChat::Storage.driver.delete_user({ 'twitter_name' => session[:twitter_name] })
|
241
|
+
end
|
242
|
+
|
239
243
|
def load_twitter_user
|
240
244
|
JsChat::Storage.driver.find_user({ 'twitter_name' => session[:twitter_name] }) || {}
|
241
245
|
end
|
@@ -243,7 +247,7 @@ helpers do
|
|
243
247
|
def load_twitter_user_and_set_bridge_id
|
244
248
|
user = load_twitter_user
|
245
249
|
if user['jschat_id'] and user['jschat_id'].size > 0
|
246
|
-
|
250
|
+
session[:jschat_id] = user['jschat_id']
|
247
251
|
end
|
248
252
|
end
|
249
253
|
|
@@ -363,7 +367,7 @@ end
|
|
363
367
|
get '/quit' do
|
364
368
|
load_bridge
|
365
369
|
@bridge.send_quit nickname
|
366
|
-
|
370
|
+
delete_twitter_user if twitter_user?
|
367
371
|
clear_cookies
|
368
372
|
redirect '/'
|
369
373
|
end
|
@@ -403,8 +407,8 @@ get '/twitter_auth' do
|
|
403
407
|
|
404
408
|
# TODO: Make this cope if someone has the same name
|
405
409
|
room = '#jschat'
|
406
|
-
save_nickname @twitter.info['screen_name']
|
407
410
|
user = load_twitter_user
|
411
|
+
save_nickname user['name']
|
408
412
|
session[:jschat_id] = user['jschat_id'] if user['jschat_id'] and !user['jschat_id'].empty?
|
409
413
|
save_twitter_user('twitter_name' => @twitter.info['screen_name'], 'jschat_id' => session[:jschat_id])
|
410
414
|
user = load_twitter_user
|
@@ -415,6 +419,7 @@ get '/twitter_auth' do
|
|
415
419
|
room = user['rooms'].first
|
416
420
|
end
|
417
421
|
else
|
422
|
+
# Reconnect
|
418
423
|
session[:jschat_id] = nil
|
419
424
|
load_and_connect
|
420
425
|
save_twitter_user('jschat_id' => session[:jschat_id])
|
data/lib/jschat/server.rb
CHANGED
@@ -372,7 +372,7 @@ module JsChat
|
|
372
372
|
Array.new(8, '').collect { chars[rand(chars.size)] }.join
|
373
373
|
end
|
374
374
|
|
375
|
-
def
|
375
|
+
def register_stateless_client
|
376
376
|
@stateless_cookie = new_cookie
|
377
377
|
user = User.new(self)
|
378
378
|
@@stateless_cookies << { :cookie => @stateless_cookie, :user => user }
|
@@ -510,7 +510,7 @@ module JsChat
|
|
510
510
|
if input.has_key? 'protocol'
|
511
511
|
if input['protocol'] == 'stateless'
|
512
512
|
@stateless = true
|
513
|
-
response << send_response(
|
513
|
+
response << send_response(register_stateless_client)
|
514
514
|
end
|
515
515
|
elsif input.has_key? 'identify'
|
516
516
|
input['ip'] ||= get_remote_ip
|
data/lib/jschat/storage/mongo.rb
CHANGED
@@ -24,7 +24,7 @@ module JsChat::Storage
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def self.lastlog(number, room)
|
27
|
-
@db['events'].find({ :room => room }, { :limit => number, :sort => ['time', Mongo::DESCENDING] }).to_a
|
27
|
+
@db['events'].find({ :room => room }, { :limit => number, :sort => ['time', Mongo::DESCENDING] }).to_a.reverse
|
28
28
|
end
|
29
29
|
|
30
30
|
# TODO: use twitter oauth for the key
|
@@ -36,11 +36,8 @@ module JsChat::Storage
|
|
36
36
|
@db['users'].save user
|
37
37
|
end
|
38
38
|
|
39
|
-
def self.
|
40
|
-
|
41
|
-
user ||= { 'name' => name }
|
42
|
-
user['rooms'] = rooms
|
43
|
-
save_user user
|
39
|
+
def self.delete_user(user)
|
40
|
+
@db['users'].remove user
|
44
41
|
end
|
45
42
|
|
46
43
|
def self.available?
|
data/lib/jschat/storage/null.rb
CHANGED
metadata
CHANGED
@@ -1,12 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jschat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
segments:
|
6
|
-
- 0
|
7
|
-
- 2
|
8
|
-
- 6
|
9
|
-
version: 0.2.6
|
4
|
+
version: 0.2.7
|
10
5
|
platform: ruby
|
11
6
|
authors:
|
12
7
|
- Alex R. Young
|
@@ -19,74 +14,54 @@ default_executable: bin/jschat-server
|
|
19
14
|
dependencies:
|
20
15
|
- !ruby/object:Gem::Dependency
|
21
16
|
name: sinatra
|
22
|
-
|
23
|
-
|
17
|
+
type: :runtime
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
20
|
requirements:
|
25
21
|
- - ">="
|
26
22
|
- !ruby/object:Gem::Version
|
27
|
-
segments:
|
28
|
-
- 0
|
29
|
-
- 9
|
30
|
-
- 4
|
31
23
|
version: 0.9.4
|
32
|
-
|
33
|
-
version_requirements: *id001
|
24
|
+
version:
|
34
25
|
- !ruby/object:Gem::Dependency
|
35
26
|
name: json
|
36
|
-
|
37
|
-
|
27
|
+
type: :runtime
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
30
|
requirements:
|
39
31
|
- - ">="
|
40
32
|
- !ruby/object:Gem::Version
|
41
|
-
segments:
|
42
|
-
- 1
|
43
|
-
- 1
|
44
|
-
- 9
|
45
33
|
version: 1.1.9
|
46
|
-
|
47
|
-
version_requirements: *id002
|
34
|
+
version:
|
48
35
|
- !ruby/object:Gem::Dependency
|
49
36
|
name: sprockets
|
50
|
-
|
51
|
-
|
37
|
+
type: :runtime
|
38
|
+
version_requirement:
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
40
|
requirements:
|
53
41
|
- - ">="
|
54
42
|
- !ruby/object:Gem::Version
|
55
|
-
segments:
|
56
|
-
- 1
|
57
|
-
- 0
|
58
|
-
- 2
|
59
43
|
version: 1.0.2
|
60
|
-
|
61
|
-
version_requirements: *id003
|
44
|
+
version:
|
62
45
|
- !ruby/object:Gem::Dependency
|
63
46
|
name: eventmachine
|
64
|
-
|
65
|
-
|
47
|
+
type: :runtime
|
48
|
+
version_requirement:
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
50
|
requirements:
|
67
51
|
- - ">="
|
68
52
|
- !ruby/object:Gem::Version
|
69
|
-
segments:
|
70
|
-
- 0
|
71
|
-
- 12
|
72
|
-
- 8
|
73
53
|
version: 0.12.8
|
74
|
-
|
75
|
-
version_requirements: *id004
|
54
|
+
version:
|
76
55
|
- !ruby/object:Gem::Dependency
|
77
56
|
name: ncurses
|
78
|
-
|
79
|
-
|
57
|
+
type: :runtime
|
58
|
+
version_requirement:
|
59
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
60
|
requirements:
|
81
61
|
- - ">="
|
82
62
|
- !ruby/object:Gem::Version
|
83
|
-
segments:
|
84
|
-
- 0
|
85
|
-
- 9
|
86
|
-
- 1
|
87
63
|
version: 0.9.1
|
88
|
-
|
89
|
-
version_requirements: *id005
|
64
|
+
version:
|
90
65
|
description: JsChat is a JSON-based web and console chat app.
|
91
66
|
email: alex@alexyoung.org
|
92
67
|
executables:
|
@@ -101,14 +76,21 @@ files:
|
|
101
76
|
- bin/jschat-client
|
102
77
|
- bin/jschat-server
|
103
78
|
- bin/jschat-web
|
79
|
+
- lib/jschat
|
104
80
|
- lib/jschat/client.rb
|
105
81
|
- lib/jschat/errors.rb
|
106
82
|
- lib/jschat/flood_protection.rb
|
83
|
+
- lib/jschat/http
|
84
|
+
- lib/jschat/http/config
|
107
85
|
- lib/jschat/http/config/sprockets.yml
|
108
86
|
- lib/jschat/http/config.ru
|
87
|
+
- lib/jschat/http/helpers
|
109
88
|
- lib/jschat/http/helpers/url_for.rb
|
110
89
|
- lib/jschat/http/jschat.rb
|
90
|
+
- lib/jschat/http/public
|
111
91
|
- lib/jschat/http/public/favicon.ico
|
92
|
+
- lib/jschat/http/public/images
|
93
|
+
- lib/jschat/http/public/images/emoticons
|
112
94
|
- lib/jschat/http/public/images/emoticons/angry.gif
|
113
95
|
- lib/jschat/http/public/images/emoticons/arr.gif
|
114
96
|
- lib/jschat/http/public/images/emoticons/blink.gif
|
@@ -161,25 +143,37 @@ files:
|
|
161
143
|
- lib/jschat/http/public/images/emoticons/yucky.gif
|
162
144
|
- lib/jschat/http/public/images/jschat.gif
|
163
145
|
- lib/jschat/http/public/images/shadow.png
|
146
|
+
- lib/jschat/http/public/javascripts
|
147
|
+
- lib/jschat/http/public/javascripts/app
|
148
|
+
- lib/jschat/http/public/javascripts/app/controllers
|
164
149
|
- lib/jschat/http/public/javascripts/app/controllers/chat_controller.js
|
165
150
|
- lib/jschat/http/public/javascripts/app/controllers/signon_controller.js
|
151
|
+
- lib/jschat/http/public/javascripts/app/helpers
|
166
152
|
- lib/jschat/http/public/javascripts/app/helpers/emote_helper.js
|
167
153
|
- lib/jschat/http/public/javascripts/app/helpers/form_helpers.js
|
168
154
|
- lib/jschat/http/public/javascripts/app/helpers/link_helper.js
|
169
155
|
- lib/jschat/http/public/javascripts/app/helpers/page_helper.js
|
170
156
|
- lib/jschat/http/public/javascripts/app/helpers/text_helper.js
|
157
|
+
- lib/jschat/http/public/javascripts/app/lib
|
171
158
|
- lib/jschat/http/public/javascripts/app/lib/split.js
|
159
|
+
- lib/jschat/http/public/javascripts/app/models
|
172
160
|
- lib/jschat/http/public/javascripts/app/models/cookie.js
|
161
|
+
- lib/jschat/http/public/javascripts/app/protocol
|
173
162
|
- lib/jschat/http/public/javascripts/app/protocol/change.js
|
174
163
|
- lib/jschat/http/public/javascripts/app/protocol/chat_request.js
|
175
164
|
- lib/jschat/http/public/javascripts/app/protocol/display.js
|
165
|
+
- lib/jschat/http/public/javascripts/app/ui
|
176
166
|
- lib/jschat/http/public/javascripts/app/ui/commands.js
|
177
167
|
- lib/jschat/http/public/javascripts/app/ui/tab_completion.js
|
178
168
|
- lib/jschat/http/public/javascripts/init.js
|
169
|
+
- lib/jschat/http/public/stylesheets
|
179
170
|
- lib/jschat/http/public/stylesheets/iphone.css
|
180
171
|
- lib/jschat/http/public/stylesheets/screen.css
|
172
|
+
- lib/jschat/http/script
|
181
173
|
- lib/jschat/http/script/sprockets.rb
|
174
|
+
- lib/jschat/http/tmp
|
182
175
|
- lib/jschat/http/tmp/restart.txt
|
176
|
+
- lib/jschat/http/views
|
183
177
|
- lib/jschat/http/views/form.erb
|
184
178
|
- lib/jschat/http/views/index.erb
|
185
179
|
- lib/jschat/http/views/iphone.erb
|
@@ -189,6 +183,7 @@ files:
|
|
189
183
|
- lib/jschat/init.rb
|
190
184
|
- lib/jschat/server.rb
|
191
185
|
- lib/jschat/server_options.rb
|
186
|
+
- lib/jschat/storage
|
192
187
|
- lib/jschat/storage/init.rb
|
193
188
|
- lib/jschat/storage/mongo.rb
|
194
189
|
- lib/jschat/storage/null.rb
|
@@ -199,8 +194,6 @@ files:
|
|
199
194
|
- MIT-LICENSE
|
200
195
|
has_rdoc: false
|
201
196
|
homepage: http://github.com/alexyoung/jschat
|
202
|
-
licenses: []
|
203
|
-
|
204
197
|
post_install_message:
|
205
198
|
rdoc_options: []
|
206
199
|
|
@@ -210,22 +203,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
210
203
|
requirements:
|
211
204
|
- - ">="
|
212
205
|
- !ruby/object:Gem::Version
|
213
|
-
segments:
|
214
|
-
- 0
|
215
206
|
version: "0"
|
207
|
+
version:
|
216
208
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
217
209
|
requirements:
|
218
210
|
- - ">="
|
219
211
|
- !ruby/object:Gem::Version
|
220
|
-
segments:
|
221
|
-
- 0
|
222
212
|
version: "0"
|
213
|
+
version:
|
223
214
|
requirements: []
|
224
215
|
|
225
216
|
rubyforge_project:
|
226
|
-
rubygems_version: 1.3.
|
217
|
+
rubygems_version: 1.3.1
|
227
218
|
signing_key:
|
228
|
-
specification_version:
|
219
|
+
specification_version: 2
|
229
220
|
summary: JsChat features a chat server, client and web app.
|
230
221
|
test_files: []
|
231
222
|
|