Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1149 commits
Select commit Hold shift + click to select a range
a8e47fa
added splits mode to NSim class
edelkas Mar 12, 2025
1a6c34d
fix_episode
edelkas Mar 17, 2025
7ec6c61
finished episode score patcher
edelkas Mar 19, 2025
d5d2709
added Nv1++ mappack
edelkas Mar 19, 2025
6b52ad1
minor
edelkas Mar 29, 2025
42eca2a
added fractional scores; better ANSI; code cleaning
edelkas Mar 30, 2025
a27adee
minor change in SVG handling for graphs
edelkas Apr 26, 2025
d69a8b1
updated some paths
edelkas Apr 26, 2025
09a460b
added graphing of userlevel scores by date
edelkas Apr 26, 2025
257e496
TODO; cheater update; minor fix in dump_level
edelkas Apr 30, 2025
29337d8
better calculation of total score max for rankings
edelkas May 2, 2025
9483bb2
refactored and cleaned userlevel query parsing
edelkas May 10, 2025
97f8b8e
cleaned parse_tabs and query_header
edelkas May 12, 2025
1cb2eb6
TODO
edelkas May 12, 2025
eff5682
integrated parse_tabs into parse and refactored update_relationships
edelkas May 12, 2025
5c90a29
new userlevel parsing system working
edelkas May 13, 2025
f910f4c
Added map file documentation
edelkas May 13, 2025
f5a9abc
finished fractional scores
edelkas May 14, 2025
27f16a3
minor fix in diff; minor simplification in coolness calculatio
edelkas May 15, 2025
b453553
added public API server
edelkas May 15, 2025
7121a48
minor fixes for frac scores
edelkas May 15, 2025
c40145e
TODO
edelkas May 16, 2025
6f5c6c2
API: added screenshot function
edelkas May 17, 2025
983db89
added mappack visibility
edelkas May 18, 2025
f4ef415
minor fix when parsing highscoreables by ID
edelkas May 18, 2025
15e5427
API: custom palette support
edelkas May 18, 2025
76435aa
API: screenshot function finished
edelkas May 19, 2025
4a7a8aa
slightly better image benchmarking
edelkas May 20, 2025
db40185
added task to update userlevel data regularly
edelkas May 21, 2025
8cad908
another minor fix when parsing highscoreables by ID
edelkas May 23, 2025
52ebe95
added C native extension to README
edelkas May 24, 2025
5810a47
some more extension docs
edelkas May 24, 2025
b8762d2
added NSim one-shot method
edelkas May 25, 2025
521f583
roadmap for live frac computation
edelkas May 25, 2025
2ccb12b
refactored format_board and leaderboard, adapted get_scores for frac
edelkas May 26, 2025
d72d0f8
refactored mappack score destroying cleanup, and adapted it to frac; …
edelkas May 27, 2025
b41021c
simplified archive destroying
edelkas May 27, 2025
68c91ed
simplified and adapted patch_score for frac
edelkas May 28, 2025
d2a15c8
adapted leaderboard for frac
edelkas May 28, 2025
a3ac74e
replaced fraction with (1 - fraction) for simplicity
edelkas May 28, 2025
0340c4a
optimized update_ranks and adapted for frac
edelkas May 28, 2025
6616844
optimized delete_obsoletes
edelkas May 28, 2025
936044a
changed default fraction to 1; adapted delete_obsoletes for frac
edelkas May 29, 2025
a1b0f71
minor frac fixes
edelkas May 29, 2025
e267337
adapted score submission to frac
edelkas May 29, 2025
fac49c7
plenty of smaller usages of frac parameter
edelkas May 29, 2025
c6a29a0
TODO
edelkas Jun 2, 2025
78d18b5
automated frac precomputation
edelkas Jun 16, 2025
7d0fed6
minor improvements to frac job
edelkas Jun 17, 2025
efc1844
small fixes in frac score submission
edelkas Jun 19, 2025
c663e62
minor log encoding fix
edelkas Jun 19, 2025
75ea916
added MAX mappack
edelkas Jun 19, 2025
3d82ff4
added dev scores
edelkas Jun 19, 2025
32ba68d
minor fix when updating completions, frac default in scores
edelkas Jun 19, 2025
b01da09
optimized and improved spreads
edelkas Jun 19, 2025
7a602cc
proper sorting of millisecond ties in fractional boards in-game with …
edelkas Jun 20, 2025
873ea7e
fix a MAX dev score
edelkas Jun 20, 2025
a302f24
nsim update
edelkas Jun 20, 2025
cde2906
added fractional spreads
edelkas Jun 20, 2025
557456b
minor fix in frac spread
edelkas Jun 20, 2025
38ad1e3
polish score formatting
edelkas Jun 21, 2025
16822bc
support for dev scores in list
edelkas Jun 23, 2025
60fb724
ensure dev score is always visible in-game
edelkas Jun 23, 2025
cf69922
minor color and format issue in scores addressed
edelkas Jun 23, 2025
853514a
support for dev scores in rankings; added open-ended rank ranges
edelkas Jun 23, 2025
679c8c1
frac support in rankings
edelkas Jun 27, 2025
dfd83d4
mappack support for stats, table and community
edelkas Jun 27, 2025
d454f0d
a couple of minor fixes when parsing frac
edelkas Jun 27, 2025
a892f6f
implemented scores around mine leaderboards
edelkas Jun 30, 2025
de25bfa
added episode and story dev scores
edelkas Jun 30, 2025
4238eef
added frac support to worst
edelkas Jun 30, 2025
ae08b03
Speedrun API support
edelkas Jul 1, 2025
bb1b8fc
log binary response bodies
edelkas Jul 3, 2025
c8c2fc5
DDay graphs
edelkas Jul 5, 2025
18a2db2
timezone fix (enforce UTC)
edelkas Jul 5, 2025
4701ac3
added cache class and used it on Speedrun module
edelkas Jul 6, 2025
4f4ce2a
improved timestamps (padding, iso, ms)
edelkas Jul 6, 2025
a2fbd3a
Speedrun: added variables, platform, level, videos, and much better t…
edelkas Jul 6, 2025
7e8deca
Speedrun: started to add pagination for newest runs, but it's tricky
edelkas Jul 7, 2025
ad666eb
Speedrun: added embeds, parsing game resource
edelkas Jul 11, 2025
9f12d9a
Speedrun: distinct embeds by status, added examiner
edelkas Jul 12, 2025
5499bd8
Added SL2 mappack
edelkas Jul 12, 2025
23e391c
Speedrun: prefetch static resources at the start (games, categories, …
edelkas Jul 15, 2025
7168bb0
Speedrun: added leaderboards; app emojis
edelkas Jul 15, 2025
942cd3c
Speedrun: select menus for leaderboards, many helpers; more app emojis
edelkas Jul 17, 2025
26873d5
improved timestamps (zero, documentation)
edelkas Jul 17, 2025
1fdd60b
more app emojis for ranks
edelkas Jul 18, 2025
3bbf9aa
enhancements to components, specially buttons
edelkas Jul 18, 2025
5d81ff1
Speedrun: finished leaderboards
edelkas Jul 18, 2025
51caf19
Speedrun: added new speedrun notifications, implemented cache busting…
edelkas Jul 19, 2025
cfa79fd
added named togglable threads we can operate from Discord
edelkas Jul 21, 2025
84e6910
implemented full Metanet board scanning
edelkas Jul 21, 2025
6e419ab
added binary output to board scanning
edelkas Jul 22, 2025
179d514
more improvements to board scanning, automated
edelkas Jul 23, 2025
f5e7963
daemonize
edelkas Jul 26, 2025
78fe652
added ephemeral score thumbnails (broken)
edelkas Jul 26, 2025
7edccbf
Discord message logging enhanced
edelkas Jul 26, 2025
96eb27d
added score embeds
edelkas Jul 26, 2025
b89f824
added ThreadPool class; parallelized board scanning; ANSI terminal na…
edelkas Jul 27, 2025
422de16
fixed ThreadPool status querying and improved logging
edelkas Jul 28, 2025
0473ce8
added raw tables to mirror Metanet tables
edelkas Jul 29, 2025
80980df
add names to dmmc command
edelkas Jul 29, 2025
d124407
fix when parsing highscoreables by ID
edelkas Jul 30, 2025
8aad0ed
diff now uses archives
edelkas Jul 30, 2025
44404ea
diff now uses archives for mappacks too
edelkas Jul 31, 2025
523cd13
generalized diff to any highscoreable and any date; optimized diff co…
edelkas Jul 31, 2025
f02628a
simplified lotd and report posting
edelkas Jul 31, 2025
13da5ce
fixed tie sorting in userlevel report
edelkas Aug 2, 2025
d3595d0
improved lotd and diff (format and testing)
edelkas Aug 2, 2025
5754e4d
fix tie sorting in userlevel rankings
edelkas Aug 2, 2025
83bc7f1
added integrity checks to diff
edelkas Aug 2, 2025
b9191ce
fix date parsing in diff
edelkas Aug 2, 2025
412764e
you can now specify a date when querying scores; better archive score…
edelkas Aug 3, 2025
1eb9300
adapted to new archive score navigation; specify date on reports; bet…
edelkas Aug 4, 2025
f380db7
insane single SQL query optimization of denubbings
edelkas Aug 4, 2025
ba872c3
merged scores and nav scores; added score navigation for mappacks
edelkas Aug 4, 2025
a29ac04
added coolness to mappacks
edelkas Aug 5, 2025
0ba0246
CLE: added login POST request
edelkas Aug 6, 2025
1b6b7b0
added Python script to fetch Steam authentication tickets
edelkas Aug 10, 2025
0800aad
Steam auth: added silent mode
edelkas Aug 10, 2025
9981aa0
Steam auth: new options (connect, dry, file), better docs and logging
edelkas Aug 11, 2025
c80adc3
Steam auth: made disconnection more robust somewhat
edelkas Aug 11, 2025
2456642
Steam auth: steam tickets migration and class
edelkas Aug 11, 2025
e291b30
Steam auth: interface with the Python util
edelkas Aug 13, 2025
15926e6
Steam auth: added refresh tokens
edelkas Aug 14, 2025
ca8dde8
Steam auth: added exit codes, finished automatic authentication
edelkas Aug 16, 2025
a4f1eeb
added HOR mappack
edelkas Aug 16, 2025
2f6bfac
Steam auth: added docs
edelkas Aug 16, 2025
44ac910
refactored API code into its own file
edelkas Aug 17, 2025
584145e
fixed old userlevel data update
edelkas Aug 17, 2025
4e461c8
minor (TODO, reaction logging)
edelkas Aug 17, 2025
731104a
authentication when POST'ing
edelkas Aug 21, 2025
7caf425
unified GET and POST requests in a single method that takes care of b…
edelkas Aug 21, 2025
8ebb60e
proper headers for each HTTP method
edelkas Aug 21, 2025
ea67760
revamped get_data
edelkas Aug 23, 2025
2b38aba
slash commands reactivated, screenshot working
edelkas Aug 23, 2025
d96ecb7
slash command for userlevel browsing
edelkas Aug 25, 2025
0cb5a09
slash command for configurating outte
edelkas Aug 26, 2025
fd735d4
added mappacks and userlevels to screenshot slash command
edelkas Aug 26, 2025
bba538d
slash command for downloading levels or replays
edelkas Aug 28, 2025
2844bc5
fix recent Discord GIF encoding transparency bug
edelkas Sep 4, 2025
2fba3b2
server seems to enforce steam auth data now
edelkas Sep 6, 2025
36c3f9d
add job scheduler logging
edelkas Sep 6, 2025
58795a4
adapted get_data to always using steam auth tickets, and added defaul…
edelkas Sep 8, 2025
ad297df
minor fixes in auth script
edelkas Sep 8, 2025
f13199d
robustized userlevel data downloading; fix in logconf logging
edelkas Sep 12, 2025
ad65b04
more solid way to find Python interpreter
edelkas Sep 14, 2025
6fad2e9
simplified update_scores
edelkas Sep 14, 2025
ca69e61
fixed filename sanitization for embeds
edelkas Sep 14, 2025
0580342
TODO
edelkas Sep 18, 2025
7b66c09
added method to dump attract file
edelkas Oct 3, 2025
e4aca8a
added TEN++
edelkas Oct 17, 2025
a90c8b6
fix in dashless ID parsing
edelkas Oct 25, 2025
f88440f
added missing TEN++ files
edelkas Nov 4, 2025
99cdd3b
fix in get_next that prevented TEN++ from being lotd
edelkas Nov 16, 2025
745cb20
added mappack challenges
edelkas Nov 18, 2025
5ad65f0
updated blacklist
edelkas Nov 23, 2025
6d1175d
fix when formatting level list coming from application command
edelkas Nov 24, 2025
3147d9e
added boilerplate code for proper API (html, css, js, assets)
edelkas Dec 14, 2025
1339efa
API: scores
edelkas Dec 15, 2025
907d93c
user user IDs for Twitch blacklist
edelkas Dec 17, 2025
5dd2cdb
adding Twitch report and ban system
edelkas Dec 17, 2025
b10c83e
API scores: optimized and fixed several bugs
edelkas Dec 20, 2025
08a878c
normalized archive dates
edelkas Dec 20, 2025
e220d12
API: improved tooltips
edelkas Dec 20, 2025
d89b09a
API scores: added filters, various fixes and improvements in table pr…
edelkas Dec 20, 2025
182f4f6
API: new favicon
edelkas Dec 21, 2025
a7a91d7
API run: added selection form, run info and analysis views
edelkas Dec 21, 2025
af89a52
API run: finished demo analysis
edelkas Dec 27, 2025
ef89bd4
API run: added downloads
edelkas Dec 27, 2025
65e2d8d
API: added compression (gzip, deflate)
edelkas Dec 27, 2025
6b605df
API: added Kohina radio
edelkas Dec 27, 2025
b48055d
API: using octicons
edelkas Dec 28, 2025
c253cd8
cheater update
edelkas Dec 28, 2025
27e6340
API git: added
edelkas Dec 28, 2025
7e920bd
API git: parse local repo
edelkas Dec 29, 2025
c720428
API: added cache; also better logging
edelkas Dec 30, 2025
bca07db
API: wrapping for tooltips
edelkas Dec 30, 2025
33136e0
API: added some logging and moved to port 80
edelkas Dec 30, 2025
e6a34df
API scores: added userlevels
edelkas Jan 5, 2026
91b7368
added Puma
edelkas Jan 16, 2026
53cefb8
Server: added Response class
edelkas Jan 18, 2026
226e354
added TEN++ palettes; improved generatePalette script
edelkas Jan 25, 2026
fee6e64
added scrip to generate palette showcase swatch
edelkas Jan 25, 2026
eb06c25
improved palette showcase
edelkas Jan 25, 2026
6e987d7
Server: added caching, encoding and logging
edelkas Mar 19, 2026
da80ee3
Server: plenty of small bugs, API working
edelkas Mar 19, 2026
0a16db7
Server: finished migrating API to Puma
edelkas Mar 21, 2026
2f302ee
Server: migrated all CLE handlers to new system
edelkas Mar 27, 2026
b49d164
Server: finished migrating CLE
edelkas Mar 28, 2026
ed94ad7
Server: Improved cache
edelkas Mar 29, 2026
f747167
Server: Improved logging and API error handling
edelkas Mar 31, 2026
85975fd
added thumbnail to scores using v2 components
edelkas Apr 5, 2026
150302a
minor fixes
edelkas Apr 7, 2026
d8682f9
Added RSS tracking and reporting, N++ Steam feed
edelkas Apr 8, 2026
719f485
Fetch N++ app info from Steam to track updates
edelkas Apr 10, 2026
6525ffc
Fetching app info finished, also added manifest fetching
edelkas Apr 11, 2026
847ab49
Embeds for Steam notices
edelkas Apr 11, 2026
886e43d
Adapted mappacker to new save format
edelkas Apr 15, 2026
d608580
Added LIT mappack
edelkas Apr 15, 2026
0baed36
screenshot font fix
edelkas Apr 15, 2026
ba35796
App emojis using discordrb
edelkas Apr 16, 2026
9550d33
Extra logging and safeguards for send_request
edelkas Apr 17, 2026
5698c35
even more safeguards against unauthenticated requests
edelkas Apr 17, 2026
3892b9b
Migration for Steam stuff (branches, depots, builds, manifests...)
edelkas Apr 18, 2026
4a18a74
Steamworks classes working; added cooldown
edelkas Apr 18, 2026
5f6f822
scheduled steamwork notices
edelkas Apr 18, 2026
863a019
seeded data from SteamDB; restructured Steam classes
edelkas May 13, 2026
7100053
minor bugfixes in Steam classes
edelkas May 13, 2026
205eefe
cheated update, twitch blacklist update, TODO
edelkas May 13, 2026
e542d8e
custom parsers for Feed class: tracking Assembla tickets
edelkas May 13, 2026
d9f4650
fix for HtmlToMarkdown
edelkas May 13, 2026
6363109
Added D-Day tab
edelkas May 14, 2026
e61865c
Updated D-Day tab
edelkas May 14, 2026
4076226
Added admin control panel, with logconf
edelkas May 15, 2026
6f93eb8
Finished logconf modal
edelkas May 16, 2026
c8d324d
Using send_request wrapper for remaining methods
edelkas May 17, 2026
8e7df96
minor simplifications for userlevel completions
edelkas May 17, 2026
e8a1157
replaced concurrent_edit by TmpMsg
edelkas May 17, 2026
52dcd5d
parse and verify Steam tokens regularly
edelkas May 17, 2026
c9680db
generate showcase of all levels with most/least entities
edelkas May 18, 2026
fe49051
removed ascii_charts dependency
edelkas May 18, 2026
c25b4c1
added keywords to utils toc and section
edelkas May 18, 2026
499b253
reorganized Gemfile
edelkas May 18, 2026
33ec085
Added roo gem to parse spreadsheets
edelkas May 18, 2026
f4d901d
migration to add videos back to the db
edelkas May 21, 2026
ff98d7d
parse video library
edelkas May 22, 2026
ccde27e
Added Streamer class
edelkas May 24, 2026
40f379a
Added Google Sheets API
edelkas May 25, 2026
7a06d5f
adapted library parsing to API format
edelkas May 26, 2026
134f89a
scheduled video library update
edelkas May 27, 2026
d3e52f4
browse video library with outte
edelkas May 27, 2026
4071ee2
Improved video browsing, embedded videos
edelkas May 27, 2026
f619309
more polishing and QOL in video browsing
edelkas May 28, 2026
c08f664
removed old video migration
edelkas Jun 7, 2026
a9d5df1
Updated DDT
edelkas Jun 7, 2026
c521829
connected mappack levels with userlevels
edelkas Jun 7, 2026
634304a
added forwarding from mappack levels to userlevels
edelkas Jun 9, 2026
e70692c
robustized video spreadsheet parsing
edelkas Jun 10, 2026
71ac833
Added text overlays to screenshot using RMagick
edelkas Jun 10, 2026
be6427d
improved random
edelkas Jun 10, 2026
828874e
added score corrections to db
edelkas Jun 17, 2026
5db1537
added video slash command
edelkas Jun 23, 2026
aab6beb
fix 1 year old bug in userlevel report that first manifested today
edelkas Jul 5, 2026
205f0d8
report when new vids are found in library
edelkas Jul 5, 2026
53f5079
cheater blacklist update
edelkas Jul 5, 2026
ebb86e3
improved Dalton Day stats command
edelkas Jul 5, 2026
9d3f211
Added DDT:UE mappack
edelkas Jul 8, 2026
5776a40
Added automatic score corrections for mappack levels
edelkas Jul 8, 2026
3a59398
patch for DDT
edelkas Jul 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
25 changes: 14 additions & 11 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
*~
*.json
*.pem
*.log
\.byebug_history
*.db
\#*
\.\#*
missing*
scores*
missing*.txt
scores*.txt
*.swp
*.sql
*.so
.byebug_history
/.*/**
Gemfile.lock
/.ruby-lsp
/**/__pycache__
/logs
/sorbet
/bin
/util/hash_*
/.bundle
/ext/Makefile
65 changes: 53 additions & 12 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -1,19 +1,60 @@
source 'https://rubygems.org' do
gem 'ascii_charts'
gem 'discordrb'
gem 'activerecord'
gem 'yaml_db'
gem 'gruff'
gem 'mysql2'

group :debug, :test do
gem 'byebug'
# Gems required to connect to Discord
group :bot do
gem 'discordrb', github: 'shardlab/discordrb', branch: 'main'
end

group :test do
gem 'test-unit'
gem 'mocha'
# Gems required to run the servers and connect to the database
group :server do
gem 'activerecord'
gem 'mysql2'
gem 'puma'
gem 'rails'
gem 'yaml_db'
end

# Gems for parsing or converting different formats
group :data do
gem 'damerau-levenshtein'
gem 'html-to-markdown'
gem 'nokogiri'
gem 'rss'
gem 'rubyzip'
gem 'unicode-emoji'
end

# Gems for image manipulation
group :imaging do
gem 'chunky_png'
gem 'gifenc', github: 'edelkas/gifenc', branch: 'master'
gem 'gruff'
gem 'matplotlib'
gem 'octicons'
gem 'oily_png', github: 'edelkas/oily_png', branch: 'dev'
gem 'rexml'
gem 'rmagick'
gem 'svg-graph'
end

# Gems for providing "intellisense"
group :development do
# gem 'sorbet'
# gem 'sorbet-runtime'
# gem 'tapioca'
end

# Gems for debugging the code
group :development, :debug do
gem 'memory_profiler'
gem 'pry-byebug'
end

# Gems for testing the code
group :development, :test do
gem 'database_cleaner'
gem 'factory_girl'
gem 'factory_bot'
gem 'mocha'
gem 'test-unit'
end
end
77 changes: 0 additions & 77 deletions Gemfile.lock

This file was deleted.

21 changes: 0 additions & 21 deletions LICENSE.txt

This file was deleted.

Loading