Ejemplo n.º 1
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);
            };
        }
Ejemplo n.º 2
0
        public Model.SlackWebhookResponse Execute(string searchTerm, string channel, string userName)
        {
            var omdb     = new Omdb.Integration.OmdbQuery();
            var response = new Model.SlackWebhookResponse();
            var results  = omdb.Search(searchTerm);

            var foundResult = results.Search.Count > 0;

            if (foundResult)
            {
                response = new Model.SlackWebhookResponse().FromOmdbSearchResult(results);
                response.payload.channel = "#" + channel;
            }
            else
            {
                var searchResults = omdb.Search(searchTerm);
                response = new Model.SlackWebhookResponse().EmptyResultResponse(searchTerm, channel, userName);
            }

            return(response);
        }
Ejemplo n.º 3
0
        public Model.SlackWebhookResponse Execute(string searchTerm, string channel, string userName)
        {
            var omdb     = new Omdb.Integration.OmdbQuery();
            var response = new Model.SlackWebhookResponse();
            var result   = omdb.SearchSingleResult(searchTerm);

            var foundResult = string.IsNullOrEmpty(result.Title) ? false : true;

            if (foundResult)
            {
                response = new Model.SlackWebhookResponse().FromOmdbTitle(result);
                response.payload.channel = "#" + channel;
            }
            else
            {
                var searchResults = omdb.Search(searchTerm);
                response = new Model.SlackWebhookResponse().EmptyResultResponse(searchTerm, channel, userName);
            }

            return(response);
        }