Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // vmkCURL v1.0 by ManMan89 FOR GOOGLE APPS SCRIPT
- http://blogger.hide.vn
- function vmkCurl(Link, Meod, Headers, DLieuSend, CookieFile, Source){
- if(typeof(Link) != "string"){return "REQUIRE LINK IS STRING DATA TYPE";}
- if(typeof(Meod) != "string"){return "REQUIRE METHOD IS STRING DATA TYPE";}
- if(Headers == null || typeof(Headers) != "object"){return "REQUIRE HEADERS IS ARRAY DATA TYPE";}
- if(DLieuSend == null || typeof(DLieuSend) != "object"){return "REQUIRE DATA IS ARRAY DATA TYPE";}
- if(typeof(CookieFile) != "string"){return "REQUIRE COOKIE FILE IS STRING DATA TYPE";}
- if(typeof(Source) != "string"){return "REQUIRE SOURCE IS STRING DATA TYPE";}
- var supp_meod = ["GET","POST","PUT","DELETE"];
- var supp_pro = ["HTTP","HTTPS"];
- Link = Trim(Link.toString());
- Meod = Trim(Meod.toString());
- Source = Trim(Source.toString());
- var Cookies = ScriptProperties.getProperty(CookieFile);
- if(Cookies == null){
- Cookies = "";
- }else{
- Cookies = Trim(Cookies.toString());
- }
- if(Link == "" || Meod == ""){return "LINK OR METHOD IS MISSING";}
- Meod = Meod.toUpperCase();
- if(supp_meod.indexOf(Meod) == -1){return "METHOD NOT SUPPORT";}
- var check_pro = Link.toString().split("://");
- if(supp_pro.indexOf(check_pro[0].toUpperCase()) == -1){return "PROTOCOL NOT SUPPORT";}
- var idem = 0;
- var vmkCauHinh = {};
- var vmkHeaders = Headers;
- var vmkPayLoad = "";
- // GOOGLE NOT ALLOW CHANGE USER-AGENT
- if(Cookies != ""){vmkHeaders["Cookie"] = Cookies;}
- if(Source != ""){vmkHeaders["Referer"] = Source;}
- vmkCauHinh["headers"] = vmkHeaders;
- vmkCauHinh["method"] = Meod.toLowerCase();
- for(var index in DLieuSend){idem += 1;}
- if(Meod == "GET"){
- if(idem != 0){
- for(var i in DLieuSend){vmkPayLoad = vmkPayLoad + i + "=" + UrlEncode3986(DLieuSend[i],"GET") + "&";}
- if(Link.indexOf("?") != -1){Link = Link.substring(0,Link.indexOf("?"));}
- Link = Link + "?" + vmkPayLoad.replace(/\&$/,"");
- }
- }
- if(Meod == "POST"){
- if(idem != 0){
- for(var i in DLieuSend){vmkPayLoad = vmkPayLoad + i + "=" + UrlEncode3986(DLieuSend[i],"POST") + "&";}
- vmkCauHinh["payload"] = vmkPayLoad.replace(/\&$/,"");
- }
- for(var i in vmkCauHinh["headers"]){
- if(i.toLowerCase() == "content-type"){
- vmkCauHinh["contentType"] = vmkCauHinh["headers"][i];
- }
- }
- }
- try{
- var response = UrlFetchApp.fetch(Link,vmkCauHinh);
- Cookies = response.getAllHeaders()['Set-Cookie'];
- if(Cookies != undefined){
- if(Cookies != ""){ScriptProperties.setProperty(CookieFile, Cookies.toString());}
- }
- return {"headerz": response.getAllHeaders(),"bodyz": response.getContentText()};
- }catch(e){
- return e;
- }
- }
- function vmkCurlTESTER(){
- Logger.clear();
- // EXAMPLE GET
- var link = "https://www.neobux.com/m/l/?a=1&b=2&c=3";
- var source = "http://www.google.com";
- var CookieFile = "vmkCookies.ini";
- var DLieuSend = {
- "login": "yes",
- "username": "admin",
- "password": "123 456 789"
- };
- var headers = {
- "X-Sign": "ManMan89",
- "Accept-Language": "en-us,en;q=0.5",
- "Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.7",
- "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*'.'/*;q=0.8"
- };
- var vmkopen = vmkCurl(link, "GET", headers, DLieuSend, CookieFile, source);
- Logger.log(vmkopen);
- // EXAMPLE POST
- var link = "https://www.neobux.com/m/l/?a=1&b=2&c=3";
- var source = "http://www.google.com";
- var CookieFile = "vmkCookies.ini";
- var DLieuSend = {
- "login": "yes",
- "username": "admin",
- "password": "123 456 789"
- };
- var headers = {
- "X-Sign": "ManMan89",
- "Accept-Language": "en-us,en;q=0.5",
- "Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.7",
- "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
- "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*'.'/*;q=0.8"
- };
- var vmkopen = vmkCurl(link, "POST", headers, DLieuSend, CookieFile, source);
- Logger.log(vmkopen);
- }
- function UrlEncode3986(DLieu,Meod){
- var kq = "";
- var supp_meod = ["GET","POST"];
- if(typeof(DLieu) != "string"){return "REQUIRE DATA IS STRING DATA TYPE";}
- if(typeof(Meod) != "string"){return "REQUIRE METHOD IS STRING DATA TYPE";}
- DLieu = Trim(DLieu.toString());
- Meod = Trim(Meod.toString());
- if(DLieu == "" || Meod == ""){return "DATA OR METHOD IS MISSING";}
- Meod = Meod.toUpperCase();
- if(supp_meod.indexOf(Meod) == -1){return "METHOD NOT SUPPORT";}
- var vmkreplace = {
- "!": "%21",
- "*": "%2A",
- "'": "%27",
- "(": "%28",
- ")": "%29"
- };
- kq = encodeURIComponent(DLieu);
- for(var val in vmkreplace){kq = kq.split(val).join(vmkreplace[val]);}
- if(Meod == "POST"){kq = kq.replace(/%20/g,'+');}
- return kq;
- }
- function Trim(string){
- if(typeof(string) === "undefined"){return ""}
- return string.toString().replace(/^\s\s*/,'').replace(/\s\s*$/,'');
- }
Add Comment
Please, Sign In to add comment