private async void NicorepoTimerAsync(object sender, object e) { //ニコレポ巡回 //今のUnixTime long nowUnixTime = DateTimeOffset.UtcNow.ToUnixTimeSeconds(); if (setting.Values["user_session"] != null) { var urlString = "https://www.nicovideo.jp/api/nicorepo/timeline/my/all?client_app=pc_myrepo"; var client = new HttpClient(); client.DefaultRequestHeaders.TryAddWithoutValidation("User-Agent", "NicoLiveAlert_Twitter;@takusan_23"); client.DefaultRequestHeaders.TryAddWithoutValidation("Cookie", "user_session=" + setting.Values["user_session"]); using (var stream = await client.GetAsync(new Uri(urlString))) { if (stream.StatusCode == System.Net.HttpStatusCode.OK) { var jsonString = await stream.Content.ReadAsStringAsync(); var jsonObject = JsonConvert.DeserializeObject <NicoRepoRootObject>(jsonString); //forEach var pos = 0; foreach (var json in jsonObject.data) { //ニコレポには生放送以外の内容も流れてくるので生放送だけふるう if (json.program != null) { //予約枠の投稿だけひろう if (json.topic == "live.user.program.reserve") { //番組開始時刻 var date = DateTime.Parse(json.program.beginAt); //DateTime→UnixTime var unix = new DateTimeOffset(date.Ticks, new TimeSpan(+09, 00, 00)); //すでに終わってる予約枠は拾わない if (nowUnixTime <= unix.ToUnixTimeSeconds()) { //予約枠自動入場 //追加 addAdmissionList(json.program.title, json.program.id, unix.ToUnixTimeSeconds(), json.community.id); } } } } } else { //user_session再取得 var nicologin = new NicoLogin(); nicologin.ReNiconicoLogin(); } } } }