Exemple #1
0
        public static DBView[] getAll(bool includeDisabled)
        {
            try
            {
                // make sure the table is created - create a dummy object
                DBView dummy = new DBView();

                // retrieve all fields in the table
                String sqlQuery = "select * from " + cTableName +
                                  (includeDisabled ? string.Empty : " where " + cEnabled + " = 1")
                                  + " order by " + cSort;
                SQLiteResultSet results = DBTVSeries.Execute(sqlQuery);
                if (results.Rows.Count > 0)
                {
                    DBView[] views = new DBView[results.Rows.Count];
                    for (int index = 0; index < results.Rows.Count; index++)
                    {
                        views[index] = new DBView();
                        views[index].Read(ref results, index);
                    }
                    return(views);
                }
            }
            catch (Exception ex)
            {
                MPTVSeriesLog.Write("Error in DBView.Get (" + ex.Message + ").");
            }
            return(new DBView[0]);
        }
Exemple #2
0
        public static DBView[] getTaggedViews()
        {
            try {
                // Make sure the table is created - create a dummy object
                DBView dummy = new DBView();

                // Only get Tagged Views
                String sqlQuery = "select * from " + cTableName + " where " + cTaggedView + " = 1";

                SQLiteResultSet results = DBTVSeries.Execute(sqlQuery);
                if (results.Rows.Count > 0)
                {
                    DBView[] views = new DBView[results.Rows.Count];
                    for (int index = 0; index < results.Rows.Count; index++)
                    {
                        views[index] = new DBView();
                        views[index].Read(ref results, index);
                    }
                    return(views);
                }
            }
            catch (Exception ex) {
                MPTVSeriesLog.Write("Error in retrieving Tagged Views (" + ex.Message + ").");
            }
            return(new DBView[0]);
        }
Exemple #3
0
        public static List <logicalView> getAll(bool includeDisabled)
        {
            List <logicalView> views = new List <logicalView>();

            foreach (DBView view in DBView.getAll(includeDisabled))
            {
                views.Add(new logicalView(view));
            }
            return(views);
        }
Exemple #4
0
        /// <summary>
        /// Get a list of views in users database that skin can present for menu
        /// Returns a list of keyvaluepairs, where
        /// Key: is the view name used in the buttons hyperlinkparameter property
        /// Val: can be used as a default display name for the menu item
        /// </summary>
        public static List <KeyValuePair <string, string> > GetSkinViews()
        {
            List <KeyValuePair <string, string> > viewList = new List <KeyValuePair <string, string> >();

            foreach (DBView view in DBView.getAll(false))
            {
                string viewName        = view[DBView.cTransToken];
                string viewDisplayName = string.IsNullOrEmpty(Translation.GetByName(viewName)) ? viewName : Translation.GetByName(viewName);
                KeyValuePair <string, string> skinview = new KeyValuePair <string, string>(viewName, viewDisplayName);
                viewList.Add(skinview);
            }
            return(viewList);
        }
Exemple #5
0
        public static void AddView(int index, string name, string prettyname, string config, bool tagview)
        {
            DBView view = new DBView();

            view[cIndex]           = index;
            view[cEnabled]         = "1";
            view[cSort]            = index + 1;
            view[cTransToken]      = name;
            view[cPrettyName]      = prettyname;
            view[cViewConfig]      = config;
            view[cTaggedView]      = tagview;
            view[cParentalControl] = "0";
            view.Commit();
            return;
        }
Exemple #6
0
        public logicalView(DBView fromDB)
        {
            string[] steps             = System.Text.RegularExpressions.Regex.Split(fromDB[DBView.cViewConfig], logicalViewStep.s_stepSeperator);
            bool     hasSeriesBeforeIt = false;

            this.m_name          = fromDB[DBView.cTransToken];
            this.m_prettyName    = fromDB[DBView.cPrettyName].ToString().Length == 0 ? Translation.GetByName(this.m_name) : (String)fromDB[DBView.cPrettyName];
            this.m_uniqueID      = fromDB[DBView.cIndex];
            this.m_Enabled       = fromDB[DBView.cEnabled];
            this.IsTaggedView    = fromDB[DBView.cTaggedView];
            this.ParentalControl = fromDB[DBView.cParentalControl];

            if (Settings.isConfig)
            {
                m_toUpdateForConfig = fromDB;
            }

            //steps[0] = steps[0].Split(new string[] { "<name>" }, StringSplitOptions.RemoveEmptyEntries)[1];
            for (int i = 0; i < steps.Length; i++)
            {
                this.m_steps.Add(logicalViewStep.parseFromDB(steps[i], hasSeriesBeforeIt));
                //if (this.steps[i].Type == logicalViewStep.type.group) isGroupType = true;
                // inherit the conditions, so each step will always have all the conditions from steps before it!
                if (i > 0)
                {
                    foreach (string condsToInh in this.m_steps[i - 1].conditionsToInherit)
                    {
                        // Don't inherit series conditions in season/episode view
                        // 50 Times slower getting episode list if you do!!
                        // There is no need to inherit at the Episode step if Series step exists
                        if (!(condsToInh.Contains("<Series") && hasSeriesBeforeIt))
                        {
                            this.m_steps[i].addInheritedConditions(condsToInh);
                        }
                    }
                }

                // so lists can query if they'll have to append the seriesname in episode view (when no series was selected, eg. Flat View
                if (this.m_steps[i].Type == logicalViewStep.type.series)
                {
                    hasSeriesBeforeIt = true;
                }
            }
        }
Exemple #7
0
        public logicalView(DBView fromDB)
        {
            string[] steps = System.Text.RegularExpressions.Regex.Split(fromDB[DBView.cViewConfig], logicalViewStep.s_stepSeperator);
            bool hasSeriesBeforeIt = false;

            this.m_name = fromDB[DBView.cTransToken];
            this.m_prettyName = fromDB[DBView.cPrettyName].ToString().Length == 0 ? Translation.GetByName(this.m_name) : (String)fromDB[DBView.cPrettyName];
            this.m_uniqueID = fromDB[DBView.cIndex];
            this.m_Enabled = fromDB[DBView.cEnabled];
            this.IsTaggedView = fromDB[DBView.cTaggedView];
            this.ParentalControl = fromDB[DBView.cParentalControl];

            if (Settings.isConfig) m_toUpdateForConfig = fromDB;

            //steps[0] = steps[0].Split(new string[] { "<name>" }, StringSplitOptions.RemoveEmptyEntries)[1];
            for (int i = 0; i < steps.Length; i++)
            {
                this.m_steps.Add(logicalViewStep.parseFromDB(steps[i], hasSeriesBeforeIt));
                //if (this.steps[i].Type == logicalViewStep.type.group) isGroupType = true;
                // inherit the conditions, so each step will always have all the conditions from steps before it!
                if (i > 0)
                {
                    foreach (string condsToInh in this.m_steps[i - 1].conditionsToInherit)
                    {
                        // Don't inherit series conditions in season/episode view
                        // 50 Times slower getting episode list if you do!!
                        // There is no need to inherit at the Episode step if Series step exists
                        if (!(condsToInh.Contains("<Series") && hasSeriesBeforeIt)) {
                            this.m_steps[i].addInheritedConditions(condsToInh);
                        }
                    }
                }

                // so lists can query if they'll have to append the seriesname in episode view (when no series was selected, eg. Flat View
                if (this.m_steps[i].Type == logicalViewStep.type.series)
                    hasSeriesBeforeIt = true;
            }
        }
        private void btnRemoveView_Click(object sender, EventArgs e) {
            if (availViews.Count == 0)
                return;
            
            // Get Selected View from list
            selectedView = Helper.getElementFromList<logicalView, string>((string)_availViews.SelectedItem, "Name", 0, availViews);
            
            // Confirm Delete
            string message = string.Format("Are you sure you want to delete view \"{0}\"?",selectedView.prettyName);
            DialogResult result = MessageBox.Show(message, "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

			if (result == DialogResult.No)
				return;

            // if view is a tagged view, remove series attached to view
            if (selectedView.IsTaggedView)
            {
                // Get list of series in view
                SQLCondition conditions = new SQLCondition();
                conditions.Add(new DBOnlineSeries(), DBOnlineSeries.cViewTags, selectedView.Name, SQLConditionType.Like);
                List<DBSeries> series = DBSeries.Get(conditions);

                foreach (DBSeries s in series)
                {
                    s[DBOnlineSeries.cViewTags] = Helper.GetSeriesViewTags(s, false, selectedView.Name);
                    s.Commit();

                    // Remove from online database
                    if (selectedView.Name == DBView.cTranslateTokenOnlineFavourite)
                        Online_Parsing_Classes.OnlineAPI.ConfigureFavourites(false, DBOption.GetOptions(DBOption.cOnlineUserID), s[DBOnlineSeries.cID]);                    
                }
            }

            // Get All current Views
            DBView[] views = DBView.getAll(true);

            // Remove all Rows from Database
            DBView.ClearAll();

            int index = 0;

            // Add Rows back excluding deleted one
            foreach (DBView view in views) {
                if (view[DBView.cIndex] != int.Parse(selectedView.m_uniqueID)) {
                    DBView newView = new DBView();

                    newView[DBView.cIndex] = index;
                    newView[DBView.cEnabled] = view[DBView.cEnabled];
                    newView[DBView.cSort] = view[DBView.cSort];
                    newView[DBView.cTransToken] = view[DBView.cTransToken];
                    newView[DBView.cPrettyName] = view[DBView.cPrettyName];
                    newView[DBView.cViewConfig] = view[DBView.cViewConfig];
                    newView[DBView.cTaggedView] = view[DBView.cTaggedView];
					newView[DBView.cParentalControl] = view[DBView.cParentalControl];
                    newView.Commit();
                    index++;
                }
            }
            
            // Reload List and available Views
            LoadViews();
            
			// Select First Item in list
			if (_availViews.Items.Count > 0)
				_availViews.SelectedIndex = 0;
        }
Exemple #9
0
        public static void fillDefaults()
        {
            DBView dummy = new DBView();

            DBView[] views = DBView.getAll(true);
            if (views == null || views.Length == 0)
            {
                // no views in the db => put the default ones
                DBView view = new DBView();
                view[cIndex]      = "0";
                view[cEnabled]    = "1";
                view[cSort]       = "1";
                view[cTransToken] = cTranslateTokenAll;
                view[cPrettyName] = "";
                view[cViewConfig] = @"series<;><;><;>" +
                                    "<nextStep>season<;><;><Season.seasonIndex>;asc<;>" +
                                    "<nextStep>episode<;><;><Episode.EpisodeIndex>;asc<;>";
                view[cTaggedView]      = "0";
                view[cParentalControl] = "0";
                view.Commit();

                view                   = new DBView();
                view[cIndex]           = "1";
                view[cEnabled]         = "1";
                view[cSort]            = "2";
                view[cTransToken]      = cTranslateTokenFavourite;
                view[cPrettyName]      = "";
                view[cViewConfig]      = GetTaggedViewConfigString(cTranslateTokenFavourite);
                view[cTaggedView]      = "1";
                view[cParentalControl] = "0";
                view.Commit();

                view                   = new DBView();
                view[cIndex]           = "2";
                view[cEnabled]         = "1";
                view[cSort]            = "3";
                view[cTransToken]      = cTranslateTokenOnlineFavourite;
                view[cPrettyName]      = "";
                view[cViewConfig]      = GetTaggedViewConfigString(cTranslateTokenOnlineFavourite);
                view[cTaggedView]      = "1";
                view[cParentalControl] = "0";
                view.Commit();

                view              = new DBView();
                view[cIndex]      = "3";
                view[cEnabled]    = "1";
                view[cSort]       = "4";
                view[cTransToken] = cTranslateTokenUnwatched;
                view[cPrettyName] = "";
                view[cViewConfig] = @"series<;><Episode.Watched>;=;0<;><;>" +
                                    "<nextStep>season<;><;><Season.seasonIndex>;asc<;>" +
                                    "<nextStep>episode<;><;><Episode.EpisodeIndex>;asc<;>";
                view[cTaggedView]      = "0";
                view[cParentalControl] = "0";
                view.Commit();

                view              = new DBView();
                view[cIndex]      = "4";
                view[cEnabled]    = "1";
                view[cSort]       = "5";
                view[cTransToken] = cTranslateTokenChannels;
                view[cPrettyName] = "";
                view[cViewConfig] = @"group:<Series.Network><;><;><;>" +
                                    "<nextStep>series<;><;><;>" +
                                    "<nextStep>season<;><;><Season.seasonIndex>;asc<;>" +
                                    "<nextStep>episode<;><;><Episode.EpisodeIndex>;asc<;>";
                view[cTaggedView]      = "0";
                view[cParentalControl] = "0";
                view.Commit();

                view              = new DBView();
                view[cIndex]      = "5";
                view[cEnabled]    = "1";
                view[cSort]       = "6";
                view[cTransToken] = cTranslateTokenGenres;
                view[cPrettyName] = "";
                view[cViewConfig] = @"group:<Series.Genre><;><;><;>" +
                                    "<nextStep>series<;><;><;>" +
                                    "<nextStep>season<;><;><Season.seasonIndex>;asc<;>" +
                                    "<nextStep>episode<;><;><Episode.EpisodeIndex>;asc<;>";
                view[cTaggedView]      = "0";
                view[cParentalControl] = "0";
                view.Commit();

                view              = new DBView();
                view[cIndex]      = "6";
                view[cEnabled]    = "1";
                view[cSort]       = "7";
                view[cTransToken] = cTranslateTokenContentRating;
                view[cPrettyName] = "";
                view[cViewConfig] = @"group:<Series.ContentRating><;><;><;>" +
                                    "<nextStep>series<;><;><;>" +
                                    "<nextStep>season<;><;><Season.seasonIndex>;asc<;>" +
                                    "<nextStep>episode<;><;><Episode.EpisodeIndex>;asc<;>";
                view[cTaggedView]      = "0";
                view[cParentalControl] = "0";
                view.Commit();

                view              = new DBView();
                view[cIndex]      = "7";
                view[cEnabled]    = "1";
                view[cSort]       = "8";
                view[cTransToken] = cTranslateTokenViewTags;
                view[cPrettyName] = "";
                view[cViewConfig] = @"group:<Series.ViewTags><;><;><;>" +
                                    "<nextStep>series<;><;><;>" +
                                    "<nextStep>season<;><;><Season.seasonIndex>;asc<;>" +
                                    "<nextStep>episode<;><;><Episode.EpisodeIndex>;asc<;>";
                view[cTaggedView]      = "0";
                view[cParentalControl] = "0";
                view.Commit();

                view                   = new DBView();
                view[cIndex]           = "8";
                view[cEnabled]         = "1";
                view[cSort]            = "9";
                view[cTransToken]      = cTranslateTokenLatest;
                view[cPrettyName]      = "";
                view[cViewConfig]      = @"episode<;><Episode.FirstAired>;<=;<today><cond><Episode.FirstAired>;>=;<today-30><;><Episode.FirstAired>;desc<;>";
                view[cTaggedView]      = "0";
                view[cParentalControl] = "0";
                view.Commit();

                view                   = new DBView();
                view[cIndex]           = "9";
                view[cEnabled]         = "1";
                view[cSort]            = "10";
                view[cTransToken]      = cTranslateTokenRecentlyAdded;
                view[cPrettyName]      = "";
                view[cViewConfig]      = @"episode<;><Episode.FileDateCreated>;>=;<today-7><;><Episode.FileDateCreated>;desc<;>";
                view[cTaggedView]      = "0";
                view[cParentalControl] = "0";
                view.Commit();
            }

            int nCurrentDBVersion = cDBVersion;
            int nUpgradeDBVersion = DBOption.GetOptions(DBOption.cDBViewsVersion);

            while (nUpgradeDBVersion != nCurrentDBVersion)
            {
                // WARNING: as of version 4, we can now remove and add views.
                // Be particularly carefull if adding/Removing/Updating

                // take care of the upgrade in the table
                switch (nUpgradeDBVersion)
                {
                case 1:
                    //Upgrade to version 2; 'Latest' view doesn't show anything from the future, and shows only from the last 30 days
                    DBView view = new DBView(5);
                    view[cViewConfig] = @"episode<;><Episode.FirstAired>;<=;<today><cond><Episode.FirstAired>;>=;<today-30><;><Episode.FirstAired>;desc<;>";
                    view.Commit();
                    nUpgradeDBVersion++;
                    break;

                case 2:
                    // Upgrade to version 3, new view 'Recently Added'
                    view              = new DBView();
                    view[cIndex]      = "6";
                    view[cEnabled]    = "1";
                    view[cSort]       = "7";
                    view[cTransToken] = cTranslateTokenRecentlyAdded;
                    view[cPrettyName] = "";
                    view[cViewConfig] = @"episode<;><Episode.FileDateCreated>;>=;<today-7><;><Episode.FileDateCreated>;desc<;>";
                    view.Commit();
                    nUpgradeDBVersion++;
                    break;

                case 3:
                    // Upgrade to version 4, new view 'Content Rating'
                    view              = new DBView();
                    view[cIndex]      = "7";
                    view[cEnabled]    = "1";
                    view[cSort]       = "8";
                    view[cTransToken] = cTranslateTokenContentRating;
                    view[cPrettyName] = "";
                    view[cViewConfig] = @"group:<Series.ContentRating><;><;><;>" +
                                        "<nextStep>series<;><;><;>" +
                                        "<nextStep>season<;><;><Season.seasonIndex>;asc<;>" +
                                        "<nextStep>episode<;><;><Episode.EpisodeIndex>;asc<;>";
                    view[cParentalControl] = "0";
                    view.Commit();

                    // New view 'View Tags'
                    view              = new DBView();
                    view[cIndex]      = "8";
                    view[cEnabled]    = "1";
                    view[cSort]       = "9";
                    view[cTransToken] = cTranslateTokenViewTags;
                    view[cPrettyName] = "";
                    view[cViewConfig] = @"group:<Series.ViewTags><;><;><;>" +
                                        "<nextStep>series<;><;><;>" +
                                        "<nextStep>season<;><;><Season.seasonIndex>;asc<;>" +
                                        "<nextStep>episode<;><;><Episode.EpisodeIndex>;asc<;>";
                    view[cParentalControl] = "0";
                    view.Commit();
                    nUpgradeDBVersion++;
                    break;

                case 4:
                    // Get All current Views
                    DBView[] viewList = DBView.getAll(true);

                    // Update old Favourite View to Tagged View
                    foreach (DBView v in viewList)
                    {
                        if (v[DBView.cTransToken] == cTranslateTokenFavourite)
                        {
                            v[cTaggedView] = "1";
                            v[cTransToken] = cTranslateTokenFavourite;
                            v[cPrettyName] = "";
                            v[cViewConfig] = GetTaggedViewConfigString(cTranslateTokenFavourite);
                            v.Commit();
                        }
                    }

                    // Add Online Favourites as Taqged View
                    view                   = new DBView();
                    view[cIndex]           = viewList.Length;
                    view[cEnabled]         = "1";
                    view[cSort]            = viewList.Length + 1;
                    view[cTransToken]      = cTranslateTokenOnlineFavourite;
                    view[cPrettyName]      = "";
                    view[cViewConfig]      = GetTaggedViewConfigString(cTranslateTokenOnlineFavourite);
                    view[cParentalControl] = "0";
                    view[cTaggedView]      = "1";
                    view.Commit();

                    nUpgradeDBVersion++;
                    break;

                default:
                    nUpgradeDBVersion = nCurrentDBVersion;
                    break;
                }
            }
            DBOption.SetOptions(DBOption.cDBViewsVersion, nCurrentDBVersion);
        }
Exemple #10
0
        public static void fillDefaults()
        {
            DBView dummy = new DBView();

            DBView[] views = DBView.getAll(true);
            if (views == null || views.Length == 0)
            {
                // no views in the db => put the default ones
                DBView view = new DBView();
                view[cIndex] = "0";
                view[cEnabled] = "1";
                view[cSort] = "1";
                view[cTransToken] = cTranslateTokenAll;
                view[cPrettyName] = "";
                view[cViewConfig] = @"series<;><;><;>" +
                                    "<nextStep>season<;><;><Season.seasonIndex>;asc<;>" +
                                    "<nextStep>episode<;><;><Episode.EpisodeIndex>;asc<;>";
                view[cTaggedView] = "0";
                view[cParentalControl] = "0";
                view.Commit();

                view = new DBView();
                view[cIndex] = "1";
                view[cEnabled] = "1";
                view[cSort] = "2";
                view[cTransToken] = cTranslateTokenFavourite;
                view[cPrettyName] = "";
                view[cViewConfig] = GetTaggedViewConfigString(cTranslateTokenFavourite);
                view[cTaggedView] = "1";
                view[cParentalControl] = "0";
                view.Commit();

                view = new DBView();
                view[cIndex] = "2";
                view[cEnabled] = "1";
                view[cSort] = "3";
                view[cTransToken] = cTranslateTokenOnlineFavourite;
                view[cPrettyName] = "";
                view[cViewConfig] = GetTaggedViewConfigString(cTranslateTokenOnlineFavourite);
                view[cTaggedView] = "1";
                view[cParentalControl] = "0";
                view.Commit();

                view = new DBView();
                view[cIndex] = "3";
                view[cEnabled] = "1";
                view[cSort] = "4";
                view[cTransToken] = cTranslateTokenUnwatched;
                view[cPrettyName] = "";
                view[cViewConfig] = @"series<;><Episode.Watched>;=;0<;><;>" +
                                    "<nextStep>season<;><;><Season.seasonIndex>;asc<;>" +
                                    "<nextStep>episode<;><;><Episode.EpisodeIndex>;asc<;>";
                view[cTaggedView] = "0";
                view[cParentalControl] = "0";
                view.Commit();

                view = new DBView();
                view[cIndex] = "4";
                view[cEnabled] = "1";
                view[cSort] = "5";
                view[cTransToken] = cTranslateTokenChannels;
                view[cPrettyName] = "";
                view[cViewConfig] = @"group:<Series.Network><;><;><;>" +
                                    "<nextStep>series<;><;><;>" +
                                    "<nextStep>season<;><;><Season.seasonIndex>;asc<;>" +
                                    "<nextStep>episode<;><;><Episode.EpisodeIndex>;asc<;>";
                view[cTaggedView] = "0";
                view[cParentalControl] = "0";
                view.Commit();

                view = new DBView();
                view[cIndex] = "5";
                view[cEnabled] = "1";
                view[cSort] = "6";
                view[cTransToken] = cTranslateTokenGenres;
                view[cPrettyName] = "";
                view[cViewConfig] = @"group:<Series.Genre><;><;><;>" +
                                    "<nextStep>series<;><;><;>" +
                                    "<nextStep>season<;><;><Season.seasonIndex>;asc<;>" +
                                    "<nextStep>episode<;><;><Episode.EpisodeIndex>;asc<;>";
                view[cTaggedView] = "0";
                view[cParentalControl] = "0";
                view.Commit();

				view = new DBView();
				view[cIndex] = "6";
				view[cEnabled] = "1";
				view[cSort] = "7";
				view[cTransToken] = cTranslateTokenContentRating;
				view[cPrettyName] = "";
				view[cViewConfig] = @"group:<Series.ContentRating><;><;><;>" +
									"<nextStep>series<;><;><;>" +
									"<nextStep>season<;><;><Season.seasonIndex>;asc<;>" +
									"<nextStep>episode<;><;><Episode.EpisodeIndex>;asc<;>";
				view[cTaggedView] = "0";
                view[cParentalControl] = "0";
				view.Commit();

				view = new DBView();
				view[cIndex] = "7";
				view[cEnabled] = "1";
				view[cSort] = "8";
				view[cTransToken] = cTranslateTokenViewTags;
				view[cPrettyName] = "";
				view[cViewConfig] = @"group:<Series.ViewTags><;><;><;>" +
									"<nextStep>series<;><;><;>" +
									"<nextStep>season<;><;><Season.seasonIndex>;asc<;>" +
									"<nextStep>episode<;><;><Episode.EpisodeIndex>;asc<;>";
				view[cTaggedView] = "0";
                view[cParentalControl] = "0";
				view.Commit();

                view = new DBView();
                view[cIndex] = "8";
                view[cEnabled] = "1";
                view[cSort] = "9";
                view[cTransToken] = cTranslateTokenLatest;
                view[cPrettyName] = "";
                view[cViewConfig] = @"episode<;><Episode.FirstAired>;<=;<today><cond><Episode.FirstAired>;>=;<today-30><;><Episode.FirstAired>;desc<;>";
                view[cTaggedView] = "0";
                view[cParentalControl] = "0";
                view.Commit();

                view = new DBView();
                view[cIndex] = "9";
                view[cEnabled] = "1";
                view[cSort] = "10";
                view[cTransToken] = cTranslateTokenRecentlyAdded;
                view[cPrettyName] = "";
                view[cViewConfig] = @"episode<;><Episode.FileDateCreated>;>=;<today-7><;><Episode.FileDateCreated>;desc<;>";
                view[cTaggedView] = "0";
                view[cParentalControl] = "0";
                view.Commit();
            }

            int nCurrentDBVersion = cDBVersion;
            int nUpgradeDBVersion = DBOption.GetOptions(DBOption.cDBViewsVersion);

            while (nUpgradeDBVersion != nCurrentDBVersion)
            {
                // WARNING: as of version 4, we can now remove and add views. 
                // Be particularly carefull if adding/Removing/Updating

                // take care of the upgrade in the table
                switch (nUpgradeDBVersion)
                {
                    case 1:
                        //Upgrade to version 2; 'Latest' view doesn't show anything from the future, and shows only from the last 30 days
                        DBView view = new DBView(5);
                        view[cViewConfig] = @"episode<;><Episode.FirstAired>;<=;<today><cond><Episode.FirstAired>;>=;<today-30><;><Episode.FirstAired>;desc<;>";
                        view.Commit();
                        nUpgradeDBVersion++;
                        break;

                    case 2:
                        // Upgrade to version 3, new view 'Recently Added'
                        view = new DBView();
                        view[cIndex] = "6";
                        view[cEnabled] = "1";
                        view[cSort] = "7";
                        view[cTransToken] = cTranslateTokenRecentlyAdded;
                        view[cPrettyName] = "";
                        view[cViewConfig] = @"episode<;><Episode.FileDateCreated>;>=;<today-7><;><Episode.FileDateCreated>;desc<;>";
                        view.Commit();
                        nUpgradeDBVersion++;
                        break;

					case 3:
						// Upgrade to version 4, new view 'Content Rating'
						view = new DBView();
						view[cIndex] = "7";
						view[cEnabled] = "1";
						view[cSort] = "8";
						view[cTransToken] = cTranslateTokenContentRating;
						view[cPrettyName] = "";
						view[cViewConfig] = @"group:<Series.ContentRating><;><;><;>" +
											"<nextStep>series<;><;><;>" +
											"<nextStep>season<;><;><Season.seasonIndex>;asc<;>" +
											"<nextStep>episode<;><;><Episode.EpisodeIndex>;asc<;>";
                        view[cParentalControl] = "0";
						view.Commit();
						
						// New view 'View Tags'
						view = new DBView();
						view[cIndex] = "8";
						view[cEnabled] = "1";
						view[cSort] = "9";
						view[cTransToken] = cTranslateTokenViewTags;
						view[cPrettyName] = "";
						view[cViewConfig] = @"group:<Series.ViewTags><;><;><;>" +
											"<nextStep>series<;><;><;>" +
											"<nextStep>season<;><;><Season.seasonIndex>;asc<;>" +
											"<nextStep>episode<;><;><Episode.EpisodeIndex>;asc<;>";
                        view[cParentalControl] = "0";
						view.Commit();
						nUpgradeDBVersion++;
						break;
                    
                    case 4:
                        // Get All current Views
                        DBView[] viewList = DBView.getAll(true);

                        // Update old Favourite View to Tagged View
                        foreach (DBView v in viewList) {
                            if (v[DBView.cTransToken] == cTranslateTokenFavourite) {
                                v[cTaggedView] = "1";
                                v[cTransToken] = cTranslateTokenFavourite;
                                v[cPrettyName] = "";
                                v[cViewConfig] = GetTaggedViewConfigString(cTranslateTokenFavourite);
                                v.Commit();
                            }
                        }
                        
                        // Add Online Favourites as Taqged View
                        view = new DBView();
                        view[cIndex] = viewList.Length;
                        view[cEnabled] = "1";
                        view[cSort] = viewList.Length + 1;
                        view[cTransToken] = cTranslateTokenOnlineFavourite;
                        view[cPrettyName] = "";
                        view[cViewConfig] = GetTaggedViewConfigString(cTranslateTokenOnlineFavourite);
                        view[cParentalControl] = "0";
                        view[cTaggedView] = "1";
                        view.Commit();                        

                        nUpgradeDBVersion++;
                        break;

                    default:
                        nUpgradeDBVersion = nCurrentDBVersion;
                        break;
                }
            }
            DBOption.SetOptions(DBOption.cDBViewsVersion, nCurrentDBVersion);
        }
Exemple #11
0
 public static void AddView(int index, string name, string prettyname, string config, bool tagview) {
     DBView view = new DBView();
     view[cIndex] = index;
     view[cEnabled] = "1";
     view[cSort] = index + 1;
     view[cTransToken] = name;
     view[cPrettyName] = prettyname;
     view[cViewConfig] = config;
     view[cTaggedView] = tagview;
     view[cParentalControl] = "0";
     view.Commit();
     return;
 }
Exemple #12
0
        public static DBView[] getTaggedViews() {
            try {
                // Make sure the table is created - create a dummy object
                DBView dummy = new DBView();

                // Only get Tagged Views                
                String sqlQuery = "select * from " + cTableName + " where " + cTaggedView + " = 1";

                SQLiteResultSet results = DBTVSeries.Execute(sqlQuery);
                if (results.Rows.Count > 0) {
                    DBView[] views = new DBView[results.Rows.Count];
                    for (int index = 0; index < results.Rows.Count; index++) {
                        views[index] = new DBView();
                        views[index].Read(ref results, index);
                    }
                    return views;
                }
            }
            catch (Exception ex) {
                MPTVSeriesLog.Write("Error in retrieving Tagged Views (" + ex.Message + ").");
            }
            return new DBView[0];
        }
Exemple #13
0
        public static DBView[] getAll(bool includeDisabled)
        {
            try
            {
                // make sure the table is created - create a dummy object
                DBView dummy = new DBView();

                // retrieve all fields in the table
                String sqlQuery = "select * from " + cTableName +
                    (includeDisabled ? string.Empty : " where " + cEnabled + " = 1")
                     + " order by " + cSort;
                SQLiteResultSet results = DBTVSeries.Execute(sqlQuery);
                if (results.Rows.Count > 0)
                {
                    DBView[] views = new DBView[results.Rows.Count];
                    for (int index = 0; index < results.Rows.Count; index++)
                    {
                        views[index] = new DBView();
                        views[index].Read(ref results, index);
                    }
                    return views;
                }
            }
            catch (Exception ex)
            {
                MPTVSeriesLog.Write("Error in DBView.Get (" + ex.Message + ").");
            }
            return new DBView[0];
        }