public ActionResult AddMovieLink(MovieLink model, HttpPostedFileBase file) { model.DownloadCount = 0; ModelState.Remove("LinkUrl"); if (ModelState.IsValid) { model.LinkUrl = model.Magnet; blogService.InsertMovieLink(model); // file if (file.ContentLength > 0) { var fileName = string.Format("{0}-{1}.torrent", model.LinkID, Guid.NewGuid().ToString()); var filePath = HttpContext.Server.MapPath(model.PictureFolder + "/" + fileName); string directory = Path.GetDirectoryName(filePath); if (directory != null && !Directory.Exists(directory)) { Directory.CreateDirectory(directory); } if (System.IO.File.Exists(filePath)) { System.IO.File.Delete(filePath); } file.SaveAs(filePath); model.LinkUrl = fileName; } blogService.UpdateMovieLink(model); } return(RedirectToAction("MovieLinks", new { id = model.MovieID })); }
public ActionResult UpdateMovieLink(MovieLink model, HttpPostedFileBase file) { if (ModelState.IsValid) { if (file.ContentLength > 0) { var fileName = string.Format("{0}-{1}", model.MovieID, model.LinkName); var filePath = HttpContext.Server.MapPath(fileName); string directory = Path.GetDirectoryName(filePath); if (directory != null && !Directory.Exists(directory)) { Directory.CreateDirectory(directory); } if (System.IO.File.Exists(filePath)) { System.IO.File.Delete(filePath); } file.SaveAs(filePath); if (System.IO.File.Exists(model.LinkUrl)) { System.IO.File.Delete(model.LinkUrl); } model.LinkUrl = filePath; } blogService.UpdateMovieLink(model); } return(RedirectToAction("MovieLinks", new { id = model.MovieID })); }
public bool PlayStart(MovieLink link, bool start = true) { this.headerGroupVideoPlayer.ValuesPrimary.Heading = String.Format("{0} - {1}", link.Parent.Name, link.Parent.ReleaseDate.Year); this.currentPlayingVideo = link; UpdateFavouriteButton(dataService.IsFavourite(this.currentPlayingVideo.Parent)); return(start ? PlayStart(link.PlayUrl) : true); }
public ActionResult AddMovieLink(int id) { var link = new MovieLink(); link.MovieID = id; return(View(link)); }
public LinkViewWidget GetItem(MovieLink link) { foreach (LinkViewWidget c in this.tableLayoutPanel.Controls) { if (c.Video == link) return c; } return null; }
private ScrapRequest PopRequest(MovieLink link) { lock (requests) { var r = requests.FirstOrDefault(x => x.Link == link); requests.Remove(r); return(r); } }
public void UpdateMovieLink(MovieLink link) { var link_db = db.MovieLinks.Where(m => m.LinkID == link.LinkID).FirstOrDefault(); link_db.LinkName = link.LinkName; link_db.LinkUrl = link.LinkUrl; link_db.Magnet = link.Magnet; db.SaveChanges(); }
public LinkViewWidget GetItem(MovieLink link) { foreach (LinkViewWidget c in this.tableLayoutPanel.Controls) { if (c.Video == link) { return(c); } } return(null); }
public void OnScrapError(MovieLink link, string message) { this.InvokeEx(() => { this.playerWidget.HideBuffering(); if (this.currentRequestedVideo == link) { KryptonMessageBox.Show(this, message, Constants.AppTitle, MessageBoxButtons.OK, MessageBoxIcon.Warning); } }); }
public void OnScrapVideoDetailsCompleted(MovieLink link) { this.InvokeEx(() => { if (this.currentRequestedVideo == link) { Tracer.WriteLine(String.Format("Playing {0}, Link: {1}", link.PlayUrl, link.DowloadUrl)); this.playerWidget.PlayStart(link); } this.playerWidget.HideBuffering(); }); }
public void LoadVideo(MovieLink video) { this.playerWidget.PlayStop(); this.playerWidget.ShowBuffering(); this.currentRequestedVideo = video; if (video.ScrapState == LinkScrapState.FullyLoaded) OnScrapVideoDetailsCompleted(video); else if (video.ScrapState == LinkScrapState.VideoDoesNotExists) OnScrapError(video, "Video is removed"); else new ScraperService().ScrapVideosDetailsAsync(this, video); }
private void DoDownload(MovieLink movieLink, string filePath) { lock (client) { if (this.stop) { return; } client.DownloadFileCompleted += new System.ComponentModel.AsyncCompletedEventHandler(client_DownloadFileCompleted); client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged); client.DownloadFileAsync(new Uri(movieLink.PlayUrl), filePath); } }
public bool PlayStart(MovieLink link, bool start = true) { this.headerGroupVideoPlayer.ValuesPrimary.Heading = String.Format("{0} - {1}", link.Parent.Name, link.Parent.ReleaseDate.Year); this.currentPlayingVideo = link; UpdateFavouriteButton(dataService.IsFavourite(this.currentPlayingVideo.Parent)); SavePosition(); this.currentPlayingLink = link; if (start) this.axWindowsMediaPlayer.URL = link.PlayUrl; return true; }
public LinkViewWidget(MovieLink data) : this() { data.ScrappingStatusChanged -= new EventHandler<EventArgs>(data_ScrappingStatusChanged); data.ScrappingStatusChanged += new EventHandler<EventArgs>(data_ScrappingStatusChanged); this.SuspendLayout(); this.data = data; this.labelHeader.Text = data.DownloadSiteID; this.labelTitle.Text = data.LinkTitle; this.pictureBoxNew.Visible = Constants.IsNewLink(data); data_ScrappingStatusChanged(this, null); this.ResumeLayout(); }
public LinkViewWidget(MovieLink data) : this() { data.ScrappingStatusChanged -= new EventHandler <EventArgs>(data_ScrappingStatusChanged); data.ScrappingStatusChanged += new EventHandler <EventArgs>(data_ScrappingStatusChanged); this.SuspendLayout(); this.data = data; this.labelHeader.Text = data.DownloadSiteID; this.labelTitle.Text = data.LinkTitle; this.pictureBoxNew.Visible = Constants.IsNewLink(data); data_ScrappingStatusChanged(this, null); this.ResumeLayout(); }
public async Task <bool> AddMovieLinkAsync(MovieLink movieLink) { var movLink = new MovieLink { MovieId = movieLink.MovieId, MovLink = movieLink.MovLink, Quality = movieLink.Quality, Resolation = movieLink.Resolation }; _db.MovieLinks.Add(movLink); await _db.SaveChangesAsync(); return(true); }
public async Task <IActionResult> AddMovieLink(MovieLink movieLink) { if (!ModelState.IsValid) { return(BadRequest()); } var result = await _repo.AddMovieLinkAsync(movieLink); if (result) { return(Ok()); } return(BadRequest()); }
public async Task <bool> EditMovieLinkAsync(MovieLink movieLink, IFormFile video) { var movLink = await _db.MovieLinks.FirstOrDefaultAsync(x => x.Id == movieLink.Id); if (movLink == null) { return(false); } if (video != null && video.Length > 0) { if (movLink.MovLink.ToLower() != video.FileName.ToLower()) { // Real path //filePath = Path.Combine(_host.WebRootPath + "/Videos", movieLink.Video.FileName); var filePath = Path.Combine(@"E:\Lab\AngularTutorial\CinamaMovies\src\assets\videos", video.FileName); using (FileStream fileStream = new FileStream(filePath, FileMode.Create)) { await video.CopyToAsync(fileStream); } } } _db.Attach(movLink); movLink.MovieId = movieLink.MovieId; movLink.Resolation = movieLink.Resolation; movLink.Quality = movieLink.Quality; if (video != null && video.Length > 0) { if (movLink.MovLink.ToLower() != video.FileName.ToLower()) { movLink.MovLink = video.FileName; _db.Entry(movLink).Property(x => x.MovLink).IsModified = true; } } else { movLink.MovLink = movieLink.MovLink; _db.Entry(movLink).Property(x => x.MovLink).IsModified = true; } _db.Entry(movLink).Property(x => x.MovieId).IsModified = true; _db.Entry(movLink).Property(x => x.Resolation).IsModified = true; _db.Entry(movLink).Property(x => x.Quality).IsModified = true; await _db.SaveChangesAsync(); return(true); }
public bool PlayStart(MovieLink link, bool start = true) { this.headerGroupVideoPlayer.ValuesPrimary.Heading = String.Format("{0} - {1}", link.Parent.Name, link.Parent.ReleaseDate.Year); this.currentPlayingVideo = link; UpdateFavouriteButton(dataService.IsFavourite(this.currentPlayingVideo.Parent)); SavePosition(); this.currentPlayingLink = link; if (start) { this.axWindowsMediaPlayer.URL = link.PlayUrl; } return(true); }
public void LoadVideo(MovieLink video) { this.playerWidget.PlayStop(); this.playerWidget.ShowBuffering(); this.currentRequestedVideo = video; if (video.ScrapState == LinkScrapState.FullyLoaded) { OnScrapVideoDetailsCompleted(video); } else if (video.ScrapState == LinkScrapState.VideoDoesNotExists) { OnScrapError(video, "Video is removed"); } else { new ScraperService().ScrapVideosDetailsAsync(this, video); } }
private LinkViewWidget AddItem(MovieLink video) { //create links var widget = new LinkViewWidget(video); widget.Anchor = AnchorStyles.Left | AnchorStyles.Right; widget.Width = this.Width; this.tableLayoutPanel.Controls.Add(widget); Application.DoEvents(); widget.ViewSelected += delegate(object sender, GalleryItemSelectedEventArgs e) { OnItemSelected(sender, e); }; widget.DownloadClicked += delegate(object sender, GalleryItemSelectedEventArgs e) { OnDownloadClicked(sender, e); }; return(widget); }
public MovieLink AddMovieLink(Argon.Movie.Indexer.MovieIndexer.Entities.Movie movie, string provider, string link) { var entity = _noSqlConnector.Query <MovieLink>("movies_link").FirstOrDefault(movieLink => movieLink.MovieId == movie.Id && movieLink.Link == link); if (entity == null) { entity = new MovieLink() { Link = link, Provider = provider, MovieId = movie.Id }; entity = _noSqlConnector.Insert("movies_link", entity); } return(entity); }
private string CreateFilename(MovieLink link) { string fileName = link.Parent.Name + "_" + Path.GetFileName(new Uri(link.PlayUrl).AbsolutePath); foreach (char c in System.IO.Path.GetInvalidFileNameChars()) fileName = fileName.Replace(c, '_'); var f = fileName; for(var i = 0 ; i < 1000; i++) { f = Path.Combine(AppSettings.MovieDownloadFolder, f); if (File.Exists(f)) { var f1 = Path.GetFileNameWithoutExtension(fileName); var f2 = Path.GetExtension(fileName); f = String.Format("{0}({1}){2}", f1, i, f2); continue; } } return f; }
public async Task <IActionResult> EditMovieLink() { var video = HttpContext.Request.Form.Files["video"]; var ilinkId = HttpContext.Request.Form["id"].ToString(); var quality = HttpContext.Request.Form["quality"].ToString(); var res = HttpContext.Request.Form["resolation"].ToString(); var link = HttpContext.Request.Form["movLink"].ToString(); var movId = HttpContext.Request.Form["movieId"].ToString(); var isId = long.TryParse(ilinkId, out long id); var isMovId = long.TryParse(movId, out long movieId); int.TryParse(res, out int resolation); if (!isId || !isMovId) { return(BadRequest()); } var movLink = new MovieLink { Id = id, MovLink = link, Quality = quality, Resolation = resolation, MovieId = movieId }; var result = await _repo.EditMovieLinkAsync(movLink, video); if (result) { return(Ok()); } return(BadRequest()); }
private string CreateFilename(MovieLink link) { string fileName = link.Parent.Name + "_" + Path.GetFileName(new Uri(link.PlayUrl).AbsolutePath); foreach (char c in System.IO.Path.GetInvalidFileNameChars()) { fileName = fileName.Replace(c, '_'); } var f = fileName; for (var i = 0; i < 1000; i++) { f = Path.Combine(AppSettings.MovieDownloadFolder, f); if (File.Exists(f)) { var f1 = Path.GetFileNameWithoutExtension(fileName); var f2 = Path.GetExtension(fileName); f = String.Format("{0}({1}){2}", f1, i, f2); continue; } } return(f); }
public void ScrapVideosDetailsAsync(IScraperServiceCallback callback, MovieLink link) { if (link.ScrapState == LinkScrapState.FullyLoaded) { callback.OnScrapVideoDetailsCompleted(link); return; } else if (link.ScrapState == LinkScrapState.VideoDoesNotExists) { callback.OnScrapError(link, "Video is removed"); return; } lock (requests) { var req = requests.FirstOrDefault(x => x.Link == link); if (req == null) { requests.Add(new ScrapRequest(link, callback)); } else if (!req.Clients.Any(x => x == callback)) { req.Clients.Add(callback); } if (link.ScrapState == LinkScrapState.Scraping) { return; } } link.ScrapState = LinkScrapState.Scraping; ThreadPool.QueueUserWorkItem(delegate { try { link.PlayUrl = ScrapUrl(link.DowloadUrl); link.ScrapState = LinkScrapState.FullyLoaded; link.RetrievedTime = DateTime.Now; Tracer.WriteLine(String.Format("Provider: {0} , Download Link: {1}, View Link: {2}", link.Provider.ID, link.PlayUrl, link.DowloadUrl)); var request = PopRequest(link); foreach (var r in request.Clients) { r.OnScrapVideoDetailsCompleted(link); } } catch (Exception ex) { var se = ex as ScraperException; link.ScrapState = se != null && se.Type == ScraperResult.VideoDoesNotExist ? LinkScrapState.VideoDoesNotExists : LinkScrapState.Idle; Tracer.WriteLine(String.Format("Error: Provider: {0} , View Link: {1}, Msg: {2}", link.Provider.ID, link.DowloadUrl, ex.Message)); var request = PopRequest(link); foreach (var r in request.Clients) { r.OnScrapError(link, ex.Message); } if (link.ScrapState == LinkScrapState.VideoDoesNotExists) { try { var data = new NameValueCollection(); data.Add("link", link.DowloadUrl); UpdaterService.PostResource(UrlConstants.LinkRemovedUrl, data); } catch { } } } }); }
public async Task <bool> AddMovieAsync(IFormFile img, IFormFile video, string story, string movieName, string trailer, string catId, List <int> ids, string[] links) { foreach (var mov in await _db.Movies.ToListAsync()) { if (mov.MovieName.Trim().ToLower() == movieName.Trim().ToLower()) { return(false); } } var movie = new Movie { MovieName = movieName, MovieStory = story, MovieTrailer = trailer, MoviePost = img.FileName, SubCategoryId = int.Parse(catId) }; _db.Movies.Add(movie); await _db.SaveChangesAsync(); foreach (var id in ids) { var movieActors = new MovieActor { MovieId = movie.Id, ActorId = id }; _db.MovieActors.Add(movieActors); await _db.SaveChangesAsync(); } if (links.Count() >= 0) { for (int i = 0; i < links.Count(); i++) { var movieLink = new MovieLink { MovLink = links[i], MovieId = movie.Id }; _db.MovieLinks.Add(movieLink); await _db.SaveChangesAsync(); } } // Real path // var filePath = Path.Combine(_host.WebRootPath + "/images/posts", img.FileName); var filePath = Path.Combine(@"E:\Lab\AngularTutorial\CinamaMovies\src\assets\images\posts", img.FileName); using (FileStream fileStream = new FileStream(filePath, FileMode.Create)) { await img.CopyToAsync(fileStream); } // Real path //filePath = Path.Combine(_host.WebRootPath + "/Videos", video.FileName); filePath = Path.Combine(@"E:\Lab\AngularTutorial\CinamaMovies\src\assets\videos", video.FileName); using (FileStream fileStream = new FileStream(filePath, FileMode.Create)) { await video.CopyToAsync(fileStream); var movieLink = new MovieLink { MovLink = video.FileName, MovieId = movie.Id }; _db.MovieLinks.Add(movieLink); await _db.SaveChangesAsync(); } return(true); }
public static bool IsNewLink(MovieLink link) { return(link.Version > (AppSettings.LastDBVersion - 2)); }
public void OnScrapError(MovieLink link, string message) { }
public void OnScrapVideoDetailsCompleted(MovieLink link) { di.FilePath = CreateFilename(link); DoDownload(link, di.FilePath); }
public void PlayStop() { SavePosition(); this.axWindowsMediaPlayer.URL = String.Empty; this.currentPlayingLink = null; }
private void DoDownload(MovieLink movieLink, string filePath) { lock (client) { if (this.stop) return; client.DownloadFileCompleted += new System.ComponentModel.AsyncCompletedEventHandler(client_DownloadFileCompleted); client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged); client.DownloadFileAsync(new Uri(movieLink.PlayUrl), filePath); } }
public void ScrapVideosDetailsAsync(IScraperServiceCallback callback, MovieLink link) { if (link.ScrapState == LinkScrapState.FullyLoaded) { callback.OnScrapVideoDetailsCompleted(link); return; } else if (link.ScrapState == LinkScrapState.VideoDoesNotExists) { callback.OnScrapError(link, "Video is removed"); return; } lock (requests) { var req = requests.FirstOrDefault(x => x.Link == link); if (req == null) requests.Add(new ScrapRequest(link, callback)); else if (!req.Clients.Any(x => x == callback)) req.Clients.Add(callback); if (link.ScrapState == LinkScrapState.Scraping) return; } link.ScrapState = LinkScrapState.Scraping; ThreadPool.QueueUserWorkItem(delegate { try { link.PlayUrl = ScrapUrl(link.DowloadUrl); link.ScrapState = LinkScrapState.FullyLoaded; link.RetrievedTime = DateTime.Now; Tracer.WriteLine(String.Format("Provider: {0} , Download Link: {1}, View Link: {2}", link.Provider.ID, link.PlayUrl, link.DowloadUrl)); var request = PopRequest(link); foreach(var r in request.Clients) r.OnScrapVideoDetailsCompleted(link); } catch (Exception ex) { var se = ex as ScraperException; link.ScrapState = se != null && se.Type == ScraperResult.VideoDoesNotExist ? LinkScrapState.VideoDoesNotExists : LinkScrapState.Idle; Tracer.WriteLine(String.Format("Error: Provider: {0} , View Link: {1}, Msg: {2}", link.Provider.ID, link.DowloadUrl, ex.Message)); var request = PopRequest(link); foreach (var r in request.Clients) r.OnScrapError(link, ex.Message); if (link.ScrapState == LinkScrapState.VideoDoesNotExists) { try { var data = new NameValueCollection(); data.Add("link", link.DowloadUrl); UpdaterService.PostResource(UrlConstants.LinkRemovedUrl, data); } catch { } } } }); }
public void InsertMovieLink(MovieLink link) { db.MovieLinks.Add(link); db.SaveChanges(); }
private ScrapRequest PopRequest(MovieLink link) { lock (requests) { var r = requests.FirstOrDefault(x => x.Link == link); requests.Remove(r); return r; } }
public void OnScrapError(MovieLink link, string message) { this.InvokeEx(() => { this.playerWidget.HideBuffering(); if (this.currentRequestedVideo == link) KryptonMessageBox.Show(this, message, Constants.AppTitle, MessageBoxButtons.OK, MessageBoxIcon.Warning); }); }
public bool PlayStart(MovieLink link, bool start = true) { this.headerGroupVideoPlayer.ValuesPrimary.Heading = String.Format("{0} - {1}", link.Parent.Name, link.Parent.ReleaseDate.Year); this.currentPlayingVideo = link; UpdateFavouriteButton(dataService.IsFavourite(this.currentPlayingVideo.Parent)); return start ? PlayStart(link.PlayUrl) : true; }
private LinkViewWidget AddItem(MovieLink video) { //create links var widget = new LinkViewWidget(video); widget.Anchor = AnchorStyles.Left | AnchorStyles.Right; widget.Width = this.Width; this.tableLayoutPanel.Controls.Add(widget); Application.DoEvents(); widget.ViewSelected += delegate(object sender, GalleryItemSelectedEventArgs e) { OnItemSelected(sender, e); }; widget.DownloadClicked += delegate(object sender, GalleryItemSelectedEventArgs e) { OnDownloadClicked(sender, e); }; return widget; }
public void OnScrapVideoDetailsCompleted(MovieLink link) { throw new NotImplementedException(); }
public ScrapRequest(MovieLink link, IScraperServiceCallback client) { Link = link; Clients = new List <IScraperServiceCallback>(); Clients.Add(client); }
public ScrapRequest(MovieLink link, IScraperServiceCallback client) { Link = link; Clients = new List<IScraperServiceCallback>(); Clients.Add(client); }
public void DeleteMovieLink(MovieLink link) { db.MovieLinks.Remove(link); db.SaveChanges(); }