comparison Controller.lua @ 19:431f2fce08f2

Added in link stripping Coloured class names Reply to specific squawk Related squawks fixed new arrow to indicate reply limit to 140 characters
author wobin
date Tue, 12 May 2009 00:57:59 +1000
parents a3328fffef5c
children
comparison
equal deleted inserted replaced
18:a3328fffef5c 19:431f2fce08f2
8 8
9 function Controller:TheyWantToFollowMe(Name) 9 function Controller:TheyWantToFollowMe(Name)
10 if Settings:IsPrivate() then 10 if Settings:IsPrivate() then
11 Settings:AddPending(Name) 11 Settings:AddPending(Name)
12 self:PutForwardFollowRequest(Name) 12 self:PutForwardFollowRequest(Name)
13 self:SendMessageToTarget(Name, "#Pending|"..UnitName("player")) 13 self:SendMessageToTarget(Name, "#Pending|"..self.Name)
14 else 14 else
15 Settings:AddFollower(Name) 15 Settings:AddFollower(Name)
16 View:NotifyOfNewFollower(Name) 16 View:NotifyOfNewFollower(Name)
17 self:SendMessageToTarget(Name, "#Follow|"..UnitName("player")) 17 self:SendMessageToTarget(Name, "#Follow|"..self.Name)
18 end 18 end
19 end 19 end
20 20
21 function Controller:TheyWantToUnfollowMe(Name) 21 function Controller:TheyWantToUnfollowMe(Name)
22 Settings:RemoveFollower(Name) 22 Settings:RemoveFollower(Name)
23 end 23 end
24 24
25 function Controller:IWantToFollowThem(Name) 25 function Controller:IWantToFollowThem(Name)
26 self:SendMessageToTarget(Name, "#Request|"..UnitName("player")) 26 self:SendMessageToTarget(Name, "#Request|"..self.Name)
27 Settings:AddRequested(Name) 27 Settings:AddRequested(Name)
28 end 28 end
29 29
30 function Controller:IWantToUnfollowThem(Name) 30 function Controller:IWantToUnfollowThem(Name)
31 Settings:RemoveFollowing(Name) 31 Settings:RemoveFollowing(Name)
32 self:SendMessageToTarget(Name, "#Unfollow|"..UnitName("player")) 32 self:SendMessageToTarget(Name, "#Unfollow|"..self.Name)
33 View:NotifyOfUnfollowing(Name) 33 View:NotifyOfUnfollowing(Name)
34 end 34 end
35 35
36 function Controller:IAmNowFollowingThem(Name) 36 function Controller:IAmNowFollowingThem(Name)
37 Settings:AddFollowing(Name) 37 Settings:AddFollowing(Name)
38 View:NotifyOfNewFollowing(Name) 38 View:NotifyOfNewFollowing(Name)
39 end 39 end
40 40
41 function Controller:AddANewSquawk(Name, Message, Source) 41 function Controller:AddANewSquawk(Name, Class, Message, Reply, Source)
42 if not Settings.Blocked[Name] then 42 if not Settings.Blocked[Name] then
43 43
44 if Source == "WHISPER" then 44 if Source == "WHISPER" then
45 if Settings.Requested[Name] then -- We've been approved offline! 45 if Settings.Requested[Name] then -- We've been approved offline!
46 Settings:AddFollowing(Name) 46 Settings:AddFollowing(Name)
47 end 47 end
48 48
49 if not Settings.Following[Name] then -- If we're no longer following this person 49 if not Settings.Following[Name] then -- If we're no longer following this person
50 self:SendMessageToTarget(Name, "#Unfollow|"..UnitName("player")) 50 self:SendMessageToTarget(Name, "#Unfollow|"..self.Name)
51 return 51 return
52 end 52 end
53 end 53 end
54 54
55 if Source == "GUILD" and Name == UnitName("player") then 55 if Source == "GUILD" and Name == self.Name then
56 return 56 return
57 end 57 end
58 58
59 table.insert(Model.Squawks, Squawks:new(Message, Name)) 59 table.insert(Model.Squawks, Squawks:new(Message, Name, Class, Reply))
60 View:UpdateSquawkList() 60 --View:UpdateSquawkList()
61 end 61 end
62 end 62 end
63 63
64 local trigger 64 local trigger
65 local function RepressFailure(frame, event, ...) 65 local function RepressFailure(frame, event, ...)
73 else 73 else
74 return false, unpack(...) 74 return false, unpack(...)
75 end 75 end
76 end 76 end
77 77
78 function Controller:SendNewSquawk(Message) 78 function Controller:SendNewSquawk(Message, ReplyStamp)
79 if not Settings:IsPrivate() then 79 if not Settings:IsPrivate() then
80 self:SendMessageToGuild("#Squawk|"..UnitName("player").."|"..Message) 80 self:SendMessageToGuild("#Squawk|"..self.Name.."|"..self.Class.."|"..ReplyStamp or "".."|"..Message)
81 end 81 end
82 82
83 self:AddANewSquawk(UnitName("player"), Message) 83 self:AddANewSquawk(self.Name, self.Class, Message, ReplyStamp)
84 for name, _ in pairs(Settings.Following) do 84 for name, _ in pairs(Settings.Following) do
85 self:SendMessageToTarget(name, "#Squawk|"..UnitName("player").."|"..Message) 85 self:SendMessageToTarget(name, "#Squawk|"..self.Name.."|"..self.Class.."|"..ReplyStamp or "".."|"..Message)
86 end 86 end
87 end 87 end
88 88
89 function Controller:ImPending(Name) 89 function Controller:ImPending(Name)
90 View:NotifyOfPending(Name) 90 View:NotifyOfPending(Name)
95 end 95 end
96 96
97 function Controller:ApprovePendingRequest(Name) 97 function Controller:ApprovePendingRequest(Name)
98 Settings:AddFollower(Name) 98 Settings:AddFollower(Name)
99 View:NotifyOfNewFollower(Name) 99 View:NotifyOfNewFollower(Name)
100 self:SendMessageToTarget(Name, "#Follow|"..UnitName("player")) 100 self:SendMessageToTarget(Name, "#Follow|"..self.Name)
101 end 101 end
102 102
103 103
104 104
105 function Controller:SendMessageToTarget(Name, Message) 105 function Controller:SendMessageToTarget(Name, Message)
118 ["#Squawk"] = Controller.AddANewSquawk, 118 ["#Squawk"] = Controller.AddANewSquawk,
119 ["#Request"] = Controller.TheyWantToFollowMe, 119 ["#Request"] = Controller.TheyWantToFollowMe,
120 } 120 }
121 121
122 function Controller:ReceiveMessage(Message, Distribution, Sender) 122 function Controller:ReceiveMessage(Message, Distribution, Sender)
123 local command, name, info = strsplit("|",Message) 123 local command, name, class, reply, info = strsplit("|",Message)
124 View:Print(Distribution..":"..Message) 124 Parse[command](Controller, name, class, reply, info, Distribution)
125 Parse[command](Controller, name, info, Distribution)
126 end 125 end
127 126