Advertisement
Guest User

Untitled

a guest
Aug 22nd, 2016
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.39 KB | None | 0 0
  1. exports.url = "http://1kino.in/";
  2. exports.user = null;
  3. exports.pass = null;
  4. exports.name = "1kino";
  5.  
  6. var req = require("request");
  7. var cheerio = require("cheerio");
  8.  
  9. exports.setCredentials = function(user, pass) {
  10. this.user = user;
  11. this.pass = pass;
  12. }
  13.  
  14. exports.login = function(pObj, callback) {
  15. console.log(pObj);
  16. req = req.defaults({
  17. jar:true,
  18. followAllRedirects: true,
  19. headers: {
  20. "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
  21. "Accept-Encoding": "gzip,deflate,sdch",
  22. "Accept-Language": "de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4,nl;q=0.2",
  23. "Cache-Control": "max-age=0",
  24. "Connection": "keep-alive",
  25. "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36"
  26. },
  27. gzip:true
  28. });
  29. var self = this;
  30. this.auth(function(err, body){
  31. if(pObj.mainData.isSeries) {
  32. return callback(true, "CURRENTLY NOT SUPPORTED");
  33. } else {
  34. self.addMovie(pObj, function(err,data){
  35. console.log(err);
  36. console.log(data);
  37. return callback(data);
  38. })
  39. }
  40. });
  41. }
  42. exports.auth = function(callback){
  43. var self = this;
  44. req(self.url+"wp-login.php", function(err,head,bdy){
  45. if(err)
  46. return callback(true, head);
  47.  
  48. req.post({
  49. url: self.url+"wp-login.php",
  50. form: {
  51. log: self.user,
  52. pwd: self.pass,
  53. rememberme: "forever",
  54. "wp-submit": "Anmelden",
  55. redirect_to: self.url+"wp-admin/",
  56. testcookie: 1
  57. }
  58. }, function(err,rsp, body){
  59. if(err)
  60. return callback(true, err);
  61.  
  62. return callback(null, body);
  63. })
  64. })
  65. };
  66.  
  67.  
  68. exports.addMovie = function(data, callback) {
  69. var self = this;
  70. req(this.url+"wp-admin/post-new.php?post_type=movie", function(err, body, resp){
  71. if(err)
  72. return callback(true, err);
  73.  
  74. var $ = cheerio.load(resp);
  75. var postData = self.generatePostDataMovie(data, $("input[name=_acfnonce]").val() );
  76.  
  77. var user_id = $("input[name=user_ID]").val();
  78. var _wpNonce = $("input[name=_wpnonce]").val();
  79. var newPostId = $("input[name=post_ID]").val();
  80. var metaBoxNonce = $("input[name=meta-box-order-nonce]").val();
  81. var closedBoxNonce = $("input[name=closedpostboxesnonce]").val();
  82. var ajax_add_meta_nonce = $("input[name=_ajax_nonce-add-meta]").val();
  83. req.post({
  84. url: self.url+"wp-admin/admin-ajax.php",
  85. form: postData,
  86. headers: {
  87. "X-Requested-With" : "XMLHttpRequest"
  88. }
  89. }, function(err, head, body){
  90. if(err)
  91. return callback(true, err);
  92.  
  93. try {
  94. var rspJson = JSON.parse(body);
  95. } catch(e) {
  96. console.log(body);
  97. return callback(true, "Json not parseable");
  98. }
  99. console.log(rspJson);
  100. if(rspJson.success != true || rspJson.data.valid != 1) {
  101. return callback(true, "Some data is missing");
  102. }
  103.  
  104. var newPostObj = {
  105. _wpnonce: _wpNonce,
  106. _wp_http_referer:"/wp-admin/post-new.php?post_type=movie",
  107. user_ID:user_id,
  108. action:"editpost",
  109. originalaction:"editpost",
  110. post_author:user_id,
  111. post_type:"movie",
  112. original_post_status:"publish",
  113. referredby:"http://1kino.in/wp-admin/",
  114. _wp_original_http_referer:"http://1kino.in/wp-admin/",
  115. auto_draft:"1",
  116. post_ID: newPostId,
  117. "meta-box-order-nonce": metaBoxNonce,
  118. closedpostboxesnonce: closedBoxNonce,
  119. // AJAX REG
  120.  
  121. // AJAX REG END
  122. "content" : "",
  123. "post_category[]":"0",
  124. "tax_input[post_tag]": "",
  125. "newtag[post_tag]": "",
  126. excerpt: "",
  127. metakeyselect:"#NONE#",
  128. metakeyinput: "",
  129. metavalue: "",
  130. "_ajax_nonce-add-meta": ajax_add_meta_nonce,
  131. advanced_view: "1",
  132. comment_status:"open",
  133. post_name: "",
  134. post_author_override: user_id
  135. }
  136. delete postData.action;
  137. req.post({
  138. url: self.url+"wp-admin/post.php",
  139. form: mergeObj(newPostObj, postData),
  140. followAllRedirects: true
  141. }, function(err, head, body){
  142.  
  143. var $ = cheerio.load(body);
  144. var _wpNonce = $("input[name=_wpnonce]").val();
  145. req.post({
  146. url: self.url+"wp-admin/admin-ajax.php",
  147. form: {
  148. "action":"wp-remove-post-lock",
  149. "_wpnonce": _wpNonce,
  150. "post_ID": newPostId,
  151. "active_post_lock": Math.floor(Date.now() / 1000)+":"+user_id
  152. },
  153. headers: {
  154. "X-Requested-With" : "XMLHttpRequest"
  155. }
  156. }, function(err, head, body){
  157. return callback(false, "Post erfolgreich!");
  158. });
  159. })
  160. })
  161. })
  162. }
  163. exports.filterHoster = function(hoster) {
  164. var notAllowed = ["promptfile.com", "shared.sx"];
  165. var notAllowedLength = notAllowed.length;
  166.  
  167. for(var i=0; i < notAllowedLength; i++) {
  168. var curHoster = notAllowed[i].toLowerCase();
  169. if(hoster.toLowerCase().indexOf(curHoster) !== -1) {
  170. return false;
  171. }
  172. }
  173. return true;
  174.  
  175. }
  176. exports.generatePostDataMovie = function(data, verify) {
  177. var self = this;
  178. var chunk = [];
  179. var maxChunks = data.chunk.length;
  180.  
  181. for(var i=0; i < maxChunks; i++) {
  182. var curChunk = data.chunk[i];
  183. var curChunkLength = curChunk.length;
  184. for(var x=0; x < curChunkLength; x++) {
  185. var _chunk = curChunk[x];
  186. if(self.filterHoster(_chunk)) {
  187. chunk.push(_chunk);
  188. }
  189. }
  190. }
  191. var postArr = {
  192. _acfnonce: verify,
  193. _acfchanged:1,
  194. //IMDB_ID
  195. "acf[field_569a81c0c104f]":data.mainData.imdb,
  196. //RLSTITLE
  197. "acf[field_569a81c0c19dd]":data.mainData.rlsTitle,
  198. //KA
  199. "acf[field_569a81c0c1c2f]":"deutsch",
  200. //KA
  201. "acf[field_569a81c0c2561]": "",
  202. //SOUND QULIATY
  203. "acf[field_569a81c0c2dec]": this.generateSound(data.mainData.soundQuality),
  204. // QUALITY
  205. "acf[field_569a81c0c33df]": this.generateVideo(data.mainData.quality),
  206. // KA
  207. "acf[field_569a81c0c3fe3]": "",
  208. // KA
  209. "acf[field_569a81c0c51e5]": "",
  210. // URLS
  211. "acf[field_569a81c0c625f]":chunk.join("\r\n"),
  212. action:"acf/validate_save_post"
  213. }
  214. return postArr;
  215. }
  216.  
  217. exports.generateSound = function(quality) {
  218. switch(quality) {
  219. case 1:
  220. return "Schlecht (Mic)";
  221. case 3:
  222. return "Mittel (Line)";
  223. case 4:
  224. return "Gut (Dolby Digital/DVD-Rip)";
  225. }
  226. };
  227.  
  228. exports.generateVideo = function(quality) {
  229. switch(quality) {
  230. case 1:
  231. return "Schlecht (Cam)";
  232. case 2:
  233. case 3:
  234. return "Mittel (WEB-Rip/Ts)";
  235. case 5:
  236. return "Gut (DVD/BD-Rip)";
  237. }
  238. }
  239. function mergeObj(obj1,obj2){
  240. var obj3 = {};
  241. for (var attrname in obj1) { obj3[attrname] = obj1[attrname]; }
  242. for (var attrname in obj2) { obj3[attrname] = obj2[attrname]; }
  243. return obj3;
  244. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement