예제 #1
0
파일: Main.cs 프로젝트: fanxy121/AllInOneAV
        private void ShowRenameInfo(AV av = null)
        {
            if (currentFi != null)
            {
                if (av == null)
                {
                    av = currentAVS[indexOfCurrentAV];
                }

                txtRenameID.Text       = av.ID;
                txtRenameTitle.Text    = av.Name;
                txtRenameCategory.Text = av.Category;
                txtRenameCompany.Text  = av.Company;
                txtRenameYear.Text     = av.ReleaseDate.ToString("yyyy-MM-dd");
                txtRenameActress.Text  = av.Actress;
                txtReanmeLength.Text   = av.AvLength + "";
                txtKeyword.Text        = av.ID;

                ShowRenamePic(av);

                txtRenameFinal.Text = av.ID + av.Name + "-fin" + currentFi.Extension;
                btnConfirm.Enabled  = true;
            }
            else
            {
                MessageBox.Show("No file selected.");
            }
        }
예제 #2
0
        public static int InsertAV(AV av)
        {
            var sql = @"INSERT INTO AV (ID, Name, Company, Director, Publisher, Category, Actress, ReleaseDate, AvLength, CreateTime, PictureURL, URL) 
                        VALUES (@ID, @Name, @Company, @Director, @Publisher, @Category, @Actress, @ReleaseDate, @AvLength, GETDATE(), @PictureURL, @URL)";

            return(Execute(ConnectionStrings.Jav, sql, av));
        }
예제 #3
0
        public static void SaveAV(AV av, JavLibraryLog _logger)
        {
            var pool = ConnectionPool.getPool();

            try
            {
                mycon = pool.getConnection();

                var sql = string.Format("insert into av values ('{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', {8}, '{9}', '{10}', '{11}')", av.ID.Trim(), av.Name.Trim(), av.Company.Trim(), av.Directory.Trim(), av.Publisher.Trim(), av.Category.Trim(), av.Actress.Trim(), av.ReleaseDate, av.AvLength, av.CreateTime, av.PictureURL, av.URL);
                ExecuteQuery(sql);

                pool.closeConnection(mycon);

                Console.WriteLine(string.Format("Save AV {0} success", av.ID));
                _logger.WriteLog("download", string.Format("Save AV {0} success", av.ID));

                UpdateScanURL(av.URL, _logger);
            }
            catch (Exception e)
            {
                pool.closeConnection(mycon);

                _logger.WriteExceptionLog("", string.Format("Save AV {0} failed, {1}", av.ID, e.ToString()));
                Console.WriteLine(string.Format("Save AV {0} failed, {1}", av.ID, e.ToString()));
            }
        }
예제 #4
0
        /// <summary>
        /// 根据一个AV,创建一个可以用来图片下载策略
        /// </summary>
        /// <param name="av"></param>
        /// <returns></returns>
        public static Request CreateRequest(AV av)
        {
            var img = new ImageTag()
            {
                ImageUrl      = av.pic,
                AvId          = av.Id,
                UpId          = av.UpId,
                LocalFileName = GetLocalFile(av.pic)
            };

            var trueFile = Path.Combine(DefaultImagePath, img.LocalFileName);

            if (File.Exists(trueFile))
            {
                // 本地下载过文件,就不考虑再下载图片数据了
                return(null);
            }

            var ret = new Request
            {
                RequestUri = new Uri(img.ImageUrl),
            };

            ret.Properties["requestType"]         = "image";
            ret.Properties[typeof(ImageTag).Name] = img;

            return(ret);
        }
예제 #5
0
 void Video_DataReceived(object sender, VideoEventArgs e)
 {
     this.Dispatcher.Invoke(new Action(() =>
     {
         image.Source = AV.ChangeBitmapToImageSource(e.Data);
     }));
 }
        public List <PermissaoRegra> GetPermissoesObjeto(int idObjeto, int idAplicacao)
        {
            try
            {
                using (var ctx = new DesenvContext())
                {
                    var itensAplicativo = (from po in ctx.tblAccess_PermissionObject
                                           join pr in ctx.tblAccess_Permission_Rule on po.intPermissaoRegraId equals pr.intPermissaoRegraId
                                           join av in ctx.tblAvisos on pr.intMensagemId equals av.intAvisoID into AV
                                           from av in AV.DefaultIfEmpty()
                                           where po.intObjectId == idObjeto &&
                                           (po.intApplicationID == -1 || po.intApplicationID == idAplicacao)
                                           select new PermissaoRegra
                    {
                        Id = po.intPermissionObject,
                        Regra = new Regra {
                            Id = pr.intRegraId
                        },
                        Descricao = pr.txtDescricao,
                        Ordem = po.intOrdem,
                        AcessoId = pr.intAccessoId,
                        MensagemId = av.intAvisoID,
                        DescricaoMensagem = av.txtDescricao
                    }).ToList();


                    return(itensAplicativo);
                }
            }
            catch
            {
                throw;
            }
        }
예제 #7
0
파일: Main.cs 프로젝트: fanxy121/AllInOneAV
        private void ShowRenamePic(AV av)
        {
            var file = FileUtility.GetImageFile(imageFolder, av);

            if (!string.IsNullOrEmpty(file))
            {
                pictureRename.Image = Image.FromFile(file);
            }
        }
예제 #8
0
        private static void ScanEachAv(ScanURL url, string status, bool force = false)
        {
            AV av = new AV();

            if (!JavDataBaseManager.HasAv(url.URL) || force)
            {
                var htmlRes = JavCookieContanierHelper(url.URL);

                if (htmlRes.Success)
                {
                    HtmlAgilityPack.HtmlDocument htmlDocument = new HtmlAgilityPack.HtmlDocument();
                    htmlDocument.LoadHtml(htmlRes.Content);

                    av = GenerateAVModel(htmlRes.Content, url.URL);

                    if (!force)
                    {
                        JavDataBaseManager.InsertAV(av);

                        Console.WriteLine("线程 " + Thread.CurrentThread.ManagedThreadId.ToString() + " => 插入AV => " + av.ID + " - " + av.Name + " " + status);
                        JavDataBaseManager.UpdateScanURL(url.URL);

                        Console.WriteLine("AV:" + JsonConvert.SerializeObject(new RefreshModel
                        {
                            Id   = av.ID,
                            Name = av.Name,
                            Url  = av.PictureURL
                        })
                                          );
                    }

                    string result = "";
                    if (!File.Exists(ImgFolder + av.ID + av.Name + ".jpg"))
                    {
                        result = DownloadHelper.DownloadHttps(av.PictureURL, ImgFolder + av.ID + av.Name + ".jpg", "");

                        if (string.IsNullOrEmpty(result))
                        {
                            Console.WriteLine("线程 " + Thread.CurrentThread.ManagedThreadId.ToString() + " => 下载AV图片成功 => " + av.ID + " - " + av.Name);
                        }
                        else
                        {
                            Console.WriteLine(result);
                        }
                    }
                    else
                    {
                        Console.WriteLine("已存在图片不下载");
                    }
                }
            }
            else
            {
                Console.WriteLine("已存在 => " + url.URL + " " + status);
                JavDataBaseManager.UpdateScanURL(url.URL);
            }
        }
예제 #9
0
 private static void UpdateAVData(AV dbItem, ArchivesItem item)
 {
     dbItem.title     = item.title;
     dbItem.videos    = item.videos;
     dbItem.ctime     = item.ctime;
     dbItem.ctime2    = item.ctime.UnixToDateTime().ToString("yyyy-MM-dd HH:mm:ss");
     dbItem.pic       = item.pic;
     dbItem.stat      = item.stat;
     dbItem.copyright = item.copyright;
     dbItem.view      = item.stat.view;
 }
예제 #10
0
 private void ResetUI()
 {
     currentAv         = null;
     pictureBox1.Image = null;
     txtTitle.Text     = "";
     txtActress.Text   = "";
     txtCategory.Text  = "";
     txtCompany.Text   = "";
     txtPublisher.Text = "";
     txtLength.Text    = "";
     txtDate.Text      = "";
     txtPossible.Text  = "";
 }
예제 #11
0
        static void TestCodec()
        {
            AV.avcodec_register_all();

            System.Type type = typeof(AV.AVCodecID);
            foreach (string name in type.GetEnumNames())
            {
                AV.AVCodecID v       = (AV.AVCodecID)Enum.Parse(type, name);
                IntPtr       codec   = AV.avcodec_find_decoder(v);
                string       enabled = (codec == IntPtr.Zero) ? "disable" : "enable";
                Console.WriteLine("{0}: {1}", name, enabled);
            }
        }
예제 #12
0
        public static string GetImageFile(string folder, AV av)
        {
            var file = folder + av.ID + av.Name + ".jpg";

            if (File.Exists(file))
            {
                return(file);
            }
            else
            {
                return("");
            }
        }
예제 #13
0
        public static BusLibMatchResultModel GetMatchJavDetail(AV javBusRecord)
        {
            BusLibMatchResultModel ret = new BusLibMatchResultModel
            {
                Matches = new List <AV>(),
                IsMatch = false
            };

            javBusRecord.Name = FileUtility.ReplaceInvalidChar(javBusRecord.Name);
            ret.Matches.Add(javBusRecord);
            ret.IsMatch = false;

            return(ret);
        }
예제 #14
0
        public static AV GetAvFromUrl(string url)
        {
            AV ret = new AV();

            GetJavCookie(false);

            var htmlRes = JavCookieContanierHelper(url);

            if (htmlRes.Success)
            {
                ret = GenerateAVModel(htmlRes.Content, url);
            }

            return(ret);
        }
        protected override void Update(GameTime gameTime)
        {
            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
            {
                Exit();
            }

            AV.GetCurrentRoom().Update(gameTime);

            Player.Update(gameTime);

            camera.Follow(Player);

            SetDrawMode();

            base.Update(gameTime);
        }
예제 #16
0
        public static string WriteMetaData(AV av, string file, string pre, int epi = 0, int count = 1, string lang = "Japanese")
        {
            string ret = "";

            try
            {
                var tfile = TagLib.File.Create(file);

                var reasons = tfile.CorruptionReasons;

                if (reasons.Any())
                {
                    var first = reasons.FirstOrDefault();
                }

                tfile.Tag.Title     = av.Name;
                tfile.Tag.TitleSort = av.ID;

                if (epi > 0)
                {
                    tfile.Tag.Disc      = (uint)epi;
                    tfile.Tag.DiscCount = (uint)count;
                }

                tfile.Tag.Lyrics = lang;

                tfile.Tag.AlbumArtists = av.Actress.Split(',').Where(x => !string.IsNullOrEmpty(x)).ToArray();
                tfile.Tag.Genres       = av.Category.Split(',').Where(x => !string.IsNullOrEmpty(x)).ToArray();
                tfile.Tag.Composers    = av.Director.Split(',').Where(x => !string.IsNullOrEmpty(x)).ToArray();
                tfile.Tag.Year         = (uint)av.ReleaseDate.Year;
                tfile.Tag.Album        = pre;
                tfile.Tag.Comment      = av.URL;
                tfile.Save();

                ret = "";
            }
            catch (Exception ee)
            {
                ret = ee.ToString();
            }

            return(ret);
        }
        public entrenamiento_1(string perfil)
        {
            InitializeComponent();
            int rv = AV.avf_crear_entrenador(out entrenador);

            if (rv == AV.AVS_SIN_MEMORIA)
            {
                errorlabel.Text    = "No hay memoria disponible, por favor cierre \nalgunas aplicaciones y reinteéntelo más tarde";
                errorlabel.Visible = true;
                errorpanel.Visible = true;
                throw new OutOfMemoryException();
            }
            if (rv != 0)
            {
                throw new InvalidOperationException();
            }
            this.perfil = perfil;
            G.crear_form_comando();
            #if DEBUG
            G.comando_form.Show();
            #endif
        }
예제 #18
0
        public comando()
        {
            InitializeComponent();
            Choices comandos = new Choices();

            comandos.Add(new string[] {
                "uno", "dos", "tres", "cuatro", "cinco", "seis", "siete", "ocho", "contactos", "asuntos",
                "mensajes", "recibidos", "enviados", "eliminar", "actualizar", "redactar", "anterior", "siguiente",
                "aceptar", "para", "enviar", "cerrar", "cancelar", "responder", "reenviar", "leer", "cerrar sesión"
            });
            GrammarBuilder gBuilder = new GrammarBuilder();

            gBuilder.Append(comandos);
            Grammar grammar = new Grammar(gBuilder);

            recEngine.LoadGrammarAsync(grammar);
            recEngine.SetInputToDefaultAudioDevice();
            recEngine.SpeechRecognized += recEngine_SpeechRecognized;
            if ((Form.ActiveForm.Name == "crear_cuenta") || (Form.ActiveForm.Name == "entrenamiento_1"))
            {
                return;
            }
            int rv;

            if (G.user.PAV != null)
            {
                rv = AV.avf_crear_autenticador("perfiles\\" + G.user.PAV, out autenticador);
            }
            else
            {
                rv = AV.AVS_PUNTERO_NULO;
            }
            if ((rv != 0) && (rv != AV.AVS_PUNTERO_NULO))
            {
                MessageBox.Show("Hubo un error cargando su perfil de autenticación de voz. Por favor, cree la cuenta nuevamente." +
                                " (0x" + rv.ToString("X8") + ")", "Error cargando cuenta", MessageBoxButtons.OK, MessageBoxIcon.Error);
                Environment.Exit(1);
            }
        }
예제 #19
0
        private void listView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            var select = listView1.SelectedItems;

            if (select.Count >= 1)
            {
                ResetUI();

                var item = select[0];

                JavBusSearchListModel model = (JavBusSearchListModel)item.Tag;

                var av = Service.JavBusDownloadHelper.GetJavBusSearchDetail(model.Url, cc, mapping);

                if (av != null)
                {
                    var avs = Service.JavBusDownloadHelper.GetMatchJavDetail(av);

                    if (avs.IsMatch == false)
                    {
                        var show = Service.JavBusDownloadHelper.GetCloseLibAVModel(avs.Matches.FirstOrDefault(), mapping);

                        pictureBox1.Image = Image.FromStream(WebRequest.Create(show.PictureURL).GetResponse().GetResponseStream());
                        txtTitle.Text     = show.Name;
                        txtActress.Text   = show.Actress;
                        txtCategory.Text  = show.Category;
                        txtCompany.Text   = show.Company;
                        txtPublisher.Text = show.Publisher;
                        txtLength.Text    = show.AvLength + "分钟";
                        txtDate.Text      = show.ReleaseDate.ToString("yyyy-MM-dd");

                        currentAv = show;
                    }
                }
            }
        }
예제 #20
0
        public static int InsertAV(AV av)
        {
            var sql = @"INSERT INTO AV (ID, Name, Company, Director, Publisher, Category, Actress, ReleaseDate, AvLength, CreateTime, PictureURL, URL) 
                        VALUES (@id, @name, @company, @director, @publisher, @category, @actress, @releaseDate, @avLength, @createTime, @pictureURL, @url)";

            SqlParameter[] paras =
            {
                new SqlParameter("@id",          SqlDbType.NVarChar,   100),
                new SqlParameter("@name",        SqlDbType.NVarChar,   300),
                new SqlParameter("@company",     SqlDbType.NVarChar,   200),
                new SqlParameter("@director",    SqlDbType.NVarChar,   200),
                new SqlParameter("@publisher",   SqlDbType.NVarChar,   200),
                new SqlParameter("@category",    SqlDbType.NVarChar,   600),
                new SqlParameter("@actress",     SqlDbType.NVarChar,  4000),
                new SqlParameter("@releaseDate", SqlDbType.DateTime),
                new SqlParameter("@avLength",    SqlDbType.Int),
                new SqlParameter("@CreateTime",  SqlDbType.DateTime),
                new SqlParameter("@pictureURL",  SqlDbType.NVarChar,  1000),
                new SqlParameter("@url",         SqlDbType.NVarChar, 1000)
            };

            paras[0].Value  = av.ID;
            paras[1].Value  = av.Name;
            paras[2].Value  = av.Company;
            paras[3].Value  = av.Director;
            paras[4].Value  = av.Publisher;
            paras[5].Value  = av.Category;
            paras[6].Value  = av.Actress;
            paras[7].Value  = av.ReleaseDate;
            paras[8].Value  = av.AvLength;
            paras[9].Value  = DateTime.Now;
            paras[10].Value = av.PictureURL;
            paras[11].Value = av.URL;

            return(SqlHelper.ExecuteNonQuery(con, CommandType.Text, sql, paras));
        }
        protected override void Draw(GameTime gameTime)
        {
            GraphicsDevice.Clear(Color.Black);

            base.Draw(gameTime);

            _spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, SamplerState.PointClamp, null, null, null, camera.Transform);

            switch (DrawMode)
            {
            case DrawMode.Game:
                AV.GetCurrentRoom().Draw(gameTime);
                Player.Draw(gameTime);
                break;

            case DrawMode.Map:
                AV.CurrentMap.Draw(gameTime);
                break;

            default:
                break;
            }
            _spriteBatch.End();
        }
예제 #22
0
파일: Main.cs 프로젝트: KBrizzle/DankWire
 private void ConvertVideo(string filename, string quality, AV type)
 {
     fStatus = 2;
     if (type == AV.MP3)
     {
         string kbs = quality.Split(',')[1].Trim().Replace("Kb/s", "");
         ProcessStartInfo oInfo = new ProcessStartInfo(ffmpeg_path + "ffmpeg.exe", "-i Active/" + filename + ".mp4 -sameq -vn -ar 44100 -ac 2 -ab " + kbs + "k -f mp3 Downloads/" + filename + ".mp3");
         oInfo.UseShellExecute = false;
         oInfo.CreateNoWindow = true;
         Process proc = System.Diagnostics.Process.Start(oInfo);
         p = proc;
         long fslast = 0;
         Thread.Sleep(1000);
         while (fslast < fileSize("Downloads/" + filename + ".mp3") || fileSize("Downloads/" + safeFilename(filename) + ".mp3") == 0)
         {
             fslast = fileSize("Downloads/" + filename + ".mp3");
             int kb = (int)(fslast / 1024);
             Thread.Sleep(1000);
             downloader.ReportProgress(kb);
         }
         proc.Close();
     }
 }
예제 #23
0
파일: Main.cs 프로젝트: KBrizzle/DankWire
 private void cleanUpFiles(string filename, AV type)
 {
     try
     {
         if (type == AV.MP3)
         {
             if (File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "/DankWire/" + safeFilename(fName) + ".mp3")) File.Delete(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "/DankWire/" + safeFilename(fName) + ".mp3");
             if (File.Exists("Active/" + filename + ".mp4")) File.Delete("Active/" + filename + ".mp4");
             File.Move("Downloads/" + filename + ".mp3", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "/DankWire/" + safeFilename(fName) + ".mp3");
         }
         else if (type == AV.Video)
         {
             File.Move("Active/" + filename + ".mp4", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "/DankWire/" + safeFilename(fName) + ".mp4");
         }
     }
     catch { }
 }
예제 #24
0
파일: Main.cs 프로젝트: KBrizzle/DankWire
 public bool QueueContains(string needle, AV type)
 {
     bool match = false;
     for (int i = 0; i < lv_queue.Items.Count; i++)
         if (lv_queue.Items[i].Text == needle && lv_queue.Items[i].SubItems[1].Text == type.ToString())
             match = true;
     return match;
 }
예제 #25
0
파일: Main.cs 프로젝트: KBrizzle/DankWire
 public void AddVideoToQueue(AV type)
 {
     if (lv_vdata.SelectedIndices.Count > 0)
     {
         int i = lv_vdata.SelectedIndices[0];
         if (QueueContains(lv_vdata.Items[i].Text, type))
         {
             MessageBox.Show("You are already downloading a video of the same name!", "Whoops :P");
         }
         else
         {
             AddToQueue(lv_vdata.Items[i].Text, IDsVideo[i], lv_vdata.Items[i].SubItems[1].Text,
                 lv_vdata.Items[i].SubItems[2].Text, type);
         }
     }
 }
예제 #26
0
파일: Main.cs 프로젝트: KBrizzle/DankWire
 public void AddToQueue(string title, string url, string views, string length, AV type)
 {
     ListViewItem item = new ListViewItem(title);
     item.SubItems.Add(type.ToString());
     item.SubItems.Add("");
     lv_queue.Items.Add(item);
     IDsQueue.Add(url);
     ViewsQueue.Add(views);
     LengthQueue.Add(length);
     ConvertTypeQueue.Add(type);
 }
예제 #27
0
파일: Main.cs 프로젝트: KBrizzle/DankWire
 public void AddPlaylistToQueue(AV type)
 {
     if (CurrentPlaylistID != "")
     {
         Search search = new Search(CurrentPlaylistID, Search.SearchType.PlaylistVideos);
         List<string> url = search.GetUrl();
         List<string> title = search.GetTitle();
         List<string> views = search.GetViews();
         List<string> length = search.GetLength();
         for (int i = 0; i < url.Count; i++)
         {
             if (!QueueContains(title[i], type))
                 AddToQueue(title[i], url[i], views[i], length[i], type);
         }
     }
 }
예제 #28
0
파일: MainX.cs 프로젝트: KBrizzle/DankWire
 public void AddPlaylistToQueue(AV type)
 {
     if (CurrentPlaylistID != "")
     {
         Search search = new Search(CurrentPlaylistID, Search.SearchType.PlaylistVideos);
         List<string> url = search.GetUrl();
         List<string> title = search.GetTitle();
         List<string> views = search.GetViews();
         List<string> length = search.GetLength();
         if (CurrentPlaylistVideoB64URL == "")
         {
             for (int i = 1; i < url.Count; i++)
             {
                 if (!QueueContains(title[i], type))
                     AddToQueue(title[i], url[i], views[i], length[i], type);
             }
         }
         else
         {
             int i = lv_pvdata.SelectedIndices[0];
             if (QueueContains(lv_pvdata.Items[i].Text, type))
             {
                 MessageBox.Show("You are already downloading a video of the same name!", "Whoops :P");
             }
             else
             {
                 AddToQueue(lv_pvdata.Items[i].Text, IDsPlaylistVideo[i], lv_pvdata.Items[i].SubItems[1].Text,
                     lv_pvdata.Items[i].SubItems[2].Text, type);
             }
         }
     }
 }
예제 #29
0
파일: MainX.cs 프로젝트: KBrizzle/DankWire
 private void cleanUpFiles(string filename, AV type)
 {
     Settings settings = new Settings();
     try
     {
         if (type == AV.MP3)
         {
             if (File.Exists(settings.DownloadPath + "\\" + safeFilename(fName) + ".mp3")) File.Delete(settings.DownloadPath + "\\" + safeFilename(fName) + ".mp3");
             if (File.Exists("Active/" + filename + ".mp4")) File.Delete("Active/" + filename + ".mp4");
             File.Move("Downloads/" + filename + ".mp3", settings.DownloadPath + "\\" + safeFilename(fName) + ".mp3");
         }
         else if (type == AV.Video)
         {
             File.Move("Active/" + filename + ".mp4", settings.DownloadPath + "\\" + safeFilename(fName) + ".mp4");
         }
     }
     catch { }
 }