KekikStream 2.2.9__py3-none-any.whl → 2.5.3__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 KekikStream might be problematic. Click here for more details.

Files changed (88) hide show
  1. KekikStream/Core/Extractor/ExtractorBase.py +3 -2
  2. KekikStream/Core/Extractor/ExtractorLoader.py +8 -14
  3. KekikStream/Core/HTMLHelper.py +205 -0
  4. KekikStream/Core/Plugin/PluginBase.py +48 -12
  5. KekikStream/Core/Plugin/PluginLoader.py +13 -14
  6. KekikStream/Core/Plugin/PluginManager.py +2 -2
  7. KekikStream/Core/Plugin/PluginModels.py +0 -3
  8. KekikStream/Core/__init__.py +2 -0
  9. KekikStream/Extractors/Abstream.py +27 -0
  10. KekikStream/Extractors/CloseLoad.py +31 -56
  11. KekikStream/Extractors/ContentX.py +28 -71
  12. KekikStream/Extractors/DonilasPlay.py +34 -78
  13. KekikStream/Extractors/DzenRu.py +11 -25
  14. KekikStream/Extractors/ExPlay.py +20 -38
  15. KekikStream/Extractors/Filemoon.py +23 -53
  16. KekikStream/Extractors/HDMomPlayer.py +30 -0
  17. KekikStream/Extractors/HDPlayerSystem.py +13 -31
  18. KekikStream/Extractors/HotStream.py +27 -0
  19. KekikStream/Extractors/JFVid.py +3 -24
  20. KekikStream/Extractors/JetTv.py +21 -34
  21. KekikStream/Extractors/JetV.py +55 -0
  22. KekikStream/Extractors/MailRu.py +11 -29
  23. KekikStream/Extractors/MixPlayHD.py +17 -31
  24. KekikStream/Extractors/MixTiger.py +17 -40
  25. KekikStream/Extractors/MolyStream.py +25 -22
  26. KekikStream/Extractors/Odnoklassniki.py +41 -105
  27. KekikStream/Extractors/PeaceMakerst.py +20 -47
  28. KekikStream/Extractors/PixelDrain.py +9 -16
  29. KekikStream/Extractors/PlayerFilmIzle.py +23 -46
  30. KekikStream/Extractors/RapidVid.py +23 -36
  31. KekikStream/Extractors/SetPlay.py +19 -44
  32. KekikStream/Extractors/SetPrime.py +3 -6
  33. KekikStream/Extractors/SibNet.py +8 -19
  34. KekikStream/Extractors/Sobreatsesuyp.py +25 -47
  35. KekikStream/Extractors/TRsTX.py +25 -55
  36. KekikStream/Extractors/TurboImgz.py +8 -16
  37. KekikStream/Extractors/TurkeyPlayer.py +5 -5
  38. KekikStream/Extractors/VCTPlay.py +10 -28
  39. KekikStream/Extractors/Veev.py +145 -0
  40. KekikStream/Extractors/VidBiz.py +62 -0
  41. KekikStream/Extractors/VidHide.py +59 -34
  42. KekikStream/Extractors/VidMoly.py +67 -89
  43. KekikStream/Extractors/VidMoxy.py +17 -29
  44. KekikStream/Extractors/VidPapi.py +26 -58
  45. KekikStream/Extractors/VideoSeyred.py +21 -42
  46. KekikStream/Extractors/Videostr.py +58 -0
  47. KekikStream/Extractors/Vidoza.py +18 -0
  48. KekikStream/Extractors/Vtbe.py +38 -0
  49. KekikStream/Extractors/YTDLP.py +2 -2
  50. KekikStream/Extractors/YildizKisaFilm.py +13 -31
  51. KekikStream/Extractors/Zeus.py +61 -0
  52. KekikStream/Plugins/BelgeselX.py +108 -99
  53. KekikStream/Plugins/DiziBox.py +61 -106
  54. KekikStream/Plugins/DiziMom.py +179 -0
  55. KekikStream/Plugins/DiziPal.py +104 -192
  56. KekikStream/Plugins/DiziYou.py +66 -149
  57. KekikStream/Plugins/Dizilla.py +93 -126
  58. KekikStream/Plugins/FilmBip.py +102 -72
  59. KekikStream/Plugins/FilmEkseni.py +199 -0
  60. KekikStream/Plugins/FilmMakinesi.py +101 -64
  61. KekikStream/Plugins/FilmModu.py +35 -59
  62. KekikStream/Plugins/Filmatek.py +184 -0
  63. KekikStream/Plugins/FilmciBaba.py +155 -0
  64. KekikStream/Plugins/FullHDFilmizlesene.py +32 -78
  65. KekikStream/Plugins/HDFilm.py +243 -0
  66. KekikStream/Plugins/HDFilmCehennemi.py +261 -222
  67. KekikStream/Plugins/JetFilmizle.py +117 -98
  68. KekikStream/Plugins/KultFilmler.py +153 -143
  69. KekikStream/Plugins/RecTV.py +53 -49
  70. KekikStream/Plugins/RoketDizi.py +92 -123
  71. KekikStream/Plugins/SelcukFlix.py +86 -95
  72. KekikStream/Plugins/SetFilmIzle.py +105 -143
  73. KekikStream/Plugins/SezonlukDizi.py +106 -128
  74. KekikStream/Plugins/Sinefy.py +194 -166
  75. KekikStream/Plugins/SinemaCX.py +159 -113
  76. KekikStream/Plugins/Sinezy.py +44 -73
  77. KekikStream/Plugins/SuperFilmGeldi.py +28 -52
  78. KekikStream/Plugins/UgurFilm.py +94 -72
  79. KekikStream/Plugins/Watch32.py +160 -0
  80. KekikStream/Plugins/YabanciDizi.py +250 -0
  81. {kekikstream-2.2.9.dist-info → kekikstream-2.5.3.dist-info}/METADATA +1 -1
  82. kekikstream-2.5.3.dist-info/RECORD +99 -0
  83. {kekikstream-2.2.9.dist-info → kekikstream-2.5.3.dist-info}/WHEEL +1 -1
  84. KekikStream/Plugins/FullHDFilm.py +0 -254
  85. kekikstream-2.2.9.dist-info/RECORD +0 -82
  86. {kekikstream-2.2.9.dist-info → kekikstream-2.5.3.dist-info}/entry_points.txt +0 -0
  87. {kekikstream-2.2.9.dist-info → kekikstream-2.5.3.dist-info}/licenses/LICENSE +0 -0
  88. {kekikstream-2.2.9.dist-info → kekikstream-2.5.3.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,99 @@
1
+ KekikStream/__init__.py,sha256=nTgIxO1716DVX-cZnMvwi6OjPbuebFyeYpHvpqCJ0Js,12767
2
+ KekikStream/__main__.py,sha256=B81dQoeGEb-T5Sycs3eNAmW7unvx0Mef0syCjs4nPds,137
3
+ KekikStream/requirements.txt,sha256=V-Rk-4DnK8B-HRR6RtSKmTR3sHfaYgOrnBj8kmVz17w,80
4
+ KekikStream/CLI/__init__.py,sha256=U6oLq_O7u5y2eHhBnmfhZNns_EqHHJXJmzl8jvZFUNY,230
5
+ KekikStream/CLI/pypi_kontrol.py,sha256=q6fNs6EKJDc5VuUFig9DBzLzNPp_kMD1vOVgLElcii8,1487
6
+ KekikStream/Core/HTMLHelper.py,sha256=jhRZc6ENhCjSY7X9IEo10WDKfmb-CPb8de_EICHIXQ0,8697
7
+ KekikStream/Core/__init__.py,sha256=sk2pWup1_jsGB43HJzbbqgQYFDZpf2TquEBYUhqOdN4,807
8
+ KekikStream/Core/Extractor/ExtractorBase.py,sha256=9Q79wULey2Nl254MUkiulhxZzGyb2C1H3mOUh4t0MN0,2077
9
+ KekikStream/Core/Extractor/ExtractorLoader.py,sha256=vMakgaGlcrpw5VMNMgmudTr9KRHorUlbjjTaOngXsJo,4484
10
+ KekikStream/Core/Extractor/ExtractorManager.py,sha256=VYkj4CCE5Puqsr6PCeN8i_OS0hfYKI4NScj98BLO39o,2644
11
+ KekikStream/Core/Extractor/ExtractorModels.py,sha256=Qj_gbIeGRewaZXNfYkTi4FFRRq6XBOc0HS0tXGDwajI,445
12
+ KekikStream/Core/Extractor/YTDLPCache.py,sha256=sRg5kwFxkRXA_8iRwsV29E51g9qQJvg8dWUnzfr7EwA,984
13
+ KekikStream/Core/Media/MediaHandler.py,sha256=MEn3spPAThVloN3WcoCwWhpoyMA7tAZvcwYjmjJsX3U,7678
14
+ KekikStream/Core/Media/MediaManager.py,sha256=AaUq2D7JSJIphjoAj2fjLOJjswm7Qf5hjYCbBdrbnDU,438
15
+ KekikStream/Core/Plugin/PluginBase.py,sha256=2T9y1bXTZdSQd_FqN8M7giVNjv4ReerONIye-uGZW2M,7397
16
+ KekikStream/Core/Plugin/PluginLoader.py,sha256=OOSXOpS2FbUQiHJAxzyyJEgtn4XsvkQTCjLli6ukx7M,3781
17
+ KekikStream/Core/Plugin/PluginManager.py,sha256=isVyfXJ_41p_pvEQrC4G6tNkDyZ-f-SDnaAHci9grtA,1003
18
+ KekikStream/Core/Plugin/PluginModels.py,sha256=7g1uHjJstfnrdTabDgyrBnu1ojIQ025hsmw85cDXFS8,2353
19
+ KekikStream/Core/UI/UIManager.py,sha256=T4V_kdTTWa-UDamgLSKa__dWJuzcvRK9NuwBlzU9Bzc,1693
20
+ KekikStream/Extractors/Abstream.py,sha256=Xz2Ok84BJU5YRhQZjIM0rJA8GFju2BQimV8mHLXq3vc,905
21
+ KekikStream/Extractors/CloseLoad.py,sha256=eoXr9Dxgfy3BUdQpXrvS69bqCFBmag95cmJLGhsHslE,1922
22
+ KekikStream/Extractors/ContentX.py,sha256=832xDeKoudQYJBRxJntOuJ0G8xYFVq2vHhycdnzcMeg,2539
23
+ KekikStream/Extractors/DonilasPlay.py,sha256=yIh6ZOVjXzHKc_Zi8j0Cpr4vWibwkSeoZxeFfU8IfmQ,1844
24
+ KekikStream/Extractors/DzenRu.py,sha256=tUrQexHkclw9EdoFD_ACejW-QwlOnTDFTxA0v-1jIVU,932
25
+ KekikStream/Extractors/ExPlay.py,sha256=hrG31pRFD5s_0wNls0fF8AdMn6ve5OD-mOAV32_1H2I,1324
26
+ KekikStream/Extractors/Filemoon.py,sha256=bdPKk58_HXgRL_ysNcpuESXrijTxKMETyBnXdmR0b_0,2289
27
+ KekikStream/Extractors/HDMomPlayer.py,sha256=ui8aH9sc3NDlN2uKlhJiySUHA__mpSSvAPHRzde6F2k,1177
28
+ KekikStream/Extractors/HDPlayerSystem.py,sha256=hoPN7fqVRBK97BnQ7vF_5TlEO28BD3DrsngDW48rw5E,936
29
+ KekikStream/Extractors/HotStream.py,sha256=37H9pK4HSEqGR6QKgxz887JCBXfXB1NXDpBGuhvPmXo,1078
30
+ KekikStream/Extractors/JFVid.py,sha256=rdy0bmqZIruejn1G1YNxVM3wlqxkdFRd4zunxxZlev4,746
31
+ KekikStream/Extractors/JetTv.py,sha256=Cdx1XZEtQZkrmOdZdgM9E1iBkCNzVTExjrI_F-3Nv-I,1176
32
+ KekikStream/Extractors/JetV.py,sha256=knyDiOCSBMC1eQHo5LRFx5apn3NQflKY3xyloLDGkaI,2069
33
+ KekikStream/Extractors/MailRu.py,sha256=n87wBc9jQ4nP8OJbqS7LsHHCKuRxlsgdtL_xHVn0rdY,779
34
+ KekikStream/Extractors/MixPlayHD.py,sha256=otA2SKDnJisY4Zt9DCuNdjNVHtSquHoMVvP3_5Q0poY,1205
35
+ KekikStream/Extractors/MixTiger.py,sha256=kF_AKkJoyAS6peQ94eu3pLzS-VeZ_8IYjpaDrTo3x_I,1135
36
+ KekikStream/Extractors/MolyStream.py,sha256=L38rydMtnRxeqHjLK4vOLMC7FspbyTPdILEjE-gsbYc,1531
37
+ KekikStream/Extractors/Odnoklassniki.py,sha256=IH4A-vmRUEbF1y7jpHOz6aeOqW-ENaP-bZtWE5OJmQY,2307
38
+ KekikStream/Extractors/PeaceMakerst.py,sha256=0YE-IASOoSoQi4AITKkX7IyGcyfq_ZhmFmqw2q2TZ_U,1491
39
+ KekikStream/Extractors/PixelDrain.py,sha256=BYu8UmVNw3EL75Z1X8NszWPfFarmry_3chWRO1JoKCs,780
40
+ KekikStream/Extractors/PlayerFilmIzle.py,sha256=GVB2Ly3381IGIc1FztFS35mHVIMQjcc2_IW8KvWYBdI,1877
41
+ KekikStream/Extractors/RapidVid.py,sha256=4nWqTNfJ70Qq67LgaYjnUU4NrHwbeqRN9uldo0j941E,3028
42
+ KekikStream/Extractors/SetPlay.py,sha256=uWkXimWc5olsYLK46l440Pp8WgehbctM323n9PwoEJs,1556
43
+ KekikStream/Extractors/SetPrime.py,sha256=5xqB72D8FjH3JNrbynA75y_n_aUFZ2vXSr1MY3nZ4cU,1495
44
+ KekikStream/Extractors/SibNet.py,sha256=67FS1yLUWf_ZBkVehRiYu2pFkIdNO4-2EZEomCHo8Jk,692
45
+ KekikStream/Extractors/Sobreatsesuyp.py,sha256=IORS2fXauATYiN4sdU_WuSfsbFUhphxqsGq7C6mzaEw,1484
46
+ KekikStream/Extractors/TRsTX.py,sha256=l425nQZciyYEJjOJ1nyPhDnmD-4bI9O16V6lJhY98Os,1444
47
+ KekikStream/Extractors/TauVideo.py,sha256=2ai9BwwM6qlCgxK7E0B642LtOF5y4hEb9tQ2aDpbMtc,1112
48
+ KekikStream/Extractors/TurboImgz.py,sha256=-RyC4EWtJdK85Ei01lntqivnSmk4tXOlmSXv70cQJ70,679
49
+ KekikStream/Extractors/TurkeyPlayer.py,sha256=zdX0IOO3M-kgAYWex2WwJJu9aGf8WhOY-ZIrRmZRiC0,1246
50
+ KekikStream/Extractors/VCTPlay.py,sha256=MdCH9GhhKod4oPT3ePH8rhicUWuNT-GsE42S72o1NJ4,876
51
+ KekikStream/Extractors/Veev.py,sha256=DowOuKhCAmVs0sMeQRxxhWRUf4MR6fhx1yeNUmy_Le4,5271
52
+ KekikStream/Extractors/VidBiz.py,sha256=V9nTt8Uaqn5F9x9WMZbW3wqaeajGLdBhLryXoeStChk,2212
53
+ KekikStream/Extractors/VidHide.py,sha256=YswpcBz6Eqq_qGZhHpRcxcvTK0S3hZSNPfNjQRrn_W4,4109
54
+ KekikStream/Extractors/VidMoly.py,sha256=LUUomzPvf4J7PG3rf7drV4WM-sBHOupsllj017eluew,4106
55
+ KekikStream/Extractors/VidMoxy.py,sha256=qTkTFRqTgQVi-E94zY5lQC2-AYFhkl8LqaOJpgGdErc,1452
56
+ KekikStream/Extractors/VidPapi.py,sha256=yqjA5gadCE2lZ9ksT6zZOz-1zCcCYJxZsg0Ccgz2X10,1988
57
+ KekikStream/Extractors/VideoSeyred.py,sha256=sNxw5OHQ8AzRJIRGXGjql8nK1E6Cbg9qhKP5PuOyeM8,1216
58
+ KekikStream/Extractors/Videostr.py,sha256=CGL9GDzN0QzDir6ss8oUvDYYbGt2k8323P2_z5tVZVI,2563
59
+ KekikStream/Extractors/Vidoza.py,sha256=VSqCI-SYnLh6COnLHpg0feRX37t2WhPxbo08us5wCcc,655
60
+ KekikStream/Extractors/Vtbe.py,sha256=d_ZnLHnYiQltwMOWsop-EbLb0cqMiRyp5foiOm5k2es,1392
61
+ KekikStream/Extractors/YTDLP.py,sha256=vE08jS9kLrLxiZA8TpofPQg2-ec_6d5DkM9esoh_GI8,7419
62
+ KekikStream/Extractors/YildizKisaFilm.py,sha256=jeCCSIwZvQUr-CSylleUIP--JtN18_wUGl0vQXMCsV4,936
63
+ KekikStream/Extractors/Zeus.py,sha256=OifOjIVZWeXSoGu4F2wpxv0c-ABm-2UYD9g5L4dwkjs,2003
64
+ KekikStream/Plugins/BelgeselX.py,sha256=tJw1GZQoqxE7HISCVYUEL2ZP-8Mftdl4WytYA0ftSUc,9648
65
+ KekikStream/Plugins/DiziBox.py,sha256=SuRQxNZetwJJTlobuxB0h7NMeHUMrYMv_94JuCXydds,10204
66
+ KekikStream/Plugins/DiziMom.py,sha256=mRu9YUHs7XeLzXOqKIWcsI82yeltTW-6Q423wt71D5U,8044
67
+ KekikStream/Plugins/DiziPal.py,sha256=Ezrjbfq7EUcEjpA6yuOUtlhC009CE4aXW0_eM8Uf3yE,7927
68
+ KekikStream/Plugins/DiziYou.py,sha256=Z6MznGOcUnnxdsQsK-rnPmGHa1PAq7NcFw0slXlEVGo,6759
69
+ KekikStream/Plugins/Dizilla.py,sha256=U6z4cfy48HhtJNGi9-A3kUzoph-JpQuMtiOZ7fE_DUI,12705
70
+ KekikStream/Plugins/FilmBip.py,sha256=enTqWdx8YbseSsyQEYIVs6Dr7A7llkn7AtFaTYuatCE,9137
71
+ KekikStream/Plugins/FilmEkseni.py,sha256=EwtHH1kuTV2ow1Yc9D063CZ0c4OOXcwchyKN5oAXY_s,8645
72
+ KekikStream/Plugins/FilmMakinesi.py,sha256=AdollSseX3M7sQQ5YAyLU93t7PncP4PIdqYd3nUog6s,7970
73
+ KekikStream/Plugins/FilmModu.py,sha256=7qm7kC4R0oH1OWyLleSqj6SMUgWbbERfYbE1d726ZOM,6943
74
+ KekikStream/Plugins/Filmatek.py,sha256=AdOeBVP1rfq5R1YJlQj2saT77rnzVHX54tEOAH-t9fI,7700
75
+ KekikStream/Plugins/FilmciBaba.py,sha256=rBrtFwZpe4QtR2Q-Jze_KaC2x2dXrArpUpQPn5Na4CU,6934
76
+ KekikStream/Plugins/FullHDFilmizlesene.py,sha256=dJ1xo1D3ujPCQE6PewpqdvSMKlBbifA67uU7BAMmvVM,6274
77
+ KekikStream/Plugins/HDFilm.py,sha256=m6tjV1O1l5U_jqkGKizi62GOdSMd5osyOS2_9jehS-w,10754
78
+ KekikStream/Plugins/HDFilmCehennemi.py,sha256=h3FTKN-psrzvN0Juw8Am83MV8QL9aX-RSWhYqXRQU-E,17368
79
+ KekikStream/Plugins/JetFilmizle.py,sha256=YyZmOWoh_SFGRARrKioq8fhv8VgzTiURFypJMoW8nzU,10279
80
+ KekikStream/Plugins/KultFilmler.py,sha256=D5aAFrv0ACtSBinwHTfNvP1Jp0W8W7-mwUsju_YPilk,10841
81
+ KekikStream/Plugins/RecTV.py,sha256=6rYxZV6J84rr2CZKTmP_0raYVp4pa5EMXQD6mMbZHbE,7315
82
+ KekikStream/Plugins/RoketDizi.py,sha256=TnupXb3cRJMDJAA7hclOPwECgOt5mOJx1hYEL_oK6rk,8488
83
+ KekikStream/Plugins/SelcukFlix.py,sha256=8jr-HxAIXVILMUykPJRC7yD9AT1q0JU-vBwoYGxkFiM,14484
84
+ KekikStream/Plugins/SetFilmIzle.py,sha256=qplMZlKzSm8ln14pP_EuDNkctk9HJSDEbi_gNWP5PMc,10127
85
+ KekikStream/Plugins/SezonlukDizi.py,sha256=JcXx9O8qHCf9ZAlCA1qV3ef9n9hXfV2q12b8XjRkS64,9390
86
+ KekikStream/Plugins/SineWix.py,sha256=z0r90lggAugEWE1g9vg8gZsInBObUZPnVFQwq7GYmJs,7052
87
+ KekikStream/Plugins/Sinefy.py,sha256=tRfXKeDkIiKrrl9mWQ8WGQV1r0MNFblE9Q9NNBm5wKQ,12514
88
+ KekikStream/Plugins/SinemaCX.py,sha256=DRHD3bZXeIwm6TGsGQZyky0m61L77vy7LLIGch56eoA,10844
89
+ KekikStream/Plugins/Sinezy.py,sha256=2vTRsCUFXSJgKZJbXxDoGRJ8_i4ZZptuPTjeQ4EiZWk,5733
90
+ KekikStream/Plugins/SuperFilmGeldi.py,sha256=hXhYYuQkVbYJ07P8y5QjY5iR3rVgUfAWc_MkOWtsXdM,6306
91
+ KekikStream/Plugins/UgurFilm.py,sha256=2U3-rC9JzwDoF1c8t3VyE3jMcz-SB51uxFX-8DqrQ7M,6778
92
+ KekikStream/Plugins/Watch32.py,sha256=wAw-glE9bQNsyfzhv1zlFIjYAhSvK58mUri-XGytuHs,7318
93
+ KekikStream/Plugins/YabanciDizi.py,sha256=aqdPLQ3Oajs32JNkgIPeqHuYgcM8K2jGHT0Ikw8Q6jY,10582
94
+ kekikstream-2.5.3.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
95
+ kekikstream-2.5.3.dist-info/METADATA,sha256=13wVwDb8LW9nzEXdeJhUoKgBFcK_nt_3uxLPZ8-roEg,10761
96
+ kekikstream-2.5.3.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
97
+ kekikstream-2.5.3.dist-info/entry_points.txt,sha256=dFwdiTx8djyehI0Gsz-rZwjAfZzUzoBSrmzRu9ubjJc,50
98
+ kekikstream-2.5.3.dist-info/top_level.txt,sha256=DNmGJDXl27Drdfobrak8KYLmocW_uznVYFJOzcjUgmY,12
99
+ kekikstream-2.5.3.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.9.0)
2
+ Generator: setuptools (80.10.2)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,254 +0,0 @@
1
- # Bu araç @keyiflerolsun tarafından | @KekikAkademi için yazılmıştır.
2
-
3
- from KekikStream.Core import PluginBase, MainPageResult, SearchResult, MovieInfo, SeriesInfo, Episode, ExtractResult, Subtitle
4
- from selectolax.parser import HTMLParser
5
- import re, base64
6
-
7
- class FullHDFilm(PluginBase):
8
- name = "FullHDFilm"
9
- language = "tr"
10
- main_url = "https://hdfilm.us"
11
- favicon = f"https://www.google.com/s2/favicons?domain={main_url}&sz=64"
12
- description = "Full HD Film izle, Türkçe Dublaj ve Altyazılı filmler."
13
-
14
- main_page = {
15
- f"{main_url}/tur/turkce-altyazili-film-izle" : "Altyazılı Filmler",
16
- f"{main_url}/tur/netflix-filmleri-izle" : "Netflix",
17
- f"{main_url}/tur/yerli-film-izle" : "Yerli Film",
18
- f"{main_url}/category/aile-filmleri-izle" : "Aile",
19
- f"{main_url}/category/aksiyon-filmleri-izle" : "Aksiyon",
20
- f"{main_url}/category/animasyon-filmleri-izle" : "Animasyon",
21
- f"{main_url}/category/belgesel-filmleri-izle" : "Belgesel",
22
- f"{main_url}/category/bilim-kurgu-filmleri-izle" : "Bilim Kurgu",
23
- f"{main_url}/category/biyografi-filmleri-izle" : "Biyografi",
24
- f"{main_url}/category/dram-filmleri-izle" : "Dram",
25
- f"{main_url}/category/fantastik-filmler-izle" : "Fantastik",
26
- f"{main_url}/category/gerilim-filmleri-izle" : "Gerilim",
27
- f"{main_url}/category/gizem-filmleri-izle" : "Gizem",
28
- f"{main_url}/category/kisa" : "Kısa",
29
- f"{main_url}/category/komedi-filmleri-izle" : "Komedi",
30
- f"{main_url}/category/korku-filmleri-izle" : "Korku",
31
- f"{main_url}/category/macera-filmleri-izle" : "Macera",
32
- f"{main_url}/category/muzik" : "Müzik",
33
- f"{main_url}/category/muzikal-filmleri-izle" : "Müzikal",
34
- f"{main_url}/category/romantik-filmler-izle" : "Romantik",
35
- f"{main_url}/category/savas-filmleri-izle" : "Savaş",
36
- f"{main_url}/category/spor-filmleri-izle" : "Spor",
37
- f"{main_url}/category/suc-filmleri-izle" : "Suç",
38
- f"{main_url}/category/tarih-filmleri-izle" : "Tarih",
39
- f"{main_url}/category/western-filmleri-izle" : "Western",
40
- }
41
-
42
- async def get_main_page(self, page: int, url: str, category: str) -> list[MainPageResult]:
43
- page_url = url if page == 1 else f"{url}/page/{page}"
44
-
45
- self.httpx.headers.update({
46
- "User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
47
- "Referer" : f"{self.main_url}/"
48
- })
49
-
50
- istek = await self.httpx.get(page_url)
51
- secici = HTMLParser(istek.text)
52
-
53
- results = []
54
- for veri in secici.css("div.movie-poster"):
55
- img_el = veri.css_first("img")
56
- link_el = veri.css_first("a")
57
-
58
- alt = img_el.attrs.get("alt") if img_el else None
59
- poster = img_el.attrs.get("src") if img_el else None
60
- href = link_el.attrs.get("href") if link_el else None
61
-
62
- if alt and href:
63
- results.append(MainPageResult(
64
- category = category,
65
- title = alt,
66
- url = self.fix_url(href),
67
- poster = self.fix_url(poster) if poster else None,
68
- ))
69
-
70
- return results
71
-
72
- async def search(self, query: str) -> list[SearchResult]:
73
- istek = await self.httpx.get(f"{self.main_url}/?s={query}")
74
- secici = HTMLParser(istek.text)
75
-
76
- results = []
77
- for veri in secici.css("div.movie-poster"):
78
- img_el = veri.css_first("img")
79
- link_el = veri.css_first("a")
80
-
81
- alt = img_el.attrs.get("alt") if img_el else None
82
- poster = img_el.attrs.get("src") if img_el else None
83
- href = link_el.attrs.get("href") if link_el else None
84
-
85
- if alt and href:
86
- results.append(SearchResult(
87
- title = alt,
88
- url = self.fix_url(href),
89
- poster = self.fix_url(poster) if poster else None,
90
- ))
91
-
92
- return results
93
-
94
- async def load_item(self, url: str) -> MovieInfo | SeriesInfo:
95
- istek = await self.httpx.get(url)
96
- secici = HTMLParser(istek.text)
97
- html_text = istek.text
98
-
99
- title_el = secici.css_first("h1")
100
- title = title_el.text(strip=True) if title_el else ""
101
-
102
- poster_el = secici.css_first("div.poster img")
103
- poster = self.fix_url(poster_el.attrs.get("src")) if poster_el else ""
104
-
105
- actors_el = secici.css_first("div.oyuncular.info")
106
- actors = []
107
- if actors_el:
108
- actors_text = actors_el.text(strip=True)
109
- if actors_text:
110
- actors_text = actors_text.replace("Oyuncular:", "").strip()
111
- actors = [a.strip() for a in actors_text.split(",")]
112
-
113
- # Year: re_first ile regex
114
- year_el = secici.css_first("div.yayin-tarihi.info")
115
- year_text = year_el.text(strip=True) if year_el else ""
116
- year_match = re.search(r"(\d{4})", year_text)
117
- year = year_match.group(1) if year_match else None
118
-
119
- tags = [a.text(strip=True) for a in secici.css("div.tur.info a") if a.text(strip=True)]
120
-
121
- # Rating: regex
122
- rating_el = secici.css_first("div.imdb")
123
- rating_text = rating_el.text(strip=True) if rating_el else ""
124
- rating_match = re.search(r"IMDb\s*([\d\.]+)", rating_text)
125
- rating = rating_match.group(1) if rating_match else None
126
-
127
- # Description: others div'den önceki div içindeki text
128
- # XPath yerine basit yaklaşım: özet sınıfı ile veya ilk paragraf
129
- description = None
130
- desc_el = secici.css_first("div.film")
131
- if desc_el:
132
- description = desc_el.text(strip=True)
133
-
134
- # Kotlin referansı: URL'de -dizi kontrolü veya tags içinde "dizi" kontrolü
135
- is_series = "-dizi" in url.lower() or any("dizi" in tag.lower() for tag in tags)
136
-
137
- if is_series:
138
- episodes = []
139
- part_elements = secici.css("li.psec")
140
-
141
- # pdata değerlerini çıkar
142
- pdata_matches = re.findall(r"pdata\['([^']+)'\]\s*=\s*'([^']+)'", html_text)
143
-
144
- for idx, el in enumerate(part_elements):
145
- part_id = el.attrs.get("id")
146
- link_el = el.css_first("a")
147
- part_name = link_el.text(strip=True) if link_el else None
148
-
149
- if not part_name:
150
- continue
151
-
152
- # Fragman'ları atla
153
- if "fragman" in part_name.lower() or (part_id and "fragman" in part_id.lower()):
154
- continue
155
-
156
- # Sezon ve bölüm numarası çıkar
157
- sz_match = re.search(r'(\d+)\s*sezon', part_id.lower() if part_id else "")
158
- ep_match = re.search(r'^(\d+)\.', part_name)
159
-
160
- sz_num = int(sz_match.group(1)) if sz_match else 1
161
- ep_num = int(ep_match.group(1)) if ep_match else idx + 1
162
-
163
- # pdata'dan video URL'si çık (varsa)
164
- video_url = url # Varsayılan olarak ana URL kullan
165
- if idx < len(pdata_matches):
166
- video_url = pdata_matches[idx][1] if pdata_matches[idx][1] else url
167
-
168
- episodes.append(Episode(
169
- season = sz_num,
170
- episode = ep_num,
171
- title = f"{sz_num}. Sezon {ep_num}. Bölüm",
172
- url = url # Bölüm URL'leri load_links'te işlenecek
173
- ))
174
-
175
- return SeriesInfo(
176
- url = url,
177
- poster = poster,
178
- title = self.clean_title(title) if title else "",
179
- description = description,
180
- tags = tags,
181
- year = year,
182
- actors = actors,
183
- rating = rating,
184
- episodes = episodes
185
- )
186
- else:
187
- return MovieInfo(
188
- url = url,
189
- poster = poster,
190
- title = self.clean_title(title) if title else "",
191
- description = description,
192
- tags = tags,
193
- year = year,
194
- actors = actors,
195
- rating = rating,
196
- )
197
-
198
- def _get_iframe(self, source_code: str) -> str:
199
- """Base64 kodlu iframe'i çözümle"""
200
- match = re.search(r'<script[^>]*>(PCEtLWJhc2xpazp[^<]*)</script>', source_code)
201
- if not match:
202
- return ""
203
-
204
- try:
205
- decoded_html = base64.b64decode(match[1]).decode("utf-8")
206
- iframe_match = re.search(r'<iframe[^>]+src=["\']([^"\']+)["\']', decoded_html)
207
- return self.fix_url(iframe_match[1]) if iframe_match else ""
208
- except Exception:
209
- return ""
210
-
211
- def _extract_subtitle_url(self, source_code: str) -> str | None:
212
- """playerjsSubtitle değişkeninden .srt URL çıkar"""
213
- patterns = [
214
- r'var playerjsSubtitle = "\[Türkçe\](https?://[^\s"]+?\.srt)";',
215
- r'var playerjsSubtitle = "(https?://[^\s"]+?\.srt)";',
216
- r'subtitle:\s*"(https?://[^\s"]+?\.srt)"',
217
- ]
218
-
219
- for pattern in patterns:
220
- if match := re.search(pattern, source_code):
221
- return match[1]
222
-
223
- return None
224
-
225
- async def load_links(self, url: str) -> list[ExtractResult]:
226
- self.httpx.headers.update({
227
- "User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
228
- "Referer" : self.main_url
229
- })
230
-
231
- istek = await self.httpx.get(url)
232
- source_code = istek.text
233
-
234
- # Ana sayfadan altyazı URL'sini çek
235
- subtitle_url = self._extract_subtitle_url(source_code)
236
-
237
- # Iframe'den altyazı URL'sini çek
238
- iframe_src = self._get_iframe(source_code)
239
-
240
- if not subtitle_url and iframe_src:
241
- iframe_istek = await self.httpx.get(iframe_src)
242
- subtitle_url = self._extract_subtitle_url(iframe_istek.text)
243
-
244
- results = []
245
-
246
- if iframe_src:
247
- data = await self.extract(iframe_src)
248
- if data:
249
- # ExtractResult objesi immutable, yeni bir kopya oluştur
250
- subtitles = [Subtitle(name="Türkçe", url=subtitle_url)] if subtitle_url else []
251
- updated_data = data.model_copy(update={"subtitles": subtitles}) if subtitles else data
252
- results.append(updated_data)
253
-
254
- return results
@@ -1,82 +0,0 @@
1
- KekikStream/__init__.py,sha256=nTgIxO1716DVX-cZnMvwi6OjPbuebFyeYpHvpqCJ0Js,12767
2
- KekikStream/__main__.py,sha256=B81dQoeGEb-T5Sycs3eNAmW7unvx0Mef0syCjs4nPds,137
3
- KekikStream/requirements.txt,sha256=V-Rk-4DnK8B-HRR6RtSKmTR3sHfaYgOrnBj8kmVz17w,80
4
- KekikStream/CLI/__init__.py,sha256=U6oLq_O7u5y2eHhBnmfhZNns_EqHHJXJmzl8jvZFUNY,230
5
- KekikStream/CLI/pypi_kontrol.py,sha256=q6fNs6EKJDc5VuUFig9DBzLzNPp_kMD1vOVgLElcii8,1487
6
- KekikStream/Core/__init__.py,sha256=Ise27_Hqe1YeqTcSNnf3HqynhbySEVC-pNP2uKa2GOo,771
7
- KekikStream/Core/Extractor/ExtractorBase.py,sha256=CAdeel6zGlj_RHD0lwjyNW5hAaivo1XyAZbnmiVDaZo,2023
8
- KekikStream/Core/Extractor/ExtractorLoader.py,sha256=GPGCmgFpDBywR8CsNw43-ddseZhSKTjAUETp1Ohbi6E,4796
9
- KekikStream/Core/Extractor/ExtractorManager.py,sha256=VYkj4CCE5Puqsr6PCeN8i_OS0hfYKI4NScj98BLO39o,2644
10
- KekikStream/Core/Extractor/ExtractorModels.py,sha256=Qj_gbIeGRewaZXNfYkTi4FFRRq6XBOc0HS0tXGDwajI,445
11
- KekikStream/Core/Extractor/YTDLPCache.py,sha256=sRg5kwFxkRXA_8iRwsV29E51g9qQJvg8dWUnzfr7EwA,984
12
- KekikStream/Core/Media/MediaHandler.py,sha256=MEn3spPAThVloN3WcoCwWhpoyMA7tAZvcwYjmjJsX3U,7678
13
- KekikStream/Core/Media/MediaManager.py,sha256=AaUq2D7JSJIphjoAj2fjLOJjswm7Qf5hjYCbBdrbnDU,438
14
- KekikStream/Core/Plugin/PluginBase.py,sha256=iirN7cQHccqUa6f6Gr86x8XYg4Rr6TlkaWOtbhnzU9g,5923
15
- KekikStream/Core/Plugin/PluginLoader.py,sha256=GcDqN1u3nJeoGKH_oDFHCpwteJlLCxHNbmPrC5L-hZE,3692
16
- KekikStream/Core/Plugin/PluginManager.py,sha256=CZVg1eegi8vfMfccx0DRV0Box8kXz-aoULTQLgbPbvM,893
17
- KekikStream/Core/Plugin/PluginModels.py,sha256=Yvx-6Fkn8QCIcuqAkFbCP5EJcq3XBkK_P8S0tRNhS6E,2476
18
- KekikStream/Core/UI/UIManager.py,sha256=T4V_kdTTWa-UDamgLSKa__dWJuzcvRK9NuwBlzU9Bzc,1693
19
- KekikStream/Extractors/CloseLoad.py,sha256=xlNcUnPfCJJAu1O-YxzjbbA-i14KZ7DADAfTK1biF-s,3197
20
- KekikStream/Extractors/ContentX.py,sha256=x0j67e1OAw4L1m7ejUTyiIxqr1EhvpjaA_0U-s4IQ-I,3617
21
- KekikStream/Extractors/DonilasPlay.py,sha256=Lr60pEht96SMlXICYWo9J5dOwV4ty8fetBCCqJ3ARUY,3221
22
- KekikStream/Extractors/DzenRu.py,sha256=X0Rhm1-W4YjQwVrJs8YFqVcCxMaZi8rsKiLhK_ZsYlU,1185
23
- KekikStream/Extractors/ExPlay.py,sha256=EJNVKAbaIxlbOsCx7J9aLfNHKOFoqSLZZUw7W4QYeH0,1827
24
- KekikStream/Extractors/Filemoon.py,sha256=kkiV9TTox-7t4v3OislRtsUkRa-2xsYgs_qzE-gvVsU,3507
25
- KekikStream/Extractors/HDPlayerSystem.py,sha256=EgnFzx5Q4PkuwAtuff5SYU9k59B-CyOdySl7lbCZ9hM,1312
26
- KekikStream/Extractors/JFVid.py,sha256=_6A0zmYrWZxIfkCCKAaNxMRLjU-_0Z0hCxCNSApcknk,1350
27
- KekikStream/Extractors/JetTv.py,sha256=aA3WeOvR-tszac-WSwunZZb1NRy25TQH8vxY3TDscRI,1596
28
- KekikStream/Extractors/MailRu.py,sha256=xQVCWwYqNoG5T43VAW1_m0v4e80FbO-1pNPKkwhTccU,1218
29
- KekikStream/Extractors/MixPlayHD.py,sha256=POV_yq3KoZ6S6EqFsKYULEBz92NdUa2BpYKNo0eNQH8,1552
30
- KekikStream/Extractors/MixTiger.py,sha256=4VbOYgE4s5H-BGVvJI0AI57M-WBWqnek_LGfCFHAucw,2116
31
- KekikStream/Extractors/MolyStream.py,sha256=-ldfoVskd8vFB-GeLhb04DFabhQAvX35o-PtAE08hFs,1249
32
- KekikStream/Extractors/Odnoklassniki.py,sha256=YfFRCL3Ag5N4zDzK9ZLOr3HVQcsETFQpff1px02imJ0,4019
33
- KekikStream/Extractors/PeaceMakerst.py,sha256=pEgJb3KDfEPAUjbuvrYbUlxIciKgED-Vd0arrRO3QCk,2317
34
- KekikStream/Extractors/PixelDrain.py,sha256=Uk2pPvtBzaKtRXu1iNO8FLHd0EAuIOIzI1H_n02tg-U,964
35
- KekikStream/Extractors/PlayerFilmIzle.py,sha256=gcgCz_pfMBJmn_5gIKw9kIM15dnRqAHD6gvxp6l73nw,2708
36
- KekikStream/Extractors/RapidVid.py,sha256=t_8ZUp5DCTIaohc5aW4s9HEQQ1A2lU5bTMX84lctmtY,3529
37
- KekikStream/Extractors/SetPlay.py,sha256=6XuNXoNFM1h3KOCkTxeZmcAl8QTdqzVN_pp_dEIKF8A,2235
38
- KekikStream/Extractors/SetPrime.py,sha256=ob09y-Sm91YR7rIRzikhZiMHX6D4Djm5QzFTg6KbO4k,1536
39
- KekikStream/Extractors/SibNet.py,sha256=zJTkzlr34ufKCWzKKCgJrzhb2o-fpjTjFdi38gv6N6g,849
40
- KekikStream/Extractors/Sobreatsesuyp.py,sha256=qlSQHUHjTjBoY0nsuZQWAjnfswbPORkBg6rUuP7SagA,2000
41
- KekikStream/Extractors/TRsTX.py,sha256=mbSRGnQt26a73SbqwtY9rpiYFwgRgVbvA6bkGb_PvP8,2152
42
- KekikStream/Extractors/TauVideo.py,sha256=2ai9BwwM6qlCgxK7E0B642LtOF5y4hEb9tQ2aDpbMtc,1112
43
- KekikStream/Extractors/TurboImgz.py,sha256=nnWnP1K4JZbMj6S-YuXxej31UZtF4JcboSW4n7A4A5c,824
44
- KekikStream/Extractors/TurkeyPlayer.py,sha256=FX_H3vzXjAD7IjK11bjJVVw_VdPQ4n6YQLfjQ6E3t7o,1247
45
- KekikStream/Extractors/VCTPlay.py,sha256=1BCl2_vVIrwvG56LCzl2KE5g2CUaMAhzImOZMdZpZCQ,1377
46
- KekikStream/Extractors/VidHide.py,sha256=qIfo-q2S8XpO1O3KUI1KeQ8ajGJTUGr4unqIbfCJ2-I,2799
47
- KekikStream/Extractors/VidMoly.py,sha256=UAocsKcZjTZXUjJjF4ejVqzmTGiVbGeaExg5nj53FvI,5167
48
- KekikStream/Extractors/VidMoxy.py,sha256=LT7wTKBtuuagXwfGjWZwQF2NQGuChurZJ-I6gM0Jcek,1771
49
- KekikStream/Extractors/VidPapi.py,sha256=g9ohdL9VJrxy4N7xerbIRz3ZxjsXFHlJWy0NaZ31hFY,3259
50
- KekikStream/Extractors/VideoSeyred.py,sha256=M6QPZ_isX9vM_7LPo-2I_8Cf1vB9awHw8vvzBODtoiQ,1977
51
- KekikStream/Extractors/YTDLP.py,sha256=Hy8loCSFSquu2zaL3INord-Jm6T8CM6K2-VcDA2K79g,7390
52
- KekikStream/Extractors/YildizKisaFilm.py,sha256=R_JlrOVeMiDlXYcuTdItnKvidyx8_u3B14fSrxew2aE,1316
53
- KekikStream/Plugins/BelgeselX.py,sha256=Rr8fxpAOjApBVLH0r6f8xxxWVw8csyYF6HR8UQ_Nh4w,8930
54
- KekikStream/Plugins/DiziBox.py,sha256=2RGkYEpKsoznE0Gr822-Cw7n-aF_cjyi7Z-79RdJFao,11754
55
- KekikStream/Plugins/DiziPal.py,sha256=oo8pA6mfgpZoZV7B6EBwMec4dlUkMlDpaLnvQsxVhg0,11481
56
- KekikStream/Plugins/DiziYou.py,sha256=FryU5EQR7xcMTkfcc6l-V73kqlbsFVCAPk5ss2zu8gM,9906
57
- KekikStream/Plugins/Dizilla.py,sha256=HZ-A-ecFW2zdykNIjpv38n0FYRh1t8D03CrPresMSkk,13914
58
- KekikStream/Plugins/FilmBip.py,sha256=tTp1gLHC1rVn0vY39jwxpF_fHC5_F0pqcCUCDItgHn0,7103
59
- KekikStream/Plugins/FilmMakinesi.py,sha256=jdQ1Ger72Wf402h-RpOx1TmvCWD0_gDSafKkAFMUJSg,6571
60
- KekikStream/Plugins/FilmModu.py,sha256=ZUrBAq1mK2na8YuZEmev64tGhLrql-n-KK1wYDLICn0,7730
61
- KekikStream/Plugins/FullHDFilm.py,sha256=B8ckb2TftuzfAgxNBs_rkIuAHc9YNVqjG_H9Y3QqGQM,10822
62
- KekikStream/Plugins/FullHDFilmizlesene.py,sha256=Y6wzW4JnALT91FR_RAmbi1KhM6m7NYlCBh8UGXkKeSs,7900
63
- KekikStream/Plugins/HDFilmCehennemi.py,sha256=Snwdnt1AhmKN535J4G8US8DeJVNpXZtxxW7hUo7Szp0,13867
64
- KekikStream/Plugins/JetFilmizle.py,sha256=zqSk1NbOsClViJfETX64jiqREaEDfRskQseIBOzwl-c,8860
65
- KekikStream/Plugins/KultFilmler.py,sha256=eUWXuo3I_qg3Z8k9uM-Xyy4DLfK1jKeFR2I284MjNks,10240
66
- KekikStream/Plugins/RecTV.py,sha256=Nj4AdeetPMzvZ-VKUdUGhBC1SiFSBRYRebODgE2UeI8,7228
67
- KekikStream/Plugins/RoketDizi.py,sha256=Ps6kyBKpSPjMuzFYBm1ryr7gfl_nk8jEj0zQe4SUU0o,9260
68
- KekikStream/Plugins/SelcukFlix.py,sha256=hsoKh5cZ0xDeJ7MtRUQPX-mWFcrTrsaLy2dDaVwuyKg,14099
69
- KekikStream/Plugins/SetFilmIzle.py,sha256=cCl5dO77GyTAv0IAsvybBZyz74ZAwySxoIJMSOtLg5A,11501
70
- KekikStream/Plugins/SezonlukDizi.py,sha256=xIc6Ez8Xt3iyKykJDB52MygpotIjrTTLjgMD1HVL85c,10828
71
- KekikStream/Plugins/SineWix.py,sha256=z0r90lggAugEWE1g9vg8gZsInBObUZPnVFQwq7GYmJs,7052
72
- KekikStream/Plugins/Sinefy.py,sha256=v75WZ4tcjTuD6jPJ6erUqjwG0Nje0Im9-fknui9rAAM,10843
73
- KekikStream/Plugins/SinemaCX.py,sha256=6mYz7Yqja_weEfCiLrzMhji1eiSKaYHj0vX4aomDWvs,8628
74
- KekikStream/Plugins/Sinezy.py,sha256=zBpxUpIIfdnZdolPdkxLMkTsWeGUMW1lht3dNwp_AYU,6756
75
- KekikStream/Plugins/SuperFilmGeldi.py,sha256=zrTMpAP4NTxhQ4lgprBPXkihE7oQu2jNY7IFA7NWWYA,7144
76
- KekikStream/Plugins/UgurFilm.py,sha256=S4Zrml9I3W3iW_2feLJWSkvsVZHpQQQlXRJk4E8li-c,5999
77
- kekikstream-2.2.9.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
78
- kekikstream-2.2.9.dist-info/METADATA,sha256=4p0VW2Lg3Asz8x9KQ2CFCdbsuO6nPfPLy7_yyOMqJr8,10761
79
- kekikstream-2.2.9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
80
- kekikstream-2.2.9.dist-info/entry_points.txt,sha256=dFwdiTx8djyehI0Gsz-rZwjAfZzUzoBSrmzRu9ubjJc,50
81
- kekikstream-2.2.9.dist-info/top_level.txt,sha256=DNmGJDXl27Drdfobrak8KYLmocW_uznVYFJOzcjUgmY,12
82
- kekikstream-2.2.9.dist-info/RECORD,,