comparison Squawk.lua @ 10:2231fd3f139b

Qtip added for LDB
author wobin
date Thu, 23 Apr 2009 04:11:42 +1000
parents c535960b1245
children 0ca5ec0b7502
comparison
equal deleted inserted replaced
9:c535960b1245 10:2231fd3f139b
79 79
80 function Squawk:new(Message, Owner) 80 function Squawk:new(Message, Owner)
81 local o = {} 81 local o = {}
82 o.Owner = Owner or UnitName("player") 82 o.Owner = Owner or UnitName("player")
83 o.Message = Message 83 o.Message = Message
84 o.Time = os.time() 84 o.Time = time()
85 local reply, to = strsplit("@", ((strsplit(" ", Message)))) 85 local reply, to = strsplit("@", ((strsplit(" ", Message))))
86 if reply == "" then 86 if reply == "" then
87 o.ReplyTo = to 87 o.ReplyTo = to
88 end 88 end
89 89
112 return self:Sort(mine) 112 return self:Sort(mine)
113 end 113 end
114 114
115 function Settings:IsPrivate() 115 function Settings:IsPrivate()
116 return Settings.Private 116 return Settings.Private
117 end
118
119 function Settings:TogglePrivate()
120 Settings.Private = not Settings.Private
117 end 121 end
118 122
119 function Settings:AddFollower(Name) 123 function Settings:AddFollower(Name)
120 Settings.Follower[Name] = 1 124 Settings.Follower[Name] = 1
121 self:RemovePending(Name) 125 self:RemovePending(Name)
203 Settings:AddFollowing(Name) 207 Settings:AddFollowing(Name)
204 View:NotifyOfNewFollowing(Name) 208 View:NotifyOfNewFollowing(Name)
205 end 209 end
206 210
207 function Controller:AddANewSquawk(Name, Message, Source) 211 function Controller:AddANewSquawk(Name, Message, Source)
208 if not Model.Blocked[Name] then 212 if not Settings.Blocked[Name] then
209 213
210 if Source == "WHISPER" then 214 if Source == "WHISPER" then
211 if Model.Requested[Name] then -- We've been approved offline! 215 if Settings.Requested[Name] then -- We've been approved offline!
212 Model:AddFollowing(Name) 216 Settings:AddFollowing(Name)
213 end 217 end
214 218
215 if not Model.Following[Name] then -- If we're no longer following this person 219 if not Settings.Following[Name] then -- If we're no longer following this person
216 self:SendMessageToTarget(Name, "#Unfollow|"..UnitName("player")) 220 self:SendMessageToTarget(Name, "#Unfollow|"..UnitName("player"))
217 return 221 return
218 end 222 end
219 223 end
220 table.insert(Model.Squawks, Squawk:new(Message, Name)) 224
221 View:UpdateSquawkList() 225 if Source == "GUILD" and Name == UnitName("player") then
226 return
222 end 227 end
228
229 table.insert(Model.Squawks, Squawk:new(Message, Name))
230 View:UpdateSquawkList()
223 end 231 end
224 end 232 end
225 233
226 function Controller:SendNewSquawk(Message) 234 function Controller:SendNewSquawk(Message)
227 if not Model:IsPrivate() then 235 if not Settings:IsPrivate() then
228 self:SendMessageToGuild("#Squawk|"..UnitName("player").."|"..Message) 236 self:SendMessageToGuild("#Squawk|"..UnitName("player").."|"..Message)
229 end 237 end
230 238
231 self:AddANewSquawk(UnitName("player"), Message) 239 self:AddANewSquawk(UnitName("player"), Message)
232 240
233 for name, _ in pairs(Model.Following) do 241 for name, _ in pairs(Settings.Following) do
234 self:SendMessageToTarget(name, "#Squawk|"..UnitName("player").."|"..Message) 242 self:SendMessageToTarget(name, "#Squawk|"..UnitName("player").."|"..Message)
235 end 243 end
236 end 244 end
237 245
238 function Controller:ImPending(Name) 246 function Controller:ImPending(Name)
241 249
242 function Controller:PutForwardFollowRequest(Name) 250 function Controller:PutForwardFollowRequest(Name)
243 View:NotifyOfPendingRequest(Name) 251 View:NotifyOfPendingRequest(Name)
244 end 252 end
245 253
254 function Controller:ApprovePendingRequest(Name)
255 Settings:AddFollower(Name)
256 View:NotifyOfNewFollower(Name)
257 self:SendMessageToTarget(Name, "#Follow|"..UnitName("player"))
258 end
259
246 function Controller:SendMessageToTarget(Name, Message) 260 function Controller:SendMessageToTarget(Name, Message)
247 self:SendCommMessage("Squawk", Message, "WHISPER", Name, "BULK") 261 self:SendCommMessage("Squawk", Message, "WHISPER", Name)
248 end 262 end
249 263
250 function Controller:SendMessageToGuild(Message) 264 function Controller:SendMessageToGuild(Message)
251 self:SendCommMessage("Squawk", Message, "GUILD") 265 self:SendCommMessage("Squawk", Message, "GUILD")
252 end 266 end
257 ["#Unfollow"] = Controller.TheyWantToUnfollowMe, 271 ["#Unfollow"] = Controller.TheyWantToUnfollowMe,
258 ["#Squawk"] = Controller.AddANewSquawk, 272 ["#Squawk"] = Controller.AddANewSquawk,
259 ["#Request"] = Controller.TheyWantToFollowMe, 273 ["#Request"] = Controller.TheyWantToFollowMe,
260 } 274 }
261 275
262 function Controller:ReceiveMessage(Prefix, Message, Distribution, Sender) 276 function Controller:ReceiveMessage(Message, Distribution, Sender)
263 local command, name, info = strsplit("|",Message) 277 local command, name, info = strsplit("|",Message)
264 Parse[command](self, name, info, Distribution) 278 View:Print(Distribution..":"..Message)
279 Parse[command](Controller, name, info, Distribution)
265 end 280 end
266 -- View -- 281 -- View --
267 282
268 function View:UpdateSquawkList() 283 function View:UpdateSquawkList()
269 self:Print("Updated Squawk List") 284 self:Print("Updated Squawk List")
314 self:Print("I've blocked:") 329 self:Print("I've blocked:")
315 for name,_ in pairs(Settings.Blocked) do 330 for name,_ in pairs(Settings.Blocked) do
316 self:Print(name) 331 self:Print(name)
317 end 332 end
318 end 333 end
334
335 local LDBFeed = LibStub("LibDataBroker-1.1"):NewDataObject("Squawk", {type = "data source", text = "Awk!"})
336 local QTip = LibStub("LibQTip-1.0")
337
338 function LDBFeed:OnEnter()
339 local tooltip = QTip:Acquire("Squawk",3, "LEFT", "LEFT", "RIGHT")
340 self.tooltip = tooltip
341 tooltip:AddHeader('Name')
342 tooltip:AddLine('testUser', 'Squawk!', '3 min ago')
343 tooltip:SmartAnchorTo(self)
344 tooltip:Show()
345 end
346
347 function LDBFeed:OnTooltipShow()
348 end
349
350 function LDBFeed:OnLeave()
351 QTip:Release(self.tooltip)
352 end