Skip to content

Commit 0804db4

Browse files
peterpeter
authored andcommitted
v2.0.10
1 parent 9c3c47c commit 0804db4

File tree

9 files changed

+507
-392
lines changed

9 files changed

+507
-392
lines changed

app/localWebServer.js

Lines changed: 57 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ class localServer {
113113
this.domainPool = new Map();
114114
this.twitterDataInit = false;
115115
this.twitterData = [];
116+
this.currentTwitterAccount = -1;
116117
this.doingCreateTweetData = false;
117118
this.expressServer.set('views', Path.join(__dirname, 'views'));
118119
this.expressServer.set('view engine', 'pug');
@@ -487,9 +488,8 @@ class localServer {
487488
socket.on('pingCheck', CallBack1 => {
488489
CallBack1();
489490
if (process.platform === 'linux') {
490-
return socket.emit('pingCheck', null, -1);
491+
return socket.emit('pingCheckSuccess', true);
491492
}
492-
saveLog(`socket.on ( 'pingCheck' )`);
493493
if (!this.regionV1 || this.pingChecking) {
494494
saveLog(`!this.regionV1 [${!this.regionV1}] || this.pingChecking [${this.pingChecking}]`);
495495
return socket.emit('pingCheck');
@@ -501,7 +501,7 @@ class localServer {
501501
}
502502
catch (ex) {
503503
console.log(`netPing.createSession err`, ex);
504-
return socket.emit('pingCheck', null, -1);
504+
return socket.emit('pingCheckSuccess', true);
505505
}
506506
Async.eachSeries(this.regionV1, (n, next) => {
507507
return Tool.testPing(n.testHostIp, (err, ping) => {
@@ -609,31 +609,63 @@ class localServer {
609609
});
610610
});
611611
}
612+
deleteCurrentAccount() {
613+
if (this.currentTwitterAccount < 0) {
614+
return;
615+
}
616+
this.twitterData.splice(this.currentTwitterAccount, 1);
617+
return Tool.saveEncryptoData(Tool.twitterDataFileName, this.twitterData, this.config, this.savedPasswrod, err => {
618+
if (err) {
619+
return saveLog(`saveANEWTwitterData got error: ${err.messgae}`);
620+
}
621+
});
622+
}
623+
setCurrentTwitterAccount(account) {
624+
this.currentTwitterAccount = this.twitterData.findIndex(n => {
625+
return n.access_token_secret === account.access_token_secret;
626+
});
627+
}
628+
TwitterError(err, CallBack) {
629+
if (typeof err === 'object') {
630+
console.log(`TwitterError err = [${Util.inspect(err)}]`);
631+
if (err.message && /Invalid or expired token/i.test(err.message)) {
632+
console.log(`Twitter account error!`);
633+
this.deleteCurrentAccount();
634+
return CallBack(1);
635+
}
636+
}
637+
return CallBack(2);
638+
}
612639
getTimelines(socket, account, CallBack) {
613640
const com = {
614641
command: 'twitter_home_timeline',
615642
Args: [account],
616643
error: null,
617644
requestSerial: Crypto.randomBytes(8).toString('hex')
618645
};
619-
let _return = 0;
646+
let count = 0;
620647
return this.sendRequest(socket, com, (err, res) => {
621-
_return++;
648+
count++;
622649
if (err) {
623650
return CallBack();
624651
}
625652
if (res.error) {
626-
saveLog(`this.localServer.QTClass.request ERROR typeof res.error = ${typeof res.error}`);
627-
return CallBack(res.error);
653+
return this.TwitterError(res.error, CallBack);
628654
}
629655
if (res.Args && res.Args.length > 0) {
630656
let uu = null;
631657
try {
632658
uu = JSON.parse(Buffer.from(res.Args[0], 'base64').toString());
633659
}
634660
catch (ex) {
661+
this.TwitterError(2, CallBack);
635662
return saveLog(`getTimelines QTClass.request return JSON.parse Error! _return [${ex} ]`);
636663
}
664+
if (count >= uu.CoNET_totalTwitter - 1) {
665+
console.log(`socket.emit ( 'getTimelinesEnd' )`);
666+
socket.emit('getTimelinesEnd');
667+
}
668+
console.log(`Total Tweets [${uu.CoNET_totalTwitter}] current [${count}]`);
637669
return CallBack(null, uu);
638670
}
639671
});
@@ -729,6 +761,9 @@ class localServer {
729761
if (err) {
730762
return CallBack();
731763
}
764+
if (res.error) {
765+
this.TwitterError(res.error, CallBack);
766+
}
732767
if (res.Args && res.Args.length > 0) {
733768
let uu = null;
734769
try {
@@ -739,10 +774,6 @@ class localServer {
739774
}
740775
return CallBack(null, uu);
741776
}
742-
if (res.error) {
743-
saveLog(`this.localServer.QTClass.request ERROR typeof res.error = ${typeof res.error}`);
744-
return CallBack(res.error);
745-
}
746777
});
747778
}
748779
createTweetData(tweet, CallBack) {
@@ -900,6 +931,18 @@ class localServer {
900931
}
901932
return post(null);
902933
}
934+
tweetTimeCallBack(socket, err, tweets) {
935+
if (err) {
936+
socket.emit('getTimelines', err);
937+
return saveLog(`socket.on ( 'getTimelines' return [${err.message}]`);
938+
}
939+
return this.createTweetData(tweets, (err, tweet) => {
940+
if (err) {
941+
return console.log(`getTweetCount error`, err);
942+
}
943+
return socket.emit('getTimelines', tweet);
944+
});
945+
}
903946
listenAfterTwitterLogin(socket) {
904947
socket.on('addTwitterAccount', (addTwitterAccount, CallBack1) => {
905948
CallBack1();
@@ -939,21 +982,9 @@ class localServer {
939982
socket.on('getTimelines', (item, CallBack1) => {
940983
CallBack1();
941984
delete item['twitter_verify_credentials'];
942-
let getTimelinesCount = 0;
985+
this.setCurrentTwitterAccount(item);
943986
return this.getTimelines(socket, item, (err, tweets) => {
944-
getTimelinesCount++;
945-
if (err) {
946-
socket.emit('getTimelines', err);
947-
return saveLog(`socket.on ( 'getTimelines' return [${getTimelinesCount}] error, [${err.message}]`);
948-
}
949-
saveLog(`doinging createTweetData for count [${getTimelinesCount}]`);
950-
return this.createTweetData(tweets, (err, tweet) => {
951-
saveLog(`createTweetData CallBack! [${getTimelinesCount}]`);
952-
if (err) {
953-
return console.log(`getTweetCount error`, err);
954-
}
955-
return socket.emit('getTimelines', tweet);
956-
});
987+
return this.tweetTimeCallBack(socket, err, tweets);
957988
});
958989
});
959990
socket.on('mediaFileUpdata', (uploadId, data, part, CallBack1) => {
@@ -973,14 +1004,7 @@ class localServer {
9731004
socket.on('getTimelinesNext', (item, maxID, CallBack1) => {
9741005
CallBack1();
9751006
return this.getTimelinesNext(socket, item, maxID, (err, tweets) => {
976-
if (err) {
977-
return socket.emit('getTimelinesNext', err);
978-
}
979-
if (tweets) {
980-
return this.createTweetData(tweets, (err, tweet) => {
981-
return socket.emit('getTimelines', tweet);
982-
});
983-
}
1007+
return this.tweetTimeCallBack(socket, err, tweets);
9841008
});
9851009
});
9861010
socket.on('twitter_postNewTweet', (account, postData, CallBack1) => {

app/localWebServer.ts

Lines changed: 76 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ export default class localServer {
133133
private domainPool: Map < string, domainData > = new Map ()
134134
private twitterDataInit = false
135135
private twitterData: TwitterAccount[] = []
136+
private currentTwitterAccount = -1
136137
private doingCreateTweetData = false
137138

138139
public CoNET_systemError () {
@@ -515,13 +516,12 @@ export default class localServer {
515516
socket.on ( 'pingCheck', CallBack1 => {
516517
CallBack1 ()
517518
if ( process.platform === 'linux') {
518-
return socket.emit ( 'pingCheck', null, -1 )
519+
return socket.emit ( 'pingCheckSuccess', true )
519520
}
520521

521522

522-
saveLog (`socket.on ( 'pingCheck' )`)
523523
if ( !this.regionV1 || this.pingChecking ) {
524-
saveLog (`!this.regionV1 [${ !this.regionV1 }] || this.pingChecking [${ this.pingChecking }]`)
524+
saveLog ( `!this.regionV1 [${ !this.regionV1 }] || this.pingChecking [${ this.pingChecking }]`)
525525
return socket.emit ( 'pingCheck' )
526526
}
527527

@@ -531,7 +531,7 @@ export default class localServer {
531531
const session = netPing.createSession ()
532532
} catch ( ex ) {
533533
console.log ( `netPing.createSession err`, ex )
534-
return socket.emit ( 'pingCheck', null, -1 )
534+
return socket.emit ( 'pingCheckSuccess', true )
535535
}
536536
Async.eachSeries ( this.regionV1, ( n: regionV1, next ) => {
537537

@@ -548,7 +548,7 @@ export default class localServer {
548548

549549
})
550550

551-
socket.on ('promoCode', ( promoCode, CallBack1 ) => {
551+
socket.on ( 'promoCode', ( promoCode, CallBack1 ) => {
552552
CallBack1 ()
553553
const com: QTGateAPIRequestCommand = {
554554
command: 'promoCode',
@@ -658,6 +658,39 @@ export default class localServer {
658658

659659
}
660660

661+
private deleteCurrentAccount () {
662+
if ( this.currentTwitterAccount < 0 ) {
663+
return
664+
}
665+
this.twitterData.splice ( this.currentTwitterAccount, 1 )
666+
return Tool.saveEncryptoData ( Tool.twitterDataFileName, this.twitterData, this.config, this.savedPasswrod, err => {
667+
if ( err ) {
668+
return saveLog (`saveANEWTwitterData got error: ${ err.messgae }`)
669+
}
670+
671+
})
672+
}
673+
674+
private setCurrentTwitterAccount ( account: TwitterAccount ) {
675+
676+
this.currentTwitterAccount = this.twitterData.findIndex ( n => {
677+
return n.access_token_secret === account.access_token_secret
678+
})
679+
680+
}
681+
682+
private TwitterError ( err, CallBack ) {
683+
if ( typeof err === 'object') {
684+
console.log (`TwitterError err = [${ Util.inspect ( err )}]`)
685+
if ( err.message && /Invalid or expired token/i.test( err.message )) {
686+
console.log ( `Twitter account error!`)
687+
this.deleteCurrentAccount ()
688+
return CallBack ( 1 )
689+
}
690+
}
691+
return CallBack ( 2 )
692+
}
693+
661694
private getTimelines ( socket: SocketIO.Socket, account: TwitterAccount, CallBack ) {
662695

663696
const com: QTGateAPIRequestCommand = {
@@ -666,27 +699,30 @@ export default class localServer {
666699
error: null,
667700
requestSerial: Crypto.randomBytes(8).toString ('hex' )
668701
}
669-
let _return = 0
702+
let count = 0
670703
return this.sendRequest ( socket, com, ( err, res: QTGateAPIRequestCommand ) => {
671-
_return ++
704+
count ++
672705
if ( err ) {
673706
return CallBack ()
674707
}
675708

676709
if ( res.error ) {
677-
saveLog ( `this.localServer.QTClass.request ERROR typeof res.error = ${ typeof res.error }`)
678-
679-
return CallBack ( res.error )
710+
return this.TwitterError ( res.error, CallBack )
680711
}
681712

682713
if ( res.Args && res.Args.length > 0 ) {
683714
let uu: twitter_post = null
684715
try {
685716
uu = JSON.parse ( Buffer.from ( res.Args [0], 'base64' ).toString ())
686717
} catch ( ex ) {
718+
this.TwitterError ( 2, CallBack )
687719
return saveLog ( `getTimelines QTClass.request return JSON.parse Error! _return [${ ex } ]` )
688720
}
689-
721+
if ( count >= uu.CoNET_totalTwitter - 1 ) {
722+
console.log (`socket.emit ( 'getTimelinesEnd' )`)
723+
socket.emit ( 'getTimelinesEnd' )
724+
}
725+
console.log (`Total Tweets [${ uu.CoNET_totalTwitter }] current [${count }]`)
690726
return CallBack ( null, uu )
691727
}
692728

@@ -796,6 +832,9 @@ export default class localServer {
796832
if ( err ) {
797833
return CallBack ()
798834
}
835+
if ( res.error ) {
836+
this.TwitterError ( res.error, CallBack )
837+
}
799838

800839
if ( res.Args && res.Args.length > 0 ) {
801840

@@ -809,10 +848,7 @@ export default class localServer {
809848

810849
return CallBack ( null, uu )
811850
}
812-
if ( res.error ) {
813-
saveLog ( `this.localServer.QTClass.request ERROR typeof res.error = ${ typeof res.error }` )
814-
return CallBack ( res.error )
815-
}
851+
816852

817853
})
818854
}
@@ -992,6 +1028,27 @@ export default class localServer {
9921028
return post ( null )
9931029
}
9941030

1031+
private tweetTimeCallBack ( socket: SocketIO.Socket, err, tweets: twitter_post ) {
1032+
1033+
if ( err ) {
1034+
socket.emit ( 'getTimelines', err )
1035+
return saveLog ( `socket.on ( 'getTimelines' return [${ err.message }]`)
1036+
1037+
}
1038+
1039+
return this.createTweetData ( tweets, ( err, tweet: twitter_post ) => {
1040+
1041+
1042+
if ( err ) {
1043+
return console.log (`getTweetCount error`, err )
1044+
}
1045+
1046+
return socket.emit ( 'getTimelines', tweet )
1047+
1048+
1049+
})
1050+
}
1051+
9951052
private listenAfterTwitterLogin ( socket: SocketIO.Socket ) {
9961053

9971054

@@ -1040,26 +1097,10 @@ export default class localServer {
10401097
socket.on ( 'getTimelines', ( item: TwitterAccount, CallBack1 ) => {
10411098
CallBack1()
10421099
delete item ['twitter_verify_credentials']
1043-
let getTimelinesCount = 0
1100+
this.setCurrentTwitterAccount ( item )
1101+
10441102
return this.getTimelines ( socket, item, ( err, tweets: twitter_post ) => {
1045-
getTimelinesCount ++
1046-
if ( err ) {
1047-
socket.emit ( 'getTimelines', err )
1048-
return saveLog (`socket.on ( 'getTimelines' return [${ getTimelinesCount }] error, [${ err.message }]`)
1049-
1050-
}
1051-
saveLog ( `doinging createTweetData for count [${ getTimelinesCount }]`)
1052-
return this.createTweetData ( tweets, ( err, tweet: twitter_post ) => {
1053-
saveLog (`createTweetData CallBack! [${ getTimelinesCount }]`)
1054-
1055-
if ( err ) {
1056-
return console.log (`getTweetCount error`, err )
1057-
}
1058-
1059-
return socket.emit ( 'getTimelines', tweet )
1060-
1061-
1062-
})
1103+
return this.tweetTimeCallBack ( socket, err, tweets )
10631104

10641105
})
10651106
})
@@ -1081,16 +1122,7 @@ export default class localServer {
10811122
socket.on ( 'getTimelinesNext', ( item: TwitterAccount, maxID: number, CallBack1 ) => {
10821123
CallBack1 ()
10831124
return this.getTimelinesNext ( socket, item, maxID, ( err, tweets: twitter_post ) => {
1084-
if ( err ) {
1085-
return socket.emit ('getTimelinesNext', err )
1086-
1087-
}
1088-
1089-
if ( tweets ) {
1090-
return this.createTweetData ( tweets, ( err, tweet ) => {
1091-
return socket.emit ( 'getTimelines', tweet )
1092-
})
1093-
}
1125+
return this.tweetTimeCallBack ( socket, err, tweets )
10941126

10951127
})
10961128
})

0 commit comments

Comments
 (0)