Esempio n. 1
0
        private void Listener()
        {
            HashSet <string> nextEventPlayers = new HashSet <string> (EventConnection.GetEvents().OrderBy(e => e.Date).First().Registered);

            while (this.listening)
            {
                var nextEvent = EventConnection.GetEvents().OrderBy(e => e.Date).First();

                var unchanged      = nextEventPlayers.Intersect(nextEvent.Registered);
                var joiningPlayers = nextEvent.Registered.Where(p => !unchanged.Contains(p));
                foreach (var p in joiningPlayers)
                {
                    messanger.SendToChannel(p + " registered for the next event (" + nextEvent.Date.ToString("ddd, MMMM d") + " at " + nextEvent.Location + ")");
                }

                var leavingPlayers = nextEventPlayers.Where(p => !unchanged.Contains(p));
                foreach (var p in leavingPlayers)
                {
                    messanger.SendToChannel(p + " unregistered for the next event (" + nextEvent.Date.ToString("ddd, MMMM d") + " at " + nextEvent.Location + ")");
                }

                nextEventPlayers = new HashSet <string> (nextEvent.Registered);

                Thread.Sleep(15000);
            }
        }
Esempio n. 2
0
 private void OnConnected(object sender, EventArgs e)
 {
     if (messanger != null && !justStarting)
     {
         messanger.SendToChannel("Connected to Gablarski server");
     }
 }
Esempio n. 3
0
        private void Listener()
        {
            while (this.listening)
            {
                foreach (RssFeedElement feed in this.Config.Feeds)
                {
                    DateTime lastChecked = DateTime.Now;

                    RssFeed f = null;
                    if (this.oldFeeds.ContainsKey(feed))
                    {
                        f                   = RssFeed.Read(this.oldFeeds[feed].Value);
                        lastChecked         = this.oldFeeds[feed].Key;
                        this.oldFeeds[feed] = new KeyValuePair <DateTime, RssFeed> (DateTime.Now, f);
                    }
                    else
                    {
                        f = RssFeed.Read(feed.FeedURL);
                        this.oldFeeds.Add(feed, new KeyValuePair <DateTime, RssFeed> (DateTime.Now, f));
                    }

                    for (int c = 0; c < f.Channels.Count; ++c)
                    {
                        var channel = f.Channels[c];
                        foreach (RssItem item in channel.Items.Cast <RssItem>().OrderBy(i => i.PubDate))
                        {
                            if (item.PubDate.ToUniversalTime() < lastChecked.ToUniversalTime())
                            {
                                continue;
                            }

                            messanger.SendToChannel(feed.Name + ": " + item.Title + " | " + item.Link);
                        }
                    }
                }

                Thread.Sleep(60000);
            }
        }