using System;
using System.IO;
using System.Net;
using System.Text;
using System.Windows.Forms;
using JsonClasses;
using Newtonsoft.Json;
using System.Threading.Tasks;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
DateTime date;
Timer timer = new Timer();
int timerCounter = 0;
public Form1()
{
InitializeComponent();
}
private void start_Click(object sender, EventArgs e)
{
File.WriteAllText("timer.txt", "");
File.WriteAllText("followersToday.txt", "0");
File.WriteAllText("song.txt", "");
date = DateTime.Now;
timer.Tick += new EventHandler(tickTimer);
timer.Interval = 1000;
if (start.Text == "Stop")
{
timer.Stop();
start.Text = "Start";
}
else
{
timer.Start();
start.Text = "Stop";
File.WriteAllText("timer.txt", "");
File.WriteAllText("followersToday.txt", "0");
File.WriteAllText("song.txt", "");
}
}
private void tickTimer(object sender, EventArgs e)
{
long tick = DateTime.Now.Ticks - date.Ticks;
DateTime stopWatch = new DateTime();
stopWatch = stopWatch.AddTicks(tick);
streamTime.Text = "Stream Time: " + String.Format("{0:HH:mm:ss}", stopWatch);
File.WriteAllText("timer.txt", streamTime.Text);
timerCounter++;
if (timerCounter == 10)
{
label1.Text = String.Format("{0}", timerCounter);
Task task1 = new Task(taskGetSong);
Task task2 = new Task(taskGetFollower);
task1.Start();
task2.Start();
task1.Wait();
task2.Wait();
timerCounter = 0;
}
}
private void taskGetSong()
{
timer.Tick += new EventHandler(getSong);
}
private void taskGetFollower()
{
timer.Tick += new EventHandler(getFollower);
}
private void getSong(object sender, EventArgs e)
{
HttpWebRequest songRequest = (HttpWebRequest)WebRequest.Create("http://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&user=dockgg&api_key=e28039161acc777b14cfb09eb41ef896&limit=1&format=json");
HttpWebResponse response = (HttpWebResponse)songRequest.GetResponse();
string json = new StreamReader(response.GetResponseStream(), Encoding.UTF8).ReadToEnd();
json = json.Replace("{\"#", "{\"");
json = json.Replace("@", "");
if (json.IndexOf("nowplaying") != -1)
{
var result = JsonConvert.DeserializeObject<RootObjectSong>(json);
songName.Text = "Song: " + result.recenttracks.track[0].artist.text + " - " + result.recenttracks.track[0].name;
File.WriteAllText("song.txt", songName.Text);
}
else
{
songName.Text = "Song: Doesn' t play";
}
}
private void getFollower(object sender, EventArgs e)
{
HttpWebRequest songRequest = (HttpWebRequest)WebRequest.Create("https://api.twitch.tv/kraken/channels/dockgg/follows?limit=10");
HttpWebResponse response = (HttpWebResponse)songRequest.GetResponse();
string json = new StreamReader(response.GetResponseStream(), Encoding.UTF8).ReadToEnd();
var result = JsonConvert.DeserializeObject<RootObjectFollower>(json);
lastFollower.Text = "Last Follower: " + result.follows[0].user.display_name;
File.WriteAllText("lastFollower.txt", lastFollower.Text);
string text = System.IO.File.ReadAllText(@"followers.txt");
for (int i = 0; i < 10; i++ )
{
if (text.IndexOf("<n>" + result.follows[i].user.name + "</n>") == -1)
{
text += "<n>" + result.follows[i].user.name + "</n>\n";
File.WriteAllText("followers.txt", text);
string folToday = System.IO.File.ReadAllText(@"followersToday.txt");
int num = Int32.Parse(folToday);
num++;
followersToday.Text = "Followers Today: " + String.Format("{0}", num);
}
}
}
}
}