コード例 #1
0
ファイル: ReactorModule.cs プロジェクト: Twitterian/TrueRED_
 void ITimeTask.Run( )
 {
     while (!Disposed)
     {
         if (IsRunning)
         {
             lock ( ExpireUsers )
             {
                 for (int i = 0; i < ExpireUsers.Count; i++)
                 {
                     var keys = new List <long>(ExpireUsers.Keys);
                     var key  = keys[i];
                     var item = ExpireUsers[key];
                     if (TimeSet.Verification(new TimeSet(DateTime.Now), item, new TimeSet(item.Hour, item.Minute + ExpireTime)))
                     {
                         continue;
                     }
                     else
                     {
                         ExpireUsers.Remove(key);
                     }
                 }
             }
         }
         Thread.Sleep(ExpireDelay * 60);
     }
 }
コード例 #2
0
ファイル: ReactorModule.cs プロジェクト: Twitterian/TrueRED_
 public bool Verification( )
 {
     if (Debug_TimeSkipFlag)
     {
         return(true);
     }
     if (moduleWakeup == null && moduleSleep == null)
     {
         return(true);
     }
     if (moduleWakeup.Hour == int.MaxValue && moduleSleep.Hour == int.MaxValue)
     {
         return(true);
     }
     return(TimeSet.Verification(new TimeSet(DateTime.Now), this.moduleWakeup, this.moduleSleep));
 }
コード例 #3
0
ファイル: ReactorModule.cs プロジェクト: Twitterian/TrueRED_
        private TweetMatchResult IsMatch(string category, string input, ITweet status)
        {
            TweetMatchResult state = TweetMatchResult.NotMatch;

            var originText  = status.Text.Replace(" ", "").Replace("\n", "");
            var compareText = input.Replace(" ", "").Replace("\n", "");


            // TODO: Use IsCategoryMatch()
            if (ParseEscapeInput(originText, compareText))
            {
                switch (category)
                {
                case "All":
                    if ((status.InReplyToStatusId == null && status.InReplyToScreenName == null && !new Regex("^\\s@\\s").IsMatch(status.Text)) ||
                        status.InReplyToUserId == Globals.Instance.User.Id)
                    {
                        Log.Print(this.Name, "catch tweet (all) [{0}({1}) : {2}]", status.CreatedBy.Name, status.CreatedBy.ScreenName, status.Text);
                        state = TweetMatchResult.Match;
                    }
                    break;

                case "Mention":
                    if (status.InReplyToUserId == Globals.Instance.User.Id)
                    {
                        Log.Print(this.Name, "catch tweet (Mention) [{0}({1}) : {2}]", status.CreatedBy.Name, status.CreatedBy.ScreenName, status.Text);
                        state = TweetMatchResult.Match;
                    }
                    break;

                case "Public":
                    if (status.InReplyToStatusId == null && status.InReplyToScreenName == null && !new Regex("^\\s@\\s").IsMatch(status.Text))
                    {
                        Log.Print(this.Name, "catch tweet (Public) [{0}({1}) : {2}]", status.CreatedBy.Name, status.CreatedBy.ScreenName, status.Text);
                        state = TweetMatchResult.Match;
                    }
                    break;

                default:

                    break;
                }


                if (ExpireTime != 0 && !Debug_ExpireSkipFlag)
                {
                    lock ( ExpireUsers )
                    {
                        if (ExpireUsers.ContainsKey(status.CreatedBy.Id))
                        {
                            var ExpireTimeset = ExpireUsers[status.CreatedBy.Id];
                            if (TimeSet.Verification(new TimeSet(DateTime.Now), ExpireTimeset, new TimeSet(ExpireTimeset.Hour, ExpireTimeset.Minute + ExpireTime)))
                            {
                                Log.Print(this.Name, "User {0} rejected by expire : to {1}", status.CreatedBy.ScreenName, ExpireTimeset);
                                state = TweetMatchResult.Expire;
                            }
                            else
                            {
                                ExpireUsers.Remove(status.CreatedBy.Id);
                            }
                        }
                    }
                }
            }
            return(state);
        }