Jump to content
McKay Development

log.verbose("polldata.json is corrupt");


Recommended Posts

Hi.

I got a problem like this and i don't know how to fix it.

                log.verbose("polldata.json is corrupt");
                ^

ReferenceError: log is not defined
    at Object.<anonymous> (C:\Users\kingwang\Desktop\Trade Offer Bot\bot2.js:55:3)
    at Module._compile (module.js:409:26)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Function.Module.runMain (module.js:441:10)
    at startup (node.js:139:18)
    at node.js:974:3

And here is my code

if(fs.existsSync(POLLDATA_FILENAME)) {
	try {
		manager.pollData = JSON.parse(fs.readFileSync(POLLDATA_FILENAME));
	} catch(e) {
		log.verbose("polldata.json is corrupt");
	}
}

manager.on('pollData', function(pollData) {
	fs.writeFile(POLLDATA_FILENAME, JSON.stringify(pollData));
});

var logger = new (Winston.Logger)({
        transports: [
            new (Winston.transports.Console)({
                colorize: true, 
                level: 'debug'
            }),
            new (Winston.transports.File)({
                level: 'info', 
                timestamp: true, 
                filename: 'cratedump.log', 
                json: false
            })
        ]
});

var client = new SteamUser();
var offers = new TradeOfferManager({
    steam:        client,
    domain:       config2.domain, 
    language:     "en", 
    pollInterval: 10000, 
    cancelTime:   50000 
});

fs.readFile('polldata.json', function (err, data) {
    if (err) {
        logger.warn('Error reading polldata.json. If this is the first run, this is expected behavior: '+err);
    } else {
        console.log('Welcome back my master.'.green);
		console.log("Found previous trade offer poll data.  Importing it to keep things running smoothly.".info);
        offers.pollData = JSON.parse(data);
    }
});

client.logOn({
    accountName: config2.username,
    password: config2.password,
});

client.on('loggedOn', function (details) {
    console.log(timestamp("[hh:mm:ss] Logged into Steam as " + config2.username.green));
    // If you wanted to go in-game after logging in (for crafting or whatever), you can do the following
    client.gamesPlayed(440);
});

client.on('webSession', function (sessionID, cookies) {
    console.log("Got web session".info);
    client.setPersona(1)
    offers.setCookies(cookies, function (err){
        if (err) {
            logger.error('Unable to set trade offer cookies: '+err);
            process.exit(1); 
        }
        logger.info("Trade offer cookies set.");
		manager.loadInventory(440, 2, true, function(err, inventory) {
			if (err) {
				console.log(err);
				return;
			}

			if (inventory.length == 0) {
				// Inventory empty
				console.log("TF2 inventory is empty");
				return;
			}
			console.log("Found " + inventory.length + " TF2 items");
			var ref = inventory.filter(function (item) {
                return item.name == 'Refined Metal'
            });
			var rec = inventory.filter(function (item) {
                return item.name == 'Reclaimed Metal'
            });
			var scrap = inventory.filter(function (item) {
                return item.name == 'Scrap Metal'
            });
			console.log("Found " + ref.length + " Refined Metal");
			console.log("Found " + rec.length + " Reclaimed Metal");
			console.log("Found " + scrap.length + " Scrap Metal");
			
			var inventory = inventory.filter(function (item) {
                return item.name == 'Refined Metal'
            });
			
			var trade = offers.createOffer(admin);
			trade.addMyItems(inventory);
			trade.setMessage("Here, have some items!");
			trade.send(function(err, status) {
				if (err) {
					console.log(err);
				} else {
					console.log("Success. Offer was sent to admin.")
				}
			});
		});
	});
});

Any ideas how to fix this problem? Also, my bot is working fine before

Link to comment
Share on other sites

That is happening because log is not defined. You want to move the polldata-reading block of code beneath where you define your logger, and change log.verbose to logger.verbose.

Thanks for answering. But i got this after i changed to this coding

var logger = new (Winston.Logger)({
        transports: [
            new (Winston.transports.Console)({
                colorize: true, 
                level: 'debug'
            }),
            new (Winston.transports.File)({
                level: 'info', 
                timestamp: true, 
                filename: 'cratedump.log', 
                json: false
            })
        ]
});

if(fs.existsSync(POLLDATA_FILENAME)) {
	try {
		manager.pollData = JSON.parse(fs.readFileSync(POLLDATA_FILENAME));
	} catch(e) {
		logger.verbose("polldata.json is corrupt");
	}
}

manager.on('pollData', function(pollData) {
	fs.writeFile(POLLDATA_FILENAME, JSON.stringify(pollData));
});

Error

verbose: polldata.json is corrupt
Welcome back my master.
Found previous trade offer poll data.  Importing it to keep things running smoothly.
undefined:1



SyntaxError: Unexpected end of input
    at Object.parse (native)
    at C:\Users\kingwang\Desktop\Trade Offer Bot\bot2.js:93:32
    at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:380:3)
 Press any key to continue . . .
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...