5 years agoUpdate the CSS, make it easier to generate them.
Ant Zucaro [Sat, 17 Dec 2016 15:34:00 +0000 (10:34 -0500)]
Update the CSS, make it easier to generate them.

5 years agoGet rid of minified assets that we don't use.
Ant Zucaro [Sat, 17 Dec 2016 15:13:34 +0000 (10:13 -0500)]
Get rid of minified assets that we don't use.

5 years agoUpdate the combined CSS file.
Ant Zucaro [Sat, 17 Dec 2016 15:12:04 +0000 (10:12 -0500)]
Update the combined CSS file.

5 years agoCenter the navigation to match the website.
Ant Zucaro [Sat, 17 Dec 2016 15:11:43 +0000 (10:11 -0500)]
Center the navigation to match the website.

6 years agoMake precondition failures return plain-text.
Ant Zucaro [Mon, 14 Nov 2016 01:09:15 +0000 (20:09 -0500)]
Make precondition failures return plain-text.

These show up in the server admin's logs as HTML currently. Making them plain
text (which is, of course, how the server logs are formatted) makes them easier
to see and understand.

6 years agoRemove an unneeded import.
Ant Zucaro [Mon, 14 Nov 2016 00:53:57 +0000 (19:53 -0500)]
Remove an unneeded import.

6 years agoImprove server matching.
Ant Zucaro [Mon, 14 Nov 2016 00:45:20 +0000 (19:45 -0500)]
Improve server matching.

The old code would attempt to match on hashkey OR name, depending on what
information was provided. The new version will search on both at the same time
by using the builder pattern on the query.

6 years agoAdd the active filter for servers on the search page.
Ant Zucaro [Sat, 12 Nov 2016 14:36:20 +0000 (09:36 -0500)]
Add the active filter for servers on the search page.

6 years agoUse better formatted filters.
Ant Zucaro [Sat, 12 Nov 2016 14:36:00 +0000 (09:36 -0500)]
Use better formatted filters.

6 years agoAdd a filter to show active servers only.
Ant Zucaro [Sat, 12 Nov 2016 14:18:10 +0000 (09:18 -0500)]
Add a filter to show active servers only.

6 years agoGive a better name to a function and also use the server Elo indicator.
Ant Zucaro [Fri, 11 Nov 2016 22:30:24 +0000 (17:30 -0500)]
Give a better name to a function and also use the server Elo indicator.

6 years agoAdd an Elo indicator to servers.
Ant Zucaro [Fri, 11 Nov 2016 22:29:40 +0000 (17:29 -0500)]
Add an Elo indicator to servers.

6 years agoUse more descriptive names, not raw().
Ant Zucaro [Tue, 8 Nov 2016 23:24:19 +0000 (18:24 -0500)]
Use more descriptive names, not raw().

6 years agoReference the correct function.
Ant Zucaro [Tue, 8 Nov 2016 23:24:00 +0000 (18:24 -0500)]
Reference the correct function.

6 years agoFix imports.
Ant Zucaro [Mon, 7 Nov 2016 19:38:37 +0000 (14:38 -0500)]
Fix imports.

6 years agoMerge pull request #26 from antzucaro/active-maps
Ant Zucaro [Sun, 6 Nov 2016 14:22:51 +0000 (09:22 -0500)]
Merge pull request #26 from antzucaro/active-maps

Fix the active maps table and corresponding index.

6 years agoShow the number of games instead of the sort order (again). active-maps
Ant Zucaro [Sun, 6 Nov 2016 03:01:17 +0000 (23:01 -0400)]
Show the number of games instead of the sort order (again).

6 years agoAdd the active maps links back.
Ant Zucaro [Sun, 6 Nov 2016 01:19:15 +0000 (21:19 -0400)]
Add the active maps links back.

6 years agoMerge branch 'sev/xolonium4-badges' into 'master'
Ant Zucaro [Sun, 6 Nov 2016 00:58:59 +0000 (00:58 +0000)]
Merge branch 'sev/xolonium4-badges' into 'master'

Render badges with Xolonium 4.0

I have recently finished Xolonium 4.0, available [here](https://fontlibrary.org/en/font/xolonium).
Most notably, it now also includes a hinted ttf version. As a result, it should be possible to render the badges with sharper text.

Now, there is no point in just telling you this, so I pushed this branch as a potential update for the badge scripts. It adds the necessary hinting options and slightly adjusts some of the font sizes and positions, to optimize the result. Of course, it is necessary to install the new ttf version first.


I also have noticed that the rendered badge images are quite heavy. It would be fairly easy to cut their size by reducing the colors to 8bit, without a noticable effect on quality. I have added an exemplary script (optimize.sh), which could reduce file sizes by almost half.

See merge request !3

6 years agoMerge branch 'sev/xolonium4' into 'master'
Ant Zucaro [Sun, 6 Nov 2016 00:52:48 +0000 (00:52 +0000)]
Merge branch 'sev/xolonium4' into 'master'

Update Xolonium webfonts

This branch updates the webfonts to [Xolonium 4.0](https://fontlibrary.org/en/font/xolonium).

Note that I have deleted the .svg format, because it is [deprecated](http://caniuse.com/svg-fonts).
In return, I have added the new .woff2 format, which offers better compression.

Also note that I have removed Arial and Helvetica as fallbacks, resulting in:
I consider this preferable, because it falls back to the default sans-serif font,
which should be the "best" font as determined by the system or the user.
I can change it back if desired.

See merge request !4

6 years agoChange the required cvar name. Fixes #23.
Ant Zucaro [Sun, 6 Nov 2016 00:32:13 +0000 (20:32 -0400)]
Change the required cvar name. Fixes #23.

6 years agoMerge pull request #25 from antzucaro/models-refactor
Ant Zucaro [Sun, 6 Nov 2016 00:28:18 +0000 (20:28 -0400)]
Merge pull request #25 from antzucaro/models-refactor

Refactor all of the models into separate modules.

6 years agoGet rid of joined_pretty_date in favor of the mixin. models-refactor
Ant Zucaro [Sun, 6 Nov 2016 00:17:50 +0000 (20:17 -0400)]
Get rid of joined_pretty_date in favor of the mixin.

6 years agoIt's a medal, not a rank.
Ant Zucaro [Sat, 5 Nov 2016 23:41:44 +0000 (19:41 -0400)]
It's a medal, not a rank.

6 years agoUse mixins to avoid duplication.
Ant Zucaro [Sat, 5 Nov 2016 23:38:24 +0000 (19:38 -0400)]
Use mixins to avoid duplication.

6 years agoUse field indexing for format() for clarity.
Ant Zucaro [Sun, 30 Oct 2016 18:02:26 +0000 (14:02 -0400)]
Use field indexing for format() for clarity.

6 years agoFormat all code in the models package.
Ant Zucaro [Sun, 30 Oct 2016 17:31:22 +0000 (13:31 -0400)]
Format all code in the models package.

6 years agoMake models a package instead of being a single (huge) module.
Ant Zucaro [Fri, 28 Oct 2016 23:55:20 +0000 (19:55 -0400)]
Make models a package instead of being a single (huge) module.

6 years agoA little bit more code cleanup.
Ant Zucaro [Fri, 28 Oct 2016 21:20:46 +0000 (17:20 -0400)]
A little bit more code cleanup.

6 years agoMerge pull request #24 from antzucaro/server-refactor
Ant Zucaro [Sun, 23 Oct 2016 18:03:20 +0000 (14:03 -0400)]
Merge pull request #24 from antzucaro/server-refactor

Merge the server views refactor.

6 years agoOops, it should be application/json not text/json.
Ant Zucaro [Sun, 23 Oct 2016 15:36:15 +0000 (11:36 -0400)]
Oops, it should be application/json not text/json.

6 years agoAdd the 'plus' link to the recent games table too.
Ant Zucaro [Sun, 23 Oct 2016 14:16:38 +0000 (10:16 -0400)]
Add the 'plus' link to the recent games table too.

6 years agoAdd links to the tables, rename the template to be consistent.
Ant Zucaro [Sun, 23 Oct 2016 14:12:41 +0000 (10:12 -0400)]
Add links to the tables, rename the template to be consistent.

6 years agoAdd lifetime value to all server top* HTML views.
Ant Zucaro [Sun, 23 Oct 2016 14:02:09 +0000 (10:02 -0400)]
Add lifetime value to all server top* HTML views.

6 years agoMake the return values consistent.
Ant Zucaro [Sun, 23 Oct 2016 13:56:45 +0000 (09:56 -0400)]
Make the return values consistent.

6 years agoAdd HTML views for top active players, scoring players, and maps played.
Ant Zucaro [Sun, 23 Oct 2016 13:24:34 +0000 (09:24 -0400)]
Add HTML views for top active players, scoring players, and maps played.

6 years agoShow the correct lifetime information in the template.
Ant Zucaro [Sun, 23 Oct 2016 11:51:05 +0000 (07:51 -0400)]
Show the correct lifetime information in the template.

6 years agoAdd rank-fetching in the view, make the template easier to handle.
Ant Zucaro [Sun, 23 Oct 2016 11:47:36 +0000 (07:47 -0400)]
Add rank-fetching in the view, make the template easier to handle.

6 years agoLimit and last are query params, not match params.
Ant Zucaro [Sat, 22 Oct 2016 13:50:27 +0000 (09:50 -0400)]
Limit and last are query params, not match params.

6 years agoAdd limits and offsets to all 'top' views.
Ant Zucaro [Sat, 22 Oct 2016 13:36:57 +0000 (09:36 -0400)]
Add limits and offsets to all 'top' views.

6 years agoChange around the organization of ServerInfo.
Ant Zucaro [Sat, 22 Oct 2016 12:33:04 +0000 (08:33 -0400)]
Change around the organization of ServerInfo.

6 years agoNo newlines for beneath the init methods.
Ant Zucaro [Wed, 19 Oct 2016 00:53:17 +0000 (20:53 -0400)]
No newlines for beneath the init methods.

6 years agoAdd a JSON method to the ServerInfo view.
Ant Zucaro [Wed, 19 Oct 2016 00:45:04 +0000 (20:45 -0400)]
Add a JSON method to the ServerInfo view.

6 years agoFlatten the lines a bit.
Ant Zucaro [Wed, 19 Oct 2016 00:21:35 +0000 (20:21 -0400)]
Flatten the lines a bit.

6 years agoMore server refactoring...still not sure if this is the right way to go.
Ant Zucaro [Tue, 18 Oct 2016 01:47:45 +0000 (21:47 -0400)]
More server refactoring...still not sure if this is the right way to go.

6 years agoConvert the server info to a class-based view callable. Add a dummy JSON view.
Ant Zucaro [Sun, 16 Oct 2016 15:25:41 +0000 (11:25 -0400)]
Convert the server info to a class-based view callable. Add a dummy JSON view.

6 years agoAdd docstrings.
Ant Zucaro [Sun, 16 Oct 2016 14:22:59 +0000 (10:22 -0400)]
Add docstrings.

6 years agoConvert the server index to a class-based view callable. Add a JSON view.
Ant Zucaro [Sun, 16 Oct 2016 13:50:51 +0000 (09:50 -0400)]
Convert the server index to a class-based view callable. Add a JSON view.

6 years agoFurther adjust font sizes and positions in badges 3/head
Severin Meyer [Wed, 12 Oct 2016 18:26:53 +0000 (20:26 +0200)]
Further adjust font sizes and positions in badges

6 years agoUpdate Xolonium webfonts 4/head
Severin Meyer [Wed, 12 Oct 2016 16:06:05 +0000 (18:06 +0200)]
Update Xolonium webfonts

6 years agoAdd example script that optimizes the size of badge images
Severin Meyer [Tue, 11 Oct 2016 14:15:01 +0000 (16:15 +0200)]
Add example script that optimizes the size of badge images

6 years agoSlightly adjust font sizes and positions in badges
Severin Meyer [Tue, 11 Oct 2016 14:12:03 +0000 (16:12 +0200)]
Slightly adjust font sizes and positions in badges

6 years agoAdd font hinting options for ttf version of Xolonium 4.0
Severin Meyer [Tue, 11 Oct 2016 14:09:05 +0000 (16:09 +0200)]
Add font hinting options for ttf version of Xolonium 4.0

6 years agoUse pserve, not paster.
Ant Zucaro [Sun, 26 Jun 2016 16:41:25 +0000 (12:41 -0400)]
Use pserve, not paster.

6 years agoShow player medals on the player_info page.
Ant Zucaro [Tue, 29 Mar 2016 01:11:43 +0000 (21:11 -0400)]
Show player medals on the player_info page.

6 years agoAdd a simple form for the versus view.
Ant Zucaro [Sat, 12 Mar 2016 14:22:26 +0000 (09:22 -0500)]
Add a simple form for the versus view.

6 years agoInitial version of the "versus" view between two players.
Ant Zucaro [Sat, 12 Mar 2016 13:39:55 +0000 (08:39 -0500)]
Initial version of the "versus" view between two players.

6 years agoRename the "top" templates to match their views.
Ant Zucaro [Sat, 6 Feb 2016 21:28:13 +0000 (16:28 -0500)]
Rename the "top" templates to match their views.

6 years agoMake the active players/servers/maps use the cache.
Ant Zucaro [Sat, 6 Feb 2016 21:21:44 +0000 (16:21 -0500)]
Make the active players/servers/maps use the cache.

Instead of fetching from the base data, the active players/server/maps views
will fetch from the so-called "materialized view" tables instead. These tables
are precomputed and will be MUCH faster, performance-wise. Regular Beaker
caching remains the same for these, and the paginated pages now only support
clicking "more" until the list is exhausted. Perhaps in the future they will be
fetched via JSON and appended to the page in a "never-ending scroll" thing.

6 years agoMerge branch 'master' of github.com:antzucaro/XonStat
Ant Zucaro [Sun, 31 Jan 2016 14:56:04 +0000 (09:56 -0500)]
Merge branch 'master' of github.com:antzucaro/XonStat

6 years agoUse the summary_stats_mv instead of the full table.
Ant Zucaro [Sun, 31 Jan 2016 14:55:50 +0000 (09:55 -0500)]
Use the summary_stats_mv instead of the full table.

6 years agoForce create_dt to start_dt for games.
Ant Zucaro [Wed, 27 Jan 2016 01:16:57 +0000 (20:16 -0500)]
Force create_dt to start_dt for games.

There's some drift in the database between the two, when in actuality they
should only be milliseconds apart. The start_dt *was* being set via the
application and the create_dt with a database default. The values resulting
from the defaults were sometimes minutes earlier, which doesn't makes sense.
Until the true cause is identified I'll force the two to be the same.

6 years agoAdd another sorting option to player_captimes.
Ant Zucaro [Wed, 27 Jan 2016 01:10:28 +0000 (20:10 -0500)]
Add another sorting option to player_captimes.

You can now sort by two fields: most recent and fastest. This is done with a
line at the bottom of the table that allows you to toggle. Fixes #163.

6 years agoAdd a plus-sign link to the player_game_index.
Ant Zucaro [Mon, 25 Jan 2016 21:02:33 +0000 (16:02 -0500)]
Add a plus-sign link to the player_game_index.

6 years agoFix the navigation icons. Fixes #161.
Ant Zucaro [Sat, 23 Jan 2016 15:51:36 +0000 (10:51 -0500)]
Fix the navigation icons. Fixes #161.

For some reason the navigation links were still using the old "glyphicon" font
classes. This meant that the actual "previous" and "next" page links weren't
actually visible, leading to some navigation issues. Changing them to the
font-awesome classes makes them visible again!

6 years agoMake the rank index titles data-driven.
Ant Zucaro [Sat, 23 Jan 2016 15:40:50 +0000 (10:40 -0500)]
Make the rank index titles data-driven.

6 years agoWhitelist rank game types in the view. Fixes #162.
Ant Zucaro [Sat, 23 Jan 2016 15:08:41 +0000 (10:08 -0500)]
Whitelist rank game types in the view. Fixes #162.

The game types where you could view ranks were previously controlled by a
regular expression check within the route. This was completely NOT obvious to
troubleshoot. This moves them to within the view, which is much easier to
control. Additionally, a 404-check is added for malformed values.

6 years agoClean up the game info view.
Ant Zucaro [Sat, 23 Jan 2016 14:50:02 +0000 (09:50 -0500)]
Clean up the game info view.

6 years agoThe player JSON view should use to_dict() instead.
Ant Zucaro [Thu, 21 Jan 2016 02:46:22 +0000 (21:46 -0500)]
The player JSON view should use to_dict() instead.

6 years agoMake the game finder JSON-enabled.
Ant Zucaro [Thu, 21 Jan 2016 02:43:13 +0000 (21:43 -0500)]
Make the game finder JSON-enabled.

This allows applications to get "recent games" via an API.

6 years agoFoundation columns should add up to 12, not 13.
Ant Zucaro [Mon, 18 Jan 2016 22:22:45 +0000 (17:22 -0500)]
Foundation columns should add up to 12, not 13.

6 years agoReduce the number of fast caps shown on the map_info page.
Ant Zucaro [Sat, 16 Jan 2016 22:55:46 +0000 (17:55 -0500)]
Reduce the number of fast caps shown on the map_info page.

6 years agoAdd a link to view the fastest capture times on the map_info page.
Ant Zucaro [Sat, 16 Jan 2016 22:48:29 +0000 (17:48 -0500)]
Add a link to view the fastest capture times on the map_info page.

6 years agoMove MapCapTime and PlayerCapTime to models.
Ant Zucaro [Sat, 16 Jan 2016 22:36:56 +0000 (17:36 -0500)]
Move MapCapTime and PlayerCapTime to models.

The more I thought about it, the more I think that these two classes should
live inside the models module. They are nothing more than models for views. So
what if they aren't object-relational!

6 years agoThrow HTTP 404s if either the player or map do not exist.
Ant Zucaro [Sat, 16 Jan 2016 13:00:58 +0000 (08:00 -0500)]
Throw HTTP 404s if either the player or map do not exist.

6 years agoAllow fetching player captimes using the JSON endpoint.
Ant Zucaro [Sat, 16 Jan 2016 12:45:28 +0000 (07:45 -0500)]
Allow fetching player captimes using the JSON endpoint.

6 years agoFix the JSON view for map captimes.
Ant Zucaro [Sat, 16 Jan 2016 00:15:23 +0000 (19:15 -0500)]
Fix the JSON view for map captimes.

7 years agoClean up xs_submit.
Ant Zucaro [Sun, 29 Nov 2015 15:07:55 +0000 (10:07 -0500)]
Clean up xs_submit.

This was written when I didn't really know that much Golang. I know a little
bit more about it now, so I can at least format accordingly! Also I know how to
use a Scanner now. Shame on my past self...

7 years agoAdd ranks to the post-match template.
Ant Zucaro [Sun, 29 Nov 2015 15:06:27 +0000 (10:06 -0500)]
Add ranks to the post-match template.

7 years agoFetch ranks for the post-match report.
Ant Zucaro [Sun, 29 Nov 2015 15:05:08 +0000 (10:05 -0500)]
Fetch ranks for the post-match report.

The ranks are updated daily, so they don't change game-per-game for an
individual, but having the rank value still tells people how strong a player
is that they've been playing against.

7 years agoUse raw ID values, not URLs.
Ant Zucaro [Thu, 19 Nov 2015 13:21:47 +0000 (08:21 -0500)]
Use raw ID values, not URLs.

The game doesn't have clickable links anyway.

7 years agoRemove k-factor, score-per-second, and alivetime.
Ant Zucaro [Thu, 19 Nov 2015 03:09:13 +0000 (22:09 -0500)]
Remove k-factor, score-per-second, and alivetime.

The k-factor and score-per-second values don't have any use for the game UI and
the server already knows the alivetime values of all participants.

7 years agoProvide a plaintext response to stats submissions.
Ant Zucaro [Thu, 19 Nov 2015 01:29:07 +0000 (20:29 -0500)]
Provide a plaintext response to stats submissions.

For all of XonStat's history the POST requests sent in by servers had plain
HTTP responses. This begins to change with this commit, which responds back to
the Xonotic server with meaningful information about /what happened/ during the
match that was just submitted. Of particular importance are the player_ids and
elo delta values that were stored as a result of the game. The template
establishing the format for this is submit_stats.mako. It will be extended
after we decide what other things we want to include.

7 years agoRefactor the Elo processing code into EloProcessor.
Ant Zucaro [Sat, 14 Nov 2015 21:20:33 +0000 (16:20 -0500)]
Refactor the Elo processing code into EloProcessor.

Before, Elo processing was simply a couple of extra methods that mutated
PlayerGameStat and PlayerElo rows, adding them to a session for updating or
inserting later. In order to support an end-of-match game report, we now need
to hold onto to those intermediate values so they can be passed into a
template. To do this I created an EloProcessor class to perform all of the
computation and an EloWIP class to hold onto all of the intermediate values.
EloProcessor can be used to find out what changed during Elo calculations.

7 years agoGet rid of some commented, unused code.
Ant Zucaro [Sun, 8 Nov 2015 23:12:15 +0000 (18:12 -0500)]
Get rid of some commented, unused code.

7 years agoClean up the production configuration file.
Ant Zucaro [Sun, 8 Nov 2015 19:22:01 +0000 (14:22 -0500)]
Clean up the production configuration file.

This includes a little better organization of the production.ini file for
administrators. It includes comments on the different directives, better
indentation, and rotating log files of limited size using Python's
logging.handlers.RotatingFileHandler facility.

7 years agoDon't put anonymous players in games.players
Ant Zucaro [Sat, 7 Nov 2015 15:15:54 +0000 (10:15 -0500)]
Don't put anonymous players in games.players

The "games" table has a convenience, de-normalized column for storing the list
of player_ids who played in that game. This is intended for use in quick
searches. Since anonymous players (players having a player_id == 2) aren't
searchable, they don't need to be in this list. This should decrease the
overall size of the GIN index on that column over time.

7 years agoUse only one regex to identify bots
Ant Zucaro [Sat, 7 Nov 2015 15:09:57 +0000 (10:09 -0500)]
Use only one regex to identify bots

Two is wasteful.

7 years agoMerge pull request #22 from antzucaro/nvd3-v2
Ant Zucaro [Thu, 29 Oct 2015 00:55:11 +0000 (20:55 -0400)]
Merge pull request #22 from antzucaro/nvd3-v2

Go back to NVD3.js

7 years agoAdd nvd3 css, integrate charts in the player_info page. nvd3-v2
Ant Zucaro [Thu, 29 Oct 2015 00:49:19 +0000 (20:49 -0400)]
Add nvd3 css, integrate charts in the player_info page.

7 years agoAdd minified version of the weapon charts.
Ant Zucaro [Thu, 29 Oct 2015 00:48:24 +0000 (20:48 -0400)]
Add minified version of the weapon charts.

7 years agoChange margin of the weaponCharts.
Ant Zucaro [Thu, 29 Oct 2015 00:47:43 +0000 (20:47 -0400)]
Change margin of the weaponCharts.

7 years agoAdd NVD3.js to vendor.
Ant Zucaro [Mon, 26 Oct 2015 22:14:16 +0000 (18:14 -0400)]
Add NVD3.js to vendor.

7 years agoAdd D3.js to vendor.
Ant Zucaro [Mon, 26 Oct 2015 22:14:01 +0000 (18:14 -0400)]
Add D3.js to vendor.

7 years agoStore and show goals in the "caps" field of team scores. Fixes #155.
Ant Zucaro [Wed, 8 Jul 2015 11:02:15 +0000 (07:02 -0400)]
Store and show goals in the "caps" field of team scores. Fixes #155.

7 years agoOops, off-by-one error on the damageChart series.
Ant Zucaro [Sat, 13 Jun 2015 13:38:23 +0000 (09:38 -0400)]
Oops, off-by-one error on the damageChart series.

7 years agoStore player-to-map captimes by mod.
Ant Zucaro [Sat, 13 Jun 2015 13:23:10 +0000 (09:23 -0400)]
Store player-to-map captimes by mod.

7 years agoStore impure cvar changes, and use them to mark servers as pure or not.
Ant Zucaro [Sat, 13 Jun 2015 12:01:24 +0000 (08:01 -0400)]
Store impure cvar changes, and use them to mark servers as pure or not.

7 years agoMake valid NB games those w/ nonzero scores ONLY. Fixes #152.
Ant Zucaro [Sat, 6 Jun 2015 13:20:58 +0000 (09:20 -0400)]
Make valid NB games those w/ nonzero scores ONLY. Fixes #152.

7 years agoRemove the rifle from the damage and accuracy charts.
Ant Zucaro [Sat, 6 Jun 2015 13:13:46 +0000 (09:13 -0400)]
Remove the rifle from the damage and accuracy charts.