New trivia questions, broke audio.

Improved trivia a bit
This commit is contained in:
Kwoth
2015-12-09 21:47:02 +01:00
parent fc84c0212e
commit 33e4734d58
15 changed files with 24712 additions and 78 deletions

View File

@ -0,0 +1,39 @@
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace NadekoBot.Classes
{
/// <summary>
/// Shit parser. I used this to convert shit-format to json format
/// </summary>
class SParser
{
public static void DoShitParse() {
string[] lines = File.ReadAllLines("questions.txt");
JArray qs = new JArray();
foreach (var line in lines)
{
if (!line.Contains(";")) continue;
JObject j = new JObject();
if (line.Contains(":"))
{
j["Category"] = line.Substring(0, line.LastIndexOf(":"));
j["Question"] = line.Substring(line.LastIndexOf(":") + 1, line.LastIndexOf(";") - line.LastIndexOf(":") - 1);
}
else {
j["Question"] = line.Substring(0, line.LastIndexOf(";"));
}
j["Answer"] = line.Substring(line.LastIndexOf(";") + 1, line.Length - line.LastIndexOf(";") - 1).Trim();
qs.Add(j);
}
File.WriteAllText("questions2.txt", qs.ToString());
}
}
}

View File

@ -3,6 +3,7 @@ using Discord.Commands;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net.Http;
using System.Text;
@ -37,10 +38,11 @@ namespace NadekoBot
{
return async e =>
{
Console.WriteLine("doign the func");
TriviaGame tg;
if ((tg = StartNewGame(e))!=null)
{
await client.SendMessage(e.Channel, "**Trivia game started!** It is bound to this channel. But only 1 game can run per server. \n First player to get to 10 points wins! You have 30 seconds per question.\nUse command [tq] if game was started by accident.");
await client.SendMessage(e.Channel, "**Trivia game started!**\nFirst player to get to 10 points wins! You have 30 seconds per question.\nUse command [tq] if game was started by accident.");
}
else
await client.SendMessage(e.Channel, "Trivia game is already running on this server. The question is:\n**"+GetCurrentQuestion(e.Server.Id).Question+"**\n[tq quits trivia]\n[@NadekoBot clr clears my messages]");
@ -171,10 +173,10 @@ namespace NadekoBot
{
users[e.User.Id]++;
}
await client.SendMessage(e.Channel, Mention.User(e.User) + " Guessed it!\n The answer was: **" + currentQuestion.Answer + "**");
await client.SendMessage(e.Channel, e.User.Mention + " Guessed it!\n The answer was: **" + currentQuestion.Answer + "**");
if (users[e.User.Id] >= 10) {
await client.SendMessage(e.Channel, " We have a winner! It's " + Mention.User(e.User)+"\n"+GetLeaderboard()+"\n To start a new game type '@NadekoBot t'");
await client.SendMessage(e.Channel, " We have a winner! It's " + e.User.Mention+"\n"+GetLeaderboard()+"\n To start a new game type '@NadekoBot t'");
FinishGame();
return;
}
@ -209,7 +211,7 @@ namespace NadekoBot
t.Enabled = true;
t.Elapsed += async (s, ev) => {
active = true;
await client.SendMessage(ch, "QUESTION\n**" + currentQuestion.Question + " **");
await client.SendMessage(ch, currentQuestion.ToString());
t.Enabled = false;
timeout.Enabled = true;//starting countdown of the next question
};
@ -217,7 +219,7 @@ namespace NadekoBot
}
private async void TimeUp() {
await client.SendMessage(client.GetChannel(_channellId), "**Time's up.**\nCorrect answer was: **" + currentQuestion.Answer+"**\n**[tq quits trivia][tl shows leaderboard][@NadekoBot clr clears my messages]**");
await client.SendMessage(client.GetChannel(_channellId), "**Time's up.**\nCorrect answer was: **" + currentQuestion.Answer+"**\n\n*[tq quits trivia][tl shows leaderboard]["+NadekoBot.botMention+" clr clears my messages]*");
LoadNextRound();
}
@ -250,6 +252,7 @@ namespace NadekoBot
}
public class TriviaQuestion {
public string Category;
public string Question;
public string Answer;
public TriviaQuestion(string q, string a) {
@ -259,7 +262,7 @@ namespace NadekoBot
public override string ToString()
{
return this.Question;
return this.Category == null ? "--------**Q**--------\nQuestion: **" + this.Question + "?**" : "--------Q--------\nCategory: " + this.Category + "\nQuestion: **"+ this.Question+ "?**";
}
}
@ -283,16 +286,18 @@ namespace NadekoBot
public TriviaQuestionsPool() {
_r = new Random();
pool = new List<TriviaQuestion>();
var httpClient = new System.Net.Http.HttpClient();
JArray arr = JArray.Parse(File.ReadAllText("questions.txt"));
var r = httpClient.GetAsync("http://jservice.io/api/clues?category=19").Result;
string str = r.Content.ReadAsStringAsync().Result;
dynamic obj = JArray.Parse(str);
foreach (var item in obj)
foreach (var item in arr)
{
pool.Add(new TriviaQuestion((string)item.question,(string)item.answer));
TriviaQuestion tq;
tq = new TriviaQuestion((string)item["Question"],(string)item["Answer"]);
if (item?["Category"] != null) {
tq.Category = item["Category"].ToString();
}
pool.Add(tq);
}
}