Ejemplo n.º 1
0
 private void ShowSaved()
 {
     imageListView1.ShowCheckBoxes = false;
     var db = new SqLiteDatabase();
     var query = "SELECT * FROM arts_" + _seriesId;
     try
     {
         var dt = db.GetDataTable(query);
         imageListView1.Items.Clear();
         for (var i = 0; i < dt.Rows.Count; i++)
         {
             DataRow drow = dt.Rows[i];
             var img1 = new ImageListViewItem {FileName = @drow["image"].ToString()};
             imageListView1.Items.AddRange(new[] { img1 });
         }
     }
     catch(Exception e){
         Console.WriteLine(e.Message);
         var createTable = "CREATE TABLE " + "arts_" + _seriesId + "("
                     + "_id" + " INTEGER PRIMARY KEY,"
                     + "image" + " TEXT"
                     +
                     ")";
         var adb = new ArtsDatabaseEntry(
             "res/" + _seriesName + "_banner.jpg");
         var adb2 = new ArtsDatabaseEntry("res/" + _seriesName + "_poster.jpg");
         var adb3 = new ArtsDatabaseEntry(
             "res/" + _seriesName + "_fanart.jpg");
         try
         {
             db.CreateTable(createTable);
             db.InsertArts(adb, "arts_" + _seriesId);
             db.InsertArts(adb2, "arts_" + _seriesId);
             db.InsertArts(adb3, "arts_" + _seriesId);
             ShowSaved();
         }
         catch (Exception crap)
         {
             MessageBox.Show(crap.Message);
         }
     }
 }
Ejemplo n.º 2
0
        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            var sName = "";
            var worker = sender as BackgroundWorker;

            //Step1 Create temp directory if doesnt exists

            if(!Directory.Exists("temp"))
            {
                Directory.CreateDirectory("temp");
            }
            if (!Directory.Exists("res"))
            {
                Directory.CreateDirectory("res");
            }

            //Step2 Download series info zip file
            worker.ReportProgress(15);
            var client = new WebClient();
            client.DownloadFile("http://thetvdb.com/api/" + Constants.ApiKey + "/series/" + _selectedItem.GetSeriesId() + "/all/" + _selectedItem.GetLang() + ".zip",
                @"temp/tmp.zip");

            //Step3 Extract xmls
            worker.ReportProgress(30);
            using (var zip = ZipFile.Read("temp/tmp.zip"))
            {
                zip.ExtractAll("temp/");
            }

            //Step4 Add series information to database
            worker.ReportProgress(45);

            var doc = XDocument.Load("temp/en.xml");

            var names = from ele in doc.Descendants("Series")
                        select new
                        {
                            seriesName = (string)ele.Element("SeriesName"),
                            overview = (string)ele.Element("Overview"),
                            lang = (string)ele.Element("Language"),
                            id = (int)ele.Element("id"),
                            firstAired = (string)ele.Element("FirstAired"),
                            imdbId = (string)ele.Element("IMDB_ID"),
                            network = (string)ele.Element("Network"),
                            rating = (double)ele.Element("Rating"),
                            runtime = (int)ele.Element("Runtime"),
                            status = (string)ele.Element("Status"),
                            banner = (string)ele.Element("banner"),
                            fanart = (string)ele.Element("fanart"),
                            poster = (string)ele.Element("poster")
                        };

            foreach (var n in names)
            {
                client.DownloadFile("http://thetvdb.com/banners/"+n.banner,
                @"res/"+n.seriesName+"_banner.jpg");
                client.DownloadFile("http://thetvdb.com/banners/" + n.fanart,
                @"res/" + n.seriesName + "_fanart.jpg");
                client.DownloadFile("http://thetvdb.com/banners/" + n.poster,
                @"res/" + n.seriesName + "_poster.jpg");
                var sdb = new SeriesDatabaseEntry(n.seriesName, n.firstAired, n.imdbId, n.overview, n.rating, n.id, n.lang,
                    "res/" + n.seriesName + "_banner.jpg", "http://thetvdb.com/banners/" + n.banner, "res/" + n.seriesName + "_poster.jpg", "http://thetvdb.com/banners/" + n.poster,
                    "res/" + n.seriesName + "_fanart.jpg", "http://thetvdb.com/banners/" + n.fanart, n.network, n.runtime, n.status, false, false, DateTime.Now.ToString());

                sName = n.id.ToString();
                CreateArtsTable(sName);
                var adb = new ArtsDatabaseEntry(
                    "res/" + n.seriesName + "_banner.jpg");
                var adb2 = new ArtsDatabaseEntry("res/" + n.seriesName + "_poster.jpg");
                var adb3 = new ArtsDatabaseEntry(
                    "res/" + n.seriesName + "_fanart.jpg");
                try
                {
                    _db.InsertSeries(sdb);
                }
                catch (Exception crap)
                {
                    MessageBox.Show(crap.Message);
                }
                try
                {
                    _db.InsertArts(adb, "arts_"+sName);
                    _db.InsertArts(adb2, "arts_" + sName);
                    _db.InsertArts(adb3, "arts_" + sName);
                }
                catch (Exception crap)
                {
                    MessageBox.Show(crap.Message);
                }

            }

            //Step5 Create table for episodes
            worker.ReportProgress(60);
            CreateEpisodesTable(sName);

            //Step6 Add episodes info to database
            worker.ReportProgress(75);

            // var names = doc.Descendants("Series");
            var names1 = from ele in doc.Descendants("Episode")
                        select new
                        {
                            episodeName = (string)ele.Element("EpisodeName") ?? string.Empty,
                            episode = (int)ele.Element("EpisodeNumber") ,
                            season = (int)ele.Element("SeasonNumber"),
                            firstAired = (string)ele.Element("FirstAired") ?? string.Empty,
                            imdbId = (string)ele.Element("IMDB_ID") ?? string.Empty,
                            overview = (string)ele.Element("Overview") ?? string.Empty,
                            rating = getRating(ele),
                            episodeId = (int)ele.Element("id")
                        };

            foreach (var edb in names1.Select(n => new EpisodeDatabaseEntry(n.episodeName, n.episode, n.season, n.rating, n.firstAired, n.imdbId, n.overview, false, n.episodeId)))
            {
                try
                {
                    _db.InsertEpisode("episodes_"+sName, edb);
                }
                catch (Exception crap)
                {
                    MessageBox.Show(crap.Message);
                }
            }
            //Step7 dELETE temp folder
            worker.ReportProgress(90);
            Directory.Delete(@"temp", true);
            worker.ReportProgress(100);
        }
Ejemplo n.º 3
0
        public int InsertArts(ArtsDatabaseEntry series, string tableName)
        {
            var cnn = new SQLiteConnection(_dbConnection);
            cnn.Open();
            var mycommand = new SQLiteCommand(cnn)
                {
                    CommandText = "INSERT INTO " + tableName + " (image) VALUES(@image);",
                    CommandType = CommandType.Text
                };

            mycommand.Parameters.Add(new SQLiteParameter("@image", series.BannerLocal));
            var rowsUpdated = mycommand.ExecuteNonQuery();
            cnn.Close();
            return rowsUpdated;
        }