Exemplo n.º 1
0
        public IHttpActionResult GetChannelLastMessages(int id)
        {
            IEnumerable <string> headerValues = Request.Headers.GetValues("Authorization");
            string installKey = headerValues.FirstOrDefault();

            if (installKey == "")
            {
                return(ResponseMessage(Models.Errors.InstallKeyBlank(Request)));
            }

            try
            {
                Models.Installs.checkinInstall(installKey);
            }
            catch (Exception ex)
            {
                return(ResponseMessage(Models.Errors.InstallCheckinFailed(Request)));
            }


            MednaNetAPIClient.Models.Messages message = null;

            try
            {
                using (Models.MedLaunchChatEntities db = new Models.MedLaunchChatEntities())
                {
                    var install = (from q in db.installs
                                   where q.code == installKey
                                   select q).FirstOrDefault();

                    if (install != null)
                    {
                        message =
                            (from g in db.discord_channels
                             from m in g.discord_messages
                             where !m.clients_ignore && m.channel == id
                             orderby m.id descending
                             select new MednaNetAPIClient.Models.Messages()
                        {
                            channel = g.id,
                            code = m.code,
                            message = m.message,
                            name = m.name,
                            postedOn = m.posted_on,
                            id = m.id
                        }).FirstOrDefault();
                    }
                }
            }
            catch (Exception ex)
            {
                HttpError err = new HttpError("Error retrieving last message for discord channel. ");
                return(ResponseMessage(Request.CreateResponse(HttpStatusCode.InternalServerError, err)));
            }

            return(Ok(message));
        }
Exemplo n.º 2
0
        private async void GetMessages()
        {
            textBox1.AppendText("Getting messages." + System.Environment.NewLine);

            if (!this.isUpdating)
            {
                textBox1.AppendText("Not updating, get messages." + System.Environment.NewLine);

                this.isUpdating = true;

                if (isFirst)
                {
                    isFirst = false;
                    foreach (var s in monitoredChannels)
                    {
                        MednaNetAPIClient.Models.Messages message = await this.apiClient.Channels.GetChannelLastMessage(Convert.ToInt32(s.channelId));

                        if (message != null)
                        {
                            s.lastMessageId = message.id;
                        }
                    }
                }
                else
                {
                    foreach (var s in monitoredChannels)
                    {
                        IEnumerable <MednaNetAPIClient.Models.Messages> messages = await this.apiClient.Channels.GetChannelMessagesAfterMessageId(s.channelId, s.lastMessageId);

                        foreach (var message in messages.ToList())
                        {
                            if (message.code != botInstallKey)
                            {
                                var ch = this.client.GetChannel(Convert.ToUInt64(s.discordChannelId)) as ISocketMessageChannel;
                                await ch.SendMessageAsync("**" + message.name + "**: " + message.message);

                                s.lastMessageId = message.id;
                            }
                        }
                    }
                }

                this.isUpdating = false;
            }
        }
Exemplo n.º 3
0
        private async void button2_Click(object sender, EventArgs e)
        {
            DateTime postTime = DateTime.Now;

            messageBox.AppendText(currentInstall.username + " @ " + postTime.ToString() + System.Environment.NewLine);
            messageBox.AppendText(message.Text + System.Environment.NewLine);
            messageBox.AppendText(System.Environment.NewLine);

            MednaNetAPIClient.Models.Messages newMessage = await client.Channels.CreateMessage(this.currentChannel, new MednaNetAPIClient.Models.Messages()
            {
                channel  = this.currentChannel,
                code     = installKey.Text,
                message  = message.Text,
                name     = "", //This does nothing, the username is install specific and the API takes it from the database.
                postedOn = postTime
            });

            lastChannelMessageId[this.currentChannel] = newMessage.id;
        }
Exemplo n.º 4
0
        public IHttpActionResult CreateDiscordMessage(int id, MednaNetAPIClient.Models.Messages message)
        {
            IEnumerable <string> headerValues = Request.Headers.GetValues("Authorization");
            string installKey = headerValues.FirstOrDefault();

            if (installKey == "")
            {
                return(ResponseMessage(Models.Errors.InstallKeyBlank(Request)));
            }

            try
            {
                Models.Installs.checkinInstall(installKey);
            }
            catch (Exception ex)
            {
                return(ResponseMessage(Models.Errors.InstallCheckinFailed(Request)));
            }

            string username     = "";
            bool   clientIgnore = false;

            Models.discord_messages newRecord = null;

            try
            {
                newRecord = new Models.discord_messages();
                using (Models.MedLaunchChatEntities db = new Models.MedLaunchChatEntities())
                {
                    var install = (from q in db.installs
                                   where q.code == installKey
                                   select q).FirstOrDefault();

                    if (install != null)
                    {
                        if (install.banned)
                        {
                        }
                        else
                        {
                            if (install.temp_ban)
                            {
                            }
                            else
                            {
                                if (installKey == "botInstallKey")
                                {
                                    username = message.name;
                                }
                                else
                                {
                                    username = install.username;
                                }

                                newRecord = new Models.discord_messages();

                                newRecord.code           = message.code;
                                newRecord.message        = message.message;
                                newRecord.name           = username;
                                newRecord.posted_on      = DateTime.Now;
                                newRecord.channel        = id;
                                newRecord.clients_ignore = clientIgnore;

                                db.discord_messages.Add(newRecord);
                                db.SaveChanges();
                            }
                        }
                    }
                    else
                    {
                    }
                }
            }
            catch (Exception ex)
            {
                HttpError err = new HttpError("Error creating message for discord channel. ");
                return(ResponseMessage(Request.CreateResponse(HttpStatusCode.InternalServerError, err)));
            }



            return(Ok(newRecord));
        }