/// <summary>
        /// Load the cached data
        /// </summary>
        /// <returns></returns>
        public TvdbData LoadUserDataFromCache()
        {
            List <TvdbMirror>   mirrors     = LoadMirrorListFromCache();
            List <TvdbLanguage> languages   = LoadLanguageListFromCache();
            DateTime            lastUpdated = LoadLastUpdatedFromCache();
            TvdbData            data        = new TvdbData(languages, mirrors);

            data.LastUpdated = lastUpdated;
            return(data);
        }
Beispiel #2
0
 /// <summary>
 /// Constructor for a tvdb class
 /// </summary>
 /// <param name="_cacheProvider">The cache provider used to store the information</param>
 /// <param name="_apiKey">Api key to use for this project</param>
 public Tvdb(ICacheProvider _cacheProvider, String _apiKey)
 {
     m_apiKey = _apiKey; //store api key
       m_cacheProvider = _cacheProvider; //store given cache provider
       m_loadedData = new TvdbData();
       m_loadedData.Mirrors = new List<TvdbMirror>();
       m_loadedData.SeriesList = new List<TvdbSeries>();
       m_loadedData.LanguageList = new List<TvdbLanguage>();
       TvdbLinks.ActiveMirror = new TvdbMirror(0, new Uri(TvdbLinks.BASE_SERVER), 7);
       m_downloader = new TvdbDownloader(m_apiKey);
 }
Beispiel #3
0
        /// <summary>
        /// Load the cached data
        /// </summary>
        /// <returns>TvdbData object</returns>
        public TvdbData LoadUserDataFromCache()
        {
            List <TvdbLanguage> languages   = LoadLanguageListFromCache();
            DateTime            lastUpdated = LoadLastUpdatedFromCache();
            TvdbData            data        = new TvdbData(languages)
            {
                LastUpdated = lastUpdated
            };

            return(data);
        }
        /// <summary>
        /// Saves cache settings
        /// </summary>
        /// <param name="_content">settings</param>
        public void SaveToCache(TvdbData _content)
        {
            if (_content != null)
            {
                SaveToCache(_content.LanguageList);

                //store additional information
                //- time of last update
                //- more to come (eventually)
                XElement xml = new XElement("Data");
                xml.Add(new XElement("LastUpdated", Util.DotNetToUnix(_content.LastUpdated)));
                String data = xml.ToString();
                File.WriteAllText(m_rootFolder + Path.DirectorySeparatorChar + "data.xml", data);
            }
        }
        /// <summary>
        /// Loads the settings data from cache
        /// </summary>
        /// <returns>The loaded TvdbData object</returns>
        public TvdbData LoadUserDataFromCache()
        {
            String fName = _rootFolder + Path.DirectorySeparatorChar + "data.xml";

            _dataLock.EnterReadLock();
            try
            {
                if (File.Exists(fName))
                {
                    String    xmlData = File.ReadAllText(fName);
                    XDocument xml     = XDocument.Parse(xmlData);

                    var info = from dataNode in xml.Descendants("Data")
                               select new
                    {
                        lu = dataNode.Element("LastUpdated").Value
                    };
                    if (info.Count() == 1)
                    {
                        TvdbData data        = new TvdbData();
                        DateTime lastUpdated = new DateTime();
                        try
                        {
                            lastUpdated = Util.UnixToDotNet(info.First().lu);
                        }
                        catch (FormatException ex)
                        {
                            Log.Warn("Couldn't parse date of last update", ex);
                        }
                        data.LastUpdated  = lastUpdated;
                        data.LanguageList = LoadLanguageListFromCache();
                        //if (data.SeriesList == null) data.SeriesList = new List<TvdbSeries>();
                        return(data);
                    }
                }
            }
            finally
            {
                _dataLock.ExitReadLock();
            }

            return(null);
        }
        /// <summary>
        /// Saves cache settings
        /// </summary>
        /// <param name="content">settings</param>
        public void SaveToCache(TvdbData content)
        {
            if (content == null)
            {
                return;
            }
            SaveToCache(content.LanguageList);

            _dataLock.EnterWriteLock();
            try
            {
                //store additional information
                //- time of last update
                //- more to come (eventually)
                XElement xml = new XElement("Data");
                xml.Add(new XElement("LastUpdated", Util.DotNetToUnix(content.LastUpdated)));
                String data = xml.ToString();
                File.WriteAllText(_rootFolder + Path.DirectorySeparatorChar + "data.xml", data);
            }
            finally
            {
                _dataLock.ExitWriteLock();
            }
        }
Beispiel #7
0
 /// <summary>
 /// Saves cache settings
 /// </summary>
 /// <param name="_content">settings</param>
 public void SaveToCache(TvdbData _content)
 {
     SaveToCache(_content.LanguageList);
     SaveToCache(_content.LastUpdated);
 }
 /// <summary>
 /// Saves cache settings
 /// </summary>
 /// <param name="_content">settings</param>
 public void SaveToCache(TvdbData _content)
 {
     SaveToCache(_content.LanguageList);
       SaveToCache(_content.Mirrors);
       SaveToCache(_content.LastUpdated);
 }
 /// <summary>
 /// Load the cached data
 /// </summary>
 /// <returns></returns>
 public TvdbData LoadUserDataFromCache()
 {
     List<TvdbMirror> mirrors = LoadMirrorListFromCache();
       List<TvdbLanguage> languages = LoadLanguageListFromCache();
       DateTime lastUpdated = LoadLastUpdatedFromCache();
       TvdbData data = new TvdbData(languages, mirrors);
       data.LastUpdated = lastUpdated;
       return data;
 }
        /// <summary>
        /// Initialises the cache, should do the following things
        /// - initialise connections used for this cache provider (db connections, network shares,...)
        /// - create folder structure / db tables / ...  if they are not created already
        /// - if this is the first time the cache has been initialised (built), mark last_updated with the
        ///   current date
        /// </summary>
        /// <returns></returns>
        public TvdbData InitCache()
        {
            try
              {
            if (!Directory.Exists(m_rootFolder))
            {
              Directory.CreateDirectory(m_rootFolder);
            }

            TvdbData data = LoadUserDataFromCache();
            if (data == null)
            {//the cache has never been initialised before -> do it now
              data = new TvdbData();
              data.LanguageList = new List<TvdbLanguage>();
              data.Mirrors = new List<TvdbMirror>();
              data.LastUpdated = DateTime.Now;

              SaveToCache(data);
            }
            m_initialised = true;
            return data;
              }
              catch (Exception ex)
              {
            Log.Error("Couldn't initialise cache: " + ex.ToString());
            return null;
              }
        }
Beispiel #11
0
        /// <summary>
        /// Saves cache settings
        /// </summary>
        /// <param name="_content">settings</param>
        public void SaveToCache(TvdbData _content)
        {
            if (_content != null)
              {
            SaveToCache(_content.LanguageList);

            //store additional information
            //- time of last update
            //- more to come (eventually)
            XElement xml = new XElement("Data");
            xml.Add(new XElement("LastUpdated", Util.DotNetToUnix(_content.LastUpdated)));
            String data = xml.ToString();
            File.WriteAllText(m_rootFolder + Path.DirectorySeparatorChar + "data.xml", data);
              }
        }
Beispiel #12
0
        /// <summary>
        /// Loads the settings data from cache 
        /// </summary>
        /// <returns>The loaded TvdbData object</returns>
        public TvdbData LoadUserDataFromCache()
        {
            String fName = m_rootFolder + Path.DirectorySeparatorChar + "data.xml";
              if (File.Exists(fName))
              {
            String xmlData = File.ReadAllText(fName);
            XDocument xml = XDocument.Parse(xmlData);

            var info = from dataNode in xml.Descendants("Data")
                   select new
                   {
                     lu = dataNode.Element("LastUpdated").Value
                   };
            if (info.Count() == 1)
            {
              TvdbData data = new TvdbData();
              DateTime lastUpdated = new DateTime();
              try
              {
            lastUpdated = Util.UnixToDotNet(info.First().lu);
              }
              catch (FormatException ex)
              {
            Log.Warn("Couldn't parse date of last update", ex);
              }
              data.LastUpdated = lastUpdated;
              data.LanguageList = LoadLanguageListFromCache();
              //if (data.SeriesList == null) data.SeriesList = new List<TvdbSeries>();
              return data;
            }

              }

              return null;
        }