Beispiel #1
0
        private void btnSearch_Click(object sender, EventArgs e)
        {
            List <PTSite> searchSites = new List <PTSite>();

            foreach (var control in panelSite.Controls)
            {
                if (control is CheckBox)
                {
                    var cb = (control as CheckBox);
                    if (cb.Checked && cb.Tag is YUEnums.PTEnum)
                    {
                        YUEnums.PTEnum siteId = (YUEnums.PTEnum)cb.Tag;
                        var            site   = PTSite.Sites.Where(x => x.Id == siteId).FirstOrDefault();
                        if (site != null && !searchSites.Contains(site))
                        {
                            searchSites.Add(site);
                        }
                    }
                }
            }
            if (searchSites.Count > 0)
            {
                SearchTorrent(searchSites, txtSearch.Text);
            }
            else
            {
                LogMessage(null, "请选择站点。", true);
            }
        }
Beispiel #2
0
        public UserFrm(PTUser user)
        {
            if (user == null)
            {
                User = new PTUser();
            }
            else
            {
                User = user;
            }
            InitializeComponent();

            YUEnums.PTEnum selectSiteId = User.Site != null ? User.Site.Id : 0;

            //绑定数据源,必须是属性,不能为字段
            BindingSource bs = new BindingSource();

            bs.DataSource         = PTSite.Sites.ToDictionary(x => x.Id, x => x.Name);
            cmbSite.ValueMember   = "Key";
            cmbSite.DisplayMember = "Value";
            cmbSite.DataSource    = bs;

            txtUserName.DataBindings.Add("Text", User, "UserName");
            txtPassWord.DataBindings.Add("Text", User, "PassWord");
            txtAnswer.DataBindings.Add("Text", User, "SecuityAnswer");
            nudOrder.DataBindings.Add("Value", User, "SecurityQuestionOrder");
            cbTwo_StepVerification.DataBindings.Add("Checked", User, "isEnableTwo_StepVerification");

            if (selectSiteId != 0)
            {
                cmbSite.SelectedValue = selectSiteId;
            }
        }
Beispiel #3
0
        public static IPT GetPT(YUEnums.PTEnum type, params object[] args)
        {
            lock (thisLock)
            {
                if (notRegistered)
                {
                    RegisterPT();
                }
            }
            IPT instance = null;

            if (_mapServer.ContainsKey(type))
            {
                instance = TypesContainer.CreateInstance <IPT>(_mapServer[type], args);
            }
            else
            {
                var argList = args.ToList();
                argList.Add(type);
                instance = TypesContainer.CreateInstance <IPT>("YU.PT.ExtendPT,YU.PT", argList.ToArray());
            }
            if (instance == null)
            {
                throw new Exception("instance==null");
            }
            return(instance);
        }
Beispiel #4
0
        /// <summary>
        /// 删除用户
        /// </summary>
        /// <param name="siteId"></param>
        /// <returns></returns>
        public static int DeleteUser(YUEnums.PTEnum siteId)
        {
            string          delSql = "DELETE FROM USER WHERE PTSITEID = @PTSITEID";
            SQLiteParameter parm   = new SQLiteParameter("@PTSITEID", DbType.Int32);

            parm.Value = (int)siteId;
            return(DBUtils.ExecuteNonQuery(delSql, parm));
        }
Beispiel #5
0
        private void DownLoadFiles(bool isOepn = false)
        {
            if (dgvTorrent.SelectedRows != null && dgvTorrent.SelectedRows.Count > 0)
            {
                var searchTorrents = dgvTorrent.Tag as List <PTTorrent>;
                DataGridViewCellCollection cells = dgvTorrent.SelectedRows[0].Cells;
                string         torrentId         = cells["Id"].Value.TryPareValue <string>();
                YUEnums.PTEnum siteId            = (YUEnums.PTEnum)EnumUtils.GetKeyByValue <YUEnums.PTEnum>(cells["SiteId"].Value.TryPareValue <string>());

                if (searchTorrents != null && searchTorrents.Count > 0)
                {
                    var torrent = searchTorrents.Where(x => x.Id == torrentId && x.SiteId == siteId).FirstOrDefault();
                    if (torrent != null)
                    {
                        Task t = Task.Run(() =>
                        {
                            IPT pt          = PTFactory.GetPT(siteId, Global.Users.Where(x => x.Site.Id == siteId).FirstOrDefault());
                            string fileName = pt.GetTorrentDownFileName(torrent);
                            string filePath = string.Empty;
                            this.Invoke(new Action(() =>
                            {
                                SaveFileDialog sfd = new SaveFileDialog();
                                sfd.FileName       = fileName;
                                sfd.Filter         = "TORRENT 文件|*.torrent;";
                                if (sfd.ShowDialog() == DialogResult.OK)
                                {
                                    filePath     = sfd.FileName;
                                    var downTask = Task.Run(() =>
                                    {
                                        HttpUtils.DownLoadFiles(torrent.DownUrl, filePath, 1024, (pt as AbstractPT).Cookie, isOepn);
                                    });
                                    TaskCallBack(downTask, "下载种子过程中出现错误,错误原因:");
                                }
                            }));
                        });
                        TaskCallBack(t, "下载种子过程中出现错误,错误原因:");
                    }
                }

                else
                {
                    LogMessage(PTSite.Sites.Where(x => x.Id == siteId).FirstOrDefault(), string.Format("下载失败,失败原因:获取种子信息失败。"), true);
                }
            }
        }
Beispiel #6
0
        public static IPT GetPT(YUEnums.PTEnum type, params object[] args)
        {
            lock (thisLock)
            {
                if (notRegistered)
                {
                    RegisterPT();
                }
            }
            IPT instance = null;

            if (_mapServer.ContainsKey(type))
            {
                instance = TypesContainer.CreateInstance <IPT>(_mapServer[type], args);
            }
            if (instance == null)
            {
                throw new Exception("instance==null");
            }
            return(instance);
        }
Beispiel #7
0
        private void BtnDel_Click(object sender, EventArgs e)
        {
            PTUser user = ((sender as Control).Tag as PTUser);

            if (user == null)
            {
                throw new Exception("获取用户数据失败。");
            }
            else
            {
                YUEnums.PTEnum  siteId = user.Site.Id;
                string          delSql = "DELETE FROM USER WHERE PTSITEID = @PTSITEID";
                SQLiteParameter parm   = new SQLiteParameter("@PTSITEID", DbType.Int32);
                parm.Value = (int)siteId;
                if (DBUtils.ExecuteNonQuery(delSql, parm) > 0)
                {
                    OnUserChangeEventArgs el = new OnUserChangeEventArgs();
                    el.User = user;
                    OnUserChanged(el);
                }
            }
        }
Beispiel #8
0
        public UserFrm(PTUser user)
        {
            if (user == null)
            {
                User = new PTUser();
            }
            else
            {
                User = ObjectUtils.CreateCopy <PTUser>(user);
            }
            InitializeComponent();

            YUEnums.PTEnum selectSiteId = User.Site != null ? User.Site.Id : 0;

            //绑定数据源,必须是属性,不能为字段
            BindingSource bs = new BindingSource();

            bs.DataSource         = ObjectUtils.CreateCopy <Dictionary <YUEnums.PTEnum, string> >(Global.Sites.ToDictionary(x => x.Id, x => x.Name));
            cmbSite.ValueMember   = "Key";
            cmbSite.DisplayMember = "Value";
            cmbSite.DataSource    = bs;

            if (selectSiteId != 0)
            {
                cmbSite.SelectedValue = selectSiteId;
            }

            ReBindControl();

            var pt = PTFactory.GetPT(User.Site.Id, User) as AbstractPT;

            if (File.Exists(pt.GetCookieFilePath()))
            {
                rtbInput.Text = File.ReadAllText(pt.GetCookieFilePath());
            }
        }