pomelo1/vmess1.js
2021-08-21 19:11:46 +08:00

1307 lines
28 KiB
JavaScript

var fs = require('fs');
var exec = require('child_process').exec;
var express = require("express");
var app = express();
var bodyParser = require("body-parser");
var https = require('https');
var path = require('path');
const fileUpload = require('express-fileupload');
const cors = require('cors');
const morgan = require('morgan');
const _ = require('lodash');
//------------------------------------------------------
var vmessListString='';
var bak='';
var isRun=false;
var freeVersionString="";
var fullVersionString="";
//-----------------------------------------------------
//var execProcess = require("./exec_process.js");
var execProcess = function(command, cb){
var child = exec(command, function(err, stdout, stderr){
if(err != null){
return cb(new Error(err), null);
}else if(typeof(stderr) != "string"){
return cb(new Error(stderr), null);
}else{
return cb(null, stdout);
}
});
}
//----------------------------------------------------
var optionsArray = [];
var options0 = {
index:0,
host : 'github.com',
port : 443,
path : '/Alvin9999/new-pac/wiki/v2ray%E5%85%8D%E8%B4%B9%E8%B4%A6%E5%8F%B7',
method : 'GET',
timeout: 8000
}
var options1 = {
index :1,
host : 'awesomeopensource.com',
port : 443,
path : '/project/iwxf/free-v2ray?categoryPage=11',///project/iwxf/free-v2ray?categoryPage=11',
method : 'GET',
timeout: 8000
}
var options2 = {
index :2,
host : 'github.com',
port : 443,
path : '/iwxf/free-v2ray',///project/iwxf/free-v2ray?categoryPage=11',
method : 'GET',
timeout: 8000
}
var options3 = {
index :3,
host : 'github.com',
port : 443,
path : '/selierlin/Share-SSR-V2ray/blob/master/1-share-ssr-v2ray.md',///project/iwxf/free-v2ray?categoryPage=11',
method : 'GET',
timeout: 8000
}
var originalAmountArray=[];
var actualAmountArray=[];
var vmessStringArray=[];
var bakVmessStringArray=[];
var vmessSecretStringArray=[];
var bakST="";
//----------------------------------------------------
optionsArray.push(options0);
optionsArray.push(options1);
optionsArray.push(options2);
optionsArray.push(options3);
var valueArray=[9,5,3,8,0,2,7,4,1,6];
//var wordStringMaxStandard="f%D#gs*SvW)$KPaQ8u:X;'z9>?ZbM1dh3jlR6E(nIpBrVt|w0A25<eC7~!y@oJ4qTU={L}[iG]xkmYHc&^_FO+`-N,./";
//var wordStringMaxOriginal="*SvW)$KPaQ8u:X;'z9>?ZbM1dh3jlR6E(nIpBrVt|w0A25<eC7~!y@of%D#gsJ4qTU={L}[iG]xkmYHc&^_FO+`-N,./";
var wordStringMaxStandard="\\\"f%D#gs*SvW)$KPaQ8u:X;'z9>?ZbM1dh3jlR6E(nIpBrVt|w0A25<eC7~!y@oJ4qTU={L}[iG]xkmYHc&^_FO+`-N,./";
var wordStringMaxOriginal="\\\"*SvW)$KPaQ8u:X;'z9>?ZbM1dh3jlR6E(nIpBrVt|w0A25<eC7~!y@of%D#gsJ4qTU={L}[iG]xkmYHc&^_FO+`-N,./";
function decodeASCKeyWithOffset(key,offset){
var offset1=key.length-offset;
var s1=key.substring(0,offset1*2);
var s2=key.substring(offset1*2,key.length);
return s2+s1;
}
function encodeASCKeyWithOffset(key,offset){
var s1=key.substring(0,offset*2);
var s2=key.substring(offset*2,key.length);
return s2+s1;
}
function getRandomWordStringMax(s){
var h='';
var t=s;
for (var i=0;i<s.length;i++){
v= Math.floor((Math.random()*t.length));
h=h+t[v];
t=t.substring(0,v)+t.substring(v+1,t.length);
}
return h;
}
function getASCStringFromWordStringMax(s){
var h='';
var c='';
var numberString='';
var n=-1;
for (var i=0;i<s.length;i++){
c=s[i];
n = wordStringMaxStandard.indexOf(c);
if(n>9)
numberString=n.toString();
else
numberString='0'+n.toString();
h=h+numberString;
}
return h;
}
function encodeString(wordStringMax,s){
var valueArray=[9,5,3,8,0,2,7,4,1,6];
var returnString="";
var t="";
var t1="";
var step=0;
var ttt="";
for(var i=0;i<s.length;i++){
var c=s[i];
if(c=='\r'){
i=i+1;
c=s[i];
if(c=='\n'){
returnString=returnString+t+"\r\n";
if(step==7){
}
if(step==8){
}
step=step+1;
if(step==7){
}
if(step==8){
}
ttt="";
t="";
t1="";
}
}else if(c=='\n'){
returnString=returnString+t+"\n";
step=step+1;
if(step==7){
}
if(step==8){
}
t="";
}else{
var n = wordStringMax.indexOf(c);
var k=step % 10;
var m=valueArray[k] ;
var p=n+m +i ;
p=p % wordStringMax.length;
t=t+wordStringMax[p];
t1=t1+c;
}
}
return returnString;// t;
}
/*
var newString=getRandomWordStringMax(wordStringMaxStandard);
console.log(newString);
var s=encodeString(newString,"123==\r\n");
console.log(s);
var keyString0=getASCStringFromWordStringMax(newString);
console.log(keyString0);
var keyString=encodeASCKeyWithOffset(keyString0,10);
console.log(keyString);
*/
//var wordStringMaxOriginal="*SvW)$KPaQ8u:X;'z9>?ZbM1dh3jlR6E(nIpBrVt|w0A25<eC7~!y@of%D#gsJ4qTU={L}[iG]xkmYHc&^_FO+`-N,./";
//var wordStringMaxOriginal="UGWgnEYMiErDTIUPHnnAhiRQSZmBeWhkddSicrCXNDRlDjRnDhBmcumKlBDbwMdogsbKInDncmyioAeEkzkcECwOPxBn";
var wordStringMaxFull="";
var globalStep=0;
var d=0;
var aaa="888\r\n9999";
function getASCWordStringMax(s){
var h='';
var c='';
var numberString='';
var n=-1;
for (var i=0;i<s.length;i++){
c=s[i];
n = wordStringMaxStandard.indexOf(c);
if(n>9)
numberString=n.toString();
else
numberString='0'+n.toString();
h=h+numberString;
}
return h;
}
function encodeString(wordStringMax,s){
var returnString="";
var t="";
var t1="";
var step=0;
var ttt="";
for(var i=0;i<s.length;i++){
var c=s[i];
if(c=='\r'){
i=i+1;
c=s[i];
if(c=='\n'){
returnString=returnString+t+"\r\n";
if(step==7){
}
if(step==8){
}
step=step+1;
if(step==7){
}
if(step==8){
}
ttt="";
t="";
t1="";
}
}else if(c=='\n'){
returnString=returnString+t+"\n";
step=step+1;
if(step==7){
}
if(step==8){
}
t="";
}else{
var n = wordStringMax.indexOf(c);
var k=step % 10;
var m=valueArray[k] ;
var p=n+m +i ;
p=p % wordStringMax.length;
t=t+wordStringMax[p];
t1=t1+c;
}
}
return returnString;// t;
}
function encodeString00(wordStringMax,s){
var valueArray=[9,5,3,8,0,2,7,4,1,6];
var returnString="";
var t="";
var t1="";
var step=0;
var ttt="";
for(var i=0;i<s.length;i++){
var c=s[i];
var n = wordStringMax.indexOf(c);
var k=step % 10;
var m=valueArray[k] ;
var p=n+m +i ;
p=p % wordStringMax.length;
t=t+wordStringMax[p];
t1=t1+c;
}
returnString=returnString+t ;
return returnString;
}
function encodeString0(wordStringMax,s){
var returnString="";
var t="";
var t1="";
var step=0;
var ttt="";
for(var i=0;i<s.length;i++){
var c=s[i];
var n = wordStringMax.indexOf(c);
var k=step % 10;
var m=valueArray[k] ;
var p=n+m +i ;
p=p % wordStringMax.length;
t=t+wordStringMax[p];
t1=t1+c;
}
returnString=returnString+t +"\n";
return returnString;
}
function decodeS(wordStringMax,s){
var returnString="";
var t="";
var t1="";
var step=0;
var ttt="";
for(var i=0;i<s.length;i++){
var c=s[i];
if(c=='\r'){
i=i+1;
c=s[i];
if(c=='\n'){
returnString=returnString+t+"\r\n";
step=step+1;
t="";
ttt="";
}
}else if(c=='\n'){
returnString=returnString+t+"\n";
step=step+1;
t="";
ttt="";
}else{
var p = wordStringMax.indexOf(c);
var k = step % 10;
var m = valueArray[k];
var v = 0;
while ((v+p) < (m + i ))
{
v=v+ wordStringMax.length;
}
var n =p+v - m - i;
if (n == wordStringMax.length) n = 0;
t = t + wordStringMax[n];
}
}
return returnString;// t;
}
function decodeHTML(index, htmlString){
switch(index){
case 0:{//host : 'github.com',
//port : 443,
//path : '/Alvin9999/new-pac/wiki/v2ray%E5%85%8D%E8%B4%B9%E8%B4%A6%E5%8F%B7',
var tems='';
var s=htmlString;
var exitNumber=false;
var errorNumber=false;
var tStringArray=[];
do{
var x=s.indexOf('vmess://');
if (x==-1){
exitNumber=true;
break;
}
var l=s.length;
var sub=s.substring(x,l);//l-1 correct
var l1=sub.length;
var x1=sub.indexOf('</p');
if(x1==-1){
//errorNumber=true;
break;
}
var ts=sub.substring(0,x1) ;//x1-1 correct
tems=tems+ts +'\r\n';
tStringArray.push(ts +'\r\n');
s=sub.substring( x1, l1);// l1-1 correct
}while (exitNumber==false);
if(errorNumber==false){
vmessListString=vmessListString + tems;
vmessStringArray.push(tStringArray);
globalStep=globalStep+1;
}
break;
}
case 1:{
var tems='';
var s=htmlString;
var exitNumber=false;
var errorNumber=false;
var tStringArray=[];
var n=0;
do{
var x=s.indexOf('vmess://');
if (x==-1){
exitNumber=true;
break;
}
var l=s.length;
var sub=s.substring(x,l-1 );//l correct
var x1=sub.indexOf('</code>');
if(x1==-1){
errorNumber=true;
break;
}
var tems=sub.substring(0,x1-1) ;//x1 correct
break;
}while (exitNumber==false);
var h='';
var ts="";
for(var i=0;i<tems.length;i++){
h=tems[i];
if(h=='\n'){
tems=tems+ts +'\r\n';
tStringArray.push(ts +'\r\n');
ts="";
}else{
ts =ts+h;
}
}
if(errorNumber==false){
vmessListString=vmessListString+tems;
vmessStringArray.push(tStringArray);
globalStep=globalStep+1;
}
break;
}
case 2:{
var tems='';
var s=htmlString;
var exitNumber=false;
var errorNumber=false;
var tStringArray=[];
var n=0;
do{
var x=s.indexOf('vmess://');
if (x==-1){
exitNumber=true;
break;
}
var l=s.length;
var sub=s.substring(x,l-1 );//l correct
var x1=sub.indexOf('</code>');
if(x1==-1){
errorNumber=true;
break;
}
var tems=sub.substring(0,x1-1) ;//x1 correct
break;
}while (exitNumber==false);
if(errorNumber==false){
vmessListString=vmessListString+tems;
globalStep=globalStep+1;
vmessStringArray.push(tStringArray);
}
break;
}
case 3:{
var tems='';
var s=htmlString;
var exitNumber=false;
var errorNumber=false;
var tStringArray=[];
do{
var x=s.indexOf('vmess://');
if (x==-1){
exitNumber=true;
break;
}
var l=s.length;
var sub=s.substring(x,l-1);//l correct
var l1=sub.length;
var x1=sub.indexOf('</p>');
if(x1==-1){
errorNumber=true;
break;
}
var ts=sub.substring(0,x1-1) ;//x1 correct
tems=tems+ts +'\r\n';
tStringArray.push(ts + '\r\n');
s=sub.substring( x1, l1-1 );//l1-x1 correct
}while (exitNumber==false);
if(errorNumber==false){
vmessListString=vmessListString+tems;
globalStep=globalStep+1;
vmessStringArray.push(tStringArray);
}
break;
}
}
}
function getFormatTwoDigitalString(s){
if(s.length==1){
return "0"+s;
}else{
return s;
}
}
function getFormatFourDigitalString(s){
if(s.length==1){
return "000"+s;
}else if(s.length==2){
return "00"+s;
}else if(s.length==3){
return "0"+s;
}else{
return s;
}
}
var fileString0="";
var aFileArray=[];
var bFileArray=[];
var aStringArray=[];
var bStringArray=[];
//a.txt b.txt
var aFileString="";
var aAmount=0;
var aString="";
var bAmount=0;
var bFileString="";
var bString="";
//------------------------------------------------------------------------------------------
function formatLinkInfo(){
aFileArray=[];
bFileArray=[];
aStringArray=[];
bStringArray=[];
var tArray=[];
var tAmount=0;
var isNewVersion=false;
if(vmessStringArray.length==0){
isNewVersion=false;
}else{
if(vmessStringArray.length!=bakVmessStringArray.length){
isNewVersion=true;
}else{
var isExit=false;
for(var j=0;j<vmessStringArray.length;j++){
if(isExit){
break;
}
if(vmessStringArray[j].length!=bakVmessStringArray[j].length){
isNewVersion=true;
break;
}
for(var i=0;i<vmessStringArray[j].length;i++){
if(vmessStringArray[j][i]!=bakVmessStringArray[j][i]){
isExit=true;
break;
}
//console.log(vmessStringArray[j][i]);
}
}
}
}
console.log("================="+tArray.length);
for(var j=0;j<vmessStringArray.length;j++){
tAmount=tAmount+vmessStringArray[j].length;
for(var i=0;i<vmessStringArray[j].length;i++){
tArray.push(vmessStringArray[j][i]);//tArray[i]+'\r\n';
//console.log(vmessStringArray[j][i]);
}
}
console.log("================="+tArray.length);
var maxA=5;
var maxB=10;
var tDivA=Math.floor(tAmount/maxA);
var tModA=tAmount % maxA;
if (tModA!=0) tDivA=tDivA+1;
//-----------------------------------------------------
var tDivB=Math.floor(tAmount/maxB);
var tModB=tAmount % maxB;
if (tModB!=0) tDivB=tDivB+1;
console.log(tAmount+'|'+maxA+'|'+maxB+'|' +tDivA+"|"+tModA+"|"+tDivB+"|"+tModB+"|");
var amountAFileArray=tDivA;
var amountBFileArray=tDivB;
//aStringArray.push(vmessListString);
//bStringArray.push(vmessListString);
vmessSecretStringArray=[];
const _MaxTrial=5;
const _MaxFull=10;
for(var j=0;j<tDivA;j++){
if(tModA!=0){
var h='';
if(j==tDivA-1){
for(var i=0;i<_MaxTrial;i++)
h=h+tArray[tArray.length-1-i];//+'\r\n';
}else{
for(var i=0;i<_MaxTrial;i++)
h=h+tArray[j*_MaxTrial+i];//+'\r\n';
}
aStringArray.push(h);
}else{
var h='';
for(var i=0;i<_MaxTrial;i++)
h=h+tArray[j*_MaxTrial+i] +'\r\n';
aStringArray.push(h);
}
}
for(var j=0;j<tDivB;j++){
var h='';
// var h0='';
// var h1='';
// var h2='';
// var h3='';
if(tModB!=0){
//var ttt='';
if(j==tDivB-1){
for(var i=0;i<_MaxFull;i++)
h=h+tArray[tArray.length-1-i];//+'\r\n';
/*
for(var i=0;i<_MaxFull;i++){//5
//h=h+tArray[tArray.length-1-i];//+'\r\n';
ttt=tArray[tArray.length-1-i];
h1=ttt.substring(0,ttt.length-10);
h2=ttt.substring(ttt.length-9,ttt.length-4);
h3=ttt.substring(ttt.length-3,ttt.length-1);
h=h+h1+h3;
h0=h0+h2;
}
*/
}else{
for(var i=0;i<_MaxFull;i++)
h=h+tArray[j*_MaxFull+i];//+'\r\n';
/*
for(var i=0;i<_MaxFull;i++){
//h=h+tArray[j*_MaxFull+i] ;//+'\r\n';
ttt=tArray[j*_MaxFull+i];
h1=ttt.substring(0,ttt.length-10);
h2=ttt.substring(ttt.length-9,ttt.length-4);
h3=ttt.substring(ttt.length-3,ttt.length-1);
h=h+h1+h3;
h0=h0+h2;
}
*/
}
bStringArray.push(h);
}else{
var h='';
for(var i=0;i<_MaxFull;i++)
h=h+tArray[j*_MaxFull+i] +'\r\n';
bStringArray.push(h);
/*
for(var i=0;i<_MaxFull;i++)
//h=h+tArray[j*_MaxFull+i];//+'\r\n';
var ttt=tArray[j*_MaxFull+i];
h1=ttt.substring(0,ttt.length-10);
h2=ttt.substring(ttt.length-9,ttt.length-4);
h3=ttt.substring(ttt.length-3,ttt.length-1);
h=h+h1+h3;
h0=h0+h2;
bStringArray.push(h);
*/
}
//vmessSecretStringArray.push(h2);
}
//-------------------------------------------------------------
for(var j=0;j<amountAFileArray;j++){
//aFileArray.push("a"+ j.toString()+".txt");
aFileArray.push("a"+ j.toString()+".txt");
}
for(var j=0;j<amountBFileArray;j++){
//bFileArray.push("b"+ j.toString()+".txt");
bFileArray.push("b"+ j.toString()+".txt");
}
today = new Date();
var yeT=today.getFullYear();
var moT=today.getMonth()+1;
var daT=today.getDate();
var hoT=today.getHours();
var miT=today.getMinutes();
var sT=yeT.toString()+getFormatTwoDigitalString(moT.toString())+getFormatTwoDigitalString(daT.toString())+getFormatTwoDigitalString(hoT.toString())+getFormatTwoDigitalString(miT.toString());
console.log("###"+sT);
if(isNewVersion){
bakST=sT;
}else{
sT=bakST;
}
aFileString="a.txt";
//aString="{v:\""+sT+"\",u:\"a\",a:"+aFileArray.length.toString()+"}";//10
aString="{\"v\":\""+sT+"\",\"u\":\"a\",\"a\":\""+aFileArray.length.toString()+"\"}";//10
freeVersionString=sT;
//bString="{\"v\":\"303\",\"m\":\"https://alohabooster.teriyaki.workers.dev/\",\"u\":\"b\",\"a\":\"5\"}";//5
bFileString="b.txt";
//bString="{v:\""+sT+"\",m:\"https://alohabooster.teriyaki.workers.dev/\",u:\"b\",a:\"+bFileArray.length.toString()+\"}";//5
bString="{\"v\":\""+sT+"\",\"m\":\"https://alohabooster.teriyaki.workers.dev/\",\"u\":\"b\",\"a\":\""+bFileArray.length.toString()+"\"}";//5
fullVersionString=sT;
}
async function getPage(urlString) {
const url = urlString;
return new Promise((resolve) => {
https.get(url, res => {
let data = '';
res.on('data', chunk => { data += chunk })
res.on('end', () => {
//resolve(do_awesome_things_with_data(data));
console.log("--->"+data);
})
})
})
}
function getASCStringFromDigitalString(s)//WordStringMaxFromASCString( s)
{
var h = "";
var t = "";
var n = -1;
var l = s.length / 2;
//console.log(l);
for (var i = 0; i < l; i++)
{
var c1 = s[i * 2];
var c2 = s[i * 2+1];
h = "";
if (c1 == '0')
h = h+c2;
else
h = h+ c1 + c2 ;
n=parseInt (h);
var c = wordStringMaxStandard[n];
t = t + c;
}
return t;
}
function getDigitalStringFromASCString(s){//getASCStringFromWordStringMax(s){
var h='';
var c='';
var numberString='';
var n=-1;
for (var i=0;i<s.length;i++){
c=s[i];
n = wordStringMaxStandard.indexOf(c);
if(n>9)
numberString=n.toString();
else if(n==-1){
}else{
numberString='0'+n.toString();
}
h=h+numberString;
}
return h;
}
async function writeLinkInfo1(wordStringMax){
var errorNumber=0;
var aString1="[core]\r\nrepositoryformatversion = 0\r\nfilemode = false\r\nbare = false\r\nlogallrefupdates = true\r\nsymlinks = false\r\nignorecase = true\r\n[remote \"origin\"]\r\nurl = https://alohabooster:Wangzheng2020__@github.com/alohabooster/alohabooster.git\r\nfetch = +refs/heads/*:refs/remotes/origin/*\r\n[branch \"master\"]\r\nremote = origin\r\nmerge = refs/heads/master";
var aString2="[core]\r\nrepositoryformatversion = 0\r\nfilemode = false\r\nbare = false\r\nlogallrefupdates = true\r\nsymlinks = false\r\nignorecase = true\r\n[remote \"origin\"]\r\nurl = https://alohabooster:Wangzheng2020__@gitea.com/alohabooster/alohabooster.git\r\nfetch = +refs/heads/*:refs/remotes/origin/*\r\n[branch \"master\"]\r\nremote = origin\r\nmerge = refs/heads/master";
var aString3="[core]\r\nrepositoryformatversion = 0\r\nfilemode = false\r\nbare = false\r\nlogallrefupdates = true\r\nsymlinks = false\r\nignorecase = true\r\n[remote \"origin\"]\r\nurl = https://alohabooster:Wangzheng2020__@gitlab.com/alohabooster/alohabooster.git\r\nfetch = +refs/heads/*:refs/remotes/origin/*\r\n[branch \"master\"]\r\nremote = origin\r\nmerge = refs/heads/master";
var aString4="[core]\r\nrepositoryformatversion = 0\r\nfilemode = false\r\nbare = false\r\nlogallrefupdates = true\r\nsymlinks = false\r\nignorecase = true\r\n[remote \"origin\"]\r\nurl = https://alohabooster:Wangzheng2020__@bitbucket.org/alohabooster/alohabooster.git\r\nfetch = +refs/heads/*:refs/remotes/origin/*\r\n[branch \"master\"]\r\nremote = origin\r\nmerge = refs/heads/master";
await fs.writeFile(".git/config", aString3, function (err) { //gitlab
console.log('config gitlab ok->');errorNumber=0; });
await execProcess("sh command1.sh", function(err, response){//
if(!err) {
console.log('execute ok');errorNumber=0;
// usage
if(wordStringMax.length>0){
var t="https://shoujigame.com/Grapetreetown306__/setKey/"+wordStringMax;
console.log(t);
(async () => await getPage(t))();
fs.writeFile("/home/kavatec/public_html/alohabooster/data.txt", getDigitalStringFromASCString(encodeString00(wordStringMaxOriginal,freeVersionString)), function (err) {
});
fs.writeFile("/home/kavatec/public_html/alohabooster/6727179120/data.txt", getDigitalStringFromASCString(encodeString00(wordStringMaxOriginal, fullVersionString)), function (err) {
});
}
}
else {console.log('execute error'+err);errorNumber=1};
});
setTimeout(function() {
//your code to be executed after 1 second
fs.writeFile(".git/config", aString4, function (err) {
if(!err) {
console.log('config bitbucket ok->');errorNumber=0;
execProcess("sh command1.sh", function(err, response){//
if(!err){
console.log('execute ok');
}else {
console.log('execute error'+err);
}
});
}
else {console.log('execute error->'+err);errorNumber=1};
});
}, 10000);
setTimeout(function() {
//your code to be executed after 1 second
fs.writeFile(".git/config", aString2, function (err) {
if(!err) {
console.log('config gitea ok->');errorNumber=0;
execProcess("sh command1.sh", function(err, response){//
if(!err){
console.log('execute ok');
}else {
console.log('execute error '+err);
}
});
}
else {console.log('execute error->'+err);errorNumber=1};
});
}, 20000);
/*
setTimeout(function() {
//your code to be executed after 1 second
fs.writeFile(".git/config", aString1, function (err) {
if(!err) {
console.log('config github ok->');errorNumber=0;
execProcess("sh command1.sh", function(err, response){//
if(!err){
console.log('execute ok');
}else {
console.log('execute error'+err);
}
});
}
else {console.log('execute error->'+err);errorNumber=1};
});
}, 30000);
*/
}
async function writeLinkInfo(){
if(aFileArray.length>0){
console.log(aStringArray[0]);
await fs.writeFile("c0.txt", aStringArray[0], function (err) {});
await fs.writeFile("d0.txt", encodeString(wordStringMaxOriginal, aStringArray[0]), function (err) {});
}
console.log("!--!");
}
async function getCall(index, isWriteToFile, callbackFunction) {
var options=optionsArray[index];
//initialize options values, the value of the method can be changed to POST to make https post calls
//var userAccessToken = 'CAAKoIMGu5SAyfOyVhugi7cZAaZA1kHzjrdLvtPlndoKzMJ8xZBtR3YV2iX39FSnhxK1lvtfYXO5FvcbK4MVGJphxeYDZC7HJ5FCmhOr2Ys8ZBG9qYNRSfFGuzoeRgwZBdliKvoW6YPl41b8i3dfrTpR98gFAm6qag9vYM2yD0aEv47fnWQWF1SoXRs6PFFrFu5XOe';
//var appAccessToken = '24562343562751562|hPEXIpDl0CXt0tNJ';
var str = '';
var decodeString='';
//making the https get call
var getReq = https.request(options, function(res) {
res.on('data', function(data) {
str += data;
});
res.on("end", function() {
decodeHTML(index, str);
console.clear;
if(isWriteToFile){
console.log("------formatLinkInfo");
formatLinkInfo();
console.log("------writeLinkInfo");
writeLinkInfo();
console.log("------callbackFunction");
callbackFunction();
}else{
return callbackFunction();
}
});
});
//end the request
getReq.end();
getReq.on('timeout', () => {
getReq.abort();
});
getReq.on('error', function(err){
console.log("Error: ", err);
var t=[];
vmessStringArray.push(t);
if(isWriteToFile){
console.log("------formatLinkInfo");
formatLinkInfo();
console.log("------writeLinkInfo");
writeLinkInfo();
//console.log("------callbackFunction");
}
callbackFunction();
});
}
//----------------------------------------------------------------------
var today = new Date();
var time = today.getFullYear()+'/'+(today.getMonth()+1)+'/'+today.getDate()+' '+ today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds();
console.log('change on time:'+time.toString());
async function startToRun(){
vmessListString='';
isRun=true;
globalStep=0;
vmessStringArray=[];
await getCall(0, true,function(){
});
}
startToRun();
return;
//-----------------------------------------
// enable files upload
app.use(fileUpload({
createParentPath: true
}));
//add other middleware
app.use(cors());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
app.use(morgan('dev'));
//---------------------------------------------------------------
app.get('/stop/', async (req, res) => {
isRun=false;
res.send({
status: false,
message: 'stop'
});
});
app.get('/github/', async (req, res) => {
//execProcess.result
execProcess("command1.bat", function(err, response ){//sh command1.sh
if(!err){
console.log(response );
// return callbackFunction();
}else {
console.log(err);
// return callbackFunction();
}
});
res.send({
status: false,
message: 'git'
});
});
app.post('/upload/', async (req, res) => {
try {
if(!req.files) {
res.send({
status: false,
message: 'No file uploaded'
});
} else {
//Use the name of the input field (i.e. "avatar") to retrieve the uploaded file
let a = req.files.file;
a.mv('./' + a.name);
res.send({
status: false,
message: 'git'
});
}
} catch (err) {
res.status(500).send(err);
}
});
//---------------------------------------------------------------app
// default route
app.get("/", function (req, res) {
return res.send({ e: "f", i: "." });
});
app.get("/Grapetreetown306/", function (req, res) {
let user_id = req.params.id;
res.sendFile(path.join(__dirname, '/', "url.txt"));
});
app.listen(process.env.PORT || 3002, function () {
console.log("Node app is running on port 3002");
});