Giter VIP home page Giter VIP logo

headshotbox's Introduction

Headshot Box

Search engine and stats for your CS:GO replays. Visit https://headshotbox.github.io/ for a visual description of the features.

Development setup newui

cd src/newui
nvm use
npm i
npm run dev

Build newui

cd src/newui
nvm use
npm run build
cp -R dist/spa/* ../../resources/public/

Development Setup

Check out the wiki for more info.

csdemoparser

Building

Install rustup and run:

cargo build --release -p csdemoparser

The output binaries are in target/release.

Profile-guided Optimization

Using PGO has a significant impact on the speed of csdemoparser, up to a 40% speedup.

rustup component add llvm-tools-preview
cargo install cargo-pgo
cargo pgo run -- -p csdemoparser <replay.dem>
cargo pgo optimize

headshotbox's People

Contributors

abenea avatar ajohnsen avatar bugdone avatar clugg avatar crosscrs avatar cubox avatar jonasfs avatar lukealford avatar tabakhase avatar tam1m avatar yoyosan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

headshotbox's Issues

Problem running the Linux build in docker, on Ubuntu

Hello.

I've built a docker container for this application, but when running it I have this problem:

root@a1404479fa95:~/hsbox# ./headshotbox.sh 
Exception in thread "main" java.lang.UnsupportedClassVersionError: Cstrike15Gcmessages$CDataGCCStrike15_v2_MatchInfo : Unsupported major.minor version 52.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:191)
    at hsbox.demo__init.__init0(Unknown Source)
    at hsbox.demo__init.<clinit>(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:274)
    at clojure.lang.RT.loadClassForName(RT.java:2093)
    at clojure.lang.RT.load(RT.java:430)
    at clojure.lang.RT.load(RT.java:411)
    at clojure.core$load$fn__5066.invoke(core.clj:5641)
    at clojure.core$load.doInvoke(core.clj:5640)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5446)
    at clojure.core$load_lib$fn__5015.invoke(core.clj:5486)
    at clojure.core$load_lib.doInvoke(core.clj:5485)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invoke(core.clj:626)
    at clojure.core$load_libs.doInvoke(core.clj:5524)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:626)
    at clojure.core$require.doInvoke(core.clj:5607)
    at clojure.lang.RestFn.invoke(RestFn.java:551)
    at hsbox.indexer$loading__4958__auto__.invoke(indexer.clj:1)
    at hsbox.indexer__init.load(Unknown Source)
    at hsbox.indexer__init.<clinit>(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:274)
    at clojure.lang.RT.loadClassForName(RT.java:2093)
    at clojure.lang.RT.load(RT.java:430)
    at clojure.lang.RT.load(RT.java:411)
    at clojure.core$load$fn__5066.invoke(core.clj:5641)
    at clojure.core$load.doInvoke(core.clj:5640)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5446)
    at clojure.core$load_lib$fn__5015.invoke(core.clj:5486)
    at clojure.core$load_lib.doInvoke(core.clj:5485)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invoke(core.clj:626)
    at clojure.core$load_libs.doInvoke(core.clj:5524)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:626)
    at clojure.core$require.doInvoke(core.clj:5607)
    at clojure.lang.RestFn.invoke(RestFn.java:1096)
    at hsbox.handler$loading__4958__auto__.invoke(handler.clj:1)
    at hsbox.handler__init.load(Unknown Source)
    at hsbox.handler__init.<clinit>(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:274)
    at clojure.lang.RT.loadClassForName(RT.java:2093)
    at clojure.lang.RT.load(RT.java:430)
    at clojure.lang.RT.load(RT.java:411)
    at clojure.core$load$fn__5066.invoke(core.clj:5641)
    at clojure.core$load.doInvoke(core.clj:5640)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5446)
    at clojure.core$load_lib$fn__5015.invoke(core.clj:5486)
    at clojure.core$load_lib.doInvoke(core.clj:5485)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invoke(core.clj:626)
    at clojure.core$load_libs.doInvoke(core.clj:5524)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:626)
    at clojure.core$require.doInvoke(core.clj:5607)
    at clojure.lang.RestFn.invoke(RestFn.java:551)
    at hsbox.core$loading__4958__auto__.invoke(core.clj:1)
    at hsbox.core__init.load(Unknown Source)
    at hsbox.core__init.<clinit>(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:274)
    at clojure.lang.RT.loadClassForName(RT.java:2093)
    at clojure.lang.RT.load(RT.java:430)
    at clojure.lang.RT.load(RT.java:411)
    at clojure.core$load$fn__5066.invoke(core.clj:5641)
    at clojure.core$load.doInvoke(core.clj:5640)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.lang.Var.invoke(Var.java:379)
    at hsbox.core.<clinit>(Unknown Source)

Java version:

java version "1.7.0_79"
OpenJDK Runtime Environment (IcedTea 2.5.5) (7u79-2.5.5-0ubuntu0.14.04.2)
OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)

demos and highlights not playing when path has blanks

apparantly blanks are not escaped properly

"Executing deferred playdemo: C:\Program"

steam://rungame/730//+playdemo "C:\Program Files (x86)\Steam\SteamApps\common\Counter-Strike Global Offensive\csgo\replays\match730_003073078561616167050_1887076664_186.dem"

edit apparantly a chrome issue

Demo succesfully added but no data

I had a few demo's in my csgo folder. I ran the batchfile and everything went well.
I tried to start with a clean setup so I deleted the .config map and started all over again.

I played a match and downloaded the demo ingame.
Log said no errors but I don't have any data.
Website is empty (Chrome & Firefox)...

Log file:
2015-mei-08 20:34:37 +0200 MYPC INFO [hsbox.core] - HeadshotBox 0.3.0
2015-mei-08 20:34:37 +0200 MYPC INFO [hsbox.version] - Checking latest version on https://raw.githubusercontent.com/bugdone/headshotbox/master/latest-windows-version
2015-mei-08 20:34:37 +0200 MYPC DEBUG [hsbox.indexer] - Indexer started
2015-mei-08 20:34:37 +0200 MYPC DEBUG [hsbox.indexer] - Adding path C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive\csgo\replays\match730_003073283611944812792_0383903603_135.dem
2015-mei-08 20:34:37 +0200 MYPC INFO [hsbox.demo] - Processing C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive\csgo\replays\match730_003073283611944812792_0383903603_135.dem
2015-mei-08 20:34:37 +0200 MYPC DEBUG [hsbox.version] - Latest version 0.3.0
2015-mei-08 20:34:40 +0200 MYPC INFO [hsbox.demo] - Processing #<File C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive\csgo\replays\match730_003073283611944812792_0383903603_135.dem.info>
2015-mei-08 20:34:40 +0200 MYPC DEBUG [hsbox.db] - Adding demo data for match730_003073283611944812792_0383903603_135.dem
2015-mei-08 20:35:31 +0200 MYPC INFO [hsbox.core] - HeadshotBox 0.3.0
2015-mei-08 20:35:31 +0200 MYPC INFO [hsbox.version] - Checking latest version on https://raw.githubusercontent.com/bugdone/headshotbox/master/latest-windows-version
2015-mei-08 20:35:31 +0200 MYPC DEBUG [hsbox.indexer] - Indexer started
2015-mei-08 20:35:32 +0200 MYPC DEBUG [hsbox.version] - Latest version 0.3.0
2015-mei-08 20:40:40 +0200 MYPC INFO [hsbox.core] - HeadshotBox 0.3.0
2015-mei-08 20:40:40 +0200 MYPC INFO [hsbox.version] - Checking latest version on https://raw.githubusercontent.com/bugdone/headshotbox/master/latest-windows-version
2015-mei-08 20:40:41 +0200 MYPC DEBUG [hsbox.version] - Latest version 0.3.0
2015-mei-08 20:40:41 +0200 MYPC DEBUG [hsbox.indexer] - Indexer started

UnsatisfiedLinkError Linux

Hello,

I get this error when i start ./headshotbox.sh

~/headshotbox-0.5.0-linux] ./headshotbox.sh
2015-05-15 01:05:02.864:INFO:oejs.Server:jetty-7.x.y-SNAPSHOT
2015-05-15 01:05:02.888:INFO:oejs.AbstractConnector:Started [email protected]:4000
2015-May-15 01:05:02 +0200 ts3 INFO [hsbox.core] - HeadshotBox  0.5.0
2015-May-15 01:05:02 +0200 ts3 INFO [hsbox.version] - Checking latest version on https://raw.githubusercontent.com/bugdone/headshotbox/master/latest-linux-version
2015-May-15 01:05:02 +0200 ts3 ERROR [hsbox.core] -
                        hsbox.core.main
                                    ...
                       hsbox.core/-main               core.clj:  26
             hsbox.db/init-db-if-absent                 db.clj:  43
                       hsbox.db/init-db                 db.clj:  33
                 hsbox.db/exec-sql-file                 db.clj:  30
                     clojure.core/apply               core.clj: 628
                                    ...
       clojure.java.jdbc/db-do-commands               jdbc.clj: 680
       clojure.java.jdbc/get-connection               jdbc.clj: 255
   java.sql.DriverManager.getConnection     DriverManager.java: 187
   java.sql.DriverManager.getConnection     DriverManager.java: 571
                org.sqlite.JDBC.connect              JDBC.java:  88
       org.sqlite.JDBC.createConnection              JDBC.java: 114
     org.sqlite.SQLiteConnection.<init>  SQLiteConnection.java:  45
org.sqlite.jdbc4.JDBC4Connection.<init>   JDBC4Connection.java:  23
org.sqlite.jdbc3.JDBC3Connection.<init>   JDBC3Connection.java:  21
  org.sqlite.core.CoreConnection.<init>    CoreConnection.java:  66
    org.sqlite.core.CoreConnection.open    CoreConnection.java: 145
                org.sqlite.core.DB.open                DB.java: 161
         org.sqlite.core.NativeDB._open          NativeDB.java
java.lang.UnsatisfiedLinkError: org.sqlite.core.NativeDB._open(Ljava/lang/String;I)V

2015-May-15 01:05:03 +0200 ts3 DEBUG [hsbox.version] - Latest version 0.5.0

and when opening the settings site

2015-05-15 01:06:25.225:WARN:oejs.AbstractHttpConnection:/api/config
java.lang.UnsatisfiedLinkError: org.sqlite.core.NativeDB._open(Ljava/lang/String;I)V
        at org.sqlite.core.NativeDB._open(Native Method)
        at org.sqlite.core.DB.open(DB.java:161)
        at org.sqlite.core.CoreConnection.open(CoreConnection.java:145)
        at org.sqlite.core.CoreConnection.<init>(CoreConnection.java:66)
        at org.sqlite.jdbc3.JDBC3Connection.<init>(JDBC3Connection.java:21)
        at org.sqlite.jdbc4.JDBC4Connection.<init>(JDBC4Connection.java:23)
        at org.sqlite.SQLiteConnection.<init>(SQLiteConnection.java:45)
        at org.sqlite.JDBC.createConnection(JDBC.java:114)
        at org.sqlite.JDBC.connect(JDBC.java:88)
        at java.sql.DriverManager.getConnection(DriverManager.java:571)
        at java.sql.DriverManager.getConnection(DriverManager.java:187)
        at clojure.java.jdbc$get_connection.invoke(jdbc.clj:255)
        at clojure.java.jdbc$db_query_with_resultset.invoke(jdbc.clj:798)
        at clojure.java.jdbc$query.doInvoke(jdbc.clj:832)
        at clojure.lang.RestFn.invoke(RestFn.java:425)
        at hsbox.db$get_config.invoke(db.clj:46)
        at hsbox.handler$fn__8506.invoke(handler.clj:51)
        at compojure.core$make_route$fn__1390.invoke(core.clj:113)
        at compojure.core$wrap_route_middleware$fn__1386.invoke(core.clj:103)
        at compojure.core$if_route$fn__1369.invoke(core.clj:41)
        at compojure.core$if_method$fn__1361.invoke(core.clj:27)
        at compojure.core$routing$fn__1396.invoke(core.clj:127)
        at clojure.core$some.invoke(core.clj:2515)
        at compojure.core$routing.doInvoke(core.clj:127)
        at clojure.lang.RestFn.applyTo(RestFn.java:139)
        at clojure.core$apply.invoke(core.clj:626)
        at compojure.core$routes$fn__1400.invoke(core.clj:132)
        at ring.middleware.json$wrap_json_response$fn__8472.invoke(json.clj:65)
        at ring.middleware.json$wrap_json_body$fn__8455.invoke(json.clj:35)
        at ring.middleware.cors$wrap_cors$fn__8439.invoke(cors.clj:150)
        at compojure.core$routing$fn__1396.invoke(core.clj:127)
        at clojure.core$some.invoke(core.clj:2515)
        at compojure.core$routing.doInvoke(core.clj:127)
        at clojure.lang.RestFn.invoke(RestFn.java:423)
        at hsbox.handler$fn__8518.invoke(handler.clj:71)
        at compojure.core$if_context$fn__1418.invoke(core.clj:198)
        at compojure.core$routing$fn__1396.invoke(core.clj:127)
        at clojure.core$some.invoke(core.clj:2515)
        at compojure.core$routing.doInvoke(core.clj:127)
        at clojure.lang.RestFn.applyTo(RestFn.java:139)
        at clojure.core$apply.invoke(core.clj:626)
        at compojure.core$routes$fn__1400.invoke(core.clj:132)
        at hsbox.handler$wrap_exception$fn__8520.invoke(handler.clj:77)
        at ring.middleware.keyword_params$wrap_keyword_params$fn__1519.invoke(keyword_params.clj:35)
        at ring.middleware.nested_params$wrap_nested_params$fn__1562.invoke(nested_params.clj:84)
        at ring.middleware.params$wrap_params$fn__1492.invoke(params.clj:64)
        at ring.middleware.multipart_params$wrap_multipart_params$fn__1598.invoke(multipart_params.clj:118)
        at ring.middleware.flash$wrap_flash$fn__2272.invoke(flash.clj:35)
        at ring.middleware.session$wrap_session$fn__2259.invoke(session.clj:98)
        at clojure.lang.Var.invoke(Var.java:379)
        at ring.adapter.jetty$proxy_handler$fn__8598.invoke(jetty.clj:20)
        at ring.adapter.jetty.proxy$org.eclipse.jetty.server.handler.AbstractHandler$ff19274a.handle(Unknown Source)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
        at org.eclipse.jetty.server.Server.handle(Server.java:369)
        at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:486)
        at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:933)
        at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:995)
        at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
        at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
        at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
        at java.lang.Thread.run(Thread.java:745)

Debian 32bit 7.7 and installed glibc 2.19

doesnt scan new replays

the program worked fine until one replay, then it stopped analyzing new demos. for older demos it still works fine.

this is what shows up when i start the program
capture

No tick_end for round 2 in demo nil

I'm getting the repeating DEBUG log that says No tick_end for round 2 in demo nil and this is cause HeadshotBox to only show the first round data. Is it a problem with a corrupt demo download? I use Packrat to download my demos.

Steam Profile link

Hello, thanks for this tool. It's Awesome!
Not sure where to post this, cause it's a suggestion.

Is it possible to have a button or something on a person profile to go straight to his steam profile?
It shouldn't be hard to do.

Thanks again :)

doesnt work :)

Once i open the .bat the cmd runs for a bit, then demo demoinfogo.exe has stopped working ( copied it further down). The cmd keeps running but when i go to http://127.0.0.1:4000/ i get up the headshotbox, but no info. I have entered the demo directory and the steam API pls help

[Window Title]
demoinfogo.exe

[Main Instruction]
demoinfogo.exe has stopped working

[Content]
A problem caused the program to stop working correctly. Windows will close the program and notify you if a solution is available.

[Close program]

Demo is not added, when player had left before match started

I have a demo file, where we had to play with a bot, because teammate had the vac-authentification error in warmup and could not reconnect on time. Now the demo cannot be added, because the player count is less 10.

PS: I can understand that those kind of bugs may not be handled prioritized. ;)

Can't load anything

2015-May-09 01:52:13 +0800 Christian DEBUG [hsbox.indexer] - Indexer started
2015-May-09 01:52:13 +0800 Christian DEBUG [hsbox.indexer] - Adding path F:\Stea
mLibrary\SteamApps\common\Counter-Strike Global Offensive\csgo\replays\match730_
003043633831350370315_0681149064_900.dem
2015-May-09 01:52:14 +0800 Christian INFO [hsbox.demo] - Processing F:\SteamLibr
ary\SteamApps\common\Counter-Strike Global Offensive\csgo\replays\match730_00304
3633831350370315_0681149064_900.dem
Exception in thread "main" java.lang.AssertionError: Assert failed: (zero? (:exi
t proc))
at hsbox.demo$parse_demo.invoke(demo.clj:37)
at hsbox.demo$get_demo_info.invoke(demo.clj:85)
at hsbox.indexer$add_demo.invoke(indexer.clj:48)
at hsbox.indexer$run.invoke(indexer.clj:86)
at hsbox.core$_main.doInvoke(core.clj:34)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at hsbox.core.main(Unknown Source)
2015-05-09 01:52:14.818:WARN:oejs.AbstractHttpConnection:/api/steamids/info?stea
mids=
java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Long.parseLong(Unknown Source)
at java.lang.Long.parseLong(Unknown Source)
at hsbox.steamapi$get_steamids_info$fn__7458.invoke(steamapi.clj:34)
at clojure.core$map$fn__4245.invoke(core.clj:2557)
at clojure.lang.LazySeq.sval(LazySeq.java:40)
at clojure.lang.LazySeq.seq(LazySeq.java:49)
at clojure.lang.LazySeq.first(LazySeq.java:71)
at clojure.lang.RT.first(RT.java:577)
at clojure.core$first.invoke(core.clj:55)
at clojure.string$join.invoke(string.clj:185)
at hsbox.db$get_steamid_info.invoke(db.clj:119)
at hsbox.steamapi$get_steamids_info.invoke(steamapi.clj:37)
at hsbox.handler$fn__8433.invoke(handler.clj:39)
at compojure.core$make_route$fn__1390.invoke(core.clj:113)
at compojure.core$wrap_route_middleware$fn__1386.invoke(core.clj:103)
at compojure.core$if_route$fn__1369.invoke(core.clj:41)
at compojure.core$if_method$fn__1361.invoke(core.clj:27)
at compojure.core$routing$fn__1396.invoke(core.clj:127)
at clojure.core$some.invoke(core.clj:2515)
at compojure.core$routing.doInvoke(core.clj:127)
at clojure.lang.RestFn.applyTo(RestFn.java:139)
at clojure.core$apply.invoke(core.clj:626)
at compojure.core$routes$fn__1400.invoke(core.clj:132)
at ring.middleware.json$wrap_json_response$fn__8410.invoke(json.clj:65)
at ring.middleware.json$wrap_json_body$fn__8393.invoke(json.clj:35)
at ring.middleware.cors$wrap_cors$fn__8377.invoke(cors.clj:150)
at compojure.core$routing$fn__1396.invoke(core.clj:127)
at clojure.core$some.invoke(core.clj:2515)
at compojure.core$routing.doInvoke(core.clj:127)
at clojure.lang.RestFn.invoke(RestFn.java:423)
at hsbox.handler$fn__8456.invoke(handler.clj:66)
at compojure.core$if_context$fn__1418.invoke(core.clj:198)
at compojure.core$routing$fn__1396.invoke(core.clj:127)
at clojure.core$some.invoke(core.clj:2515)
at compojure.core$routing.doInvoke(core.clj:127)
at clojure.lang.RestFn.applyTo(RestFn.java:139)
at clojure.core$apply.invoke(core.clj:626)
at compojure.core$routes$fn__1400.invoke(core.clj:132)
at ring.middleware.keyword_params$wrap_keyword_params$fn__1519.invoke(ke
yword_params.clj:35)
at ring.middleware.nested_params$wrap_nested_params$fn__1562.invoke(nest
ed_params.clj:84)
at ring.middleware.params$wrap_params$fn__1492.invoke(params.clj:64)
at ring.middleware.multipart_params$wrap_multipart_params$fn__1598.invok
e(multipart_params.clj:118)
at ring.middleware.flash$wrap_flash$fn__2272.invoke(flash.clj:35)
at ring.middleware.session$wrap_session$fn__2259.invoke(session.clj:98)
at clojure.lang.Var.invoke(Var.java:379)
at ring.adapter.jetty$proxy_handler$fn__8518.invoke(jetty.clj:20)
at ring.adapter.jetty.proxy$org.eclipse.jetty.server.handler.AbstractHan
dler$ff19274a.handle(Unknown Source)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper
.java:116)
at org.eclipse.jetty.server.Server.handle(Server.java:369)
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(Abstrac
tHttpConnection.java:486)
at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(Abstra
ctHttpConnection.java:933)
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.header
Complete(AbstractHttpConnection.java:995)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)

    at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnecti

on.java:82)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEn
dPoint.java:668)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEnd
Point.java:52)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPoo
l.java:608)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool
.java:543)
at java.lang.Thread.run(Unknown Source)

Make it possible to search by player name/Steam ID

For instance, if I see a VAC'd player in my recently played with people on Steam, I'd like to be able to search for his name or steam ID to find the matching demo(s).

I'd make a pull request but I'd need to learn functional programming and Clojure first.

Not showing players or demos

Hey, downloaded the tool on my notebook, where cs isn't installed, have some demos saved though.
Opened the .bat, didn't find the demos ofc. Went to http://127.0.0.1:4000 changed the directory to my demo archive (at least I think so), wrote down my steam web api key, updated (settings did really save). Opened the .bat again, still no players etc. on the site :(

2015-Mai-08 11:51:26 +0200 XMAsTablet INFO [hsbox.core] - HeadshotBox 0.3.0
2015-Mai-08 11:51:27 +0200 XMAsTablet INFO [hsbox.version] - Checking latest version on https://raw.githubusercontent.com/bugdone/headshotbox/master/latest-windows-version
2015-Mai-08 11:51:27 +0200 XMAsTablet ERROR [hsbox.core] -
�[37mjava.lang.Thread.run�[m �[32m �[m
�[37msun.nio.fs.WindowsWatchService$Poller.run�[m �[32m �[m
�[37msun.nio.fs.AbstractPoller.processRequests�[m �[32m �[m
�[37msun.nio.fs.WindowsWatchService$Poller.implRegister�[m �[32m �[m
�[37msun.nio.fs.WindowsException.asIOException�[m �[32m �[m
�[37msun.nio.fs.WindowsException.translateToIOException�[m �[32m �[m
�[1;31mjava.nio.file.NoSuchFileException�[m: �[3mC:\Program Files (x86)\Steam\SteamApps\common\Counter-Strike Global Offensive\csgo\replays�[m
�[1mfile�[m: "C:\Program Files (x86)\Steam\SteamApps\common\Counter-Strike Global Offensive\csgo\replays"

2015-Mai-08 11:51:27 +0200 XMAsTablet DEBUG [hsbox.version] - Latest version 0.3.0
2015-Mai-08 11:53:25 +0200 XMAsTablet INFO [hsbox.core] - HeadshotBox 0.3.0
2015-Mai-08 11:53:25 +0200 XMAsTablet INFO [hsbox.version] - Checking latest version on https://raw.githubusercontent.com/bugdone/headshotbox/master/latest-windows-version
2015-Mai-08 11:53:25 +0200 XMAsTablet ERROR [hsbox.core] -
�[37mjava.lang.Thread.run�[m �[32m �[m
�[37msun.nio.fs.WindowsWatchService$Poller.run�[m �[32m �[m
�[37msun.nio.fs.AbstractPoller.processRequests�[m �[32m �[m
�[37msun.nio.fs.WindowsWatchService$Poller.implRegister�[m �[32m �[m
�[37msun.nio.fs.WindowsException.asIOException�[m �[32m �[m
�[37msun.nio.fs.WindowsException.translateToIOException�[m �[32m �[m
�[1;31mjava.nio.file.NoSuchFileException�[m: �[3mC:\Program Files (x86)\Steam\SteamApps\common\Counter-Strike Global Offensive\csgo\replays�[m
�[1mfile�[m: "C:\Program Files (x86)\Steam\SteamApps\common\Counter-Strike Global Offensive\csgo\replays"

2015-Mai-08 11:53:26 +0200 XMAsTablet DEBUG [hsbox.version] - Latest version 0.3.0
2015-Mai-08 11:53:41 +0200 XMAsTablet ERROR [hsbox.core] -
�[37mhsbox.core.main�[m �[32m �[m
�[37m...�[m �[32m �[m
�[33mhsbox.core/�[1;33m-main�[m �[32m core.clj: 21�[m
�[33mring.adapter.jetty/�[1;33mrun-jetty�[m �[32m jetty.clj: 103�[m
�[37morg.eclipse.jetty.util.component.AbstractLifeCycle.start�[m �[32m AbstractLifeCycle.java: 64�[m
�[37morg.eclipse.jetty.server.Server.doStart�[m �[32m Server.java: 292�[m
�[37morg.eclipse.jetty.util.component.AbstractLifeCycle.start�[m �[32m AbstractLifeCycle.java: 64�[m
�[37morg.eclipse.jetty.server.nio.SelectChannelConnector.doStart�[m �[32mSelectChannelConnector.java: 265�[m
�[37morg.eclipse.jetty.server.AbstractConnector.doStart�[m �[32m AbstractConnector.java: 316�[m
�[37morg.eclipse.jetty.server.nio.SelectChannelConnector.open�[m �[32mSelectChannelConnector.java: 187�[m
�[37msun.nio.ch.ServerSocketAdaptor.bind�[m �[32m �[m
�[37msun.nio.ch.ServerSocketChannelImpl.bind�[m �[32m �[m
�[37msun.nio.ch.Net.bind�[m �[32m �[m
�[37msun.nio.ch.Net.bind�[m �[32m �[m
�[37msun.nio.ch.Net.bind0�[m �[32m �[m
�[1;31mjava.net.BindException�[m: �[3mAddress already in use: bind�[m

2015-Mai-08 11:54:59 +0200 XMAsTablet ERROR [hsbox.core] -
�[37mhsbox.core.main�[m �[32m �[m
�[37m...�[m �[32m �[m
�[33mhsbox.core/�[1;33m-main�[m �[32m core.clj: 21�[m
�[33mring.adapter.jetty/�[1;33mrun-jetty�[m �[32m jetty.clj: 103�[m
�[37morg.eclipse.jetty.util.component.AbstractLifeCycle.start�[m �[32m AbstractLifeCycle.java: 64�[m
�[37morg.eclipse.jetty.server.Server.doStart�[m �[32m Server.java: 292�[m
�[37morg.eclipse.jetty.util.component.AbstractLifeCycle.start�[m �[32m AbstractLifeCycle.java: 64�[m
�[37morg.eclipse.jetty.server.nio.SelectChannelConnector.doStart�[m �[32mSelectChannelConnector.java: 265�[m
�[37morg.eclipse.jetty.server.AbstractConnector.doStart�[m �[32m AbstractConnector.java: 316�[m
�[37morg.eclipse.jetty.server.nio.SelectChannelConnector.open�[m �[32mSelectChannelConnector.java: 187�[m
�[37msun.nio.ch.ServerSocketAdaptor.bind�[m �[32m �[m
�[37msun.nio.ch.ServerSocketChannelImpl.bind�[m �[32m �[m
�[37msun.nio.ch.Net.bind�[m �[32m �[m
�[37msun.nio.ch.Net.bind�[m �[32m �[m
�[37msun.nio.ch.Net.bind0�[m �[32m �[m
�[1;31mjava.net.BindException�[m: �[3mAddress already in use: bind�[m

2015-Mai-08 11:57:17 +0200 XMAsTablet ERROR [hsbox.core] -
�[37mhsbox.core.main�[m �[32m �[m
�[37m...�[m �[32m �[m
�[33mhsbox.core/�[1;33m-main�[m �[32m core.clj: 21�[m
�[33mring.adapter.jetty/�[1;33mrun-jetty�[m �[32m jetty.clj: 103�[m
�[37morg.eclipse.jetty.util.component.AbstractLifeCycle.start�[m �[32m AbstractLifeCycle.java: 64�[m
�[37morg.eclipse.jetty.server.Server.doStart�[m �[32m Server.java: 292�[m
�[37morg.eclipse.jetty.util.component.AbstractLifeCycle.start�[m �[32m AbstractLifeCycle.java: 64�[m
�[37morg.eclipse.jetty.server.nio.SelectChannelConnector.doStart�[m �[32mSelectChannelConnector.java: 265�[m
�[37morg.eclipse.jetty.server.AbstractConnector.doStart�[m �[32m AbstractConnector.java: 316�[m
�[37morg.eclipse.jetty.server.nio.SelectChannelConnector.open�[m �[32mSelectChannelConnector.java: 187�[m
�[37msun.nio.ch.ServerSocketAdaptor.bind�[m �[32m �[m
�[37msun.nio.ch.ServerSocketChannelImpl.bind�[m �[32m �[m
�[37msun.nio.ch.Net.bind�[m �[32m �[m
�[37msun.nio.ch.Net.bind�[m �[32m �[m
�[37msun.nio.ch.Net.bind0�[m �[32m �[m
�[1;31mjava.net.BindException�[m: �[3mAddress already in use: bind�[m

2015-Mai-08 12:06:46 +0200 XMAsTablet ERROR [hsbox.core] -
�[37mhsbox.core.main�[m �[32m �[m
�[37m...�[m �[32m �[m
�[33mhsbox.core/�[1;33m-main�[m �[32m core.clj: 21�[m
�[33mring.adapter.jetty/�[1;33mrun-jetty�[m �[32m jetty.clj: 103�[m
�[37morg.eclipse.jetty.util.component.AbstractLifeCycle.start�[m �[32m AbstractLifeCycle.java: 64�[m
�[37morg.eclipse.jetty.server.Server.doStart�[m �[32m Server.java: 292�[m
�[37morg.eclipse.jetty.util.component.AbstractLifeCycle.start�[m �[32m AbstractLifeCycle.java: 64�[m
�[37morg.eclipse.jetty.server.nio.SelectChannelConnector.doStart�[m �[32mSelectChannelConnector.java: 265�[m
�[37morg.eclipse.jetty.server.AbstractConnector.doStart�[m �[32m AbstractConnector.java: 316�[m
�[37morg.eclipse.jetty.server.nio.SelectChannelConnector.open�[m �[32mSelectChannelConnector.java: 187�[m
�[37msun.nio.ch.ServerSocketAdaptor.bind�[m �[32m �[m
�[37msun.nio.ch.ServerSocketChannelImpl.bind�[m �[32m �[m
�[37msun.nio.ch.Net.bind�[m �[32m �[m
�[37msun.nio.ch.Net.bind�[m �[32m �[m
�[37msun.nio.ch.Net.bind0�[m �[32m �[m
�[1;31mjava.net.BindException�[m: �[3mAddress already in use: bind�[m

2015-Mai-08 12:10:28 +0200 XMAsTablet ERROR [hsbox.core] -
�[37mhsbox.core.main�[m �[32m �[m
�[37m...�[m �[32m �[m
�[33mhsbox.core/�[1;33m-main�[m �[32m core.clj: 21�[m
�[33mring.adapter.jetty/�[1;33mrun-jetty�[m �[32m jetty.clj: 103�[m
�[37morg.eclipse.jetty.util.component.AbstractLifeCycle.start�[m �[32m AbstractLifeCycle.java: 64�[m
�[37morg.eclipse.jetty.server.Server.doStart�[m �[32m Server.java: 292�[m
�[37morg.eclipse.jetty.util.component.AbstractLifeCycle.start�[m �[32m AbstractLifeCycle.java: 64�[m
�[37morg.eclipse.jetty.server.nio.SelectChannelConnector.doStart�[m �[32mSelectChannelConnector.java: 265�[m
�[37morg.eclipse.jetty.server.AbstractConnector.doStart�[m �[32m AbstractConnector.java: 316�[m
�[37morg.eclipse.jetty.server.nio.SelectChannelConnector.open�[m �[32mSelectChannelConnector.java: 187�[m
�[37msun.nio.ch.ServerSocketAdaptor.bind�[m �[32m �[m
�[37msun.nio.ch.ServerSocketChannelImpl.bind�[m �[32m �[m
�[37msun.nio.ch.Net.bind�[m �[32m �[m
�[37msun.nio.ch.Net.bind�[m �[32m �[m
�[37msun.nio.ch.Net.bind0�[m �[32m �[m
�[1;31mjava.net.BindException�[m: �[3mAddress already in use: bind�[m

2015-Mai-08 12:14:33 +0200 XMAsTablet ERROR [hsbox.core] -
�[37mhsbox.core.main�[m �[32m �[m
�[37m...�[m �[32m �[m
�[33mhsbox.core/�[1;33m-main�[m �[32m core.clj: 21�[m
�[33mring.adapter.jetty/�[1;33mrun-jetty�[m �[32m jetty.clj: 103�[m
�[37morg.eclipse.jetty.util.component.AbstractLifeCycle.start�[m �[32m AbstractLifeCycle.java: 64�[m
�[37morg.eclipse.jetty.server.Server.doStart�[m �[32m Server.java: 292�[m
�[37morg.eclipse.jetty.util.component.AbstractLifeCycle.start�[m �[32m AbstractLifeCycle.java: 64�[m
�[37morg.eclipse.jetty.server.nio.SelectChannelConnector.doStart�[m �[32mSelectChannelConnector.java: 265�[m
�[37morg.eclipse.jetty.server.AbstractConnector.doStart�[m �[32m AbstractConnector.java: 316�[m
�[37morg.eclipse.jetty.server.nio.SelectChannelConnector.open�[m �[32mSelectChannelConnector.java: 187�[m
�[37msun.nio.ch.ServerSocketAdaptor.bind�[m �[32m �[m
�[37msun.nio.ch.ServerSocketChannelImpl.bind�[m �[32m �[m
�[37msun.nio.ch.Net.bind�[m �[32m �[m
�[37msun.nio.ch.Net.bind�[m �[32m �[m
�[37msun.nio.ch.Net.bind0�[m �[32m �[m
�[1;31mjava.net.BindException�[m: �[3mAddress already in use: bind�[m

2015-Mai-08 13:14:15 +0200 XMAsTablet ERROR [hsbox.core] -
�[37mhsbox.core.main�[m �[32m �[m
�[37m...�[m �[32m �[m
�[33mhsbox.core/�[1;33m-main�[m �[32m core.clj: 21�[m
�[33mring.adapter.jetty/�[1;33mrun-jetty�[m �[32m jetty.clj: 103�[m
�[37morg.eclipse.jetty.util.component.AbstractLifeCycle.start�[m �[32m AbstractLifeCycle.java: 64�[m
�[37morg.eclipse.jetty.server.Server.doStart�[m �[32m Server.java: 292�[m
�[37morg.eclipse.jetty.util.component.AbstractLifeCycle.start�[m �[32m AbstractLifeCycle.java: 64�[m
�[37morg.eclipse.jetty.server.nio.SelectChannelConnector.doStart�[m �[32mSelectChannelConnector.java: 265�[m
�[37morg.eclipse.jetty.server.AbstractConnector.doStart�[m �[32m AbstractConnector.java: 316�[m
�[37morg.eclipse.jetty.server.nio.SelectChannelConnector.open�[m �[32mSelectChannelConnector.java: 187�[m
�[37msun.nio.ch.ServerSocketAdaptor.bind�[m �[32m �[m
�[37msun.nio.ch.ServerSocketChannelImpl.bind�[m �[32m �[m
�[37msun.nio.ch.Net.bind�[m �[32m �[m
�[37msun.nio.ch.Net.bind�[m �[32m �[m
�[37msun.nio.ch.Net.bind0�[m �[32m �[m
�[1;31mjava.net.BindException�[m: �[3mAddress already in use: bind�[m

2015-Mai-08 13:16:30 +0200 XMAsTablet ERROR [hsbox.core] -
�[37mhsbox.core.main�[m �[32m �[m
�[37m...�[m �[32m �[m
�[33mhsbox.core/�[1;33m-main�[m �[32m core.clj: 21�[m
�[33mring.adapter.jetty/�[1;33mrun-jetty�[m �[32m jetty.clj: 103�[m
�[37morg.eclipse.jetty.util.component.AbstractLifeCycle.start�[m �[32m AbstractLifeCycle.java: 64�[m
�[37morg.eclipse.jetty.server.Server.doStart�[m �[32m Server.java: 292�[m
�[37morg.eclipse.jetty.util.component.AbstractLifeCycle.start�[m �[32m AbstractLifeCycle.java: 64�[m
�[37morg.eclipse.jetty.server.nio.SelectChannelConnector.doStart�[m �[32mSelectChannelConnector.java: 265�[m
�[37morg.eclipse.jetty.server.AbstractConnector.doStart�[m �[32m AbstractConnector.java: 316�[m
�[37morg.eclipse.jetty.server.nio.SelectChannelConnector.open�[m �[32mSelectChannelConnector.java: 187�[m
�[37msun.nio.ch.ServerSocketAdaptor.bind�[m �[32m �[m
�[37msun.nio.ch.ServerSocketChannelImpl.bind�[m �[32m �[m
�[37msun.nio.ch.Net.bind�[m �[32m �[m
�[37msun.nio.ch.Net.bind�[m �[32m �[m
�[37msun.nio.ch.Net.bind0�[m �[32m �[m
�[1;31mjava.net.BindException�[m: �[3mAddress already in use: bind�[m

2015-Mai-08 13:23:45 +0200 XMAsTablet ERROR [hsbox.core] -
�[37mhsbox.core.main�[m �[32m �[m
�[37m...�[m �[32m �[m
�[33mhsbox.core/�[1;33m-main�[m �[32m core.clj: 21�[m
�[33mring.adapter.jetty/�[1;33mrun-jetty�[m �[32m jetty.clj: 103�[m
�[37morg.eclipse.jetty.util.component.AbstractLifeCycle.start�[m �[32m AbstractLifeCycle.java: 64�[m
�[37morg.eclipse.jetty.server.Server.doStart�[m �[32m Server.java: 292�[m
�[37morg.eclipse.jetty.util.component.AbstractLifeCycle.start�[m �[32m AbstractLifeCycle.java: 64�[m
�[37morg.eclipse.jetty.server.nio.SelectChannelConnector.doStart�[m �[32mSelectChannelConnector.java: 265�[m
�[37morg.eclipse.jetty.server.AbstractConnector.doStart�[m �[32m AbstractConnector.java: 316�[m
�[37morg.eclipse.jetty.server.nio.SelectChannelConnector.open�[m �[32mSelectChannelConnector.java: 187�[m
�[37msun.nio.ch.ServerSocketAdaptor.bind�[m �[32m �[m
�[37msun.nio.ch.ServerSocketChannelImpl.bind�[m �[32m �[m
�[37msun.nio.ch.Net.bind�[m �[32m �[m
�[37msun.nio.ch.Net.bind�[m �[32m �[m
�[37msun.nio.ch.Net.bind0�[m �[32m �[m
�[1;31mjava.net.BindException�[m: �[3mAddress already in use: bind�[m

Combining several accounts.

I use one account for group queue and one for solo, I would love to be able to connect these accounts together for the stats and searching.

So basically a possibility to add sub accounts to a main account for stats and searching would be an amazing feature for an already amazing tool. ;)

Can't view my own and some of my friends stats

In the player list I have me and all my friends. for some users, it shows an empty list, and there is a NullPointerException in console.

Stacktrace:
2015-05-08 13:59:25.395:WARN:oejs.AbstractHttpConnection:/api/player/76561198014368047/demos
java.lang.NullPointerException
at clojure.lang.Numbers.ops(Numbers.java:961)
at clojure.lang.Numbers.lte(Numbers.java:223)
at hsbox.stats$build_clutch_round_fn$fn__7554$fn__7555.invoke(stats.clj:115)
at clojure.core$filter$fn__4264.invoke(core.clj:2601)
at clojure.lang.LazySeq.sval(LazySeq.java:40)
at clojure.lang.LazySeq.seq(LazySeq.java:49)
at clojure.lang.RT.seq(RT.java:484)
at clojure.core$seq.invoke(core.clj:133)
at clojure.core$take_while$fn__4274.invoke(core.clj:2636)
at clojure.lang.LazySeq.sval(LazySeq.java:40)
at clojure.lang.LazySeq.seq(LazySeq.java:49)
at clojure.lang.RT.seq(RT.java:484)
at clojure.core$seq.invoke(core.clj:133)
at clojure.core$reduce1.invoke(core.clj:897)
at clojure.core$reverse.invoke(core.clj:911)
at hsbox.stats$build_clutch_round_fn$fn__7554.invoke(stats.clj:121)
at hsbox.stats$update_stats_with_round.invoke(stats.clj:134)
at clojure.core.protocols$fn__6086.invoke(protocols.clj:143)
at clojure.core.protocols$fn__6057$G__6052__6066.invoke(protocols.clj:19)
at clojure.core.protocols$seq_reduce.invoke(protocols.clj:31)
at clojure.core.protocols$fn__6078.invoke(protocols.clj:54)
at clojure.core.protocols$fn__6031$G__6026__6044.invoke(protocols.clj:13)
at clojure.core$reduce.invoke(core.clj:6289)
at hsbox.stats$update_stats_with_demo.invoke(stats.clj:153)
at hsbox.stats$stats_for_demo.invoke(stats.clj:182)
at hsbox.stats$append_demo_stats.invoke(stats.clj:202)
at clojure.core$map$fn__4245.invoke(core.clj:2559)
at clojure.lang.LazySeq.sval(LazySeq.java:40)
at clojure.lang.LazySeq.seq(LazySeq.java:49)
at clojure.lang.RT.seq(RT.java:484)
at clojure.core$seq.invoke(core.clj:133)
at clojure.core$map$fn__4245.invoke(core.clj:2551)
at clojure.lang.LazySeq.sval(LazySeq.java:40)
at clojure.lang.LazySeq.seq(LazySeq.java:49)
at clojure.lang.RT.seq(RT.java:484)
at clojure.core$seq.invoke(core.clj:133)
at clojure.core$map$fn__4245.invoke(core.clj:2551)
at clojure.lang.LazySeq.sval(LazySeq.java:40)
at clojure.lang.LazySeq.seq(LazySeq.java:49)
at clojure.lang.Cons.next(Cons.java:39)
at clojure.lang.RT.next(RT.java:598)
at clojure.core$next.invoke(core.clj:64)
at cheshire.generate$generate.invoke(generate.clj:127)
at cheshire.core$generate_string.invoke(core.clj:32)
at clojure.lang.AFn.applyToHelper(AFn.java:156)
at clojure.lang.AFn.applyTo(AFn.java:144)
at clojure.core$apply.invoke(core.clj:626)
at clojure.core$update_in.doInvoke(core.clj:5698)
at clojure.lang.RestFn.invoke(RestFn.java:467)
at ring.middleware.json$wrap_json_response$fn__8410.invoke(json.clj:67)
at ring.middleware.json$wrap_json_body$fn__8393.invoke(json.clj:35)
at ring.middleware.cors$wrap_cors$fn__8377.invoke(cors.clj:150)
at compojure.core$routing$fn__1396.invoke(core.clj:127)
at clojure.core$some.invoke(core.clj:2515)
at compojure.core$routing.doInvoke(core.clj:127)
at clojure.lang.RestFn.invoke(RestFn.java:423)
at hsbox.handler$fn__8456.invoke(handler.clj:66)
at compojure.core$if_context$fn__1418.invoke(core.clj:198)
at compojure.core$routing$fn__1396.invoke(core.clj:127)
at clojure.core$some.invoke(core.clj:2515)
at compojure.core$routing.doInvoke(core.clj:127)
at clojure.lang.RestFn.applyTo(RestFn.java:139)
at clojure.core$apply.invoke(core.clj:626)
at compojure.core$routes$fn__1400.invoke(core.clj:132)
at ring.middleware.keyword_params$wrap_keyword_params$fn__1519.invoke(keyword_params.clj:35)
at ring.middleware.nested_params$wrap_nested_params$fn__1562.invoke(nested_params.clj:84)
at ring.middleware.params$wrap_params$fn__1492.invoke(params.clj:64)
at ring.middleware.multipart_params$wrap_multipart_params$fn__1598.invoke(multipart_params.clj:
at ring.middleware.flash$wrap_flash$fn__2272.invoke(flash.clj:35)
at ring.middleware.session$wrap_session$fn__2259.invoke(session.clj:98)
at clojure.lang.Var.invoke(Var.java:379)
at ring.adapter.jetty$proxy_handler$fn__8518.invoke(jetty.clj:20)
at ring.adapter.jetty.proxy$org.eclipse.jetty.server.handler.AbstractHandler$ff19274a.handle(Un
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
at org.eclipse.jetty.server.Server.handle(Server.java:369)
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:48
at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:9
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpCo
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
at java.lang.Thread.run(Unknown Source)

Issue with 'Watch Round' button

I seem to be having an issue with the watch round button. CS starts but the demo doesnt. I think I know why.

My console reads:
Executing deferred playdemo: F:\Old
CDemoFile::Open: couldn't open file F:\Old.dem for reading.

The directory to my CSGO is F:\Old Windows\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive

It seems like the console isn't tolerating a space in the directory name.

Thanks.

Graphs

So I've been thinking how we can make the player stats detailed. How about including some graphs for say KDR, WIN / LOSS on a monthly basis or weekly.

skip check

DEBUG [hsbox.stats] - No tick_end for round 28 in demo nil

Notes view

Just a list with all the notes (along with map, score, watch button)

Mark the games where some1 got VAC'd since the game was played in the overview

Wouldnt it be easier for everyone if the VAC-Shield appears in the overview so we can see "Hey, this game someone got VAC'd afterwards"? I love to check every game I played to see if someone got VAC'd - so I know that there is maybe 1 win or loss not couted to my MMR. But at this moment (I got like 400 games) I dont rly have that effort/time to check every game manually...

0 rounds 10 players

the headshotbox.bat file says
that my demo from esea is 0 rounds 10 players
and on the page i can't see any off the demos..

plz help me :D

No connection to http://127.0.0.1:4000/

sometimes it works sometimes theres no connection to the website which is really annoying :(

maybe you could host the site on a server if thats the problem?
if so i would donate if you want =)

PS: great work so far.

[Linux] Parsing error demoinfogo (with temp fix)

Hey, first: I LOVE your work, thank you so much.

The problem:
When I tried to set up HeadshotBox it wouldn't parse the demo folder, when the demos are not in the folder where demoinfogo is located:

2015-Mai-10 13:03:03 +0200 dex-os ERROR [hsbox.indexer] - Cannot parse demo /home/dex/.local/share/Steam/steamapps/common/Counter-Strike Global Offensive/csgo/replays/match730_003068079370007478483_1242606074_135.dem #

IOException java.io.IOException: Cannot run program "/home/dex/demoinfogo": error=2, Datei oder Verzeichnis nicht gefunden

(I had to get rid of the < > in the last line; after error=2 it states: file or folder not found)

The temporary solution (at least for me):

  • copy the whole content of the zip file to the folder where the demos are in
  • open headshotbox.sh and change the command to "java -jar /path/where/you/put/the/zipfile/contents/hsbox-version.number.standalone.jar 4000"
  • let it parse

This temp fix is perfectly fine, if you ask me. No rush to fix it.

A version for servers/publicity

Hey.

What about a version, which is thought to be visitable by the publicity?
I would like to see a version, where you can login via Steam and set, who can view the demos + stats.

Would be a nice tool to use in small eSport teams.
If you want, I could help a bit :)

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.