/// <summary> /// 新規スレッドを投稿 /// </summary> /// <param name="board">投稿先の板</param> /// <param name="thread">投稿する内容</param> public override void Post(BoardInfo board, PostThread thread) { try { // 投稿時刻を作成 int time = GetTime(Time); string[] dirbbs = board.Path.Split('/'); // CGIの存在するURLを作成 string uri = String.Format("http://{0}/bbs/write.cgi/{1}/new/", board.Server, board.Path); // 送信データを作成 StringBuilder sb = new StringBuilder(); sb.Append("SUBJECT=" + UrlEncode(thread.Subject)); sb.Append("&submit=" + UrlEncode("新規書き込み")); sb.Append("&NAME=" + UrlEncode(thread.From)); sb.Append("&MAIL=" + UrlEncode(thread.Email)); sb.Append("&MESSAGE=" + UrlEncode(thread.Body)); sb.Append("&DIR=" + dirbbs[0]); sb.Append("&BBS=" + dirbbs[1]); sb.Append("&TIME=" + time); bool retried = false; byte[] bytes = Encoding.GetBytes(sb.ToString()); Posting(board, bytes, uri, ref retried); } catch (Exception ex) { TwinDll.Output(ex); throw ex; } }
/// <summary> /// 新規スレッドを投稿 /// </summary> /// <param name="board">投稿先の板</param> /// <param name="thread">投稿する内容</param> public override void Post(BoardInfo board, PostThread thread) { try { // 投稿時刻を作成 int time = GetTime(Time); // 送信データを作成 bool retried = false; // CGIの存在するURLを作成 string uri = String.Format("http://{0}/cgi-bin/test/bbs.cgi", board.Server); StringBuilder sb = new StringBuilder(); sb.Append("subject=" + UrlEncode(thread.Subject)); sb.Append("&submit=" + UrlEncode("新規スレッド作成")); sb.Append("&FROM=" + UrlEncode(thread.From)); sb.Append("&mail=" + UrlEncode(thread.Email)); sb.Append("&MESSAGE=" + UrlEncode(thread.Body)); sb.Append("&bbs=" + board.Path); sb.Append("&time=" + time); byte[] bytes = Encoding.GetBytes(sb.ToString()); Posting(board, bytes, uri, ref retried); } catch (Exception ex) { TwinDll.Output(ex); throw ex; } }
public IActionResult CreatePostThread([FromBody] PostThread postThread) { try { var data = _postService.CreatePostThread(postThread); return(new OkObjectResult(data)); } catch (Exception ex) { _logger.LogError($"POST /v1/Post/Thread endpoint caught exception: { ex.Message } Details: { ex.ToString() }"); return(NotFound()); } }
/// <summary> /// 新規スレッドを投稿 /// </summary> /// <param name="board">投稿先の板</param> /// <param name="thread">投稿する内容</param> public override void Post(BoardInfo board, PostThread thread) { try { // 投稿時刻を作成 int time = GetTime(Time); // 送信データを作成 bool retried = false; Retry: if (retried) { Thread.Sleep(1000); } // CGIの存在するURLを作成 string uri = String.Format("http://{0}/{1}", board.Server, postCGIPath); StringBuilder sb = new StringBuilder(); sb.Append("subject=" + UrlEncode(thread.Subject)); // sb.Append("&submit=" + (retried ? UrlEncode("全責任を負うことを承諾して書き込む") : UrlEncode("新規スレッド作成"))); sb.Append("&submit=" + UrlEncode("新規スレッド作成")); sb.Append("&FROM=" + UrlEncode(thread.From)); sb.Append("&mail=" + UrlEncode(thread.Email)); sb.Append("&MESSAGE=" + UrlEncode(thread.Body)); sb.Append("&bbs=" + board.Path); sb.Append("&time=" + time); sb.Append(TwinDll.AditionalAgreementField); sb.Append(TwinDll.AddWriteSection); AddSessionId(sb); byte[] bytes = Encoding.GetBytes(sb.ToString()); Posting(board, bytes, uri, ref retried); if (retried) { goto Retry; } } catch (Exception ex) { TwinDll.Output(ex); throw ex; } }
public PostThread CreatePostThread(PostThread thread) { thread.AuthorId = _accountService.GetCurrentUserId(); thread.Timestamp = DateTime.Now.ToUniversalTime(); //Make sure there's a first post var firstPost = thread.Posts.First(); firstPost.Content = firstPost.Content?.Trim(); if (firstPost.Content == null) { throw new Exception("Post must contain content"); } firstPost.AuthorId = thread.AuthorId; firstPost.Timestamp = DateTime.Now.ToUniversalTime(); return(_aquariumDao.CreatePostThread(thread)); }
/// <summary> /// 新規スレッドを投稿 /// </summary> /// <param name="board">投稿先の板</param> /// <param name="thread">投稿する内容</param> public override void Post(BoardInfo board, PostThread thread) { throw new NotSupportedException("このメソッドはサポートしていません"); }