Sleazy Fork is available in English.

Free forever

chat as many times you want it wont tell you to pay

  1. // ==UserScript==
  2. // @name Free forever
  3. // @namespace Violentmonkey Scripts
  4. // @match https://www.genschat.com/*
  5. // @match https://www.characterwaifu.com/*
  6. // @include https://characterwaifu.com/*
  7. // @match https://www.aicharacterwaifu.com/*
  8. // @include https://aicharacterwaifu.com/*
  9. // @grant none
  10. // @version 2.012
  11. // @author -
  12. // @license MIT
  13. // @description chat as many times you want it wont tell you to pay
  14. // ==/UserScript==
  15.  
  16. (function() {
  17. 'use strict';
  18. window.showSubscribe = function() {
  19.  
  20. };
  21. function setVip() {
  22. try {
  23. if (window._vInstance_ && window._vInstance_.$store && window._vInstance_.$store.state) {
  24. window._vInstance_.$store.state.isVip = true;
  25. console.log("isVip set to true");
  26. }
  27. } catch (e) {
  28. console.error("Error setting isVip:", e);
  29. }
  30. }
  31. function modifyIndexedDB() {
  32. const request = indexedDB.open("localforage");
  33.  
  34. request.onerror = function(event) {
  35. console.error("Error opening IndexedDB:", event);
  36. };
  37.  
  38. request.onsuccess = function(event) {
  39. const db = event.target.result;
  40. const transaction = db.transaction(["keyvaluepairs"], "readwrite");
  41. const objectStore = transaction.objectStore("keyvaluepairs");
  42.  
  43. objectStore.openCursor().onsuccess = function(event) {
  44. const cursor = event.target.result;
  45. if (cursor) {
  46. const key = cursor.primaryKey;
  47. let value = cursor.value;
  48.  
  49. try {
  50. let jsonValue = JSON.parse(value);
  51.  
  52. if (jsonValue.tip && jsonValue.tip.c !== undefined) {
  53. jsonValue.tip.c = 0;
  54. }
  55.  
  56. if (jsonValue.tipCount !== undefined) {
  57. jsonValue.tipCount = 0;
  58. }
  59.  
  60. if (jsonValue.reply !== undefined) {
  61. jsonValue.reply = 0;
  62. }
  63.  
  64. function replacePayMode(obj) {
  65. for (let key in obj) {
  66. if (obj.hasOwnProperty(key)) {
  67. if (typeof obj[key] === "object" && obj[key] !== null) {
  68. replacePayMode(obj[key]);
  69. } else if (key === "payMode") {
  70. obj[key] = "vip";
  71. }
  72. }
  73. }
  74. }
  75.  
  76. replacePayMode(jsonValue);
  77.  
  78. const updatedValue = JSON.stringify(jsonValue);
  79. const updateRequest = objectStore.put(updatedValue, key);
  80.  
  81.  
  82. updateRequest.onerror = function() {
  83. console.error("Error updating:", key);
  84. };
  85. } catch (e) {
  86. console.error("Error parsing JSON for key:", key, e);
  87. }
  88.  
  89. cursor.continue();
  90. } else {
  91. }
  92. };
  93. };
  94. }
  95. modifyIndexedDB();
  96. setInterval(modifyIndexedDB, 2000);
  97. // Run the function repeatedly
  98. setInterval(setVip, 500); // Adjust the interval (in ms) as needed
  99. })();