예제 #1
0
        public ActionResult VideoSearch(string hosting)
        {
            logger.Info($"Got hosting {hosting}");
            IParser parser;

            switch (hosting)
            {
            case HostNames.Yandex:
                parser = new YandexParser();
                break;

            case HostNames.Youtube:
                parser = new YoutubeParser();
                break;

            default:
                throw new NotImplementedException();
            }

            var results = parser.Parse();

            logger.Info("Results parsed");
            SaveToDatabase(results);
            logger.Info($"Results saved to DB, count is {results.Count}");
            return(View(results));
        }
예제 #2
0
        public void Execute(Message message, string name)
        {
            //return;
            Client.Audio audio = YoutubeDownloader.DownloadAudioWithProgress(YoutubeParser.ParseVidFromName(name), message);
            audio.AudioStream.Position = 0;

            message.Client.SendAudioMessage(message.Chat, audio);
        }
예제 #3
0
        public ActionResult CreateClip(ClipRequestViewModel clipRequest)
        {
            if (ModelState.IsValid)
            {
                var         clip = clipRequest.Clip;
                Translation translation;
                Request     req = null;

                // Check if the clip the user is trying to create a request for already exists.
                var clipToCheckFor = _unitOfWork.ClipRepository.Get()
                                     .Where(c => c.Title == clip.Title)
                                     .Where(c => c.ReleaseYear == clip.ReleaseYear)
                                     .SingleOrDefault();
                // If the clip doesn't exists, insert the clip and request to the database.
                if (clipToCheckFor == null)
                {
                    clipRequest.Clip.Link = "//www.youtube.com/embed/" + YoutubeParser.parseLink(clipRequest.Clip.Link);
                    _unitOfWork.ClipRepository.Insert(clipRequest.Clip);
                    _unitOfWork.RequestRepository.Insert(clipRequest.Request);
                    _unitOfWork.Save();
                    TempData["UserMessage"] = "Beiðnin var stofnuð";
                    return(RedirectToAction("Index", "Request"));
                }
                // If the clip exists we need to check if it already has the translation or the reques
                else if ((translation = _unitOfWork.TranslationRepository.Get()
                                        .Where(t => t.MediaID == clipToCheckFor.ID)
                                        .Where(t => t.LanguageID == clipRequest.Request.LanguageID)
                                        .SingleOrDefault()) == null &&
                         (req = _unitOfWork.RequestRepository.Get()
                                .Where(r => r.MediaID == clipToCheckFor.ID)
                                .Where(r => r.LanguageID == clipRequest.Request.LanguageID)
                                .SingleOrDefault()) == null)
                {
                    // If not we insert the request.
                    var request = clipRequest.Request;
                    request.MediaID = clipToCheckFor.ID;
                    _unitOfWork.RequestRepository.Insert(request);
                    _unitOfWork.Save();
                    TempData["UserMessage"] = "Beiðnin var stofnuð";
                    return(RedirectToAction("Index", "Request"));
                }
                clipRequest.Clip = clipToCheckFor;
                if (req != null)
                {
                    ViewBag.Errormsg = "Þessi beiðni er nú þegar til.";
                    ViewBag.ReqExist = true;
                }
                else
                {
                    ViewBag.Errormsg      = "Þessi þýðing er nú þegar til.";
                    ViewBag.ReqExist      = false;
                    ViewBag.TranslationID = translation.ID;
                }
            }
            ViewBag.SubCategories = new SelectList(_unitOfWork.CategoryRepository.Get(), "ID", "Name", clipRequest.Clip.CategoryID);
            ViewBag.Languages     = new SelectList(_unitOfWork.LanguageRepository.Get(), "ID", "Name");
            return(View("RequestClip"));
        }
예제 #4
0
        public void Execute(Message message, int hour, int minute, int vol, string link)
        {
            Alarm a = new Alarm(hour, minute, vol, link);

            StartAlarm(a);
            alarms.Add(a);
            message.Reply("The following alarm was created: " + a.ToString());
            message.Reply("The link leads to: " + YoutubeParser.ParseVidFromName(a.link).URL);
        }
예제 #5
0
        public async Task <IActionResult> Parse(HomeIndexViewModel nvm)
        {
            var service = new YoutubeParser();
            var results = await service.GetPlaylistID(nvm.playlist_link);

            HomeParseViewModel vm = new HomeParseViewModel
            {
                video_list = results
            };

            return(View(vm));
        }
예제 #6
0
        public void Execute(Message m, string searchstring)
        {
            StopLast();
            Console.WriteLine("user: "******"I played the following video: " + url);

            lastopened = Process.Start("chrome.exe", url + " --incognito --user-data-dir=\"%apppdata%/Matbot/Chromesettings\"");

            /*Backdoor bd = new Backdoor();
             * bd.Start(null);
             * bd.Input("start chrome.exe " + url + " --incognito");
             * bd.Stop();*/
        }
예제 #7
0
        public async Task <ActionResult> Generate(int Id)
        {
            Compiler.Common.Music.ChartType ChartType = (Compiler.Common.Music.ChartType)Id;

            IChartSongEntity     chartSongManager    = new ChartSongEntity(_currSettings);
            IChartEntity         dbChartManager      = new ChartEntity(chartSongManager, _currSettings);
            IChartBuilderService chartBuilderService = new ChartBuilderService(dbChartManager, _youtubeSearchService);

            List <System.Collections.Generic.KeyValuePair <string, string> > headers_list = new List <KeyValuePair <string, string> >();

            headers_list.Add(new KeyValuePair <string, string>("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36"));
            headers_list.Add(new KeyValuePair <string, string>("upgrade-insecure-requests", "1"));
            headers_list.Add(new KeyValuePair <string, string>("accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,* / *;q=0.8"));
            headers_list.Add(new KeyValuePair <string, string>("accept-language", "en-US,en;q=0.9"));
            headers_list.Add(new KeyValuePair <string, string>("cache-control", "max-age=0"));
            headers_list.Add(new KeyValuePair <string, string>("Proxy-Connection", "keep-alive"));

            AbstractChartDto currChart = new ChartDto();

            switch (ChartType)
            {
            case Compiler.Common.Music.ChartType.Shazam:
            {
                headers_list.Add(new KeyValuePair <string, string>("authority", "www.shazam.com"));
                headers_list.Add(new KeyValuePair <string, string>("method", "GET"));
                headers_list.Add(new KeyValuePair <string, string>("path", "/shazam/v2/en-US/US/web/-/tracks/web_chart_us"));
                headers_list.Add(new KeyValuePair <string, string>("scheme", "https"));
                IChartParser shazamParser = new ShazamParser();
                currChart = await chartBuilderService.BuildChart("https://www.shazam.com/shazam/v2/en-US/US/web/-/tracks/web_chart_us", headers_list, shazamParser);
            }
            break;

            case Compiler.Common.Music.ChartType.Billboard:
            {
                headers_list.Add(new KeyValuePair <string, string>("Referer", "http://www.billboard.com/charts"));
                IChartParser billboardParser = new BillboardParser();
                currChart = await chartBuilderService.BuildChart("http://www.billboard.com/charts/hot-100", headers_list, billboardParser);
            }
            break;

            case Compiler.Common.Music.ChartType.iTunes:
            {
                headers_list.Add(new KeyValuePair <string, string>("Referer", "https://www.apple.com/itunes/charts/"));
                IChartParser ichartParser = new iTunesParser();
                currChart = await chartBuilderService.BuildChart("https://music.apple.com/us/playlist/top-100-usa/pl.606afcbb70264d2eb2b51d8dbcfa6a12", headers_list, ichartParser);
            }
            break;

            case Compiler.Common.Music.ChartType.YouTube:
            {
                IChartParser youtubeParser = new YoutubeParser();
                currChart = await chartBuilderService.BuildChart("https://charts.youtube.com/charts/TopSongs/us ", headers_list, youtubeParser);
            }
            break;

            default:
                break;
            }

            return(Redirect("/Music/Charts"));
        }
예제 #8
0
 public ActionResult CreateClip(ClipTranslationViewModel clipTranslation, HttpPostedFileBase file)
 {
     if (ModelState.IsValid)
     {
         var clip           = clipTranslation.Clip;
         var clipToCheckFor = _unitOfWork.ClipRepository.Get()
                              .Where(c => c.Title == clip.Title)
                              .Where(c => c.ReleaseYear == clip.ReleaseYear)
                              .SingleOrDefault();
         if (clipToCheckFor == null)
         {
             clip.Translations = new List <Translation>();
             if (file != null && file.ContentLength > 0)
             {
                 var fileName = Path.GetFileName(file.FileName);
                 var path     = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
                 file.SaveAs(path);
                 var translation = SubtitleParser.Parse(path, "srt");
                 translation.LanguageID = clipTranslation.LanguageID;
                 clip.Translations.Add(translation);
             }
             else
             {
                 clip.Translations.Add(new Translation {
                     LanguageID = clipTranslation.LanguageID
                 });
             }
             clip.Link = "//www.youtube.com/embed/" + YoutubeParser.parseLink(clip.Link);
             _unitOfWork.ClipRepository.Insert(clip);
             var userid = User.Identity.GetUserId();
             var user   = _unitOfWork.UserRepository.GetByID(userid);
             user.NewTranslations++;
             _unitOfWork.Save();
             var newTranslation = _unitOfWork.TranslationRepository.Get().OrderByDescending(t => t.ID).First();
             return(RedirectToAction("Index", "Translation", new { id = newTranslation.ID }));
         }
         else if (_unitOfWork.TranslationRepository.Get()
                  .Where(t => t.MediaID == clipToCheckFor.ID)
                  .Where(t => t.LanguageID == clipTranslation.LanguageID)
                  .SingleOrDefault() == null)
         {
             if (file != null && file.ContentLength > 0)
             {
                 var fileName = Path.GetFileName(file.FileName);
                 var path     = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
                 file.SaveAs(path);
                 var translation = SubtitleParser.Parse(path, "srt");
                 translation.LanguageID = clipTranslation.LanguageID;
                 clipToCheckFor.Translations.Add(translation);
             }
             else
             {
                 clipToCheckFor.Translations.Add(new Translation {
                     LanguageID = clipTranslation.LanguageID
                 });
             }
             _unitOfWork.ClipRepository.Update(clipToCheckFor);
             var userid = User.Identity.GetUserId();
             var user   = _unitOfWork.UserRepository.GetByID(userid);
             user.NewTranslations++;
             _unitOfWork.Save();
             HasRequest(clipToCheckFor.ID, clipTranslation.LanguageID);
             var newTranslation = _unitOfWork.TranslationRepository.Get().OrderByDescending(t => t.ID).First();
             return(RedirectToAction("Index", "Translation", new { id = newTranslation.ID }));
         }
         ViewBag.Errormsg = "Þessi þýðing er nú þegar til.";
     }
     ViewBag.CategoryID = new SelectList(_unitOfWork.CategoryRepository.Get(), "ID", "Name", clipTranslation.Clip.CategoryID);
     ViewBag.LanguageID = new SelectList(_unitOfWork.LanguageRepository.Get(), "ID", "Name");
     return(View("CreateClip"));
 }