public ActionResult Get() { var fromMe = session.Get(_ => _.FromUserName == User.Identity.Name); var toMe = session.Get(_ => _.ToUserName == User.Identity.Name); return(Json(new { From = fromMe, To = toMe }, JsonRequestBehavior.AllowGet)); }
public ActionResult Project() { var currentClient = session.Get(_ => _.UserName == User.Identity.Name).SingleOrDefault(); var currentProjects = projSession.Get(_ => _.UserName == User.Identity.Name).OrderByDescending(x => x.Id).ToList(); return(View(currentProjects)); }
public static string MediaUrlEncode(string url, string mime) { if (!url.Contains("&")) { return(url); } var hash = MD5Hash(url); var client = new MongoSession <EnclosureLink>(); var stored = client.Get(_ => _.ShortUrl == hash).FirstOrDefault(); if (stored == null) { var linkObject = new EnclosureLink { RealUrl = url, ShortUrl = hash }; client.Save(linkObject); stored = linkObject; } string ext = ".mp3"; if (mime == "audio/aac") { ext = ".aac"; } if (mime == "audio/ogg") { ext = ".ogg"; } var link = "http://slovo.io/a/" + stored.ShortUrl + ext; return(link); }
private Podcast UpdatePodcastItems(Podcast podcast, MongoSession <Podcast> session) { if (DateTime.UtcNow.Subtract(podcast.BuildTimestamp).TotalMinutes > 30) { var items = new List <Item>(); if (podcast.Podcasts != null && podcast.Podcasts.Count > 0) { var podcasts = new List <Podcast>(); var pods = podcast.Podcasts.Select(pod => session.Get(_ => _.Id == pod).FirstOrDefault()); foreach (var pod in pods) { if (pod == null) { continue; } var p = UpdatePodcastItems(pod, session); podcasts.Add(p); } // HACK items = podcasts.SelectMany(p => p.Items).OrderByDescending(p => Utils.ConvertFromPubDate(p.PubDate)).ToList(); } else { items = Parsers.GetParser(podcast.Host).Parse(podcast.Link).Items; } podcast.Items = items; podcast.BuildTimestamp = DateTime.UtcNow; session.Save(podcast); } return(podcast); }
public IActionResult List(string filter, string sort = "{_id : 1 }") { var podcasts = new List <Podcast>(); var session = new MongoSession <Podcast>(); if (!string.IsNullOrWhiteSpace(filter)) { podcasts = session.Get(filter, sort); } else { podcasts = session.Get(_ => true) .OrderByDescending(_ => _.BuildTimestamp) .ToList(); } return(Json(podcasts)); }
public IActionResult Delete([FromBody] Podcast podcast) { if (!string.IsNullOrWhiteSpace(podcast.Id)) { var session = new MongoSession <Podcast>(); var stored = session.Get(_ => _.Id == podcast.Id).FirstOrDefault(); if (stored != null) { session.Delete(stored); return(new StatusCodeResult(200)); } } return(new StatusCodeResult(400)); }
// s public IActionResult Show(string id) { if (!string.IsNullOrWhiteSpace(id)) { var session = new MongoSession <Podcast>(); var podcast = session.Get(p => p.Name == id.ToLower().Trim()).FirstOrDefault(); if (podcast == null) { return(new StatusCodeResult(404)); } podcast = UpdatePodcastItems(podcast, session); return(Json(podcast)); } return(new StatusCodeResult(200)); }
public IActionResult Audio(string fileName, string fileExtensionWithoutDot) { var client = new MongoSession <EnclosureLink>(); var url = client.Get(_ => _.ShortUrl == fileName).FirstOrDefault(); if (url == null) { return(new StatusCodeResult(404)); } else { var realUrl = url.RealUrl; return(Redirect(url.RealUrl)); } }
public IActionResult Index([FromBody] JObject obj) { var session = new MongoSession <Podcast>(); var address = obj["address"].ToString().Trim().TrimEnd('/'); var name = obj["name"].ToString().ToLower().Trim(); var category = obj["category"].ToString(); if (Uri.TryCreate(address, UriKind.Absolute, out Uri uri)) { var storedCasts = session.Get(p => p.Link == address || p.Name == name); Podcast podcast; if (storedCasts.Count != 0) { podcast = storedCasts.First(); } else { string host = uri.Host; if (uri.Host == "youtu.be" || uri.Host == "youtube.com") { host = "www.youtube.com"; } podcast = Parsers.GetParser(host).Parse(address); podcast.Category = category; podcast.Name = CleanName(name); session.Save(podcast); } //string xmlPodcast = XmlParser.Parse(podcast); return(Json(podcast)); } else { return(Json(null)); } }
public IActionResult Update([FromBody] Podcast podcast) { if (!string.IsNullOrWhiteSpace(podcast.Id)) { var session = new MongoSession <Podcast>(); var stored = session.Get(_ => _.Id == podcast.Id).FirstOrDefault(); if (stored != null) { stored.Name = CleanName(podcast.Name); stored.Title = podcast.Title; stored.Description = podcast.Description; stored.Copyright = podcast.Copyright; stored.Author = podcast.Author; stored.Link = podcast.Link; stored.Image = podcast.Image; stored.Language = podcast.Language; stored.Category = podcast.Category; session.Save(stored); return(new StatusCodeResult(200)); } } return(new StatusCodeResult(400)); }
public ActionResult Dashboard() { var currentContractor = session.Get(_ => _.UserName == User.Identity.Name).SingleOrDefault(); return(View(currentContractor)); }
public IActionResult Names() { var session = new MongoSession <Podcast>(); return(Json(session.Get(_ => true).Select(_ => _.Name))); }