@@ -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 && / I n v a l i d o r e x p i r e d t o k e n / 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