/Tukui/modules/chat/copyurl.lua
http://github.com/Asphyxia/Tukui · Lua · 66 lines · 59 code · 6 blank · 1 comment · 13 complexity · dc8092274c51a12cda379963a061bc59 MD5 · raw file
- local T, C, L = unpack(select(2, ...)) -- Import: T - functions, constants, variables; C - config; L - locales
- if C["chat"].enable ~= true then return end
- local SetItemRef_orig = SetItemRef
- function ReURL_SetItemRef(link, text, button, chatFrame)
- if (strsub(link, 1, 3) == "url") then
- local ChatFrameEditBox = ChatEdit_ChooseBoxForSend()
- local url = strsub(link, 5);
- if (not ChatFrameEditBox:IsShown()) then
- ChatEdit_ActivateChat(ChatFrameEditBox)
- end
- ChatFrameEditBox:Insert(url)
- ChatFrameEditBox:HighlightText()
- else
- SetItemRef_orig(link, text, button, chatFrame)
- end
- end
- SetItemRef = ReURL_SetItemRef
- function ReURL_AddLinkSyntax(chatstring)
- if (type(chatstring) == "string") then
- local extraspace;
- if (not strfind(chatstring, "^ ")) then
- extraspace = true;
- chatstring = " "..chatstring;
- end
- chatstring = gsub (chatstring, " www%.([_A-Za-z0-9-]+)%.(%S+)%s?", ReURL_Link("www.%1.%2"))
- chatstring = gsub (chatstring, " (%a+)://(%S+)%s?", ReURL_Link("%1://%2"))
- chatstring = gsub (chatstring, " ([_A-Za-z0-9-%.]+)@([_A-Za-z0-9-]+)(%.+)([_A-Za-z0-9-%.]+)%s?", ReURL_Link("%1@%2%3%4"))
- chatstring = gsub (chatstring, " (%d%d?%d?)%.(%d%d?%d?)%.(%d%d?%d?)%.(%d%d?%d?):(%d%d?%d?%d?%d?)%s?", ReURL_Link("%1.%2.%3.%4:%5"))
- chatstring = gsub (chatstring, " (%d%d?%d?)%.(%d%d?%d?)%.(%d%d?%d?)%.(%d%d?%d?)%s?", ReURL_Link("%1.%2.%3.%4"))
- if (extraspace) then
- chatstring = strsub(chatstring, 2);
- end
- end
- return chatstring
- end
- REURL_COLOR = "16FF5D"
- ReURL_Brackets = false
- ReUR_CustomColor = true
- function ReURL_Link(url)
- if (ReUR_CustomColor) then
- if (ReURL_Brackets) then
- url = " |cff"..REURL_COLOR.."|Hurl:"..url.."|h["..url.."]|h|r "
- else
- url = " |cff"..REURL_COLOR.."|Hurl:"..url.."|h"..url.."|h|r "
- end
- else
- if (ReURL_Brackets) then
- url = " |Hurl:"..url.."|h["..url.."]|h "
- else
- url = " |Hurl:"..url.."|h"..url.."|h "
- end
- end
- return url
- end
- --Hook all the AddMessage funcs
- for i=1, NUM_CHAT_WINDOWS do
- local frame = getglobal("ChatFrame"..i)
- local addmessage = frame.AddMessage
- frame.AddMessage = function(self, text, ...) addmessage(self, ReURL_AddLinkSyntax(text), ...) end
- end