/src/EchoNest-Sharp.Shell/ArtistShell.cs

http://github.com/torshy/echonest-sharp · C# · 328 lines · 282 code · 46 blank · 0 comment · 23 complexity · 7ab07030219a2270b9c6a80a2255ac2a MD5 · raw file

  1. using System;
  2. using EchoNest.Artist;
  3. namespace EchoNest.Shell
  4. {
  5. public class ArtistShell
  6. {
  7. public static void Display(EchoNestSession session)
  8. {
  9. ConsoleKeyInfo keyInfo;
  10. using (ConsoleEx.BeginColorBlock(ConsoleColor.Cyan))
  11. {
  12. Console.WriteLine("=== Artist API ===");
  13. Console.WriteLine("1: Biographies");
  14. Console.WriteLine("2: Blogs");
  15. Console.WriteLine("3: Familiarity");
  16. Console.WriteLine("4: Hotttnesss");
  17. Console.WriteLine("5: Images");
  18. Console.WriteLine("6: List terms");
  19. Console.WriteLine("7: News");
  20. Console.WriteLine("8: Reviews");
  21. Console.WriteLine("9: Similar");
  22. Console.WriteLine("0: Suggest");
  23. Console.WriteLine("=================");
  24. }
  25. ConsoleEx.Write("Enter api >> ", ConsoleColor.Green);
  26. keyInfo = Console.ReadKey();
  27. Console.Write(Environment.NewLine);
  28. switch (keyInfo.Key)
  29. {
  30. case ConsoleKey.D1:
  31. Biographies(session);
  32. break;
  33. case ConsoleKey.D2:
  34. Blogs(session);
  35. break;
  36. case ConsoleKey.D3:
  37. Familiarity(session);
  38. break;
  39. case ConsoleKey.D4:
  40. Hotttnesss(session);
  41. break;
  42. case ConsoleKey.D5:
  43. Images(session);
  44. break;
  45. case ConsoleKey.D6:
  46. ListTerms(session);
  47. break;
  48. case ConsoleKey.D7:
  49. News(session);
  50. break;
  51. case ConsoleKey.D8:
  52. Reviews(session);
  53. break;
  54. case ConsoleKey.D9:
  55. Similar(session);
  56. break;
  57. case ConsoleKey.D0:
  58. Suggest(session);
  59. break;
  60. }
  61. }
  62. private static void Biographies(EchoNestSession session)
  63. {
  64. ConsoleEx.WriteLine("=== Biographies ===", ConsoleColor.Cyan);
  65. ConsoleEx.Write("Query >> ", ConsoleColor.Green);
  66. string query = Console.ReadLine();
  67. ConsoleEx.WriteLine("Searching..", ConsoleColor.Yellow);
  68. var result = session.Query<Biography>().Execute(query, numberOfResults: 1);
  69. if (result.Status.Code == ResponseCode.Success)
  70. {
  71. foreach (var biography in result.Biographies)
  72. {
  73. ConsoleEx.WriteLine("Site:", ConsoleColor.White);
  74. ConsoleEx.WriteLine(biography.Site, ConsoleColor.DarkYellow);
  75. ConsoleEx.WriteLine("Biography text:", ConsoleColor.White);
  76. ConsoleEx.WriteLine(biography.Text, ConsoleColor.DarkYellow);
  77. }
  78. }
  79. else
  80. {
  81. ConsoleEx.WriteLine(result.Status.Message, ConsoleColor.Red);
  82. }
  83. }
  84. private static void Blogs(EchoNestSession session)
  85. {
  86. ConsoleEx.WriteLine("=== Blogs ===", ConsoleColor.Cyan);
  87. ConsoleEx.Write("Query >> ", ConsoleColor.Green);
  88. string query = Console.ReadLine();
  89. ConsoleEx.WriteLine("Searching..", ConsoleColor.Yellow);
  90. var result = session.Query<Blog>().Execute(query, numberOfResults: 1);
  91. if (result.Status.Code == ResponseCode.Success)
  92. {
  93. foreach (var biography in result.Blogs)
  94. {
  95. ConsoleEx.WriteLine("Name:", ConsoleColor.White);
  96. ConsoleEx.WriteLine(biography.Name, ConsoleColor.DarkYellow);
  97. ConsoleEx.WriteLine("Summary:", ConsoleColor.White);
  98. ConsoleEx.WriteLine(biography.Summary, ConsoleColor.DarkYellow);
  99. ConsoleEx.WriteLine("Url:", ConsoleColor.White);
  100. ConsoleEx.WriteLine(biography.Url, ConsoleColor.DarkYellow);
  101. }
  102. }
  103. else
  104. {
  105. ConsoleEx.WriteLine(result.Status.Message, ConsoleColor.Red);
  106. }
  107. }
  108. private static void Familiarity(EchoNestSession session)
  109. {
  110. ConsoleEx.WriteLine("=== Familiarity ===", ConsoleColor.Cyan);
  111. ConsoleEx.Write("Query >> ", ConsoleColor.Green);
  112. string query = Console.ReadLine();
  113. ConsoleEx.WriteLine("Searching..", ConsoleColor.Yellow);
  114. var result = session.Query<Familiarity>().Execute(query);
  115. if (result.Status.Code == ResponseCode.Success)
  116. {
  117. ConsoleEx.WriteLine("Name:", ConsoleColor.White);
  118. ConsoleEx.WriteLine(result.Artist.Name, ConsoleColor.DarkYellow);
  119. ConsoleEx.WriteLine("Familiarity:", ConsoleColor.White);
  120. ConsoleEx.WriteLine(result.Artist.Familiarity.ToString(), ConsoleColor.DarkYellow);
  121. }
  122. else
  123. {
  124. ConsoleEx.WriteLine(result.Status.Message, ConsoleColor.Red);
  125. }
  126. }
  127. private static void Hotttnesss(EchoNestSession session)
  128. {
  129. ConsoleEx.WriteLine("=== Hotttnesss ===", ConsoleColor.Cyan);
  130. ConsoleEx.Write("Query >> ", ConsoleColor.Green);
  131. string query = Console.ReadLine();
  132. ConsoleEx.WriteLine("Searching..", ConsoleColor.Yellow);
  133. var result = session.Query<Hotttnesss>().Execute(query);
  134. if (result.Status.Code == ResponseCode.Success)
  135. {
  136. ConsoleEx.WriteLine("Name:", ConsoleColor.White);
  137. ConsoleEx.WriteLine(result.Artist.Name, ConsoleColor.DarkYellow);
  138. ConsoleEx.WriteLine("Familiarity:", ConsoleColor.White);
  139. ConsoleEx.WriteLine(result.Artist.Hotttnesss.ToString(), ConsoleColor.DarkYellow);
  140. }
  141. else
  142. {
  143. ConsoleEx.WriteLine(result.Status.Message, ConsoleColor.Red);
  144. }
  145. }
  146. private static void Images(EchoNestSession session)
  147. {
  148. ConsoleEx.WriteLine("=== Images ===", ConsoleColor.Cyan);
  149. ConsoleEx.Write("Query >> ", ConsoleColor.Green);
  150. string query = Console.ReadLine();
  151. ConsoleEx.WriteLine("Searching..", ConsoleColor.Yellow);
  152. var result = session.Query<Image>().Execute(query, numberOfResults: 5);
  153. if (result.Status.Code == ResponseCode.Success)
  154. {
  155. foreach (var item in result.Images)
  156. {
  157. ConsoleEx.WriteLine("Url:", ConsoleColor.White);
  158. ConsoleEx.WriteLine(item.Url, ConsoleColor.DarkYellow);
  159. }
  160. }
  161. else
  162. {
  163. ConsoleEx.WriteLine(result.Status.Message, ConsoleColor.Red);
  164. }
  165. }
  166. private static void ListTerms(EchoNestSession session)
  167. {
  168. ConsoleEx.WriteLine("=== List Terms ===", ConsoleColor.Cyan);
  169. var result = session.Query<ListTerms>().Execute(ListTermsType.Style);
  170. if (result.Status.Code == ResponseCode.Success)
  171. {
  172. Console.WriteLine("Term type: " + result.TypeAsString);
  173. foreach (var item in result.Terms)
  174. {
  175. ConsoleEx.Write("Name: ", ConsoleColor.White);
  176. ConsoleEx.WriteLine(item.Name, ConsoleColor.DarkYellow);
  177. }
  178. }
  179. else
  180. {
  181. ConsoleEx.WriteLine(result.Status.Message, ConsoleColor.Red);
  182. }
  183. ConsoleEx.WriteLine("-------------");
  184. result = session.Query<ListTerms>().Execute(ListTermsType.Mood);
  185. if (result.Status.Code == ResponseCode.Success)
  186. {
  187. Console.WriteLine("Term type: " + result.TypeAsString);
  188. foreach (var item in result.Terms)
  189. {
  190. ConsoleEx.Write("Name: ", ConsoleColor.White);
  191. ConsoleEx.WriteLine(item.Name, ConsoleColor.DarkYellow);
  192. }
  193. }
  194. else
  195. {
  196. ConsoleEx.WriteLine(result.Status.Message, ConsoleColor.Red);
  197. }
  198. }
  199. private static void News(EchoNestSession session)
  200. {
  201. ConsoleEx.WriteLine("=== News ===", ConsoleColor.Cyan);
  202. ConsoleEx.Write("Query >> ", ConsoleColor.Green);
  203. string query = Console.ReadLine();
  204. ConsoleEx.WriteLine("Searching..", ConsoleColor.Yellow);
  205. var result = session.Query<News>().Execute(query, numberOfResults: 5);
  206. if (result.Status.Code == ResponseCode.Success)
  207. {
  208. foreach (var item in result.News)
  209. {
  210. ConsoleEx.WriteLine("Name:", ConsoleColor.White);
  211. ConsoleEx.WriteLine(item.Name, ConsoleColor.DarkYellow);
  212. ConsoleEx.WriteLine("Url:", ConsoleColor.White);
  213. ConsoleEx.WriteLine(item.Url, ConsoleColor.DarkYellow);
  214. }
  215. }
  216. else
  217. {
  218. ConsoleEx.WriteLine(result.Status.Message, ConsoleColor.Red);
  219. }
  220. }
  221. private static void Reviews(EchoNestSession session)
  222. {
  223. ConsoleEx.WriteLine("=== Reviews ===", ConsoleColor.Cyan);
  224. ConsoleEx.Write("Query >> ", ConsoleColor.Green);
  225. string query = Console.ReadLine();
  226. ConsoleEx.WriteLine("Searching..", ConsoleColor.Yellow);
  227. var result = session.Query<Reviews>().Execute(query, numberOfResults: 5);
  228. if (result.Status.Code == ResponseCode.Success)
  229. {
  230. foreach (var item in result.Reviews)
  231. {
  232. ConsoleEx.WriteLine("Name:", ConsoleColor.White);
  233. ConsoleEx.WriteLine(item.Name, ConsoleColor.DarkYellow);
  234. ConsoleEx.WriteLine("Url:", ConsoleColor.White);
  235. ConsoleEx.WriteLine(item.Url, ConsoleColor.DarkYellow);
  236. }
  237. }
  238. else
  239. {
  240. ConsoleEx.WriteLine(result.Status.Message, ConsoleColor.Red);
  241. }
  242. }
  243. private static void Similar(EchoNestSession session)
  244. {
  245. ConsoleEx.WriteLine("=== Similar ===", ConsoleColor.Cyan);
  246. ConsoleEx.Write("Query >> ", ConsoleColor.Green);
  247. string query = Console.ReadLine();
  248. ConsoleEx.WriteLine("Searching..", ConsoleColor.Yellow);
  249. var result = session.Query<SimilarArtists>().Execute(new SimilarArtistsArgument { Name = query, Results = 5 });
  250. if (result.Status.Code == ResponseCode.Success)
  251. {
  252. foreach (var item in result.Artists)
  253. {
  254. ConsoleEx.WriteLine(item.Name, ConsoleColor.DarkYellow);
  255. }
  256. }
  257. else
  258. {
  259. ConsoleEx.WriteLine(result.Status.Message, ConsoleColor.Red);
  260. }
  261. }
  262. private static void Suggest(EchoNestSession session)
  263. {
  264. ConsoleEx.WriteLine("=== Suggest ===", ConsoleColor.Cyan);
  265. ConsoleEx.Write("Query >> ", ConsoleColor.Green);
  266. string query = Console.ReadLine();
  267. ConsoleEx.WriteLine("Searching..", ConsoleColor.Yellow);
  268. var result = session.Query<SuggestArtist>().Execute(query, 5);
  269. if (result.Status.Code == ResponseCode.Success)
  270. {
  271. foreach (var item in result.Artists)
  272. {
  273. ConsoleEx.WriteLine(item.Name, ConsoleColor.DarkYellow);
  274. }
  275. }
  276. else
  277. {
  278. ConsoleEx.WriteLine(result.Status.Message, ConsoleColor.Red);
  279. }
  280. }
  281. }
  282. }