Advertisement
Guest User

Untitled

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