示例#1
0
        // Method used to populate the grid
        public void PopulateGrid(string query)
        {
            // Prepare json
            string json = JsonGetter.GetJson(query);

            Derpi derpi = Derpi.FromJson(json);

            testBox.Text = query + " at " + _settings.DownloadLocation;

            // Go through images in the search
            if (derpi == null)
            {
                testBox.Text = "No results for: " + query;
            }
            else
            {
                foreach (var search in derpi.Search)
                {
                    // Check if artist is given
                    string[] tags    = search.Tags.Split(',').Select(sValue => sValue.Trim()).ToArray();
                    var      artists = tags.Where(it => it.StartsWith("artist:"))
                                       .Select(it => it.Replace("artist:", null));

                    // Format artists
                    string artist = artists.Aggregate("", (current, v) => current + (v.ToString() + ","));
                    artist = artist.TrimEnd(',');

                    // Add to list of downloaded files
                    FilesCollection.Add(new FileDisplay(search.FileName,
                                                        search.MimeType,
                                                        search.SourceUrl,
                                                        artist,
                                                        search.Tags,
                                                        search.Description,
                                                        (int)search.Faves,
                                                        "https:" + search.Representations.Thumb,
                                                        "https:" + search.Image,
                                                        search.Id));

                    // Log the file
                    DownloadLog.Text += search.Image + Environment.NewLine;
                }

                // Up page number
                DlPage.Value = DlPage.Value + 1;

                // Up the file count
                TotalFiles        = FilesCollection.Count();
                FileIndexTxt.Text = CurrentFileNumber + "/" + TotalFiles;
            }
        }
示例#2
0
        // Fetch
        private void FetchBtn_Click(object sender, RoutedEventArgs e)
        {
            if (DlQueryBox.Text != "" && DlQueryBox.Text != null)
            {
                // Prepare API query
                string query = "";
                query += "https://derpibooru.org/search.json?q=";
                query += DlQueryBox.Text.TrimEnd(',').TrimEnd(' ').Replace(" ", "+").Replace(",", "%2C"); // clean up query
                query += "&page=" + DlPage.Value;
                query += "&key=" + Properties.Settings.Default.Token;

                // Prepare json
                string json = JsonGetter.GetJson(query);

                Derpi derpi = Derpi.FromJson(json);

                testBox.Text = query + " at " + Properties.Settings.Default.DownloadLocation;

                // Go through images in the search
                foreach (var search in derpi.Search)
                {
                    // Check if artist is given
                    string[] tags    = search.Tags.Split(',');
                    var      artists = tags.Where(it => it.StartsWith("artist:")).Select(it => it.Replace("artist:", null));

                    // Format artists
                    string artist = "";
                    foreach (var v in artists)
                    {
                        artist += v.ToString() + ",";
                    }
                    artist = artist.TrimEnd(',');

                    // Prepare file name
                    string filename = "";
                    filename += search.Id;
                    filename += "_";
                    filename += System.IO.Path.GetFileNameWithoutExtension(search.FileName);
                    filename += "_by_";
                    if (artist != "")
                    {
                        filename += artist;
                    }
                    else
                    {
                        filename += "no-author";
                    }
                    filename += ".";
                    filename += search.OriginalFormat;

                    // Add to list of downloaded files
                    downloadedFiles.Add(new FileDisplay(search.FileName,
                                                        search.SourceUrl,
                                                        artist,
                                                        search.Tags,
                                                        search.Description,
                                                        (int)search.Faves,
                                                        "https:" + search.Representations.Thumb,
                                                        "https:" + search.Image));

                    // Log the file
                    DownloadLog.Text += search.Image + Environment.NewLine;
                }

                // Up page number
                DlPage.Value = DlPage.Value + 1;
            }
            else
            {
                testBox.Text = "query cannot be empty";
            }
        }