libfchat 1.0.1 → 1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -19,6 +19,18 @@ module Libfchat
19
19
  attr_reader :version
20
20
  attr_reader :clientname
21
21
 
22
+ attr_reader :chat_max
23
+ attr_reader :priv_max
24
+ attr_reader :lfrp_max
25
+ attr_reader :lfrp_flood
26
+ attr_reader :msg_flood
27
+ attr_reader :permissions
28
+
29
+ attr_accessor :friends
30
+ attr_accessor :ignore
31
+ attr_accessor :ops
32
+ attr_accessor :users
33
+
22
34
  ##
23
35
  # Initialize the object with the name and version.
24
36
  # Default to just identifying as the library
@@ -26,6 +38,7 @@ module Libfchat
26
38
  def initialize(clientname="libfchat-ruby by Jippen Faddoul ( http://github.com/jippen/libfchat-ruby )",version=Libfchat::VERSION)
27
39
  @clientname = clientname
28
40
  @version = version
41
+ @users = Hash.new
29
42
  end
30
43
 
31
44
  ##
@@ -86,7 +99,7 @@ module Libfchat
86
99
  end
87
100
 
88
101
  # ====================================================== #
89
- # Always respond to pings #
102
+ # Always respond to these #
90
103
  # ====================================================== #
91
104
 
92
105
  ##
@@ -95,6 +108,82 @@ module Libfchat
95
108
  self.send('PIN')
96
109
  end
97
110
 
111
+ ##
112
+ # Store server-side variables
113
+ def got_VAR(message)
114
+ if message['variable'] == 'chat_max'
115
+ @chat_max = message['value']
116
+ elsif message['variable'] == 'priv_max'
117
+ @priv_max = message['value']
118
+ elsif message['variable'] == 'lfrp_max'
119
+ @lfrp_max = message['value']
120
+ elsif message['variable'] == 'lfrp_flood'
121
+ @lfrp_flood = message['value']
122
+ elsif message['variable'] == 'msg_flood'
123
+ @msg_max = message['value']
124
+ elsif message['variable'] == 'permissions'
125
+ @permissions = message['value']
126
+ else
127
+ puts "ERROR: Do not know how to handle VAR #{message}"
128
+ end
129
+ end
130
+
131
+ ##
132
+ # Store list of ops
133
+ def got_ADL(message)
134
+ @ops = message['ops']
135
+ end
136
+
137
+ ##
138
+ # Store list of friends
139
+ def got_FRL(message)
140
+ @friends = message['characters']
141
+ end
142
+
143
+ ##
144
+ # Store list of ignored users
145
+ def got_IGN(message)
146
+ @ops = message['characters']
147
+ end
148
+
149
+ ##
150
+ # Store list of online users
151
+ def got_LIS(message)
152
+ message['characters'].each do |character|
153
+ @users[character[0]] = {
154
+ 'gender' => character[1],
155
+ 'status' => character[2],
156
+ 'message' => character[3]
157
+ }
158
+ end
159
+ end
160
+
161
+ ##
162
+ # Handle user logging on
163
+ def got_NLN(message)
164
+ @users[message['identity']] = {
165
+ 'gender' => message['gender'],
166
+ 'status' => message['status'],
167
+ 'message' => ""
168
+ }
169
+ end
170
+
171
+ ##
172
+ # Handle user changing status
173
+ def got_STA(message)
174
+ @users[message['character']] = {
175
+ 'gender' => @users[message['character']]['gender'],
176
+ 'status' => message['status'],
177
+ 'message' => message['statusmsg']
178
+ }
179
+ end
180
+
181
+ ##
182
+ # Handle user logging off
183
+ def got_FLN(message)
184
+ @users.delete(message['character'])
185
+ end
186
+
98
187
  # ====================================================== #
99
188
  # All commands that can be sent by a client have helpers #
100
189
  # ====================================================== #
@@ -2,5 +2,5 @@ module Libfchat
2
2
  # We're doing this because we might write tests that deal
3
3
  # with other versions of Libfchat and we are unsure how to
4
4
  # handle this better.
5
- VERSION = "1.0.1" unless defined?(::Libfchat::VERSION)
5
+ VERSION = "1.1" unless defined?(::Libfchat::VERSION)
6
6
  end
metadata CHANGED
@@ -1,133 +1,96 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: libfchat
3
- version: !ruby/object:Gem::Version
4
- hash: 21
3
+ version: !ruby/object:Gem::Version
4
+ version: '1.1'
5
5
  prerelease:
6
- segments:
7
- - 1
8
- - 0
9
- - 1
10
- version: 1.0.1
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Ryan Gooler
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-06-25 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2012-06-25 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: turn
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &14910760 !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
18
+ requirements:
26
19
  - - ~>
27
- - !ruby/object:Gem::Version
28
- hash: 49
29
- segments:
30
- - 0
31
- - 9
32
- - 5
20
+ - !ruby/object:Gem::Version
33
21
  version: 0.9.5
34
22
  type: :development
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: miniunit
38
23
  prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *14910760
25
+ - !ruby/object:Gem::Dependency
26
+ name: miniunit
27
+ requirement: &14910080 !ruby/object:Gem::Requirement
40
28
  none: false
41
- requirements:
29
+ requirements:
42
30
  - - ~>
43
- - !ruby/object:Gem::Version
44
- hash: 29
45
- segments:
46
- - 1
47
- - 2
48
- - 1
31
+ - !ruby/object:Gem::Version
49
32
  version: 1.2.1
50
33
  type: :development
51
- version_requirements: *id002
52
- - !ruby/object:Gem::Dependency
53
- name: multi_json
54
34
  prerelease: false
55
- requirement: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *14910080
36
+ - !ruby/object:Gem::Dependency
37
+ name: multi_json
38
+ requirement: &14909560 !ruby/object:Gem::Requirement
56
39
  none: false
57
- requirements:
40
+ requirements:
58
41
  - - ~>
59
- - !ruby/object:Gem::Version
60
- hash: 23
61
- segments:
62
- - 1
63
- - 3
64
- - 6
42
+ - !ruby/object:Gem::Version
65
43
  version: 1.3.6
66
44
  type: :runtime
67
- version_requirements: *id003
68
- - !ruby/object:Gem::Dependency
69
- name: faye-websocket
70
45
  prerelease: false
71
- requirement: &id004 !ruby/object:Gem::Requirement
46
+ version_requirements: *14909560
47
+ - !ruby/object:Gem::Dependency
48
+ name: faye-websocket
49
+ requirement: &14909080 !ruby/object:Gem::Requirement
72
50
  none: false
73
- requirements:
51
+ requirements:
74
52
  - - ~>
75
- - !ruby/object:Gem::Version
76
- hash: 3
77
- segments:
78
- - 0
79
- - 4
80
- - 6
53
+ - !ruby/object:Gem::Version
81
54
  version: 0.4.6
82
55
  type: :runtime
83
- version_requirements: *id004
56
+ prerelease: false
57
+ version_requirements: *14909080
84
58
  description: A library for connecting to F-chat ( http://f-list.net )
85
59
  email: cheetahmorph@gmail.com
86
60
  executables: []
87
-
88
61
  extensions: []
89
-
90
62
  extra_rdoc_files: []
91
-
92
- files:
63
+ files:
93
64
  - lib/libfchat/version.rb
94
65
  - lib/libfchat/webapi.rb
95
66
  - lib/libfchat/fchat.rb
96
67
  - test/webapi_test.rb
97
68
  - test/fchat_test.rb
98
69
  homepage: http://github.com/jippen/libfchat-ruby
99
- licenses:
70
+ licenses:
100
71
  - MIT
101
72
  post_install_message:
102
73
  rdoc_options: []
103
-
104
- require_paths:
74
+ require_paths:
105
75
  - lib
106
- required_ruby_version: !ruby/object:Gem::Requirement
76
+ required_ruby_version: !ruby/object:Gem::Requirement
107
77
  none: false
108
- requirements:
109
- - - ">="
110
- - !ruby/object:Gem::Version
111
- hash: 3
112
- segments:
113
- - 0
114
- version: "0"
115
- required_rubygems_version: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ! '>='
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ required_rubygems_version: !ruby/object:Gem::Requirement
116
83
  none: false
117
- requirements:
118
- - - ">="
119
- - !ruby/object:Gem::Version
120
- hash: 3
121
- segments:
122
- - 0
123
- version: "0"
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
124
88
  requirements: []
125
-
126
89
  rubyforge_project:
127
- rubygems_version: 1.8.15
90
+ rubygems_version: 1.8.11
128
91
  signing_key:
129
92
  specification_version: 3
130
93
  summary: A library for connection to F-chat
131
- test_files:
94
+ test_files:
132
95
  - test/webapi_test.rb
133
96
  - test/fchat_test.rb