Advertisement
Guest User

Untitled

a guest
Oct 25th, 2016
538
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.33 KB | None | 0 0
  1. var SteamUser = require('steam-user'),
  2. mkdirp = require('mkdirp'),
  3. fs = require('fs'),
  4. readlineSync = require('readline-sync'),
  5. SteamID = require('steamid'),
  6. MongoClient = require("mongodb").MongoClient;
  7.  
  8. var db = "";
  9.  
  10. MongoClient.connect("mongodb://localhost/mydb" , function(err, dba) {
  11. if (err != null) {
  12. console.log(err);
  13. return;
  14. }
  15. db = dba;
  16. console.log("Connected to mongodb");
  17. });
  18.  
  19. if (!fs.existsSync("data")) {
  20. mkdirp.sync("data");
  21. var writeMe = {
  22. users: []
  23. };
  24. fs.writeFileSync("data/loggedusers.json", JSON.stringify(writeMe, null, 4));
  25. }
  26.  
  27.  
  28. var loggedUsers = JSON.parse(fs.readFileSync("data/loggedusers.json"));
  29.  
  30. var steamClient = new SteamUser();
  31.  
  32. var username = readlineSync.question('Enter Steam username: ');
  33. var password = readlineSync.question('Enter Steam password: ', {
  34. hideEchoBack: true
  35. });
  36.  
  37. steamClient.logOn({
  38. accountName: username,
  39. password: password
  40. });
  41.  
  42. steamClient.on('loggedOn', function () {
  43.  
  44. console.log("Logged into Steam!");
  45. steamClient.setPersona(3);
  46. checkHistory();
  47. setInterval(checkHistory, 30000);
  48.  
  49. });
  50.  
  51. steamClient.on('error', function (err) {
  52.  
  53. console.log(err);
  54.  
  55. });
  56.  
  57. steamClient.on('friendTyping', function(senderID){
  58.  
  59. var steamid3 = new SteamID("[U:1:" + senderID.accountid + "]");
  60. var steamid64 = steamid3.getSteamID64();
  61.  
  62. for (var i=0;i<loggedUsers.users.length;i++) {
  63. if (loggedUsers.users[i] == steamid64) {
  64. return;
  65. }
  66. }
  67.  
  68. loggedUsers.users.push(steamid64);
  69. fs.writeFileSync("data/loggedusers.json", JSON.stringify(loggedUsers, null, 4));
  70.  
  71. console.log("Commence logging messages from: " + steamid64);
  72.  
  73. });
  74.  
  75. steamClient.on('chatHistory', function(steamID, success, messages){
  76.  
  77. if (success != SteamUser.Steam.EResult.OK) {
  78.  
  79. console.log("Error retreiving chat history: " + success);
  80. return;
  81.  
  82. }
  83.  
  84. var steamid64 = steamID.getSteamID64();
  85.  
  86. if (!fs.existsSync("data/" + steamid64)) {
  87.  
  88. console.log("Creating folder for: " + steamid64);
  89. mkdirp.sync("data/" + steamid64);
  90. fs.writeFileSync("data/" + steamid64 + "/main.log", "", 'utf-8');
  91.  
  92. var writeMeI = {
  93. lastStamp: 0
  94. };
  95.  
  96. fs.writeFileSync("data/" + steamid64 + "/info.json", JSON.stringify(writeMeI, null, 4));
  97.  
  98. }
  99.  
  100. var writeMe = "";
  101. var infoJ = JSON.parse(fs.readFileSync("data/" + steamid64 + "/info.json"));
  102. var lastStamp = infoJ.lastStamp;
  103. var newMessages = false;
  104. var incrementWith = 0;
  105.  
  106. for (var i=0;i<messages.length;i++) {
  107.  
  108. var date = messages[i].timestamp;
  109.  
  110. var newMonth = date.getMonth() + 1;
  111. var newHour = date.getHours() + 1;
  112. var newMinute = date.getMinutes() + 1;
  113. var newSecond = date.getSeconds() + 1;
  114. var currentStamp = date.getTime();
  115.  
  116. if(lastStamp >= currentStamp) {
  117. // Do not write messages which have already been logged.
  118.  
  119. continue;
  120. }
  121.  
  122. newMessages = true;
  123.  
  124. var timePrefix = "[" + date.getDate() + "/" + newMonth + "/" + date.getFullYear() + " " + newHour + ":" + newMinute + ":" + newSecond + "] ";
  125.  
  126.  
  127. var personaPrefix = "";
  128. if (messages[i].steamID.accountid == steamClient.steamID.accountid) {
  129. // It is us.
  130.  
  131. personaPrefix = "Me: ";
  132. } else {
  133.  
  134. personaPrefix = "Them: ";
  135. incrementWith++;
  136.  
  137. }
  138.  
  139. writeMe += timePrefix + personaPrefix + messages[i].message + "\n";
  140.  
  141. }
  142.  
  143. if (newMessages) {
  144.  
  145. fs.appendFileSync("data/" + steamid64 + "/main.log", writeMe);
  146.  
  147. var writeMeA = {
  148. lastStamp: currentStamp
  149. };
  150. fs.writeFileSync("data/" + steamid64 + "/info.json", JSON.stringify(writeMeA, null, 4));
  151.  
  152. var mycol= db.collection('mycol');
  153.  
  154. mycol.findOneAndUpdate({ own_id: 1}, {$inc: { totalMessages: incrementWith }});
  155.  
  156. console.log("Appended logs for: " + steamid64);
  157.  
  158. }
  159.  
  160. });
  161.  
  162. // Fire the chatHistory event for every user who has talked to me every x seconds.
  163. function checkHistory() {
  164. for (var i=0;i<loggedUsers.users.length;i++) {
  165. var steamid64 = loggedUsers.users[i];
  166. steamClient.getChatHistory(steamid64);
  167. }
  168. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement