Advertisement
Guest User

Untitled

a guest
Jun 13th, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.87 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Diagnostics;
  4. using System.IO;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using System.Windows;
  9. using System.Windows.Controls;
  10. using System.Windows.Data;
  11. using System.Windows.Documents;
  12. using System.Windows.Input;
  13. using System.Windows.Media;
  14. using System.Windows.Media.Imaging;
  15. using System.Windows.Navigation;
  16. using System.Windows.Shapes;
  17. using Imgur.API;
  18. using Imgur.API.Authentication.Impl;
  19. using Imgur.API.Endpoints.Impl;
  20. using Imgur.API.Enums;
  21. using Imgur.API.Models;
  22. using Microsoft.Win32;
  23. using Ookii.Dialogs;
  24.  
  25. namespace NoWaifuNoLaifu
  26. {
  27.     /// <summary>
  28.     /// Interaction logic for MainWindow.xaml
  29.     /// </summary>
  30.     public partial class MainWindow : Window
  31.     {
  32.         private string clientId;
  33.         private string clientSecret;
  34.         private IAlbum album;
  35.         private List<string> imageUrls = new List<string>();
  36.         private ImageEndpoint imageEnd;
  37.         private AlbumEndpoint albumEnd;
  38.         private List<IImage> images = new List<IImage>();
  39.  
  40.         public MainWindow()
  41.         {
  42.             InitializeComponent();
  43.  
  44.             clientId = File.ReadAllText("clientid.txt");
  45.             clientSecret = File.ReadAllText("clientsecret.txt");
  46.             var client = new ImgurClient(clientId, clientSecret);
  47.             imageEnd = new ImageEndpoint(client);
  48.             albumEnd = new AlbumEndpoint(client);
  49.         }
  50.  
  51.         public async Task CreateAlbum(string albumname)
  52.         {
  53.             try
  54.             {
  55.                 List<string> ids = images.Select(x => x.DeleteHash).ToList();
  56.                 album = await albumEnd.CreateAlbumAsync(albumname, "",
  57.                     AlbumPrivacy.Hidden, AlbumLayout.Vertical, null, ids);              //, images[0].DeleteHash, ids
  58.  
  59.                 //album.Nsfw = true;
  60.                 //await albumEnd.UpdateAlbumAsync(album.DeleteHash);
  61.  
  62.                 album.Link = @"http://www.imgur.com/gallery/" + album.Id;
  63.                 Debug.WriteLine("Album done: " + album.Link);
  64.             }
  65.             catch (ImgurException imgurEx)
  66.             {
  67.                 Debug.Write("An error occurred uploading an image to Imgur.");
  68.                 Debug.Write(imgurEx.Message);
  69.             }
  70.         }
  71.  
  72.         public async Task UploadImage(string imageLocation)
  73.         {
  74.             try
  75.             {
  76.                 IImage image;
  77.                 using (var fs = new FileStream(imageLocation, FileMode.Open))
  78.                 {
  79.                     image = await imageEnd.UploadImageStreamAsync(fs);
  80.                 }
  81.                 images.Add(image);
  82.                
  83.                 Debug.WriteLine("Image uploaded. Image Url: " + image.Link);
  84.             }
  85.             catch (ImgurException imgurEx)
  86.             {
  87.                 Debug.Write("An error occurred uploading an image to Imgur.");
  88.                 Debug.Write(imgurEx.Message);
  89.             }
  90.         }
  91.  
  92.         private async void StartButton_OnClick(object sender, RoutedEventArgs e)
  93.         {
  94.             var dialog = new Ookii.Dialogs.Wpf.VistaFolderBrowserDialog();
  95.                 // new System.Windows.Forms.FolderBrowserDialog())
  96.  
  97.             var result = dialog.ShowDialog();
  98.             if (result == true)
  99.             {
  100.                 string[] levels = dialog.SelectedPath.Split('\\');
  101.                 string foldername = levels[levels.Length - 1];
  102.                 string[] filenames = Directory.GetFiles(dialog.SelectedPath);
  103.                 string[] words = InputTextBox.Text.Split(' ');
  104.  
  105.                 if (words.Length > filenames.Length)
  106.                 {
  107.                     MessageBox.Show("Noooooo, you don't have enough Appreciation(images), for your Message.");
  108.                     return;
  109.                 }
  110.                 for (int i = 0; i < words.Length; i++)
  111.                 {
  112.                     await UploadImage(filenames[i]);
  113.                 }
  114.  
  115.                 await CreateAlbum(foldername);
  116.  
  117.                 /*
  118.                 List<string> ids = images.Select(x => x.Id).ToList();
  119.                 List<string> idsd = images.Select(x => x.DeleteHash).ToList();
  120.                 try
  121.                 {
  122.                     await albumEnd.AddAlbumImagesAsync(album.DeleteHash, ids);
  123.                 }
  124.                 catch (ImgurException imgurEx)
  125.                 {
  126.                     Debug.Write("An error occurred uploading an image to Imgur.");
  127.                     Debug.Write(imgurEx.Message);
  128.                 }
  129.                 */
  130.  
  131.                 string outputText = "";
  132.                 for (int i = 0; i < words.Length; i++)
  133.                 {
  134.                     outputText += "[" + words[i] + "](" + images[i].Link + ") ";
  135.                 }
  136.                 outputText += "Full album: " + album.Link;
  137.  
  138.                 OutputTextBox.Text = outputText;
  139.             }
  140.         }
  141.     }
  142. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement