diff --git a/.gitattributes b/.gitattributes
deleted file mode 100644
index a52bd18..0000000
--- a/.gitattributes
+++ /dev/null
@@ -1 +0,0 @@
-*.* text eol=lf
\ No newline at end of file
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
deleted file mode 100644
index 1048677..0000000
--- a/.github/workflows/main.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-name: Build and Deploy
-on:
- push:
- branches:
- - source
-
-jobs:
- build-and-deploy:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout 🛎️
- uses: actions/checkout@v2
- with:
- persist-credentials: false
-
- - name: Setup 🔧
- uses: actions/setup-node@v1.4.4
- - name: Install ♻
- run: npm install -g hercule
- - name: Build 🏗
- run: mkdir dist && hercule devrant.apib -o ./dist/apiary.apib
- - name: Deploy 🚀
- uses: JamesIves/github-pages-deploy-action@3.5.3
- with:
- ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }}
- BRANCH: master
- FOLDER: dist
- GIT_CONFIG_NAME: SkayoBot
- GIT_CONFIG_EMAIL: frederike.gnampf@gmail.com
diff --git a/README.md b/README.md
deleted file mode 100644
index dee8fc7..0000000
--- a/README.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# devRant API Docs
-
-
-
-The unofficial devRant API documentation
-
-[OPEN DOCUMENTATION](https://devrantapi.docs.apiary.io)
-
-### Feel free to contribute!
diff --git a/apiary.apib b/apiary.apib
new file mode 100644
index 0000000..f675c12
--- /dev/null
+++ b/apiary.apib
@@ -0,0 +1,1085 @@
+FORMAT: 1A
+HOST: https://devrant.com/api
+
+# devRant API
+Welcome to the unofficial devRant API Documentation!
+Here you will find documentation for all known endpoints
+
+**Note:**
+All *POST* requests are done with header application/x-form-urlencoded, API blueprint does not support *POST* request documentation yet
+
+***POST requests will not work in playground***
+
+Documentation was written by [@Skayo](https://github.com/Skayo) and [@frogstair](https://github.com/frogstair)
+
+Find an awesome-list [here](https://github.com/devRant-Community/awesome-devrant)
+
+
+# Rants [/devrant/rants]
+
+## Get rant feed [GET /devrant/rants{?app,limit,sort,range,skip,token_id,token_key,user_id}]
+If provided with keys it will get rants tailored to user
+
++ Parameters
+ + app: 3 (required, number) - App ID parameter
+ + sort: `top` (optional, enum[string])
+ Sort rants
+ + Members
+ + `algo`
+ + `top`
+ + `recent`
+ + range: `all` (optional, enum[string])
+ Time range of the rants to load
+ + Members
+ + `day`
+ + `week`
+ + `month`
+ + `all`
+ + limit: 20 (optional, number) - Limit the amount of rants to load. Used for pagination/infinite scroll. Maximum is 50, if more defaults to 20
+ + skip: 0 (optional, number) - How many rants to skip before loading. Used for pagination/infinite scroll
+ + token_id (optional, number) - Token ID of the user. Used for authentication
+ + token_key (optional, string) - Token key of the user. Used for authentication
+ + user_id (optional, number) - ID of the user on whose behalf the action is done. Used for authentication
+
++ Response 200 (application/json)
+ + Attributes (RantFeed)
+
+ + Body
+ ```js
+ {
+ "success": true,
+ "rants": [
+ {
+ "id": 20123,
+ "text": "Bla bla some long rant text with emojis and \n's",
+ "score": 123,
+ "created_time": 1518160633, // When the rant was created
+ "attached_image": { // Empty string if there is no image
+ "url": "https://img.devrant.com/devrant/rant/imageName.jpg",
+ "width": 753,
+ "height": 546
+ },
+ "num_comments": 12,
+ "tags": [
+ "some-tag"
+ ],
+ "vote_state": 0, // 1=upvoted, -1=downvoted, 0=unvoted, -2=no vote allowed
+ "edited": false,
+ "rt": 1, // No clue what this is
+ "rc": 1, // No clue what this is
+ "user_id": 12301,
+ "user_username": "User1",
+ "user_score": 1234,
+ "user_avatar": {
+ "b": "2a8b9d", // Avatar background color
+ "i": "v-18_c-3_b-4_g-m_9-1_1-2_16-3_3-3_8-3_7-3_5-4_12-2_6-7_10-9_2-48_15-11_18-4_4-4_19-3_20-14.jpg" // Avatar filename
+ },
+ "user_avatar_lg": {
+ "b": "2a8b9d", // Avatar background color
+ "i": "v-18_c-1_b-4_g-m_9-1_1-2_16-3_3-3_8-3_7-3_5-4_12-2_6-7_10-9_2-48_15-11_18-4_4-4_19-3_20-14.png" // Avatar filename
+ },
+ "user_dpp": 1 // 1 if user is devRant++, 0 if not devRant++
+ },
+ // ...
+ ],
+ "settings": { // Empty array when not authenticated
+ "notif_state": "1", // If notifications are available
+ "notif_token": ""
+ },
+ "set": "5ee254ee76f3e", // Session hash
+ "wrw": 212, // Weekly-Rant Week
+ "dpp": 0, // 1 if devRant++, 0 if not devRant++, not set when not authenticated
+ "num_notifs": 2, // Not set when not authenticated
+ "unread": { // Not set when not authenticated
+ "total": 2 // Same as "num_notifs"
+ },
+ "news": {
+ "id": 321,
+ "type": "intlink", // Internal Link (intlink) most of the time, not sure what other values are possible
+ "headline": "Weekly Group Rant",
+ "body": "Story of screenshare gone wrong?",
+ "footer": "Add tag 'wk212' to your rant",
+ "height": 100,
+ "action": "grouprant" // What to do when clicked, "grouprant" means go to group rants section, not sure what other values are possible (I'm guessing there's "rant")
+ }
+ }
+ ```
+
+## Get a single rant [GET /devrant/rants/{id}{?app}]
+
++ Parameters
+ + id (required, number) - ID of the rant
+ + app: 3 (required, number) - App ID parameter
+
++ Response 200 (application/json)
+ + Attributes (object)
+ + rant (Rant)
+ + comments (array[Comment])
+ + success: `true` (boolean)
+
+ + Body
+ ```js
+ {
+ "rant": {
+ "id": 10123,
+ "text": "Bla bla fuck everything",
+ "score": 12,
+ "created_time": 1517755150,
+ "attached_image": { // Empty string if there is no image
+ "url": "https://img.devrant.com/devrant/rant/imageName.jpg",
+ "width": 753,
+ "height": 546
+ },
+ "num_comments": 8,
+ "tags": [
+ "some-tag"
+ ],
+ "vote_state": 0, // 1=upvoted, -1=downvoted, 0=unvoted, -2=no vote allowed
+ "edited": true,
+ "link": "rants/10123/some-strange-text-for-seo",
+ "rt": 1, // No clue what this is
+ "rc": 7, // No clue what this is
+ "links": [
+ {
+ "type": "url",
+ "url": "https://github.com/User1/SomeRepo",
+ "short_url": "https://github.com/User...",
+ "title": "https://github.com/User...",
+ "start": 278, // Starting position of the link
+ "end": 313, // Ending position of the link
+ "special": 1 // No clue what this is
+ }
+ ],
+ "special": true, // No clue what this is
+ "user_id": 12301,
+ "user_username": "User1",
+ "user_score": 1234,
+ "user_avatar": {
+ "b": "69c9cd",
+ "i": "v-18_c-3_b-6_g-m_9-1_1-3_16-8_3-11_8-4_7-4_5-2_12-3_6-12_10-4_2-18_18-4_4-2_19-3_21-2.jpg"
+ },
+ "user_avatar_lg": {
+ "b": "69c9cd",
+ "i": "v-18_c-1_b-6_g-m_9-1_1-3_16-8_3-11_8-4_7-4_5-2_12-3_6-12_10-4_2-18_18-4_4-2_19-3_21-2.png"
+ },
+ "user_dpp": 1 // Bool indicator if the user is a devRant++ Member or not
+ },
+ "comments": [
+ {
+ "id": 2639015,
+ "rant_id": 10123,
+ "body": "This rant sucks!",
+ "score": -100,
+ "created_time": 1591901533,
+ "vote_state": 0,
+ "user_id": 5125,
+ "user_username": "User2",
+ "user_score": 10000,
+ "user_avatar": {
+ "b": "69c9cd",
+ "i": "v-37_c-3_b-6_g-m_9-1_1-6_16-4_3-13_8-1_7-1_5-1_12-6_17-2_6-2_10-5_2-26_22-2_15-10_11-3_18-2_19-1_4-1.jpg"
+ }
+ }
+ // ....
+ ],
+ "success": true
+ }
+ ```
+
+## Get a random rant [GET /devrant/rants/surprise{?app}]
+
++ Parameters
+ + app: 3 (required, number) - App ID parameter
+
++ Response 200 (application/json)
+ + Attributes (object)
+ + success: true (boolean)
+ + rant (Rant)
+
+ + Body
+ ```js
+ {
+ "success": true,
+ "rant": {
+ "id": 20123,
+ "text": "Such random. Much wow",
+ "score": 13,
+ "created_time": 1517755155,
+ "attached_image": { // Empty string if there is no image
+ "url": "https://img.devrant.com/devrant/rant/imageName.jpg",
+ "width": 753,
+ "height": 546
+ },
+ "num_comments": 8,
+ "tags": [
+ "some-tag"
+ ],
+ "vote_state": 0, // 1=upvoted, -1=downvoted, 0=unvoted, -2=no vote allowed
+ "edited": true,
+ "rt": 1, // No clue what this is
+ "rc": 7, // No clue what this is
+ "links": [
+ {
+ "type": "url",
+ "url": "https://github.com/User1/SomeRepo",
+ "short_url": "https://github.com/User...",
+ "title": "https://github.com/User...",
+ "start": 278, // Starting position of the link
+ "end": 313, // Ending position of the link
+ "special": 1 // No clue what this is
+ }
+ ],
+ "special": true, // No clue what this is
+ "user_id": 12302,
+ "user_username": "User2",
+ "user_score": 123,
+ "user_avatar": {
+ "b": "69c9cd",
+ "i": "v-18_c-3_b-6_g-m_9-1_1-3_16-8_3-11_8-4_7-4_5-2_12-3_6-12_10-4_2-18_18-4_4-2_19-3_21-2.jpg"
+ },
+ "user_avatar_lg": {
+ "b": "69c9cd",
+ "i": "v-18_c-1_b-6_g-m_9-1_1-3_16-8_3-11_8-4_7-4_5-2_12-3_6-12_10-4_2-18_18-4_4-2_19-3_21-2.png"
+ },
+ "user_dpp": 1 // Bool indicator if the user is a devRant++ Member or not
+ }
+ }
+ ```
+
+## Get list of stories [GET /devrant/story-rants{?app,limit,sort,range,skip,token_id,token_key,user_id}]
+
++ Parameters
+ + app: 3 (required, number) - App ID parameter
+ + sort: `top` (optional, enum[string])
+ Sort rants
+ + Members
+ + `algo`
+ + `top`
+ + `recent`
+ + range: `all` (optional, enum[string])
+ Time range of the rants to load
+ + Members
+ + `day`
+ + `week`
+ + `month`
+ + `all`
+ + limit: 20 (optional, number) - Limit the amount of rants to load. Used for pagination/infinite scroll. Maximum is 50, if more defaults to 20
+ + skip: 0 (optional, number) - How many rants to skip before loading. Used for pagination/infinite scroll
+
++ Response 200 (application/json)
+ + Attributes (RantFeed)
+
+ + Body
+ ```js
+ {
+ "success": true,
+ "rants": [
+ {
+ "id": 40123,
+ "text": "Bla bla I hate my life, but this is a very long rant fuck yeah!",
+ "score": 123,
+ "created_time": 1518160633, // When the rant was created
+ "attached_image": { // Empty string if there is no image
+ "url": "https://img.devrant.com/devrant/rant/imageName.jpg",
+ "width": 753,
+ "height": 546
+ },
+ "num_comments": 12,
+ "tags": [
+ "some-tag"
+ ],
+ "vote_state": 0, // 1=upvoted, -1=downvoted, 0=unvoted, -2=no vote allowed
+ "edited": false,
+ "rt": 1, // No clue what this is
+ "rc": 1, // No clue what this is
+ "user_id": 12301,
+ "user_username": "User1",
+ "user_score": 1234,
+ "user_avatar": {
+ "b": "2a8b9d",
+ "i": "v-18_c-3_b-4_g-m_9-1_1-2_16-3_3-3_8-3_7-3_5-4_12-2_6-7_10-9_2-48_15-11_18-4_4-4_19-3_20-14.jpg"
+ },
+ "user_avatar_lg": {
+ "b": "2a8b9d",
+ "i": "v-18_c-1_b-4_g-m_9-1_1-2_16-3_3-3_8-3_7-3_5-4_12-2_6-7_10-9_2-48_15-11_18-4_4-4_19-3_20-14.png"
+ },
+ "user_dpp": 1 // Bool indicator if the user is a devRant++ Member or not
+ }
+ ]
+ }
+ ```
+
+## Get list of collabs [GET /devrant/collabs{?app,limit,sort,range,skip}]
+
++ Parameters
+ + app: 3 (required, number) - App ID parameter
+ + sort: `top` (optional, enum[string])
+ Sort rants
+ + Members
+ + `algo`
+ + `top`
+ + `recent`
+ + range: `all` (optional, enum[string])
+ Time range of the rants to load
+ + Members
+ + `day`
+ + `week`
+ + `month`
+ + `all`
+ + limit: 20 (optional, number) - Limit the amount of rants to load. Used for pagination/infinite scroll. Maximum is 50, if more defaults to 20
+ + skip: 0 (optional, number) - How many rants to skip before loading. Used for pagination/infinite scroll
+
++ Response 200 (application/json)
+ + Attributes (object)
+ + success: true (boolean)
+ + rants (array[RantInFeed])
+
+ + Body
+ ```js
+ {
+ "success": true,
+ "rants": [
+ {
+ "id": 12311,
+ "text": "devRant-Docs Page [more details]",
+ "score": 1234567,
+ "created_time": 1519068050,
+ "attached_image": { // Empty string if there is no image
+ "url": "https://img.devrant.com/devrant/rant/imageName.jpg",
+ "width": 753,
+ "height": 546
+ },
+ "num_comments": 123,
+ "tags": [
+ "some-tag"
+ ],
+ "vote_state": 0, // As far as I know: 1=upvoted, -1=downvoted, 0=unvoted, -2=no vote
+ "edited": false,
+ "link": "collabs/12311/some-strange-text-for-seo",
+ "rt": 2, // No clue what this is
+ "rc": 2, // No clue what this is
+ "c_type": 2, // 1 = Open source idea, 2 = Existing open source project, 3 = Project idea, 4 = Existing project
+ "c_type_long": "Existing open source project", // Collab type as string (see above)
+ "user_id": 12301,
+ "user_username": "User1",
+ "user_score": 1234568,
+ "user_avatar": {
+ "b": "69c9cd",
+ "i": "v-18_c-3_b-6_g-m_9-1_1-3_16-8_3-11_8-4_7-4_5-2_12-3_6-12_10-4_2-18_18-4_4-2_19-3_21-2.jpg"
+ },
+ "user_avatar_lg": {
+ "b": "69c9cd",
+ "i": "v-18_c-1_b-6_g-m_9-1_1-3_16-8_3-11_8-4_7-4_5-2_12-3_6-12_10-4_2-18_18-4_4-2_19-3_21-2.png"
+ },
+ "user_dpp": 1 // Bool indicator if the user is a devRant++ Member or not
+ }
+ ]
+ }
+ ```
+
+# Authentication and user [/users/]
+
+## Get access keys [POST /users/auth-token{?app,username,password}]
+
++ Parameters
+ + app: 3 (required, number) - App ID parameter
+ + username (required, string) - Username to login with
+ + password (required, string) - Password to login with
+
++ Request (application/x-form-urlencoded)
+
++ Response 200 (application/json)
+ + Attributes (object)
+ + success: `true` (boolean)
+ + auth_token (object)
+ + id: 6712386 (number)
+ + key: `tD5qeCHb6qvvfU4dLpFEWPL7YDNjA4hz7caGLW7M` (string)
+ + expire_time: 6712386 (number)
+ + user_id: 1085040 (number)
+
+ + Body
+ ```js
+ {
+ "success": true,
+ "auth_token": {
+ "id": 6712386,
+ "key": "tD5qeCHb6qvvfU4dLpFEWPL7YDNjA4hz7caGLW7M",
+ "expire_time": 6712386,
+ "user_id": 1085040
+ }
+ }
+ ```
+
++ Response 400 (application/json)
+ + Attributes (object)
+ + success: `true` (boolean)
+ + error: `Invalid login credentials entered. Please try again.` (string)
+
+ + Body
+ ```js
+ {
+ "success": false,
+ "error": "Invalid login credentials entered. Please try again."
+ }
+ ```
+
+## Get user information [GET /users/{id}{?app,skip,content}]
+
++ Parameters
+ + id (required, number) - User ID
+ + app: 3 (required, number) - App ID parameter
+ + skip: 0 (optional, number) - Amount of content to skip
+ + content: `all` (optional, enum[string])
+ Which type of content to load
+ + Members
+ + `all`
+ + `rants`
+ + `upvoted`
+ + `comments`
+ + `favorites`
+ + `collabs`
+
++ Response 200 (application/json)
+ + Attributes (object)
+ + success: true (boolean)
+ + profile (Profile)
+
+ + Body
+ ```js
+ {
+ "success": true,
+ "profile": {
+ "username": "User1",
+ "score": 1234,
+ "about": "Bla bla I'm a dev.",
+ "location": "Idk",
+ "created_time": 1514824661, // Time the user joined devRant
+ "skills": "No skills :/",
+ "github": "User1",
+ "website": "www.user1.com",
+ "content": {
+ "content": {
+ "rants": [
+ // Rants ...
+ ],
+ "upvoted": [
+ // Upvoted Rants...
+ ],
+ "comments": [
+ // Comments...
+ ],
+ "favorites": [
+ // Favorited Rants...
+ ]
+ },
+ "counts": {
+ "rants": 12,
+ "upvoted": 123,
+ "comments": 12,
+ "favorites": 1,
+ "collabs": 2
+ }
+ },
+ "avatar": {
+ "b": "2a8b9d",
+ "i": "v-18_c-1_b-4_g-m_9-1_1-1_16-7_3-1_8-1_7-1_5-1_12-1_6-16_10-6_2-27_11-3_18-2_4-1_19-1.png"
+ },
+ "avatar_sm": {
+ "b": "2a8b9d",
+ "i": "v-18_c-3_b-4_g-m_9-1_1-1_16-7_3-1_8-1_7-1_5-1_12-1_6-16_10-6_2-27_11-3_18-2_4-1_19-1.jpg"
+ },
+ "dpp": 0 // Bool indicator if the user is a devRant++ Member or not
+ }
+ }
+ ```
+
+## Get user ID [GET /get-user-id{?app,username}]
+
++ Parameters
+ + app: 3 (required, number) - App ID parameter
+ + username (required, string) - User username
+
++ Response 200 (application/json)
+ + Attributes (object)
+ + success: true (boolean)
+ + user_id: 12301 (number)
+
+ + Body
+ ```js
+ {
+ "success": true,
+ "user_id": 12301
+ }
+ ```
+
+## Get list of supporters [GET /devrant/supporters{?app}]
+
++ Parameters
+ + app: 3 (required, number) - App ID parameter
+
++ Response 200 (application/json)
+ + Attributes (object)
+ + items (array)
+ + (object)
+ + user (object)
+ + id: 12301 (number)
+ + name: `User1`
+ + avatar (object)
+ + b: `2a8b9d` (string) - Avatar background color
+ + i: `v-18_c-1_b-4_g-m_9-1_1-1_16-7_3-1_8-1_7-1_5-1_12-1_6-16_10-6_2-27_11-3_18-2_4-1_19-1.png` (string) - Avatar file name
+ + start: 1496914102 (number) - Timestamp when the user joined devRant++
+
+ + Body
+ ```js
+ {
+ "items": [
+ {
+ "user": {
+ "id": 12301,
+ "name": "User1",
+ "avatar": {
+ "b": "2a8b9d",
+ "i": "v-18_c-3_b-4_g-m_9-1_1-1_16-6_3-1_8-1_7-1_5-1_12-1_6-4_10-1_2-10_4-1.jpg"
+ }
+ },
+ "start": 1496914102 // Time since the user is a member
+ },
+ {
+ "user": {
+ "id": 12302,
+ "name": "User2",
+ "avatar": {
+ "b": "d55161",
+ "i": "v-18_c-3_b-5_g-m_9-1_1-2_16-6_3-2_8-2_7-2_5-4_12-2_6-3_2-76_11-4_18-4_4-4_19-3_20-10_21-1.jpg"
+ }
+ },
+ "start": 1496924123 // Time since the user is a member
+ },
+ // ...
+ ]
+ }
+ ```
+
+# Search [/devrant/search]
+
+## Search rants [GET /devrant/search{?app,term}]
+
++ Parameters
+ + app: 3 (required, number) - App ID parameter
+ + term: `find me this` (required, string) - Search term
+
++ Response 200 (application/json)
+ + Attributes (object)
+ + success: true (boolean)
+ + results (array[RantInFeed])
+
+ + Body
+ ```js
+ {
+ "success": true,
+ "results": [
+ {
+ "id": 30123,
+ "text": "Find me this thing on google please",
+ "score": 123,
+ "created_time": 1487173080, // When the rant was created
+ "attached_image": { // Empty string if there is no image
+ "url": "https://img.devrant.com/devrant/rant/imageName.jpg",
+ "width": 753,
+ "height": 546
+ },
+ "num_comments": 12,
+ "tags": [
+ "fuck",
+ "penis"
+ ],
+ "vote_state": 0, // As far as I know: 1=upvoted, -1=downvoted, 0=unvoted, -2=no vote
+ "edited": true,
+ "rt": 1, // No clue what this is
+ "rc": 1, // No clue what this is
+ "user_id": 12301,
+ "user_username": "User1",
+ "user_score": 1234,
+ "user_avatar": {
+ "b": "69c9cd",
+ "i": "v-18_c-3_b-6_g-m_9-1_1-2_16-10_3-11_8-1_7-1_5-4_12-2_6-11_10-5_2-14_18-1_4-4_19-2_20-9.jpg"
+ },
+ "user_avatar_lg": {
+ "b": "69c9cd",
+ "i": "v-18_c-1_b-6_g-m_9-1_1-2_16-10_3-11_8-1_7-1_5-4_12-2_6-11_10-5_2-14_18-1_4-4_19-2_20-9.png"
+ },
+ // ...
+ }
+ ]
+ }
+ ```
+
+## Get list of most used tags [GET /devrant/search/tags{?app}]
+
++ Parameters
+ + app: 3 (required, number) - App ID parameter
+
++ Response 200 (application/json)
+ + Attributes (object)
+ + success: true (boolean)
+ + tags (array[string])
+
+ + Body
+ ```js
+ {
+ "success":true,
+ "tags":[
+ "rant",
+ "linux",
+ "devrant",
+ "java",
+ "javascript",
+ "windows",
+ "android",
+ "js",
+ "fml",
+ "programming",
+ "php",
+ "python",
+ "code",
+ "git",
+ "joke",
+ "wtf",
+ "google",
+ "github",
+ "css",
+ "funny"
+ ]
+ }
+ ```
+
+# Weeklys [/devrant/]
+
+## Get weekly list [GET /devrant/weekly-list{?app}]
+
++ Parameters
+ + app: 3 (required, number) - App ID parameter
+
++ Response 200 (application/json)
+ + Attributes (object)
+ + success: true (boolean)
+ + weeks (array)
+ + (object)
+ + week: 212 (number)
+ + prompt: `Story of screenshare gone wrong?` (string)
+ + date: `6/8/20` (string) - Date in format "d/m/yy"
+ + num_rants: 16 (number)
+
+ + Body
+ ```js
+ {
+ "success":true,
+ "weeks":[
+ {
+ "week":212,
+ "prompt":"Story of screenshare gone wrong?",
+ "date":"6\/8\/20",
+ "num_rants":16
+ },
+ {
+ "week":211,
+ "prompt":"How you'll know you \"made it\" as a dev?",
+ "date":"6\/1\/20",
+ "num_rants":34
+ }
+ ]
+ }
+ ```
+
+## Get weekly list rants [GET /devrant/weekly-rants{?app,week,sort,limit,skip}]
+
++ Parameters
+ + app: 3 (required, number) - App ID parameter
+ + sort: `top` (optional, enum[string])
+ Sort rants
+ + Members
+ + `algo`
+ + `top`
+ + `recent`
+ + limit: 20 (optional, number) - Limit the amount of rants to load. Used for pagination/infinite scroll. Maximum is 50, if more defaults to 20
+ + skip: 0 (optional, number) - How many rants to skip before loading. Used for pagination/infinite scroll
+
++ Response 200 (application/json)
+ + Attribute (RantFeed)
+
+ + Body
+ ```js
+ {
+ "success": true,
+ "rants": [
+ {
+ "id": 30123,
+ "text": "Got rejected because of dickpick. Oops.",
+ "score": 123,
+ "created_time": 1518160644, // When the rant was created
+ "attached_image": { // Empty string if there is no image
+ "url": "https://img.devrant.com/devrant/rant/imageName.jpg",
+ "width": 753,
+ "height": 546
+ },
+ "num_comments": 12,
+ "tags": [
+ "wk90"
+ ],
+ "vote_state": 0, // As far as I know: 1=upvoted, -1=downvoted, 0=unvoted, -2=no vote
+ "edited": false,
+ "rt": 1, // No clue what this is
+ "rc": 1, // No clue what this is
+ "user_id": 12301,
+ "user_username": "User1",
+ "user_score": 1234,
+ "user_avatar": {
+ "b": "2a8b9d",
+ "i": "v-18_c-3_b-4_g-m_9-1_1-2_16-3_3-3_8-3_7-3_5-4_12-2_6-7_10-9_2-48_15-11_18-4_4-4_19-3_20-14.jpg"
+ },
+ "user_avatar_lg": {
+ "b": "2a8b9d",
+ "i": "v-18_c-1_b-4_g-m_9-1_1-2_16-3_3-3_8-3_7-3_5-4_12-2_6-7_10-9_2-48_15-11_18-4_4-4_19-3_20-14.png"
+ },
+ "user_dpp": 1 // Bool indicator if the user is a devRant++ Member or not
+ }
+ ],
+ "settings": [], // Not sure what this contains
+ "wrw": 90, // Weekly-Rant Week
+ "news": {
+ "id": 123,
+ "type": "weekly", // Not sure (Maybe if it's an announcement rant or the weekly rant topic)
+ "headline": "Worst interview rejection?",
+ "footer": "Week 90 Group Rant - Add tag 'wk90' to your rant",
+ "height": 65,
+ "action": "none" // Not sure (What to do when clicked)
+ }
+ }
+ ```
+
+# User interaction [/devrant]
+
+## Get user notifications [GET /users/me/notif-feed{?app,token_id,token_key,user_id}]
+
++ Parameters
+ + app: 3 (required, number) - App ID parameter
+ + token_id (required, number) - Token ID of the user. Used for authentication
+ + token_key (required, string) - Token key of the user. Used for authentication
+ + user_id (required, number) - ID of the user on whose behalf the action is done. Used for authentication
+
++ Response 200 (application/json)
+ + Attributes (object)
+ + success: true (boolean)
+ + data (object)
+ + items (array) - 100 items in total
+ + (object)
+ + created_time: 1591546309 (number)
+ + type: `content_vote` (enum[string])
+ Type of notif
+ + Members
+ + `comment_vote`
+ + `comment_content`
+ + `comment_mention`
+ + `comment_discuss`
+ + `content_vote`
+ + `rant_sub`
+ + read: 0 (number) - 0 = unread, 1 = read
+ + rant_id: 2619313 (number)
+ + uid: 2451362 (number) - ID of the user that "fired" the notif
+ + check_time: 1591546309 (number)
+ + username_map (object) - Object with key-value pairs where key is notif ID and value is username
+ + unread (object)
+ + all: 1 (number)
+ + upvotes: 1 (number)
+ + mentions: 0 (number)
+ + comments: 0 (number)
+ + subs: 0 (number)
+ + total: 1 (number) - Same as all
+
+ + Body
+ ```js
+ {
+ "success": true
+ "data": {
+ "items": [
+ {
+ "created_time":1591546309,
+ "type":"content_vote", //Type of ++ (form x_y where x is content/comment and y is vote/discuss)
+ "read":0, //0 = unread, 1 = read
+ "rant_id":2619313,
+ "uid":2451362,
+ },
+ //There is going to be 100 total
+ ]
+ "check_time":1591546309
+ "username_map": {
+ "2451362":'"frogstair", // "notif id": "username"
+ // ...
+ },
+ "unread": {
+ "all": 1,
+ "upvotes": 1,
+ "mentions": 0,
+ "comments": 0,
+ "subs": 0,
+ "total": 1 //Same as all
+ }
+ }
+ }
+ ```
+
+## Post a rant [POST /devrant/rants{?app,rant,type,token_id,token_key,user_id}]
+
++ Parameters
+ + app: 3 (required, number) - App ID Parameters
+ + rant: `Bla bla bla fuck my life` (required, string) - Text in the rant
+ + type: 3 (required, enum[number])
+ Type of rant
+ + Members
+ + 1 - Rant
+ + 2 - Undefined
+ + 3 - Joke/Meme
+ + 4 - Question
+ + 5 - devRant
+ + 6 - Random
+ + token_id (required, number) - Token ID of the user. Used for authentication
+ + token_key (required, string) - Token key of the user. Used for authentication
+ + user_id (required, number) - ID of the user on whose behalf the action is done. Used for authentication
+
++ Request (application/x-form-urlencoded)
+
++ Response 200 (application/json)
+ + Attributes (object)
+ + success: true (boolean)
+ + rant_id: 2619313 (number)
+
+ + Body
+ ```js
+ {
+ "success": true,
+ "rant_id": 2619313
+ }
+ ```
+
+## Post a comment [POST /devrant/rants/{id}/comments{?app,comment,token_id,token_key,user_id}]
+
++ Parameters
+ + app: 3 (required, number) - App ID Parameters
+ + comment: `This rant sucks!` (required, string) - Comment text
+ + token_id (required, number) - Token ID of the user. Used for authentication
+ + token_key (required, string) - Token key of the user. Used for authentication
+ + user_id (required, number) - ID of the user on whose behalf the action is done. Used for authentication
+
++ Response 200 (application/json)
+ + Attributes (object)
+ + success: true (boolean)
+
+ + Body
+ ```js
+ {
+ "success": true
+ }
+ ```
+
+## Delete a rant [DELETE /devrant/rants/{id}{?app,token_id,token_key,user_id}]
+
++ Parameters
+ + id (required, number) - ID of the rant to delete
+ + app: 3 (required, number) - App ID Parameters
+ + token_id (required, number) - Token ID of the user. Used for authentication
+ + token_key (required, string) - Token key of the user. Used for authentication
+ + user_id (required, number) - ID of the user on whose behalf the action is done. Used for authentication
+
++ Response 200 (application/json)
+ + Attributes (object)
+ + success: true (boolean)
+
+ + Body
+ ```js
+ {
+ "success": true
+ }
+ ```
+
+## Delete a comment [DELETE /devrant/comments/{id}{?app,token_id,token_key,user_id}]
+
++ Parameters
+ + id (required, number) - ID of the comment to delete
+ + app: 3 (required, number) - App ID Parameters
+ + token_id (required, number) - Token ID of the user. Used for authentication
+ + token_key (required, string) - Token key of the user. Used for authentication
+ + user_id (required, number) - ID of the user on whose behalf the action is done. Used for authentication
+
++ Response 200 (application/json)
+ + Attributes (object)
+ + success: true (boolean)
+
+ + Body
+ ```js
+ {
+ "success": true
+ }
+ ```
+
+
+# Data Structures
+
+## Rant (object)
++ id: 20123 (number)
++ text: `Bla bla some long rant text with emojis and \n's` (string)
++ score: 123 (number)
++ created_time: 1518160633 (number) - When the rant was created
++ attached_image (object) - Empty string if there is no image
+ + url: `https://img.devrant.com/devrant/rant/imageName.jpg` (string)
+ + width: 753 (number)
+ + height: 546 (number)
++ num_comments: 12 (number)
++ tags (array[string])
++ vote_state: 0 (enum[number])
+ + Members
+ + 1 - Upvoted
+ + `-1` - Downvoted
+ + 0 - Unvoted
+ + `-2` - No vote allowed
++ edited: false (boolean)
++ link: `rants/10123/some-strange-text-for-seo` (string) - Link to rant for social share etc. First part can be "rants" or "collabs"
++ rt: 1 (number) - No clue what this is
++ rc: 1 (number) - No clue what this is
++ links (array)
+ + (object)
+ + type: `url` (string) - Only urls are allowed in rants themselves so this should always be url
+ + url: `https://github.com/User1/SomeRepo` (string)
+ + short_url: `https://github.com/User...` (string) - Truncated url
+ + title: `https://github.com/User...` (string)
+ + start: 278 (number) - Starting position of the link
+ + end: 313 (number) - Ending position of the link
+ + special: 1 (number) - No clue what this is
++ special: 1 (number) - No clue what this is
++ c_type_long: `Existing open source project` (string) - Only if collab.
++ c_description: `Jungla is an alternative to GraphQL. Bla bla bla help pls` (string) - Only if collab.
++ c_tech_stack: `NodeJS` (string) - Only if collab.
++ c_team_size: `2` (string) - Only if collab.
++ c_url: `https://github.com/crazywolf132/Jungla` (string) - Only if collab.
++ user_id: 12301 (number)
++ user_username: `User1` (string)
++ user_score: 1234 (number)
++ user_avatar (object)
+ + b: `2a8b9d` (string) - Avatar background color
+ + i: `v-18_c-3_b-4_g-m_9-1_1-2_16-3_3-3_8-3_7-3_5-4_12-2_6-7_10-9_2-48_15-11_18-4_4-4_19-3_20-14.jpg` (string) - Avatar filename
++ user_avatar_lg (object)
+ + b: `2a8b9d` (string) - Avatar background color
+ + i: `v-18_c-1_b-4_g-m_9-1_1-2_16-3_3-3_8-3_7-3_5-4_12-2_6-7_10-9_2-48_15-11_18-4_4-4_19-3_20-14.png` (string) - Avatar filename
++ user_dpp: 1 (number) - 1 if user is devRant++, 0 if not devRant++
+
+## RantFeed (object)
++ success: true (boolean) - Whether the request was successful
++ rants (array[RantInFeed])
++ settings (object) - Empty array when not authenticated
+ + notif_state: `1` (string) - Whether notifications are available
+ + notif_token (string)
++ set: `5ee254ee76f3e` (string) - Session hash
++ wrw: 212 (number) - Weekly-Rant Week
++ dpp: 0 (number) - 1 if devRant++, 0 if not devRant++, not set when not authenticated
++ num_notifs: 0 (number) - Not set when not authenticated
++ unread (object) - Not set when not authenticated
+ + total: 0 (number) - Same as num_notifs
++ news (object)
+ + id: 321 (number)
+ + type: `intlink` (string) - Internal Link (intlink) most of the time, not sure what other values are possible
+ + headline: `Weekly Group Rant` (string)
+ + body: `Story of screenshare gone wrong?` (string)
+ + footer: `Add tag 'wk212' to your rant` (string)
+ + height: 200 (number)
+ + action: `grouprant` (enum[string])
+ What to do when clicked
+ + Members
+ + `grouprant` - Go to group rants section
+ + `none` - Do nothing
+ + `rant` - Go to a rant (Not confirmed if actually exists!)
+
+## RantInFeed (object)
++ id: 20123 (number)
++ text: `Bla bla some long rant text with emojis and \n's` (string)
++ score: 123 (number)
++ created_time: 1518160633 (number) - When the rant was created
++ attached_image (object) - Empty string if there is no image
+ + url: `https://img.devrant.com/devrant/rant/imageName.jpg` (string)
+ + width: 753 (number)
+ + height: 546 (number)
++ num_comments: 12 (number)
++ tags (array[string]) - List of tags. First tag is post type (rant, undefined, joke/meme, question, devRant, random, collab)
++ vote_state: 0 (enum[number])
+ + Members
+ + 1 - Upvoted
+ + `-1` - Downvoted
+ + 0 - Unvoted
+ + `-2` - No vote allowed
++ edited: false (boolean)
++ link: `rants/10123/some-strange-text-for-seo` (string) - Link to rant for social share etc
++ rt: 1 (number) - No clue what this is
++ rc: 1 (number) - No clue what this is
++ c_type: 2 (enum[number])
+ Only if collab.
+ + Members
+ + 1 - Open source idea
+ + 2 - Existing open source project
+ + 3 - Project idea
+ + 4 - Existing project
++ c_type_long: `Existing open source project` (string) - Only if collab. Collab type as string (see above)
++ user_id: 12301 (number)
++ user_username: `User1` (string)
++ user_score: 1234 (number)
++ user_avatar (object)
+ + b: `2a8b9d` (string) - Avatar background color
+ + i: `v-18_c-3_b-4_g-m_9-1_1-2_16-3_3-3_8-3_7-3_5-4_12-2_6-7_10-9_2-48_15-11_18-4_4-4_19-3_20-14.jpg` (string) - Avatar filename
++ user_avatar_lg (object)
+ + b: `2a8b9d` (string) - Avatar background color
+ + i: `v-18_c-1_b-4_g-m_9-1_1-2_16-3_3-3_8-3_7-3_5-4_12-2_6-7_10-9_2-48_15-11_18-4_4-4_19-3_20-14.png` (string) - Avatar filename
++ user_dpp: 1 (number) - 1 if user is devRant++, 0 if not devRant++
+
+## Comment (object)
++ id: 2639015 (number)
++ rand_id: 10123 (number)
++ body: `This rant sucks!` (string)
++ score: 10 (number)
++ created_time: 1591901533 (number)
++ vote_state: 0 (enum[number])
+ + Members
+ + 1 - Upvoted
+ + `-1` - Downvoted
+ + 0 - Unvoted
+ + `-2` - No vote allowed
++ user_id: 5125 (number)
++ user_username: `User2` (string)
++ user_score: 10000 (number)
++ user_avatar (object)
+ + b: `2a8b9d` (string) - Avatar background color
+ + i: `v-37_c-3_b-6_g-m_9-1_16_16-4_3-13_8-1_7-1_5-1_12-6_17-2_6-2_10-5_2-26_22-2_15-10_11-3_18-2_19-1_4-1.jpg` (string) - Avatar filename
+
+## Profile (object)
++ username: `User1` (string)
++ score: 1234 (number)
++ about: `Bla bla I'm a dev.` (string)
++ location: `Idk` (string)
++ created_time: 1514824661 (number) - Time the user joined devRant
++ skills: `No skills :/` (string)
++ github: `User1` (string)
++ website: `www.user1.com` (string)
++ content (object)
+ + rants (array[RantInFeed]) - User's rants
+ + upvoted (array[RantInFeed]) - User's upvoted rants
+ + comments (array[Comment]) - User's comments
+ + favorites (array[RantInFeed]) - User's favorited rants
++ counts (object)
+ + rants: 12 (number)
+ + upvoted: 123 (number)
+ + comments: 12 (number)
+ + favorites: 1 (number)
+ + collabs: 2 (number)
++ avatar (object)
+ + b: `2a8b9d` (string) - Avatar background color
+ + i: `v-18_c-1_b-4_g-m_9-1_1-1_16-7_3-1_8-1_7-1_5-1_12-1_6-16_10-6_2-27_11-3_18-2_4-1_19-1.png` (string) - Avatar file name
++ avatar_sm (object)
+ + b: `2a8b9d` (string) - Avatar background color
+ + i: `v-18_c-3_b-4_g-m_9-1_1-1_16-7_3-1_8-1_7-1_5-1_12-1_6-16_10-6_2-27_11-3_18-2_4-1_19-1.jpg` (string) - Avatar file name
++ dpp: 0 (number) - Numeric bool indicator if the user is a devRant++ member or not
\ No newline at end of file
diff --git a/data-structures/Comment.apib b/data-structures/Comment.apib
deleted file mode 100644
index 252aad4..0000000
--- a/data-structures/Comment.apib
+++ /dev/null
@@ -1,18 +0,0 @@
-## Comment (object)
-+ id: 2639015 (number)
-+ rand_id: 10123 (number)
-+ body: `This rant sucks!` (string)
-+ score: 10 (number)
-+ created_time: 1591901533 (number)
-+ vote_state: 0 (enum[number])
- + Members
- + 1 - Upvoted
- + `-1` - Downvoted
- + 0 - Unvoted
- + `-2` - No vote allowed
-+ user_id: 5125 (number)
-+ user_username: `User2` (string)
-+ user_score: 10000 (number)
-+ user_avatar (object)
- + b: `2a8b9d` (string) - Avatar background color
- + i: `v-37_c-3_b-6_g-m_9-1_16_16-4_3-13_8-1_7-1_5-1_12-6_17-2_6-2_10-5_2-26_22-2_15-10_11-3_18-2_19-1_4-1.jpg` (string) - Avatar filename
\ No newline at end of file
diff --git a/data-structures/Profile.apib b/data-structures/Profile.apib
deleted file mode 100644
index 028f7db..0000000
--- a/data-structures/Profile.apib
+++ /dev/null
@@ -1,27 +0,0 @@
-## Profile (object)
-+ username: `User1` (string)
-+ score: 1234 (number)
-+ about: `Bla bla I'm a dev.` (string)
-+ location: `Idk` (string)
-+ created_time: 1514824661 (number) - Time the user joined devRant
-+ skills: `No skills :/` (string)
-+ github: `User1` (string)
-+ website: `www.user1.com` (string)
-+ content (object)
- + rants (array[RantInFeed]) - User's rants
- + upvoted (array[RantInFeed]) - User's upvoted rants
- + comments (array[Comment]) - User's comments
- + favorites (array[RantInFeed]) - User's favorited rants
-+ counts (object)
- + rants: 12 (number)
- + upvoted: 123 (number)
- + comments: 12 (number)
- + favorites: 1 (number)
- + collabs: 2 (number)
-+ avatar (object)
- + b: `2a8b9d` (string) - Avatar background color
- + i: `v-18_c-1_b-4_g-m_9-1_1-1_16-7_3-1_8-1_7-1_5-1_12-1_6-16_10-6_2-27_11-3_18-2_4-1_19-1.png` (string) - Avatar file name
-+ avatar_sm (object)
- + b: `2a8b9d` (string) - Avatar background color
- + i: `v-18_c-3_b-4_g-m_9-1_1-1_16-7_3-1_8-1_7-1_5-1_12-1_6-16_10-6_2-27_11-3_18-2_4-1_19-1.jpg` (string) - Avatar file name
-+ dpp: 0 (number) - Numeric bool indicator if the user is a devRant++ member or not
\ No newline at end of file
diff --git a/data-structures/Rant.apib b/data-structures/Rant.apib
deleted file mode 100644
index be6fdba..0000000
--- a/data-structures/Rant.apib
+++ /dev/null
@@ -1,46 +0,0 @@
-## Rant (object)
-+ id: 20123 (number)
-+ text: `Bla bla some long rant text with emojis and \n's` (string)
-+ score: 123 (number)
-+ created_time: 1518160633 (number) - When the rant was created
-+ attached_image (object) - Empty string if there is no image
- + url: `https://img.devrant.com/devrant/rant/imageName.jpg` (string)
- + width: 753 (number)
- + height: 546 (number)
-+ num_comments: 12 (number)
-+ tags (array[string])
-+ vote_state: 0 (enum[number])
- + Members
- + 1 - Upvoted
- + `-1` - Downvoted
- + 0 - Unvoted
- + `-2` - No vote allowed
-+ edited: false (boolean)
-+ link: `rants/10123/some-strange-text-for-seo` (string) - Link to rant for social share etc. First part can be "rants" or "collabs"
-+ rt: 1 (number) - No clue what this is
-+ rc: 1 (number) - No clue what this is
-+ links (array)
- + (object)
- + type: `url` (string) - Only urls are allowed in rants themselves so this should always be url
- + url: `https://github.com/User1/SomeRepo` (string)
- + short_url: `https://github.com/User...` (string) - Truncated url
- + title: `https://github.com/User...` (string)
- + start: 278 (number) - Starting position of the link
- + end: 313 (number) - Ending position of the link
- + special: 1 (number) - No clue what this is
-+ special: 1 (number) - No clue what this is
-+ c_type_long: `Existing open source project` (string) - Only if collab.
-+ c_description: `Jungla is an alternative to GraphQL. Bla bla bla help pls` (string) - Only if collab.
-+ c_tech_stack: `NodeJS` (string) - Only if collab.
-+ c_team_size: `2` (string) - Only if collab.
-+ c_url: `https://github.com/crazywolf132/Jungla` (string) - Only if collab.
-+ user_id: 12301 (number)
-+ user_username: `User1` (string)
-+ user_score: 1234 (number)
-+ user_avatar (object)
- + b: `2a8b9d` (string) - Avatar background color
- + i: `v-18_c-3_b-4_g-m_9-1_1-2_16-3_3-3_8-3_7-3_5-4_12-2_6-7_10-9_2-48_15-11_18-4_4-4_19-3_20-14.jpg` (string) - Avatar filename
-+ user_avatar_lg (object)
- + b: `2a8b9d` (string) - Avatar background color
- + i: `v-18_c-1_b-4_g-m_9-1_1-2_16-3_3-3_8-3_7-3_5-4_12-2_6-7_10-9_2-48_15-11_18-4_4-4_19-3_20-14.png` (string) - Avatar filename
-+ user_dpp: 1 (number) - 1 if user is devRant++, 0 if not devRant++
\ No newline at end of file
diff --git a/data-structures/RantFeed.apib b/data-structures/RantFeed.apib
deleted file mode 100644
index ba38498..0000000
--- a/data-structures/RantFeed.apib
+++ /dev/null
@@ -1,25 +0,0 @@
-## RantFeed (object)
-+ success: true (boolean) - Whether the request was successful
-+ rants (array[RantInFeed])
-+ settings (object) - Empty array when not authenticated
- + notif_state: `1` (string) - Whether notifications are available
- + notif_token (string)
-+ set: `5ee254ee76f3e` (string) - Session hash
-+ wrw: 212 (number) - Weekly-Rant Week
-+ dpp: 0 (number) - 1 if devRant++, 0 if not devRant++, not set when not authenticated
-+ num_notifs: 0 (number) - Not set when not authenticated
-+ unread (object) - Not set when not authenticated
- + total: 0 (number) - Same as num_notifs
-+ news (object)
- + id: 321 (number)
- + type: `intlink` (string) - Internal Link (intlink) most of the time, not sure what other values are possible
- + headline: `Weekly Group Rant` (string)
- + body: `Story of screenshare gone wrong?` (string)
- + footer: `Add tag 'wk212' to your rant` (string)
- + height: 200 (number)
- + action: `grouprant` (enum[string])
- What to do when clicked
- + Members
- + `grouprant` - Go to group rants section
- + `none` - Do nothing
- + `rant` - Go to a rant (Not confirmed if actually exists!)
\ No newline at end of file
diff --git a/data-structures/RantInFeed.apib b/data-structures/RantInFeed.apib
deleted file mode 100644
index 02121bb..0000000
--- a/data-structures/RantInFeed.apib
+++ /dev/null
@@ -1,39 +0,0 @@
-## RantInFeed (object)
-+ id: 20123 (number)
-+ text: `Bla bla some long rant text with emojis and \n's` (string)
-+ score: 123 (number)
-+ created_time: 1518160633 (number) - When the rant was created
-+ attached_image (object) - Empty string if there is no image
- + url: `https://img.devrant.com/devrant/rant/imageName.jpg` (string)
- + width: 753 (number)
- + height: 546 (number)
-+ num_comments: 12 (number)
-+ tags (array[string]) - List of tags. First tag is post type (rant, undefined, joke/meme, question, devRant, random, collab)
-+ vote_state: 0 (enum[number])
- + Members
- + 1 - Upvoted
- + `-1` - Downvoted
- + 0 - Unvoted
- + `-2` - No vote allowed
-+ edited: false (boolean)
-+ link: `rants/10123/some-strange-text-for-seo` (string) - Link to rant for social share etc
-+ rt: 1 (number) - No clue what this is
-+ rc: 1 (number) - No clue what this is
-+ c_type: 2 (enum[number])
- Only if collab.
- + Members
- + 1 - Open source idea
- + 2 - Existing open source project
- + 3 - Project idea
- + 4 - Existing project
-+ c_type_long: `Existing open source project` (string) - Only if collab. Collab type as string (see above)
-+ user_id: 12301 (number)
-+ user_username: `User1` (string)
-+ user_score: 1234 (number)
-+ user_avatar (object)
- + b: `2a8b9d` (string) - Avatar background color
- + i: `v-18_c-3_b-4_g-m_9-1_1-2_16-3_3-3_8-3_7-3_5-4_12-2_6-7_10-9_2-48_15-11_18-4_4-4_19-3_20-14.jpg` (string) - Avatar filename
-+ user_avatar_lg (object)
- + b: `2a8b9d` (string) - Avatar background color
- + i: `v-18_c-1_b-4_g-m_9-1_1-2_16-3_3-3_8-3_7-3_5-4_12-2_6-7_10-9_2-48_15-11_18-4_4-4_19-3_20-14.png` (string) - Avatar filename
-+ user_dpp: 1 (number) - 1 if user is devRant++, 0 if not devRant++
\ No newline at end of file
diff --git a/devrant.apib b/devrant.apib
deleted file mode 100644
index 622ef0d..0000000
--- a/devrant.apib
+++ /dev/null
@@ -1,39 +0,0 @@
-FORMAT: 1A
-HOST: https://devrant.com/api
-
-# devRant API
-Welcome to the unofficial devRant API Documentation!
-Here you will find documentation for all known endpoints
-
-**Note:**
-All *POST* requests are done with header application/x-form-urlencoded, API blueprint does not support *POST* request documentation yet
-
-***POST requests will not work in playground***
-
-Documentation was written by [@Skayo](https://github.com/Skayo) and [@frogstair](https://github.com/frogstair)
-
-Find an awesome-list [here](https://github.com/devRant-Community/awesome-devrant)
-
-
-:[Rants](reference/rants.apib)
-
-:[Authentication and user](reference/auth_and_user.apib)
-
-:[Search](reference/search.apib)
-
-:[Weeklys](reference/weeklys.apib)
-
-:[User interaction](reference/user_interaction.apib)
-
-
-# Data Structures
-
-:[Rant](data-structures/Rant.apib)
-
-:[RantFeed](data-structures/RantFeed.apib)
-
-:[RantInFeed](data-structures/RantInFeed.apib)
-
-:[Comment](data-structures/Comment.apib)
-
-:[Profile](data-structures/Profile.apib)
\ No newline at end of file
diff --git a/reference/auth_and_user.apib b/reference/auth_and_user.apib
deleted file mode 100644
index 1966b71..0000000
--- a/reference/auth_and_user.apib
+++ /dev/null
@@ -1,182 +0,0 @@
-# Authentication and user [/users/]
-
-## Get access keys [POST /users/auth-token{?app,username,password}]
-
-+ Parameters
- + app: 3 (required, number) - App ID parameter
- + username (required, string) - Username to login with
- + password (required, string) - Password to login with
-
-+ Request (application/x-form-urlencoded)
-
-+ Response 200 (application/json)
- + Attributes (object)
- + success: `true` (boolean)
- + auth_token (object)
- + id: 6712386 (number)
- + key: `tD5qeCHb6qvvfU4dLpFEWPL7YDNjA4hz7caGLW7M` (string)
- + expire_time: 6712386 (number)
- + user_id: 1085040 (number)
-
- + Body
- ```js
- {
- "success": true,
- "auth_token": {
- "id": 6712386,
- "key": "tD5qeCHb6qvvfU4dLpFEWPL7YDNjA4hz7caGLW7M",
- "expire_time": 6712386,
- "user_id": 1085040
- }
- }
- ```
-
-+ Response 400 (application/json)
- + Attributes (object)
- + success: `true` (boolean)
- + error: `Invalid login credentials entered. Please try again.` (string)
-
- + Body
- ```js
- {
- "success": false,
- "error": "Invalid login credentials entered. Please try again."
- }
- ```
-
-## Get user information [GET /users/{id}{?app,skip,content}]
-
-+ Parameters
- + id (required, number) - User ID
- + app: 3 (required, number) - App ID parameter
- + skip: 0 (optional, number) - Amount of content to skip
- + content: `all` (optional, enum[string])
- Which type of content to load
- + Members
- + `all`
- + `rants`
- + `upvoted`
- + `comments`
- + `favorites`
- + `collabs`
-
-+ Response 200 (application/json)
- + Attributes (object)
- + success: true (boolean)
- + profile (Profile)
-
- + Body
- ```js
- {
- "success": true,
- "profile": {
- "username": "User1",
- "score": 1234,
- "about": "Bla bla I'm a dev.",
- "location": "Idk",
- "created_time": 1514824661, // Time the user joined devRant
- "skills": "No skills :/",
- "github": "User1",
- "website": "www.user1.com",
- "content": {
- "content": {
- "rants": [
- // Rants ...
- ],
- "upvoted": [
- // Upvoted Rants...
- ],
- "comments": [
- // Comments...
- ],
- "favorites": [
- // Favorited Rants...
- ]
- },
- "counts": {
- "rants": 12,
- "upvoted": 123,
- "comments": 12,
- "favorites": 1,
- "collabs": 2
- }
- },
- "avatar": {
- "b": "2a8b9d",
- "i": "v-18_c-1_b-4_g-m_9-1_1-1_16-7_3-1_8-1_7-1_5-1_12-1_6-16_10-6_2-27_11-3_18-2_4-1_19-1.png"
- },
- "avatar_sm": {
- "b": "2a8b9d",
- "i": "v-18_c-3_b-4_g-m_9-1_1-1_16-7_3-1_8-1_7-1_5-1_12-1_6-16_10-6_2-27_11-3_18-2_4-1_19-1.jpg"
- },
- "dpp": 0 // Bool indicator if the user is a devRant++ Member or not
- }
- }
- ```
-
-## Get user ID [GET /get-user-id{?app,username}]
-
-+ Parameters
- + app: 3 (required, number) - App ID parameter
- + username (required, string) - User username
-
-+ Response 200 (application/json)
- + Attributes (object)
- + success: true (boolean)
- + user_id: 12301 (number)
-
- + Body
- ```js
- {
- "success": true,
- "user_id": 12301
- }
- ```
-
-## Get list of supporters [GET /devrant/supporters{?app}]
-
-+ Parameters
- + app: 3 (required, number) - App ID parameter
-
-+ Response 200 (application/json)
- + Attributes (object)
- + items (array)
- + (object)
- + user (object)
- + id: 12301 (number)
- + name: `User1`
- + avatar (object)
- + b: `2a8b9d` (string) - Avatar background color
- + i: `v-18_c-1_b-4_g-m_9-1_1-1_16-7_3-1_8-1_7-1_5-1_12-1_6-16_10-6_2-27_11-3_18-2_4-1_19-1.png` (string) - Avatar file name
- + start: 1496914102 (number) - Timestamp when the user joined devRant++
-
- + Body
- ```js
- {
- "items": [
- {
- "user": {
- "id": 12301,
- "name": "User1",
- "avatar": {
- "b": "2a8b9d",
- "i": "v-18_c-3_b-4_g-m_9-1_1-1_16-6_3-1_8-1_7-1_5-1_12-1_6-4_10-1_2-10_4-1.jpg"
- }
- },
- "start": 1496914102 // Time since the user is a member
- },
- {
- "user": {
- "id": 12302,
- "name": "User2",
- "avatar": {
- "b": "d55161",
- "i": "v-18_c-3_b-5_g-m_9-1_1-2_16-6_3-2_8-2_7-2_5-4_12-2_6-3_2-76_11-4_18-4_4-4_19-3_20-10_21-1.jpg"
- }
- },
- "start": 1496924123 // Time since the user is a member
- },
- // ...
- ]
- }
- ```
\ No newline at end of file
diff --git a/reference/rants.apib b/reference/rants.apib
deleted file mode 100644
index 2e752a0..0000000
--- a/reference/rants.apib
+++ /dev/null
@@ -1,361 +0,0 @@
-# Rants [/devrant/rants]
-
-## Get rant feed [GET /devrant/rants{?app,limit,sort,range,skip,token_id,token_key,user_id}]
-If provided with keys it will get rants tailored to user
-
-+ Parameters
- + app: 3 (required, number) - App ID parameter
- + sort: `top` (optional, enum[string])
- Sort rants
- + Members
- + `algo`
- + `top`
- + `recent`
- + range: `all` (optional, enum[string])
- Time range of the rants to load
- + Members
- + `day`
- + `week`
- + `month`
- + `all`
- + limit: 20 (optional, number) - Limit the amount of rants to load. Used for pagination/infinite scroll. Maximum is 50, if more defaults to 20
- + skip: 0 (optional, number) - How many rants to skip before loading. Used for pagination/infinite scroll
- + token_id (optional, number) - Token ID of the user. Used for authentication
- + token_key (optional, string) - Token key of the user. Used for authentication
- + user_id (optional, number) - ID of the user on whose behalf the action is done. Used for authentication
-
-+ Response 200 (application/json)
- + Attributes (RantFeed)
-
- + Body
- ```js
- {
- "success": true,
- "rants": [
- {
- "id": 20123,
- "text": "Bla bla some long rant text with emojis and \n's",
- "score": 123,
- "created_time": 1518160633, // When the rant was created
- "attached_image": { // Empty string if there is no image
- "url": "https://img.devrant.com/devrant/rant/imageName.jpg",
- "width": 753,
- "height": 546
- },
- "num_comments": 12,
- "tags": [
- "some-tag"
- ],
- "vote_state": 0, // 1=upvoted, -1=downvoted, 0=unvoted, -2=no vote allowed
- "edited": false,
- "rt": 1, // No clue what this is
- "rc": 1, // No clue what this is
- "user_id": 12301,
- "user_username": "User1",
- "user_score": 1234,
- "user_avatar": {
- "b": "2a8b9d", // Avatar background color
- "i": "v-18_c-3_b-4_g-m_9-1_1-2_16-3_3-3_8-3_7-3_5-4_12-2_6-7_10-9_2-48_15-11_18-4_4-4_19-3_20-14.jpg" // Avatar filename
- },
- "user_avatar_lg": {
- "b": "2a8b9d", // Avatar background color
- "i": "v-18_c-1_b-4_g-m_9-1_1-2_16-3_3-3_8-3_7-3_5-4_12-2_6-7_10-9_2-48_15-11_18-4_4-4_19-3_20-14.png" // Avatar filename
- },
- "user_dpp": 1 // 1 if user is devRant++, 0 if not devRant++
- },
- // ...
- ],
- "settings": { // Empty array when not authenticated
- "notif_state": "1", // If notifications are available
- "notif_token": ""
- },
- "set": "5ee254ee76f3e", // Session hash
- "wrw": 212, // Weekly-Rant Week
- "dpp": 0, // 1 if devRant++, 0 if not devRant++, not set when not authenticated
- "num_notifs": 2, // Not set when not authenticated
- "unread": { // Not set when not authenticated
- "total": 2 // Same as "num_notifs"
- },
- "news": {
- "id": 321,
- "type": "intlink", // Internal Link (intlink) most of the time, not sure what other values are possible
- "headline": "Weekly Group Rant",
- "body": "Story of screenshare gone wrong?",
- "footer": "Add tag 'wk212' to your rant",
- "height": 100,
- "action": "grouprant" // What to do when clicked, "grouprant" means go to group rants section, not sure what other values are possible (I'm guessing there's "rant")
- }
- }
- ```
-
-## Get a single rant [GET /devrant/rants/{id}{?app}]
-
-+ Parameters
- + id (required, number) - ID of the rant
- + app: 3 (required, number) - App ID parameter
-
-+ Response 200 (application/json)
- + Attributes (object)
- + rant (Rant)
- + comments (array[Comment])
- + success: `true` (boolean)
-
- + Body
- ```js
- {
- "rant": {
- "id": 10123,
- "text": "Bla bla fuck everything",
- "score": 12,
- "created_time": 1517755150,
- "attached_image": { // Empty string if there is no image
- "url": "https://img.devrant.com/devrant/rant/imageName.jpg",
- "width": 753,
- "height": 546
- },
- "num_comments": 8,
- "tags": [
- "some-tag"
- ],
- "vote_state": 0, // 1=upvoted, -1=downvoted, 0=unvoted, -2=no vote allowed
- "edited": true,
- "link": "rants/10123/some-strange-text-for-seo",
- "rt": 1, // No clue what this is
- "rc": 7, // No clue what this is
- "links": [
- {
- "type": "url",
- "url": "https://github.com/User1/SomeRepo",
- "short_url": "https://github.com/User...",
- "title": "https://github.com/User...",
- "start": 278, // Starting position of the link
- "end": 313, // Ending position of the link
- "special": 1 // No clue what this is
- }
- ],
- "special": true, // No clue what this is
- "user_id": 12301,
- "user_username": "User1",
- "user_score": 1234,
- "user_avatar": {
- "b": "69c9cd",
- "i": "v-18_c-3_b-6_g-m_9-1_1-3_16-8_3-11_8-4_7-4_5-2_12-3_6-12_10-4_2-18_18-4_4-2_19-3_21-2.jpg"
- },
- "user_avatar_lg": {
- "b": "69c9cd",
- "i": "v-18_c-1_b-6_g-m_9-1_1-3_16-8_3-11_8-4_7-4_5-2_12-3_6-12_10-4_2-18_18-4_4-2_19-3_21-2.png"
- },
- "user_dpp": 1 // Bool indicator if the user is a devRant++ Member or not
- },
- "comments": [
- {
- "id": 2639015,
- "rant_id": 10123,
- "body": "This rant sucks!",
- "score": -100,
- "created_time": 1591901533,
- "vote_state": 0,
- "user_id": 5125,
- "user_username": "User2",
- "user_score": 10000,
- "user_avatar": {
- "b": "69c9cd",
- "i": "v-37_c-3_b-6_g-m_9-1_1-6_16-4_3-13_8-1_7-1_5-1_12-6_17-2_6-2_10-5_2-26_22-2_15-10_11-3_18-2_19-1_4-1.jpg"
- }
- }
- // ....
- ],
- "success": true
- }
- ```
-
-## Get a random rant [GET /devrant/rants/surprise{?app}]
-
-+ Parameters
- + app: 3 (required, number) - App ID parameter
-
-+ Response 200 (application/json)
- + Attributes (object)
- + success: true (boolean)
- + rant (Rant)
-
- + Body
- ```js
- {
- "success": true,
- "rant": {
- "id": 20123,
- "text": "Such random. Much wow",
- "score": 13,
- "created_time": 1517755155,
- "attached_image": { // Empty string if there is no image
- "url": "https://img.devrant.com/devrant/rant/imageName.jpg",
- "width": 753,
- "height": 546
- },
- "num_comments": 8,
- "tags": [
- "some-tag"
- ],
- "vote_state": 0, // 1=upvoted, -1=downvoted, 0=unvoted, -2=no vote allowed
- "edited": true,
- "rt": 1, // No clue what this is
- "rc": 7, // No clue what this is
- "links": [
- {
- "type": "url",
- "url": "https://github.com/User1/SomeRepo",
- "short_url": "https://github.com/User...",
- "title": "https://github.com/User...",
- "start": 278, // Starting position of the link
- "end": 313, // Ending position of the link
- "special": 1 // No clue what this is
- }
- ],
- "special": true, // No clue what this is
- "user_id": 12302,
- "user_username": "User2",
- "user_score": 123,
- "user_avatar": {
- "b": "69c9cd",
- "i": "v-18_c-3_b-6_g-m_9-1_1-3_16-8_3-11_8-4_7-4_5-2_12-3_6-12_10-4_2-18_18-4_4-2_19-3_21-2.jpg"
- },
- "user_avatar_lg": {
- "b": "69c9cd",
- "i": "v-18_c-1_b-6_g-m_9-1_1-3_16-8_3-11_8-4_7-4_5-2_12-3_6-12_10-4_2-18_18-4_4-2_19-3_21-2.png"
- },
- "user_dpp": 1 // Bool indicator if the user is a devRant++ Member or not
- }
- }
- ```
-
-## Get list of stories [GET /devrant/story-rants{?app,limit,sort,range,skip,token_id,token_key,user_id}]
-
-+ Parameters
- + app: 3 (required, number) - App ID parameter
- + sort: `top` (optional, enum[string])
- Sort rants
- + Members
- + `algo`
- + `top`
- + `recent`
- + range: `all` (optional, enum[string])
- Time range of the rants to load
- + Members
- + `day`
- + `week`
- + `month`
- + `all`
- + limit: 20 (optional, number) - Limit the amount of rants to load. Used for pagination/infinite scroll. Maximum is 50, if more defaults to 20
- + skip: 0 (optional, number) - How many rants to skip before loading. Used for pagination/infinite scroll
-
-+ Response 200 (application/json)
- + Attributes (RantFeed)
-
- + Body
- ```js
- {
- "success": true,
- "rants": [
- {
- "id": 40123,
- "text": "Bla bla I hate my life, but this is a very long rant fuck yeah!",
- "score": 123,
- "created_time": 1518160633, // When the rant was created
- "attached_image": { // Empty string if there is no image
- "url": "https://img.devrant.com/devrant/rant/imageName.jpg",
- "width": 753,
- "height": 546
- },
- "num_comments": 12,
- "tags": [
- "some-tag"
- ],
- "vote_state": 0, // 1=upvoted, -1=downvoted, 0=unvoted, -2=no vote allowed
- "edited": false,
- "rt": 1, // No clue what this is
- "rc": 1, // No clue what this is
- "user_id": 12301,
- "user_username": "User1",
- "user_score": 1234,
- "user_avatar": {
- "b": "2a8b9d",
- "i": "v-18_c-3_b-4_g-m_9-1_1-2_16-3_3-3_8-3_7-3_5-4_12-2_6-7_10-9_2-48_15-11_18-4_4-4_19-3_20-14.jpg"
- },
- "user_avatar_lg": {
- "b": "2a8b9d",
- "i": "v-18_c-1_b-4_g-m_9-1_1-2_16-3_3-3_8-3_7-3_5-4_12-2_6-7_10-9_2-48_15-11_18-4_4-4_19-3_20-14.png"
- },
- "user_dpp": 1 // Bool indicator if the user is a devRant++ Member or not
- }
- ]
- }
- ```
-
-## Get list of collabs [GET /devrant/collabs{?app,limit,sort,range,skip}]
-
-+ Parameters
- + app: 3 (required, number) - App ID parameter
- + sort: `top` (optional, enum[string])
- Sort rants
- + Members
- + `algo`
- + `top`
- + `recent`
- + range: `all` (optional, enum[string])
- Time range of the rants to load
- + Members
- + `day`
- + `week`
- + `month`
- + `all`
- + limit: 20 (optional, number) - Limit the amount of rants to load. Used for pagination/infinite scroll. Maximum is 50, if more defaults to 20
- + skip: 0 (optional, number) - How many rants to skip before loading. Used for pagination/infinite scroll
-
-+ Response 200 (application/json)
- + Attributes (object)
- + success: true (boolean)
- + rants (array[RantInFeed])
-
- + Body
- ```js
- {
- "success": true,
- "rants": [
- {
- "id": 12311,
- "text": "devRant-Docs Page [more details]",
- "score": 1234567,
- "created_time": 1519068050,
- "attached_image": { // Empty string if there is no image
- "url": "https://img.devrant.com/devrant/rant/imageName.jpg",
- "width": 753,
- "height": 546
- },
- "num_comments": 123,
- "tags": [
- "some-tag"
- ],
- "vote_state": 0, // As far as I know: 1=upvoted, -1=downvoted, 0=unvoted, -2=no vote
- "edited": false,
- "link": "collabs/12311/some-strange-text-for-seo",
- "rt": 2, // No clue what this is
- "rc": 2, // No clue what this is
- "c_type": 2, // 1 = Open source idea, 2 = Existing open source project, 3 = Project idea, 4 = Existing project
- "c_type_long": "Existing open source project", // Collab type as string (see above)
- "user_id": 12301,
- "user_username": "User1",
- "user_score": 1234568,
- "user_avatar": {
- "b": "69c9cd",
- "i": "v-18_c-3_b-6_g-m_9-1_1-3_16-8_3-11_8-4_7-4_5-2_12-3_6-12_10-4_2-18_18-4_4-2_19-3_21-2.jpg"
- },
- "user_avatar_lg": {
- "b": "69c9cd",
- "i": "v-18_c-1_b-6_g-m_9-1_1-3_16-8_3-11_8-4_7-4_5-2_12-3_6-12_10-4_2-18_18-4_4-2_19-3_21-2.png"
- },
- "user_dpp": 1 // Bool indicator if the user is a devRant++ Member or not
- }
- ]
- }
- ```
\ No newline at end of file
diff --git a/reference/search.apib b/reference/search.apib
deleted file mode 100644
index 9299589..0000000
--- a/reference/search.apib
+++ /dev/null
@@ -1,92 +0,0 @@
-# Search [/devrant/search]
-
-## Search rants [GET /devrant/search{?app,term}]
-
-+ Parameters
- + app: 3 (required, number) - App ID parameter
- + term: `find me this` (required, string) - Search term
-
-+ Response 200 (application/json)
- + Attributes (object)
- + success: true (boolean)
- + results (array[RantInFeed])
-
- + Body
- ```js
- {
- "success": true,
- "results": [
- {
- "id": 30123,
- "text": "Find me this thing on google please",
- "score": 123,
- "created_time": 1487173080, // When the rant was created
- "attached_image": { // Empty string if there is no image
- "url": "https://img.devrant.com/devrant/rant/imageName.jpg",
- "width": 753,
- "height": 546
- },
- "num_comments": 12,
- "tags": [
- "fuck",
- "penis"
- ],
- "vote_state": 0, // As far as I know: 1=upvoted, -1=downvoted, 0=unvoted, -2=no vote
- "edited": true,
- "rt": 1, // No clue what this is
- "rc": 1, // No clue what this is
- "user_id": 12301,
- "user_username": "User1",
- "user_score": 1234,
- "user_avatar": {
- "b": "69c9cd",
- "i": "v-18_c-3_b-6_g-m_9-1_1-2_16-10_3-11_8-1_7-1_5-4_12-2_6-11_10-5_2-14_18-1_4-4_19-2_20-9.jpg"
- },
- "user_avatar_lg": {
- "b": "69c9cd",
- "i": "v-18_c-1_b-6_g-m_9-1_1-2_16-10_3-11_8-1_7-1_5-4_12-2_6-11_10-5_2-14_18-1_4-4_19-2_20-9.png"
- },
- // ...
- }
- ]
- }
- ```
-
-## Get list of most used tags [GET /devrant/search/tags{?app}]
-
-+ Parameters
- + app: 3 (required, number) - App ID parameter
-
-+ Response 200 (application/json)
- + Attributes (object)
- + success: true (boolean)
- + tags (array[string])
-
- + Body
- ```js
- {
- "success":true,
- "tags":[
- "rant",
- "linux",
- "devrant",
- "java",
- "javascript",
- "windows",
- "android",
- "js",
- "fml",
- "programming",
- "php",
- "python",
- "code",
- "git",
- "joke",
- "wtf",
- "google",
- "github",
- "css",
- "funny"
- ]
- }
- ```
\ No newline at end of file
diff --git a/reference/user_interaction.apib b/reference/user_interaction.apib
deleted file mode 100644
index e337160..0000000
--- a/reference/user_interaction.apib
+++ /dev/null
@@ -1,163 +0,0 @@
-# User interaction [/devrant]
-
-## Get user notifications [GET /users/me/notif-feed{?app,token_id,token_key,user_id}]
-
-+ Parameters
- + app: 3 (required, number) - App ID parameter
- + token_id (required, number) - Token ID of the user. Used for authentication
- + token_key (required, string) - Token key of the user. Used for authentication
- + user_id (required, number) - ID of the user on whose behalf the action is done. Used for authentication
-
-+ Response 200 (application/json)
- + Attributes (object)
- + success: true (boolean)
- + data (object)
- + items (array) - 100 items in total
- + (object)
- + created_time: 1591546309 (number)
- + type: `content_vote` (enum[string])
- Type of notif
- + Members
- + `comment_vote`
- + `comment_content`
- + `comment_mention`
- + `comment_discuss`
- + `content_vote`
- + `rant_sub`
- + read: 0 (number) - 0 = unread, 1 = read
- + rant_id: 2619313 (number)
- + uid: 2451362 (number) - ID of the user that "fired" the notif
- + check_time: 1591546309 (number)
- + username_map (object) - Object with key-value pairs where key is notif ID and value is username
- + unread (object)
- + all: 1 (number)
- + upvotes: 1 (number)
- + mentions: 0 (number)
- + comments: 0 (number)
- + subs: 0 (number)
- + total: 1 (number) - Same as all
-
- + Body
- ```js
- {
- "success": true
- "data": {
- "items": [
- {
- "created_time":1591546309,
- "type":"content_vote", //Type of ++ (form x_y where x is content/comment and y is vote/discuss)
- "read":0, //0 = unread, 1 = read
- "rant_id":2619313,
- "uid":2451362,
- },
- //There is going to be 100 total
- ]
- "check_time":1591546309
- "username_map": {
- "2451362":'"frogstair", // "notif id": "username"
- // ...
- },
- "unread": {
- "all": 1,
- "upvotes": 1,
- "mentions": 0,
- "comments": 0,
- "subs": 0,
- "total": 1 //Same as all
- }
- }
- }
- ```
-
-## Post a rant [POST /devrant/rants{?app,rant,type,token_id,token_key,user_id}]
-
-+ Parameters
- + app: 3 (required, number) - App ID Parameters
- + rant: `Bla bla bla fuck my life` (required, string) - Text in the rant
- + type: 3 (required, enum[number])
- Type of rant
- + Members
- + 1 - Rant
- + 2 - Undefined
- + 3 - Joke/Meme
- + 4 - Question
- + 5 - devRant
- + 6 - Random
- + token_id (required, number) - Token ID of the user. Used for authentication
- + token_key (required, string) - Token key of the user. Used for authentication
- + user_id (required, number) - ID of the user on whose behalf the action is done. Used for authentication
-
-+ Request (application/x-form-urlencoded)
-
-+ Response 200 (application/json)
- + Attributes (object)
- + success: true (boolean)
- + rant_id: 2619313 (number)
-
- + Body
- ```js
- {
- "success": true,
- "rant_id": 2619313
- }
- ```
-
-## Post a comment [POST /devrant/rants/{id}/comments{?app,comment,token_id,token_key,user_id}]
-
-+ Parameters
- + app: 3 (required, number) - App ID Parameters
- + comment: `This rant sucks!` (required, string) - Comment text
- + token_id (required, number) - Token ID of the user. Used for authentication
- + token_key (required, string) - Token key of the user. Used for authentication
- + user_id (required, number) - ID of the user on whose behalf the action is done. Used for authentication
-
-+ Response 200 (application/json)
- + Attributes (object)
- + success: true (boolean)
-
- + Body
- ```js
- {
- "success": true
- }
- ```
-
-## Delete a rant [DELETE /devrant/rants/{id}{?app,token_id,token_key,user_id}]
-
-+ Parameters
- + id (required, number) - ID of the rant to delete
- + app: 3 (required, number) - App ID Parameters
- + token_id (required, number) - Token ID of the user. Used for authentication
- + token_key (required, string) - Token key of the user. Used for authentication
- + user_id (required, number) - ID of the user on whose behalf the action is done. Used for authentication
-
-+ Response 200 (application/json)
- + Attributes (object)
- + success: true (boolean)
-
- + Body
- ```js
- {
- "success": true
- }
- ```
-
-## Delete a comment [DELETE /devrant/comments/{id}{?app,token_id,token_key,user_id}]
-
-+ Parameters
- + id (required, number) - ID of the comment to delete
- + app: 3 (required, number) - App ID Parameters
- + token_id (required, number) - Token ID of the user. Used for authentication
- + token_key (required, string) - Token key of the user. Used for authentication
- + user_id (required, number) - ID of the user on whose behalf the action is done. Used for authentication
-
-+ Response 200 (application/json)
- + Attributes (object)
- + success: true (boolean)
-
- + Body
- ```js
- {
- "success": true
- }
- ```
\ No newline at end of file
diff --git a/reference/weeklys.apib b/reference/weeklys.apib
deleted file mode 100644
index 0112ec3..0000000
--- a/reference/weeklys.apib
+++ /dev/null
@@ -1,103 +0,0 @@
-# Weeklys [/devrant/]
-
-## Get weekly list [GET /devrant/weekly-list{?app}]
-
-+ Parameters
- + app: 3 (required, number) - App ID parameter
-
-+ Response 200 (application/json)
- + Attributes (object)
- + success: true (boolean)
- + weeks (array)
- + (object)
- + week: 212 (number)
- + prompt: `Story of screenshare gone wrong?` (string)
- + date: `6/8/20` (string) - Date in format "d/m/yy"
- + num_rants: 16 (number)
-
- + Body
- ```js
- {
- "success":true,
- "weeks":[
- {
- "week":212,
- "prompt":"Story of screenshare gone wrong?",
- "date":"6\/8\/20",
- "num_rants":16
- },
- {
- "week":211,
- "prompt":"How you'll know you \"made it\" as a dev?",
- "date":"6\/1\/20",
- "num_rants":34
- }
- ]
- }
- ```
-
-## Get weekly list rants [GET /devrant/weekly-rants{?app,week,sort,limit,skip}]
-
-+ Parameters
- + app: 3 (required, number) - App ID parameter
- + sort: `top` (optional, enum[string])
- Sort rants
- + Members
- + `algo`
- + `top`
- + `recent`
- + limit: 20 (optional, number) - Limit the amount of rants to load. Used for pagination/infinite scroll. Maximum is 50, if more defaults to 20
- + skip: 0 (optional, number) - How many rants to skip before loading. Used for pagination/infinite scroll
-
-+ Response 200 (application/json)
- + Attribute (RantFeed)
-
- + Body
- ```js
- {
- "success": true,
- "rants": [
- {
- "id": 30123,
- "text": "Got rejected because of dickpick. Oops.",
- "score": 123,
- "created_time": 1518160644, // When the rant was created
- "attached_image": { // Empty string if there is no image
- "url": "https://img.devrant.com/devrant/rant/imageName.jpg",
- "width": 753,
- "height": 546
- },
- "num_comments": 12,
- "tags": [
- "wk90"
- ],
- "vote_state": 0, // As far as I know: 1=upvoted, -1=downvoted, 0=unvoted, -2=no vote
- "edited": false,
- "rt": 1, // No clue what this is
- "rc": 1, // No clue what this is
- "user_id": 12301,
- "user_username": "User1",
- "user_score": 1234,
- "user_avatar": {
- "b": "2a8b9d",
- "i": "v-18_c-3_b-4_g-m_9-1_1-2_16-3_3-3_8-3_7-3_5-4_12-2_6-7_10-9_2-48_15-11_18-4_4-4_19-3_20-14.jpg"
- },
- "user_avatar_lg": {
- "b": "2a8b9d",
- "i": "v-18_c-1_b-4_g-m_9-1_1-2_16-3_3-3_8-3_7-3_5-4_12-2_6-7_10-9_2-48_15-11_18-4_4-4_19-3_20-14.png"
- },
- "user_dpp": 1 // Bool indicator if the user is a devRant++ Member or not
- }
- ],
- "settings": [], // Not sure what this contains
- "wrw": 90, // Weekly-Rant Week
- "news": {
- "id": 123,
- "type": "weekly", // Not sure (Maybe if it's an announcement rant or the weekly rant topic)
- "headline": "Worst interview rejection?",
- "footer": "Week 90 Group Rant - Add tag 'wk90' to your rant",
- "height": 65,
- "action": "none" // Not sure (What to do when clicked)
- }
- }
- ```
\ No newline at end of file