コード例 #1
0
        public SlackWebhookResponse FromOmdbTitleAsAttachment(OmdbTitle omdbTitle, string webhookUsername = "******")
        {
            var imdbTitle = FormatImdbTitle(omdbTitle.Title, omdbTitle.imdbId, omdbTitle.Year);
            var imdbText  = FormatImdbText(omdbTitle.Plot, omdbTitle.imdbRating, omdbTitle.Poster, omdbTitle.Director);

            var response = new SlackWebhookResponse();

            var attachment = new SlackWebhookResponseAttachment()
            {
                fallback = imdbTitle,
                pretext  = imdbTitle,
                color    = "#FACC2E"
            };

            var fields = new SlackWebhookResponseAttachmentFields()
            {
                title = omdbTitle.Title,
                value = imdbText
            };

            attachment.fields.Add(fields);
            payload.attachments.Add(attachment);
            response.payload          = payload;
            response.payload.username = webhookUsername;
            response.payload.text     = "<" + FormatImdbPoster(omdbTitle.imdbId) + ">";

            return(response);
        }
コード例 #2
0
        public SlackWebhookResponse EmptyResultResponse(string searchTerm, string channel, string userName, string webhookUsername = "******")
        {
            var response = new SlackWebhookResponse();

            response.payload.username = webhookUsername;
            response.payload.text     = string.Format("Psssst @{0} I couldn't find a title named \"{1}\".", userName, searchTerm);
            response.payload.channel  = string.Format("#{0}", channel);

            return(response);
        }
コード例 #3
0
        public SlackWebhookResponse FromOmdbTitle(OmdbTitle omdbTitle, string webhookUsername = "******")
        {
            var imdbTitle = FormatImdbTitle(omdbTitle.Title, omdbTitle.imdbId, omdbTitle.Year);
            var imdbText  = FormatImdbText(omdbTitle.Plot, omdbTitle.imdbRating, omdbTitle.Poster, omdbTitle.Director);
            var posterUrl = FormatImdbPoster(omdbTitle.imdbId);

            var response = new SlackWebhookResponse();

            response.payload.username = webhookUsername;
            response.payload.text     = string.Format("{0}\n{1}\n{2}", imdbTitle, imdbText, posterUrl);

            return(response);
        }
コード例 #4
0
        public OmdbModule()
        {
            var omdb = new Omdb.Integration.OmdbQuery();

            Post["/imdb"] = parameters =>
            {
                var slackCommand = new Model.SlackCommandRequest();
                slackCommand = this.Bind <Model.SlackCommandRequest>();

                var searchTerm   = slackCommand.text.Trim();
                var isListSearch = searchTerm.StartsWith("?");
                var response     = new Model.SlackWebhookResponse();

                if (isListSearch)
                {
                }
                else
                {
                    var singleSearchResultCmd = new Commands.SearchSingleResultCommand();
                    response = singleSearchResultCmd.Execute(searchTerm, slackCommand.channel_name, slackCommand.user_name);
                }

                var slackResponder = new Integration.SlackWebhookResponder();
                slackResponder.Send(response);

                var jsonResponse = JsonConvert.SerializeObject(response);
                return(jsonResponse);
            };

            Get["/imdb/{imdbid}.jpg"] = parameters =>
            {
                var client       = new RestSharp.RestClient("http://img.omdbapi.com");
                var request      = new RestSharp.RestRequest(RestSharp.Method.GET).AddQueryParameter("apikey", "cce8fe13").AddQueryParameter("i", parameters["imdbid"]);
                var responseData = client.DownloadData(request);
                var r            = new Response();
                r.Contents = s => {
                    using (var writer = new BinaryWriter(s))
                    {
                        writer.Write(responseData);
                    };
                };
                r.ContentType = "image/jpeg";

                return(r);
            };
        }
コード例 #5
0
        public SlackWebhookResponse FromOmdbSearchResult(OmdbSearchResultList searchResult)
        {
            var result = new SlackWebhookResponse();;

            return(result);
        }