vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
--[[    ---------------------------------------------------------------
                Enchanter Ad Shrinker
                ---------------------------------------------------------------
                
                @Author:                Sacha Beharry
                @DateCreated:   
                @LastUpdate:    
                @Release:               BETA 2
                @Version:               0.3.1800
                @Note:                  
                ]]

                EAS_RELEASEVERSION      = "BETA 2";
                EAS_NOTE = {
                "Enchanter Ad Shrinker - Beta 2",
                "Thank you for using EAS - Hope you find it useful :)",
                "Sacha"
                };
        
--[[    ---------------------------------------------------------------
        
                Web:                    
        
                Filename:               EnchanterAdShrinker.lua
        
                Project Name:   Pandora
        
                Description:    Main Program
        
                Purpose:                
                ]]


local lastName = nil;

function EnchanterAdShrinker_OnLoad()
        SlashCmdList["EnchanterAdShrinkerCOMMAND"] = EnchanterAdShrinker_SlashHandler;
        SLASH_EnchanterAdShrinkerCOMMAND1 = "/enchanteradshrinker";
        SLASH_EnchanterAdShrinkerCOMMAND2 = "/eas";
        
        this:RegisterEvent("CHAT_MSG_CHANNEL");
         
        --[[
        local xhList = {}; 
        xhList[ "enchantmsg" ] = { tag = "Long Enchant Message", trigger = enchTrigger, function = doEnchMsg, block = 1 };
        ]]
        
        local old_SetItemRef = SetItemRef;
        function SetItemRef(link, text, button)
                for name, msg in string.gfind( link, "xhmsg:(%w+)<XH>(.+)" ) do         
                
                        if( ItemRefTooltip:IsVisible() and lastName and lastName == name ) then                         
                
                                HideUIPanel(ItemRefTooltip);
                                --ItemRefTooltip:Hide();
                                lastName = nil;
                        
                        else
                                lastName = name;

                                ShowUIPanel(ItemRefTooltip);
                                if ( not ItemRefTooltip:IsVisible() ) then
                                        ItemRefTooltip:SetOwner(UIParent, "ANCHOR_PRESERVE");
                                end                             

                                ItemRefTooltip:ClearLines();
                                --ItemRefTooltip:ClearAllPoints();

                                if( name == "eas" and msg == "eas" ) then
                                
                                        ItemRefTooltip:AddLine( EAS_NOTE[1], 1, 0.5, 0 );
                                        ItemRefTooltip:AddLine( EAS_NOTE[2], 1, 1, 1, 1, 1 );
                                        ItemRefTooltip:AddLine( EAS_NOTE[3] );
                                
                                else
                                        ItemRefTooltip:AddLine( "Message", 0.5, 0.5, 1 );
                                        ItemRefTooltip:AddLine( name );
                                        ItemRefTooltip:AddLine( msg, 1, 1, 1, 1, 1 );
                                end
                                ItemRefTooltip:Show();
                                
                                --[[
                                ShowUIPanel(ItemRefTooltip);
                                if ( not ItemRefTooltip:IsVisible() ) then
                                        ItemRefTooltip:SetOwner(UIParent, "ANCHOR_PRESERVE");
                                end                             
                                ]]
                        end
                        
                        return;
                end
                
                lastName = nil;
                old_SetItemRef(link, text, button);
        end
        
        
        local old_ChatFrame_OnEvent = ChatFrame_OnEvent;
        function ChatFrame_OnEvent(event)
                --if( string.find( event, "CHAT_MSG" ) and arg1 and arg2 and string.len(arg1) > 16 ) then
                if( event == "CHAT_MSG_CHANNEL" and arg1 and arg2 and string.len(arg1) > 16 ) then
                        local argl = string.lower(arg1);
                        local start; --, _ = string.find( argl, "enchanting");
                        local score = 100;
                        if( not start ) then
                                score = Sacha_LightSearch( arg1, "bracer chest boots weapon armor fiery demon slaying beast crusader" );
                                if( score > 0 and ( string.find( argl, "chant") or string.find( argl, "ench") ) ) then 
                                        start = 1;
                                end
                        end
                        
                        if( start and Sacha_LightSearch( arg1, "trainer thorium item:" ) == 0 ) then
                                --[[
                                        Thanks to Subatai-Garona for this fix posted in curse-gaming.com
                                --]]
                                if string.find( arg1, "|") then arg1 = string.gsub(arg1, "|", "/"); end;
                                
                                arg1 = "|cff8888ff|Hxhmsg:"..arg2.."<XH>"..arg1.."|h[Enchantments]|h|r"; 
                                if( string.find(argl, "wts") ) then
                                        arg1 = "WTS "..arg1;
                                elseif( string.find(argl, "wtb") ) then
                                        arg1 = "WTB "..arg1;
                                else
                                        arg1 = "Regarding "..arg1;
                                end 
                        end
                end
                old_ChatFrame_OnEvent(event);
        end
        
        --ChatPrintln( "|cffff8800|Hxhmsg:eas<XH>eas|h[Enchanter Ad Shrinker]|h|r loaded." );

end

function EnchanterAdShrinker_SlashHandler( com ) 

end

function Sacha_LightSearch( source, search )
        local ad = string.lower( source );
        local query = string.lower( search );
                
        if( string.find( ad, query ) ) then
                return 100;
        else
                local sourceWords = {};
                for word in string.gfind( ad, "%w+" ) do
                        sourceWords[word] = 1;
                end
                
                local highlighted = source;     
                                
                local score = 0;
                local total = 0;
                for word in string.gfind(query, "%w+") do
                        total = total + 1;
                        if( sourceWords[word] ) then
                                score = score + 1;
                        elseif( string.find( ad, word ) ) then
                                score = score + 0.9;
                        end
                end
                
                if( score > 0 ) then 
                        score = floor(99*score/total);  
                end
                
                return score;
        end
end

function ChatPrintln( string )
        DEFAULT_CHAT_FRAME:AddMessage(string, 0.95, 0.95, 0.5);
end