()
| 622 | return arrId[0] * 4294967296 + arrId[1]; |
| 623 | } |
| 624 | export async function getFbdtsg() { |
| 625 | let methods = [ |
| 626 | () => require("DTSGInitData").token, |
| 627 | () => require("DTSG").getToken(), |
| 628 | async () => { |
| 629 | let text = await fetch("https://www.facebook.com/policies_center/"); |
| 630 | let token = text.match(/DTSGInitData",\[\],\{"token":"(.*?)"/)[1]; |
| 631 | return token; |
| 632 | }, |
| 633 | () => { |
| 634 | return RegExp(/"DTSGInitialData",\[],{"token":"(.+?)"/).exec( |
| 635 | document.documentElement.innerHTML |
| 636 | )?.[1]; |
| 637 | }, |
| 638 | async () => { |
| 639 | let res = await fetch("https://mbasic.facebook.com/photos/upload/"); |
| 640 | let text = await res.text(); |
| 641 | return RegExp(/name="fb_dtsg" value="(.*?)"/).exec(text)?.[1]; |
| 642 | }, |
| 643 | async () => { |
| 644 | let res = await fetch("https://m.facebook.com/home.php", { |
| 645 | headers: { |
| 646 | Accept: "text/html", |
| 647 | }, |
| 648 | }); |
| 649 | let text = await res.text(); |
| 650 | return ( |
| 651 | RegExp(/"dtsg":{"token":"([^"]+)"/).exec(text)?.[1] || |
| 652 | RegExp(/"name":"fb_dtsg","value":"([^"]+)/).exec(text)?.[1] |
| 653 | ); |
| 654 | }, |
| 655 | () => 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 |
| 656 | ]; |
| 657 | for (let m of methods) { |
| 658 | try { |
| 659 | let d = await m(); |
| 660 | if (d) return d; |
| 661 | } catch (e) {} |
| 662 | } |
| 663 | return null; |
| 664 | } |
| 665 | |
| 666 | export async function getFbDtsgAg() { |
| 667 | return new Promise(function (resolve, reject) { |
no test coverage detected