Example #1
0
        public void addPosts()
        {
            int         loaded = 0;
            List <Item> items  = new List <Item>();

            if (postCapasity <= 99)
            {
                WallGet response = WallGet.FromJson(API.getResponse("wall.get", "owner_id=-" + id + ",offset=2" + ",count=" + postCapasity.ToString()));
                foreach (Item item in response.Response.Items)
                {
                    items.Add(item);
                }
            }
            else
            {
                while (postCapasity - loaded > 99)
                {
                    WallGet response1 = WallGet.FromJson(API.getResponse("wall.get", "owner_id=-" + id + ",offset=" + loaded.ToString() + ",count=99"));
                    loaded = loaded + 99;
                    foreach (Item item in response1.Response.Items)
                    {
                        items.Add(item);
                    }
                    if (response1.Response.Items.Length < 99)
                    {
                        goto GA;
                    }
                }
                WallGet response = WallGet.FromJson(API.getResponse("wall.get", "owner_id=-" + id + ",offset=" + loaded.ToString() + ",count=" + (postCapasity - loaded).ToString()));
                foreach (Item item in response.Response.Items)
                {
                    items.Add(item);
                }
            }
GA:
            foreach (Item item in items)
            {
                try
                {
                    Post post = new Post();
                    post.id             = item.Id.ToString();
                    post.item           = item;
                    post.already_posted = false;

                    post.hist = new Queue <HistoryPoint>(historyVolume);
                    HistoryPoint point = new HistoryPoint();
                    point.likes   = Convert.ToInt32(item.Likes.Count);
                    point.reposts = Convert.ToInt32(item.Reposts.Count);
                    point.views   = Convert.ToInt32(item.Views.Count);
                    point.time    = Convert.ToInt32(item.Date);
                    post.hist.Enqueue(point);
                    post         = setFirstPoints(post);
                    post.domain  = domain;
                    post.groupId = id;
                    posts.Enqueue(post);
                }
                catch { }
            }
        }
Example #2
0
        public bool check_for_repeat(Post post)
        {
            if (post.item.PostType.ToString() == "Photo")
            {
                string url = post.item.getImageUrl();
                pictureBox1.Load(url);

                using (WebClient client = new WebClient())
                {
                    client.DownloadFile(url, "temp1.jpg");
                }
                Image img1 = Image.FromFile("temp1.jpg");
                try
                {
                    WallGet response = WallGet.FromJson(API.getResponse("wall.get", "owner_id=-165233859" + ",count=20"));
                    foreach (Item item in response.Response.Items)
                    {
                        if (post.item.PostType == item.PostType)
                        {
                            url = item.getImageUrl();
                            using (WebClient client = new WebClient())
                            {
                                client.DownloadFile(url, "temp2.jpg");
                            }
                            Image img2 = Image.FromFile("temp2.jpg");

                            var points = new Color[3, 3];

                            int    count = 0;
                            Bitmap BM1   = new Bitmap(img1);
                            Bitmap BM2   = new Bitmap(img2);

                            int incI = 0;
                            int incJ = 0;
                            for (int i = BM1.Width / 6; i < BM1.Width; i = i + BM1.Width / 3)
                            {
                                incJ = 0;
                                for (int j = BM1.Height / 6; j < BM1.Height; j = j + BM1.Height / 3)
                                {
                                    if (BM1.GetPixel(i, j) == BM2.GetPixel(i, j))
                                    {
                                        count++;
                                    }
                                    incJ++;
                                }
                                incI++;
                            }
                            if (count > 8)
                            {
                                return(true);
                            }
                        }
                    }
                }
                catch { }
            }
            return(false);
        }
Example #3
0
        public string getGroupIdByDomain(string domain)
        {
            WallGet WallGet;

            if (domain.Contains("public"))
            {
                WallGet = WallGet.FromJson(getResponse("wall.get", "owner_id=-" + domain.Replace("public", "") + ",count=2"));
            }
            else
            {
                WallGet = WallGet.FromJson(getResponse("wall.get", "domain=" + domain + ",count=2"));
            }
            return(WallGet.Response.Items[0].FromId.ToString().Remove(0, 1));
        }
Example #4
0
        public void updatePosts()
        {
            try
            {
                WallGet response = WallGet.FromJson(API.getResponse("wall.get", "owner_id=-" + id + ",count=" + postCapasity.ToString()));
                foreach (Item item in response.Response.Items)
                {
                    for (int i = 0; i < posts.Count; i++)
                    {
                        if (posts.ElementAt(i).id == item.Id.ToString())
                        {
                            HistoryPoint point = new HistoryPoint();
                            point.likes   = Convert.ToInt32(item.Likes.Count);
                            point.reposts = Convert.ToInt32(item.Reposts.Count);
                            if (item.Views == null)
                            {
                                point.views = 0;
                            }
                            else
                            {
                                point.views = Convert.ToInt32(item.Views.Count);
                            }
                            point.time = Convert.ToInt32(item.Date);
                            posts.ElementAt(i).hist.Enqueue(point);
                            setFirstPoints(posts.ElementAt(i));
                            if (posts.ElementAt(i).hist.Count > historyVolume)
                            {
                                posts.ElementAt(i).hist.Dequeue();
                            }
                        }
                    }
                }
                foreach (Item item in response.Response.Items)
                {
                    bool is_new = true;
                    for (int i = 0; i < posts.Count; i++)
                    {
                        if (posts.ElementAt(i).id == item.Id.ToString())
                        {
                            is_new = false;
                        }
                    }
                    if (is_new)
                    {
                        new_post = true;
                        Post post = new Post();
                        post.id             = item.Id.ToString();
                        post.item           = item;
                        post.already_posted = false;

                        HistoryPoint point = new HistoryPoint();
                        point.likes   = Convert.ToInt32(item.Likes.Count);
                        point.reposts = Convert.ToInt32(item.Reposts.Count);

                        if (item.Views == null)
                        {
                            point.views = 0;
                        }
                        else
                        {
                            point.views = Convert.ToInt32(item.Views.Count);
                        }
                        point.time = Convert.ToInt32(item.Date);
                        post.hist  = new Queue <HistoryPoint>(historyVolume);
                        post.hist.Enqueue(point);
                        post         = setFirstPoints(post);
                        post.domain  = domain;
                        post.groupId = id;
                        posts.Enqueue(post);
                        posts.Dequeue();
                    }
                }
            }
            catch { }
        }
Example #5
0
        /* void updateGraphs(Post post)
         * {
         *   var points = post.hist;
         *
         *   GraphPane likesPane = graf.GraphPane;
         *   GraphPane repostsPane = zedGraphControl1.GraphPane;
         *   GraphPane viewsPane = zedGraphControl2.GraphPane;
         *   PointPairList likesList = new PointPairList();
         *   PointPairList repostsList = new PointPairList();
         *   PointPairList viewsList = new PointPairList();
         *   likesPane.CurveList.Clear();
         *   repostsPane.CurveList.Clear();
         *   viewsPane.CurveList.Clear();
         *   int inc = 0;
         *   for (int i = 0; i < points.Count; i++)
         *   {
         *       likesList.Add(inc, points.ElementAt(i).likes);
         *       repostsList.Add(inc, points.ElementAt(i).reposts);
         *       viewsList.Add(inc, points.ElementAt(i).views);
         *       inc++;
         *   }
         *
         *   LineItem myCurve = likesPane.AddCurve("likes", likesList, Color.Green, SymbolType.None);
         *   LineItem myCurve1 = repostsPane.AddCurve("reposts", repostsList, Color.Red, SymbolType.None);
         *   LineItem myCurve2 = viewsPane.AddCurve("views", viewsList, Color.Blue, SymbolType.None);
         *   graf.AxisChange();
         *   graf.Invalidate();
         *   zedGraphControl1.AxisChange();
         *   zedGraphControl1.Invalidate();
         *   zedGraphControl2.AxisChange();
         *   zedGraphControl2.Invalidate();
         * }     */
        private void set_Wl(object sender, EventArgs e)
        {
            delegatelog("SET Wl...", Color.Cyan);
            WallGet response = WallGet.FromJson(API.getResponse("wall.get", "owner_id=-165233859" + ",count=10"));
            int     max      = 0;
            int     min      = 999999;
            var     now      = new DateTimeOffset(DateTime.Now);

            foreach (Item item in response.Response.Items)
            {
                if (now.ToUnixTimeSeconds() - item.Date < 60 * 60 * 24 * 7)
                {
                    if (item.Likes.Count < min)
                    {
                        min = Convert.ToInt32(item.Likes.Count);
                    }
                    if (item.Likes.Count > max)
                    {
                        max = Convert.ToInt32(item.Likes.Count);
                    }
                }
            }
            foreach (Item item in response.Response.Items)
            {
                if (now.ToUnixTimeSeconds() - item.Date < 60 * 60 * 24)
                {
                    foreach (string line in API.alredyPosted)
                    {
                        if (line.Split('=')[1] == item.Id.ToString())
                        {
                            for (int i = 0; i < groupList.Count; i++)
                            {
                                if (line.Split('=')[0].Split('_')[0] == groupList[i].id)
                                {
                                    double old = groupList[i].Wl;
                                    double G;
                                    if (min == max && max == 0)
                                    {
                                        G = 0.25;
                                    }
                                    else if (min == max && max != 0)
                                    {
                                        G = 0.5;
                                    }
                                    else
                                    {
                                        G = (Convert.ToDouble(item.Likes.Count) - Convert.ToDouble(min)) / (Convert.ToDouble(max) - Convert.ToDouble(min));
                                    }

                                    if (G > 0.5)
                                    {
                                        G = G + (G - 0.5) / 2;
                                    }

                                    if (groupList[i].Wl <= 1)
                                    {
                                        if (!(groupList[i].Wl + (G - 0.5) / Kgi < 0.5))
                                        {
                                            double mew = groupList[i].Wl + (G - 0.5) / Kgi;
                                            groupList[i].Wl = groupList[i].Wl + (G - 0.5) / Kgi;
                                        }
                                    }
                                    else
                                    {
                                        if (!(groupList[i].Wl + (G - 0.5) * 2 / Kgi > 2))
                                        {
                                            double mew = groupList[i].Wl + (G - 0.5) * 2 / Kgi;
                                            groupList[i].Wl = groupList[i].Wl + (G - 0.5) * 2 / Kgi;
                                        }
                                    }
                                    if (item.Likes.Count > 0)
                                    {
                                        old = groupList[i].Wl;
                                    }
                                    else
                                    {
                                        old = groupList[i].Wl;
                                    }
                                }
                            }
                        }
                    }
                }
            }
            //write Wl changing

            /*  string s = "";
             * if (File.ReadAllLines("Gl.txt").Length == 0)
             * {
             *    s = "";
             *    for (int i = 0; i < groupList.Count; i++)
             *    { s = s + groupList[i].domain + ';'; }
             *    File.WriteAllText("Gl.txt", s + '\r' + '\n');
             * }
             * s = "";
             * for (int i = 0; i < groupList.Count; i++)
             * {
             *    s = s + groupList[i].Wl + ';';
             * }
             * File.AppendAllText("Gl.txt", s + '\r' + '\n');
             * delegatelog("Success", Color.Cyan);   */
            string[] s    = new string[groupList.Count];
            var      file = File.ReadAllLines(pathPrefics + "Gl.txt");

            if (file.Length == 0)
            {
                for (int i = 0; i < groupList.Count; i++)
                {
                    s[i] = groupList[i].domain + ';';
                }
                File.WriteAllLines(pathPrefics + "Gl.txt", s);

                for (int i = 0; i < groupList.Count; i++)
                {
                    s[i] = s[i] + groupList[i].Wl + ';';
                }
                File.WriteAllLines(pathPrefics + "Gl.txt", s);
            }
            else
            {
                for (int j = 0; j < file.Length; j++)
                {
                    for (int i = 0; i < groupList.Count; i++)
                    {
                        if (file[j].Split(';')[0] == groupList[i].domain)
                        {
                            file[j] = file[j] + groupList[i].Wl + ';';
                            break;
                        }
                    }
                }
                File.WriteAllLines(pathPrefics + "Gl.txt", file);
            }



            delegatelog("Success", Color.Cyan);
        }