Exemple #1
0
            //表示するメッセージ内容の作成処理
            private StringBuilder createDispMsg(PrepareState ps, int flowSpeed)
            {
                StringBuilder sb = new StringBuilder();

                sb.Append("\"");
                sb.Append(ps.getKeyword());
                sb.Append("\"の流速が閾値を超過。\n流速: ");
                sb.Append(flowSpeed);
                sb.Append(" tweet/hour\n");
                sb.Append("取得率: ");
                sb.Append(ps.getPercentage());
                sb.Append("%");

                return(sb);
            }
Exemple #2
0
            //流速を求める処理
            private int getFlowSpeed(PrepareState ps)
            {
                //初期化
                SearchResult   result       = null;
                DateTimeOffset oldTimeStamp = new DateTimeOffset();

                try
                {
                    //検索実行
                    result = ps.getTokens().Search.Tweets(count => (int)ps.getTweetNum(), q => ps.getKeyword());

                    //末尾ツイートの時刻を取得
                    oldTimeStamp = getTimeStamp(result, ps);
                }
                catch (Exception)
                {
                    //取得件数が0件の場合は-1を返す
                    return(-1);
                }

                //末尾ツイートのUNIXタイムを取得
                long unixTimeEnd = getUnixTimeEnd(oldTimeStamp);

                //現在のUNIXタイムを取得
                long unixTimeNow = getUnixTimeNow();

                //現在時刻と古いツイートの時刻の差分を求める
                long sec = unixTimeNow - unixTimeEnd;

                //流速計算(30分または1時間あたり)
                double flow = (ps.getTweetNum() / (double)sec) * ps.getPeriod();

                //流速を返す
                return((int)flow);
            }