voat

0.0.3 • Public • Published

voatjs

This library implements voat in javascript.

installation

You can find voatjs under npm as voat. Type npm install voat to use voatjs.

example

#!/usr/bin/env node
var voat = require("voat");
var client = new voat.client({publicKey:"INSERT PUBLIC KEY HERE"});
 
client.login({username:"INSERT USERNAME", password:"INSERT PASSWORD"})
    .then(function(results) {
        console.log("Login results: ");
        console.log(results);
    })
    .then(client.getSubmissions())
    .fail(function(error) {
        console.log("Error received in chain:");
        console.log(error);
    })
    .done(function(results) {
        console.log("End results:");
        console.log(results);
    });

example output

{"MessageType":{"Inbox":"inbox","Sent":"sent","Comment":"comment","Submission":"submission","Mention":"mention","All":"all"},"MessageState":{"Unread":"unread","Read":"read","All":"all"}}
Login results: 
{ access_token: 'CENSORED',
  token_type: 'bearer',
  expires_in: 1295999,
  userName: 'CENSORED',
  '.issued': 'Wed, 15 Jul 2015 00:28:49 GMT',
  '.expires': 'Thu, 30 Jul 2015 00:28:49 GMT' }
End results:
{ success: true,
  data: 
   [ { id: 4335,
       commentCount: 0,
       date: '2015-07-14T13:51:05.423Z',
       upVotes: 2,
       downVotes: 0,
       lastEditDate: null,
       views: 6,
       userName: 'DonDavio',
       subverse: 'Api',
       thumbnail: null,
       title: 'ServerException when attempting to delete a submission multiple times',
       type: 1,
       url: null,
       content: 'This is partly user error for trying to delete a submission multiple times, but is inconsistent between submission and comment DELETE behaviour. \r\n\r\nWhen I DELETE a submission using api/v1/submissions/{submissionID} I get a "success": true response the first two times I do this, but from then on I get\r\n    "success": false,\r\n    "error": {\r\n        "type": "ServerException",\r\n        "message": "An exception has been encountered."\r\n    }\r\n\r\nThis is different from the Comments DELETE API, where I can run with the same commentID over and over and still get "success": true',
       formattedContent: '<p>This is partly user error for trying to delete a submission multiple times, but is inconsistent between submission and comment DELETE behaviour. </p>\n<p>When I DELETE a submission using api/v1/submissions/{submissionID} I get a &quot;success&quot;: true response the first two times I do this, but from then on I get\r\n    &quot;success&quot;: false,\r\n    &quot;error&quot;: {\r\n        &quot;type&quot;: &quot;ServerException&quot;,\r\n        &quot;message&quot;: &quot;An exception has been encountered.&quot;\r\n    }</p>\n<p>This is different from the Comments DELETE API, where I can run with the same commentID over and over and still get &quot;success&quot;: true</p>\n' },
     { id: 4326,
       commentCount: 3,
       date: '2015-07-14T05:08:31.04Z',
       upVotes: 2,
       downVotes: 0,
       lastEditDate: null,
       views: 16,
       userName: 'oranges13',
       subverse: 'Api',
       thumbnail: null,
       title: 'API header keys are case sensitive',
       type: 1,
       url: null,
       content: 'Greetings. I\'m working with the alpha API and I\'m coming across an issue, namely that request keys, such as "Voat-ApiKey" are case sensitive, but the RFC specifies (and many tools that build and send these requests) will downcase the keys when performing the request, which results in an error.\r\n\r\nUntil this is fixed, developers have to monkey patch the tool they\'re using to preserve the case of request keys. I\'d much prefer that the API conform to the RFC standard (case insensitive).\r\n\r\nAny ideas? I\'m using ruby primarily for now, if that helps.\r\n\r\n~~~\r\nurl = URI.parse(ENV[\'VOAT_AUTH_URL\'])\r\n\r\n        http = Net::HTTP.new(url.host, url.port)\r\n        http.use_ssl = true\r\n        http.set_debug_output($stdout)\r\n        \r\n        request = Net::HTTP::Post.new(url)\r\n        request["Voat-ApiKey"] = ENV[\'VOAT_API_KEY\']\r\n        request.body = "grant_type=password&username=#{username}&password=#{password}"\r\n\r\n        response = http.request(request).body\r\n~~~\r\n\r\nThe actual data sent is:\r\n\r\n~~~\r\nPOST /api/token HTTP/1.1\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nUser-Agent: Ruby\r\nHost: fakevout.azurewebsites.net\r\nVoat-Apikey: apikeyhere\r\nContent-Type: application/x-www-form-urlencoded\r\n~~~\r\n\r\nYou can see the key gets camel-cased.\r\n',
       formattedContent: '<p>Greetings. I\'m working with the alpha API and I\'m coming across an issue, namely that request keys, such as &quot;Voat-ApiKey&quot; are case sensitive, but the RFC specifies (and many tools that build and send these requests) will downcase the keys when performing the request, which results in an error.</p>\n<p>Until this is fixed, developers have to monkey patch the tool they\'re using to preserve the case of request keys. I\'d much prefer that the API conform to the RFC standard (case insensitive).</p>\n<p>Any ideas? I\'m using ruby primarily for now, if that helps.</p>\n<pre><code>url = URI.parse(ENV[\'VOAT_AUTH_URL\'])\n\n        http = Net::HTTP.new(url.host, url.port)\n        http.use_ssl = true\n        http.set_debug_output($stdout)\n        \n        request = Net::HTTP::Post.new(url)\n        request[&quot;Voat-ApiKey&quot;] = ENV[\'VOAT_API_KEY\']\n        request.body = &quot;grant_type=password&amp;username=#{username}&amp;password=#{password}&quot;\n\n        response = http.request(request).body\n</code></pre>\n\n<p>The actual data sent is:</p>\n<pre><code>POST /api/token HTTP/1.1\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\nAccept: */*\nUser-Agent: Ruby\nHost: fakevout.azurewebsites.net\nVoat-Apikey: apikeyhere\nContent-Type: application/x-www-form-urlencoded\n</code></pre>\n\n<p>You can see the key gets camel-cased.</p>\n' },
     { id: 4100,
       commentCount: 10,
       date: '2015-07-03T22:05:46.163Z',
       upVotes: 4,
       downVotes: 0,
       lastEditDate: null,
       views: 154,
       userName: 'Luk3',
       subverse: 'Universall',
       thumbnail: null,
       title: 'AMAgeddon Safe Spot',
       type: 1,
       url: null,
       content: null,
       formattedContent: '' },
     { id: 4328,
       commentCount: 0,
       date: '2015-07-14T05:28:26.87Z',
       upVotes: 2,
       downVotes: 0,
       lastEditDate: null,
       views: 2,
       userName: 'amarjayr1',
       subverse: 'Api',
       thumbnail: null,
       title: '[Bug] Sending empty content field in submission POST returns error.',
       type: 1,
       url: null,
       content: 'When making the following POST request: `{"title":"asdasdasd","content":""}` it returns `{"success":false,"error":{"type":"Validation","message":"Either a Url or Content must be provided."}}`. What it should do is make a post with just a title and no content. I believe this is a bug because when I POST `{"title":"asdasdasd","content":" "}` (with a space for the content value) it works and leaves the content empty.\r\n\r\nAs usual, thanks for all the work and hope this gets resolved.',
       formattedContent: '<p>When making the following POST request: <code>{&quot;title&quot;:&quot;asdasdasd&quot;,&quot;content&quot;:&quot;&quot;}</code> it returns <code>{&quot;success&quot;:false,&quot;error&quot;:{&quot;type&quot;:&quot;Validation&quot;,&quot;message&quot;:&quot;Either a Url or Content must be provided.&quot;}}</code>. What it should do is make a post with just a title and no content. I believe this is a bug because when I POST <code>{&quot;title&quot;:&quot;asdasdasd&quot;,&quot;content&quot;:&quot; &quot;}</code> (with a space for the content value) it works and leaves the content empty.</p>\n<p>As usual, thanks for all the work and hope this gets resolved.</p>\n' },
     { id: 4226,
       commentCount: 2,
       date: '2015-07-09T13:20:41.743Z',
       upVotes: 5,
       downVotes: 0,
       lastEditDate: null,
       views: 46,
       userName: 'hobbes',
       subverse: 'playground',
       thumbnail: null,
       title: 'Hi guys, please don\'t upvoat this',
       type: 1,
       url: null,
       content: null,
       formattedContent: '' },
     { id: 4223,
       commentCount: 3,
       date: '2015-07-09T12:09:46.487Z',
       upVotes: 3,
       downVotes: 0,
       lastEditDate: null,
       views: 57,
       userName: 'HACKhalo2',
       subverse: 'Api',
       thumbnail: null,
       title: 'Endpoint for Chat API',
       type: 1,
       url: null,
       content: 'Would it be possible to set up endpoints for the webchat in the API? I\'m tinkering with making a bot that links the chat in the subverse with a streaming service (like twitch or what have you), but I don\'t see any way to do it currently.',
       formattedContent: '<p>Would it be possible to set up endpoints for the webchat in the API? I\'m tinkering with making a bot that links the chat in the subverse with a streaming service (like twitch or what have you), but I don\'t see any way to do it currently.</p>\n' },
     { id: 4147,
       commentCount: 31,
       date: '2015-07-05T18:33:50.867Z',
       upVotes: 3,
       downVotes: 0,
       lastEditDate: null,
       views: 39,
       userName: 'SnowBramble',
       subverse: 'Test',
       thumbnail: null,
       title: 'SnowBramble\'s Testing ground!',
       type: 1,
       url: null,
       content: 'this is were all the poop drops!',
       formattedContent: '<p>this is were all the poop drops!</p>\n' },
     { id: 4216,
       commentCount: 2,
       date: '2015-07-09T00:32:24.237Z',
       upVotes: 2,
       downVotes: 0,
       lastEditDate: '2015-07-10T01:12:03.1Z',
       views: 193,
       userName: 'PuttItOutPlease',
       subverse: 'Api',
       thumbnail: null,
       title: 'Get it while it\'s hot!',
       type: 1,
       url: null,
       content: 'FakeVout is currently exceeding its data quota at an alarming rate, because of this the site automatically shuts off until the cap resets.\n\nWe will move this site to another location that won\'t have this issue but as you may know, this is the least of our concerns right now.\n\nApologies and will get fixed soon.\n\n#Edit: FakeVout is now hosted on a different account and should have no data/cpu caps in place.',
       formattedContent: '<p>FakeVout is currently exceeding its data quota at an alarming rate, because of this the site automatically shuts off until the cap resets.</p>\n<p>We will move this site to another location that won\'t have this issue but as you may know, this is the least of our concerns right now.</p>\n<p>Apologies and will get fixed soon.</p>\n<h1>Edit: FakeVout is now hosted on a different account and should have no data/cpu caps in place.</h1>\n' },
     { id: 4256,
       commentCount: 2,
       date: '2015-07-11T13:39:22.843Z',
       upVotes: 3,
       downVotes: 0,
       lastEditDate: null,
       views: 48,
       userName: 'Firetailz',
       subverse: 'Api',
       thumbnail: null,
       title: 'API Beg Thread',
       type: 1,
       url: null,
       content: '<Suit type="flame retardant">\r\n\r\nJust wondering if we have a timeframe for the new API being available in some capacity on RealVoat<sup>TM</sup>?\r\n\r\nI have a working bot implementation on both websites, but the method I\'m forced to use on the other site without an API has to be babied every time it runs. An API would allow me to host it cheap and reliably on Azure as well as give others access to it (there is demand trust me).\r\n\r\n</Suit>',
       formattedContent: '<p>&lt;Suit type=&quot;flame retardant&quot;&gt;</p>\n<p>Just wondering if we have a timeframe for the new API being available in some capacity on RealVoat<sup>TM</sup>?</p>\n<p>I have a working bot implementation on both websites, but the method I\'m forced to use on the other site without an API has to be babied every time it runs. An API would allow me to host it cheap and reliably on Azure as well as give others access to it (there is demand trust me).</p>\n<p>&lt;/Suit&gt;</p>\n' },
     { id: 4237,
       commentCount: 9,
       date: '2015-07-10T15:24:13.753Z',
       upVotes: 9,
       downVotes: 0,
       lastEditDate: null,
       views: 87,
       userName: 'nuudles',
       subverse: 'Api',
       thumbnail: null,
       title: 'Need minimum CCP to test Upvote/Downvote API please',
       type: 1,
       url: null,
       content: 'Denied. UpVote Submission (2.1): CCP of 0 is below minimum of 20 required for action UpVoteSubmission',
       formattedContent: '<p>Denied. UpVote Submission (2.1): CCP of 0 is below minimum of 20 required for action UpVoteSubmission</p>\n' },
     { id: 4230,
       commentCount: 1,
       date: '2015-07-10T05:02:32.747Z',
       upVotes: 3,
       downVotes: 0,
       lastEditDate: '2015-07-10T05:02:57.793Z',
       views: 26,
       userName: 'jz',
       subverse: 'Api',
       thumbnail: null,
       title: 'Search Options : Page option seems to be off by one, multiplied.',
       type: 1,
       url: null,
       content: 'Not sure if this bug has been brought up before but it looks like there is an off by one bug mixed in with the multiplication. For example if I say count = 5, page = 2, it actually shows me submissions 7-12, instead of 6-11. If I enter count = 5, page = 3, it looks like its off by 2.\n\nSo I can only assume that using count = 5, page = 4 will be off by 3. I can test in more detail but I think this is enough information to look into it. I\'ll just use index\'s for now.\n\n\n\nThanks',
       formattedContent: '<p>Not sure if this bug has been brought up before but it looks like there is an off by one bug mixed in with the multiplication. For example if I say count = 5, page = 2, it actually shows me submissions 7-12, instead of 6-11. If I enter count = 5, page = 3, it looks like its off by 2.</p>\n<p>So I can only assume that using count = 5, page = 4 will be off by 3. I can test in more detail but I think this is enough information to look into it. I\'ll just use index\'s for now.</p>\n<p>Thanks</p>\n' },
     { id: 4252,
       commentCount: 5,
       date: '2015-07-11T06:07:00.373Z',
       upVotes: 4,
       downVotes: 0,
       lastEditDate: '2015-07-11T06:33:26.023Z',
       views: 77,
       userName: 'utybo',
       subverse: 'AskFakeVout',
       thumbnail: null,
       title: 'Anyone interested in a Java library for Vout?',
       type: 1,
       url: null,
       content: 'The question is in the title.\n\nI am planning on creating an android app for FakeVout (and Voat when the API will be launched there). I decided to create a library so that I will only have to create the UI for Android. However, **the library will be compatible with everything that supports Java not only Android.** I will create two subverses when the library and the app wil be ready.\n\nSo, is anyone interested by the library/the app/both?\n\nSide note : I KNOW that there is already another app for Voat on Android, but I think it is not that great, and I never made anything on Android that has a purpose. If the creator of Boats for Voat is not ok with this, please tell him to comment this thread.',
       formattedContent: '<p>The question is in the title.</p>\n<p>I am planning on creating an android app for FakeVout (and Voat when the API will be launched there). I decided to create a library so that I will only have to create the UI for Android. However, <strong>the library will be compatible with everything that supports Java not only Android.</strong> I will create two subverses when the library and the app wil be ready.</p>\n<p>So, is anyone interested by the library/the app/both?</p>\n<p>Side note : I KNOW that there is already another app for Voat on Android, but I think it is not that great, and I never made anything on Android that has a purpose. If the creator of Boats for Voat is not ok with this, please tell him to comment this thread.</p>\n' },
     { id: 2633,
       commentCount: 5,
       date: '2015-06-11T15:47:39.837Z',
       upVotes: 5,
       downVotes: 0,
       lastEditDate: null,
       views: 52,
       userName: 'DerpyGuy',
       subverse: 'Universall',
       thumbnail: 'https://fakevout.azurewebsites.net/Thumbs/cf7abe9a-f68c-4938-a119-df6a9353ec77.jpg',
       title: 'Word Cloud of Yesterday\'s Announcements Comment Thread on reddit (xpost /r/DataIsBeautiful)',
       type: 2,
       url: 'https://i.imgur.com/VtGXfzi.jpg',
       content: null,
       formattedContent: null },
     { id: 3715,
       commentCount: 5,
       date: '2015-06-15T03:21:06.227Z',
       upVotes: 3,
       downVotes: 0,
       lastEditDate: null,
       views: 75,
       userName: 'elmgo',
       subverse: 'MinCCP',
       thumbnail: null,
       title: 'Hey just testing this out',
       type: 1,
       url: null,
       content: 'How can I get enough CCP to be able to vote through my app :S',
       formattedContent: '<p>How can I get enough CCP to be able to vote through my app :S</p>\n' },
     { id: 2637,
       commentCount: 4,
       date: '2015-06-11T23:24:23.593Z',
       upVotes: 4,
       downVotes: 0,
       lastEditDate: null,
       views: 64,
       userName: 'foxlet',
       subverse: 'Universall',
       thumbnail: null,
       title: 'I hope Voat has a timeframe!',
       type: 1,
       url: null,
       content: 'This is really a test post, but we don\'t want everyone to leave realVoat.',
       formattedContent: '<p>This is really a test post, but we don\'t want everyone to leave realVoat.</p>\n' },
     { id: 2629,
       commentCount: 0,
       date: '2015-06-11T11:59:57.293Z',
       upVotes: 5,
       downVotes: 0,
       lastEditDate: null,
       views: 37,
       userName: 'Mokum',
       subverse: 'Universall',
       thumbnail: null,
       title: 'I wanted to share that Sir Cristopher Lee has died and it\'s sad but voat is also dead and that\'s also sad.',
       type: 1,
       url: null,
       content: 'Does anyone have a clue how many people came over? reddit really outdid itself this time. ',
       formattedContent: '<p>Does anyone have a clue how many people came over? reddit really outdid itself this time. </p>\n' },
     { id: 2620,
       commentCount: 4,
       date: '2015-06-11T00:45:13.537Z',
       upVotes: 6,
       downVotes: 0,
       lastEditDate: null,
       views: 31,
       userName: 'MaybeNotHim',
       subverse: 'Universall',
       thumbnail: null,
       title: 'Reddit is Voat\'s biggest promoter. Heres to you Reddit. With Love. ',
       type: 2,
       url: 'http://i.imgur.com/MKAOXMN.gifv',
       content: null,
       formattedContent: null },
     { id: 4165,
       commentCount: 3,
       date: '2015-07-06T02:42:02.453Z',
       upVotes: 6,
       downVotes: 0,
       lastEditDate: null,
       views: 111,
       userName: 'privateryan',
       subverse: 'Api',
       thumbnail: null,
       title: 'Questions about throttling',
       type: 1,
       url: null,
       content: 'I\'m a little confused about the throttling limits for the voat api.\r\nOn the help page it says:\r\n\r\n"Default throttle policy for all API calls is: perSecond: 1, perMinute: 20, perHour: 200, perDay: 1500, perWeek: 3000." \r\n\r\nI\'m wondering if these limits apply to each user or each key? Also are these limits enforced per api call or across all calls?\r\n\r\nThanks guys, voat looks like a really cool platform and I\'m looking forward to seeing how big it gets',
       formattedContent: '<p>I\'m a little confused about the throttling limits for the voat api.\r\nOn the help page it says:</p>\n<p>&quot;Default throttle policy for all API calls is: perSecond: 1, perMinute: 20, perHour: 200, perDay: 1500, perWeek: 3000.&quot; </p>\n<p>I\'m wondering if these limits apply to each user or each key? Also are these limits enforced per api call or across all calls?</p>\n<p>Thanks guys, voat looks like a really cool platform and I\'m looking forward to seeing how big it gets</p>\n' },
     { id: 2639,
       commentCount: 12,
       date: '2015-06-12T20:48:41.587Z',
       upVotes: 7,
       downVotes: 0,
       lastEditDate: null,
       views: 103,
       userName: 'Luk3',
       subverse: 'Universall',
       thumbnail: null,
       title: 'I\'m feeling that Voat is getting crowded. I\'ll stay a while here in the Illuminati version.',
       type: 1,
       url: null,
       content: null,
       formattedContent: '' },
     { id: 4098,
       commentCount: 6,
       date: '2015-07-03T20:49:15.41Z',
       upVotes: 10,
       downVotes: 0,
       lastEditDate: null,
       views: 118,
       userName: 'VoatSimulator',
       subverse: 'playground',
       thumbnail: 'https://fakevout.azurewebsites.net/Thumbs/fba915a9-ad55-4657-a8ea-b8b6600760a3.jpg',
       title: 'So PuttItOut is still working on the API, right?',
       type: 2,
       url: 'http://www.reactiongifs.com/r/flmt1.gif',
       content: null,
       formattedContent: null },
     { id: 4177,
       commentCount: 0,
       date: '2015-07-07T01:28:37.663Z',
       upVotes: 2,
       downVotes: 0,
       lastEditDate: null,
       views: 23,
       userName: 'Jawnnypoo',
       subverse: 'Api',
       thumbnail: null,
       title: 'Retrieve Comments sorted as seen on site',
       type: 1,
       url: null,
       content: 'Hey there. I was wondering if you knew of a parameter for sorting comments where they match whatever criteria you want (such as top upvoted), but would also contain the comments not broken up by level, such as:\r\n\r\n~~~\r\nHi i am a top level comment \r\n  I am the top rated reply to the top comment\r\nI am the second top comment \r\n  I am the top reply to this comment \r\n    I am the top comment reply for this comment\r\n~~~\r\nand so on.\r\n\r\nIs this something that already exists that I am missing? If it isn\'t clear, I am looking for a way for the API to sort the comments in this way, I know that currently I can retrieve the list in a way where all the level 0 comments are in order, followed by the level 2 and so on. I am looking for a server side solution to where they are sorted as they would appear on the site. \r\n\r\nThanks!',
       formattedContent: '<p>Hey there. I was wondering if you knew of a parameter for sorting comments where they match whatever criteria you want (such as top upvoted), but would also contain the comments not broken up by level, such as:</p>\n<pre><code>Hi i am a top level comment \n  I am the top rated reply to the top comment\nI am the second top comment \n  I am the top reply to this comment \n    I am the top comment reply for this comment\n</code></pre>\n\n<p>and so on.</p>\n<p>Is this something that already exists that I am missing? If it isn\'t clear, I am looking for a way for the API to sort the comments in this way, I know that currently I can retrieve the list in a way where all the level 0 comments are in order, followed by the level 2 and so on. I am looking for a server side solution to where they are sorted as they would appear on the site. </p>\n<p>Thanks!</p>\n' },
     { id: 4275,
       commentCount: 0,
       date: '2015-07-12T10:55:40.337Z',
       upVotes: 2,
       downVotes: 0,
       lastEditDate: null,
       views: 6,
       userName: 'VoatSimulator',
       subverse: 'Api',
       thumbnail: null,
       title: '[Bug] Creating a subverse seems to get rid of all other subverses on the front page',
       type: 1,
       url: null,
       content: 'I\'ve seen some [weird behaviour](http://i.imgur.com/JD2Sbtg.png) after doing the following:\r\n\r\n1. Create a subverse on an account that hasn\'t made one before.\r\n2. Make a post in the subverse.\r\n3. Go to http://fakevout.azurewebsites.net/\r\n\r\nIt seems like creating a subverse means the front page will only contain submissions relating to that subverse, and v/announcements. Obviously this differs from the behaviour on RealVoat, unless I\'m being incredibly stupid here.',
       formattedContent: '<p>I\'ve seen some <a href="http://i.imgur.com/JD2Sbtg.png">weird behaviour</a> after doing the following:</p>\n<ol>\n<li>Create a subverse on an account that hasn\'t made one before.</li>\n<li>Make a post in the subverse.</li>\n<li>Go to <a href="http://fakevout.azurewebsites.net/">http://fakevout.azurewebsites.net/</a></li>\n</ol>\n<p>It seems like creating a subverse means the front page will only contain submissions relating to that subverse, and <a href="/v/announcements">v/announcements</a>. Obviously this differs from the behaviour on RealVoat, unless I\'m being incredibly stupid here.</p>\n' },
     { id: 4088,
       commentCount: 19,
       date: '2015-07-02T02:46:40.09Z',
       upVotes: 4,
       downVotes: 0,
       lastEditDate: '2015-07-04T09:38:19.82Z',
       views: 320,
       userName: 'PuttItOutPlease',
       subverse: 'Api',
       thumbnail: null,
       title: 'I\'m back on the API',
       type: 1,
       url: null,
       content: 'Code has been merged and I am now able to wrap up all loose ends on this API before we launch.\n\nPlease post any bugs / issues you need to have resolved ASAP so I can take care of them.\n\nApologies on the absence. \n\n##Edit:\nJust kidding. Damn you other site.',
       formattedContent: '<p>Code has been merged and I am now able to wrap up all loose ends on this API before we launch.</p>\n<p>Please post any bugs / issues you need to have resolved ASAP so I can take care of them.</p>\n<p>Apologies on the absence. </p>\n<h2>Edit:</h2>\n<p>Just kidding. Damn you other site.</p>\n' },
     { id: 3950,
       commentCount: 2,
       date: '2015-06-25T06:25:06.42Z',
       upVotes: 5,
       downVotes: 0,
       lastEditDate: null,
       views: 99,
       userName: 'macleod2486',
       subverse: 'Api',
       thumbnail: null,
       title: 'Noticed a possible type',
       type: 1,
       url: null,
       content: 'When you do get a response back from the auth token request I am noticing on one of the return arguments in the json\r\n\r\n    ".issued":"Thu, 25 Jun 2015 05:45:04 GMT",".expires":"Fri, 10 Jul 2015 05:45:04 GMT"\r\n\r\nIs it supposed to have the . in front of it or is that a typo?',
       formattedContent: '<p>When you do get a response back from the auth token request I am noticing on one of the return arguments in the json</p>\n<pre><code>&quot;.issued&quot;:&quot;Thu, 25 Jun 2015 05:45:04 GMT&quot;,&quot;.expires&quot;:&quot;Fri, 10 Jul 2015 05:45:04 GMT&quot;\n</code></pre>\n\n<p>Is it supposed to have the . in front of it or is that a typo?</p>\n' },
     { id: 2632,
       commentCount: 5,
       date: '2015-06-11T14:16:26.577Z',
       upVotes: 3,
       downVotes: 0,
       lastEditDate: null,
       views: 31,
       userName: 'DerpyGuy',
       subverse: 'Universall',
       thumbnail: 'https://fakevout.azurewebsites.net/Thumbs/d59c20b8-b902-4924-9d74-e94308f56f02.jpg',
       title: 'Users Flock To Voat As Reddit Shuts Harassing Groups | Forbes',
       type: 2,
       url: 'http://www.forbes.com/sites/emmawoollacott/2015/06/11/users-flock-to-voat-as-reddit-shuts-harassing-groups/',
       content: null,
       formattedContent: null } ] }

functionality

See the documentation page for more information about any of these. http://fakevout.azurewebsites.net/api/help

blockSubverse()

Blocks a subverse from a users /v/all submissions

deleteComment()

Deletes an existing comment

deleteSubmission()

Deletes a submission

editComment()

Edits an existing comment

editSubmission()

Edits a submission.

getAccessToken()

Gets the current access token

getSubverseInfo()

Retrieves subverse information

getComment()

Gets comments for a submission starting from a specified parent comment. Supports Search Options querystring arguments.

getComments()

Gets comments for a submission. Supports Search Options querystring arguments. if parentID is provided, Gets comments for a submission starting from a specified parent comment

getMessages()

Retrieves a single comment

getSubmission()

Gets a single submission by Id

getSubmissions()

Gets submissions for a subverse. Supports Search Options querystring arguments

getUserInfo()

Retrieves user information

getUserComments()

Get comments for a user. Supports Search Options querystring arguments.

getUserPreferences()

Retrieves user preferences.

getUserSubmissions()

Gets submissions for a user. Supports Search Options querystring arguments.

getUserSubscriptions()

Gets subscriptions for a user

getSavedItems()

Gets saved items for current user. This method is not implemented currently.

isLoggedIn()

returns whether the user is logged in/authenticated

login()

logs a user in using a username and password

postComment()

if comment id provided: Post a REPLY to an existing comment. Use this method for inbox comment replies. if submission id provided: Post a top level comment to a submission.

sendMessage()

Sends a new Private Message to a user

sendMessageReply()

Replies to a user message.

postSubmission()

Posts a new submission to the specified subverse

saveComment()

Saves a comment to a users saved items collection

saveSubmission()

Saves a submission to a users saved items collection

streamComments()

Returns a stream of submissions since the last call made to this endpoint. Used for live monitoring

streamSubmissions()

Returns a stream of comments since the last call made to this endpoint. Used for live monitoring.

voteOnComment()

Submit votes of a user

voteOnSubmission()

Submit votes of a user

unsaveComment()

Deletes a saved comment from a users saved items collection

unsaveSubmission()

Deletes a saved submission from a users saved item collection

unblockSubverse()

Unblocks a previously blocked subverse from a users /v/all submissions

updateUserPreferences()

Updates a user's preferences

defaultApiRequestHelper()

Default api request helper. can be replaced for other javascript systems

Dependencies (2)

Dev Dependencies (0)

    Package Sidebar

    Install

    npm i voat

    Weekly Downloads

    2

    Version

    0.0.3

    License

    MIT

    Last publish

    Collaborators

    • vartan