AFKBots Latest Updates

We're always looking for new ways to bring you an easy way to access the software you enjoy using. Look for updates in the resources page, if you have not signed up yet go ahead and register. It is free to register, but you must be a premium user to post.

Announcement Title

D2R JieGuan Item Log Webserver

D2R JieGuan Item Log Webserver 2022-06-04

Original post and credits go to smby:
Hi I wrote super messy golang code that will read the "pickit_log.txt" file and it will parse all the information in it every 10 seconds and display the information on a webserver. It must be ran from the same directory as the pickit_log.txt file.

the text file currently looks like
Code:
[2022-05-15 02:46:28] Kept: Magefist Light Gauntlets - Area: Catacombs Level 4 | Rule: [name]==lightgauntlets&&[quality]==unique&&[flag]!=ethereal#[enhanceddefense]>=10
[2022-05-15 02:46:29] Kept: Dwarf Star Ring - Area: Catacombs Level 4 | Rule: [type]==ring&&[quality]==unique#[maxhp]==40
[2022-05-15 03:06:34] Kept: Charged Essence of Hatred - Area: Durance of Hate Level 3 | Rule: [name]==chargedessenceofhatred
and the webserver will display the items like this:
webserver1.png

The webserver can be accessed by running the server and going to 127.0.0.1:8080 in a browser OR the local ip address:8080 from a computer on the same network.

Update: Here is an image of me viewing the drop log from my phone on the same network
phone-webserver2.png

The source code is in golang here:

Code:
package main

import (

    "net/http"
    "text/template"
    "os"
    "io/ioutil"
    "strings"
    "time"
    "fmt"

)


type Context struct {
    Title  string
    Items []FullItem
}

type FullItem struct{
    Time string
    Name string
    Area string
}


func main() {
    const htmlpage = `
        <!DOCTYPE html>
        <html>
        <script>
            function autoRefresh() {
                window.location = window.location.href;
            }
            setInterval('autoRefresh()', 10000);
        </script>
        <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.3.1/dist/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">

        <style>
        table, th, td {
          border: 1px solid black;
        }
        table {
        padding-right: 10px;
        }
        th, td {
            padding-top: 2px;
          padding-bottom: 2px;
          padding-left: 10px;
          padding-right: 10px;
        }
        .timestamp {
        text-align: right;
        }
        .tableheader{
        text-align: center;
        }
        </style>
            <body>
                <h3>Itemlist:</h3>
              <table>
                <tr>
                    <th class="tableheader">Time</th>
                    <th class="tableheader">Name</th>
                    <th class="tableheader">Area</th>
                </tr>
                    {{range .Items}}
                     <tr>
                    <th class="timestamp">{{.Time}}</th>
                    <th>{{.Name}}</th>
                    <th>{{.Area}}</th>
                </tr>
                    {{end}}
                </ul>
            </body>
        </html>
    `

    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fileName := "pickit_log.txt"
        Items := []FullItem{}
        fileBytes, err := ioutil.ReadFile(fileName)

        if err != nil {
            fmt.Println(err)
            os.Exit(1)
        }

        lines := strings.Split(string(fileBytes), "\n")
        for i := len(lines)-1; i >= 0; i-- {
            line := lines[i]
            if(len(line)<20) {
                continue
            }
            timestamp := line[1:20]
            parsed, _ := time.Parse("2006-01-02 15:04:05", timestamp)
            restofdata:= line[27:len(line)]
            importadata:= strings.SplitN(restofdata, "|", 2)
            segmenteddata := strings.SplitN(importadata[0], "-", 2)
            itemarea := segmenteddata[1]
            itemname := segmenteddata[0]

            newItem := FullItem{
                Time: parsed.Format("15:04"),   //24 hour format
                //Time: parsed.Format("3:04 PM"),     //12 hour AM/PM format
                Name: itemname[1:len(itemname)],
                Area: itemarea[7:len(itemarea)],
            }
            Items = append(Items, newItem)
        }
      
        w.Header().Add("Content Type", "text/html")
        templates, _ := template.New("doc").Parse(htmlpage)
        context := Context{
            Title:  "Item List",
            Items: Items,
        }

        templates.Lookup("doc").Execute(w, context) 
      
    })
    http.ListenAndServe(":8080", nil)
}
The compiled exe can be downloaded here - the code not malicious but virustotal had 4/67 detection, this is what we refer to as false positive as you can compile this yourself and get the same result.

Once I get stats working when jieguan api is available, I am going to do something like this with the ability to search as well, eventually would like to get it to look like in game also view:

search1.png

search2.png
a2575fed-8ddf-4355-9e04-ec9e3325f81d-image.png

f172b51b-d142-42e8-ac2f-7dc24d922fd6-image.png
Author
admin
Downloads
58
Views
556
First release
Last update
Rating
0.00 star(s) 0 ratings

More resources from admin

AFKBots Crypto Trading Automation with BitBot

If you have not already gotten set up with our crypto trading bot you can do so by getting a free 3 day trial. We have short selling automated as well so you can profit off the crashes that are inevitable in crypto trading along with utilizing leverage margin trades.

AFKBots WoW Automation for all expansions

With the latest LUA Unlocker for WoW TBC Classic and WoW Shadowlands you will find the more advanced wow bots accessible and very easy to use. Accomplish leveling with questing and grinding, along with pvp battlegrounds all handled whether you want a full afk solution or hands on rotations. You can also use a stand alone pixel wow bot: Owl Pro. It can do grinding and rotations for those wanting a simple automation solution for world of warcraft tbc classic.

AFKBots D2R Safest Maphack available & D2R Bots for afk automation

Top