Пример #1
0
 private void Instance_OnAck(object sender, SlackEventArgs e)
 {
     using (StreamWriter sw = new StreamWriter("log.txt", true))
     {
         sw.WriteLine(string.Format("{0} Ack : {1}", DateTime.Now, e.Data.ToJson()));
     }
 }
Пример #2
0
        private void ProcessEvent(SlackEventArgs eventArg)
        {
            ProcessEventLog(eventArg);
            switch (eventArg.Data.Type)
            {
            case "message":
                ProcessEventMessage(Accessor.Deserialize <Message>(eventArg.Data.ToJson()));
                break;

            case "hello":
                break;

            case "reconnect_url":
                break;

            case "channel_marked":
                break;

            case "error":
                break;

            case "user_typing":
                break;

            default:
                break;
            }
        }
Пример #3
0
 private void ProcessEventLog(SlackEventArgs eventArg)
 {
     if (System.IO.File.Exists(LOGFILE))
     {
         System.IO.FileInfo fi = new System.IO.FileInfo(LOGFILE);
         if (fi.Length > 100000)
         {
             if (System.IO.File.Exists(LOGFILE + ".backup"))
             {
                 System.IO.File.Delete(LOGFILE + ".backup");
             }
             System.IO.File.Move(LOGFILE, LOGFILE + ".backup");
         }
     }
     using (StreamWriter sw = new StreamWriter(LOGFILE, true))
     {
         sw.WriteLine(string.Format("{0} Event : {1} [{2}]", DateTime.Now, eventArg.Data.ToJson()), eventArg.Data.ToString());
     }
 }
Пример #4
0
        static void Instance_OnEvent(object sender, SlackEventArgs e)
        {
            var instance = sender as Slack;

            if (e.Data.Type == "hello")
            {
                Console.WriteLine("Connected to '{0}' as '{1}'", instance.TeamInfo.Name, instance.Self.Name);
                foreach (var c in instance.JoinedChannels)
                {
                    Console.WriteLine("Member of: {0}", c.Name);
                }
                //instance.SendMessage("#botspam", "Whoo! Spam from a bot!");
            }
            else if (e.Data.Type == "message")
            {
                var message = e.Data as Message;
                Console.WriteLine(SubstituteMarkup(message.ToString(), instance));
            }
            else
            {
                Console.WriteLine(e.Data.Type);
                Console.WriteLine(">{0}", e.Data);
            }
        }
Пример #5
0
 private void Instance_OnEvent1(object sender, SlackEventArgs e)
 {
     ProcessEvent(e);
 }
Пример #6
0
        static void slack_OnEvent(object sender, SlackEventArgs e)
        {
            try
            {
                var instance = sender as Slack;
                var network  = Singleton <NetworkData> .Instance;
                if (!Idlefuncs.ContainsKey(instance) || !Idlefuncs[instance].IsAlive)
                {
                    Idlefuncs[instance] = new Thread(new ThreadStart(IdleFunc(instance)));
                    Idlefuncs[instance].Start();
                }
                //LogglyInst.Log(e.Data);
                if (e.Data.Type == "hello")
                {
                    Console.WriteLine(string.Format("Connected to {0}.", instance.TeamInfo.Name));
                    var settings = PersistentSingleton <Settings> .Instance;

                    if (!settings.HasDoneIntroSpiel)
                    {
                        var channel = instance.PrimaryChannel.IsMember ? instance.PrimaryChannel : instance.JoinedChannels.FirstOrDefault();
                        HelpCommand.Introduce(instance, channel);
                        PersistentSingleton <Settings> .Save();
                    }
                }
                if (e.Data is Message)
                {
                    network.Refresh();
                    var message = e.Data as Message;
                    if (message.Hidden)
                    {
                        return;
                    }
                    var substMessage = SubstituteMarkup(message.Text, sender as Slack);
                    Console.WriteLine(SubstituteMarkup(message.ToString(), sender as Slack));

                    if (message.User == instance.Self.Id)
                    {
                        return;
                    }

                    bool targeted = substMessage.StartsWith(string.Concat("@", instance.Self.Name), StringComparison.InvariantCultureIgnoreCase);
                    if (message.Channel[0] == 'D')
                    {
                        targeted = true;
                    }

                    foreach (var cmd in Commands)
                    {
                        bool fired = cmd.Run(substMessage, message, targeted, instance);
                        if (fired)
                        {
                            return;
                        }
                    }

                    // Leave this one here for now

                    /* ****
                    * Restart.
                    * ****/
                    var pmatch = Regex.Match(
                        SubstituteMarkup(message.Text, sender as Slack),
                        @"Re(start|boot)",
                        RegexOptions.IgnoreCase);
                    if (targeted && pmatch.Success)
                    {
                        instance.SendMessage(message.Channel, "Rebooting!");
                        Running = false;
                    }
                }
            }
            catch (Exception c)
            {
                Console.WriteLine("!An Error has been caught!\n{0}", c);
            }
        }
Пример #7
0
 private void Slack_OnAck(object sender, SlackEventArgs e)
 {
     var ack = (e.Data as Ack);
 }