Merge branch 'master' of https://github.com/ajayyy/SponsorBlockServer into experimental

This commit is contained in:
Ajay Ramachandran 2019-12-28 11:50:03 -05:00
commit 1b4c38d82b

301
README.MD
View file

@ -28,303 +28,4 @@ Run the server with `npm start`.
# API Docs
Public API available at https://sponsor.ajay.app.
________________________________________________________________________________
**GET** `/api/getVideoSponsorTimes`
**Input**:
```
{
videoID: string
}
```
**Response**:
```
{
sponorTimes: array [float],
UUIDs: array [string] //The ID for this sponsor time, used to submit votes
}
```
**Error codes**:
404: Not Found
__________________________________________________________________
**GET** `/api/postVideoSponsorTimes`
**Input**:
```
{
videoID: string,
startTime: float,
endTime: float,
userID: string //This should be a randomly generated UUID
}
```
**Response**:
```
{
Nothing (status code 200)
}
```
**Error codes**:
400: Bad Request (Your inputs are wrong/impossible)
429: Rate Limit (Too many for the same user or IP)
409: Duplicate
__________________________________________________________________
**GET** `/api/voteOnSponsorTime`
**Input**:
```
{
UUID: string, //id of the sponsor being voted on
userID: string,
type: int //0 for downvote, 1 for upvote
}
```
**Response**:
```
{
Nothing (status code 200)
}
```
**Error codes**:
400: Bad Request (Your inputs are wrong/impossible)
405: Duplicate
__________________________________________________________________
**GET** `/api/viewedVideoSponsorTime`
**Input**:
```
{
UUID: string
}
```
**Response**:
```
{
Nothing (status code 200)
}
```
**Error codes**:
400: Bad Request (Your inputs are wrong/impossible)
__________________________________________________________________
**GET** `/api/getViewsForUser`
**Input**:
```
{
userID: string
}
```
**Response**:
```
{
viewCount: int
}
```
**Error codes**:
404: Not Found
__________________________________________________________________
**POST** `/api/setUsername`
**Input**:
```
{
userID: string,
userName: string,
//optional
adminUserID: string //This is if you want to change someone elses username from the admin account
}
```
**Response**:
```
{
Nothing (status code 200)
}
```
**Error codes**:
400: Bad Request (Your inputs are wrong/impossible)
__________________________________________________________________
**GET** `/api/getUsername`
**Input**:
```
{
userID: string
}
```
**Response**:
```
{
userName: string //will send back hashed userID if no username has been set
}
```
**Error codes**:
400: Bad Request (Your inputs are wrong/impossible)
__________________________________________________________________
### Stats Calls
**GET** `/api/getTopUsers`
**Input**:
```
{
sortType: int //0 for by minutes saved, 1 for by view count, 2 for by total submissions
}
```
**Response**:
```
{
userNames: array [string],
viewCounts: array [int],
totalSubmissions: array [int],
minutesSaved: array [float]
}
```
**Error codes**:
400: Bad Request (Your inputs are wrong/impossible)
__________________________________________________________________
**GET** `/api/getTotalStats`
**Input**:
```
{
Nothing
}
```
**Response**:
```
{
userCount: int,
viewCount: int,
totalSubmissions: int,
minutesSaved: float
}
```
**Error codes**:
None
__________________________________________________________________
**GET** `/api/getDaysSavedFormatted`
**Input**:
```
{
Nothing
}
```
**Response**:
```
{
daysSaved: float (2 decimal places)
}
```
**Error codes**:
None
__________________________________________________________________
### Admin Calls
These can only be called by the server administrator, set in the config.
**POST** `/api/shadowBanUser`
Shadow banned submissions are hidden for everyone but the IP that originally submitted it. Shadow banning a user shadow bans all future submissions.
**Input**:
```
{
userID: string, //public userID of the user you want to shadowBan
adminUserID: string, //your userID as an admin
enabled: boolean, //optional, to be able to add and remove users
unHideOldSubmissions: boolean //optional, should all previous submissions be banned as well?
}
```
**Response**:
```
{
Nothing (status code 200)
}
```
**Error codes**:
400: Bad Request (Your inputs are wrong/impossible)
403: Unauthorized (You are not an admin)
__________________________________________________________________
**POST** `/api/addUserAsVIP`
VIPs have extra privileges and their votes count more.
**Input**:
```
{
userID: string, //public userID of the user you want to add to the VIP list
adminUserID: string, //your userID as an admin
enabled: boolean //optional, to be able to add and remove users
}
```
**Response**:
```
{
Nothing (status code 200)
}
```
**Error codes**:
400: Bad Request (Your inputs are wrong/impossible)
403: Unauthorized (You are not an admin)
Available [here](https://github.com/ajayyy/SponsorBlock/wiki/API-Docs)