StreamingCommunity 2.9.3__py3-none-any.whl → 2.9.4__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of StreamingCommunity might be problematic. Click here for more details.

Files changed (33) hide show
  1. StreamingCommunity/Api/Player/Helper/Vixcloud/util.py +40 -38
  2. StreamingCommunity/Api/Player/maxstream.py +3 -11
  3. StreamingCommunity/Api/Site/1337xx/site.py +1 -9
  4. StreamingCommunity/Api/Site/altadefinizione/__init__.py +61 -0
  5. StreamingCommunity/Api/Site/altadefinizione/film.py +98 -0
  6. StreamingCommunity/Api/Site/altadefinizione/series.py +164 -0
  7. StreamingCommunity/Api/Site/altadefinizione/site.py +75 -0
  8. StreamingCommunity/Api/Site/altadefinizione/util/ScrapeSerie.py +72 -0
  9. StreamingCommunity/Api/Site/animeunity/film_serie.py +1 -1
  10. StreamingCommunity/Api/Site/animeunity/site.py +1 -9
  11. StreamingCommunity/Api/Site/cb01new/site.py +5 -16
  12. StreamingCommunity/Api/Site/ddlstreamitaly/site.py +1 -9
  13. StreamingCommunity/Api/Site/guardaserie/site.py +1 -9
  14. StreamingCommunity/Api/Site/streamingcommunity/series.py +29 -11
  15. StreamingCommunity/Api/Site/streamingcommunity/site.py +10 -10
  16. StreamingCommunity/Api/Site/streamingcommunity/util/ScrapeSerie.py +38 -17
  17. StreamingCommunity/Api/Template/Class/SearchType.py +1 -1
  18. StreamingCommunity/Api/Template/Util/__init__.py +0 -1
  19. StreamingCommunity/Api/Template/Util/manage_ep.py +1 -0
  20. StreamingCommunity/Api/Template/config_loader.py +0 -4
  21. StreamingCommunity/Lib/Downloader/HLS/downloader.py +2 -2
  22. StreamingCommunity/Lib/Downloader/MP4/downloader.py +3 -2
  23. StreamingCommunity/Lib/M3U8/estimator.py +3 -3
  24. StreamingCommunity/Upload/version.py +1 -1
  25. StreamingCommunity/Util/config_json.py +0 -3
  26. StreamingCommunity/__init__.py +6 -0
  27. {StreamingCommunity-2.9.3.dist-info → streamingcommunity-2.9.4.dist-info}/METADATA +90 -7
  28. {StreamingCommunity-2.9.3.dist-info → streamingcommunity-2.9.4.dist-info}/RECORD +32 -28
  29. {StreamingCommunity-2.9.3.dist-info → streamingcommunity-2.9.4.dist-info}/WHEEL +1 -1
  30. StreamingCommunity/Api/Template/Util/get_domain.py +0 -100
  31. {StreamingCommunity-2.9.3.dist-info → streamingcommunity-2.9.4.dist-info}/LICENSE +0 -0
  32. {StreamingCommunity-2.9.3.dist-info → streamingcommunity-2.9.4.dist-info}/entry_points.txt +0 -0
  33. {StreamingCommunity-2.9.3.dist-info → streamingcommunity-2.9.4.dist-info}/top_level.txt +0 -0
@@ -1,47 +1,51 @@
1
- StreamingCommunity/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1
+ StreamingCommunity/__init__.py,sha256=Cw-N0VCg7sef1WqdtvVwrhs1zc4LoUhs5C8k7vpM1lQ,207
2
2
  StreamingCommunity/run.py,sha256=AbEL0cyAaRgaG5qE1c7Z6SVZ4Wu7WIH9pZmwC4FDWW8,12076
3
3
  StreamingCommunity/Api/Player/ddl.py,sha256=M_ePETCMBpIHr5K5Yb7EML5VXwqkR7vJHQcGIv4AEQw,2261
4
- StreamingCommunity/Api/Player/maxstream.py,sha256=abUQeE4EOUV0uuVOd22_C8IdeKrAAoO5USdgdm6EzfM,5092
4
+ StreamingCommunity/Api/Player/maxstream.py,sha256=WXg8xncFXFiaUmTVXxB3NyknQtbvd0sF1eRaoDO24bU,4822
5
5
  StreamingCommunity/Api/Player/supervideo.py,sha256=hr9QViI-XD0Dqhcx90oaH8_j0d6cxpVaf-EuCjMs6hI,5199
6
6
  StreamingCommunity/Api/Player/vixcloud.py,sha256=NOZhW59hyBnG5FfmppcnIudAztr7seWzQBzAN3KC_3M,6317
7
7
  StreamingCommunity/Api/Player/Helper/Vixcloud/js_parser.py,sha256=U-8QlD5kGzIk3-4t4D6QyYmiDe8UBrSuVi1YHRQb7AU,4295
8
- StreamingCommunity/Api/Player/Helper/Vixcloud/util.py,sha256=dnyVxZTjjV3C6PUCu2OMeHI4NbiioBWhixlY2Ol9I74,5206
8
+ StreamingCommunity/Api/Player/Helper/Vixcloud/util.py,sha256=QLUgbwQrpuPIVNzdBlAiEJXnd-eCj_JQFckZZEEL55w,5214
9
9
  StreamingCommunity/Api/Site/1337xx/__init__.py,sha256=pyaQ3QlLdiqLcyNyfE6jKhOR5BXUiKLfPcIBHbk8U8U,1378
10
- StreamingCommunity/Api/Site/1337xx/site.py,sha256=u6a453wVy3vJrGcLlSUhErKzr63lv-o9cx36RjFpPRs,2647
10
+ StreamingCommunity/Api/Site/1337xx/site.py,sha256=MJzxNLhx6PDsnTTyJebDjzFPpqep54u2Q4VFf9sa23M,2212
11
11
  StreamingCommunity/Api/Site/1337xx/title.py,sha256=lGb-IbWEIfg9Eu3XIu6IfxTOjvXkFL_NO9UEZcxOAfE,1831
12
+ StreamingCommunity/Api/Site/altadefinizione/__init__.py,sha256=cQGI_p64kOwyDHiV-Jj5dSTnRCnEl-HyBHDUa0o1PTM,1484
13
+ StreamingCommunity/Api/Site/altadefinizione/film.py,sha256=LiHaKjB4lt3hcLx9kbJvndyZmkOc0yuRWYopD9PkxGI,2930
14
+ StreamingCommunity/Api/Site/altadefinizione/series.py,sha256=fYBIiCP9P422-bfJJ2ualFz3MwKiNsDBoMFXvovadiQ,5581
15
+ StreamingCommunity/Api/Site/altadefinizione/site.py,sha256=8wiC6NOSgPSWWpmGFyg2eZ4gZNXYe_UqTonp2fIdLzc,2089
16
+ StreamingCommunity/Api/Site/altadefinizione/util/ScrapeSerie.py,sha256=NcH8bH7WsBqfLUZCMm5163rBuSPBCb8DgRysI558yFM,2525
12
17
  StreamingCommunity/Api/Site/animeunity/__init__.py,sha256=Lz9trBzQZL11wGyIT2Y4CWe3JxOkDUPzTQXXO76s0oQ,2278
13
- StreamingCommunity/Api/Site/animeunity/film_serie.py,sha256=I44DJ26evVpJPveoWYZvlswB6f9gEG0Br_IrogleAk0,5771
14
- StreamingCommunity/Api/Site/animeunity/site.py,sha256=SRtei5Ftx9Vb9z5F4C-nbdrVV8s--VwtfE6l8Y7_8Ko,5401
18
+ StreamingCommunity/Api/Site/animeunity/film_serie.py,sha256=Nt6j-4wT00SFufjIK9-nkauTVnyfISbUyMfvZk8Z0Lc,5768
19
+ StreamingCommunity/Api/Site/animeunity/site.py,sha256=2M91AZMaOrbUoZUjyB0L6y0g_-67ywfxbPUq37g65J8,4964
15
20
  StreamingCommunity/Api/Site/animeunity/util/ScrapeSerie.py,sha256=6Vbw5KVwUbgooGjUIRAuXr9cWSkHDkAFP7EiXF2T4OM,2709
16
21
  StreamingCommunity/Api/Site/cb01new/__init__.py,sha256=jw-eyJunemd3uNwpow75_8s7TX8bYyiRA-zkF5NZ75w,1393
17
22
  StreamingCommunity/Api/Site/cb01new/film.py,sha256=trrEGcklB6FhqpJvGaEwHI0EThK__e9O6DuknKAFNHw,1628
18
- StreamingCommunity/Api/Site/cb01new/site.py,sha256=q9bHKgHkXWE0vOcfQ9bKU0QDzbLassfSN2im2O4EYiI,2523
23
+ StreamingCommunity/Api/Site/cb01new/site.py,sha256=pZy-skUUzTql3sP7j6kaw1m7JjLe-xFjUiP48EHABMY,2009
19
24
  StreamingCommunity/Api/Site/ddlstreamitaly/__init__.py,sha256=XkpTFeb-yFI_bJCIph72cVE8GVoJP7Tby-NqkZNNDM4,1533
20
25
  StreamingCommunity/Api/Site/ddlstreamitaly/series.py,sha256=z3te51do5C_O77rDTR1N01aQ76BIGe5pm5i_PWJepQ4,3369
21
- StreamingCommunity/Api/Site/ddlstreamitaly/site.py,sha256=_I4fZuzE5DnwAGOBOJK_IYW04RETwl3N2J0FUJAjQqg,2913
26
+ StreamingCommunity/Api/Site/ddlstreamitaly/site.py,sha256=ZbzGqu24jqKPARKPfyXt5wB6QPRiygXitbgVRb9B2zk,2476
22
27
  StreamingCommunity/Api/Site/ddlstreamitaly/util/ScrapeSerie.py,sha256=HY8YEvzWp3sy1q07rFLXLZhGYvapA1amMZByYvs0iJM,2553
23
28
  StreamingCommunity/Api/Site/guardaserie/__init__.py,sha256=NjMn1EFWdFi9P89qpKNg3Dc84DDOSyuSBX0V5K24OjQ,1385
24
29
  StreamingCommunity/Api/Site/guardaserie/series.py,sha256=xXuMR9NiAtXkHrErsmXRY9IkE2FVGuhqjATYEfapb0Y,5670
25
- StreamingCommunity/Api/Site/guardaserie/site.py,sha256=5Y5svAT4QYZrNDPM9couf6M94g0g320NfoAuJt4dp94,2538
30
+ StreamingCommunity/Api/Site/guardaserie/site.py,sha256=0amgeVNguQP_5tD0ajhQX17GbSptE_r5_9JPNCd-caw,2101
26
31
  StreamingCommunity/Api/Site/guardaserie/util/ScrapeSerie.py,sha256=4sZRWm8r5X80q285hemRf7MAWeaN5yfOU6i1SjKU4Tg,3268
27
32
  StreamingCommunity/Api/Site/mostraguarda/__init__.py,sha256=6oGv_Q6pXFERkbpKjYjFJFblvDYSfe1zZph6_Ch8gNY,1234
28
33
  StreamingCommunity/Api/Site/mostraguarda/film.py,sha256=dA7Vo9bU7g8eY8Vaj06_n2MHlKBMHh4B_MIw2sO872A,2719
29
34
  StreamingCommunity/Api/Site/streamingcommunity/__init__.py,sha256=FV3ch-farw3tN_-Ay3JV_-TIoHzgQzxEJWPlFibE62Y,2351
30
35
  StreamingCommunity/Api/Site/streamingcommunity/film.py,sha256=LaZzEQms9t7r30_PjHPgIOUkVDyotX0qFDBMKMVNSWo,2530
31
- StreamingCommunity/Api/Site/streamingcommunity/series.py,sha256=LmvcGTr7GR4_n2G0QYnLUKFiA30OxQD_H9Y3pF4tamo,7926
32
- StreamingCommunity/Api/Site/streamingcommunity/site.py,sha256=OID6QB_WMydwVCYD0SupHpEP0VwHIBmwifwuIHW9HaE,2973
33
- StreamingCommunity/Api/Site/streamingcommunity/util/ScrapeSerie.py,sha256=YYetljW4yr6eoiLe6nDUuFZ9NI8K85tF6859ikITmsY,3571
36
+ StreamingCommunity/Api/Site/streamingcommunity/series.py,sha256=AxRxb7MmWS9AfmibK2iZca7ClzzU91e3p3E9ap3LcQI,8211
37
+ StreamingCommunity/Api/Site/streamingcommunity/site.py,sha256=Z0tOcF3a6JzXwwsfCh1_qUDLW5PdeTFQsVZrCxyMeGg,2722
38
+ StreamingCommunity/Api/Site/streamingcommunity/util/ScrapeSerie.py,sha256=4WU0YFPXcsBpEANMGpAsbtffu3HxCqLsiC0K6_4OlHM,4525
34
39
  StreamingCommunity/Api/Template/__init__.py,sha256=oyfd_4_g5p5q6mxb_rKwSsudZnTM3W3kg1tLwxg-v-Q,46
35
- StreamingCommunity/Api/Template/config_loader.py,sha256=seJjLi05_8xrs4tdt4zXNCPa9TLp7n5FufFM2XErokI,2166
40
+ StreamingCommunity/Api/Template/config_loader.py,sha256=2RT_0mqQmWzXM4rYaqss-yhXztYAcfNkTalFPjzv270,2056
36
41
  StreamingCommunity/Api/Template/site.py,sha256=lD7FCp-xHCTwTam51MYtI-JKRuw1VLsY9KQDtsk3MYE,2842
37
- StreamingCommunity/Api/Template/Class/SearchType.py,sha256=FtO8xDUGEeJgMWsK2Ab7ZzAFsncalTYL2oEYi8uCnuk,2531
38
- StreamingCommunity/Api/Template/Util/__init__.py,sha256=GZZgT816VwTYekPOwLExHenpak0gO-V3LLGTYIElt3A,234
39
- StreamingCommunity/Api/Template/Util/get_domain.py,sha256=tWQKWs5LJZna4a2P0IfxlSZDbZTDjiqq9SmHTbK-PyU,2763
40
- StreamingCommunity/Api/Template/Util/manage_ep.py,sha256=aPRgSB6OiUNfYQKMTEDrjxeTFfOUfx3JypvA6nehwP4,9251
42
+ StreamingCommunity/Api/Template/Class/SearchType.py,sha256=LOlE8UgraEM0UAVeNCThDGi8bleei31p7KpryuZm3VE,2530
43
+ StreamingCommunity/Api/Template/Util/__init__.py,sha256=ZWQQd6iymNFDol9HaKPhVBoRX1W-xHJZgU_mZvLVdsM,196
44
+ StreamingCommunity/Api/Template/Util/manage_ep.py,sha256=FYe2DC9SXIXzlRYI7fW4ieBpfrxYzsUgt2C47tYRk7U,9252
41
45
  StreamingCommunity/Lib/Downloader/__init__.py,sha256=JhbBh5hOnSM7VmtkxJ7zZ_FtWEC1JdnKThsSBjLV5FY,140
42
- StreamingCommunity/Lib/Downloader/HLS/downloader.py,sha256=2MzuMtXgRb6TcurQi0z6fJcXi0mzrbecWOk-L46bPgw,21585
46
+ StreamingCommunity/Lib/Downloader/HLS/downloader.py,sha256=s3ZXyKsuBN3wE4Y0Y9xXuDauBPbaI9Qhgoy83IeMnbs,21590
43
47
  StreamingCommunity/Lib/Downloader/HLS/segments.py,sha256=eVQzB06EochPM1E0VNWgfvEyc5wGDq_yG6Fqo7WPNic,18468
44
- StreamingCommunity/Lib/Downloader/MP4/downloader.py,sha256=4rgaVTlBvNCfS2dWbTC_eCiXL8MbC1mwRGlUtvJv4nw,7466
48
+ StreamingCommunity/Lib/Downloader/MP4/downloader.py,sha256=MiKBICNnMPJEz0ICiEfKYFs0LhKKfTSMfm9gGWolR74,7537
45
49
  StreamingCommunity/Lib/Downloader/TOR/downloader.py,sha256=KVZxCl1VB1-OuTjUhVS5Ycog_P0vCGTfRzhZPv8O7Ps,11267
46
50
  StreamingCommunity/Lib/FFmpeg/__init__.py,sha256=6PBsZdE1jrD2EKOVyx3JEHnyDZzVeKlPkH5T0zyfOgU,130
47
51
  StreamingCommunity/Lib/FFmpeg/capture.py,sha256=73BEpTijksErZOu46iRxwl3idKzZ-sVXXRr4nocIGY0,5168
@@ -49,7 +53,7 @@ StreamingCommunity/Lib/FFmpeg/command.py,sha256=ubpffE02nsZM7xch5gbwGlEiUzecpxcF
49
53
  StreamingCommunity/Lib/FFmpeg/util.py,sha256=6QzTbk5BNxKYsTl-cJgOO2XGQTWUdMloWMyrGGBs6eU,7168
50
54
  StreamingCommunity/Lib/M3U8/__init__.py,sha256=H_KS2eDd3kVXMziFJnD0FCPvPHEizaqfoA36ElTv_r8,170
51
55
  StreamingCommunity/Lib/M3U8/decryptor.py,sha256=kuxxsd3eN0VGRrMJWXzHo8gCpT0u3fSZs_lwxlE5Fqs,2948
52
- StreamingCommunity/Lib/M3U8/estimator.py,sha256=U2xnUvoAeLZT8KA1ZDZO9TRz7sXgzIyCtHClT2wcI28,5711
56
+ StreamingCommunity/Lib/M3U8/estimator.py,sha256=ueb2at6Ueow3TUsAyd43aIy0UzKG2-PEgnYysHRMkZ0,5680
53
57
  StreamingCommunity/Lib/M3U8/parser.py,sha256=xN16pQZSCN9mQl_s7OcuH07-mNgVMpAS_hERq6zp7XM,21558
54
58
  StreamingCommunity/Lib/M3U8/url_fixer.py,sha256=zldE4yOuNBV6AAvL1KI6p7XdRI_R5YZRscbDgT1564M,1735
55
59
  StreamingCommunity/Lib/TMBD/__init__.py,sha256=XzE42tw3Ws59DD1PF8WmGtZ0D4D7Hk3Af8QthNE-22U,66
@@ -58,18 +62,18 @@ StreamingCommunity/Lib/TMBD/tmdb.py,sha256=byg0EFnlmd9JeLvn1N9K3QkB1KEfeMuFa7OVf
58
62
  StreamingCommunity/TelegramHelp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
59
63
  StreamingCommunity/TelegramHelp/telegram_bot.py,sha256=Qe1__aoK4PpDuing8JtWgdHzLee8LuYYyfeLNA7yADU,26307
60
64
  StreamingCommunity/Upload/update.py,sha256=TXWAOfvZr1So_oME11YvX_L5zRy2tM-ijF-_g1jf87o,2548
61
- StreamingCommunity/Upload/version.py,sha256=bREs7N-kz1d-zZ5B1i3S2s-N5hBkN0o0LPTL9AuAqbY,171
65
+ StreamingCommunity/Upload/version.py,sha256=hDKhBLXzbE1tM986tfsuk7r0PhDnn-z8ib3Txve_wmc,171
62
66
  StreamingCommunity/Util/color.py,sha256=NvD0Eni-25oOOkY-szCEoc0lGvzQxyL7xhM0RE4EvUM,458
63
- StreamingCommunity/Util/config_json.py,sha256=dmo7FTboEuEs1nYf17RYaTyT03qRvOLJzGgBitYHXs4,19379
67
+ StreamingCommunity/Util/config_json.py,sha256=pbXfxBx_SP6eWo-5MYNwLRKRFRF-RT9MMRMLXKP5mM4,19366
64
68
  StreamingCommunity/Util/ffmpeg_installer.py,sha256=q5yb_ZXKe9PhcG7JbKLfo1AZa8DNukgHqymPbudDuAY,13585
65
69
  StreamingCommunity/Util/headers.py,sha256=TItkaFMx1GqsVNEIS3Tr0BGU5EHyF-HkZVliHORT3P8,308
66
70
  StreamingCommunity/Util/logger.py,sha256=9kGD6GmWj2pM8ADpJc85o7jm8DD0c5Aguqnq-9kmxos,3314
67
71
  StreamingCommunity/Util/message.py,sha256=SJaIPLvWeQqsIODVUKw3TgYRmBChovmlbcF6OUxqMI8,1425
68
72
  StreamingCommunity/Util/os.py,sha256=MUGJKQbNMWeoUrnJ2Ug3hoyYlrPDqU9BY94UmiUbxfA,14858
69
73
  StreamingCommunity/Util/table.py,sha256=X1t9VPYl9GemLMk_-x_WfpysQ-3Iv8vh0aTIJKm0fK0,8565
70
- StreamingCommunity-2.9.3.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
71
- StreamingCommunity-2.9.3.dist-info/METADATA,sha256=UPtxd9uEBSd8bvBBTexZ5kaeROrDyX_WGxBT6dcRYhc,21552
72
- StreamingCommunity-2.9.3.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
73
- StreamingCommunity-2.9.3.dist-info/entry_points.txt,sha256=Qph9XYfDC8n4LfDLOSl6gJGlkb9eFb5f-JOr_Wb_5rk,67
74
- StreamingCommunity-2.9.3.dist-info/top_level.txt,sha256=YsOcxKP-WOhWpIWgBlh0coll9XUx7aqmRPT7kmt3fH0,19
75
- StreamingCommunity-2.9.3.dist-info/RECORD,,
74
+ streamingcommunity-2.9.4.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
75
+ streamingcommunity-2.9.4.dist-info/METADATA,sha256=Jc62h_lSuJU_KKWjfGXMUJ_kXnyUrddv2CFe6UzoqzE,23425
76
+ streamingcommunity-2.9.4.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
77
+ streamingcommunity-2.9.4.dist-info/entry_points.txt,sha256=Qph9XYfDC8n4LfDLOSl6gJGlkb9eFb5f-JOr_Wb_5rk,67
78
+ streamingcommunity-2.9.4.dist-info/top_level.txt,sha256=YsOcxKP-WOhWpIWgBlh0coll9XUx7aqmRPT7kmt3fH0,19
79
+ streamingcommunity-2.9.4.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.45.1)
2
+ Generator: setuptools (76.0.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,100 +0,0 @@
1
- # 18.06.24
2
-
3
- import certifi
4
- from urllib.parse import urlparse, unquote
5
-
6
-
7
- # External libraries
8
- import httpx
9
- from rich.console import Console
10
-
11
-
12
- # Internal utilities
13
- from StreamingCommunity.Util.headers import get_headers
14
- from StreamingCommunity.Util.config_json import config_manager
15
-
16
-
17
- # Variable
18
- console = Console()
19
- VERIFY = config_manager.get("REQUESTS", "verify")
20
- MAX_TIMEOUT = config_manager.get_int("REQUESTS", "timeout")
21
-
22
-
23
- def get_tld(url_str):
24
- """Extract the TLD (Top-Level Domain) from the URL."""
25
- try:
26
- url_str = unquote(url_str)
27
- parsed = urlparse(url_str)
28
- domain = parsed.netloc.lower()
29
-
30
- if domain.startswith('www.'):
31
- domain = domain[4:]
32
- parts = domain.split('.')
33
-
34
- return parts[-1] if len(parts) >= 2 else None
35
-
36
- except Exception:
37
- return None
38
-
39
- def get_base_domain(url_str):
40
- """Extract base domain without protocol, www and path."""
41
- try:
42
- parsed = urlparse(url_str)
43
- domain = parsed.netloc.lower()
44
- if domain.startswith('www.'):
45
- domain = domain[4:]
46
-
47
- # Check if domain has multiple parts separated by dots
48
- parts = domain.split('.')
49
- if len(parts) > 2:
50
- return '.'.join(parts[:-1])
51
-
52
- return parts[0]
53
-
54
- except Exception:
55
- return None
56
-
57
- def validate_url(url, base_url):
58
- """Validate if URL is accessible and matches expected base domain."""
59
- console.print(f"\n[cyan]Starting validation for URL[white]: [yellow]{url}")
60
-
61
- # Verify URL structure matches base_url structure
62
- base_domain = get_base_domain(base_url)
63
- url_domain = get_base_domain(url)
64
-
65
- if base_domain != url_domain:
66
- console.print(f"[red]Domain structure mismatch: {url_domain} != {base_domain}")
67
- return False, None
68
-
69
- client = httpx.Client(
70
- http1=True,
71
- verify=certifi.where(),
72
- headers=get_headers(),
73
- timeout=MAX_TIMEOUT
74
- )
75
-
76
- # Make request to web site
77
- response = client.get(url, follow_redirects=False)
78
-
79
- if response.status_code >= 400:
80
- console.print(f"[red]Check failed: HTTP {response.status_code}")
81
- console.print(f"[red]Response content: {response.text}")
82
- return False, None
83
-
84
- return True, base_domain
85
-
86
- def search_domain(base_url: str):
87
- """Search for valid domain matching site name and base URL."""
88
- try:
89
- is_correct, redirect_tld = validate_url(base_url, base_url)
90
-
91
- if is_correct:
92
- tld = redirect_tld or get_tld(base_url)
93
- return tld, base_url
94
-
95
- else:
96
- return None, None
97
-
98
- except Exception as e:
99
- console.print(f"[red]Error testing initial URL: {str(e)}")
100
- return None, None