--script for http://yoolive.com/ (16/04/2015)


----------------------------------------------------------------
local session = m_simpleTV.WinInet.New("Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.9.168 Version/11.52")
if session == nil then return end

 --INTERNET_OPTION_CONNECT_TIMEOUT
 m_simpleTV.WinInet.SetOptionInt(session,2,3000,0)
 --INTERNET_OPTION_RECEIVE_TIMEOUT
 m_simpleTV.WinInet.SetOptionInt(session,6,5000,0)
---------------------------------------------------------------
 m_simpleTV.OSD.ShowMessage("YooLive - start channels loading" ,0xFF00,10)

local  tmpName = m_simpleTV.Common.GetTmpName()
if tmpName == nil then return end 

 local tfile = io.open(tmpName,'w+')
 if tfile == nil then 
     os.remove(tmpName)
     return
 end
 
 tfile:write('#EXTM3U\n')
 tfile:close() 

local url = 'http://yoolive.com/' 

local rc,answer=m_simpleTV.WinInet.Get(session,url)
m_simpleTV.WinInet.Close(session)

if rc~=200 then
       m_simpleTV.WinInet.Close(session)
	   return
end
--answer = m_simpleTV.Common.string_fromUTF8(answer)
answer = findpattern( answer,'<ol id="nsmclist"(.-)</ol id="nsmclist">',1,0,0)
if answer == nil then
    m_simpleTV.OSD.ShowMessage("YooLive - error updating",255,10)
	return
end

answer = string.gsub(answer,'(<!%-%-.-%-%->)','')
--debug_in_file(answer .. '\n\n\n')
--do return end
local i=1
local m3ustr, name, adr
for w in string.gmatch(answer,'<li(.-)/li>') do

	adr = findpattern( w,'href="(.-)"',1,6,1)
	name = string.match( w,'onload.->(.-)<')
	if adr == nil or name == nil then break end
        adr = 'http://yoolive.com/' .. adr
--debug_in_file('#EXTINF:-1,YooLive:'.. name..'\n'..adr..'\n')
	
 m3ustr = '#EXTINF:%-1,YooLive:'.. name..'\n'..adr..'\n'
 tfile = io.open(tmpName,'a+')
 tfile:write(m3ustr)
 tfile:close()
   
 i=i+1
end

--do return end

  --опции  для загрузки плейлиста 
local p={}
p.TypeSourse = 1
p.DeleteBeforeLoad = 0
p.TypeSkip   = 1
p.TypeFind =   0
p.AutoSearch = 1
p.NumberM3U =  0
p.Find_Group = 1
p.TypeCoding = 1  --  -1-auto  0 - plane text  1- UTF8  2- unicode
p.BorpasFileFormat=0
p.AutoNumber = 0
p.ExtFilter = 'YooLive'
p.ExtFilterLogo =  '..\\Channel\\logo\\extFiltersLogo\\yoolive.png'   -- the logo of extended filter (from ver. 0.4.8 b9)
p.ExtFilterLogoForce = 0

local err,add,ref,names = m_simpleTV.Common.LoadPlayList (tmpName,p,0,true,false)
os.remove(tmpName)

if err==true then
     local mess = "YooLive - channels loading complete (" .. add .. ")"
	 if add > 0 and add < 25 then 
	    names = string.gsub(names,'%$end','\n')
		mess = mess .. '\n' .. names
	 end
	 
	 m_simpleTV.OSD.ShowMessage(mess,0xFF00,5)
	 
end

