w3champions / website-backend Goto Github PK
View Code? Open in Web Editor NEWThis is the backend that powers https://w3champions.com/
This is the backend that powers https://w3champions.com/
Following (w3champions/website#299), it looks to me like the data feeding the Popular Hours chart is missing 5 times. 00:00, 00:15, 00:30, 00:45, and 23:45 along with their pertaining game counts.
Hi,
Can you please include the "gateWay" (player region) in the results returned from the api/players/global-search endpoint?
I need this for the opensource w3c discord bot i started developing recently.
I am implementing a search which will list the players from the search results in a MenuSelect (a dropdown like object in discord messages), where users can select the player from the search results. But without having the region, users will have to provide the region themselves (which is not convenient at all). IMO, for all intents and purposes the gateWay (region) should be returned as well.
Bonus request: Include the 1vs1 mmr as well (reason is, people may be able to find the player they are searching for by the mmr), country, main race, etc.
It would be nice to update the frontend to include the region (maybe the mmr as well) on the front-end search results, but my feature request for this is purely backend.
Thank you!
Starting from 28 of september (season 3) all AT games show up as RT.
Here are the last AT games of shocker for season 3 (NOTICE that he plays with RTGOD ~2200 mmr!)
Then, after 28 of september the games with RTGOD show up in normal 2vs2 (RT)
For season 4, no AT games are listed at all
It seems like also here the AT games are still listed under RT:
Another example of blank 2v2 AT match history:
Another example of 28 of september being last day AT matches are actually listed under 2vs2 AT:
https://www.w3champions.com/player/CRODeny%232741/matches
https://www.w3champions.com/player/Shocker%2321685/matches
This issue seems to be backend related, as the data is visualized correctly in the UI.
I think there is a bug in public async Task<bool> TryInsertClan(Clan clan)
There should be also a check if clan can be found by name.
Potential solution:
public async Task<bool> TryInsertClan(Clan clan)
{
var clanFoundById = await LoadFirst<Clan>(c => c.ClanId == clan.ClanId);
var clanFoundByName = await LoadFirst<Clan>(c => c.ClanName == clan.ClanName);
if (clanFoundById != null || clanFoundByName != null) return false;
await Insert(clan);
return true;
}
As described in
w3champions/website#317
response from 'API/matches/5ff4dd37e8fc1825172188fa' contains in field 'response.playerScores[0].battleTag' value 'iDentify' instead of 'iDentify#11833'.
Did a preliminary investigation:
the frontend is displaying all the data it's receiving correctly
the frontend is only receiving the first 10 maps of data in the database, and not receving number 11 ('autumnleaves201016')
checked the API from the stats service independently, and it's not passing the autumnleaves201016 games from the backend:
Problem is in the backend it would seem.
Originally posted by @Cepheid-UK in w3champions/website#301 (comment)
Based on #37
Situation: I track some interesting for me ongoing match and when it's over I want to check it's result.
Currently I can grab all finished matches and find match which has started in same time, having same players, was played one same map, that's not very handy solution.
Ideally I need some GET route where I can use some id provided by ongoing match find finished match. I'm not able to run tests for C# applications because of religion so can't contribute that change.
The goal is to be able to produce the same "expected winrate" statistic derived as modelled by the glicko2 rating system.
See: https://warcraft3.info/articles/359 for an introduction. I am not talking about fitting the bias parameter over the dataset.
Ideally, anywhere there is an "actual winrate", there should be an "expected winrate" equivalent.
For example:
-https://www.w3champions.com/OverallStatistics/winrates-per-race-and-map
-https://www.w3champions.com/OverallStatistics/heroes-winrates
-players' profiles so we can show the best and worst matchups based on that!
This would, later on, involve frontend work (by someone else most likely).
Contact Toxi for exact formula.
Hi guys.
I was reviewing project's code and found some supsicious place in MatchesController.cs:
Seems that FFA match will never get to PlayersObfuscator.ObfuscatePlayersForFFA
. I would rewrite it something like:
[HttpGet("ongoing/{playerId}")]
public async Task<IActionResult> GetOnGoingMatches(string playerId)
{
var onGoingMatch = await _matchRepository.TryLoadOnGoingMatchForPlayer(playerId);
if (onGoingMatch == null)
return Ok(null);
if (onGoingMatch.GameMode == GameMode.FFA)
PlayersObfuscator.ObfuscatePlayersForFFA(onGoingMatch);
return Ok(onGoingMatch);
}
If you don't mind I'll do PR.
Ongoing matches seem to be hitting db pretty hard. I think we can easily move them to in memory static list and not use mongo at all. The only downside to that would be that deploying statistics backend will clear them but I think this is not a big deal as they are pretty volatile anyway.
Abeninski gave a lot of info in #new-dev-chat on discord, it would be good to collate this into a dev environment setup guide on the wiki for this repo.
We need a way to cancel a match because sometimes a bug happens and wrong result is recorded.
There is already MatchCancelledEvent which we need to handle and revert all data that the MatchFinishedEvent added.
You need to make sure that MatchFinishedEvent has already happened because in some cases MatchCancelledEvent can be fired without MatchFinishedEvent.
When a player leaves a clan, they must also be removed from "founding fathers", otherwise they cannot rejoin the clan later.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.