Advertisement
Guest User

2ch.net API example client (node.js)

a guest
Feb 20th, 2015
1,417
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var Promise = require('bluebird');
  2. var crypto=require("crypto");
  3. var request = require('request');
  4.  
  5. var AppKey = "xxfvFQcOzpTBvwuwPMwwzLZxiCSaGb";
  6. var HMKey = "DgQ3aNpoluV1cl3GFJAqitBg5xKiXZ";
  7.  
  8. function authenticate(){
  9.     return new Promise(function(resolve){
  10.  
  11.         var CT = "1234567890";
  12.         var message = AppKey + CT;
  13.         var HB = crypto.createHmac("sha256", HMKey).update(message).digest("hex");
  14.         var url = "https://api.2ch.net/v1/auth/";
  15.         var values = {"ID" : "", "PW" : "", "KY" : AppKey, "CT" : CT, "HB" : HB }
  16.         var headers = { "User-Agent" : "", "X-2ch-UA": "JaneStyle/3.80"}
  17.         var sid="";
  18.  
  19.         request.post({url: url, headers: headers, form: values})
  20.                 .on("data", function(d){sid+=d;}).on("end", function(){resolve(sid.split(/:/)[1]);});
  21.  
  22.     });
  23. }
  24.  
  25. function getDAT(serverName, boardName, threadId, sid){
  26.     return new Promise(function(resolve){
  27.  
  28.         var message = "/v1/" + serverName + "/" + boardName + "/" + threadId + sid + AppKey;
  29.         var hobo = crypto.createHmac("sha256", HMKey).update(message).digest("hex");
  30.         var url = "https://api.2ch.net/v1/" + serverName + "/" + boardName + "/" + threadId;
  31.         var values = { "sid" : sid, "hobo" : hobo, "appkey": AppKey };
  32.         var headers = { "User-Agent" : "Mozilla/3.0 (compatible; JaneStyle/3.80..)"};
  33.         var dat="";
  34.  
  35.         request.post({url: url, headers: headers, form: values})
  36.                .on("data", function(d){dat+=d;}).on("end", function(){resolve(dat);});
  37.  
  38.     });
  39. }
  40.  
  41. Promise.resolve().then(authenticate)
  42.         .then(getDAT.bind(null, "anago", "software", "1424327586"))
  43.         .done(console.log);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement