StreamingCommunity 2.6.1__py3-none-any.whl → 2.7.0__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 (40) hide show
  1. StreamingCommunity/Api/Player/ddl.py +2 -2
  2. StreamingCommunity/Api/Player/maxstream.py +3 -3
  3. StreamingCommunity/Api/Player/supervideo.py +2 -2
  4. StreamingCommunity/Api/Player/vixcloud.py +16 -18
  5. StreamingCommunity/Api/Site/1337xx/site.py +11 -4
  6. StreamingCommunity/Api/Site/1337xx/title.py +3 -4
  7. StreamingCommunity/Api/Site/animeunity/film_serie.py +5 -4
  8. StreamingCommunity/Api/Site/animeunity/site.py +9 -3
  9. StreamingCommunity/Api/Site/animeunity/util/ScrapeSerie.py +8 -9
  10. StreamingCommunity/Api/Site/cb01new/site.py +12 -4
  11. StreamingCommunity/Api/Site/ddlstreamitaly/site.py +10 -4
  12. StreamingCommunity/Api/Site/ddlstreamitaly/util/ScrapeSerie.py +2 -2
  13. StreamingCommunity/Api/Site/guardaserie/site.py +17 -11
  14. StreamingCommunity/Api/Site/guardaserie/util/ScrapeSerie.py +4 -3
  15. StreamingCommunity/Api/Site/mostraguarda/film.py +3 -3
  16. StreamingCommunity/Api/Site/streamingcommunity/film.py +1 -1
  17. StreamingCommunity/Api/Site/streamingcommunity/series.py +2 -2
  18. StreamingCommunity/Api/Site/streamingcommunity/site.py +11 -4
  19. StreamingCommunity/Api/Site/streamingcommunity/util/ScrapeSerie.py +8 -9
  20. StreamingCommunity/Api/Template/Util/get_domain.py +11 -72
  21. StreamingCommunity/Api/Template/config_loader.py +6 -2
  22. StreamingCommunity/Lib/Downloader/HLS/downloader.py +2 -2
  23. StreamingCommunity/Lib/Downloader/HLS/proxyes.py +2 -2
  24. StreamingCommunity/Lib/Downloader/HLS/segments.py +5 -5
  25. StreamingCommunity/Lib/Downloader/MP4/downloader.py +2 -2
  26. StreamingCommunity/Upload/update.py +3 -3
  27. StreamingCommunity/Upload/version.py +1 -1
  28. StreamingCommunity/Util/_jsonConfig.py +198 -98
  29. StreamingCommunity/Util/headers.py +8 -1
  30. StreamingCommunity/run.py +13 -9
  31. {StreamingCommunity-2.6.1.dist-info → StreamingCommunity-2.7.0.dist-info}/METADATA +39 -23
  32. {StreamingCommunity-2.6.1.dist-info → StreamingCommunity-2.7.0.dist-info}/RECORD +36 -40
  33. StreamingCommunity/Api/Site/ilcorsaronero/__init__.py +0 -53
  34. StreamingCommunity/Api/Site/ilcorsaronero/site.py +0 -64
  35. StreamingCommunity/Api/Site/ilcorsaronero/title.py +0 -42
  36. StreamingCommunity/Api/Site/ilcorsaronero/util/ilCorsarScraper.py +0 -149
  37. {StreamingCommunity-2.6.1.dist-info → StreamingCommunity-2.7.0.dist-info}/LICENSE +0 -0
  38. {StreamingCommunity-2.6.1.dist-info → StreamingCommunity-2.7.0.dist-info}/WHEEL +0 -0
  39. {StreamingCommunity-2.6.1.dist-info → StreamingCommunity-2.7.0.dist-info}/entry_points.txt +0 -0
  40. {StreamingCommunity-2.6.1.dist-info → StreamingCommunity-2.7.0.dist-info}/top_level.txt +0 -0
@@ -1,53 +1,49 @@
1
1
  StreamingCommunity/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- StreamingCommunity/run.py,sha256=iEI6TghwB5kJtpYRrnk4y-fVoElIGELnZFxaeqO93L8,12261
3
- StreamingCommunity/Api/Player/ddl.py,sha256=KNTrM6UzoyapfuLNWJvi16A6MJCa6h29JIs9oYasonc,2258
4
- StreamingCommunity/Api/Player/maxstream.py,sha256=Q9td9lOxC_-8YwgB3bQ-H2686uMqjd23lptnsdAglYk,5153
5
- StreamingCommunity/Api/Player/supervideo.py,sha256=udPbBUvlvHVUCZasOJvFmcQfSFmB0KquoSOWOiGur4M,5925
6
- StreamingCommunity/Api/Player/vixcloud.py,sha256=n9SEx2G6-7OsvTMHcSbpO_XmU2U8IDQAwQ6C-qioBUE,9226
2
+ StreamingCommunity/run.py,sha256=-WHY68Kg6ZG13nVKyoRrm1FbW7QIPlEkxne8xKL17UE,12669
3
+ StreamingCommunity/Api/Player/ddl.py,sha256=CYcPDbraNQkLUmammfP_Jw_KVk3xSD-LXdcw2MCFXFQ,2262
4
+ StreamingCommunity/Api/Player/maxstream.py,sha256=u8t1L2k5wR4hs_CvgUXjeYP3kwQvNgEEaHuSf91pETw,5159
5
+ StreamingCommunity/Api/Player/supervideo.py,sha256=XhQvcFJBb19r7ice9hLmQ8TaIAKeXEad8BQcGyLKEhU,5929
6
+ StreamingCommunity/Api/Player/vixcloud.py,sha256=HeoBUrCgeQTy7S_rDvDzl5MKqu2Xgb_wFBXYBHIbHcc,8927
7
7
  StreamingCommunity/Api/Player/Helper/Vixcloud/js_parser.py,sha256=U-8QlD5kGzIk3-4t4D6QyYmiDe8UBrSuVi1YHRQb7AU,4295
8
8
  StreamingCommunity/Api/Player/Helper/Vixcloud/util.py,sha256=xt96JIbfE5W4Y59W888Cp-baRwnQVEDQO_x7Wq5iyNQ,5492
9
9
  StreamingCommunity/Api/Site/1337xx/__init__.py,sha256=AmvsV_jANao_agPGOrV8WFbGEjNlTCTk86Jec5RdRbs,1314
10
- StreamingCommunity/Api/Site/1337xx/site.py,sha256=OyS4FQ_IOSfbNcXHs0cJgnuG3407GfsN4v8P7uGZnrw,2639
11
- StreamingCommunity/Api/Site/1337xx/title.py,sha256=1_a8zMtjKX7E64U4jNq373KnGgKpdC1yNsenlclBJMo,1893
10
+ StreamingCommunity/Api/Site/1337xx/site.py,sha256=eWCBZPSgA3uGaya762ny-4jiwKEzEwP-XzHQsNqe1Js,2882
11
+ StreamingCommunity/Api/Site/1337xx/title.py,sha256=DWjqUKqXuM_LB0NXkI735_eXOeWb9PpwHEP69_f2BQo,1818
12
12
  StreamingCommunity/Api/Site/animeunity/__init__.py,sha256=2dul294DW-VnYGQeo5-WYlRZj1LjPbpL-bhlyuUl6WI,2219
13
- StreamingCommunity/Api/Site/animeunity/film_serie.py,sha256=L_7gQggHPf5T4-PLuDlFwTKqyq9ibH14m6EYyRiZEno,5686
14
- StreamingCommunity/Api/Site/animeunity/site.py,sha256=RoKRA28IObeGFgjINeXMziuGmAALv8-zGVb3O4KUwFg,5900
15
- StreamingCommunity/Api/Site/animeunity/util/ScrapeSerie.py,sha256=92PDY4CJSSmeHsVowqBuCzYmLa1pcXR8hCBXcuvlmvk,2886
13
+ StreamingCommunity/Api/Site/animeunity/film_serie.py,sha256=rclq_eojNZgGbZNxgavle46gY79scpsw93ZU-qPbkJA,5708
14
+ StreamingCommunity/Api/Site/animeunity/site.py,sha256=LUVIBXRvjS6iFwgL26emYtknYI7R8wvmmvV5u4b8Uhg,6116
15
+ StreamingCommunity/Api/Site/animeunity/util/ScrapeSerie.py,sha256=c280B0xelyYhju6gXk83VFAmsN7K9S_QG84hxudYMSI,2709
16
16
  StreamingCommunity/Api/Site/cb01new/__init__.py,sha256=-243pVwMjuAAPk7j7BjLL1SXIAK5ZHVHrsZ8hGhDIic,1329
17
17
  StreamingCommunity/Api/Site/cb01new/film.py,sha256=KtFPGQSc9hbmasBiz8dDfILC41iu-AlWiYVVHTVqUWg,1615
18
- StreamingCommunity/Api/Site/cb01new/site.py,sha256=gZeITd30ym_YK1GpTZu8QtpDMhhXvkSv5zonPh_f_4k,2218
18
+ StreamingCommunity/Api/Site/cb01new/site.py,sha256=ln5WTO_FqLiH_P09Kak0p_dEbbd7NtxnFSboR4SMpI0,2513
19
19
  StreamingCommunity/Api/Site/ddlstreamitaly/__init__.py,sha256=kyYJErCiMmlI549SFkcjjhVXcInwgDAyKxJJsNEI88A,1469
20
20
  StreamingCommunity/Api/Site/ddlstreamitaly/series.py,sha256=cLKRb1cq7LHveDFIpdbhgpSIJFeIhgsbvPeerVQh-LM,3335
21
- StreamingCommunity/Api/Site/ddlstreamitaly/site.py,sha256=QCTouEGUqhhnigDfx66L0Sz4sXOhML4JfAjsN_Bogpw,2853
22
- StreamingCommunity/Api/Site/ddlstreamitaly/util/ScrapeSerie.py,sha256=akHjQg4mFNdS39DyCyu2eE30ty_471YWJZ1NnTQT104,2549
21
+ StreamingCommunity/Api/Site/ddlstreamitaly/site.py,sha256=YPeS4Tcl9XdbUzs3RHwVS7KkKI_K-K8bg3ymz7sUTDw,3095
22
+ StreamingCommunity/Api/Site/ddlstreamitaly/util/ScrapeSerie.py,sha256=Zy3XAsw2HJwJ1d_T2nn9WTlmIaWP_zvK1wMm1722apc,2553
23
23
  StreamingCommunity/Api/Site/guardaserie/__init__.py,sha256=xCuKD72yOjazCF3GsIWLSeTzFpwr-8W33AgVKT5PFUU,1321
24
24
  StreamingCommunity/Api/Site/guardaserie/series.py,sha256=f5-5Fy-Bh1QF9zA4zr-DJRgoQCO8sQ0Af0v5VEleHFg,5619
25
- StreamingCommunity/Api/Site/guardaserie/site.py,sha256=HqwMAFDMouA9C0DWqSV1ziKxcNh6Kb8vO_PiowaVWhs,2643
26
- StreamingCommunity/Api/Site/guardaserie/util/ScrapeSerie.py,sha256=cm1LcEUTIiccCgJpXwbe6EOnKmzsEFXOaEGm2i5P1JA,3263
27
- StreamingCommunity/Api/Site/ilcorsaronero/__init__.py,sha256=P4raHiMhz-8UtCm4P1S065poMztTKzT9BovsfRXVuUs,1347
28
- StreamingCommunity/Api/Site/ilcorsaronero/site.py,sha256=B5LwR0vLLDaXMfwFHF3hnTaP1X3Z28t7fV3-le4T3Mg,2022
29
- StreamingCommunity/Api/Site/ilcorsaronero/title.py,sha256=aVkLZU5NsY40S_yrLYf2eAk3ZyEE_T9FlHZz9ZPCknM,1305
30
- StreamingCommunity/Api/Site/ilcorsaronero/util/ilCorsarScraper.py,sha256=BJgmv2UO3XM0gNkSsAt1REJoIUXjD_1nxT6Tpp5HGQg,5114
25
+ StreamingCommunity/Api/Site/guardaserie/site.py,sha256=YCibipP15QmGpuPRmn9FVofY4U_1Dze2AgLS3mTzeVg,2806
26
+ StreamingCommunity/Api/Site/guardaserie/util/ScrapeSerie.py,sha256=fpDXGRf8GMNqRu8vNBM_ao6qRktIySaEyvC4mK1Fvg0,3268
31
27
  StreamingCommunity/Api/Site/mostraguarda/__init__.py,sha256=Z4SpSr4OpNJYfhqxkNENZehk09jh72_D1cXTuoXNnVI,1184
32
- StreamingCommunity/Api/Site/mostraguarda/film.py,sha256=-qOyxlZoLBnGGCaAMGaAoXzWGnPYqtRRmXZ0WUEMsy0,2758
28
+ StreamingCommunity/Api/Site/mostraguarda/film.py,sha256=AcsCdLqMsilGxuuZlFoYV5njyMj0NT-ZX9wV6iD-0lw,2726
33
29
  StreamingCommunity/Api/Site/streamingcommunity/__init__.py,sha256=A9TYTo0ULdLvIT3gchCwWEASGwQnZ29Re_3lDKZrSvE,2292
34
- StreamingCommunity/Api/Site/streamingcommunity/film.py,sha256=92BjTgSsQPRK_t5gocN9JNs_SviErjYBJq1DJ_hvuV8,2517
35
- StreamingCommunity/Api/Site/streamingcommunity/series.py,sha256=c0T53pl3LfWsuYNDy5R1I9r4_aGdJaORndFGV70xPqw,7864
36
- StreamingCommunity/Api/Site/streamingcommunity/site.py,sha256=npGH0QTw1PRmJcAzRpFd2pwb4GBOxg1-DijP_u8FSQU,2874
37
- StreamingCommunity/Api/Site/streamingcommunity/util/ScrapeSerie.py,sha256=C88MF-Yqs6d4gGuAerEpgNgWUrrcKUpUpJYcwu959s4,3738
30
+ StreamingCommunity/Api/Site/streamingcommunity/film.py,sha256=qodORXTbUoJcOxgDXc82tcBDE7BBCr-_m7hG2v0fkq8,2516
31
+ StreamingCommunity/Api/Site/streamingcommunity/series.py,sha256=nUzMfdt_brqAeCOEb4AFIrh2apB-F070N-iXFpb3j7s,7862
32
+ StreamingCommunity/Api/Site/streamingcommunity/site.py,sha256=owqOj4zoCGx0Kbyd-IN0sybWrxC_kONbCrFju9kxdsM,3117
33
+ StreamingCommunity/Api/Site/streamingcommunity/util/ScrapeSerie.py,sha256=CEe9rwqG8ewgFxDuXrhCuwaG5hGoAsCS7lsRDktBMmU,3570
38
34
  StreamingCommunity/Api/Template/__init__.py,sha256=oyfd_4_g5p5q6mxb_rKwSsudZnTM3W3kg1tLwxg-v-Q,46
39
- StreamingCommunity/Api/Template/config_loader.py,sha256=FtVXEt7xqfNpTURZl7a0effYfns7Nb-OomJlfX2u4a0,2034
35
+ StreamingCommunity/Api/Template/config_loader.py,sha256=lQPdhg-ipevdsZucb9DNErmphmZyKRoklmAo8e6v1sY,2145
40
36
  StreamingCommunity/Api/Template/site.py,sha256=BNff60a8TWhg8yRnpGQPXtR8UKAVI2Kn3M-Wf1XIeE8,2934
41
37
  StreamingCommunity/Api/Template/Class/SearchType.py,sha256=FtO8xDUGEeJgMWsK2Ab7ZzAFsncalTYL2oEYi8uCnuk,2531
42
38
  StreamingCommunity/Api/Template/Util/__init__.py,sha256=lIP-Of79FzENknlgllwHloFAnuNbozjKCDIFk5L5KRw,276
43
- StreamingCommunity/Api/Template/Util/get_domain.py,sha256=OPgjNN3UgrMHPmy457_DbF5xSZ2fhvZCtRJHhqnYshY,7126
39
+ StreamingCommunity/Api/Template/Util/get_domain.py,sha256=IAFuR_XLAMqZJRan-Pz_UjAL_Ii8OqKIo2ZnKy1sQ-g,4486
44
40
  StreamingCommunity/Api/Template/Util/manage_ep.py,sha256=CQp7A4KatIpSczSEWZE6RR7_85XVdbqtspSDEIDKifw,8091
45
41
  StreamingCommunity/Api/Template/Util/recall_search.py,sha256=QSKDI4fyQfKF8C2eZXW6lBrAp1HTuhWQeA6g8ybDQYQ,1147
46
42
  StreamingCommunity/Lib/Downloader/__init__.py,sha256=JhbBh5hOnSM7VmtkxJ7zZ_FtWEC1JdnKThsSBjLV5FY,140
47
- StreamingCommunity/Lib/Downloader/HLS/downloader.py,sha256=POmu_pSQXuRK5ksYwMHzXG86D81u_q_2CG6dw2ZnDzw,21045
48
- StreamingCommunity/Lib/Downloader/HLS/proxyes.py,sha256=H92gBhiwsomtURyBx__SQrML0nSx_0rAb2VWFd2rMAk,3275
49
- StreamingCommunity/Lib/Downloader/HLS/segments.py,sha256=qydWmQIfz0d-jIVDRO9I5vcMlqgsOZc6qsIGimQmMIU,18797
50
- StreamingCommunity/Lib/Downloader/MP4/downloader.py,sha256=5EjInbqDUFxPGBts4ExczD-uNycnLFcxMdxjIYZA1cA,7569
43
+ StreamingCommunity/Lib/Downloader/HLS/downloader.py,sha256=bTMU21GjXCRNffgL5BOhsPw8SaqbQRg-I6jLO8SDbVo,21049
44
+ StreamingCommunity/Lib/Downloader/HLS/proxyes.py,sha256=ilDp8NDs0npn8V8GO_jj5F1maPhM4DuT9zQZ9reuWQk,3279
45
+ StreamingCommunity/Lib/Downloader/HLS/segments.py,sha256=ioxUo5fMpXIUJcRrVkJw6NigMdL_A84XC5X8Qu_ywwU,18807
46
+ StreamingCommunity/Lib/Downloader/MP4/downloader.py,sha256=boVwcmyqnBqX7rHKZImEOW59ELpqj4IBZ2eKLWsRW_k,7573
51
47
  StreamingCommunity/Lib/Downloader/TOR/downloader.py,sha256=n8-56EoGpe3-FO72zL66ovLGTAZRJwzmNqeRGe8VSO8,11212
52
48
  StreamingCommunity/Lib/FFmpeg/__init__.py,sha256=pFt6A1gD2tZ8REEXa8QgM7_CsenrmBLQXDh_I1bwZvM,131
53
49
  StreamingCommunity/Lib/FFmpeg/capture.py,sha256=GjzT2BNtGL75A9scJNX1RqiRn4cy39dFeHnz2b_Ocw8,5431
@@ -63,21 +59,21 @@ StreamingCommunity/Lib/TMBD/obj_tmbd.py,sha256=SsvxM4z0xU1IsSrB9o2dpRfuRDUYQk3uR
63
59
  StreamingCommunity/Lib/TMBD/tmdb.py,sha256=Nq06TDLpBgShd1mzOxujGfeiRHldiqtCh70w5poK484,10822
64
60
  StreamingCommunity/TelegramHelp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
61
  StreamingCommunity/TelegramHelp/telegram_bot.py,sha256=jqyo_1cc8ZPGaurHcTZPvrMDnbCLD7I4WhGPXNCt7Fo,26544
66
- StreamingCommunity/Upload/update.py,sha256=ayuUzXEQcvc62SBC2NxJwvSvk4aoHZITHpmOuW5fT5w,2541
67
- StreamingCommunity/Upload/version.py,sha256=AwPISdmcGhWmUMpR872ujNW76kbY6A-OWYMSwQpV91U,171
68
- StreamingCommunity/Util/_jsonConfig.py,sha256=Rm8XMjdj6o6g1MzXosawW6KM8SQ95RJBdXl9JHps-rk,7924
62
+ StreamingCommunity/Upload/update.py,sha256=J1HoYX00am_Eee7ya5Hi6pA6JhI86l5lRxMch665fuI,2547
63
+ StreamingCommunity/Upload/version.py,sha256=vo1R5JdZFFEkyRqjVz6SuCQzUvQ1dFu8oPle4QY8YzE,171
64
+ StreamingCommunity/Util/_jsonConfig.py,sha256=u6w-xfA2AErSYnLKqaoyoXg6L5ONI_mHWKOiEE13DqI,14565
69
65
  StreamingCommunity/Util/call_stack.py,sha256=bVYEjwLJnRNJ1tgfwClpyVcLKCTeTMHM2S6-HM2Ibfo,1375
70
66
  StreamingCommunity/Util/color.py,sha256=TWvoellnYd-oCTeU3bnXqkMf864KgF9YXwzjtI6rd4g,459
71
67
  StreamingCommunity/Util/console.py,sha256=xdGMbH38By9d4ugYMVJFaUrcMJW2krKZh0zbptA3SVQ,218
72
68
  StreamingCommunity/Util/ffmpeg_installer.py,sha256=q5yb_ZXKe9PhcG7JbKLfo1AZa8DNukgHqymPbudDuAY,13585
73
- StreamingCommunity/Util/headers.py,sha256=RNM583pJIO0ytlf9HKJMQ2PFFwJaQZ1eeyMD5E1Uxew,1205
69
+ StreamingCommunity/Util/headers.py,sha256=KoGHCd1Xd2vxZLjbeL5TScZQs71DALrUSYAieWrgVoQ,1350
74
70
  StreamingCommunity/Util/logger.py,sha256=ekHO3tryCwo5zqSe2RoI6s3qZsZx9ghinTchipMEovg,2112
75
71
  StreamingCommunity/Util/message.py,sha256=F2QKjkcCBl6TjsaM5G6iDck0IhxBnDkKV3itwUebr5c,1403
76
72
  StreamingCommunity/Util/os.py,sha256=xF8wfjI8aLfIN6DwKYc0g2CMkj6PNtJUd4LCNJVCZY4,17426
77
73
  StreamingCommunity/Util/table.py,sha256=Ca0bQWwfq_Tfx9ESHeQQgu3tAXTGaR7ku7VlJyr7R8I,8902
78
- StreamingCommunity-2.6.1.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
79
- StreamingCommunity-2.6.1.dist-info/METADATA,sha256=sF_Ek6eatgXhtIMAdS4Y9hPe-VM0iWy33bv1v5AuZpI,19566
80
- StreamingCommunity-2.6.1.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
81
- StreamingCommunity-2.6.1.dist-info/entry_points.txt,sha256=Qph9XYfDC8n4LfDLOSl6gJGlkb9eFb5f-JOr_Wb_5rk,67
82
- StreamingCommunity-2.6.1.dist-info/top_level.txt,sha256=YsOcxKP-WOhWpIWgBlh0coll9XUx7aqmRPT7kmt3fH0,19
83
- StreamingCommunity-2.6.1.dist-info/RECORD,,
74
+ StreamingCommunity-2.7.0.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
75
+ StreamingCommunity-2.7.0.dist-info/METADATA,sha256=dQkAKA--AEeshuY0ACDOKBc_I-dO60vFWAwyESgVjoU,19640
76
+ StreamingCommunity-2.7.0.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
77
+ StreamingCommunity-2.7.0.dist-info/entry_points.txt,sha256=Qph9XYfDC8n4LfDLOSl6gJGlkb9eFb5f-JOr_Wb_5rk,67
78
+ StreamingCommunity-2.7.0.dist-info/top_level.txt,sha256=YsOcxKP-WOhWpIWgBlh0coll9XUx7aqmRPT7kmt3fH0,19
79
+ StreamingCommunity-2.7.0.dist-info/RECORD,,
@@ -1,53 +0,0 @@
1
- # 02.07.24
2
-
3
- import asyncio
4
- from urllib.parse import quote_plus
5
-
6
-
7
- # Internal utilities
8
- from StreamingCommunity.Util.console import console, msg
9
- from StreamingCommunity.Api.Template import get_select_title
10
-
11
-
12
- # Logic class
13
- from StreamingCommunity.Api.Template.config_loader import site_constant
14
- from .site import title_search, media_search_manager, table_show_manager
15
- from .title import download_title
16
-
17
-
18
- # Variable
19
- indice = 9
20
- _useFor = "film_serie"
21
- _deprecate = False
22
- _priority = 2
23
- _engineDownload = "tor"
24
-
25
-
26
- def search(string_to_search: str = None, get_onylDatabase: bool = False):
27
- """
28
- Main function of the application for film and series.
29
- """
30
-
31
- if string_to_search is None:
32
- string_to_search = msg.ask(f"\n[purple]Insert word to search in [green]{site_constant.SITE_NAME}").strip()
33
-
34
- # Search on database
35
- len_database = asyncio.run(title_search(quote_plus(string_to_search)))
36
-
37
- # Return list of elements
38
- if get_onylDatabase:
39
- return media_search_manager
40
-
41
- if len_database > 0:
42
-
43
- # Select title from list
44
- select_title = get_select_title(table_show_manager, media_search_manager)
45
-
46
- # Download title
47
- download_title(select_title)
48
-
49
- else:
50
- console.print(f"\n[red]Nothing matching was found for[white]: [purple]{string_to_search}")
51
-
52
- # Retry
53
- search()
@@ -1,64 +0,0 @@
1
- # 02.07.24
2
-
3
-
4
- # Internal utilities
5
- from StreamingCommunity.Util._jsonConfig import config_manager
6
- from StreamingCommunity.Util.table import TVShowManager
7
-
8
-
9
- # Logic class
10
- from StreamingCommunity.Api.Template.config_loader import site_constant
11
- from StreamingCommunity.Api.Template.Util import search_domain
12
- from StreamingCommunity.Api.Template.Class.SearchType import MediaManager
13
- from .util.ilCorsarScraper import IlCorsaroNeroScraper
14
-
15
-
16
- # Variable
17
- media_search_manager = MediaManager()
18
- table_show_manager = TVShowManager()
19
- max_timeout = config_manager.get_int("REQUESTS", "timeout")
20
- disable_searchDomain = config_manager.get_bool("DEFAULT", "disable_searchDomain")
21
-
22
-
23
- async def title_search(word_to_search: str) -> int:
24
- """
25
- Search for titles based on a search query.
26
-
27
- Parameters:
28
- - title_search (str): The title to search for.
29
-
30
- Returns:
31
- - int: The number of titles found.
32
- """
33
- media_search_manager.clear()
34
- table_show_manager.clear()
35
-
36
- # Find new domain if prev dont work
37
- domain_to_use = site_constant.DOMAIN_NOW
38
-
39
- if not disable_searchDomain:
40
- domain_to_use, base_url = search_domain(site_constant.SITE_NAME, f"https://{site_constant.SITE_NAME}.{site_constant.DOMAIN_NOW}")
41
-
42
- # Create scraper and collect result
43
- print("\n")
44
- scraper = IlCorsaroNeroScraper(f"https://{site_constant.SITE_NAME}.{domain_to_use}/", 1)
45
- results = await scraper.search(word_to_search)
46
-
47
- for i, torrent in enumerate(results):
48
- try:
49
-
50
- media_search_manager.add_media({
51
- 'name': torrent['name'],
52
- 'type': torrent['type'],
53
- 'seed': torrent['seed'],
54
- 'leech': torrent['leech'],
55
- 'size': torrent['size'],
56
- 'date': torrent['date'],
57
- 'url': torrent['url']
58
- })
59
-
60
- except Exception as e:
61
- print(f"Error parsing a film entry: {e}")
62
-
63
- # Return the number of titles found
64
- return media_search_manager.get_length()
@@ -1,42 +0,0 @@
1
- # 02.07.24
2
-
3
- import os
4
-
5
-
6
- # Internal utilities
7
- from StreamingCommunity.Util.console import console
8
- from StreamingCommunity.Util.os import os_manager
9
- from StreamingCommunity.Util.message import start_message
10
- from StreamingCommunity.Lib.Downloader import TOR_downloader
11
-
12
-
13
- # Logic class
14
- from StreamingCommunity.Api.Template.config_loader import site_constant
15
- from StreamingCommunity.Api.Template.Class.SearchType import MediaItem
16
-
17
-
18
-
19
- def download_title(select_title: MediaItem):
20
- """
21
- Downloads a media item and saves it as an MP4 file.
22
-
23
- Parameters:
24
- - select_title (MediaItem): The media item to be downloaded. This should be an instance of the MediaItem class, containing attributes like `name` and `url`.
25
- """
26
-
27
- start_message()
28
- console.print(f"[yellow]Download: [red]{select_title.name} \n")
29
- print()
30
-
31
- # Define output path
32
- title_name = os_manager.get_sanitize_file(select_title.name)
33
- mp4_path = os.path.join(site_constant.MOVIE_FOLDER, title_name.replace(".mp4", ""))
34
-
35
- # Create output folder
36
- os_manager.create_path(mp4_path)
37
-
38
- # Tor manager
39
- manager = TOR_downloader()
40
- manager.add_magnet_link(select_title.url)
41
- manager.start_download()
42
- manager.move_downloaded_files(mp4_path)
@@ -1,149 +0,0 @@
1
- # 12.14.24
2
-
3
- import logging
4
- import asyncio
5
- from typing import List, Dict, Optional
6
-
7
-
8
- # External libraries
9
- import httpx
10
- from bs4 import BeautifulSoup
11
-
12
-
13
- # Internal utilities
14
- from StreamingCommunity.Util._jsonConfig import config_manager
15
- from StreamingCommunity.Util.headers import get_headers
16
- from StreamingCommunity.Util.console import console
17
-
18
-
19
- # Variable
20
- max_timeout = config_manager.get_int("REQUESTS", "timeout")
21
-
22
-
23
- class IlCorsaroNeroScraper:
24
- def __init__(self, base_url: str, max_page: int = 1):
25
- self.base_url = base_url
26
- self.max_page = max_page
27
- self.headers = {
28
- 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
29
- 'accept-language': 'it-IT,it;q=0.9,en-US;q=0.8,en;q=0.7',
30
- 'cache-control': 'max-age=0',
31
- 'priority': 'u=0, i',
32
- 'sec-ch-ua': '"Google Chrome";v="131", "Chromium";v="131", "Not_A Brand";v="24"',
33
- 'sec-ch-ua-mobile': '?0',
34
- 'sec-ch-ua-platform': '"Windows"',
35
- 'sec-fetch-dest': 'document',
36
- 'sec-fetch-mode': 'navigate',
37
- 'sec-fetch-site': 'same-origin',
38
- 'sec-fetch-user': '?1',
39
- 'upgrade-insecure-requests': '1',
40
- 'user-agent': get_headers()
41
- }
42
-
43
- async def fetch_url(self, url: str) -> Optional[str]:
44
- """
45
- Fetch the HTML content of a given URL.
46
- """
47
- try:
48
- console.print(f"[cyan]Fetching url[white]: [red]{url}")
49
- async with httpx.AsyncClient(headers=self.headers, follow_redirects=True, timeout=max_timeout) as client:
50
- response = await client.get(url)
51
-
52
- # If the request was successful, return the HTML content
53
- response.raise_for_status()
54
- return response.text
55
-
56
- except Exception as e:
57
- logging.error(f"Error fetching from {url}: {e}")
58
- return None
59
-
60
- def parse_torrents(self, html: str) -> List[Dict[str, str]]:
61
- """
62
- Parse the HTML content and extract torrent details.
63
- """
64
- torrents = []
65
- soup = BeautifulSoup(html, "html.parser")
66
- table = soup.find("tbody")
67
-
68
- for row in table.find_all("tr"):
69
- try:
70
- columns = row.find_all("td")
71
-
72
- torrents.append({
73
- 'type': columns[0].get_text(strip=True),
74
- 'name': row.find("th").find("a").get_text(strip=True),
75
- 'seed': columns[1].get_text(strip=True),
76
- 'leech': columns[2].get_text(strip=True),
77
- 'size': columns[3].get_text(strip=True),
78
- 'date': columns[4].get_text(strip=True),
79
- 'url': "https://ilcorsaronero.link" + row.find("th").find("a").get("href")
80
- })
81
-
82
- except Exception as e:
83
- logging.error(f"Error parsing row: {e}")
84
- continue
85
-
86
- return torrents
87
-
88
- async def fetch_real_url(self, url: str) -> Optional[str]:
89
- """
90
- Fetch the real torrent URL from the detailed page.
91
- """
92
- response_html = await self.fetch_url(url)
93
- if not response_html:
94
- return None
95
-
96
- soup = BeautifulSoup(response_html, "html.parser")
97
- links = soup.find_all("a")
98
-
99
- # Find and return the magnet link
100
- for link in links:
101
- if "magnet" in str(link):
102
- return link.get("href")
103
-
104
- return None
105
-
106
- async def search(self, query: str) -> List[Dict[str, str]]:
107
- """
108
- Search for torrents based on the query string.
109
- """
110
- all_torrents = []
111
-
112
- # Loop through each page
113
- for page in range(self.max_page):
114
- url = f'{self.base_url}search?q={query}&page={page}'
115
-
116
- html = await self.fetch_url(url)
117
- if not html:
118
- console.print(f"[bold red]No HTML content for page {page}[/bold red]")
119
- break
120
-
121
- torrents = self.parse_torrents(html)
122
- if not torrents:
123
- console.print(f"[bold red]No torrents found on page {page}[/bold red]")
124
- break
125
-
126
- # Use asyncio.gather to fetch all real URLs concurrently
127
- tasks = [self.fetch_real_url(result['url']) for result in torrents]
128
- real_urls = await asyncio.gather(*tasks)
129
-
130
- # Attach real URLs to the torrent data
131
- for i, result in enumerate(torrents):
132
- result['url'] = real_urls[i]
133
-
134
- all_torrents.extend(torrents)
135
-
136
- return all_torrents
137
-
138
- async def main():
139
- scraper = IlCorsaroNeroScraper("https://ilcorsaronero.link/")
140
- results = await scraper.search("cars")
141
-
142
- if results:
143
- for i, torrent in enumerate(results):
144
- console.print(f"[bold green]{i} = {torrent}[/bold green] \n")
145
- else:
146
- console.print("[bold red]No torrents found.[/bold red]")
147
-
148
- if __name__ == '__main__':
149
- asyncio.run(main())