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 - -![Build and Deploy](https://github.com/devRant-Community/API-Docs/workflows/Build%20and%20Deploy/badge.svg) - -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