-
Notifications
You must be signed in to change notification settings - Fork 4
/
Twitter_X_Youtube_Helper.js
5146 lines (5110 loc) · 221 KB
/
Twitter_X_Youtube_Helper.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
// ==UserScript==
// @name Twitter(X)ᴾˡᵘˢ+++ ; Youtubeᴾˡᵘˢ+++
// @name:ar Twitter(X)ᴾˡᵘˢ+++ ; Youtubeᴾˡᵘˢ+++
// @name:bg Twitter(X)ᴾˡᵘˢ+++ ; Youtubeᴾˡᵘˢ+++
// @name:cs Twitter(X)ᴾˡᵘˢ+++ ; Youtubeᴾˡᵘˢ+++
// @name:da Twitter(X)ᴾˡᵘˢ+++ ; Youtubeᴾˡᵘˢ+++
// @name:de Twitter(X)ᴾˡᵘˢ+++ ; Youtubeᴾˡᵘˢ+++
// @name:el Twitter(X)ᴾˡᵘˢ+++ ; Youtubeᴾˡᵘˢ+++
// @name:en Twitter(X)ᴾˡᵘˢ+++ ; Youtubeᴾˡᵘˢ+++
// @name:eo Twitter(X)ᴾˡᵘˢ+++ ; Youtubeᴾˡᵘˢ+++
// @name:es Twitter(X)ᴾˡᵘˢ+++ ; Youtubeᴾˡᵘˢ+++
// @name:fi Twitter(X)ᴾˡᵘˢ+++ ; Youtubeᴾˡᵘˢ+++
// @name:fr Twitter(X)ᴾˡᵘˢ+++ ; Youtubeᴾˡᵘˢ+++
// @name:fr-CA Twitter(X)ᴾˡᵘˢ+++ ; Youtubeᴾˡᵘˢ+++
// @name:he Twitter(X)ᴾˡᵘˢ+++ ; Youtubeᴾˡᵘˢ+++
// @name:hr Twitter(X)ᴾˡᵘˢ+++ ; Youtubeᴾˡᵘˢ+++
// @name:hu Twitter(X)ᴾˡᵘˢ+++ ; Youtubeᴾˡᵘˢ+++
// @name:id Twitter(X)ᴾˡᵘˢ+++ ; Youtubeᴾˡᵘˢ+++
// @name:it Twitter(X)ᴾˡᵘˢ+++ ; Youtubeᴾˡᵘˢ+++
// @name:ja Twitter(X)ᴾˡᵘˢ+++ ; Youtubeᴾˡᵘˢ+++
// @name:ka Twitter(X)ᴾˡᵘˢ+++ ; Youtubeᴾˡᵘˢ+++
// @name:ko Twitter(X)ᴾˡᵘˢ+++ ; Youtubeᴾˡᵘˢ+++
// @name:nb Twitter(X)ᴾˡᵘˢ+++ ; Youtubeᴾˡᵘˢ+++
// @name:nl Twitter(X)ᴾˡᵘˢ+++ ; Youtubeᴾˡᵘˢ+++
// @name:pl Twitter(X)ᴾˡᵘˢ+++ ; Youtubeᴾˡᵘˢ+++
// @name:pt-BR Twitter(X)ᴾˡᵘˢ+++ ; Youtubeᴾˡᵘˢ+++
// @name:ro Twitter(X)ᴾˡᵘˢ+++ ; Youtubeᴾˡᵘˢ+++
// @name:ru Twitter(X)ᴾˡᵘˢ+++ ; Youtubeᴾˡᵘˢ+++
// @name:sk Twitter(X)ᴾˡᵘˢ+++ ; Youtubeᴾˡᵘˢ+++
// @name:sr Twitter(X)ᴾˡᵘˢ+++ ; Youtubeᴾˡᵘˢ+++
// @name:sv Twitter(X)ᴾˡᵘˢ+++ ; Youtubeᴾˡᵘˢ+++
// @name:th Twitter(X)ᴾˡᵘˢ+++ ; Youtubeᴾˡᵘˢ+++
// @name:tr Twitter(X)ᴾˡᵘˢ+++ ; Youtubeᴾˡᵘˢ+++
// @name:uk Twitter(X)ᴾˡᵘˢ+++ ; Youtubeᴾˡᵘˢ+++
// @name:ug Twitter(X)ᴾˡᵘˢ+++ ; Youtubeᴾˡᵘˢ+++
// @name:vi Twitter(X)ᴾˡᵘˢ+++ ; Youtubeᴾˡᵘˢ+++
// @description This script will provide enhancements to some websites. 🔥Twitter(X): Add time formatting display, HD picture display, picture and video downloading, etc. 🔥Youtube: Add video downloading, ad removal, etc. 🔥Tiktok: Provide HD watermark-free video downloading, etc. For more features, please check the description~
// @description:ar سيوفر هذا البرنامج النصي تحسينات لبعض المواقع الإلكترونية. 🔥Twitter(X): إضافة عرض تنسيق الوقت، وعرض الصور عالية الدقة، وتنزيل الصور والفيديو، وما إلى ذلك. 🔥Youtube: إضافة تنزيل الفيديو، وإزالة الإعلانات، وما إلى ذلك. 🔥Tiktok: توفير تنزيل فيديو عالي الدقة بدون علامة مائية، وما إلى ذلك. لمزيد من الميزات، يرجى التحقق من الوصف~
// @description:bg Този скрипт ще предостави подобрения на някои уебсайтове. 🔥Twitter(X): Добавяне на дисплей за форматиране на време, показване на HD картина, изтегляне на снимки и видео и т.н. 🔥Youtube: Добавяне на изтегляне на видео, премахване на реклами и т.н. 🔥Tiktok: Предоставяне на изтегляне на HD видео без воден знак и т.н. За повече функции , моля, проверете описанието~
// @description:cs Tento skript poskytne vylepšení některých webových stránek. 🔥Twitter(X): Přidejte zobrazení formátování času, zobrazení obrázků HD, stahování obrázků a videí atd. 🔥Youtube: Přidejte stahování videa, odstraňování reklam atd. 🔥Tiktok: Poskytujte stahování videa HD bez vodoznaku atd. Další funkce , zkontrolujte prosím popis~
// @description:da Dette script vil give forbedringer til nogle websteder. 🔥Twitter(X): Tilføj tidsformateringsvisning, HD-billedvisning, billed- og videodownload osv. 🔥Youtube: Tilføj videodownload, annoncefjernelse osv. 🔥Tiktok: Giver HD vandmærkefri videodownload osv. For flere funktioner , tjek venligst beskrivelsen~
// @description:de Dieses Skript verbessert einige Websites. 🔥Twitter(X): Fügt Zeitformatanzeige, HD-Bildanzeige, Bild- und Video-Downloads usw. hinzu. 🔥Youtube: Fügt Video-Downloads, Anzeigenentfernung usw. hinzu. 🔥Tiktok: Bietet HD-Video-Downloads ohne Wasserzeichen usw. Weitere Funktionen finden Sie in der Beschreibung~
// @description:el Αυτό το σενάριο θα παρέχει βελτιώσεις σε ορισμένους ιστότοπους. 🔥Twitter(X): Προσθήκη εμφάνισης μορφοποίησης ώρας, προβολής εικόνων HD, λήψης εικόνων και βίντεο κ.λπ. 🔥Youtube: Προσθήκη λήψης βίντεο, αφαίρεση διαφημίσεων κ.λπ. 🔥Tiktok: Παρέχετε λήψη βίντεο HD χωρίς υδατογράφημα κ.λπ. Για περισσότερες δυνατότητες , ελέγξτε την περιγραφή~
// @description:en This script will provide enhancements to some websites. 🔥Twitter(X): Add time formatting display, HD picture display, picture and video downloading, etc. 🔥Youtube: Add video downloading, ad removal, etc. 🔥Tiktok: Provide HD watermark-free video downloading, etc. For more features, please check the description~
// @description:eo Ĉi tiu skripto provizos plibonigojn al iuj retejoj. 🔥Twitter(X): Aldonu horformatan ekranon, HD-bildon, elŝuton de bildoj kaj filmetojn ktp. 🔥Youtube: Aldonu video-elŝutadon, forigon de reklamoj ktp. 🔥Tiktok: Provizu HD-senpagan video-elŝutadon, ktp. Por pliaj funkcioj , bonvolu kontroli la priskribon~
// @description:es Este script proporcionará mejoras a algunos sitios web.🔥twitter (x): agregue la pantalla de formato de tiempo, visualización de imágenes HD, descarga de imágenes y videos, etc. 🔥Youtube: Agregue la descarga de video, eliminación de anuncios, etc. 🔥tiktok: proporcione descarga de video sin marca de agua HD, etc. para obtener más funciones, por favor verifique la descripción ~
// @description:fi Tämä komentosarja tarjoaa parannuksia joihinkin verkkosivustoihin. 🔥Twitter(X): Lisää ajan muotoilun näyttö, HD-kuvanäyttö, kuvien ja videoiden lataus jne. 🔥Youtube: Lisää videoiden lataus, mainosten poisto jne. 🔥Tiktok: Tarjoa HD-vesileimatonta videoiden latausta jne. Lisää ominaisuuksia , tarkista kuvaus~
// @description:fr Ce script apportera des améliorations à certains sites Web. 🔥Twitter(X) : Ajout de l'affichage du formatage de l'heure, de l'affichage d'images HD, du téléchargement d'images et de vidéos, etc. 🔥Youtube : Ajout du téléchargement de vidéos, de la suppression des publicités, etc. 🔥Tiktok : Fournit un téléchargement de vidéos HD sans filigrane, etc. Pour plus de fonctionnalités, veuillez consulter la description~
// @description:fr-CA Ce script apportera des améliorations à certains sites Web. 🔥Twitter(X) : Ajout de l'affichage du formatage de l'heure, de l'affichage d'images HD, du téléchargement d'images et de vidéos, etc. 🔥Youtube : Ajout du téléchargement de vidéos, de la suppression des publicités, etc. 🔥Tiktok : Fournit un téléchargement de vidéos HD sans filigrane, etc. Pour plus de fonctionnalités, veuillez consulter la description~
// @description:he סקריפט זה יספק שיפורים לאתרים מסוימים. 🔥Twitter(X): הוסף תצוגת עיצוב זמן, תצוגת תמונות HD, הורדת תמונות ווידאו וכו'. 🔥YouTube: הוסף הורדת וידאו, הסרת מודעות וכו'. , אנא בדוק את התיאור~
// @description:hr Ova skripta će poboljšati neke web stranice. 🔥Twitter(X): Dodajte prikaz formatiranja vremena, HD prikaz slike, preuzimanje slika i videa itd. 🔥Youtube: Dodajte preuzimanje videa, uklanjanje oglasa itd. 🔥Tiktok: Omogućite preuzimanje HD videa bez vodenog žiga itd. Za više značajki , provjerite opis~
// @description:hu Ez a szkript fejlesztéseket biztosít bizonyos webhelyeken. 🔥Twitter(X): Időformázási megjelenítés hozzáadása, HD képmegjelenítés, kép- és videóletöltés stb. 🔥Youtube: Videó letöltése, hirdetések eltávolítása stb. , ellenőrizze a leírást~
// @description:id Skrip ini akan memberikan peningkatan pada beberapa situs web. 🔥Twitter(X): Menambahkan tampilan format waktu, tampilan gambar HD, pengunduhan gambar dan video, dll. 🔥Youtube: Menambahkan pengunduhan video, penghapusan iklan, dll. 🔥Tiktok: Menyediakan pengunduhan video HD tanpa tanda air, dll. Untuk fitur lainnya, silakan periksa deskripsi~
// @description:it Questo script migliorerà alcuni siti web. 🔥Twitter(X): aggiunge la visualizzazione della formattazione dell'ora, la visualizzazione delle immagini HD, il download di immagini e video, ecc. 🔥Youtube: aggiunge il download di video, la rimozione degli annunci, ecc. 🔥Tiktok: fornisce il download di video HD senza filigrana, ecc. Per altre funzionalità, controlla la descrizione~
// @description:ja このスクリプトは、いくつかのウェブサイトの機能強化を提供します。🔥Twitter(X): 時間フォーマット表示、HD画像表示、画像とビデオのダウンロードなどを追加します。🔥Youtube: ビデオのダウンロード、広告の削除などを追加します。🔥Tiktok: HDウォーターマークのないビデオのダウンロードなどを提供します。その他の機能については、説明を確認してください~
// @description:ka This script will provide enhancements to some websites. 🔥Twitter(X): Add time formatting display, HD picture display, picture and video downloading, etc. 🔥Youtube: Add video downloading, ad removal, etc. 🔥Tiktok: Provide HD watermark-free video downloading, etc. For more features, please check the description~
// @description:ko 이 스크립트는 일부 웹사이트에 개선 사항을 제공합니다. 🔥Twitter(X): 시간 형식 표시, HD 사진 표시, 사진 및 비디오 다운로드 등을 추가합니다. 🔥Youtube: 비디오 다운로드, 광고 제거 등을 추가합니다. 🔥Tiktok: HD 워터마크 없는 비디오 다운로드 등을 제공합니다. 자세한 내용은 설명을 확인하세요~
// @description:nb Dette skriptet vil gi forbedringer til enkelte nettsteder. 🔥Twitter(X): Legg til tidsformateringsvisning, HD-bildevisning, bilde- og videonedlasting osv. 🔥Youtube: Legg til videonedlasting, annonsefjerning osv. 🔥Tiktok: Gi HD vannmerkefri videonedlasting osv. For flere funksjoner , sjekk beskrivelsen~
// @description:nl Dit script zal verbeteringen aan sommige websites bieden. 🔥Twitter(X): Voeg weergave van tijdsopmaak, HD-afbeeldingsweergave, downloaden van afbeeldingen en video's, enz. toe. 🔥Youtube: Voeg videodownloads, advertentieverwijdering, enz. toe. 🔥Tiktok: Biedt HD-watermerkvrije videodownloads, enz. Voor meer functies, bekijk de beschrijving~
// @description:pl Ten skrypt wprowadzi ulepszenia do niektórych witryn internetowych. 🔥Twitter(X): Dodaj wyświetlanie formatu czasu, wyświetlanie obrazów HD, pobieranie obrazów i filmów itp. 🔥Youtube: Dodaj pobieranie filmów, usuwanie reklam itp. 🔥Tiktok: Zapewnij pobieranie filmów HD bez znaku wodnego itp. Aby uzyskać więcej funkcji, sprawdź opis~
// @description:pt-BR Este script fornecerá melhorias para alguns sites. 🔥Twitter(X): Adicione exibição de formatação de hora, exibição de imagem em HD, download de imagem e vídeo, etc. 🔥Youtube: Adicione download de vídeo, remoção de anúncios, etc. 🔥Tiktok: Forneça download de vídeo em HD sem marca d'água, etc. Para mais recursos, verifique a descrição~
// @description:ro Acest script va oferi îmbunătățiri unor site-uri web. 🔥Twitter(X): Adăugați afișaj de formatare a orei, afișare a imaginii HD, descărcare de imagini și videoclipuri etc. 🔥Youtube: Adăugați descărcare video, eliminare a reclamelor etc. 🔥Tiktok: Oferiți descărcare video HD fără filigran etc. Pentru mai multe funcții , vă rugăm să verificați descrierea~
// @description:ru Этот скрипт улучшит работу некоторых веб-сайтов. 🔥Twitter(X): Добавить отображение форматирования времени, отображение HD-изображений, загрузку изображений и видео и т. д. 🔥Youtube: Добавить загрузку видео, удалить рекламу и т. д. 🔥TikTok: Обеспечить загрузку HD-видео без водяных знаков и т. д. Для получения дополнительных функций, пожалуйста, проверьте описание~
// @description:sk Tento skript poskytne vylepšenia niektorých webových stránok. 🔥Twitter(X): Pridajte zobrazenie formátovania času, zobrazenie HD obrázkov, sťahovanie obrázkov a videí atď. 🔥Youtube: Pridajte sťahovanie videa, odstraňovanie reklám atď. 🔥Tiktok: Poskytnite sťahovanie videa HD bez vodoznaku atď. Ďalšie funkcie , prosím skontrolujte popis ~
// @description:sr Ова скрипта ће пружити побољшања неким веб локацијама. 🔥Твиттер(Кс): Додајте приказ форматирања времена, приказ ХД слике, преузимање слика и видео записа итд. 🔥Иоутубе: Додајте преузимање видео записа, уклањање огласа итд. 🔥Тикток: Омогућите преузимање видео записа у ХД-у без воденог жига итд. За више функција , молимо проверите опис~
// @description:sv Detta skript kommer att ge förbättringar till vissa webbplatser. 🔥Twitter(X): Lägg till tidsformateringsvisning, HD-bildvisning, bild- och videonedladdning, etc. 🔥Youtube: Lägg till videonedladdning, annonsborttagning etc. 🔥Tiktok: Tillhandahåller HD vattenstämpelfri videonedladdning, etc. För fler funktioner , kontrollera beskrivningen~
// @description:th สคริปต์นี้จะให้การปรับปรุงแก่บางเว็บไซต์🔥twitter (x): เพิ่มการจัดรูปแบบการจัดรูปแบบการจัดรูปแบบการแสดงภาพ HD รูปภาพและวิดีโอการดาวน์โหลด ฯลฯ 🔥youtube: เพิ่มการดาวน์โหลดวิดีโอการลบโฆษณา ฯลฯ 🔥tiktok: ให้การดาวน์โหลดวิดีโอที่ปราศจากลายน้ำ HD ฯลฯ สำหรับคุณสมบัติเพิ่มเติมโปรดตรวจสอบคำอธิบาย ~
// @description:tr Bu script bazı web sitelerine geliştirmeler sağlayacaktır. 🔥Twitter(X): Zaman biçimlendirme gösterimi, HD resim gösterimi, resim ve video indirme vb. ekleyin. 🔥Youtube: Video indirme, reklam kaldırma vb. ekleyin. 🔥Tiktok: HD filigransız video indirme vb. sağlayın. Daha fazla özellik için lütfen açıklamayı kontrol edin~
// @description:uk Цей сценарій покращить роботу деяких веб-сайтів. 🔥Twitter(X): додайте відображення форматування часу, відображення HD-зображення, завантаження зображень і відео тощо. 🔥Youtube: додайте завантаження відео, видалення реклами тощо. 🔥Tiktok: забезпечте завантаження відео HD без водяних знаків тощо. Для додаткових функцій , будь ласка, перевірте опис~
// @description:ug بۇ قوليازما بەزى تور بېكەتلەرنى ياخشىلاش بىلەن تەمىنلەيدۇ. 🔥Twitter (X): ۋاقىت فورماتلاش ئېكرانى ، HD رەسىم كۆرسىتىش ، رەسىم ۋە سىن چۈشۈرۈش قاتارلىقلارنى قوشۇڭ outYoutube: سىن چۈشۈرۈش ، ئېلان ئۆچۈرۈش قاتارلىقلارنى قوشۇڭ ikTiktok: HD سۇ ماركىسىسىز سىن چۈشۈرۈش قاتارلىقلار بىلەن تەمىنلەڭ. ، چۈشەندۈرۈشنى تەكشۈرۈپ بېقىڭ ~
// @description:vi Tập lệnh này sẽ cung cấp các cải tiến cho một số trang web. 🔥Twitter(X): Thêm hiển thị định dạng thời gian, hiển thị hình ảnh HD, tải xuống hình ảnh và video, v.v. 🔥Youtube: Thêm tải xuống video, xóa quảng cáo, v.v. 🔥Tiktok: Cung cấp tải xuống video HD không có hình mờ, v.v. Để biết thêm các tính năng, vui lòng kiểm tra phần mô tả~
// @namespace PeterParker_X_Y_NameScope
// @version 1.1.9
// @author PeterParker
// @icon data:image/png;base64,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
// @include https://x.com/*
// @include https://twitter.com/*
// @include https://mobile.x.com/*
// @include https://www.youtube.com/**
// @include https://music.youtube.com/watch**
// @include https://www.tiktok.com/@*
// @include https://cobalt.tools/**
// @include /^https:\/\/((ko|fr|es|ja|pt|it|th|ar|tr|de|he|nl|pl|www|best)+\.)?aliexpress\.(ru|us|com)\/*/
// @include /^https:\/\/(www\.)?lazada\.(co\.id|vn|com\.my|co\.th|sg|com\.ph)/.*/
// @include /^https:\/\/([a-z]{2,3})\.banggood\.com/*/
// @include *://www.ebay.*/*
// @include *://www.bestbuy.com/*
// @exclude *://accounts.youtube.com/*
// @exclude *://www.youtube.com/live_chat_replay*
// @exclude *://www.youtube.com/persist_identity*
// @exclude *://x.com/i/flow/*
// @connect tikdownloader.io
// @license MIT
// @run-at document-idle
// @antifeature referral-link
// @downloadURL https://static.staticj.top/script/update/github_union.user.js
// @updateURL https://static.staticj.top/script/update/github_union.user.js
// @grant GM_registerMenuCommand
// @grant GM_openInTab
// @grant GM.openInTab
// @grant GM_addStyle
// @grant GM_setValue
// @grant GM_getValue
// @grant GM_xmlhttpRequest
// @grant GM_download
// @grant GM_setClipboard
// ==/UserScript==
(function () {
'use strict';
/*!
* Copyright (c) 2024, PeterParker. All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
*
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
const commonLanguage = {
"zh": {
"dateFormat": {
"week": ["日", "一", "二", "三", "四", "五", "六"]
},
"download": {
"download": "下载",
"completed": "下载完成",
"tip": "点击下载视频",
"preparing": "正在准备下载(如果失败,请手动操作)"
},
"menuCommand": {
"settings": "设置",
"titleDateFormat": "时间格式设置:",
"buttonClose": "关闭"
}
},
"en": {
"dateFormat": {
"week": ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
},
"download": {
"download": "Download",
"completed": "Download Completed",
"tip": "Click to download video",
"preparing": "Preparing to download (if failed, please do it manually)"
},
"menuCommand": {
"settings": "Settings",
"titleDateFormat": "Time format settings:",
"buttonClose": "Close"
}
},
"ja": {
"dateFormat": {
"week": ["日", "月", "火", "水", "木", "金", "土"]
},
"download": {
"download": "ダウンロード",
"completed": "ダウンロード完了",
"tip": "クリックしてビデオをダウンロード",
"preparing": "ダウンロードの準備中(失敗する場合は手動で行ってください)"
},
"menuCommand": {
"settings": "設定",
"titleDateFormat": "時刻形式の設定:",
"buttonClose": "閉鎖"
}
},
"fr": {
"dateFormat": {
"week": ["Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam"]
},
"download": {
"download": "télécharger",
"completed": "éléchargement terminé",
"tip": "Cliquez pour télécharger la vidéo",
"preparing": "Préparation du téléchargement (en cas d'échec, veuillez le faire manuellement)"
},
"menuCommand": {
"settings": "installation",
"titleDateFormat": "Paramètres du format de l'heure :",
"buttonClose": "fermeture"
}
},
"de": {
"dateFormat": {
"week": ["Son", "Mon", "Die", "Mit", "Don", "Fre", "Sam"]
},
"download": {
"download": "herunterladen",
"completed": "Download abgeschlossen",
"tip": "Klicken Sie hier, um das Video herunterzuladen",
"preparing": "Vorbereitung für den Download (falls der Download fehlschlägt, führen Sie ihn bitte manuell durch)"
},
"menuCommand": {
"settings": "aufstellen",
"titleDateFormat": "Einstellungen für das Zeitformat:",
"buttonClose": "Schließung"
}
},
"it": {
"dateFormat": {
"week": ["Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab"]
},
"download": {
"download": "scaricamento",
"completed": "Download completato",
"tip": "Fare clic per scaricare il video",
"preparing": "Preparazione per il download (se fallisce, eseguilo manualmente)"
},
"menuCommand": {
"settings": "impostare",
"titleDateFormat": "Impostazioni del formato dell'ora:",
"buttonClose": "chiusura"
}
},
"ko": {
"dateFormat": {
"week": ["일", "월", "화", "수", "목", "금", "토"]
},
"download": {
"download": "다운로드",
"completed": "다운로드 완료",
"tip": "비디오를 다운로드하려면 클릭하세요",
"preparing": "다운로드 준비 중 (실패할 경우 수동으로 진행해주세요)"
},
"menuCommand": {
"settings": "설정",
"titleDateFormat": "시간 형식 설정:",
"buttonClose": "폐쇄"
}
},
"ru": {
"dateFormat": {
"week": ["ВС", "ПН", "ВТ", "СР", "ЧТ", "ПТ", "СБ"]
},
"download": {
"download": "скачать",
"completed": "Загрузка завершена",
"tip": "Нажмите, чтобы скачать видео",
"preparing": "Подготовка к загрузке (если не получается, сделайте это вручную)"
},
"menuCommand": {
"settings": "настраивать",
"titleDateFormat": "Настройки формата времени:",
"buttonClose": "закрытие"
}
},
"pt": {
"dateFormat": {
"week": ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb"]
},
"download": {
"download": "descargar",
"completed": "Descarga completa",
"tip": "Clique para baixar o vídeo",
"preparing": "Preparação para download (se falhar, faça-o manualmente)"
},
"menuCommand": {
"settings": "configuración",
"titleDateFormat": "Configuración de formato de hora:",
"buttonClose": "cierre"
}
},
"es": {
"dateFormat": {
"week": ["DOM", "LUN", "MAR", "MIER", "JUE", "VIE", "SÁB"]
},
"download": {
"download": "descargar",
"completed": "Descarga completa",
"tip": "Haga clic para descargar el vídeo",
"preparing": "Preparándose para la descarga (si falla, hágalo manualmente)"
},
"menuCommand": {
"settings": "configuración",
"titleDateFormat": "Configuración de formato de hora:",
"buttonClose": "cierre"
}
},
"th": {
"dateFormat": {
"week": ["วันอาทิตย์", "วันจันทร์", "วันอังคาร", "วันพุธ", " วันพฤหัสบดี", "วันศุกร์ ", "วันเสาร์ "]
},
"download": {
"download": "ดาวน์โหลด",
"completed": "ดาวน์โหลดเสร็จสมบูรณ์",
"tip": "คลิกเพื่อดาวน์โหลดวิดีโอ",
"preparing": "กำลังเตรียมการดาวน์โหลด (หากล้มเหลว กรุณาดำเนินการด้วยตนเอง)"
},
"menuCommand": {
"settings": "ตั้งค่า",
"titleDateFormat": "การตั้งค่ารูปแบบเวลา:",
"buttonClose": "ปิด"
}
},
"tr": {
"dateFormat": {
"week": ["Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi"]
},
"download": {
"download": "indirmek",
"completed": "İndirme tamamlandı",
"tip": "Videoyu indirmek için tıklayın",
"preparing": "İndirmeye hazırlanıyor (başarısız olursa lütfen manuel olarak yapın)"
},
"menuCommand": {
"settings": "kurmak",
"titleDateFormat": "Saat formatı ayarları:",
"buttonClose": "kapatma"
}
},
"nl": {
"dateFormat": {
"week": ["zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag"]
},
"download": {
"download": "downloaden",
"completed": "Downloaden voltooid",
"tip": "Klik om video te downloaden",
"preparing": "Voorbereiden voor downloaden (als dit mislukt, doe dit dan handmatig)"
},
"menuCommand": {
"settings": "opgezet",
"titleDateFormat": "Instellingen tijdformaat:",
"buttonClose": "sluiting"
}
}
};
const ecommerceLanguage = {
"zh": {
"operat": {
"copied": "Ohhhh!已复制!"
},
"dialog": {
"title": "设置",
"contentPieceMax": "最大浏览记录数(最小: {min},最大:{max},改变的值自动保存):",
"contentPieceClear": "清除所有浏览历史记录。注意:清除后历史记录不可恢复,请谨慎操作。",
"contentPieceClearBtn": "清除",
"clearConfirmContent": "是否要清除所有浏览记录?一旦被清除,将无法恢复~"
},
"historyToolbar": {
"boxTitle": "浏览记录",
"expandTipText": "记录"
},
"menuCommand": {
"settings": "设置",
"buttonClose": "关闭",
"goodsHistories": {
"clear": "清空所有商品浏览记录"
}
}
},
"en": {
"operat": {
"copied": "Ohhhh, Copied!"
},
"dialog": {
"title": "Ohhhh! I'm settings",
"contentPieceMax": "Maximum number of browsing histories(min:{min}, max:{max}, Changed values are automatically saved):",
"contentPieceClear": "Clear all browsing history. Note: The history cannot be restored after clearing. Please operate with caution.",
"contentPieceClearBtn": "Clear",
"clearConfirmContent": "Do you want to clear all browsing history? Once cleared, it cannot be restored"
},
"historyToolbar": {
"boxTitle": "Browsing history",
"expandTipText": "History"
},
"menuCommand": {
"settings": "Settings",
"buttonClose": "Close",
"goodsHistories": {
"clear": "Clear all product browsing history"
}
}
},
"ja": {
"operat": {
"copied": "Ohhhh, コピーされました"
},
"dialog": {
"title": "設定",
"contentPieceMax": "閲覧レコードの最大数(最小値:{min}、最大値:{max}、変更された値は自動的に保存されます):",
"contentPieceClear": "すべての閲覧履歴を消去します。 ※クリア後の履歴は元に戻せませんので、慎重に操作してください。",
"contentPieceClearBtn": "クリア",
"clearConfirmContent": "すべての閲覧履歴を消去しますか?一度クリアすると元に戻せませんよ~"
},
"historyToolbar": {
"boxTitle": "閲覧履歴",
"expandTipText": "記録"
},
"menuCommand": {
"settings": "設定",
"buttonClose": "閉鎖",
"goodsHistories": {
"clear": "製品の閲覧履歴をすべて消去する"
}
}
},
"fr": {
"operat": {
"copied": "Ohhhh, Copié!"
},
"dialog": {
"title": "installation",
"contentPieceMax": "Nombre maximum d'enregistrements de navigation (minimum : {min}, maximum : {max}, les valeurs modifiées sont automatiquement enregistrées) :",
"contentPieceClear": "Effacez tout l’historique de navigation. Remarque : L'historique ne peut pas être récupéré après l'effacement, veuillez agir avec prudence.",
"contentPieceClearBtn": "Clair",
"clearConfirmContent": "Voulez-vous effacer tout l’historique de navigation ? Une fois effacé, il ne peut pas être restauré ~"
},
"historyToolbar": {
"boxTitle": "Historique de navigation",
"expandTipText": "Enregistrer"
},
"menuCommand": {
"settings": "installation",
"buttonClose": "fermeture",
"goodsHistories": {
"clear": "Effacer tout l'historique de navigation des produits"
}
}
},
"de": {
"operat": {
"copied": "Ohhhh, Kopiert!"
},
"dialog": {
"title": "aufstellen",
"contentPieceMax": "Maximale Anzahl an Browsing-Datensätzen (Minimum: {min}, Maximum: {max}, geänderte Werte werden automatisch gespeichert):",
"contentPieceClear": "Löschen Sie den gesamten Browserverlauf. Hinweis: Der Verlauf kann nach dem Löschen nicht wiederhergestellt werden. Bitte gehen Sie vorsichtig vor.",
"contentPieceClearBtn": "Klar",
"clearConfirmContent": "Möchten Sie den gesamten Browserverlauf löschen? Nach dem Löschen kann es nicht wiederhergestellt werden~"
},
"historyToolbar": {
"boxTitle": "Browser-Verlauf",
"expandTipText": "Aufzeichnen"
},
"menuCommand": {
"settings": "aufstellen",
"buttonClose": "Schließung",
"goodsHistories": {
"clear": "Löschen Sie den gesamten Browserverlauf des Produkts"
}
}
},
"it": {
"operat": {
"copied": "Ohhhh, Copiato!"
},
"dialog": {
"title": "impostare",
"contentPieceMax": "Numero massimo di record di navigazione (minimo: {min}, massimo: {max}, i valori modificati vengono salvati automaticamente):",
"contentPieceClear": "Cancella tutta la cronologia di navigazione. Nota: la cronologia non può essere recuperata dopo la cancellazione, si prega di operare con cautela.",
"contentPieceClearBtn": "Chiaro",
"clearConfirmContent": "Vuoi cancellare tutta la cronologia di navigazione? Una volta cancellato, non può essere ripristinato~"
},
"historyToolbar": {
"boxTitle": "Cronologia di navigazione",
"expandTipText": "Documentazione"
},
"menuCommand": {
"settings": "impostare",
"buttonClose": "chiusura",
"goodsHistories": {
"clear": "Cancella tutta la cronologia di navigazione del prodotto"
}
}
},
"ko": {
"operat": {
"copied": "Ohhhh, 복사됨!"
},
"dialog": {
"title": "설정",
"contentPieceMax": "최대 검색 기록 수(최소: {min}, 최대: {max}, 변경된 값은 자동으로 저장됩니다):",
"contentPieceClear": "모든 검색 기록을 지웁니다. 참고: 삭제 후에는 기록을 복구할 수 없으므로 주의해서 조작하시기 바랍니다.",
"contentPieceClearBtn": "분명한",
"clearConfirmContent": "모든 검색 기록을 삭제하시겠습니까? 한번 삭제하면 복원이 불가능해요~"
},
"historyToolbar": {
"boxTitle": "검색 기록",
"expandTipText": "기록"
},
"menuCommand": {
"settings": "설정",
"buttonClose": "폐쇄",
"goodsHistories": {
"clear": "모든 제품 검색 기록 지우기"
}
}
},
"ru": {
"operat": {
"copied": "Ohhhh, Скопировано!"
},
"dialog": {
"title": "настраивать",
"contentPieceMax": "Максимальное количество записей просмотра (минимум: {min}, максимум: {max}, измененные значения сохраняются автоматически):",
"contentPieceClear": "Очистить всю историю просмотров. Примечание. После очистки историю невозможно восстановить, действуйте осторожно.",
"contentPieceClearBtn": "Прозрачный",
"clearConfirmContent": "Хотите очистить всю историю просмотров? После очистки его невозможно восстановить~"
},
"historyToolbar": {
"boxTitle": "История браузера",
"expandTipText": "Записывать"
},
"menuCommand": {
"settings": "настраивать",
"buttonClose": "закрытие",
"goodsHistories": {
"clear": "Очистить всю историю просмотра товаров"
}
}
},
"pt": {
"operat": {
"copied": "Ohhhh, Copiado!"
},
"dialog": {
"title": "configurar",
"contentPieceMax": "Número máximo de registos de navegação (mínimo: {min}, máximo: {max}, os valores alterados são guardados automaticamente):",
"contentPieceClear": "Limpe todo o histórico de navegação. Nota: O histórico não pode ser recuperado após a limpeza, opere com cuidado.",
"contentPieceClearBtn": "Claro",
"clearConfirmContent": "Quer limpar todo o histórico de navegação? Uma vez limpo, não pode ser restaurado ~"
},
"historyToolbar": {
"boxTitle": "Histórico de navegação",
"expandTipText": "Registo"
},
"menuCommand": {
"settings": "configuración",
"buttonClose": "cierre",
"goodsHistories": {
"clear": "Quer limpar todo o histórico de navegação do produto? Uma vez limpo, não será recuperável"
}
}
},
"es": {
"operat": {
"copied": "Ohhhh, Copiado!"
},
"dialog": {
"title": "configuración",
"contentPieceMax": "Número máximo de registros de navegación (mínimo: {min}, máximo: {max}, los valores modificados se guardan automáticamente):",
"contentPieceClear": "Borrar todo el historial de navegación. Nota: El historial no se puede recuperar después de borrarlo; opere con precaución.",
"contentPieceClearBtn": "Claro",
"clearConfirmContent": "¿Quieres borrar todo el historial de navegación? Una vez borrado, no se puede restaurar ~"
},
"historyToolbar": {
"boxTitle": "Historial de navegación",
"expandTipText": "Registro"
},
"menuCommand": {
"settings": "configuración",
"buttonClose": "cierre",
"goodsHistories": {
"clear": "Borrar todo el historial de navegación de productos"
}
}
},
"th": {
"operat": {
"copied": "Ohhhh!โอ้! คัดลอก!"
},
"dialog": {
"title": "ตั้งค่า",
"contentPieceMax": "จำนวนบันทึกการสืบค้นสูงสุด (ขั้นต่ำ: {min}, สูงสุด: {max}, ค่าที่เปลี่ยนแปลงจะถูกบันทึกโดยอัตโนมัติ):",
"contentPieceClear": "ล้างประวัติการเข้าชมทั้งหมด หมายเหตุ: ไม่สามารถกู้คืนประวัติได้หลังจากเคลียร์แล้ว โปรดดำเนินการด้วยความระมัดระวัง",
"contentPieceClearBtn": "ชัดเจน",
"clearConfirmContent": "คุณต้องการล้างประวัติการเข้าชมทั้งหมดหรือไม่? เมื่อเคลียร์แล้วจะไม่สามารถกู้คืนได้~"
},
"historyToolbar": {
"boxTitle": "ประวัติการเรียกดู",
"expandTipText": "บันทึก"
},
"menuCommand": {
"settings": "ตั้งค่า",
"buttonClose": "ปิด",
"goodsHistories": {
"clear": "ล้างประวัติการเรียกดูผลิตภัณฑ์ทั้งหมด"
}
}
},
"tr": {
"operat": {
"copied": "Ohhhh,Kopyalandı!"
},
"dialog": {
"title": "kurmak",
"contentPieceMax": "Maksimum tarama kaydı sayısı (minimum: {min}, maksimum: {max}, değiştirilen değerler otomatik olarak kaydedilir):",
"contentPieceClear": "Tüm tarama geçmişini temizleyin. Not: Geçmiş temizlendikten sonra kurtarılamaz, lütfen dikkatli çalışın.",
"contentPieceClearBtn": "Temizlemek",
"clearConfirmContent": "Tüm tarama geçmişini temizlemek istiyor musunuz? Bir kez temizlendiğinde geri yüklenemez~"
},
"historyToolbar": {
"boxTitle": "Tarama geçmişi",
"expandTipText": "Kayıt"
},
"menuCommand": {
"settings": "kurmak",
"buttonClose": "kapatma",
"goodsHistories": {
"clear": "Tüm ürün tarama geçmişini temizle"
}
}
},
"nl": {
"operat": {
"copied": "Ohhhh, Gekopieerd!"
},
"dialog": {
"title": "opgezet",
"contentPieceMax": "Maximaal aantal browserecords (minimaal: {min}, maximaal: {max}, gewijzigde waarden worden automatisch opgeslagen):",
"contentPieceClear": "Wis alle browsegeschiedenis. Opmerking: de geschiedenis kan na het wissen niet worden hersteld. Wees voorzichtig.",
"contentPieceClearBtn": "Duidelijk",
"clearConfirmContent": "Wilt u de hele browsegeschiedenis wissen? Eenmaal gewist, kan het niet meer worden hersteld~"
},
"historyToolbar": {
"boxTitle": "Geschiedenis doorbladeren",
"expandTipText": "Dossier"
},
"menuCommand": {
"settings": "opgezet",
"buttonClose": "sluiting",
"goodsHistories": {
"clear": "Wis de volledige browsegeschiedenis van producten"
}
}
}
};
var _a, _b;
const isDev = false, isDebug = false;
const currentHost = window.location.host;
const currentUrl = window.location.href;
const lang = (navigator.language.indexOf("-") != -1 ? navigator.language.split("-")[0] : navigator.language).toLocaleLowerCase();
const ScriptConst = {
"lang": lang,
"isDev": isDev,
"isDebug": isDebug,
"currentHost": currentHost,
"currentUrl": currentUrl
};
const language = (_a = commonLanguage[lang]) != null ? _a : commonLanguage["en"];
const eLanguage = (_b = ecommerceLanguage[lang]) != null ? _b : ecommerceLanguage["en"];
var __async$d = (__this, __arguments, generator) => {
return new Promise((resolve, reject) => {
var fulfilled = (value) => {
try {
step(generator.next(value));
} catch (e) {
reject(e);
}
};
var rejected = (value) => {
try {
step(generator.throw(value));
} catch (e) {
reject(e);
}
};
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
step((generator = generator.apply(__this, __arguments)).next());
});
};
const logger = (level = "log", ...messages) => {
{
return;
}
};
const Tools = {
decryptStr: function(str) {
let result = atob(str);
return result.split("").reverse().join("");
},
encryptStr: function(str) {
let result = str.split("").reverse().join("");
return btoa(result);
},
platform: function() {
let platform = "unknown";
const currentHost = window.location.host;
if (/twitter|x\.com$/.test(currentHost)) {
platform = "x";
} else if (/aliexpress/.test(currentHost)) {
platform = "aliexpress";
} else if (/youtube\.com$/.test(currentHost)) {
platform = "youtube";
} else if (/www\.amazon\.com$/.test(currentHost)) {
platform = "amazon";
} else if (/www\.ebay\./.test(currentHost)) {
platform = "ebay";
} else if (/www\.lazada\./.test(currentHost)) {
platform = "lazada";
} else if (/www\.tiktok\.com/.test(currentHost)) {
platform = "tiktok";
} else if (/cobalt\.tools/.test(currentHost)) {
platform = "cobalt";
} else if (/www\.bestbuy\./.test(currentHost)) {
platform = "bestbuy";
} else if (/banggood\.com/.test(currentHost)) {
platform = "banggood";
} else if (/wish\.com/.test(currentHost)) {
platform = "wish";
}
return platform;
},
removeAliexpressAnchors: function(node) {
const tagName = node.tagName;
if (!tagName)
return;
const exist = ["A", "IMG", "DIV", "SPAN", "LABEL", "TABLE", "TR", "TD", "CANVAS"].some((name) => name === tagName);
if (exist) {
node.removeAttribute("data-spm-anchor-id");
for (let i = 0; i < node.childNodes.length; i++) {
this.removeAliexpressAnchors(node.childNodes[i]);
}
}
},
openInTab: function(url, options = { "active": true, "insert": true, "setParent": true }) {
if (typeof GM_openInTab === "function") {
GM_openInTab(url, options);
} else {
GM.openInTab(url, options);
}
},
request: function(mothed, url, param, headers = { "Content-Type": "application/json;charset=UTF-8" }) {
return new Promise(function(resolve, reject) {
GM_xmlhttpRequest({
url,
method: mothed,
data: param,
headers,
onload: function(response) {
const status = response.status;
if (status == 200 || status == "200") {
var responseText = response.responseText;
resolve({ "code": "success", "result": responseText });
} else {
resolve({ "code": "error", "result": null });
}
},
onabort: function() {
resolve({ "code": "error", "result": null });
},
onerror: function() {
resolve({ "code": "error", "result": null });
}
});
});
},
crossRequest: function(method, url, param) {
if (!method) {
method = "get";
}
if (!url) {
return new Promise(function(resolve, reject) {
reject({ "code": "error", "result": null });
});
}
if (!param) {
param = {};
}
method = method.toUpperCase();
let config = {
method
};
if (method === "POST") {
config.headers["Content-Type"] = "application/json";
config.body = JSON.stringify(param);
}
return new Promise(function(resolve, reject) {
fetch(url, config).then((response) => response.text()).then((text) => {
resolve({ "code": "success", "result": text });
}).catch((error) => {
reject({ "code": "error", "result": null });
});
});
},
getParamterBySuffix: function(url = window.location.href, suffix = "html") {
if (url.indexOf("?") != -1) {
url = url.split("?")[0];
}
if (url.indexOf("#") != -1) {
url = url.split("#")[0];
}
let regex = new RegExp("\\/([^\\/]*?)\\." + suffix);
if (/lazada/.test(url)) {
regex = new RegExp("-i(\\d+)(?:-s(\\d+))?\\.html");
} else if (/www\.ebay/.test(url)) {
regex = new RegExp("\\/itm\\/(\\d+)");
}
const match = url.match(regex);
return match ? match[1] : null;
},
getParamterBySearch: function(paramsString = window.location.href, tag) {
if (paramsString.indexOf("?") != -1) {
paramsString = paramsString.split("?")[1];
}
const params = new URLSearchParams(paramsString);
return params.get(tag);
},
waitForElementByInterval: function(selector, target = document.body, allowEmpty = true, delay = 10, maxDelay = 10 * 1e3) {
return new Promise((resolve, reject) => {
let totalDelay = 0;
let element = target.querySelector(selector);
let result = allowEmpty ? !!element : !!element && !!element.innerHTML;
if (result) {
resolve(element);
}
const elementInterval = setInterval(() => {
if (totalDelay >= maxDelay) {
clearInterval(elementInterval);
resolve(null);
}
element = target.querySelector(selector);
result = allowEmpty ? !!element : !!element && !!element.innerHTML;
if (result) {
clearInterval(elementInterval);
resolve(element);
} else {
totalDelay += delay;
}
}, delay);
});
},
randomNumber: function() {
return Math.ceil(Math.random() * 1e8);
},
elementInContainer: function(container, element) {
return container.contains(element);
},
mustGetElement: function(handler) {
return __async$d(this, null, function* () {
const getElements = (handler2) => __async$d(this, null, function* () {
const promiseArray = [];
const handlers = handler2.split("@");
for (let i = 0; i < handlers.length; i++) {
const eleName = handlers[i];
if (!eleName) {
continue;
}
if (eleName == "body") {
promiseArray.push(
new Promise((resolve, reject) => {
resolve(document.body);
})
);
} else if (eleName == "html") {
promiseArray.push(
new Promise((resolve, reject) => {
resolve(document.html);
})
);
} else {
promiseArray.push(this.waitForElementByInterval(eleName, document.body, true, 10, 1500));
}
}
let element2 = yield Promise.race(promiseArray);
return element2;
});
let element = yield getElements(handler);
return new Promise((resolve, reject) => {
if (element) {
resolve(element);
return;
}
const waitInterval = setInterval(() => {
element = getElements(handler);
if (element) {
clearInterval(waitInterval);
resolve(element);
return;
}
}, 2e3);
});
});
},
loopTask: function(callback, delay = 1500) {
callback();
setInterval(() => {
callback();
}, delay);
},
distinguishRemoveAndTry: function(distinguish, callback) {
const distinguishElements = distinguish.map((name) => document.querySelector("*[name='" + name + "']"));
const validateRs = distinguishElements.some((ele) => ele === null || ele === void 0);
if (validateRs) {
distinguishElements.reverse().forEach((element) => {
if (element) {
element.remove();
}
});
callback();
}
}
};
const Toast = {
initStyle: function() {
GM_addStyle(`
@keyframes fadeIn {
0% {opacity: 0}
100% {opacity: 1}
}
@-webkit-keyframes fadeIn {
0% {opacity: 0}
100% {opacity: 1}
}
@-moz-keyframes fadeIn {
0% {opacity: 0}
100% {opacity: 1}
}
@-o-keyframes fadeIn {
0% {opacity: 0}
100% {opacity: 1}
}
@-ms-keyframes fadeIn {
0% {opacity: 0}
100% {opacity: 1}
}
@keyframes fadeOut {
0% {opacity: 1}
100% {opacity: 0}
}
@-webkit-keyframes fadeOut {
0% {opacity: 1}
100% {opacity: 0}
}
@-moz-keyframes fadeOut {
0% {opacity: 1}
100% {opacity: 0}
}
@-o-keyframes fadeOut {
0% {opacity: 1}
100% {opacity: 0}
}
@-ms-keyframes fadeOut {
0% {opacity: 1}
100% {opacity: 0}
}
.toast-style-kk998y{
position: fixed;
background: rgba(0, 0, 0, 0.7);
color: #fff;
font-size: 14px;
line-height: 1;
padding:10px;
border-radius: 3px;
left: 50%;
transform: translateX(-50%);
-webkit-transform: translateX(-50%);
-moz-transform: translateX(-50%);
-o-transform: translateX(-50%);
-ms-transform: translateX(-50%);
z-index: 999999999999999999999999999;
white-space: nowrap;
}
.fadeOut{
animation: fadeOut .5s;
}
.fadeIn{
animation:fadeIn .5s;
}
`);
},
show: function(params) {
let time = params.time;
let background = params.background;
let color = params.color;
let position = params.position;
let defaultMarginValue = 50;
if (time == void 0 || time == "") {
time = 1500;
}
if (position == void 0 || position == "") {
position = "center-bottom";
}
const el = document.createElement("div");
if (background != void 0 && background != "") {
el.style.backgroundColor = background;
}
if (color != void 0 && color != "") {
el.style.color = color;
}
el.setAttribute("class", "toast-style-kk998y");