libfchat 1.0.1 → 1.1

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.
@@ -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