Пример #1
0
        public TimelineRow(Tweet tweet,string ownerScreenName,SettingData setting,Action<RowAction> actionCallback)
            :base(tweet,ownerScreenName,setting,actionCallback,RowType.Tweet)
        {

            if (tweet.retweeted_status == null)
            {
                this.RowType = RowType.Tweet;
                if (Tweet.text.Contains("@" + ownerScreenName))
                {
                    SharedDispatcher.RunAsync(() =>
                    {
                        BarColorBrush = (Application.Current.Resources["MentionForegroundBrush"] as SolidColorBrush).Color;
                    });

                }
            }
            else
            {
                this.RowType = RowType.Retweet;
                SharedDispatcher.RunAsync(() =>
                {
                    BarColorBrush = (Application.Current.Resources["RetweetForegroundBrush"] as SolidColorBrush).Color;
                });

            }
            Initialize(rowActionCallback);
            
        }
Пример #2
0
  public NotificationRow(Tweet tweet,string message,SettingData setting,NotificationType type,string ownerScreenName,Action<RowAction> actionCallback)
      :base(tweet,ownerScreenName,setting,actionCallback,RowType.Notification)
 {
     Initialize(rowActionCallback);
      this.NType = type;
      this.Message = message;
      
 }
Пример #3
0
 public RowBase(Tweet tweet,string ownerScreenName,SettingData setting,Action<RowAction> rowActionCallBack,RowType type)
 {
     this.ownerScreenName = ownerScreenName;
     this.RowType = type;
     this.Tweet = tweet;
     this.setting = setting;
     
     InitializeBase(rowActionCallBack);
 }
Пример #4
0
        public override async Task GetStreamTweet(Tweet tweet)
        {
            await base.GetStreamTweet(tweet);
            if (tweet.entities.urls != null && tweet.entities.urls.Count > 0)
            {
                await InsertStreamInTimeLineAsync(new TimelineRow(tweet, Account.UserInfomation.screen_name, Setting,
                    rowActionCallback));
            }

        }
Пример #5
0
        protected async Task<bool> IsAllFilterClearAsync(Tweet tweet)
        {
            bool result = false;


            if (await isExtractAccountFilterClear(tweet) &&
               await isExcludeAccountFilterClear(tweet) &&
               await isExtractWordFilterClear(tweet) &&
               await isExcludeWordFilterClear(tweet) &&
                await isMuteAccountFilerClear(tweet))
            {
                result = true;
            }
            else
            {
                result = false;
            }


            return result;
        }
Пример #6
0
        public async Task Retweet(Tweet tweet)
        {
            await ActionSelectedAccountWithUiAsync(async client =>
            {
                if (tweet.retweeted == false)
                {
                    tweet.retweeted = true;
                    await client.CreateRetweetAsync(tweet);

                }
                else
                {
                    tweet.retweeted = false;
                    //await client.DestroyRetweetAsync(tweet);
                }
            });
        }
Пример #7
0
 public virtual async Task GetStreamMentions(Tweet tweet)
 {
     await CheckAndDeleteMaxRowAsync();
 }
Пример #8
0
        private async Task LiveTileImageUpdateAsync(Tweet tweet)
        {
            if (tweet.entities != null && tweet.entities.media != null && tweet.entities.media.Count > 0)
            {
                await SharedDispatcher.RunAsync(() =>
                {
                    
                    //テンプレートを取得してXMLを編集
                    XmlDocument doc = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWide310x150PeekImage05);
                    doc.GetElementsByTagName("text")[0].InnerText = "@" + tweet.user.screen_name;
                    doc.GetElementsByTagName("text")[1].InnerText = tweet.text;
                    doc.GetElementsByTagName("image")[0].Attributes.GetNamedItem("src").NodeValue = tweet.entities.media.First().media_url;
                    doc.GetElementsByTagName("image")[1].Attributes.GetNamedItem("src").NodeValue = tweet.user.profile_image_url;

                    TileNotification notification = new TileNotification(doc);

                    
                    notification.ExpirationTime = DateTimeOffset.UtcNow.AddDays(2);
                    //一意のタグを指定
                    notification.Tag ="wide"+ liveTileCounter.ToString();
                    //通知を送信
                    TileUpdater updater = TileUpdateManager.CreateTileUpdaterForApplication();
                    updater.EnableNotificationQueueForWide310x150(true);
                    
                    updater.Update(notification);
                    

                    XmlDocument docLarge = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquare310x310ImageAndTextOverlay03);
                    docLarge.GetElementsByTagName("text")[0].InnerText = "@" + tweet.user.screen_name;
                    docLarge.GetElementsByTagName("text")[1].InnerText = tweet.text;
                    docLarge.GetElementsByTagName("image")[0].Attributes.GetNamedItem("src").NodeValue = tweet.entities.media.First().media_url;
                    
                    TileNotification notificationLarge = new TileNotification(docLarge);


                    notificationLarge.ExpirationTime = DateTimeOffset.UtcNow.AddDays(2);
                    //一意のタグを指定
                    notificationLarge.Tag ="large"+ liveTileCounter.ToString();

                    //通知を送信
                    TileUpdater updaterLarge = TileUpdateManager.CreateTileUpdaterForApplication();
                    
                    updaterLarge.EnableNotificationQueueForSquare310x310(true);
                    
                    updaterLarge.Update(notificationLarge);
                    if (liveTileCounter > 6)
                    {
                        liveTileCounter = 0;
                    }
                    liveTileCounter++;
                });



            }
        }
Пример #9
0
        public Task<bool> isMuteAccountFilerClear(Tweet tweet)
        {
            return Task.Run(() =>
            {
                if (tweet.text!=null&&tweet.user.screen_name != null)
                {
                    return Setting.MuteAccountList.All(muteAccount => tweet.user.screen_name != muteAccount);
                }
                else
                {
                    return true;
                }
            });

        }
Пример #10
0
        private Task<bool> isExcludeAccountFilterClear(Tweet tweet)
        {
            return Task.Run(() =>
            {
                bool result = true;

                if (ExcludeAccountScreenNameList.Count == 0) { return true; }
                foreach (var item in ExcludeAccountScreenNameList)
                {
                    if (item == tweet.user.screen_name)
                    {
                        result = false;
                    }
                }
                return result;
            });


        }
Пример #11
0
        private Task<bool> isExcludeWordFilterClear(Tweet tweet)
        {
            return Task.Run(() =>
            {
                bool result = true;

                if (ExcludeWordList.Count == 0) { return true; }
                foreach (var item in ExcludeWordList)
                {
                    if (tweet.text.Contains(item))
                    {
                        result = false;
                    }
                }
                return result;
            });

        }
Пример #12
0
        public async Task FavoriteAsync(Tweet tweet)
        {
            await ActionSelectedAccountWithUiAsync(async client =>
            {

                if (tweet.favorited == false)
                {
                    tweet.favorited = true;
                    await client.CreateFavoriteAsync(tweet);

                }
                else
                {
                    tweet.favorited = false;
                    await client.DestroyFavoriteAsync(tweet);

                }

            });
        }
Пример #13
0
 public override async Task GetStreamTweet(Tweet tweet)
 {
     await base.GetStreamTweet(tweet);
     
 }
Пример #14
0
 public override async Task GetStreamMention(Tweet tweet)
 {
     await base.GetStreamMentions(tweet);
     await InsertStreamInTimeLineAsync(new TimelineRow(tweet,Account.UserInfomation.screen_name,Setting,rowActionCallback));
     
 }
Пример #15
0
        public void AddPostText(string text, Tweet in_reply_to_status)
        {
            this.InReplyToStatus = in_reply_to_status;
            IsAcceptReply = true;
            if (!IsHashTagLock)
            {
                PostText += text;
            }
            else
            {
                
                PostText += HashtagLockText(PostText,text);

            }
            
        }
Пример #16
0
 public void Description(Tweet tweet)
 {
     this.TwitterUIComponent.SetPostText("(@" + tweet.user.screen_name + ")");
     Messenger.Notify("SetPostTextCursor", 0);
 }
Пример #17
0
 public void Reply(Tweet tweet)
 {
     this.TwitterUIComponent.AddPostText("@" + tweet.user.screen_name + " ", tweet);
     Messenger.Notify("SetPostTextCursor", TwitterUIComponent.PostText.Length);
 }
Пример #18
0
 public void Quote(Tweet tweet)
 {
     this.TwitterUIComponent.SetPostText(" RT @" + tweet.user.screen_name + " " + tweet.text);
 }
Пример #19
0
        protected Task<bool> isCompetition(List<RowBase> tweetList, Tweet tweet)
        {
            return Task.Run(() =>
            {
                bool result = false;
                foreach (var t in tweetList)
                {
                    if (t.Tweet.id_str == tweet.id_str)
                    {
                        result = true;
                    }
                }
                return result;
            });

        }
Пример #20
0
 public TweetDetailParameter(string accountScreenName,Tweet tweet)
     :base(accountScreenName)
 {
     this.tweet = tweet;
 }