Exemplo n.º 1
0
        static void crawler3()
        {
            while (true)
            {
                progress();
                Thread.Sleep(10000);

                if (tgl_crawl)
                {
                    #region crawler2

                    List <string> old_list = DB.getoldlist();

                    string old_title  = DB.getold()[0];
                    string old_domain = DB.getold()[1];

                    try
                    {
                        //crawl.maru_crawl(old_list);

                        if (form.cb.Checked)
                        {
                            crawl.direct_crwal(old_list, form);
                        }
                        else
                        {
                            crawl.maru_crawl(old_list);
                        }
                    }
                    catch
                    {
                        wf.WinformLog("@크롤링 실패");
                        continue;
                    }


                    List <maru> maru = crawl.getlist();

                    if (!(maru.Count > 0))
                    {
                        wf.WinformOld(old_title, old_domain);

                        try
                        {
                            discordclient.SetGameAsync(old_title);
                        }
                        catch
                        {
                            wf.WinformLog("@타이틀 배치 실패");
                        }

                        continue;
                    }


                    string new_title  = maru[0].gettitle();
                    string new_domain = maru[0].getdomain();


                    ulong tmp_server;
                    ulong tmp_user;

                    try
                    {
                        discordclient.SetGameAsync(new_title);
                    }
                    catch
                    {
                        wf.WinformLog("@타이틀 배치 실패");
                    }



                    maru.Reverse();
                    for (int i = 0; i < maru.Count; i++)
                    {
                        if (maru[i].gettitle() == old_title)
                        {
                            break;
                        }

                        new_title  = maru[i].gettitle();
                        new_domain = maru[i].getdomain();

                        for (int j = 0; j < list.Count(); j++)
                        {
                            if (new_title.Contains(list[j]))
                            {
                                tmp_server = Convert.ToUInt64(server[j]);
                                tmp_user   = Convert.ToUInt64(user[j]);



                                if (discordclient.GetChannel(tmp_server) != null &&
                                    discordclient.GetChannel(tmp_server).GetUser(tmp_user) != null)
                                {
                                    int fail = 0;//성공
                                    do
                                    {
                                        try
                                        {
                                            SendDM(discordclient
                                                   .GetChannel(tmp_server)
                                                   .GetUser(tmp_user),
                                                   new_title, Properties.Settings.Default.URL + new_domain);


                                            wf.WinformLog("@" + discordclient.GetUser(tmp_user) + "가 " + new_title + "를 받음\n");
                                        }
                                        catch
                                        {
                                            wf.WinformLog("@메세지 전송 실패\n");
                                            fail++;
                                        }
                                        finally
                                        {
                                            fail = 0;
                                        }
                                    } while (0 < fail && fail < 10);//1~최대10회 실패동안 반복

                                    Thread.Sleep(1000);
                                }
                            }
                        }
                    }
                    ////////////크롤종료후

                    wf.WinformOld(new_title, Properties.Settings.Default.URL + new_domain);
                    DB.setold(new_title, new_domain);
                    DB.setoldlist(crawl.getalllist());
                    DB.filesave();

                    #endregion
                }
            }
        }
Exemplo n.º 2
0
        private void crawler2()
        {
            Crawl_HAP     crawl    = new Crawl_HAP();
            List <string> old_list = DataBase.getoldlist();

            try
            {
                crawl.maru_crawl(old_list);
            }
            catch
            {
                wf.WinformLog("@크롤실패");
                return;
            }
            List <maru> maru = crawl.getlist();

            if (!(maru.Count > 0))
            {
                return;
            }
            wf.WinformLog("@크롤");


            string new_title  = maru[0].gettitle();
            string new_domain = maru[0].getdomain();

            string old_title  = DataBase.getold()[0];
            string old_domain = DataBase.getold()[1];



            ulong tmp_server;
            ulong tmp_user;

            for (int i = 0; i < maru.Count; i++)
            {
                if (maru[i].gettitle() == old_title)
                {
                    break;
                }

                for (int j = 0; j < list.Count(); j++)
                {
                    if (maru[i].gettitle().Contains(list[j]))
                    {
                        tmp_server = Convert.ToUInt64(server[j]);
                        tmp_user   = Convert.ToUInt64(user[j]);
                        try
                        {
                            if (discord.GetServer(tmp_server) != null &&
                                discord.GetServer(tmp_server).GetUser(tmp_user) != null)
                            {
                                discord
                                .GetServer(tmp_server)
                                .GetUser(tmp_user)
                                .SendMessage(maru[i].getdomain());
                            }
                        }
                        catch
                        {
                            wf.WinformLog("@메세지 전송 실패");
                            return;
                        }
                    }
                }
            }

            ////////////크롤종료후

            DataBase.setold(new_title, new_domain);

            DataBase.setoldlist(crawl.getalllist());

            wf.WinformOld(new_title, new_domain);
            try
            {
                discord.SetGame(new_title);
            }
            catch
            {
            }
        }