Guest User

Untitled

a guest
Dec 8th, 2016
29
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.05 KB | None | 0 0
  1. SteamUser = require "steam-user"
  2. SteamTotp = require "steam-totp"
  3. inquirer = require "inquirer"
  4. jsonfile = require "jsonfile"
  5. jsonfile.spaces = 2
  6.  
  7. try
  8. database = jsonfile.readFileSync "database.json"
  9. catch e
  10. database = {}
  11. secret = null
  12.  
  13. promptGames =
  14. type: "checkbox"
  15. name: "games"
  16. message: "Select the games to boost:"
  17. choices: [
  18. {value: 10, name: "CS 1.6", checked: true}
  19. {value: 730, name: "CS:GO", checked: true}
  20. {value: 570, name: "DOTA2"}
  21. {value: 340820, name: "Yelaxot", checked: true}
  22. {value: 473580, name: "Wyatt Derp 2", checked: true}
  23. {value: 301210, name: "Two Worlds", checked: true}
  24. {value: 1930, name: "Two Worlds: Epic Edition", checked: true}
  25. {value: 486360, name: "Timore Inferno", checked: true}
  26. {value: 432150, name: "They Came From The Moon", checked: true}
  27. {value: 329950, name: "The Slaughtering Grounds", checked: true}
  28. {value: 491250, name: "The Decimation Olarath", checked: true}
  29. {value: 224220, name: "Pressure", checked: true}
  30. {value: 304050, name: "Trove", checked: true}
  31. {value: 383030, name: "Medieval", checked: true}
  32. {value: 294040, name: "Loot Hero DX", checked: true}
  33. {value: 457940, name: "Krong Wars", checked: true}
  34. {value: 466730, name: "King"s Guard TD", checked: true}
  35. {value: 382120, name: "Journey To The Center Of The Earth", checked: true}
  36. {value: 259320, name: "Heli Heroes", checked: true}
  37. {value: 334070, name: "Hektor", checked: true}
  38. {value: 331360, name: "Heavy Metal Machines", checked: true}
  39. {value: 253920, name: "Gorky 17", checked: true}
  40. {value: 486340, name: "Gnarltoofs Revenge", checked: true}
  41. {value: 392050, name: "Galactic Hitman", checked: true}
  42. {value: 487220, name: "Freebie", checked: true}
  43. ]
  44.  
  45. inquirer.prompt [
  46. {name: "username", message: "Username:"}
  47. {name: "password", message: "Password:", type: "password"}
  48. ]
  49. .then ({username, password}) ->
  50. database[username] = {}
  51. client = new SteamUser
  52. client.setOption "promptSteamGuardCode", false
  53. client.setOption "dataDirectory", null
  54. client.logOn
  55. accountName: username,
  56. password: password,
  57.  
  58. client.on "steamGuard", (domain, callback) ->
  59. if domain
  60. inquirer.prompt [name: "code", message: "Steam guard code (#{domain}):"]
  61. .then ({code}) -> callback code
  62. else
  63. inquirer.prompt [name: "secret", message: "Two-factor shared secret:"]
  64. .then ({secret}) ->
  65. SteamTotp.generateAuthCode secret, (err, code) ->
  66. database[username].secret = secret
  67. callback code
  68.  
  69. client.on "sentry", (sentry) ->
  70. database[username].sentry = sentry.toString("base64")
  71. jsonfile.writeFileSync "database.json", database
  72.  
  73. client.on "loggedOn", (details) ->
  74. database[username].password = password
  75. inquirer.prompt promptGames
  76. .then ({games}) ->
  77. database[username].games = games
  78. jsonfile.writeFileSync "database.json", database
  79. process.exit 0
  80.  
  81. client.on "error", (err) ->
  82. console.log "Error": #{err}"
  83. process.exit 1
Add Comment
Please, Sign In to add comment