コード例 #1
0
ファイル: Main.cs プロジェクト: Nagru/Manga-Organizer
        /// <summary>
        /// Tries to auto-load metadata for newly added manga
        /// </summary>
        /// <param name="obj">NULL</param>
        private void AutoMetadata(object obj)
        {
            const int Second = 1000;
            int iRecordID = -1;

            while (true) {
                metadataQueue.PauseThread();
                while (!metadataQueue.StopRequested && metadataQueue.LoadMetadata && metadataQueue.Count() > 0) {
                    iRecordID = metadataQueue.Dequeue();
                    csEntry en = new csEntry(iRecordID);
                    if (!string.IsNullOrWhiteSpace(en.URL)) {
                        SQL.SaveManga(en.Artist, en.Title, en.PostedDate, en.Tags, en.Location,
                            en.PageCount, en.PageReadCount, en.Category, en.Rating, en.Description,
                            en.URL, en.MangaRead, iRecordID);

                        if (mangaID == iRecordID) {
                            BeginInvoke(new DelInt(SetData), iRecordID);
                        }
                        BeginInvoke(new DelVoid(UpdateLV));
                    }
                    Thread.Sleep(Second);
                }
            }
        }
コード例 #2
0
ファイル: Main.cs プロジェクト: Nagru/Manga-Organizer
        /// <summary>
        /// Adds folder(s) to database when dragged over LV_Entries
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void LV_Entries_DragDrop(object sender, DragEventArgs e)
        {
            string[] asDir = ((string[])e.Data.GetData(DataFormats.FileDrop, false));
            string sError = "";
            int iTrack = mangaID;

            //add all remaining folders
            for (int i = 0; i < asDir.Length; i++) {
                if (string.IsNullOrWhiteSpace(asDir[i]) || (!Directory.Exists(asDir[i]) && !Ext.IsArchive(asDir[i])))
                    continue;

                //add item
                csEntry en = new csEntry(asDir[i]);
                if (!SQL.ContainsEntry(en.Artist, en.Title)) {
                    mangaID = SQL.SaveManga(en.Artist, en.Title, en.PostedDate, en.Tags, en.Location, en.PageCount, -1, en.Category, en.Rating, "", en.URL);
                    QueueNewManga(mangaID);

                    if (en.Artist != "" && !acTxBx_Artist.KeyWords.Contains(en.Artist))
                        acTxBx_Artist.KeyWords = SQL.GetArtists();
                }
                else
                    sError += '\n' + asDir[i];
            }
            if (sError != "") {
                xMessage.ShowWarning("The following path(s) already exists in the database:" + sError);
            }

            //Update LV
            if (iTrack != mangaID) {
                HandleNewEntries();
            }
        }
コード例 #3
0
ファイル: Main.cs プロジェクト: mirurururu/Manga-Organizer
        /// <summary>
        /// Adds folder(s) to database when dragged over LV_Entries
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void LV_Entries_DragDrop(object sender, DragEventArgs e)
        {
            string[] asDir = ((string[])e.Data.GetData(DataFormats.FileDrop, false));
              string sError = "";
              int iTrack = mangaID;

              //add all remaining folders
              for (int i = 0; i < asDir.Length; i++) {
            if (string.IsNullOrWhiteSpace(asDir[i])
            || (!Directory.Exists(asDir[i])
                && !IsArchive(asDir[i])))
              continue;

            //add item
            csEntry en = new csEntry(asDir[i]);
            if (!SQL.ContainsEntry(en.sArtist, en.sTitle)) {
              mangaID = SQL.SaveManga(en.sArtist, en.sTitle, en.dtDate, en.sTags,
            en.sLoc, en.pages, en.sType, en.byRat, en.sDesc);

              if (en.sArtist != "" && !CmbBx_Artist.Items.Contains(en.sArtist))
            CmbBx_Artist.Items.Add(en.sArtist);
            }
            else
              sError += '\n' + asDir[i];
              }
              if (sError != "") {
            MessageBox.Show("The following path(s) already exists in the database:" + sError,
            Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Information);
              }

              //Update LV
              if (iTrack != mangaID)
            AddEntries();
        }