TestController.cs 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. using molilian.core;
  2. using dodohold.core;
  3. using Microsoft.AspNetCore.Mvc;
  4. using Org.BouncyCastle.Ocsp;
  5. using System.Text.Json;
  6. using System.Runtime.InteropServices;
  7. using System.Net;
  8. using System.Threading;
  9. namespace molilian.api.Controllers
  10. {
  11. [ApiController]
  12. [Route("[controller]/[action]")]
  13. public class TestController : ControllerBase
  14. {
  15. protected IHttpContextAccessor _accessor;
  16. public TestController(IHttpContextAccessor accessor)
  17. {
  18. _accessor = accessor;
  19. }
  20. [HttpGet]
  21. public async Task<ActionResult> ip(string ip)
  22. {
  23. string result = IP2RegionPlus.Search(ip);
  24. return new APIResult(new
  25. {
  26. success = true,
  27. message = result
  28. });
  29. }
  30. [HttpGet]
  31. public async Task<ActionResult> testTask()
  32. {
  33. string url = "https://www.taobao.com";
  34. TkDataDTO result = new TkDataDTO();
  35. WebClientUtility client = new WebClientUtility();
  36. client.Timeout = TimeSpan.FromMilliseconds(100);
  37. using var cts = new CancellationTokenSource();
  38. cts.CancelAfter(1000);
  39. //var requestTask = alimama.UnionParse2Async(content, result, cts.Token, swData);
  40. //var delayTask = Task.Delay(timeout, cts.Token);
  41. //var completedTask = await Task.WhenAny(requestTask, delayTask);
  42. //if (completedTask == requestTask)
  43. //{
  44. // result = await requestTask;
  45. //}
  46. //else
  47. //{
  48. // cts.Cancel();
  49. // result.success = false;
  50. // result.message = "放弃转链";
  51. // result.reason = "请求超时";
  52. // result.itemName = "点击打开淘宝APP";
  53. //}
  54. return new APIResult(new
  55. {
  56. success = true,
  57. message = "ok"
  58. });
  59. }
  60. [HttpPost]
  61. public async Task<ActionResult> test1([FromBody] JsonElement form)
  62. {
  63. NotifyCore.Notify(new NifyMessage
  64. {
  65. message = $"【淘宝联盟:test】cookie 掉线",
  66. priority = NifyMessagePriority.high,
  67. tags = ["red_circle"]
  68. });
  69. return new APIResult(new
  70. {
  71. success = true,
  72. message = "ok"
  73. });
  74. }
  75. [HttpGet]
  76. public async Task<ActionResult> xxx()
  77. {
  78. var list = TkPoolCore.List();
  79. if (list == null) return new APIResult(new { success = false, message = "没有有效账号", });
  80. string message = string.Empty;
  81. foreach (var account in list)
  82. {
  83. try
  84. {
  85. var alimama = new AlimamaPlus(account);
  86. alimama.RenewCookie();
  87. }
  88. catch (Exception ex)
  89. {
  90. message = $"【cookie续期】xxxx\n{ex.Message}\n{ex.StackTrace}";
  91. NotifyCore.Notify(new NifyMessage
  92. {
  93. message = message,
  94. priority = NifyMessagePriority.high,
  95. tags = ["red_circle"]
  96. });
  97. continue;
  98. }
  99. }
  100. return new APIResult(new { success = true, message = "ok" });
  101. }
  102. [HttpPost]
  103. public async Task<ActionResult> Upfile(IFormFile file, [FromQuery] string dir = "")
  104. {
  105. // 检查文件是否为空
  106. if (file == null || file.Length == 0) throw new APIException("无效文件");
  107. using MemoryStream stream = new();
  108. file.CopyTo(stream);
  109. var bytes = stream.ToArray();
  110. var result = await ImageHostingPlus.Dianping(file.FileName, bytes);
  111. //result = ImageHostingPlus.Dianping2(file);
  112. return new APIResult(new { data = result });
  113. }
  114. }
  115. }