Git Product home page Git Product logo

l0g-101086's Introduction

L0G-101086 Automated log uploads

This repository contains several utilities designed to ease uploading logs created by ArcDPS to both the dps.report and GW2 Raidar websites.

It was originally intended for personal use, but some interested has been shown for publicizing it.

It probably won't work on its out out of the box, so you may need to perform some work to get it functioning.

In general the scripts are written with paths as if these scripts are stored at "%UserProfile%\Documents\Guild Wars 2\addons\arcdps", so most paths are based on this location. You may need to adjust these as necessary.

update-arcdps.ps1

This script is the most likely to function out of the box. It is used to update the ArcDPS dll and associated plugins. Because I happen to use GW2 Launch Buddy somtimes in -nopatchui mode, it stores the dlls in both the top level and \bin64 directory of the Guild Wars 2 installation.

upload-logs.ps1

This script is provided as a means to upload evtc files to both dps.report and gw2raidar every time you click it. It stores the timestamp of last upload so that it doesn't waste time re-uploading files that have already been uploaded.

Because of it's use in connection to format-encounters.ps1, it also uses the simpleArcParse C++ program to parse the evtc files and store data into a special folder. This can be configured as documented in the script.

Currently, the script finds all new evtc logs in the arcdps.cbtlogs folder, scans them with simpleArcParse, uploads them to gw2raidar, and then uploads them to dps.report

Finding files

To find the files, it assumes encounters are stored in arcdps.cbtlogs as defined in the script. It will find only Zipped encounters, so you must check that box in the arcdps settings. It recursively searches, so you can have any of the options for enabling extra path sections enabled or disabled.

simpleArcParse

One of the major problems with this project was correlating dps.report links with the gw2raidar links. Because the gw2raidar links are not generated right away, but instead requested through a separate API, it was challenging to correlate data for these files.

To do so, the simpleArcParse program was created. This program is used to scan uncompressed evtc files and extract data such as player names, success/failure, encounter type, and the encounter start time.

These are stored into the arcdps.uploadextras folder by default (configurable within the upload-logs.ps1 and format-encounters.ps1 scripts) as JSON data.

uploading to gw2raidar

In order to upload to gw2raidar, you will need to get an account and generate an API token. This can be done after logging in by using the online API site

You may need to visit gw2raidar and login first.

This token must be set in both the upload-logs.ps1 and format-encounters.ps1 scripts.

The script will upload all logs to gw2raidar, and by default will not provide tags or set the category. You may modify the script to automatically insert tags and category information as shown in the comments of upload-logs.ps1

uploading to dps.report

The dps.report site does not use a formal account, so currently the dps.report token is just a magic string which may be used in future API additions. You can set this to any random string of sufficient length as far as I understand.

Currently, because it is rather hard to dig up the dps.report links, as compared to gw2raidar, the script defaults to only uploading successful logs to dps.report.

format-encounters.ps1

This script is used to generate a report and post it to a discord webhook. This report uses the discord webhook embeds API, and generates a nice fancy post with links to each dps.report and gw2raidar encounter link. Additionally, it shows the discord names (or usernames in italics, if no discord name is known) for all the accounts which participated in the raids.

The format will combine multiple boss kills into one post if they occur on the same day, and will spread out each different days logs to separate posts.

In order for this to function, you must set the gw2raidar API token up. Additionally, you usually must wait a few minutes after running the upload-logs.ps1 script before gw2raidar will be done processing logs and have them available with permalinks.

This script is heavily dependent on the output of data created by upload-logs.ps1, specfically the mapping data created between server time and the local evtc file name.

simpleArcParse

This program is a very simple bare bones parser based off of the data on arcdps

It does minimal work to parse the events and find player names, the combat start time, and the success/failure status of the encounter.

Rather than storing this data in a real database, it is stored in a series of subfolders as described in the comments of upload-logs.ps1

It is not a complete parser and is intended only to run as efficiently as possible to generate the required minimal output.

configuration

These scripts are configured using a simple JSON based file format in a file called "l0g-101086-config.json". The relevant variables should be well documented in each script file. The "l0g-101086-config.sample.json" is provided as a basic outline of what needs to be included. You must insert a gw2raidar token, and a webhook URL, and you probably want to update several of the paths.

The scripts understand how to parse %UserProfile% in paths, but currently no other folder shorthands are supported.

Questions?

I'll probably respond to GitHub issues raised here, or you can find me on discord at @serenamyr#8942, reddit at /u/platinummyr or in GuildWars 2 at "Serena Sedai.3064"

l0g-101086's People

Contributors

jacob-keller avatar

Watchers

Dirk Sarodnick avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.