Advertisement
Guest User

Untitled

a guest
Aug 21st, 2017
1,699
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.09 KB | None | 0 0
  1. //Kenny's steam idle script
  2. //Modified by Kingga
  3. //Requires node.js, steam-user to work
  4. //May also require steam-totp if running on windows
  5. //Designed to work with the steam mobile authenticator
  6.  
  7. // TODO: EASY WAY TO ADD A GAME
  8.  
  9. //Main vars
  10. var SteamUser = require('steam-user');
  11. var SteamTotp = require('steam-totp');
  12. var user = new SteamUser();
  13.  
  14. //Other Vars
  15. var dt = new Date();
  16. var utcDate = dt.toUTCString();
  17. var timeStamp = Math.floor(Date.now() / 1000);
  18. var afkMessage = "I am AFK right now, contact me on http://discord.gg/mannin/";
  19. var gameIDs = [];
  20. var idling = true;
  21. var customIdleGameMessage = "www.vertigo.party | Cheap Rank Boosting";
  22.  
  23. // Custom Commands
  24. const readline = require('readline');
  25. const rl = readline.createInterface({
  26. input: process.stdin,
  27. output: process.stdout
  28. });
  29.  
  30. rl.on('line', (line) => {
  31. if (line == "exit")
  32. {
  33. process.exit();
  34. }
  35. else if (line == "set afkmessage")
  36. {
  37. rl.question('What would you like the message to be?\n', (answer) => {
  38. afkMessage = answer;
  39. console.log("Your message has been set!");
  40. });
  41. }
  42. else if (line == "get afkmessage")
  43. {
  44. console.log("Your message is: " + afkMessage);
  45. }
  46. else if (line == "add gameid")
  47. {
  48. rl.question('What is the id of the game?\n', (answer) => {
  49. // Check if gameID < 32 items
  50. if (gameIDs.length < 33)
  51. {
  52. gameIDs.push(parseInt(answer));
  53. writeconfig();
  54.  
  55. // Restart
  56. user.logOff();
  57.  
  58.  
  59. // NEED TO ADD A WAIT PERIOD
  60.  
  61.  
  62.  
  63.  
  64. login();
  65. }
  66. else
  67. console.log("You cannot add anymore games to the list until you delete one");
  68. });
  69. }
  70. else if (line == "set customgamemsg")
  71. {
  72. rl.question('What would you like the game to be called?\n', (answer) => {
  73. customIdleGameMessage = answer;
  74. console.log("Your game name has been set!");
  75. });
  76. }
  77. else if (line == "get customgamemsg")
  78. {
  79. console.log("\nYour custom game is currently set to " + customIdleGameMessage + "\n");
  80. }
  81. else if (line == "add gameurl")
  82. {
  83. rl.question('What is the url of the game?\n', (answer) => {
  84. var tempArr = answer.split("/");
  85.  
  86. // Check if gameID < 32 items
  87. if (gameIDs.length < 33)
  88. {
  89. gameIDs.push(parseInt(tempArr[2]));
  90. writeconfig();
  91.  
  92. // Restart
  93. user.logOff();
  94. login();
  95. }
  96. else
  97. console.log("You cannot add anymore games to the list until you delete one");
  98. });
  99. }
  100. else if (line == "delete gameid")
  101. {
  102. rl.question('What is the url of the game?\n', (answer) => {
  103. var index = gameIDs.indexOf(parseInt(answer));
  104.  
  105. // Remove at index and shuffle everything back
  106. gameIDs.splice(index);
  107.  
  108. writeconfig();
  109.  
  110. // Restart
  111. user.logOff();
  112. login();
  113. });
  114. }
  115. else if (line == "delete gameurl")
  116. {
  117. rl.question('What is the url of the game?\n', (answer) => {
  118. var tempArr = answer.split("/");
  119. var index = gameIDs.indexOf(parseInt(tempArr[2]));
  120.  
  121. // Remove at index and shuffle everything back
  122. gameIDs.splice(index);
  123.  
  124. writeconfig();
  125.  
  126. // Restart
  127. user.logOff();
  128. login();
  129. });
  130. }
  131. else if (line == "delete all")
  132. {
  133. gameIDs = [];
  134.  
  135. writeconfig();
  136.  
  137. // Restart
  138. user.logOff();
  139. login();
  140. }
  141. else if (line == "toggle afk")
  142. {
  143. if (afkToggle == 1)
  144. {
  145. console.log("AFK Chat Toggled Off");
  146. afkToggle = 0;
  147. }
  148. else if (afkToggle == 0)
  149. {
  150. console.log("AFK Chat Toggled On");
  151. afkToggle = 1;
  152. }
  153. }
  154. else if (line == "toggle idle")
  155. {
  156. if (idling)
  157. {
  158. idling = false;
  159. console.log("Idling Toggled Off");
  160. user.logOff();
  161. }
  162. else if (!idling)
  163. {
  164. idling = true;
  165. console.log("Idling Toggled On");
  166. login();
  167. }
  168. }
  169. else if (line == "count games")
  170. {
  171. console.log("\nLength: " + gameIDs.length - 1 + "\n");
  172. }
  173. else if (line == "list games")
  174. {
  175. var length = gameIDs.length;
  176. var gameName = "";
  177.  
  178. console.log("\nGame IDs:\n");
  179.  
  180. for (var i = 0; i < length; i++)
  181. {
  182. console.log(gameIDs[i]);
  183. }
  184. }
  185. else if (line == "writecfg")
  186. {
  187. writeconfig();
  188.  
  189. // Restart
  190. user.logOff();
  191. login();
  192. }
  193. else if (line == "help")
  194. {
  195. console.log("\nCommands:\nset afkmessage\nget afkmessage\nset customgamemsg\nget customgamemsg\ntoggle afk\ntoggle idle\nadd gameid\nadd gameurl\ndelete gameid\ndelete gameurl\ndelete all\ncount games\nwritecfg\nlist games\n--------------------------------------------------\n");
  196. }
  197. });
  198.  
  199. // Keypress toggle
  200. var afkToggle = 1; // Currently AFK
  201.  
  202. var keypress = require('keypress');
  203.  
  204. process.stdin.setRawMode(true);
  205.  
  206. // make `process.stdin` begin emitting "keypress" events
  207. keypress(process.stdin);
  208.  
  209. // listen for the "keypress" event
  210. process.stdin.on('keypress', function (ch, key) {
  211. if (key && key.name == "escape") {
  212. if (afkToggle == 1)
  213. {
  214. console.log("AFK Chat Toggled Off");
  215. afkToggle = 0;
  216. }
  217. else if (afkToggle == 0)
  218. {
  219. console.log("AFK Chat Toggled On");
  220. afkToggle = 1;
  221. }
  222. }
  223. });
  224.  
  225. process.stdin.setRawMode(true);
  226. process.stdin.resume();
  227.  
  228. var fs = require('fs');
  229.  
  230. var wstream;
  231.  
  232. //creates a log file with a unix timestamp for a name
  233. if (!fs.existsSync("./AFKBotLogs/"))
  234. {
  235. fs.mkdirSync("./AFKBotLogs/");
  236. wstream = fs.createWriteStream(process.cwd() + "\\AFKBotLogs\\" + timeStamp + '.log');
  237. }
  238. else
  239. {
  240. wstream = fs.createWriteStream(process.cwd() + "\\AFKBotLogs\\" + timeStamp + '.log');
  241. }
  242.  
  243.  
  244. function readconfig()
  245. {
  246. fs.readFile('afkbot_config.cfg', 'utf8', function (err, data) {
  247. if (err)
  248. {
  249. return console.log(err);
  250. }
  251.  
  252. var lines = data.split(',');
  253.  
  254. // Clear array
  255. gameIDs = [];
  256.  
  257. for (var i = 0; i < lines.length; i++)
  258. {
  259. gameIDs.push(lines[i]);
  260. }
  261. });
  262. }
  263.  
  264. function writeconfig()
  265. {
  266. var wstreamcfg = fs.createWriteStream('afkbot_config.cfg');
  267.  
  268. // write config
  269. var length = gameIDs.length;
  270.  
  271. for (var i = 0; i < length; i++)
  272. {
  273. wstreamcfg.write(gameIDs[i] + ",");
  274. }
  275.  
  276. return true;
  277. }
  278.  
  279. //Function for Logon
  280. function login()
  281. {
  282. if (idling)
  283. {
  284. user.logOn({
  285. accountName: "gmen9290",
  286. password: "Mannin$$$$",
  287. twoFactorCode: SteamTotp.getAuthCode("")
  288. });
  289. }
  290. }
  291.  
  292. readconfig();
  293.  
  294. login();
  295.  
  296. //Function to set games and Online state
  297. user.on('webSession', function(){
  298. console.log('Logged in!');
  299. //can be set to online or offline
  300. user.setPersona(SteamUser.Steam.EPersonaState.Online);
  301.  
  302. if (idling)
  303. {
  304. // Add "Idling Games" to the end of list so steam will show "In non-Steam game Idling Games"
  305. var tempGameArr = gameIDs;
  306. tempGameArr.push("Idling Games");
  307.  
  308. user.gamesPlayed(gameIDs);
  309. }
  310. });
  311.  
  312. //Function to auto-reply to messages as well as log incoming mesages
  313. user.on('friendMessage', function(steamID,message){
  314. if (afkToggle == 1)
  315. {
  316. var dt = new Date();
  317. var utcDate = dt.toUTCString();
  318. console.log(utcDate + " Friend message from " + steamID.getSteam3RenderedID() + ": " + message);
  319. wstream.write('\n' + utcDate + " Friend message from " + steamID.getSteam3RenderedID() + ": " + message);
  320. user.chatMessage(steamID, afkMessage);
  321. console.log("Message sent to " + steamID.getSteam3RenderedID());
  322. }
  323. });
  324.  
  325. //version 2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement