示例#1
0
        public int GetTotalScore(MovieRelease movieRelease)
        {
            int scoreint = 0;

            foreach (Score score in movieRelease.Scorelist)
            {
                scoreint += score.Scoreint;
            }

            return(scoreint);
        }
示例#2
0
        public void release2db(MovieRelease release)
        {
            SQLiteConnection m_dbConnection = new SQLiteConnection("Data Source=" + this.location + ";Version=3;");

            m_dbConnection.Open();

            string insertsql = "insert into MovieRelease ";
            string coloumn   = "(NzbLink,Releasename,Category,Description, DetailLink, Score, Imdb, Imdbtitle,Guid) ";
            string values    = "VALUES (\"" + release.NzbLink + "\",\"" + release.ReleaseName + "\",\"" + release.Category + "\",\"" + release.Description + "\",\"" + release.DetailLink + "\"," + release.Score + "," + release.Imdb + ",\"" + release.Imdbtitle + "\",\"" + release.Guid + "\"); ";

            insertsql += coloumn + values;

            SQLiteCommand command = new SQLiteCommand(insertsql, m_dbConnection);

            try { SQLiteDataReader reader = command.ExecuteReader(); }
            catch (Exception e) { Console.WriteLine(e.Message); }



            m_dbConnection.Close();
        }
示例#3
0
        //STATIC METHOD TO SAVE APICALLS
        public List <MovieRelease> searchNewzStatic(string imdbid)
        {
            //REMOVE THE "t" FROM THE IMDB-ID
            imdbid = imdbid.TrimStart('t');

            //TODO: BASEURL SHOULD BE IN CONFIG
            //TODO: BASEURL IS WRONG ATM
            string baseurl = "http://www.newz-complex.org/www/api?imdbid=";

            //SETTING URL TOGETHER
            //TODO APIKEY SHOULD BE IN CONFIG
            string url = baseurl + imdbid + "&apikey=xxxe&t=movie&extended=1";

            //CREATE OWN MOVIERELEASES-LIST
            List <MovieRelease> movieReleases = new List <MovieRelease>();

            //LOAD LOCAL STATIC API.XML
            //TODO: HERE I SHOULD LOAD THE XML FROM THE ACTUAL API
            var xml = XDocument.Load("api.xml");

            //THE NAMESPACE CONTAINS THE SCHEME OF THE XML WHICH HELPS TO SERIALZE IT TO AN MOVIERELEASE-OBJECT
            XNamespace ns = "http://www.newznab.com/DTD/2010/feeds/attributes/";

            //FOR EVERY ITEM IN THE XML CREATE A MOVIERELEASE-OBJECT
            foreach (var item in xml.Descendants("item"))
            {
                //ADDING ALL REAGULAR TAGS TO THE MOVIERELEASE-OBJECT
                MovieRelease movieRelease = new MovieRelease();
                movieRelease.ReleaseName = item.Element("title").Value;
                movieRelease.DetailLink  = item.Element("guid").Value;
                movieRelease.NzbLink     = item.Element("link").Value;
                movieRelease.Category    = item.Element("category").Value;
                movieRelease.Description = item.Element("description").Value;



                //FOR THE TAG "ATTRIBUTES" WE NEEDED SOMESPECIAL TREATS
                foreach (var attribute in item.Elements(ns + "attr"))
                {
                    ReleaseAttribute releaseAttribute = new ReleaseAttribute(
                        attribute.Attribute("name").Value,
                        attribute.Attribute("value").Value);
                    movieRelease.Attributes.Add(releaseAttribute);
                }

                foreach (ReleaseAttribute releaseAtttribute in movieRelease.Attributes)
                {
                    if (releaseAtttribute.AttributeName == "imdb")
                    {
                        movieRelease.Imdb = Int32.Parse(releaseAtttribute.AttributeValue);
                    }
                    if (releaseAtttribute.AttributeName == "imdbtitle")
                    {
                        movieRelease.Imdbtitle = releaseAtttribute.AttributeValue;
                    }
                    if (releaseAtttribute.AttributeName == "guid")
                    {
                        movieRelease.Guid = releaseAtttribute.AttributeValue;
                    }
                }


                //FOR SETTING THE SCORE OF A MOVIERELEASE WE NEED A NEW OBJECT (SCORER)
                Scorer scorer = new Scorer();

                //THE LOGIC OF THE CALCULATING IS IN THE SCORER-CLASS
                movieRelease.Scorelist = scorer.CalculateScore(scorer.CreateScroringAttributeCollectors(), movieRelease);
                movieRelease.Score     = scorer.GetTotalScore(movieRelease);

                //ADD MOVIERELEASE-OBJECT TO LIST
                string jsontemp = JsonConvert.SerializeObject(movieRelease);
                movieReleases.Add(movieRelease);
            }

            return(movieReleases);
        }
示例#4
0
        // CALCULATE THE SCORE FOR A MOVIERELEASE WITH SCORINGATTRIBUTES
        public List <Score> CalculateScore(List <ScoringAttributesCollector> scoringAttributesCollectors, MovieRelease movieRelease)
        {
            //INITIAL SCORE IS 0
            List <Score> scorelist = new List <Score>();

            foreach (ScoringAttributesCollector collector in scoringAttributesCollectors)
            {
                Score score = new Score();
                score.Scoringtype = collector.scroringType;
                foreach (ScoringAttribute attribute in collector.scoringAttributes)
                {
                    {
                        //CHECK IF COLLECTOR IS ALREADY SCORED AND IF THE RATINGSTRING IS IN THE RELEASENAME
                        if (collector.scored == false && movieRelease.ReleaseName.Contains(attribute.RatingString))
                        {
                            collector.scored   = true;
                            score.Ratingstring = attribute.RatingString;
                            score.Scoreint     = attribute.RatingScore;
                        }
                    }
                }
                // IF NONE OF THE RATINGSTRINGS IN THE COLLECTOR HAVE MATCHES IN RELEASENAME WE HAVE TO SCORE THE "OTHER_NOTHING"-SCORE
                if (collector.scored == false)
                {
                    collector.scored   = true;
                    score.Ratingstring = "None";
                    score.Scoreint     = collector.other_nothing;
                }
                scorelist.Add(score);
            }

            return(scorelist);
        }