----- Проверяем есть ли в списке путей, путь к ядру TVSources, если нет, то прописываемся в системе -------
if not package.path:find('user\\TVSources\\core' )  then
	package.path = package.path .. ";" .. m_simpleTV.MainScriptDir .. 'user\\TVSources\\core\\?.lua'
end

if not package.path:find('user\\TVSources\\scrapers') then 
	package.path = package.path .. ";" .. m_simpleTV.MainScriptDir .. 'user\\TVSources\\scrapers\\?.lua'
end
require 'lfs'
lfs.mkdir(m_simpleTV.MainScriptDir .."/user/TVSources/AutoSetup/")
lfs.mkdir(m_simpleTV.MainScriptDir .."/user/TVSources/scrapers/")
lfs.mkdir(m_simpleTV.MainScriptDir .."/user/TVSources/log/")
lfs.mkdir(m_simpleTV.MainScriptDir .."/user/TVSources/lists/")
lfs.mkdir(m_simpleTV.MainScriptDir .."/user/TVSources/m3u/")
lfs.mkdir(m_simpleTV.MainScriptDir .."/user/TVSources/m3u/cache/")
TVSources_lng = {}

------ Подключаем ядро TVSources ---------------------------
require('tvs_core')
require('tvs_func')
require('checkudpxy')

------ Объявляем переменные в базе SimpleTV ----------------
dofile (m_simpleTV.MainScriptDir .. 'user/TVSources/core/defines.lua')


------ Назначаем глобальные переменные TVSources -----------
TVSources_var = {}
TVSources_var.CurrentAdress  = nil				-- Последний запущенный адрес телеканала
TVSources_var.CurrentSource  = nil				-- Последний запущенный источник телеканала
TVSources_var.ChangeAdress 	 = false			-- Признак смены канала TVSources
TVSources_var.Logging		 = false			-- true - вести лог; false - не вести лог
TVSources_var.FilterName	 = ''				-- символы, которые будут искключены из названий каналов при обработке базы
TVSources_var.Default		 = ''				-- Источник по умолчанию
TVSources_var.NoSignal		 = true				-- true - то выбираем другой источник (для любых каналов, не только TVSources); false - останавливаемся
TVSources_var.SourceInFolder = false			-- true - каждый ресурс имеет собственную папку, false - только внешний фильтр
TVSources_var.NextSr		 = true				-- true - нет сигнала, запускаем следующий источник по порядку; false - выбираем источник вручную.
TVSources_var.LastPlay		 = false			-- true - при запуске канала включаем последний успешный источник (алгоритм последовательности: 1. LastPlay 2. Default (источник по умолчанию) 3. Первый в списке источников)
TVSources_var.CHNameFilter	 = true				-- true - фильровать имена каналов при поиске источников, false - не фильтровать
TVSources_var.OSDLang		 = 'Default'		-- Язык сообщений TVSources
TVSources_var.LangFile		 = ''               -- Имя языкового файла после инициализации языка
TVSources_var.LastStart		 = 0				-- Дата последней успешной обработки базы каналов
TVSources_var.BadSrcCount	 = 0				-- Счетчик переключений по неработающим источникам
TVSources_var.AutoErrorBuild = false			-- Флаг запуска автогруппировки при неисправном канале TVSources
TVSources_var.AutoBuild		 = true				-- Автоматический запуск обработки базы каналов: true - разрешен, false - ручной запуск в меню настроек 
TVSources_var.AutoBuildFL	 = true				-- Автоматический запуск обработки базы каналов по флагу события при просмотре телеканалов (работает при AutoBuild = true)
TVSources_var.AutoBuildDay	 = {1,0,0,0,0,0,0}	-- Дни недели, когда будет произведена автоматическая обработка базы каналов при запуске SimpleTV(работает при AutoBuild = true). {Вс,Пн,Вт,Ср,Чт,Пт,Сб}. 1 - включен, 0 - выключен 
TVSources_var.KeyPlsMake	 = false			-- Запуск обработки базы каналов при нажатии на кнопку "Загрузить Плей-лист": true - разрешен, false - запрещен
TVSources_var.HotKey		 = {84,2}           -- Shift + T, вызов меню выбора источника
TVSources_var.MotherGroup	 = true  			-- true - Наследовать группу канала из источника; false - не наследовать
TVSources_var.TimeDelayTweak = 0                -- 
TVSources_var.ChannelWaiting = 20               -- Ожидание воспроизведения канала, затем смена источника.
TVSources_var.RestoreFav	 = 0 			    -- 1 - восстанавливать автоматически отметки любимых каналов после обновления источников; 0 - ничего не делать
TVSources_var.tmp			 = {}				-- Временные переменные. Ветка source (настройки источников), tvs_ch (каналы TVSources)

local file_error   = tvs_core.tvs_fcheck(m_simpleTV.MainScriptDir .. 'user/TVSources/core/config.lua')
if file_error ~= 'ok' then
	tvs_core.tvs_debug ('TVSources. Error in config file or file miss.')
	tvs_core.tvs_debug ('TVSources. Getting variables.')
else
	tvs_core.tvs_debug ('TVSources. Getting variables from the config file.')
	dofile (m_simpleTV.MainScriptDir .. 'user/TVSources/core/config.lua')
end

------------ Инициализация языка интерфейса ---------------
tvs_core.tvs_LangInitialization()

------------ Проверка локалей языкового файла -------------
if TVSources_var.Logging then tvs_core.tvs_LocaleTest() end

----------- Прописываемся в списке конфигураций -----------
AddFileToExecute('onconfig',m_simpleTV.MainScriptDir .. "user\\TVSources\\initconfig.lua")

----------- прописываемся в кнопке "Обновить плейлист" ----
AddFileToExecute('refreshplst',m_simpleTV.MainScriptDir .. "user\\TVSources\\refreshplst.lua")

----------- прописываемся в событиях events -----------------
AddFileToExecute('events',m_simpleTV.MainScriptDir .. "user\\TVSources\\events.lua")

----------- прописываемся в действиях при получении адреса -----------------
AddFileToExecute('getaddress',m_simpleTV.MainScriptDir .. "user\\TVSources\\getaddress.lua")

--------------- Инициализируем меню ------------------------
dofile (m_simpleTV.MainScriptDir .. 'user/TVSources/core/initmenu.lua')

------- проверка правильности установки TVSources ---------
tvs_core.tvs_setup()

TVSources_var.tmp.source = tvs_core.tvs_GetSourceParam()
if TVSources_var.tmp.source == nil then
    TVSources_var.tmp.source = {}
end
tvs_core.tvs_SaveSources()

------- инициализация таблицы сохранения tvs_Save избранных каналов и их настроек
tvs_core.InitFav()
 
  
--------------скачиваем новые скраперы из репозитория -------------------------
tvs_core.UpdateSourcesFromRepo()
--------------обновляем скраперы из папки AutoUpdate---------------------------
tvs_core.UpdateSourcesFromFolder()
--------------устанавливаем модуль iptv-----------------------------
--dofile(m_simpleTV.MainScriptDir .. 'user/TVSources/iptv/install.lua')
--------------------------------------------------------------------------------

--TVSources_var.tmp = nil
--TVSources_var.tmp = {}

--TVSources_var.Servers = {}

--TVSources_var.tmp.channel = {}
--TVSources_var.tmp.channel = tvs_core.tvs_GetTVSourceCH()

--------------запускаем различные автообновления по таймеру -------------------

TVSources_var.timerStartID =  m_simpleTV.Timer.SetTimer(5000, " dofile(m_simpleTV.MainScriptDir .. 'user/TVSources/core/tvs_start.lua') ")


--------------запускаем таймер для скрипта получения адресов -------------------
--local script = " dofile(m_simpleTV.MainScriptDir .. 'user/TVSources/core/get_ip.lua') "
--TVSources_var.timerID1 = m_simpleTV.Timer.SetTimer(5000, script)
