SRDC-Verification-Analyzer =========================== This is the documentation for my `verification analyzer `_ program written in Python. The program was designed to help verifiers on `Speedrun.com `_ view how everyone is doing. However, this program is available to everyone. General -------- - To access dark mode for the site, the browser used to connect to the site must have a "dark mode" option enabled. - When excluding or filtering categories, special syntax must be used. Replace all spaces with underscores ``_``, and remove all percent (``%``) signs. - When requesting a game, only use the game's abbreviation (i.e the contents of the url when browsing the game on speedrun.com). Examples: ``smo``, ``oot``, ``sm64``. - URL Parameters (or query strings) are used for many of the requests on the site. Homepage --------- ``Location: /`` The homepage is the easiest way to navigate the features on the site, although it does not contain all the features possible within the site itself. The primary focus point on the homepage is for making a request to the analyzer itself. The homepage contains all the features allowed by the analyzer, making it easy to create a request at will. .. _srdc_analyzer: Analyzer -------- ``Location: /data/`` ``Allowed Parameters: startdate, enddate, parseother, t, minimal, rejects`` The analyzer is the tool that allows for the collection of verification statistics for any particular game or set of games. The verification statistics by default will contain the last 200 runs verified for the leaderboard. Adding the ``startdate`` or ``enddate`` parameters will allow the user to filter by particular dates for the analyzed runs and the average runs. - ``enddate`` is not allowed to be passed without ``startdate``. - The filter is inclusive of the dates that are sent with the request. The ``t`` option is available to quickly filter by a particular starting date based on the current date. The following options are listed below. - ``lastmonth`` - Gets the date exactly 1 month ago. - ``lastday`` - Gets the date exactly 1 day ago. - ``lastweek`` - Gets the date exactly 1 week (7 days) ago. - ``thismonth`` - Gets the date at the start of the month. - ``thisday`` - Gets the current date. - ``thisweek`` - Gets the date at the start of the week (Sunday). - ``thisweekmondaystart`` - The same as ``thisweek``, but considers Monday the start. Average runs is calculated by converting the date into a number representing the date in a year, getting the range of all the dates, then dividing the total number of runs by that range. The value is rounded to 2 decimals. The average runs verified looks at the date runs were verified in the provided timespan (or last 200 runs), while the average runs looks at the date runs were submitted in the provided timespan (or last 200 runs). ``parseother``, when set to ``yes``, will display more information about runs verified by individuals that are not currently registered as verifiers on the speedrun.com page (by default these individuals will be grouped together as "Other"). This is useful if the verification team has just removed individuals from the leaderboard. ``minimal``, when set to ``yes``, will remove certain information from the request that normally requires extra API calls. If the Speedrun.com API is running slowly, it may be worth enabling this. The information removed is the number of runs in the queue and the average runs per day statistic. ``rejects``, when set to ``yes``, will gather information about rejected runs for the particular game. This information will be displayed separately on individual user tabs, but will be combined when shown in the chart. Analyzer Data -------------- ``Location: /data//json`` ``Allowed Parameters: startdate, enddate, parseother, t, rejects`` The analyzer data page will return the data collected from the :ref:`srdc_analyzer` in json format. Verification Leaderboard ------------------------- ``Location: /leaderboard/`` ``Allowed Parameters: startdate, enddate, parseother, t, rejects`` The verification leaderboard will display a stylized leaderboard sorted by the amount of runs verified by individuals. The same rules for ``startdate``, ``enddate``, ``parseother``, ``t``, and ``rejects`` on the :ref:`srdc_analyzer` page apply. Credits to `Mark Eriksson `_ for the base CSS. All-Time Verification Leaderboard ---------------------------------- The verification leaderboard allows for the user to request a leaderboard of all-time verification statistics using SRC's own total verification statistic. To request this, simply set the ``t`` value to ``alltime``. A few things should be kept in mind when utilizing this unique leaderboard property: - This request only supports one game at a time. - The ``parseother`` parameter does not work with this request, meaning the user can only collect data on verifiers currently registered as verifiers on the leaderboard. - The API endpoint utilized for these requests are deemed "unstable" by Speedrun.com, so they can change at a moment's notice. This site will (hopefully) remain up-to-date on any changes to this endpoint. - The statistic calculated by Speedrun.com includes both verified and rejected runs, unlike all other requests on the site (which only deal with verified runs). .. _srdc_queue: Queue ------ ``Location: /queue/`` ``Allowed Parameters: category, user, orderby, exclude, time`` The queue page will display a simple list of all the runs currently in the verification queue for any particular set of games. The games are separated by commas (for example: ``smo,sm64``). Clicking on the category text will allow the user to filter the current queue page by the category selected, and clicking on the runner's name will allow the user to filter the current queue page by the runner selected. These requests can also be done manually with the ``category`` and ``user`` parameters. The ``orderby`` option allows the user to change the order of the runs in the verification queue. By default, the order goes by when the run is listed as completed in ascending order (oldest first). The available options to change the order are available in the `Speedrun.com API documentation `_. The ``exclude`` option allows the user to exclude certain categories from the request. The ``time`` option allows the user to filter runs by the time of the run. Examples: ``?time=>7200`` will return runs greater than 2:00:00, and ``?time=<3600`` will return times that are under 1:00:00. Records -------- ``Location: /queue//records`` ``Allowed Parameters: category, user, orderby, exclude, time`` The records page functions exactly like the :ref:`srdc_queue` page, but only returns the runs in the verification queue that are considered world records. This request does not work properly with categories that utilize more than 1 sub-category (such as `Ocarina of Time, Glitchless `_). Verifier --------- ``Location: /verifier/`` ``Allowed Parameters: game, exclude`` The verifier page will display a simple list of the last 200 runs verified by a user. The ``game`` option allows the user to filter by a particular game on speedrun.com. The ``exclude`` option allows the user to exclude certain categories from the request.