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; } }
/// <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); }
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("검색 패널 추가 완료"); } }); } }
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"); } } }
public IActionResult Transcript(string fileName) { var transcript = MediaSearch.Create(_azureCredentials.ApiKey, _azureCredentials.MediaServicesAuth) .Transcript(_baseFolder, fileName); return(Ok(transcript)); }
/// <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); }
public IActionResult VTT(string fileName) { var media = MediaSearch.Create(_azureCredentials.ApiKey, _azureCredentials.MediaServicesAuth) .VTT(_baseFolder, fileName); return(File(Encoding.UTF8.GetBytes(media), "text/vtt")); }
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")); }
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); }
/// <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); }
/**************************************************************************************************************************/ /// <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); }
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(); }