Howl
c745947281
add peppymethods also in /v1, because new osu-web does so
2016-09-06 19:15:37 +02:00
Howl
1826246125
Create `limit' package, remove need of login_attempts.go
2016-09-06 17:04:22 +02:00
Howl
7e5d35d79a
make userpage content nil-able
2016-09-05 23:45:11 +02:00
Howl
9bfbb50ffd
ping now returns both user and token privileges and their string representation
2016-09-03 01:31:03 +02:00
Howl
61527882d1
Get donor info through /users/self/donor_info
2016-09-02 18:27:15 +02:00
Howl
92be078783
move peppyapi into its own group
2016-09-02 18:14:23 +02:00
Howl
e80e557f10
Add custom badge in users/full
2016-09-02 17:00:36 +02:00
Howl
e6c77e64a8
Pagination in badgesGET
2016-09-01 22:58:21 +02:00
Howl
12aaa04fea
use new badge system, users/full now returns badge information rather than just the ID
2016-09-01 22:50:56 +02:00
Howl
e4d27f8d6b
Allow users with AdminManageUsers to see banned users
...
Also:
- General code refactoring
- Allow banned/restricted users to see their scores etc
- common.MethodData now contains UserPrivileges
- UserPrivileges have now their own type
- Implement md.HasQuery, to know if there's a GET querystring parameter or not
2016-08-27 12:04:12 +02:00
Howl
476cd385f8
tiny get_beatmaps performance improvement
2016-08-23 21:30:11 +02:00
Howl
4d9f466491
Forgot a break
inf a for-range loop. Broke all the mode detection system.
2016-08-23 16:45:47 +02:00
Howl
3de3443d87
this is driving me crazy
2016-08-23 16:39:57 +02:00
Howl
42011ad10c
Allow much more freedom to query for different things in /api/v1/beatmaps
2016-08-23 16:27:09 +02:00
Howl
f35bb0a7e8
Fix m = 0 killing the query
2016-08-23 15:42:59 +02:00
Howl
73b0f48586
Add get_beatmaps
2016-08-22 23:04:52 +02:00
Howl
69e1d585cc
LEFT to INNER
2016-08-19 23:48:44 +02:00
Howl
817592e736
Remove common.OsuTime, change all occurencies to common.UnixTimestamp
2016-08-19 17:02:51 +02:00
Howl
67ae6ab3b8
Fix users/full returning "" as the country
2016-08-18 15:15:22 +02:00
Howl
55d7621ef5
remove -o api, as it's the evil
2016-08-15 21:56:29 +02:00
Howl
4f7ef9c071
u param
2016-08-15 21:51:51 +02:00
Howl
cab63a94ac
Make rank actually contain rank
2016-08-15 21:37:24 +02:00
Howl
954ec755b8
Implement get_scores in peppyapi
2016-08-15 21:13:40 +02:00
Howl
b9d35ac46d
Add more where clauses because I forgot 'em
2016-08-15 20:07:40 +02:00
Howl
a6ca8de13e
Implement GET scores in official ripple api
2016-08-15 19:59:46 +02:00
Howl
346f26177c
Change all references to sql.DB to references to sqlx.DB
2016-08-15 13:45:42 +02:00
Howl
e41be44397
Use sqlx instead of sql. Rewrite of most clusterfucks incoming
2016-08-15 13:37:03 +02:00
Howl
c3b56164f5
Change X-Ripple-Token cookie to simply "rt"
2016-08-10 12:25:26 +02:00
Howl
f1fa5e8b91
Allow to get a blog post's content by slug
2016-08-10 09:45:01 +02:00
Howl
af691bee1c
Change system for hanayo requests
2016-08-09 23:06:23 +02:00
Howl
4f217781cc
GET /tokens/self now returns 404 if no token is given
2016-08-09 19:22:41 +02:00
Howl
17fef6c654
Silently ignore time.ParseErrors
2016-08-09 19:15:53 +02:00
Nyo
38008a5451
Fix error on scores handlers
2016-07-20 10:49:29 +02:00
Howl
3a2928be53
hey nyo i may or may not have fixed beatmap difficulties
2016-07-18 23:27:37 +02:00
Howl
a999033e4b
Add X-Real-404 to true 404 responses
2016-07-12 19:55:58 +02:00
Howl
8544c41cc6
Requests from hanayo have no rate limiting
2016-07-12 15:49:02 +02:00
Howl
6926cda1ee
Fix banned response code, fix typo
2016-07-10 20:53:06 +02:00
Howl
ab8e1ad7e2
Log errors
2016-07-07 17:36:53 +02:00
Howl
921402b0ee
Add blog API
2016-07-07 00:20:36 +02:00
Howl
24933cc08f
Show countries of everyone, without checking show_country.
2016-07-06 23:43:43 +02:00
Howl
09523369b7
Use custom type UnixTimestamp instead of repeating boilerplate code over and over.
2016-07-06 22:32:30 +02:00
Howl
ff1d2fa1c3
.HIDE. shit
2016-07-06 19:36:46 +02:00
Howl
15559d0be2
use c.ClientIP() rather than manually accessing c.Request.RemoteAddr
2016-07-06 19:35:49 +02:00
Howl
45d0de234b
Fix race condition in specificRateLimiter
2016-07-06 19:24:11 +02:00
Howl
faf948b037
Implement rate limiting
...
- 60 requests per minute for requests without a valid API token
- 2000 requests per minute per user for requests with a valid API token
2016-07-06 16:33:58 +02:00
Howl
0a870ee742
Remove read privilege. Public data is now readable by everyone without having to pass an API token. Feel free to test around as much as you like!
2016-07-06 14:22:43 +02:00
Howl
534d5183ed
It's not rank, it's privileges
2016-07-06 14:12:57 +02:00
Howl
fcdd042d6c
Finish up with new ranks and stuff on the API
2016-07-04 00:06:23 +02:00
Nyo
39f6b2bbcf
New privileges on API (allowed column only)
2016-07-03 21:55:03 +02:00
Nyo
244186cf4e
Allow compilation of the API on Windows
2016-06-22 13:13:33 +02:00
Howl
7cbbb626c1
LEFT JOIN -> INNER JOIN
2016-06-18 02:42:47 +02:00
Howl
b3e31734f5
Release logging to sentry
2016-06-17 10:34:53 +02:00
Howl
427f2ff890
Remove errore_meme
2016-06-16 14:06:09 +02:00
Howl
02f0449b39
Stack traces are only useful for panics
2016-06-16 14:05:26 +02:00
Howl
6554447cbc
Use ID rather than IP, memes
2016-06-16 14:01:37 +02:00
Howl
ef9c0c6c6a
When erroring from c.Error(), give actual error, not a *gin.Error
2016-06-16 13:59:18 +02:00
Howl
9658957067
Better recovery
2016-06-16 13:49:35 +02:00
Howl
cbcfacb06a
Fix misplaced if
2016-06-16 13:14:19 +02:00
Howl
06eb64ecf5
error logging with schiavo -> error logging with sentry
2016-06-16 12:45:10 +02:00
Howl
24d34eb741
v1.TokenNewPOST => /tokens, /tokens/new
2016-06-15 00:23:55 +02:00
Howl
fc38503bdd
add GET /tokens/self
2016-06-14 12:01:30 +02:00
Howl
4d9ec829a8
Add token listing at GET /tokens, also add a token-fixing tool at /tokens/fix_privileges.
...
By the way, 100th commit on the API!
2016-06-14 11:32:11 +02:00
Howl
52d7b65493
Add /api/v1/tokens/self/delete
2016-06-14 10:03:53 +02:00
Howl
a9b82f99b5
Add global leaderboard
2016-06-14 09:37:11 +02:00
Howl
a65cf086f0
Add Documentation API
2016-06-13 22:40:01 +02:00
Howl
32738aaae0
Simplify string to int conversion where possible
2016-06-13 21:48:09 +02:00
Howl
2f027ce853
Remove Message from 404 response, to allow easy distinction between missing method and data not found
2016-06-13 21:47:35 +02:00
Howl
da6fcb83f7
Don't allow "weird" characters in jsonp callback
2016-06-13 21:17:43 +02:00
Howl
f32de541a4
Fix set_status 500 ing when beatmap is not found by ID
2016-06-09 10:52:55 +02:00
Howl
d87027c85a
always rank the whole mapset, not just a single diff
2016-06-09 00:29:00 +02:00
Howl
b1fc609706
Add BeatmapsRankedFrozenFullGET, an endpoint to get all beatmaps having a frozen ranked status
2016-06-08 23:33:08 +02:00
Howl
9b821e3230
Add /api/v1/beatmaps
2016-06-08 19:55:52 +02:00
Howl
155fbabbbc
Allow auth through cookie X-Ripple-Token
2016-06-08 18:55:48 +02:00
Howl
ee51b999f1
Allow passing a beatmap_id to BeatmapSetStatus
2016-06-08 18:30:23 +02:00
Howl
e27569261a
Update ban_datetime on allowed status change
2016-06-06 12:27:54 +02:00
Howl
122e2afa1b
Don't log message in get_user if it's an ErrNoRows
2016-05-30 19:18:31 +02:00
Howl
ba5a078db3
forgot allowed check
2016-05-29 13:09:36 +02:00
Howl
0c6237ed01
Use userid rather than username
2016-05-28 23:48:29 +02:00
Howl
fb08a80308
fixes
2016-05-28 20:31:46 +02:00
Howl
571325e98f
Send error logs asynchronously
2016-05-28 20:28:13 +02:00
Howl
6a374a4f9d
Implement get_user_best and get_user_recent in peppyapi
2016-05-28 20:24:39 +02:00
Howl
0fcb1cc391
diobono
2016-05-26 21:19:00 +02:00
Howl
fde01c6f84
Don't print 0pp scores on std on user/scores/best
2016-05-26 21:13:36 +02:00
Howl
d5caa1fdc2
Report errors in API to #bunker
2016-05-22 17:11:07 +02:00
Howl
a25512fb96
Add completed status in users/scores/*
2016-05-22 16:22:13 +02:00
Howl
ce739a8ae5
Implement users/scores/recent
2016-05-19 17:31:49 +02:00
Howl
da2a36537e
Implement user/scores/best
2016-05-19 17:15:17 +02:00
Howl
45c67cf9b7
Start implementing get_beatmaps
2016-05-18 18:37:36 +02:00
Howl
de2aeb338b
Revert "Fix normalisation not actually happening in users/full"
...
This reverts commit ef14f027b7
.
2016-05-18 18:00:39 +02:00
Howl
52e1fa09ca
Revert "Normalise floats (don't use Inf in JSON)"
...
This reverts commit 330757ec78
.
2016-05-18 18:00:22 +02:00
Howl
ef14f027b7
Fix normalisation not actually happening in users/full
2016-05-18 17:49:46 +02:00
Howl
330757ec78
Normalise floats (don't use Inf in JSON)
2016-05-18 17:48:19 +02:00
Howl
2afc557ef8
peppyapi: replicate behaviour of original API (check for user ID first, then for username)
2016-05-18 17:47:39 +02:00
Howl
5320c62e17
Be more permissive in UserLookupGET (wildcard both at start and at end of username)
2016-05-17 17:40:30 +02:00
Howl
c86bc1e420
Use precise level in /api/v1/users/full
2016-05-17 17:06:15 +02:00
Howl
a16c196799
Add level in /api/get_user
2016-05-17 17:00:09 +02:00
Howl
32b9d1e2d5
Escape backslashes in UserLookupGET
2016-05-17 15:35:18 +02:00
Howl
f7559e8cc5
Implement /api/get_match (will return empty array, match data is currently not stored in ripple)
2016-05-15 14:04:59 +02:00
Howl
e043dd9cdf
Remove useless println
2016-05-15 13:57:28 +02:00
Howl
d6f67915c5
Start implementing peppyapi; implement /api/get_user
2016-05-15 13:57:04 +02:00
Howl
a939d15779
Force private API keys to have Privileges write, read, read confidential
2016-05-15 07:20:11 +02:00
Howl
42437bde44
Add user lookup (search for user with only initial part of their username)
2016-05-14 22:43:47 +02:00
Howl
35fb27e3c1
Add PP in /users/full
2016-05-14 21:27:42 +02:00
Howl
3942f63446
use querystring in /friends methods. remove useless POST methods in /friends
2016-05-14 21:23:17 +02:00
Howl
9481de5e4e
Merge /badges/:id into /badges
2016-05-14 21:02:05 +02:00
Howl
4448fcdfdb
Update /users/userpage to use querystring parameters
2016-05-14 20:55:42 +02:00
Howl
5f97315d49
i memi
2016-05-14 20:31:28 +02:00
Howl
417409030a
Fix 500 on tokens/new
2016-05-14 20:18:29 +02:00
Howl
09582361a3
/users/full now using querystring. /users requests from now on will have an uniform system for getting the user (?id=self | ?id=1337 | ?name=Howl)
2016-05-14 19:51:33 +02:00
Howl
8114329d38
/users/whatid using querystring param name
2016-05-14 18:52:55 +02:00
Howl
3a199b8c41
Merge /users/id/:id and /users/name/:name into /users (with querystring params id and name)
2016-05-14 18:32:43 +02:00
Howl
1b1f2503a2
fuck nyo
2016-04-27 21:03:16 +02:00
Howl
8dbacc5ed9
add privilege beatmap to privileges.go
2016-04-27 20:25:53 +02:00
Howl
6936d7932f
OOOH RIGHT
2016-04-27 20:18:55 +02:00
Howl
b8c013c0ad
go get -u -v -d -xd
2016-04-27 20:17:59 +02:00
Howl
3782ed3c7c
beatmap ranking in API
2016-04-27 20:03:06 +02:00
Howl
32029d963e
We git.zxq.co now
2016-04-19 16:07:27 +02:00
Howl
7387ed4295
Completely change response structure
2016-04-16 18:05:24 +02:00
Howl
14d926e31d
Just testing ~
2016-04-12 22:53:56 +02:00
Howl
4bf5673bd0
Allow PrivilegeViewUserAdvanced owners to see all users' user IDs.
2016-04-12 22:21:39 +02:00
Howl
c4e03dc189
Yay banning people!
2016-04-12 21:41:08 +02:00
Howl
c108da9bb3
implement unmarshaling straight into MethodData
2016-04-12 21:23:02 +02:00
Howl
b29c64023f
Ooops, it was status
2016-04-10 23:18:56 +02:00
Howl
189a0cbb02
Add GET /api/status for Ripple's status page.
2016-04-10 23:14:44 +02:00
Howl
0418adc8c3
Add login rate limiting
2016-04-10 11:51:34 +02:00
Howl
c5863063f1
Everything is plural except for this, so yeah
2016-04-10 00:07:16 +02:00
Howl
0b7ca1a370
Well I guess I fucked up a bit o'er there
2016-04-10 00:03:05 +02:00
Howl
62969581bf
Badges are useless on most requests.
2016-04-09 23:58:27 +02:00
Howl
98c8206946
Fix default message when there's no API key pointing to wrong method
2016-04-09 23:53:49 +02:00
Howl
98137678eb
Remove useless stuff from privileges
2016-04-09 23:50:52 +02:00
Howl
f0e444cdea
Auto-update. Or at least, so it should do.
2016-04-09 20:31:50 +02:00
Howl
92d308879b
Add /meta/{up_since,kill}
2016-04-09 18:14:38 +02:00
Howl
c016796303
Friend deletion
2016-04-08 19:23:52 +02:00
Howl
44d12d2493
Ability to add friends. Also, made a few helper functions.
2016-04-08 19:05:54 +02:00
Howl
7b82c98352
Don't be a Nyo
2016-04-08 18:18:42 +02:00
Howl
0d1a298065
Implement JSONP, also save a few bytes by using tabs in indent
2016-04-08 18:06:26 +02:00
Howl
e3cb4aed09
perhaps a memory/performance improvement? by not recreating the same function over and over? maybe.
2016-04-08 17:27:55 +02:00
Howl
ed2778e2cc
Graceful restart!
2016-04-07 19:32:48 +02:00
Howl
8d99ff1070
add a method for retrieving an user's userpage.
2016-04-07 14:42:17 +02:00
Howl
fb3d2e88dd
Full user data retrieval!
2016-04-07 13:47:42 +02:00
Howl
ea2d418a53
more LIMIT 1
s
2016-04-07 12:43:39 +02:00
Howl
aae4c5de50
Add GET /friends/with/:id
2016-04-07 12:21:54 +02:00
Howl
cf3b30d851
Add /users/whatid/:username
2016-04-07 11:59:38 +02:00
Howl
d84aafebb7
Top forgetting to add r.Code = and r.Message =
2016-04-07 11:44:46 +02:00
Howl
ae743cb395
Add error handler middleware
2016-04-07 11:38:57 +02:00
Howl
af71442e79
Add basic friend logic
2016-04-07 11:20:35 +02:00
Howl
b484fe2761
Add API handler for /users/self
2016-04-05 22:38:33 +02:00
Howl
d02f3f9951
Add token creation (login)
2016-04-05 22:22:13 +02:00
Howl
b3b4dde8f2
Use resp.Code as the HTTP response code, unless the client has specifield they want 200-codes only.
2016-04-04 16:47:15 +02:00
Howl
851c90764a
Standardise function names (Ping -> PingGET, SurpriseMe -> SurpriseMeGET)
2016-04-04 14:36:37 +02:00