ByteStack Posted September 11, 2019 Share Posted September 11, 2019 (edited) Update 10/11/2019: I'm putting this update here at the top because I believe it's pretty important to start off with. I've begun the process of moving the site to a publicly accessible domain! I'm looking to find people who are interested in testing the dashboard, these people must be script writers as there are no publicly available scripts that have the code required to update my database. Feel free to PM me about it. It's late and I intend to work on this over the weekend, but I felt like a short post would be good after being MIA for so long. I built a dashboard for my private scripts. When I'm not working I generally like to fiddle with a bunch of different projects, some of which are OSRS related. I got curious a while back about how much things were actually earning and decided to start collecting a bunch of data on each of my scripts. Example: If the script does something in the wilderness then I collect information from the players I interact with, like name, level, exact position, whether they killed me, and the exact time. I might use PKer data to build a heat map since I tend to bot a few different locations in the wilderness and I have tools like Explv's Map at my disposal. Here's one of the banned accounts, minus locations because I might use that for something in the future: https://github.com/Eligeion/Data/blob/master/PKerData.csv Heat map of the data in that CSV, not exact, but close enough. Anyway, since this project is ongoing and I'm adding new stuff to both my scripts and this dashboard pretty much weekly I figured I might as well post it somewhere. Let me know if you guys want more info. No this is not public, but I might offer it as a service in the future. Update 9/11/2019: Since it seems like people are interested in it, I'm going to post my list of things I want to add to this. I'll check things off and show my results as I finish each. Mule From Dashboard Database already has the ability, and muling is somewhat supported by my script so implementing it won't be crazy difficult. Kill Button Stop script/close client when pressed from the dashboard. Bank Page Each time the script banks I want to update the database with the entire bank's contents. Need a way to visualize it on the site. Loaded Accounts I've only really worked on the main dashboard and a pker list page, I want another page to show all loaded accounts so that I can click on each to get details on the account. Completed 09/17/2019 Item Database I automate the selling process on my accounts and I rely on a third party for GE prices, since I'm constantly getting actual updated buy and sell prices for items that are relevant to me I'd like to create my own API for my use. Statistics Page I have a considerable amount of data stored, but I'm not doing a whole lot with it. Granted I currently am in the testing phase for the scripts that populate this page and since they're all profitable I tend to suicide the accounts so ban information will be skewed, but I'd like to create a stat page with average ban times per method, profit and prep time, that sort of thing. Completed 09/17/2019 If you guys have any suggestions that might be cool to see, let me know. Update 9/14/2019: It's been a few days and I was at a wedding so not a whole lot has been done. I've implemented the Ajax auto-refresh, the demo that was provided on the website is not intended for use in the way that I have begun using it, but I do thank @Fratem for showing me Ajax. I am having some issues with a memory leak (about 40 minutes in I get the Aw, snap! Google Chrome ran out of memory error). I don't know enough about Ajax to fix that issue yet, but AJAX is fascinating and if you don't know what it is and you're into web dev I highly recommend reading up on it here. I've done some additional ban testing and made some discoveries that improved my ban rate (I actually got an account to survive a whole 24 hours past a 14 hour long run, it then got banned after a 10 hour run the following day), so I'm going to stop doing suicide runs with accounts and see how far I can go with each. Next time I post an update I'd like to have 3-4 instances running at once with a significant amount of progress and no bans (fingers crossed). It will also be interesting to see how the PKer Leaderboards progress. Here's the current dashboard. Update 09/17/2019: I have not gotten around to creating more accounts, but I've done quite a bit with the website. I've added the following pages and features. Accounts I have created a login system, the security of which is debatable. I'm not a security expert so the method I used might be quite vulnerable for all I know. Hashed passwords with some added NaCl just in case. I'm exploring the use of cookies, the method I'm using right now is VERY basic and is only there so that I don't have to repeatedly log in while exploring other options. Stats Page Shows skills, run time, gold earned, and exp gained of any account currently loaded in the the database. Currently if you know the ID you can look at any account, whether it's listed under the username that's logged in or not. PKer List Shows a list of all the PKers that have been collected by the script. Only shows PKers that have interacted with banned accounts, just in case I make the page public it limits the amount of info available. Loaded Accounts Displays all accounts attached to a given username. Prevents the logged in user from seeing other users accounts. Links to the stats page of each account. Signatures Currently this is locally hosted therefore a signature page doesn't really matter but it lets me see what my lifetime stats are quite quickly, eventually I might pay for hosting, but I'm no where near ready to make this public. I haven't spent any time on making a graphic for it, so it's pretty ugly. Ideas: I want to eventually start storing emails/passwords for my accounts in the database, but security is always a concern. Solution: Reversible Symmetric Encryption The user is responsible for protecting their key, without they key the passwords and emails store in the database would be useless. * This key is used to encrypt and decrypt the contents of an account. If the wrong key is used the contents are still useless. The key is not stored anywhere on the site, therefore is inaccessible to an attacker. * - Take that with a grain of salt. It really depends on the key, ideally I'll force the user to use a "randomly" generated key of letters and numbers rather than letting them choose something like "dragon12". Video of the pages in action (forgive the resolution) https://i.imgur.com/DN8yCbY.mp4 Edited October 12, 2019 by Eligeion 11 1 Quote Link to comment Share on other sites More sharing options...
Ragboys is back Posted September 11, 2019 Share Posted September 11, 2019 Love stuff like this, you should definetely keep us updated. 1 Quote Link to comment Share on other sites More sharing options...
Runnwith Posted September 11, 2019 Share Posted September 11, 2019 Very cool, I like how you have the heatmap and the usernames that have attacked your accounts. I see a few names I recognize. I wish you the best of luck with your farm. Very slick dashboard. 1 Quote Link to comment Share on other sites More sharing options...
Smurf12 Posted September 11, 2019 Share Posted September 11, 2019 That's awesome! 1 Quote Link to comment Share on other sites More sharing options...
Fratem Posted September 11, 2019 Share Posted September 11, 2019 Very interesting to see! Do you do 'live' updates? -> e.g. new entry in DB -> reload recent actions & update data Or do you only get to see new info when you manually refresh? Quote Link to comment Share on other sites More sharing options...
Mordred Posted September 11, 2019 Share Posted September 11, 2019 actually looks sick af. Nice job dude 1 Quote Link to comment Share on other sites More sharing options...
ByteStack Posted September 11, 2019 Author Share Posted September 11, 2019 1 hour ago, Fratem said: Very interesting to see! Do you do 'live' updates? -> e.g. new entry in DB -> reload recent actions & update data Or do you only get to see new info when you manually refresh? Thank you! Somewhere in between, if an account is logged in I use HTML to refresh the page every 60 seconds. Might use JQuery in the future to make it auto-refresh though Quote Link to comment Share on other sites More sharing options...
tarxan Posted September 11, 2019 Share Posted September 11, 2019 Very nice 1 Quote Link to comment Share on other sites More sharing options...
Fratem Posted September 11, 2019 Share Posted September 11, 2019 1 hour ago, Eligeion said: Thank you! Somewhere in between, if an account is logged in I use HTML to refresh the page every 60 seconds. Might use JQuery in the future to make it auto-refresh though https://aiocollective.com/blog/ajax-auto-refresh-volume-ii/ ^ this might be of interest to you AJAX in combo with PHP & MySQL DB Quote Link to comment Share on other sites More sharing options...
Lost Panda Posted September 11, 2019 Share Posted September 11, 2019 Pretty nice and clean fren 1 Quote Link to comment Share on other sites More sharing options...
ByteStack Posted September 11, 2019 Author Share Posted September 11, 2019 8 hours ago, Fratem said: https://aiocollective.com/blog/ajax-auto-refresh-volume-ii/ ^ this might be of interest to you AJAX in combo with PHP & MySQL DB More simple than expected. I'll likely implement this, or something like this in the future. It would get around the need to refresh when going from 0 bots online since I only auto-refresh when at least one client is running. Cheers 1 Quote Link to comment Share on other sites More sharing options...
ByteStack Posted September 15, 2019 Author Share Posted September 15, 2019 Update 9/14/2019 added. Quote Link to comment Share on other sites More sharing options...
Medusa Posted September 15, 2019 Share Posted September 15, 2019 On 9/11/2019 at 1:03 PM, Eligeion said: Thank you! Somewhere in between, if an account is logged in I use HTML to refresh the page every 60 seconds. Might use JQuery in the future to make it auto-refresh though Yea. Just have jQuery pull from an "API" to get new info after x seconds. 1 Quote Link to comment Share on other sites More sharing options...
Fratem Posted September 15, 2019 Share Posted September 15, 2019 (edited) Try using setTimeout instead of setInterval, in that case a new Ajax call is only executed if the last one was succesfull (e.g. new data found & inserted). -> should bring the memory usage down. Let me know if that atleast helped a little Edited September 15, 2019 by Fratem 1 Quote Link to comment Share on other sites More sharing options...
ByteStack Posted September 17, 2019 Author Share Posted September 17, 2019 Added update for 09/17/2019. On 9/15/2019 at 7:37 AM, Fratem said: Try using setTimeout instead of setInterval, in that case a new Ajax call is only executed if the last one was succesfull (e.g. new data found & inserted). -> should bring the memory usage down. Let me know if that atleast helped a little If my understanding of setTimeout and setInterval are correct then that would be about as effective as the auto refresh that I had happening before. If an account is logged in and actively updating then awesome, but if there's no accounts online and then one comes online then you'll have to refresh the page to get it started again. It's not a huge deal, but I'd like to figure out why the memory leak is happening since everything I've found indicates that it shouldn't be a thing. I have a theory, but I haven't looked into it since I wanted to work on the other things I posted about. I very much appreciate your comments, you've been a great help 1 Quote Link to comment Share on other sites More sharing options...