示例#1
0
        void backgroundWorkerRecentTweets_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            TwitterItem item = (TwitterItem)e.UserState;

            if (item != null)
            {
                if (RecentTweets.Where(i => i.Id == item.Id).Count() == 0)
                {
                    RecentTweets.Add(item);
                }
            }
        }
示例#2
0
        void backgroundWorkerList_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            TwitterItem item = (TwitterItem)e.UserState;

            if (Items.Where(sItem => sItem.Id == item.Id).Count() == 0)
            {
                item.isList    = true;
                item.listName  = this.name;
                item.accountId = AccountId;
                try
                {
                    Items.Add(item);
                }
                catch (Exception exp)
                {
                    AppController.Current.Logger.writeToLogfile("Adding list item to collection failed");
                    AppController.Current.Logger.writeToLogfile(exp);
                    return;
                }

                if (InitialFetchDone)
                {
                    if (item.RetweetedItem != null)
                    {
                        AppController.Current.sendNotification("List " + FullName, item.RetweetedItem.Author.NameAndLogin, item.RetweetedItem.Text, item.RetweetedItem.Author.Avatar, item.RetweetedItem);
                    }
                    else
                    {
                        AppController.Current.sendNotification("List " + FullName, item.Author.NameAndLogin, item.Text, item.Author.Avatar, item);
                    }
                }

                if (item.Id > higehstKnownId)
                {
                    higehstKnownId = item.Id;
                }
            }
            else
            {
                item = null;
            }
        }
示例#3
0
 public void DeleteTweetFromEverywhere(TwitterItem item, List <TwitterItem> KnownInstances)
 {
     if (item != null)
     {
         List <TwitterItem> toBeDeletedItems = new List <TwitterItem>();
         foreach (TwitterItem toBeDeletedItem in Items.Where(i => i.Id == item.Id))
         {
             toBeDeletedItems.Add(toBeDeletedItem);
         }
         foreach (TwitterItem toBeDeletedItem in toBeDeletedItems)
         {
             try
             {
                 Items.Remove(toBeDeletedItem);
                 if (!KnownInstances.Contains(toBeDeletedItem))
                 {
                     KnownInstances.Add(toBeDeletedItem);
                 }
             }
             catch { }
         }
     }
 }
示例#4
0
        /// <summary>
        /// Will return true if this filter would like the item to be displayed
        /// </summary>
        /// <param name="item">The item which shall be checked for filtering</param>
        /// <returns></returns>
        public bool ShallItemBeDisplayed(IItem item)
        {
            if (item == null || string.IsNullOrEmpty(FilterString))
            {
                return(false);
            }
            #region Reposts and retweets detection
            bool isRepost = false;
            if (item.GetType() == typeof(TwitterItem))
            {
                TwitterItem tempItem = item as TwitterItem;
                isRepost = tempItem.isRetweeted;
            }
            else if (item.GetType() == typeof(ApnItem))
            {
                ApnItem tempItem = item as ApnItem;
                isRepost = tempItem.isReposted;
            }
            #endregion
            bool ItemShallBeDisplayed = true;
            if (IsExcludeFilter)
            {
                // was ein grausamer Code bzw. Kot
                if (FilterAuthor)
                {
                    ItemShallBeDisplayed = !checkIfStringIsInText(item.AuthorName);
                }
                if (!ItemShallBeDisplayed)
                {
                    return(ItemShallBeDisplayed);
                }
                if (FilterRetweeter)
                {
                    ItemShallBeDisplayed = !isRepost;
                    if (isRepost)
                    {
                        ItemShallBeDisplayed = !checkIfStringIsInText(item.AuthorName);
                    }
                }
                if (!ItemShallBeDisplayed)
                {
                    return(ItemShallBeDisplayed);
                }

                if (FilterText)
                {
                    ItemShallBeDisplayed = !checkIfStringIsInText(item.Text);
                }
                if (!ItemShallBeDisplayed)
                {
                    return(ItemShallBeDisplayed);
                }

                if (FilterClient)
                {
                    ItemShallBeDisplayed = !checkIfStringIsInText(item.ClientName);
                }
            }
            else
            {
                ItemShallBeDisplayed = false;
                if (FilterAuthor)
                {
                    ItemShallBeDisplayed = checkIfStringIsInText(item.AuthorName);
                }
                if (ItemShallBeDisplayed)
                {
                    return(ItemShallBeDisplayed);
                }

                if (FilterRetweeter)
                {
                    ItemShallBeDisplayed = !isRepost;
                    if (isRepost)
                    {
                        ItemShallBeDisplayed = checkIfStringIsInText(item.AuthorName);
                    }
                }
                if (ItemShallBeDisplayed)
                {
                    return(ItemShallBeDisplayed);
                }

                if (FilterText)
                {
                    ItemShallBeDisplayed = checkIfStringIsInText(item.Text);
                }
                if (ItemShallBeDisplayed)
                {
                    return(ItemShallBeDisplayed);
                }

                if (FilterClient)
                {
                    ItemShallBeDisplayed = checkIfStringIsInText(item.ClientName);
                }
            }
            return(ItemShallBeDisplayed);
        }