Пример #1
0
        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));
        }
Пример #2
0
        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));
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
0
        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));
        }
Пример #6
0
 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));
 }
Пример #7
0
 // 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));
 }
Пример #8
0
        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));
            }
        }
Пример #9
0
        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));
            }
        }
Пример #10
0
 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));
 }
Пример #11
0
        public ActionResult Dashboard()
        {
            var currentContractor = session.Get(_ => _.UserName == User.Identity.Name).SingleOrDefault();

            return(View(currentContractor));
        }
Пример #12
0
        public IActionResult Names()
        {
            var session = new MongoSession <Podcast>();

            return(Json(session.Get(_ => true).Select(_ => _.Name)));
        }