ripgarpr / garpr Goto Github PK
View Code? Open in Web Editor NEWThis project forked from garsh0p/garpr
the revival of GarPR. may gar rest in RIP
This project forked from garsh0p/garpr
the revival of GarPR. may gar rest in RIP
Currently, for large tournaments with multiple pools/rounds, admins have to insert every round separately (which is tedious and leads to input errors, etc.).
The SmashGG scraper can grab all the phase_group ids for a tournament via the api.smashgg.com/event API endpoint. In particular,
https://api.smashgg.com/event/{event_id}?expand[0]=entrants&expand[1]=groups
will list all the entrants and phase_groups in the event with event ID {event_id}. The event_id is the first of the three numbers; e.g. one pool for CEO has URL https://smash.gg/tournament/ceo-2016/brackets/11787/45262/150428; the event id is 11787 (the phase_group id for that specific pool is 150428). Once we have the phase_group ids, we can use the old API route to gather all the matches (i.e. https://api.smash.gg/phase_group/150428).
PS: We should also ask the SmashGG people if there is a way to grab the tournament name from some API endpoint; it is possible to grab the event name from the above API route, but unfortunately this is usually something like "Melee Singles" as opposed to "CEO 2016".
title says it all. currently only yedi can delete brackets once they are submitted.
damien said he worked on a way to delete brackets in 'pending' queue but that doesn't seem to work either
not sure what units the current uncertainty is in, but convert to +/- point value, and add to the right of where points are currently displayed on the main rankings page
that, or to keep the aesthetics, add in the ability to hover over the current scores and see the uncertainty, as it does on the player pages
on the player pages the uncertainty should probably be displayed next to the rating as its own text field, not only when not hovered over
serverside stuff is there now, just need to modify frontend a bit
We need to make a module that writes logs to a file. This will ensure we are able to track issues especially in the long run when we have a lot of users and traffic.
this will rectify problems with smashgg importing (only uses URL to get names) and mean admins can append 'top 8' or 'top32' themselves
Due to the recent discovery of instability in the SmashGG api (likely due to new releases), the SmashGG importer module needs better error handling in case updates like these will continue to be an issue.
somewhere (maybe in the tournaments tab) have a little area with the relevant values we can tweak for trueskill's algorithm
have a field for each where we can enter new ones and maybe its a good idea to have the default values written beside them
also in this area we can have the "X brackets in last Y days" fields for the admin to edit
this can be seen with Nebs prime 47 which is one of the few ones the amateur bracket is in the smashgg event and not separate on challonge
https://www.notgarpr.com/#/newjersey/tournaments/577d1f4ae592571213091dc8
https://smash.gg/tournament/nebulous-prime-melee-47/brackets
amateur sets are included in our imported version
maybe we need a new feature for the smashgg uploader, where it shows which individual brackets are in that smashgg event and the admin can check off which ones we want to import / consolidate into one bracket
Having issues using Vagrant on Windows at the moment. Once debugged and fixed, will update the readme.
currently when i try to merge players i get the confirmation that the two have been merged, but nothing happens. i can do it over and over and get the same result
If True Skill is being used as the ranking method, is it possible to add options for which ranking method the user wants to use such as Elo or Gicko2 or FIDE? Also, set score 2-1 vs 2-0 should be considered because many tournament organizations calculate the total wins/loses as part of Elo rating.
will look into it more now
there are several reasons for these changes outlined in the chat
The SmashGG scraper doesn't seem to be correctly getting the player names for some tournaments. In particular, the list of player tags sometimes has duplicates for some tags and is entirely missing others.
For example, displaying the players in https://smash.gg/tournament/tiger-smash-4/brackets/11097/21317/70949, we get the list of players:
<scraper.smashgg.SmashGGPlayer object at 0x7f0ed366c4d0> Druggedfox
<scraper.smashgg.SmashGGPlayer object at 0x7f0ed366c310> SmashBob SquarePants
<scraper.smashgg.SmashGGPlayer object at 0x7f0ed366c650> ESAM
<scraper.smashgg.SmashGGPlayer object at 0x7f0ed366c610> KPAN
<scraper.smashgg.SmashGGPlayer object at 0x7f0ed366c9d0> Milkman
<scraper.smashgg.SmashGGPlayer object at 0x7f0ed366c250> stingers
<scraper.smashgg.SmashGGPlayer object at 0x7f0ed366c850> DAB
<scraper.smashgg.SmashGGPlayer object at 0x7f0ed366c8d0> NIX
<scraper.smashgg.SmashGGPlayer object at 0x7f0ed366c950> Trix
<scraper.smashgg.SmashGGPlayer object at 0x7f0ed366c490> SmashBob SquarePants
<scraper.smashgg.SmashGGPlayer object at 0x7f0ed366c550> dansofree
<scraper.smashgg.SmashGGPlayer object at 0x7f0ed366c290> Landry
<scraper.smashgg.SmashGGPlayer object at 0x7f0ed366c2d0> Wei
<scraper.smashgg.SmashGGPlayer object at 0x7f0ed366c510> loverboy
<scraper.smashgg.SmashGGPlayer object at 0x7f0ed3548510> Spinjump
<scraper.smashgg.SmashGGPlayer object at 0x7f0ed3548490> 92Greatness
<scraper.smashgg.SmashGGPlayer object at 0x7f0ed3548390> Gato
<scraper.smashgg.SmashGGPlayer object at 0x7f0ed35483d0> Perthro
<scraper.smashgg.SmashGGPlayer object at 0x7f0ed3548410> dansofree
<scraper.smashgg.SmashGGPlayer object at 0x7f0ed3548450> DarkLava
<scraper.smashgg.SmashGGPlayer object at 0x7f0ed35484d0> Cohenski
<scraper.smashgg.SmashGGPlayer object at 0x7f0ed3548550> Matchu
<scraper.smashgg.SmashGGPlayer object at 0x7f0ed3548350> DAB
<scraper.smashgg.SmashGGPlayer object at 0x7f0ed3548650> NIX
which contains "SmashBob SquarePants" twice and doesn't contain "One Falcon Punch Man" at all. This issue also comes up in the bracket https://smash.gg/tournament/super-nebulous-4/brackets/11335/14961/50953.
first we should just do it manually. but good way to do it would be to use activity criteria, i.e. for nebs64, player has to have entered X number of tournaments... or has to have certain amount of significance (would need to calc rankings twice for that i think).
this is probably what im gonna work on next
This profile is made up of several different people, all with the tag 'Seven' or '7' or 'Se7en' or some variation https://www.notgarpr.com/#/newjersey/players/56d093074d75216110485add
currently the only way to rectify this is to delete and reupload all of those tournaments, then go through and merge the proper accounts appropriately. in the future can we have a way for admins to break up an entire list of a player's events back into separate player profiles
so it would do something like 'Player X' --> 'Player X (1)' + 'Player X (2)'.... and then an admin can merge each individually / rename them accordingly
this is needed in several instances:
smashgg allows you to see if a set was won by DQ so those can probably be added to the omit list automatically. admins will need a manual method for sure, but there should be some checks planned to prevent abuse
assign to jon and yedi
Sorry if this is the wrong avenue to contact you guys, but I want to get it setup. I have a VPS that I can run it on because I was trying to run the old version of GarPR before I found this one.
when a player clicks on his / her name, the ability to see their score over time in a simple chart on their profile page. one for each region if they are in multiple regions
not sure how hard it is to do this (or if it will require more computation when regenerating) but something like what chess.com does would be nice
maybe include the values on the side that are relavant, like percentile, strongest opponent beaten, average opponent skill?
many people have asked for this
i guess the best place would be somewhere in the bracket's page
some combination or variation of these
currently garpr uses the date the bracket was created on challonge instead of the date the event was run (which is an optional field in challonge). we need a way for this to be the first field checked, and it would be nice if admins could change the date/time of results so that they count in the right order
two current issues in NJ
-if someone goes back to recreate pools for an event (TCNJ Barkada) the pools are counted months after the event happened.
-if two locals happen in the same day (jersey japes, knight slash) there is a chance the one that happened 2nd is calculated first if time isnt specified on both of them
its currently *, should be locked to a whitelist of domains
is one of these unused?
https://github.com/yedi/garpr/blob/master/server.py#L326
https://github.com/yedi/garpr/blob/master/server.py#L571
we definitely don't need two ways to submit brackets
im shitty at angular, but it looks like this is where bracket submitting happens:
https://github.com/yedi/garpr/blob/master/webapp/script.js#L401
should also write a utility to dump a list of users (not players) from the db.
i.e. OPTIONS /undefined/players
what else?
We don't check auth for GET
ting pending tournaments: https://github.com/yedi/garpr/blob/master/server.py#L434
Probably should, because it's confusing UX for someone to be able to do stuff in the UI and hit "submit" and have it be rejected
i think this was the original idea years ago and its becoming more important as more events are made
basically add some tab where there is a field for un-signed in users to submit missing URLS (challonge/smashgg) . first system checks if they exist already, if not they add them to some admin dashboard where we can go in and approve/delete them.
not a high priority task but will be welcome eventually. once this is added we can play with the idea of having others submit player merges and having admins approve that too
in vagrant env. an example
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/nose/suite.py", line 209, in run
self.setUp()
File "/usr/local/lib/python2.7/dist-packages/nose/suite.py", line 292, in setUp
self.setupContext(ancestor)
File "/usr/local/lib/python2.7/dist-packages/nose/suite.py", line 315, in setupContext
try_run(context, names)
File "/usr/local/lib/python2.7/dist-packages/nose/util.py", line 470, in try_run
return func()
File "/home/vagrant/test/test_dao.py", line 16, in setUpClass
MongoClient().drop_database(DATABASE_NAME)
File "/usr/local/lib/python2.7/dist-packages/pymongo/mongo_client.py", line 1051, in drop_database
read_preference=ReadPreference.PRIMARY)
File "/usr/local/lib/python2.7/dist-packages/pymongo/database.py", line 481, in command
codec_options, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/pymongo/database.py", line 393, in _command
allowable_errors)
File "/usr/local/lib/python2.7/dist-packages/pymongo/pool.py", line 213, in command
read_concern)
File "/usr/local/lib/python2.7/dist-packages/pymongo/network.py", line 99, in command
helpers._check_command_response(response_doc, None, allowable_errors)
File "/usr/local/lib/python2.7/dist-packages/pymongo/helpers.py", line 196, in _check_command_response
raise OperationFailure(msg % errmsg, code, response)
OperationFailure: not authorized on garpr_test to execute command { dropDatabase: 1 }
currently it shows up for everyone and i get the occasional complaint that 'my submission wont go through'
It would be cool to have a feature for TOs to submit a tournament link before starting the bracket, and get an ordered list of it's entrants sorted by skill rating. any players not in the system would go at the bottom. Obviously this shouldn't be the only factor a TO should use in tournament seeding but I think it would be helpful
Set up a cron job/jenkins job so the server periodically dumps backups of the db (probably either daily or weekly).
title says it all
currently admins can only rename a player by merging them into an alias with a different name. there is no way to directly change it.
lol "scraper"
#21 needs to be fixed first
This can be seen in SKTAR3 with $led and Rowan SSBM #2 with $man<>boi
when clicking submit the 'Are you sure' dialogue comes up like normal, but clicking submit on that will not do anything
this happens if you're creating a new player or tagging them with an existing alias
another example of a bug with $: http://njssbm.com/#/newjersey/tournaments/57072e64e5925764360756d8
from here http://chaoticneutral.challonge.com/chaoticneutralweeklymelee4_7
Pizza$ was renamed to _cel when submitted
It does not seem to happen with Ko$a (because its in the middle I assume)
the auto fill function is not working for tags that are very slightly different from the actual tags. for exampl "1 1 Slox" should become "Slox." some of the names will autofill for example- http://njssbm.com/#/nyc/tournaments/574c5d9ce5925732410756df
in this link you can see that NY Joey was auto filled correctly, while every other name has no suggestion come up. these are all common tags, Capt Smuckers, Slox, G$.
tldr - 1 1 Slox = Slox
vagrant test env needs db w/ data and with "fake" admin users for testing
should be a DB dump that has actual tournaments (for testing autosuggest, merges, and other admin functionality.
also will need to have "fake" admin accounts (un: test, passwd: test) because this is going in source control, so we dont wanna leak our (hashed) creds
title says all
currently the only way to delete a bracket is from the tournament list
add a 'delete' button within the 'Edit Tournament Details' popup when on a bracket's page
boot VM
nosetests
-- not found
run sudo apt-get install python-nose
run nosetests
will fail with a bunch of import errors
something is not working correctly with python environment (nose is included in requirements.txt)
antiXSS, anti-click-jacking, content-type headers, charset, etc
maybe add a page for admins that generates a list of all players in the system across all region databases. if it can order them by some aggregate score it would be good for seeding events in tristate that have a combination of NJ and NY players
also something similar for tournaments. that way we can delete any brackets that are messed up / unused. currently the only way to delete a bad bracket is if it shows up in your region's tournament list
when we had a lot of users hit the site due to posting in NYC SSBM, mongo OOM'd, which led to OOM killer killing the API.
we need to:
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.