---------------------------------------------------------------------------------------
module('AllFonTV_pls', package.seeall)
-----------------------------------------------------------------------------------------
function GetSettings()
	local scrap_settings
	scrap_settings ={
	name	 		='AllFonTV', 			      -- Имя источника
	sortname 		='',					  -- имя для сортировки (если не указано, берется name)
	scraper 		='AllFonTV_pls.lua',      -- * Путь и название скрапера (будет автоматически присвоено)
	m3u     		='out_allfon.m3u',		  -- Путь и название m3u
	logo     		='..\\Channel\\logo\\Icons\\AllfonTV.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 3, 'UTF-8'
end
-----------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------  
function GetList(UpdateID,m3u_file)
 if UpdateID == nil or m3u_file == nil then return end

 if TVSources_var.tmp.source[UpdateID] == nil then return end
 local Source=TVSources_var.tmp.source[UpdateID]  -- Наследуем настройки источника, чтобы не таскать
 
 m_simpleTV.OSD.ShowMessage_UTF8(Source.name .. '. ' .. tvs_core.tvs_GetLangStr('tvs_scrap_process'),0xFF00,10)
 if allfoncore == nil or  allfoncore.GetPlstAsTable == nil then 
	m_simpleTV.OSD.ShowMessage_UTF8("Требуется основной скрипт AllFonTV" ,0xFF00,10)
	return 
 end 
-----------------------------------------------------------------
----------------------------------------------------------------- 
	local WithoutGroup = 0
	if Source.STV.GetGroup == nil or Source.STV.GetGroup == 0 then WithoutGroup = 1	end
  
	local HDGroup = Source.STV.HDGroup
	if HDGroup==nil or HDGroup~=1 then HDGroup = 0 end
    
	
    local t, coding = allfoncore.GetPlstAsTable (WithoutGroup,HDGroup)      --  получаем данные из основного скрипта. UTF-8 .		
	if t == nil then return end
	
------------------меняем кодировку полученной таблицы -------------------------------	
  
	if (coding == nil or coding == 0) then
		for i=1,#t do
			t[i].group = m_simpleTV.Common.string_toUTF8( t[i].group, 1251)
			t[i].name = m_simpleTV.Common.string_toUTF8( t[i].name, 1251)
		end
	end
-----------------------------------------------------------------
----------------------------------------------------------------------------	
-- Проходим таблицу фильтрами групп, автогруппировкой и фильтрами каналов	 
-----------------------------------------------------------------------------
 m3ustr = tvs_core.ProcessFilterTable(UpdateID,Source,t) -- 
 
 
 --debug_in_file(m3ustr .. '\n\n')
 if not string.match(m3ustr,'EXTINF') then return end
  
 local tfile = io.open(m3u_file,'w+')
 if tfile==nil then 
	os.remove(m3u_file)
	return
 end
  
 tfile:write(m3ustr)
 tfile:close()
 return 'ok',1
end
