-------------------------------------------BM-----------------------------
module('Miralogic_pls', package.seeall)
--------------------------------------------------------------------------
function GetSettings()
	local scrap_settings
	scrap_settings ={
	name	 		='Miralogic',  			  -- Имя источника      
	sortname 		='',					  -- имя для сортировки (если не указано, берется name)  
	scraper 		='Miralogic_pls.lua',	  -- * Путь и название скрапера (будет автоматически присвоено)
	m3u     		='out_miralogic.m3u',	  -- Путь и название m3u 
	logo     		='..\\Channel\\logo\\Icons\\Rostelecom.png', --  путь и файл лого относительно папки work          
	TypeSource		=1,					  	  -- * Тип источника: 0 - внутренний, 1 - внешний (будет автоматически присвоено 1) 
	TypeCoding		=1,						  -- Кодировка M3U (0 - ANSI, 1 - UTF8, 2 - UNICODE)     
	DeleteM3U		=0,						  -- Удалять m3u по завершению обработки (1 - включено, 0 - выключено) 
	RefreshButton   =1,						  -- Обновлять по кнопке "Обновить плей-лист" (1 - включено, 0 - выключено)  
	AutoBuild		=0,						  -- Автообновление (1 - включено, 0 - выключено)       
	AutoBuildDay	={0,0,0,0,0,0,0},		  -- Дни недели автообновления {вс,пн,вт,ср,чт,пт,сб}  
	LastStart		=0,						  -- Последняя успешная загрузка        
	--------------------------------------------------------------------------------
	TVS				={					 	  -- Ветка настроек для загрузки в базу TVSources (1 - включено, 0 - выключено)
		add			=1,						  -- Загружать в базу TVSources (1 - включено, 0 - выключено)    
		FilterCH	=1,						  -- Фильтровать названия каналов (1 - включено, 0 - выключено)  
		FilterGR	=1,						  -- Фильтровать названия групп каналов (1 - включено, 0 - выключено)  
		GetGroup	=1,						  -- Наследовать группу (1 - включено, 0 - выключено)            
		LogoTVG		=1},					  -- Наследовать логотип и программу передач (1 - включено, 0 - выключено)  
	----------------------------------------------------------------------------------------
	STV				={						  -- Ветка настроек для загрузки в базу SimpleTV  
		add			=1,						  -- Загружать в базу SimpleTV (1 - включено, 0 - выключено) 
		ExtFilter	=1,						  -- Создавать внешний фильтр (1 - включено, 0 - выключено) 
		FilterCH	=1,						  -- Фильтровать названия каналов (1 - включено, 0 - выключено) 
		FilterGR	=1,						  -- Фильтровать названия групп (1 - включено, 0 - выключено)   
		GetGroup	=1,						  -- Учитывать группы из M3U  (1 - включено, 0 - выключено)    
		HDGroup		=1,						  -- HD каналы отдельной группой  (1 - включено, 0 - выключено) Зависит от скрапера  
		AutoSearch	=1,						  -- Искать логотип и программу передач (1 - включено, 0 - выключено)  
		AutoNumber	=1,						  -- Автонумерация каналов (1 - включено, 0 - выключено)            
		NumberM3U	=0,						  -- Учитывать номера из M3U (1 - включено, 0 - выключено)     
		GetSettings	=1,						  -- Учитывать настройки из M3U (1 - включено, 0 - выключено)  
		NotDeleteCH =0,						  -- Не удалять отсутствующие каналы при обновлении (1 - включено, 0 - выключено)  
		TypeSkip	=1,						  -- Если канал существует в базе: 0 - пропускать, 1 - обновлять, 2 - загружать как новый
		TypeFind	=0}						  -- ^^^^^^^^^^ проверять совпадение по: 0 - названию канала, 1 - адресу канала  
	}                                                                                                                                          
	return scrap_settings
end

-------------------------------------------------------------
function GetVersion()
	return 4, 'UTF8'
end

------------------------------------------------------------

function GetList(UpdateID,m3u_file)
----------------------------------------------------------------------------------------------	
	if UpdateID == nil then return end
	if m3u_file == nil then return end
	if TVSources_var.tmp.source[UpdateID] == nil then return end
	
	if TVSources_var.tmp.source[UpdateID].m3u_saved then
	    TVSources_var.tmp.source[UpdateID].m3u = TVSources_var.tmp.source[UpdateID].m3u_saved  -- !!! вернем на место сохраненное 	
	end	
	
	local Source=TVSources_var.tmp.source[UpdateID]  -- Наследуем настройки источника, чтобы не таскать
    TVSources_var.tmp["this"] = UpdateID
	----------------------------------------------------------------------------------------------
	tvs_core.tvs_debug("Scraper "..Source.scraper.." begin:  from: " .. Source.m3u) 

	--m_simpleTV.OSD.ShowMessage_UTF8( m3u_file..'\n'.. Source.m3u,0xFFFF00,10)
	--m_simpleTV.Common.Wait(2000) 
	m_simpleTV.OSD.ShowMessage_UTF8(Source.name .. '. ' .. tvs_core.tvs_GetLangStr('tvs_scrap_process'),0xFF00,5)
		
	 local tmp_file = m_simpleTV.MainScriptDir .. "user\\TVSources\\iptv\\miralogic_refresh_pls.lua"
	 local answer = dofile(tmp_file)
	 
	 if answer == nil  or answer == '' then 
	  return 
	 end
	 
---------------------------------------------------------------------------	    
	local t_pls = tvs_core.GetPlsAsTable(answer)
	
	if t_pls==nil then 
		tvs_core.tvs_debug(Source.name .. ' - cant get playlist table')
		return
	end 

------------------------------------------------------------------------------------------------------------------
    local m3ustr = tvs_core.ProcessFilterTable(UpdateID,Source,t_pls)    
    
----------------------------------------------------------------------------------	
	local handle = io.open (m3u_file, "w+")   -- m3u_file - не меняем название, из него грузится потом вся инфа
	if handle == nil then return nil end
	handle:seek ("set",0)
	handle:write (m3ustr)
	handle:close ()
	
	
	tvs_core.tvs_debug("Scraper for "..Source.name..": ready 'm3u' info push into file "..m3u_file)
	tvs_core.tvs_debug("Scraper for "..Source.name.." end: return 'ok'.")

	return 'ok',1
--  return param1,param2 
--         param1 == 'ok' if make channel list ok, 
--         param2 - change param STV.GetGroup - 1 get group, 0 - ignore group


end

