@@ -18,6 +18,14 @@ const specialTabs = [
1818 ...CATEGORY . favorite ,
1919 scripts : [ ] ,
2020 } ,
21+ {
22+ ...CATEGORY . hot ,
23+ scripts : [ ] ,
24+ } ,
25+ {
26+ ...CATEGORY . new ,
27+ scripts : [ ] ,
28+ } ,
2129 {
2230 ...CATEGORY . available ,
2331 scripts : [ ] ,
@@ -137,17 +145,16 @@ const tabs = [
137145 s . doutube_getAllVideoInUserProfile ,
138146 ] ,
139147 } ,
140- {
141- ...CATEGORY . pdf ,
142- scripts : [ s . darkModePDF , s . webToPDF ] ,
143- } ,
144- {
145- ...CATEGORY . qrcode ,
146- scripts : [ s . textToQRCode , s . webToQRCode ] ,
147- } ,
148148 {
149149 ...CATEGORY . automation ,
150- scripts : [ s . getAllEmailsInWeb , s . performanceAnalyzer , s . scrollToVeryEnd ] ,
150+ scripts : [
151+ s . textToQRCode ,
152+ s . webToQRCode ,
153+ s . getAllEmailsInWeb ,
154+ s . performanceAnalyzer ,
155+ s . scrollToVeryEnd ,
156+ s . webToPDF ,
157+ ] ,
151158 } ,
152159 {
153160 ...CATEGORY . password ,
@@ -160,6 +167,7 @@ const tabs = [
160167 {
161168 ...CATEGORY . unlock ,
162169 scripts : [
170+ s . shortenURL ,
163171 s . unshorten ,
164172 s . showHiddenFields ,
165173 s . viewCookies ,
@@ -173,8 +181,10 @@ const tabs = [
173181 {
174182 ...CATEGORY . webUI ,
175183 scripts : [
184+ s . darkModePDF ,
176185 s . toggleEditPage ,
177186 s . scrollByDrag ,
187+ s . runStatJs ,
178188 createTitle ( "--- View ---" , "--- Xem ---" ) ,
179189 s . listAllImagesInWeb ,
180190 s . viewAllLinks ,
@@ -197,10 +207,6 @@ const tabs = [
197207 s . letItSnow ,
198208 ] ,
199209 } ,
200- {
201- ...CATEGORY . more ,
202- scripts : [ s . shortenURL , s . runStatJs , s . test_script ] ,
203- } ,
204210] ;
205211
206212const recommendTab = {
@@ -371,30 +377,37 @@ const recommendTab = {
371377 ] ,
372378} ;
373379
374- // add recently and available to head of array
375- async function getAvailableScriptsInTabs ( _tabs ) {
380+ function sortScriptsByTab ( scripts , _tabs , addTabTitle = true ) {
376381 let result = [ ] ;
377- const avai = await getAvailableScripts ( ) ;
378382
379383 for ( let tab of Object . values ( _tabs ) ) {
380- let avaiScriptsInTab = [ ] ;
384+ let sorted = [ ] ;
381385
382386 for ( let script of tab . scripts ) {
383- let isAvai = avai . findIndex ( ( _ ) => _ . id === script . id ) >= 0 ;
384- if ( isAvai ) {
385- avaiScriptsInTab . push ( script ) ;
387+ let found = scripts . findIndex ( ( _ ) => _ . id === script . id ) >= 0 ;
388+ if ( found ) {
389+ sorted . push ( script ) ;
386390 }
387391 }
388392
389- if ( avaiScriptsInTab . length ) {
390- result . push ( createTitle ( tab . name . en , tab . name . vi ) ) ;
391- result . push ( ...avaiScriptsInTab ) ;
393+ if ( sorted . length ) {
394+ addTabTitle && result . push ( createTitle ( tab . name . en , tab . name . vi ) ) ;
395+ result . push ( ...sorted ) ;
392396 }
393397 }
394-
395398 return result ;
396399}
397400
401+ async function getAvailableScriptsInTabs ( _tabs ) {
402+ return sortScriptsByTab ( await getAvailableScripts ( ) , _tabs ) ;
403+ }
404+
405+ function getScriptsWithBadgeId ( scripts , badgeId ) {
406+ return scripts . filter ( ( script ) =>
407+ script . badges ?. find ( ( _ ) => _ . id === badgeId )
408+ ) ;
409+ }
410+
398411async function refreshSpecialTabs ( ) {
399412 // add data to special tabs
400413 let recentTab = specialTabs . find ( ( tab ) => tab . id === CATEGORY . recently . id ) ;
@@ -403,8 +416,26 @@ async function refreshSpecialTabs() {
403416 let favoriteTab = specialTabs . find ( ( tab ) => tab . id === CATEGORY . favorite . id ) ;
404417 if ( favoriteTab ) favoriteTab . scripts = await favoriteScriptsSaver . get ( ) ;
405418
406- let avaiab = specialTabs . find ( ( tab ) => tab . id === CATEGORY . available . id ) ;
407- if ( avaiab ) avaiab . scripts = await getAvailableScriptsInTabs ( tabs ) ;
419+ let avaiTab = specialTabs . find ( ( tab ) => tab . id === CATEGORY . available . id ) ;
420+ if ( avaiTab ) avaiTab . scripts = await getAvailableScriptsInTabs ( tabs ) ;
421+
422+ // ==== special badge tab ====
423+ let allScriptsArr = Object . values ( s ) ;
424+ console . log ( allScriptsArr ) ;
425+
426+ let hotTab = specialTabs . find ( ( tab ) => tab . id === CATEGORY . hot . id ) ;
427+ if ( hotTab )
428+ hotTab . scripts = sortScriptsByTab (
429+ getScriptsWithBadgeId ( allScriptsArr , BADGES . hot . id ) ,
430+ tabs
431+ ) ;
432+
433+ let newTab = specialTabs . find ( ( tab ) => tab . id === CATEGORY . new . id ) ;
434+ if ( newTab )
435+ newTab . scripts = sortScriptsByTab (
436+ getScriptsWithBadgeId ( allScriptsArr , BADGES . new . id ) ,
437+ tabs
438+ ) ;
408439}
409440
410441function getAllTabs ( ) {
0 commit comments