D2RUAUTOSUBSCRIBER

Автоподписыватель на пользователей д2ру

  1. // ==UserScript==
  2. // @name D2RUAUTOSUBSCRIBER
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.3
  5. // @description Автоподписыватель на пользователей д2ру
  6. // @author S30N1K
  7. // @match https://dota2.ru/
  8. // @match https://esportsgames.ru/
  9. // @grant none
  10. // @license MIT
  11. // ==/UserScript==
  12.  
  13. (async function () {
  14. const offset = 864000
  15. const lastDate = parseInt(localStorage.getItem("lastSubscribeTime")) || 0
  16. let lastUser = parseInt(localStorage.getItem("lastSubscribeUser")) || 100
  17.  
  18.  
  19. const nextUser = async () => {
  20. lastUser += 1;
  21. localStorage.setItem("lastSubscribeUser", lastUser.toString())
  22. await subscribe()
  23. }
  24.  
  25. const subscribe = async () => {
  26. const response = await fetch("/forum/api/user/subscribe", {
  27. method: 'POST',
  28. body: JSON.stringify({uid: lastUser}),
  29. headers: {
  30. "X-Requested-With": "XMLHttpRequest"
  31. }
  32. })
  33. const result = await response.json()
  34. switch (result.status){
  35. case "already": {
  36. console.log(`${lastUser} уже подписан`)
  37. await nextUser()
  38. break
  39. }
  40. case "success": {
  41. console.log(`${lastUser} успешно подписались`)
  42. await nextUser()
  43. break
  44. }
  45. case "invalidUser":{
  46. await nextUser()
  47. break
  48. }
  49. case "accessDenied": {
  50. Utils.notify("Лимит подписок на сегодня исчерпан")
  51. localStorage.setItem("lastSubscribeTime", (+new Date() + offset).toString())
  52. break
  53. }
  54. default: {
  55. console.log(result)
  56. }
  57. }
  58. }
  59.  
  60. if ((+new Date()) > lastDate) {
  61. await subscribe()
  62. }
  63.  
  64. })();