@@ -21,10 +21,14 @@ const UsefulScriptGlobalPageContext = {
2121 } ) ;
2222 } ,
2323 getURL : async function ( filePath ) {
24- return await UsefulScriptGlobalPageContext . Extension . sendToContentScript (
25- "getURL" ,
26- filePath
27- ) ;
24+ if ( typeof chrome ?. runtime ?. getURL === "function" ) {
25+ return await chrome . runtime . getURL ( filePath ) ;
26+ } else {
27+ return await UsefulScriptGlobalPageContext . Extension . sendToContentScript (
28+ "getURL" ,
29+ filePath
30+ ) ;
31+ }
2832 } ,
2933 } ,
3034 DOM : {
@@ -132,8 +136,8 @@ const UsefulScriptGlobalPageContext = {
132136 } ,
133137 } ,
134138 Facebook : {
135- async fetchGraphQl ( str , token ) {
136- var fb_dtsg = "fb_dtsg=" + encodeURIComponent ( token ) ;
139+ async fetchGraphQl ( str , fb_dtsg ) {
140+ var fb_dtsg = "fb_dtsg=" + encodeURIComponent ( fb_dtsg ) ;
137141 fb_dtsg += str . includes ( "variables" )
138142 ? "&" + str
139143 : "&q=" + encodeURIComponent ( str ) ;
@@ -163,7 +167,10 @@ const UsefulScriptGlobalPageContext = {
163167 scale : 1.5 ,
164168 } ;
165169 let f = new URLSearchParams ( ) ;
166- f . append ( "fb_dtsg" , require ( "DTSGInitialData" ) . token ) ;
170+ f . append (
171+ "fb_dtsg" ,
172+ await UsefulScriptGlobalPageContext . Facebook . getFbdtsg ( )
173+ ) ;
167174 f . append ( "fb_api_req_friendly_name" , "ProfileCometHeaderQuery" ) ;
168175 f . append ( "variables" , JSON . stringify ( variables ) ) ;
169176 f . append ( "doc_id" , "4159355184147969" ) ;
@@ -234,38 +241,47 @@ const UsefulScriptGlobalPageContext = {
234241 ) ;
235242 return htmlStory [ htmlStory . length - 1 ] . getAttribute ( "data-id" ) ;
236243 } ,
237- getFbdtsg ( ) {
244+ async getFbdtsg ( ) {
238245 let methods = [
239246 ( ) => require ( "DTSGInitData" ) . token ,
240247 ( ) => require ( "DTSG" ) . getToken ( ) ,
241248 ( ) => {
242- const regex = / " D T S G I n i t i a l D a t a " , \[ ] ,{ " t o k e n " : " ( .+ ?) " / gm;
243- const resp = regex . exec ( document . documentElement . innerHTML ) ;
244- return resp [ 1 ] ;
249+ return document . documentElement . innerHTML . match (
250+ / " D T S G I n i t i a l D a t a " , \[ ] ,{ " t o k e n " : " ( .+ ?) " / gm
251+ ) [ 1 ] ;
252+ } ,
253+ async ( ) => {
254+ let res = await fetch ( "https://mbasic.facebook.com/photos/upload/" ) ;
255+ let text = await res . text ( ) ;
256+ return text . match ( / n a m e = " f b _ d t s g " v a l u e = " ( .* ?) " / ) [ 1 ] ;
245257 } ,
246258 ( ) => require ( "DTSG_ASYNC" ) . getToken ( ) , // TODO: trace xem tại sao method này trả về cấu trúc khác 2 method trên
247259 ] ;
248260 for ( let m of methods ) {
249261 try {
250- return m ( ) ;
262+ let d = await m ( ) ;
263+ if ( d ) return d ;
251264 } catch ( e ) { }
252265 }
253266 return null ;
254267 } ,
255- getYourUserId ( ) {
268+ async getYourUserId ( ) {
256269 let methods = [
257270 ( ) => require ( "CurrentUserInitialData" ) . USER_ID ,
258271 ( ) => require ( "RelayAPIConfigDefaults" ) . actorID ,
259272 ( ) => document . cookie . match ( / c _ u s e r = ( \d + ) / ) [ 1 ] ,
260- ( ) => {
261- const regex = / c _ u s e r = ( \d + ) ; / gm;
262- const resp = regex . exec ( document . cookie ) ;
263- return resp [ 1 ] ;
264- } ,
273+ async ( ) =>
274+ (
275+ await chrome . cookies . get ( {
276+ url : "https://www.facebook.com" ,
277+ name : "c_user" ,
278+ } )
279+ ) . value ,
265280 ] ;
266281 for ( let m of methods ) {
267282 try {
268- return m ( ) ;
283+ let d = await m ( ) ;
284+ if ( d ) return d ;
269285 } catch ( e ) { }
270286 }
271287 return null ;
@@ -433,12 +449,11 @@ const UsefulScriptGlobalPageContext = {
433449 }
434450 ) ;
435451 } ,
436- async messagesCount ( token ) {
437- let res = await UsefulScriptGlobalPageContext . Facebook . fetchGraphQl (
452+ async messagesCount ( fb_dtsg ) {
453+ return await UsefulScriptGlobalPageContext . Facebook . fetchGraphQl (
438454 "viewer(){message_threads{count,nodes{customization_info{emoji,outgoing_bubble_color,participant_customizations{participant_id,nickname}},all_participants{nodes{messaging_actor{name,id,profile_picture}}},thread_type,name,messages_count,image,id}}}" ,
439- token
455+ fb_dtsg
440456 ) ;
441- return await res . json ( ) ;
442457 } ,
443458 } ,
444459} ;
0 commit comments