summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* .woodpecker: Add lintingRunxi Yu2024-09-261-1/+2
|
* lint.sh: Disable some bad checkersRunxi Yu2024-09-261-1/+1
|
* ws.go: ReformatRunxi Yu2024-09-261-1/+1
|
* .woodpecker: I can only release on tagsRunxi Yu2024-09-261-2/+2
|
* .woodpecker: Attempt 3Runxi Yu2024-09-261-2/+1
|
* .woodpecker: Attempt 2Runxi Yu2024-09-261-5/+2
|
* .woodpecker: Add release workflow (well I'm trying)Runxi Yu2024-09-261-0/+14
|
* .woodpecker: Try alpine:edgeRunxi Yu2024-09-251-1/+1
|
* .woodpecker: Initialize CIRunxi Yu2024-09-251-0/+11
|
* ws.go: Document chanPoolLock's purposeRunxi Yu2024-09-241-0/+9
|
* auth.go: Close PostForm response bodyRunxi Yu2024-09-241-0/+1
|
* style.css: Fix more regressionsRunxi Yu2024-09-241-4/+8
|
* index.html, main.js: Display message when connection is closedRunxi Yu2024-09-243-2/+41
| | | | Also fixed some CSS regressions
* index.html: Fix template to match the new "ID" rather than "Id"Runxi Yu2024-09-241-5/+5
|
* auth.go: Fix json tag, should be access_token not accessTokenRunxi Yu2024-09-241-1/+1
|
* auth.go: Fix grant_type=authorization_codeRunxi Yu2024-09-241-1/+1
| | | | I accidentally changed it to authorizationCode during linting
* cca.scfg.example -> docs/Runxi Yu2024-09-241-0/+0
|
* docs, scripts, sql: Sort support files into subdirectoriesRunxi Yu2024-09-246-0/+0
|
* Makefile: Update number of Go filesRunxi Yu2024-09-241-1/+1
|
* main.js: Omit semicolonsRunxi Yu2024-09-242-40/+38
|
* main.js, eslint.config.js: Start using eslintRunxi Yu2024-09-242-41/+149
|
* main.js: Don't indent case in switchRunxi Yu2024-09-241-28/+28
|
* *.go: LintingRunxi Yu2024-09-2410-140/+147
|
* style.css, index.html: More clean-upRunxi Yu2024-09-242-136/+106
|
* style.css: Initial clean-upRunxi Yu2024-09-241-42/+9
|
* utils.go: ReformatRunxi Yu2024-09-241-2/+2
|
* courses.go: Comment out coursetype_t enum to make linter happy for nowRunxi Yu2024-09-241-5/+7
|
* {index,utils,ws}.go: Handle write errorsRunxi Yu2024-09-243-39/+39
|
* {utils,auth,index,ws}.go: Handle errors in random number generationRunxi Yu2024-09-244-10/+30
|
* ws.go: Log userid and sessionid with channel pointerRunxi Yu2024-09-241-3/+4
|
* auth.go: Remove unnecessary fmt.SprintfRunxi Yu2024-09-231-1/+1
|
* ws.go: chanPoolLock should be a RWMutex rather than a pointer to oneRunxi Yu2024-09-231-1/+1
| | | | | | | A pointer to one could always be obtained via &chanPoolLock; but if I declare it as a pointer globally, I would need to initialize it somewhere so I don't get a null pointer dereference. It's more convenient to just declare it as the value.
* ws.go: Add missing returns after authentication failureRunxi Yu2024-09-231-0/+2
|
* ws.go: Initial attempt to manage chanPoolRunxi Yu2024-09-231-13/+22
|
* auth.go, ws.go: Update commentsRunxi Yu2024-09-232-7/+10
|
* Bump dependenciesRunxi Yu2024-09-232-3/+3
|
* Bump dependenciesRunxi Yu2024-09-222-6/+6
|
* index.html: Add box styling to the WebSocket warningRunxi Yu2024-09-171-1/+1
|
* ws.go, main.js, index.html: Better WS documentation and structureRunxi Yu2024-09-164-85/+156
|
* ws.go: Fix previous commit's type inconsistenciesRunxi Yu2024-09-131-4/+5
|
* ws.go: Very basic channelsRunxi Yu2024-09-132-5/+23
|
* go.mod: Bump dependenciesRunxi Yu2024-09-122-21/+21
|
* tcourse.sql: Use real-ish example dataRunxi Yu2024-09-121-6/+5
|
* ws.go: Clarrify handleWs's purposeRunxi Yu2024-09-121-1/+2
|
* ws.go: Move the login logic to handleWs from handleConnRunxi Yu2024-09-121-19/+38
|
* ws.go: gofmtRunxi Yu2024-09-121-3/+2
|
* ws.go: Use channels to handle incoming messagesRunxi Yu2024-09-121-11/+30
|
* ws.go: Document the message formatRunxi Yu2024-09-121-0/+25
|
* fields.txt: Document the export fields we needRunxi Yu2024-09-111-0/+26
|
* ws.go: TODO: Select c.Read and a broadcast channelRunxi Yu2024-09-111-0/+1
| | | | | | | I'm not sure whether we need to spawn an entirely different goroutine, make a shared channel, and select between the channels. It certainlly doesn't seem like there's a trivial way to block from a synchronous function and a channel, but I might be wrong, being unfamiliar with Go's concurrency.