コード例 #1
0
        public async Task <MediaSearch> GetMediaByName(string name, Category mediaType)
        {
            name = name.Replace(" ", "+");
            var endpoint = $"/search/multi/?api_key={subscriptionKey}&{language}&query={name}";
            HttpResponseMessage result;
            MediaSearch         media = null;

            try
            {
                result = await httpClient.GetAsync($"{URL}{endpoint}");

                if (result.StatusCode != HttpStatusCode.OK)
                {
                    throw new HttpRequestException();
                }

                var resultString = await result.Content.ReadAsStringAsync();

                var mediaSearch = JsonConvert.DeserializeObject <MediaSearchResult>(resultString);
                if (mediaType != Category.anyway)
                {
                    media = mediaSearch.results.Where(x => x.media_type == EnumExtensions.GetDescription(mediaType)).FirstOrDefault();
                }
                else
                {
                    media = mediaSearch.results.FirstOrDefault();
                }

                return(media);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #2
0
        /// <summary>
        /// get liked media by current user
        /// </summary>
        /// <returns>liked media by current user</returns>
        public async Task <MediaSearch> Self_GetLikedMedia(string accesstoken)
        {
            MediaSearch media = new MediaSearch();

            try
            {
                _ResponseMessage = await _HttpClient.GetAsync(_HttpClient.BaseAddress.AbsoluteUri + "users/self/media/liked?access_token=" + accesstoken);

                if (_ResponseMessage.IsSuccessStatusCode)
                {
                    string responsestring = await _ResponseMessage.Content.ReadAsStringAsync();

                    media = JsonConvert.DeserializeObject <MediaSearch>(responsestring);
                }
                else
                {
                    media.meta.code = int.Parse(_ResponseMessage.StatusCode.ToString());
                }
                return(media);
            }
            catch (Exception ex)
            {
                if (_Telemetryclient != null)
                {
                    _Telemetryclient.TrackException(ex);
                }
                media.meta.code = int.Parse(_ResponseMessage.StatusCode.ToString());
            }
            return(media);
        }
コード例 #3
0
ファイル: MainViewModel.cs プロジェクト: yookjy/CCPlayer
        private async void OnCheckSearchElement()
        {
            if (!SimpleIoc.Default.ContainsCreated <MediaSearchViewModel>())
            {
//                System.Diagnostics.Debug.WriteLine("검색 패널 생성중...");
                var mediaSearchDataContext = SimpleIoc.Default.GetInstance <MediaSearchViewModel>();
                await DispatcherHelper.RunAsync(() =>
                {
                    var frame = Window.Current.Content as Frame;
                    if (mediaSearchDataContext != null &&
                        frame != null && frame.Content is Page)
                    {
                        var main       = frame.Content as Page;
                        MediaSearch ms = null;
                        (main.Content as Panel).Children.Add(ms =
                                                                 new MediaSearch()
                        {
                            DataContext = mediaSearchDataContext,
                            Visibility  = Visibility.Collapsed
                        });
                        Grid.SetRowSpan(ms, 2);
//                        System.Diagnostics.Debug.WriteLine("검색 패널 추가 완료");
                    }
                });
            }
        }
コード例 #4
0
        public string Post(MediaSearch query)
        {
            using (var client = new HttpClient())
            {
                string extens = FormatUrl(query.mediaType, query?.genre, query?.text, out bool success);

                if (!success)
                {
                    return(JsonConvert.SerializeObject("Nothing"));
                }

                //HTTP GET
                string url          = URL + extens + APIKey.apiKey;
                var    responseTask = client.GetAsync(url);
                responseTask.Wait();

                var result = responseTask.Result;
                if (result.IsSuccessStatusCode)
                {
                    var readTask = result.Content.ReadAsStringAsync();
                    readTask.Wait();

                    return(ConvertReceivedData(readTask.Result, query.mediaType));
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "Server error. Please contact administrator.");
                    return("Nothing");
                }
            }
        }
コード例 #5
0
        public IActionResult Transcript(string fileName)
        {
            var transcript = MediaSearch.Create(_azureCredentials.ApiKey, _azureCredentials.MediaServicesAuth)
                             .Transcript(_baseFolder, fileName);

            return(Ok(transcript));
        }
コード例 #6
0
        /// <summary>
        /// get all media in a geogrhpic point
        /// </summary>
        /// <param name="lat">latitude</param>
        /// <param name="lng">longtude</param>
        /// <param name="distance">distance less than 5000 meters</param>
        /// <returns>all media</returns>
        public async Task <MediaSearch> MediaSearch(string lat, string lng, int?distance, string accesstoken)
        {
            MediaSearch media = new MediaSearch();
            string      URL   = _HttpClient.BaseAddress.AbsoluteUri + "media/search?lat=" + lat + "&lng=" + lng + "&access_token=" + accesstoken;

            if (distance != null && distance <= 5000)
            {
                URL += "&distance=" + distance.ToString();
            }
            try
            {
                _ResponseMessage = await _HttpClient.GetAsync(URL);

                if (_ResponseMessage.IsSuccessStatusCode)
                {
                    string responsestring = await _ResponseMessage.Content.ReadAsStringAsync();

                    media = JsonConvert.DeserializeObject <MediaSearch>(responsestring);
                }
                else
                {
                    media.meta.code = int.Parse(_ResponseMessage.StatusCode.ToString());
                }
                return(media);
            }
            catch (Exception ex)
            {
                if (_Telemetryclient != null)
                {
                    _Telemetryclient.TrackException(ex);
                }
                media.meta.code = int.Parse(_ResponseMessage.StatusCode.ToString());
            }
            return(media);
        }
コード例 #7
0
        public IActionResult VTT(string fileName)
        {
            var media = MediaSearch.Create(_azureCredentials.ApiKey, _azureCredentials.MediaServicesAuth)
                        .VTT(_baseFolder, fileName);

            return(File(Encoding.UTF8.GetBytes(media), "text/vtt"));
        }
コード例 #8
0
        public IActionResult TTML(string fileName)
        {
            var media = MediaSearch.Create(_azureCredentials.ApiKey, _azureCredentials.MediaServicesAuth)
                        .TTML(_baseFolder, fileName);

            return(File(Encoding.UTF8.GetBytes(media), "application/ttml+xml"));
        }
コード例 #9
0
ファイル: Cards.cs プロジェクト: Miigg/Maratona-Bots
        public HeroCard CreateCard(MediaSearch media)
        {
            var heroCard = new HeroCard
            {
                Title    = media.title,
                Subtitle = media.overview,
                Images   = new List <CardImage>
                {
                    new CardImage(media.Image,
                                  media.title)
                }
            };

            return(heroCard);
        }
コード例 #10
0
        /// <summary>
        /// get recent media tagged with a tag name
        /// </summary>
        /// <param name="tagname">tag name without #</param>
        /// <param name="max_tag_id">max tag id</param>
        /// <param name="min_tag_id">min tag id</param>
        /// <param name="count">count of retrived media</param>
        /// <returns>recent media tagged by tag name</returns>
        public async Task <MediaSearch> GetRecentTaggedMediaForTagName(string tagname, string max_tag_id = "", string min_tag_id = "", int count = 0)
        {
            MediaSearch media = new MediaSearch();
            string      URL   = _HttpClient.BaseAddress.AbsoluteUri + "tags/" + tagname + "/media/recent?access_token=" + _AccessToken;

            if (max_tag_id != "")
            {
                URL += "&max_tag_id=" + max_tag_id;
            }
            if (min_tag_id != "")
            {
                URL += "&min_tag_id=" + min_tag_id;
            }
            if (count > 0)
            {
                URL += "&count=" + count.ToString();
            }
            try
            {
                _ResponseMessage = await _HttpClient.GetAsync(URL);

                if (_ResponseMessage.IsSuccessStatusCode)
                {
                    string responsestring = await _ResponseMessage.Content.ReadAsStringAsync();

                    media = JsonConvert.DeserializeObject <MediaSearch>(responsestring);
                }
                else
                {
                    media.meta.code = int.Parse(_ResponseMessage.StatusCode.ToString());
                }
                return(media);
            }
            catch (Exception ex)
            {
                if (_Telemetryclient != null)
                {
                    _Telemetryclient.TrackException(ex);
                }
                media.meta.code = int.Parse(_ResponseMessage.StatusCode.ToString());
            }
            return(media);
        }
コード例 #11
0
ファイル: UnMedia.cs プロジェクト: yuvrajb/InstaAPI
        /**************************************************************************************************************************/

        /// <summary>
        ///     <para>searched for media in a given area</para>
        /// </summary>
        /// <param name="Latitude"></param>
        /// <param name="Longitude"></param>
        /// <param name="Parameters"></param>
        /// <returns></returns>
        public MediaSearch GetMediaSearchResult(String Latitude, String Longitude, GetMediaSearchResultParameters Parameters)
        {
            MediaSearch Media = null;

            try
            {
                // SET UP REQUEST URI
                UriBuilder BaseUri = new UriBuilder();
                BaseUri.Scheme = Config.GetUriScheme();
                BaseUri.Host   = Config.GetApiUriString();
                BaseUri.Host  += "/media/search";

                // SET UP QUERY STRING
                NameValueCollection QueryString = System.Web.HttpUtility.ParseQueryString(String.Empty);
                QueryString.Add("lat", Latitude);
                QueryString.Add("lng", Longitude);
                QueryString.Add("client_id", Config.GetClientId());
                QueryString.Add("count", Parameters.Count.ToString());
                QueryString.Add("min_timestamp", Parameters.MinTimestamp);
                QueryString.Add("max_timestamp", Parameters.Maxtimestamp);
                QueryString.Add("distance", Parameters.Distance);

                // SET THE QUERY STRINGS
                BaseUri.Query = QueryString.ToString();

                // CREATE NEW FEEDS OBJECT AND FILL IN DATA
                Media = new MediaSearch();

                // SEND REQUEST
                WebClient Client       = new WebClient();
                byte[]    ResponseData = Client.DownloadData(BaseUri.Uri);
                String    Response     = Encoding.UTF8.GetString(ResponseData);

                // PARSE JSON
                dynamic ParsedJson = JsonConvert.DeserializeObject(Response);

                // CREATE META OBJECT
                MetaData Meta = new MetaData();
                Meta.Code  = ParsedJson.meta.code;
                Media.Meta = Meta;

                // SET FEEDS DATA
                Media.Data = ParseMediaSearchFeeds(ParsedJson);
            }
            catch (WebException WEx)
            {
                // FETCHES ANY ERROR THROWN BY INSTAGRAM API
                Stream ResponseStream = WEx.Response.GetResponseStream();
                if (ResponseStream != null)
                {
                    StreamReader ResponseReader = new StreamReader(ResponseStream);
                    if (ResponseReader != null)
                    {
                        // PARSE JSON
                        dynamic ParsedJson = JsonConvert.DeserializeObject(ResponseReader.ReadToEnd());

                        // CREATE NEW META OBJECT AND FILL IN DATA
                        MetaData Meta = new MetaData();
                        Meta.Code         = ParsedJson.meta.code;
                        Meta.ErrorType    = ParsedJson.meta.error_type;
                        Meta.ErrorMessage = ParsedJson.meta.error_message;
                        Media.Meta        = Meta;
                    }
                }
            }
            catch (Exception Ex)
            {
                Console.WriteLine(Ex.StackTrace);
            }

            return(Media);
        }
コード例 #12
0
        private static async Task Run()
        {
            ForegroundColor = Cyan;
            WriteLine($@"
-----SEARCH-----

1. Search

-----MANAGE-----

2. Index All
3. Index Text/Objects
4. Index Files
5. Index Media

-----CONTENT-----

6. Upload and Analyse Media
7. Upload File

-----DELETE-----

99. Delete Indexes, Sources and Skills

Select option to continue:");

            ResetColor();

            var apiKey            = File.ReadAllText($"{AzureCredentialsPath}/search.private-azure-key");
            var mediaServicesAuth = JsonConvert.DeserializeObject <MediaServicesAuth>(File.ReadAllText($"{AzureCredentialsPath}/media.private-azure-key"));
            var storageKey        = File.ReadAllText($"{AzureCredentialsPath}/storage.private-azure-key");
            var rootPath          = "../AzureSearch";

            switch (ReadLine())
            {
            case "1":
                SearchService
                .Create(apiKey, storageKey, mediaServicesAuth)
                .StartSearch();
                break;

            case "2":
                await TextSearch
                .Create(apiKey, rootPath)
                .Index();

                await FileSearch
                .Create(apiKey, storageKey, rootPath)
                .Index();

                await MediaSearch
                .Create(apiKey, mediaServicesAuth, rootPath)
                .Index();

                break;

            case "3":
                await TextSearch
                .Create(apiKey, rootPath)
                .Index();

                break;

            case "4":
                await FileSearch
                .Create(apiKey, storageKey, rootPath)
                .Index();

                break;

            case "5":
                await MediaSearch
                .Create(apiKey, mediaServicesAuth, rootPath)
                .Index();

                break;

            case "6":
                await MediaSearch
                .Create(apiKey, mediaServicesAuth, rootPath)
                .AnalyseMediaAssets();

                break;

            case "7":
                await FileSearch
                .Create(apiKey, storageKey, rootPath)
                .UploadFileToStorage();

                break;

            case "99":
                await FileSearch
                .Create(apiKey, storageKey, rootPath)
                .Delete();

                break;

            default:
                WriteLine("Invalid option selected");
                break;
            }

            WriteLine($"Press any key to return to main menu");
            ReadKey();
            await Run();
        }