vanilla-wow-addons – Rev 1
?pathlinks?
-- URL Copy v1.2.10900 by Leuchtturm on Azshara EU
URLCOPY_TITLE = "URL Copy"
URLCOPY_COLOR = "FFFF55"
URLCopy = {}
URLCopy_AddMessage1_Original = nil
URLCopy_AddMessage2_Original = nil
URLCopy_AddMessage3_Original = nil
URLCopy_AddMessage4_Original = nil
URLCopy_AddMessage5_Original = nil
URLCopy_AddMessage6_Original = nil
URLCopy_AddMessage7_Original = nil
URLCopy_SetItemRef_Original = nil
function URLCopy_OnLoad()
-- UIPanelWindows['URLCopyFrame'] = {area = 'center', pushable = 0};
URLCopyFrame:RegisterForDrag("LeftButton");
if DEFAULT_CHAT_FRAME.AddMessage ~= URLCopy_AddMessage1 then
URLCopy_AddMessage1_Original = DEFAULT_CHAT_FRAME.AddMessage
DEFAULT_CHAT_FRAME.AddMessage = URLCopy_AddMessage1
end
if ChatFrame2 and ChatFrame2.AddMessage ~= URLCopy_AddMessage2 then
URLCopy_AddMessage2_Original = ChatFrame2.AddMessage
ChatFrame2.AddMessage = URLCopy_AddMessage2
end
if ChatFrame3 and ChatFrame3.AddMessage ~= URLCopy_AddMessage3 then
URLCopy_AddMessage3_Original = ChatFrame3.AddMessage
ChatFrame3.AddMessage = URLCopy_AddMessage3
end
if ChatFrame4 and ChatFrame4.AddMessage ~= URLCopy_AddMessage4 then
URLCopy_AddMessage4_Original = ChatFrame4.AddMessage
ChatFrame4.AddMessage = URLCopy_AddMessage4
end
if ChatFrame5 and ChatFrame5.AddMessage ~= URLCopy_AddMessage5 then
URLCopy_AddMessage5_Original = ChatFrame5.AddMessage
ChatFrame5.AddMessage = URLCopy_AddMessage5
end
if ChatFrame6 and ChatFrame6.AddMessage ~= URLCopy_AddMessage6 then
URLCopy_AddMessage6_Original = ChatFrame6.AddMessage
ChatFrame6.AddMessage = URLCopy_AddMessage6
end
if ChatFrame7 and ChatFrame7.AddMessage ~= URLCopy_AddMessage7 then
URLCopy_AddMessage7_Original = ChatFrame7.AddMessage
ChatFrame7.AddMessage = URLCopy_AddMessage7
end
URLCopy_SetItemRef_Original = SetItemRef
SetItemRef = URLCopy_SetItemRef
SlashCmdList["URLCOPYBRACKETS"] = URLCopy_SlashBrackets;
SLASH_URLCOPYBRACKETS1 = "/ucb";
SlashCmdList["URLCOPYCOLOR"] = URLCopy_SlashColor;
SLASH_URLCOPYCOLOR1 = "/ucc";
if not URLCopy.Brackets then
URLCopy.Brackets = 1
end
if not URLCopy.Color then
URLCopy.Color = URLCOPY_COLOR
end
end
function URLCopy_SlashBrackets(arg)
if (arg == "off") then
URLCopy.Brackets = 0
else
URLCopy.Brackets = 1
end
end
function URLCopy_SlashColor(arg)
if (arg == "") then
URLCopy.Color = URLCOPY_COLOR
else
URLCopy.Color = arg
end
end
function URLCopy_Toggle()
if(URLCopyFrame:IsVisible()) then
URLCopyFrame:Hide();
else
URLCopyFrame:Show();
end
end
function URLCopy_Decompose (chatstring)
if chatstring ~= nil then
chatstring = string.gsub (chatstring, " www%.([_A-Za-z0-9-]+)%.(%S+)%s?", URLCopy_Link("www.%1.%2"))
chatstring = string.gsub (chatstring, " (%a+)://(%S+)%s?", URLCopy_Link("%1://%2"))
chatstring = string.gsub (chatstring, " ([_A-Za-z0-9-%.]+)@([_A-Za-z0-9-]+)(%.+)([_A-Za-z0-9-%.]+)%s?", URLCopy_Link("%1@%2%3%4"))
chatstring = string.gsub (chatstring, " (%d%d?%d?)%.(%d%d?%d?)%.(%d%d?%d?)%.(%d%d?%d?):(%d%d?%d?%d?%d?)%s?", URLCopy_Link("%1.%2.%3.%4:%5"))
chatstring = string.gsub (chatstring, " (%d%d?%d?)%.(%d%d?%d?)%.(%d%d?%d?)%.(%d%d?%d?)%s?", URLCopy_Link("%1.%2.%3.%4"))
chatstring = string.gsub (chatstring, " ([_A-Za-z0-9-]+)%.([_A-Za-z0-9-]+)%.(%S+)%s?", URLCopy_Link("%1.%2.%3"))
chatstring = string.gsub (chatstring, " ([_A-Za-z0-9-]+)%.([_A-Za-z0-9-]+)%.(%S+)%:([_0-9-]+)%s?", URLCopy_Link("%1.%2.%3:%4"))
end
return chatstring
end
function URLCopy_Link (link)
if (URLCopy.Brackets == 1) then
link = " |cff" .. URLCopy.Color .. "|Hurl:" .. link .. "|h[" .. link .. "]|h|r "
else
link = " |cff" .. URLCopy.Color .. "|Hurl:" .. link .. "|h" .. link .. "|h|r "
end
return link
end
function URLCopy_AddMessage1(t, s, ...)
s = URLCopy_Decompose (s)
URLCopy_AddMessage1_Original (t, s, unpack (arg))
end
function URLCopy_AddMessage2(t, s, ...)
s = URLCopy_Decompose (s)
URLCopy_AddMessage2_Original (t, s, unpack (arg))
end
function URLCopy_AddMessage3(t, s, ...)
s = URLCopy_Decompose (s)
URLCopy_AddMessage3_Original (t, s, unpack (arg))
end
function URLCopy_AddMessage4(t, s, ...)
s = URLCopy_Decompose (s)
URLCopy_AddMessage4_Original (t, s, unpack (arg))
end
function URLCopy_AddMessage5(t, s, ...)
s = URLCopy_Decompose (s)
URLCopy_AddMessage5_Original (t, s, unpack (arg))
end
function URLCopy_AddMessage6(t, s, ...)
s = URLCopy_Decompose (s)
URLCopy_AddMessage6_Original (t, s, unpack (arg))
end
function URLCopy_AddMessage7(t, s, ...)
s = URLCopy_Decompose (s)
URLCopy_AddMessage7_Original (t, s, unpack (arg))
end
function URLCopy_SetItemRef(link, text, button)
if ( strsub(link, 1, 3) == "url" ) then
URLCopy_Toggle();
URLCopyFrameEditBox:SetText( strsub(link, 5) );
URLCopyFrameEditBox:HighlightText();
return;
end
URLCopy_SetItemRef_Original(link, text, button);
end