Пример #1
0
        public static APIInfo GetAPI(SysArgFor apiType)
        {
            switch (apiType)
            {
            case SysArgFor.USER_RELATION:
                ApiForUserRelation.API.Redirect_Uri = "http://weibo.com/sizheng";
                return(ApiForUserRelation);

            case SysArgFor.USER_INFO:
                ApiForUserInfo.API.Redirect_Uri = "http://weibo.com/sizheng";
                return(ApiForUserInfo);

            case SysArgFor.USER_TAG:
                ApiForUserTag.API.Redirect_Uri = "http://weibo.com/sizheng";
                return(ApiForUserTag);

            case SysArgFor.STATUS:
                ApiForStatus.API.Redirect_Uri = "http://weibo.com/sizheng";
                return(ApiForStatus);

            case SysArgFor.COMMENT:
                ApiForComment.API.Redirect_Uri = "http://weibo.com/sizheng";
                return(ApiForComment);

            default:
                return(null);
            }
        }
Пример #2
0
 /// <summary>
 /// 为机器人获取当前爬行的ID(若爬行中止,则为上次中止处的ID)
 /// </summary>
 static public long GetCurrentID(SysArgFor eFor)
 {
     Database db = DatabaseFactory.CreateDatabase();
     string strSQL = "";
     switch (eFor)
     {
         case SysArgFor.USER_RELATION:
             strSQL = "select arg_value from sys_args where arg_name='current_user_id_userRelation'";
             break;
         case SysArgFor.USER_INFO:
             strSQL = "select arg_value from sys_args where arg_name='current_user_id_userInfo'";
             break;
         case SysArgFor.USER_TAG:
             strSQL = "select arg_value from sys_args where arg_name='current_user_id_userTag'";
             break;
         case SysArgFor.STATUS:
             strSQL = "select arg_value from sys_args where arg_name='current_user_id_status'";
             break;
         case SysArgFor.COMMENT:
             strSQL = "select arg_value from sys_args where arg_name='current_status_id'";
             break;
     }
     DataRow dr = db.GetDataRow(strSQL);
     if (dr == null) return 0;
     else return Convert.ToInt64(dr["arg_value"]);
 }
Пример #3
0
 /// <summary>
 /// 记录机器人当前爬行的ID
 /// </summary>
 static public void SetCurrentID(long lID, SysArgFor eFor)
 {
     Database db = DatabaseFactory.CreateDatabase();
     string strDeleteSQL = "";
     string strInsertSQL = "";
     switch (eFor)
     { 
         case SysArgFor.USER_RELATION:
             strDeleteSQL = "delete from sys_args where arg_name='current_user_id_userRelation'";
             strInsertSQL = "insert into sys_args(arg_name,arg_value) values('current_user_id_userRelation','" + lID.ToString() + "')";
             break;
         case SysArgFor.USER_INFO:
             strDeleteSQL = "delete from sys_args where arg_name='current_user_id_userInfo'";
             strInsertSQL = "insert into sys_args(arg_name,arg_value) values('current_user_id_userInfo','" + lID.ToString() + "')";
             break;
         case SysArgFor.USER_TAG:
             strDeleteSQL = "delete from sys_args where arg_name='current_user_id_userTag'";
             strInsertSQL = "insert into sys_args(arg_name,arg_value) values('current_user_id_userTag','" + lID.ToString() + "')";
             break;
         case SysArgFor.STATUS:
             strDeleteSQL = "delete from sys_args where arg_name='current_user_id_status'";
             strInsertSQL = "insert into sys_args(arg_name,arg_value) values('current_user_id_status','" + lID.ToString() + "')";
             break;
         case SysArgFor.COMMENT:
             strDeleteSQL = "delete from sys_args where arg_name='current_status_id'";
             strInsertSQL = "insert into sys_args(arg_name,arg_value) values('current_status_id','" + lID.ToString() + "')";
             break;
     }            
     db.CountByExecuteSQL(strDeleteSQL);            
     db.CountByExecuteSQL(strInsertSQL);
 }
Пример #4
0
        protected StatusQueue queueStatus;                 //微博队列引用

        //构造函数,需要传入相应的新浪微博API和主界面
        public RobotBase(SysArgFor robotType)
        {
            crawler = new SinaMBCrawler(robotType);
            api     = GlobalPool.GetAPI(robotType);
            switch (robotType)
            {
            case SysArgFor.USER_INFO:
                if (iMinSleep < GlobalPool.MinSleepMsForUserInfo)
                {
                    iMinSleep = GlobalPool.MinSleepMsForUserInfo;
                }
                break;

            case SysArgFor.USER_TAG:
                if (iMinSleep < GlobalPool.MinSleepMsForUserTag)
                {
                    iMinSleep = GlobalPool.MinSleepMsForUserTag;
                }
                break;

            case SysArgFor.STATUS:
                if (iMinSleep < GlobalPool.MinSleepMsForStatus)
                {
                    iMinSleep = GlobalPool.MinSleepMsForStatus;
                }
                break;

            case SysArgFor.COMMENT:
                if (iMinSleep < GlobalPool.MinSleepMsForComment)
                {
                    iMinSleep = GlobalPool.MinSleepMsForComment;
                }
                break;

            default:
                if (iMinSleep < GlobalPool.MinSleepMsForUserRelation)
                {
                    iMinSleep = GlobalPool.MinSleepMsForUserRelation;
                }
                break;
            }
            AdjustRealFreq();
        }
Пример #5
0
        /// <summary>
        /// 为机器人获取当前爬行的ID(若爬行中止,则为上次中止处的ID)
        /// </summary>
        static public long GetCurrentID(SysArgFor eFor)
        {
            Database db     = DatabaseFactory.CreateDatabase();
            string   strSQL = "";

            switch (eFor)
            {
            case SysArgFor.USER_RELATION:
                strSQL = "select arg_value from sys_args where arg_name='current_user_id_userRelation'";
                break;

            case SysArgFor.USER_INFO:
                strSQL = "select arg_value from sys_args where arg_name='current_user_id_userInfo'";
                break;

            case SysArgFor.USER_TAG:
                strSQL = "select arg_value from sys_args where arg_name='current_user_id_userTag'";
                break;

            case SysArgFor.STATUS:
                strSQL = "select arg_value from sys_args where arg_name='current_user_id_status'";
                break;

            case SysArgFor.COMMENT:
                strSQL = "select arg_value from sys_args where arg_name='current_status_id'";
                break;
            }
            DataRow dr = db.GetDataRow(strSQL);

            if (dr == null)
            {
                return(0);
            }
            else
            {
                return(Convert.ToInt64(dr["arg_value"]));
            }
        }
Пример #6
0
 public static long GetCurrentID(SysArgFor IDFor)
 {
     CurrentIDs currentIDs = CurrentIDHelper.Load();
     if (currentIDs == null) currentIDs = CurrentIDHelper.LoadDefault();
     switch (IDFor)
     {
         case SysArgFor.USER_INFO:
             return currentIDs.UIDForUserInfo;
             break;
         case SysArgFor.USER_TAG:
             return currentIDs.UIDForUserTag;
             break;
         case SysArgFor.STATUS:
             return currentIDs.UIDForStatus;
             break;
         case SysArgFor.COMMENT:
             return currentIDs.StatusID;
             break;
         default:
             return currentIDs.UIDForUserRelation;
             break;
     }
 }
Пример #7
0
 public static APIInfo GetAPI(SysArgFor apiType)
 {
     switch (apiType)
     {
         case SysArgFor.USER_RELATION:
             ApiForUserRelation.API.Redirect_Uri = "http://weibo.com/sizheng";
             return ApiForUserRelation;
         case SysArgFor.USER_INFO:
             ApiForUserInfo.API.Redirect_Uri = "http://weibo.com/sizheng";
             return ApiForUserInfo;
         case SysArgFor.USER_TAG:
             ApiForUserTag.API.Redirect_Uri = "http://weibo.com/sizheng";
             return ApiForUserTag;
         case SysArgFor.STATUS:
             ApiForStatus.API.Redirect_Uri = "http://weibo.com/sizheng";
             return ApiForStatus;
         case SysArgFor.COMMENT:
             ApiForComment.API.Redirect_Uri = "http://weibo.com/sizheng";
             return ApiForComment;
         default:
             return null;
     }
 }
Пример #8
0
        protected StatusQueue queueStatus;                    //微博队列引用

        //构造函数,需要传入相应的新浪微博API和主界面
        public RobotBase(SysArgFor robotType)
        {
            crawler = new SinaMBCrawler(robotType);
            api = GlobalPool.GetAPI(robotType);
            switch (robotType)
            {
                case SysArgFor.USER_INFO:
                    if (iMinSleep < GlobalPool.MinSleepMsForUserInfo) iMinSleep = GlobalPool.MinSleepMsForUserInfo;
                    break;
                case SysArgFor.USER_TAG:
                    if (iMinSleep < GlobalPool.MinSleepMsForUserTag) iMinSleep = GlobalPool.MinSleepMsForUserTag;
                    break;
                case SysArgFor.STATUS:
                    if (iMinSleep < GlobalPool.MinSleepMsForStatus) iMinSleep = GlobalPool.MinSleepMsForStatus;
                    break;
                case SysArgFor.COMMENT:
                    if (iMinSleep < GlobalPool.MinSleepMsForComment) iMinSleep = GlobalPool.MinSleepMsForComment;
                    break;
                default:
                    if (iMinSleep < GlobalPool.MinSleepMsForUserRelation) iMinSleep = GlobalPool.MinSleepMsForUserRelation;
                    break;
            }
            AdjustRealFreq();
        }
Пример #9
0
        /// <summary>
        /// 记录机器人当前爬行的ID
        /// </summary>
        static public void SetCurrentID(long lID, SysArgFor eFor)
        {
            Database db           = DatabaseFactory.CreateDatabase();
            string   strDeleteSQL = "";
            string   strInsertSQL = "";

            switch (eFor)
            {
            case SysArgFor.USER_RELATION:
                strDeleteSQL = "delete from sys_args where arg_name='current_user_id_userRelation'";
                strInsertSQL = "insert into sys_args(arg_name,arg_value) values('current_user_id_userRelation','" + lID.ToString() + "')";
                break;

            case SysArgFor.USER_INFO:
                strDeleteSQL = "delete from sys_args where arg_name='current_user_id_userInfo'";
                strInsertSQL = "insert into sys_args(arg_name,arg_value) values('current_user_id_userInfo','" + lID.ToString() + "')";
                break;

            case SysArgFor.USER_TAG:
                strDeleteSQL = "delete from sys_args where arg_name='current_user_id_userTag'";
                strInsertSQL = "insert into sys_args(arg_name,arg_value) values('current_user_id_userTag','" + lID.ToString() + "')";
                break;

            case SysArgFor.STATUS:
                strDeleteSQL = "delete from sys_args where arg_name='current_user_id_status'";
                strInsertSQL = "insert into sys_args(arg_name,arg_value) values('current_user_id_status','" + lID.ToString() + "')";
                break;

            case SysArgFor.COMMENT:
                strDeleteSQL = "delete from sys_args where arg_name='current_status_id'";
                strInsertSQL = "insert into sys_args(arg_name,arg_value) values('current_status_id','" + lID.ToString() + "')";
                break;
            }
            db.CountByExecuteSQL(strDeleteSQL);
            db.CountByExecuteSQL(strInsertSQL);
        }
Пример #10
0
        public static long GetCurrentID(SysArgFor IDFor)
        {
            CurrentIDs currentIDs = CurrentIDHelper.Load();

            if (currentIDs == null)
            {
                currentIDs = CurrentIDHelper.LoadDefault();
            }
            switch (IDFor)
            {
            case SysArgFor.USER_INFO:
                return(currentIDs.UIDForUserInfo);

                break;

            case SysArgFor.USER_TAG:
                return(currentIDs.UIDForUserTag);

                break;

            case SysArgFor.STATUS:
                return(currentIDs.UIDForStatus);

                break;

            case SysArgFor.COMMENT:
                return(currentIDs.StatusID);

                break;

            default:
                return(currentIDs.UIDForUserRelation);

                break;
            }
        }
Пример #11
0
 public SinaMBCrawler(SysArgFor crawlerType)
 {
     api = GlobalPool.GetAPI(crawlerType);
 }
Пример #12
0
 public SinaMBCrawler(SysArgFor crawlerType)
 {
     api = GlobalPool.GetAPI(crawlerType);
 }