Beispiel #1
0
        public void RemoteDownloadArticleFromId(string id)
        {
            tabControl1.SelectedIndex = 2;
            HitomiMetadata metadata = new HitomiMetadata();

            foreach (var v in hitomi_data.metadata_collection)
            {
                if (v.ID.ToString() == id)
                {
                    metadata = v; break;
                }
            }
            PicElement    fake_pe = new PicElement(this);
            HitomiArticle article = new HitomiArticle();

            article.Magic = metadata.ID.ToString();
            article.Title = metadata.Name;
            if (metadata.Artists != null)
            {
                article.Artists = metadata.Artists[0];
            }
            if (metadata.Tags != null)
            {
                article.Tags = metadata.Tags.ToList();
            }
            fake_pe.Article = article;
            fake_pe.Label   = metadata.Name;
            RemoteDownloadArticle(fake_pe);
        }
Beispiel #2
0
        public frmGalleryInfo(Form closed, HitomiMetadata metadata)
        {
            InitializeComponent();

            this.metadata = metadata;
            closed_form   = closed;
            id            = metadata.ID.ToString();
        }
Beispiel #3
0
        public frmGalleryInfo(Form closed, HitomiMetadata metadata)
        {
            InitializeComponent();

            this.metadata = metadata;
            closed_form   = closed;
            id            = metadata.ID.ToString();
            CloseOnRBtn   = new RightClickCloser(this);
        }
 private void LoadThumbnail(HitomiMetadata md)
 {
     Application.Current.Dispatcher.Invoke(new Action(
                                               delegate
     {
         // Put code that needs to run on the UI thread here
         var se = new SearchSimpleElements(HitomiLegalize.MetadataToArticle(md));
         ArticlePanel.Children.Add(se);
         Koromo_Copy.Monitor.Instance.Push("[AddSearchElements] Hitomi Metadata " + md.ID);
     }));
 }
Beispiel #5
0
        private string MakeDownloadDirectory(string source, string artists, HitomiMetadata metadata, string extension)
        {
            string invalid = new string(Path.GetInvalidFileNameChars()) + new string(Path.GetInvalidPathChars());
            string title   = metadata.Name ?? "";
            string type    = metadata.Type ?? "";
            string series  = "";

            if (HitomiSetting.Instance.GetModel().ReplaceArtistsWithTitle)
            {
                TextInfo textInfo = new CultureInfo("en-US", false).TextInfo;
                artists = textInfo.ToTitleCase(artists);
            }
            if (metadata.Parodies != null)
            {
                series = metadata.Parodies[0];
            }
            if (title != null)
            {
                foreach (char c in invalid)
                {
                    title = title.Replace(c.ToString(), "");
                }
            }
            if (artists != null)
            {
                foreach (char c in invalid)
                {
                    artists = artists.Replace(c.ToString(), "");
                }
            }
            if (series != null)
            {
                foreach (char c in invalid)
                {
                    series = series.Replace(c.ToString(), "");
                }
            }
            if (artists.StartsWith("group:"))
            {
                artists = artists.Substring("group:".Length);
            }

            string path = source;

            path  = Regex.Replace(path, "{Title}", title, RegexOptions.IgnoreCase);
            path  = Regex.Replace(path, "{Artists}", artists, RegexOptions.IgnoreCase);
            path  = Regex.Replace(path, "{Id}", metadata.ID.ToString(), RegexOptions.IgnoreCase);
            path  = Regex.Replace(path, "{Type}", type, RegexOptions.IgnoreCase);
            path  = Regex.Replace(path, "{Date}", DateTime.Now.ToString(), RegexOptions.IgnoreCase);
            path  = Regex.Replace(path, "{Series}", series, RegexOptions.IgnoreCase);
            path += extension;
            return(path);
        }
Beispiel #6
0
        public static HitomiMetadata?GetMetadataFromMagic(string magic)
        {
            HitomiMetadata tmp = new HitomiMetadata()
            {
                ID = Convert.ToInt32(magic)
            };
            var pos = HitomiData.Instance.metadata_collection.BinarySearch(tmp, new CompareMetadata());

            if (pos < 0)
            {
                return(null);
            }
            return(HitomiData.Instance.metadata_collection[pos]);
        }
        public static HitomiArticle MetadataToArticle(HitomiMetadata metadata)
        {
            HitomiArticle article = new HitomiArticle();

            article.Artists    = metadata.Artists;
            article.Characters = metadata.Characters;
            article.Groups     = metadata.Groups;
            article.Language   = metadata.Language;
            article.Magic      = metadata.ID.ToString();
            article.Series     = metadata.Parodies;
            article.Tags       = metadata.Tags;
            article.Title      = metadata.Name;
            article.Types      = metadata.Type;
            return(article);
        }
Beispiel #8
0
        public static HitomiMetadata ArticleToMetadata(HitomiArticle article)
        {
            HitomiMetadata metadata = new HitomiMetadata();

            metadata.Artists    = article.Artists;
            metadata.Characters = article.Characters;
            metadata.Groups     = article.Groups;
            metadata.ID         = Convert.ToInt32(article.Magic);
            metadata.Language   = LegalizeLanguage(article.Language);
            metadata.Name       = article.Title;
            metadata.Parodies   = article.Series;
            metadata.Tags       = article.Tags.Select(x => LegalizeTag(x)).ToArray();
            metadata.Type       = article.Types;
            return(metadata);
        }
Beispiel #9
0
        private static HArticleModel ConvertTo(HitomiMetadata metadata, string url, string magic)
        {
            var article = new HArticleModel();

            article.Magic       = magic;
            article.ArticleType = HArticleType.Hitomi;
            article.URL         = url;
            article.artist      = metadata.Artists;
            article.group       = metadata.Groups;
            article.parody      = metadata.Parodies;
            article.misc        = metadata.Tags;
            article.character   = metadata.Characters;
            article.Language    = metadata.Language;
            article.Title       = metadata.Name;
            article.Type        = metadata.Type;
            article.Magic       = metadata.ID.ToString();
            return(article);
        }
Beispiel #10
0
 private void LoadThumbnail(HitomiMetadata md)
 {
     Application.Current.Dispatcher.Invoke(new Action(
                                               delegate
     {
         // Put code that needs to run on the UI thread here
         if (!Settings.Instance.UXSetting.UsingThumbnailSearchElements)
         {
             var se = new SearchElements(HitomiLegalize.MetadataToArticle(md));
             SearchPanel.Children.Add(se);
             SearchPanel.Children.Add(new Separator());
         }
         else
         {
             var sme = new SearchMaterialElements(HitomiLegalize.MetadataToArticle(md));
             SearchMaterialPanel.Children.Add(sme);
             Koromo_Copy.Monitor.Instance.Push("[AddSearchElements] Hitomi Metadata " + md.ID);
         }
     }));
 }