Advertisement
Guest User

Untitled

a guest
May 10th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.52 KB | None | 0 0
  1. using Discord;
  2. using Discord.Commands;
  3.  
  4. using MyAnimeListSharp;
  5. using YoutubeExtractor;
  6.  
  7. using System.IO;
  8. using System;
  9. using System.Collections.Generic;
  10. using System.Linq;
  11. using System.Text;
  12. using System.ComponentModel;
  13. using System.Data;
  14. using System.Drawing;
  15. using System.Net;
  16. using System.Web;
  17.  
  18. using System.Threading.Tasks;
  19.  
  20. using MyAnimeListSharp.Auth;
  21. using MyAnimeListSharp.Core;
  22. using MyAnimeListSharp.Enums;
  23. using MyAnimeListSharp.Facade;
  24. using MyAnimeListSharp.Facade.Async;
  25. using MyAnimeListSharp.Extensions.Core;
  26.  
  27. using System.Text.RegularExpressions;
  28.  
  29.  
  30. namespace DiscordBot
  31. {
  32. class MyBot
  33. {
  34. DiscordClient discord;
  35. CommandService commands;
  36.  
  37. Random rand;
  38.  
  39. string[] KrulImage;
  40. string[] RoseImage;
  41. string[] RPS;
  42. string[] QQ;
  43. string[] CF;
  44.  
  45. public MyBot()
  46. {
  47.  
  48. rand = new Random();
  49.  
  50. QQ = new string[]
  51. {
  52. "NO, never ever ever !!!",
  53. "I don't even want to think about that !",
  54. "Yes, was that even a question ?",
  55. "I don't know for sure :/",
  56. "That's not a hard one, Yes!",
  57. "That's not a hard one, No!",
  58. "Why do you even ask ?",
  59. "Probably, No ...",
  60. "Probably, Yes ...",
  61. "Idk ask again later",
  62. "NO NO NO NO NO NO NO NOPE!!!!",
  63. "YES!!!!!!!",
  64. "Can you stop asking questions.",
  65. "idk, Maxim is Retarded",
  66. };
  67.  
  68. KrulImage = new string[]
  69. {
  70. "Krul/Krul001.png",
  71. "Krul/Krul002.jpg",
  72. "Krul/Krul003.png",
  73. "Krul/Krul004.jpg",
  74. "Krul/Krul005.jpg",
  75. "Krul/Krul006.png",
  76. "Krul/Krul007.png",
  77. };
  78.  
  79. RoseImage = new string[]
  80. {
  81. "Rose/Rose001.png",
  82. "Rose/Rose002.png",
  83. "Rose/Rose003.png",
  84. "Rose/Rose004.jpg",
  85. "Rose/Rose005.jpg",
  86. "Rose/Rose006.jpg"
  87. };
  88.  
  89. CF = new string[]
  90. {
  91. "CoinFlip/ct.png",
  92. "CoinFlip/terrorist.png",
  93.  
  94. };
  95.  
  96. RPS = new string[]
  97. {
  98. "Rock!",
  99. "Paper!",
  100. "Scissors!"
  101. };
  102.  
  103. discord = new DiscordClient(x =>
  104. {
  105. x.LogLevel = LogSeverity.Info;
  106. x.LogHandler = log;
  107. });
  108.  
  109. discord.UsingCommands(x =>
  110. {
  111. x.PrefixChar = '²';
  112. x.AllowMentionPrefix = true;
  113. });
  114.  
  115.  
  116. commands = discord.GetService<CommandService>();
  117. RegisterRoseCommand();
  118. RegisterKrulCommand();
  119. Countdown();
  120. Question();
  121. CoinFlip();
  122. Remember();
  123. // Audio();
  124. AnimeSCommand();
  125. Anime();
  126.  
  127. commands.CreateCommand("Hey")
  128. .Do(async (e) =>
  129. {
  130. await e.Channel.SendMessage("Hi!");
  131. });
  132.  
  133. commands.CreateCommand("Rock")
  134. .Do(async (e) =>
  135. {
  136. int randomRoseIndex = rand.Next(RPS.Length);
  137. string RPSToPost = RPS[randomRoseIndex];
  138.  
  139. await e.Channel.SendMessage(RPSToPost);
  140. if (RPSToPost == "Rock!")
  141. {
  142. await e.Channel.SendMessage("Again!");
  143. }
  144. if (RPSToPost == "Paper!")
  145. {
  146. await e.Channel.SendMessage("You Lose!");
  147. }
  148. if (RPSToPost == "Scissors!")
  149. {
  150. await e.Channel.SendMessage("You Win!");
  151. }
  152. });
  153. commands.CreateCommand("Paper")
  154. .Do(async (e) =>
  155. {
  156. int randomRoseIndex = rand.Next(RPS.Length);
  157. string RPSToPost = RPS[randomRoseIndex];
  158.  
  159. await e.Channel.SendMessage(RPSToPost);
  160. if (RPSToPost == "Rock!")
  161. {
  162. await e.Channel.SendMessage("You Lose!");
  163. }
  164. if (RPSToPost == "Paper!")
  165. {
  166. await e.Channel.SendMessage("Again!");
  167. }
  168. if (RPSToPost == "Scissors!")
  169. {
  170. await e.Channel.SendMessage("You Win!");
  171. }
  172. });
  173. commands.CreateCommand("Scissors")
  174. .Do(async (e) =>
  175. {
  176. int randomRoseIndex = rand.Next(RPS.Length);
  177. string RPSToPost = RPS[randomRoseIndex];
  178.  
  179. await e.Channel.SendMessage(RPSToPost);
  180. if (RPSToPost == "Rock!")
  181. {
  182. await e.Channel.SendMessage("You Lose!");
  183. }
  184. if (RPSToPost == "Paper!")
  185. {
  186. await e.Channel.SendMessage("You Win!");
  187. }
  188. if (RPSToPost == "Scissors!")
  189. {
  190. await e.Channel.SendMessage("Again!");
  191. }
  192. });
  193.  
  194.  
  195.  
  196. commands.CreateCommand("Dice")
  197. .Do(async (e) =>
  198. {
  199. int randomRoseIndex = rand.Next(5);
  200. randomRoseIndex = randomRoseIndex + 1;
  201.  
  202. await e.Channel.SendMessage(randomRoseIndex.ToString());
  203. });
  204.  
  205.  
  206. discord.ExecuteAndWait(async () =>
  207. {
  208. await discord.Connect("MzA3ODg4NzMyODM1NTQ1MDg5.C-ZFMQ.tlAxqi2f_GAkG9F7VOeW6gTPwxY", TokenType.Bot);
  209. });
  210. }
  211.  
  212. private void RegisterKrulCommand()
  213. {
  214. commands.CreateCommand("Krul")
  215. .Do(async (e) =>
  216. {
  217. int randomKrulIndex = rand.Next(KrulImage.Length);
  218. string KrulToPost = KrulImage[randomKrulIndex];
  219. await e.Channel.SendFile(KrulToPost);
  220. });
  221. }
  222. private void RegisterRoseCommand()
  223. {
  224. commands.CreateCommand("Rose")
  225. .Do(async (e) =>
  226. {
  227. int randomRoseIndex = rand.Next(RoseImage.Length);
  228. string RoseToPost = RoseImage[randomRoseIndex];
  229. await e.Channel.SendFile(RoseToPost);
  230. });
  231. }
  232.  
  233. private void AnimeSCommand()
  234. {
  235. commands.CreateCommand("Anime").Parameter("message", ParameterType.Multiple)
  236. .Do(async (e) =>
  237. {
  238. string message = "";
  239. for (int i = 0; i < e.Args.Length; i++)
  240. {
  241. message += e.Args[i].ToString() + " ";
  242. }
  243. // Step 1: Enter UserName and Password information
  244. ICredentialContext credential = new CredentialContext
  245. {
  246. UserName = "Myvampire",
  247. Password = "5pEdYB1EHvMc"
  248. };
  249.  
  250. // Step 2: Create a method object
  251. var searchMethods = new SearchMethods(credential);
  252.  
  253. // Step 3: Search using the search term ("Code Geass" in this case)
  254. string mangaResponse = searchMethods.SearchManga(message);
  255. Console.WriteLine(mangaResponse);
  256.  
  257. await e.Channel.SendMessage((mangaResponse));
  258. });
  259. }
  260.  
  261.  
  262. private void Question()
  263. {
  264. commands.CreateCommand("Q").Parameter("message", ParameterType.Multiple)
  265. .Do(async (e) =>
  266. {
  267. string message = "";
  268. for (int i = 0; i < e.Args.Length; i++)
  269. {
  270. message += e.Args[i].ToString() + " ";
  271. }
  272.  
  273. int randomRoseIndex = rand.Next(QQ.Length);
  274. string QToPost = QQ[randomRoseIndex];
  275. await e.Channel.SendMessage("Question: " + message);
  276. await e.Channel.SendMessage("Answer: " + QToPost);
  277.  
  278. });
  279. }
  280.  
  281. private void Remember()
  282. {
  283. string givemessage ="";
  284.  
  285. commands.CreateCommand("Rem").Parameter("message", ParameterType.Multiple)
  286. .Do(async (e) =>
  287. {
  288. string message = "";
  289. for (int i = 0; i < e.Args.Length; i++)
  290. {
  291. message += e.Args[i].ToString() + " ";
  292. }
  293.  
  294. await e.Channel.SendMessage("I'll remember it for you.");
  295. givemessage = message;
  296. });
  297.  
  298. commands.CreateCommand("Ram")
  299. .Do(async (e) =>
  300. {
  301.  
  302. await e.Channel.SendMessage(givemessage);
  303. });
  304. }
  305.  
  306.  
  307.  
  308.  
  309. /*
  310. private void Audio()
  311. {
  312.  
  313.  
  314. commands.CreateCommand("yt").Parameter("message", ParameterType.Multiple)
  315. .Do(async (e) =>
  316. {
  317. string message = "";
  318. for (int i = 0; i < e.Args.Length; i++)
  319. {
  320. message += e.Args[i].ToString() + " ";
  321. }
  322.  
  323.  
  324.  
  325.  
  326.  
  327. string link = message;
  328. IEnumerable<VideoInfo> videoInfos = DownloadUrlResolver.GetDownloadUrls(link);
  329.  
  330.  
  331.  
  332. VideoInfo video = videoInfos
  333. .Where(info => info.CanExtractAudio)
  334. .OrderByDescending(info => info.AudioBitrate)
  335. .First();
  336.  
  337. await e.Channel.SendMessage(message);
  338.  
  339.  
  340. if (video.RequiresDecryption)
  341. { DownloadUrlResolver.DecryptDownloadUrl(video);}
  342.  
  343. var audioDownloader = new AudioDownloader(video, Path.Combine("C:/Games", video.Title + video.AudioExtension));
  344.  
  345.  
  346. audioDownloader.DownloadProgressChanged += (sender, args) => Console.WriteLine(args.ProgressPercentage * 0.85);
  347. audioDownloader.AudioExtractionProgressChanged += (sender, args) => Console.WriteLine(85 + args.ProgressPercentage * 0.15);
  348.  
  349. audioDownloader.Execute();
  350.  
  351. });
  352.  
  353. }*/
  354.  
  355. private void CoinFlip()
  356. {
  357. commands.CreateCommand("CF").Parameter("message", ParameterType.Multiple)
  358. .Do(async (e) =>
  359. {
  360. string message = "";
  361. for (int i = 0; i < e.Args.Length; i++)
  362. {
  363. message += e.Args[i].ToString() + " ";
  364. }
  365.  
  366. int randomRoseIndex = rand.Next(CF.Length);
  367. string CFToPost = CF[randomRoseIndex];
  368.  
  369.  
  370.  
  371. if(CFToPost == "CoinFlip/ct.png")
  372. {
  373. await e.Channel.SendMessage("Counter Terrorist Won !");
  374.  
  375. if (message == "ct")
  376. {
  377. await e.Channel.SendMessage("You Win !");
  378. }
  379. if (message == "t")
  380. {
  381. await e.Channel.SendMessage("You Lose !");
  382. }
  383.  
  384. await e.Channel.SendFile(CFToPost);
  385. }
  386. else
  387. {
  388. await e.Channel.SendMessage("Terrorist Won !");
  389. if (message == "t")
  390. {
  391. await e.Channel.SendMessage("You Win !");
  392. }
  393. if (message == "ct")
  394. {
  395. await e.Channel.SendMessage("You Lose !");
  396. }
  397.  
  398. await e.Channel.SendFile(CFToPost);
  399. }
  400.  
  401. });
  402. }
  403.  
  404.  
  405. private void Anime()
  406. {
  407. commands.CreateCommand("I").Parameter("message", ParameterType.Multiple)
  408. .Do(async (e) =>
  409. {
  410. string message = "";
  411. for (int iii = 0; iii < e.Args.Length; iii++)
  412. {
  413. message += e.Args[iii].ToString() + " ";
  414. }
  415. int yes = 0;
  416. /* do
  417. {
  418. int randomRoseIndex = rand.Next(350000);
  419. string url = "https://yande.re/post/show/" + randomRoseIndex.ToString();
  420. HttpWebRequest request = (HttpWebRequest)FtpWebRequest.Create(url);
  421. HttpWebResponse reponse = (HttpWebResponse)request.GetResponse();
  422. StreamReader sr = new StreamReader(reponse.GetResponseStream());
  423.  
  424. string code = sr.ReadToEnd();
  425. if (code.Contains(message))
  426. {
  427. await e.Channel.SendMessage("https://yande.re/post/show/" + randomRoseIndex.ToString());
  428. yes = 1;
  429. }
  430. Console.WriteLine("test");
  431. } while (yes != 1);*/
  432. int be = 0;
  433. int en = 0;
  434. string url = "http://www.zerochan.net/" + message.ToString();
  435. // await e.Channel.SendMessage(url);
  436. HttpWebRequest request = (HttpWebRequest)FtpWebRequest.Create(url);
  437. HttpWebResponse reponse = (HttpWebResponse)request.GetResponse();
  438. StreamReader sr = new StreamReader(reponse.GetResponseStream());
  439. string code = sr.ReadToEnd();
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446. string pattern = " ";
  447. //get all spaces and other signs, like: '.' '?' '!'
  448. string input = code;
  449. string[] words = null;
  450. int i = 0;
  451. int count = 0;
  452. //Console.WriteLine(input);
  453. words = Regex.Split(input, pattern, RegexOptions.IgnoreCase);
  454. for (i = words.GetLowerBound(0); i <= words.GetUpperBound(0); i++)
  455. {
  456. if (words[i].ToString().IndexOf("tabindex=") != -1) { count = count + 1; }
  457. // Console.WriteLine(words[i].ToString());
  458.  
  459. }
  460. //Console.WriteLine("Count of words:" + count.ToString());
  461.  
  462.  
  463.  
  464. // Console.WriteLine((count - 3).ToString());
  465. int randomRoseIndex = rand.Next(count-3);
  466.  
  467.  
  468.  
  469. for (int ii = 0; ii < randomRoseIndex+1; ii++)
  470. {
  471.  
  472.  
  473. be = code.IndexOf("src=");
  474. en = code.IndexOf("alt=");
  475. code = code.Substring(be + 10, code.Length - be - 10);
  476. be = code.IndexOf("src=");
  477. en = code.IndexOf("alt=");
  478.  
  479.  
  480. }
  481. //Console.WriteLine(randomRoseIndex.ToString());
  482. //Console.WriteLine(be.ToString());
  483. //Console.WriteLine(en.ToString());
  484. code = code.Substring(0,en-7);
  485. //Console.WriteLine("hey");
  486. // Console.WriteLine(code);
  487. // int n = en - be - 7;
  488. string z = "http:" + code + ".jpg";
  489. // await e.Channel.SendMessage(z);
  490.  
  491.  
  492.  
  493. string localFilename = @"C:\Users\Ruben-San\Documents\Visual Studio 2015\Projects\DiscordBot\DiscordBot\Temp\Temp.jpg";
  494. using (WebClient client = new WebClient())
  495. {
  496. client.DownloadFile(z, localFilename);
  497. }
  498. await e.Channel.SendFile(@"C:\Users\Ruben-San\Documents\Visual Studio 2015\Projects\DiscordBot\DiscordBot\Temp\Temp.jpg");
  499.  
  500.  
  501.  
  502. var filePath = (@"C:\Users\Ruben-San\Documents\Visual Studio 2015\Projects\DiscordBot\DiscordBot\Temp\Temp.jpg");
  503. if (File.Exists(filePath))
  504. {
  505. File.Delete(filePath);
  506. }
  507.  
  508. });
  509. }
  510.  
  511.  
  512. private void Countdown()
  513. {
  514. commands.CreateCommand("AoT")
  515. .Do(async (e) =>
  516. {
  517.  
  518. int i = 29;
  519. int j = 4;
  520.  
  521.  
  522. DateTime dateInTheFuture = new DateTime(2017, j, i);
  523. TimeSpan ts = dateInTheFuture - DateTime.Now;
  524.  
  525.  
  526. string date = ts.ToString();
  527. if ((date.ToLower().IndexOf('-') != -1)) {
  528. i = i + 7;
  529. if (j == 4 && i > 30)
  530. {
  531. i = 6;
  532. j = j + 1;
  533. }
  534. if (j == 5 && i > 31)
  535. {
  536. i = 3;
  537. j = j + 1;
  538. }
  539. if (j == 6 && i > 30)
  540. {
  541. i = 1;
  542. j = j + 1;
  543. }
  544.  
  545.  
  546.  
  547. }
  548.  
  549.  
  550. DateTime dateInTheFuture02 = new DateTime(2017, j, i);
  551. TimeSpan ts02 = dateInTheFuture02 - DateTime.Now;
  552.  
  553. date = ts02.ToString();
  554.  
  555. string Days = date.Substring(0, 2);
  556. string Hours = date.Substring(3, 2);
  557. string Minute = date.Substring(5, 2);
  558. string Second = date.Substring(9, 6);
  559.  
  560.  
  561.  
  562.  
  563. await e.Channel.SendMessage("Days: " + Days + " Hours: " + Hours + " Minutes: " + Minute + " Seconds: " + Second);
  564. await e.Channel.SendMessage("+ 15 Hours for Sub");
  565.  
  566.  
  567. });
  568. }
  569.  
  570.  
  571.  
  572. private void log(object sender, LogMessageEventArgs e)
  573. {
  574. Console.WriteLine(e.Message);
  575. }
  576. }
  577. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement