Update rotana.net guide.

Test

```shell
npm test -- rotana.net

> test
> run-script-os rotana.net

> test:win32
> SET "TZ=Pacific/Nauru" && npx jest --runInBand rotana.net

 PASS  sites/rotana.net/rotana.net.test.js (6.081 s)
  √ can use defined user agent (3 ms)
  √ can generate valid english url (1 ms)
  √ can generate valid arabic url
  √ can parse english response (630 ms)
  √ can parse arabic response (560 ms)
  √ can handle empty guide (3 ms)

Test Suites: 1 passed, 1 total
Tests:       6 passed, 6 total
Snapshots:   0 total
Time:        6.406 s, estimated 8 s
Ran all test suites matching /rotana.net/i.
```

Grab

```shell
npm run grab -- --site=rotana.net --lang=en

> grab
> npx tsx scripts/commands/epg/grab.ts --site=rotana.net --lang=en

starting...
config:
  output: guide.xml
  maxConnections: 1
  gzip: false
  site: rotana.net
  lang: en
loading channels...
  found 16 channel(s)
run #1:
  [1/32] rotana.net (en) - 432 - Nov 26, 2024 (24 programs)
  [2/32] rotana.net (en) - 432 - Nov 27, 2024 (23 programs)
  [3/32] rotana.net (en) - 433 - Nov 27, 2024 (14 programs)
  [4/32] rotana.net (en) - LBC.sa - Nov 27, 2024 (19 programs)
  [5/32] rotana.net (en) - LBC.sa - Nov 26, 2024 (20 programs)
  [6/32] rotana.net (en) - 433 - Nov 26, 2024 (14 programs)
  [7/32] rotana.net (en) - AlResalah.sa - Nov 27, 2024 (54 programs)
  [8/32] rotana.net (en) - RotanaAflam.sa - Nov 26, 2024 (16 programs)
  [9/32] rotana.net (en) - AlResalah.sa - Nov 26, 2024 (57 programs)
  [10/32] rotana.net (en) - MPlusHD.sa - Nov 27, 2024 (2 programs)
  [11/32] rotana.net (en) - MPlusHD.sa - Nov 26, 2024 (240 programs)
  [12/32] rotana.net (en) - RotanaComedy.sa - Nov 26, 2024 (13 programs)
  [13/32] rotana.net (en) - RotanaClip.sa - Nov 27, 2024 (2 programs)
  [14/32] rotana.net (en) - RotanaClip.sa - Nov 26, 2024 (246 programs)
  [15/32] rotana.net (en) - RotanaClassic.sa - Nov 27, 2024 (18 programs)
  [16/32] rotana.net (en) - RotanaClassic.sa - Nov 26, 2024 (18 programs)
  [17/32] rotana.net (en) - RotanaCinemaKSA.sa - Nov 27, 2024 (13 programs)
  [18/32] rotana.net (en) - RotanaCinemaKSA.sa - Nov 26, 2024 (14 programs)
  [19/32] rotana.net (en) - RotanaCinemaEgypt.eg - Nov 27, 2024 (12 programs)
  [20/32] rotana.net (en) - RotanaCinemaEgypt.eg - Nov 26, 2024 (13 programs)
  [21/32] rotana.net (en) - RotanaAmerica.sa - Nov 27, 2024 (18 programs)
  [22/32] rotana.net (en) - RotanaAmerica.sa - Nov 26, 2024 (15 programs)
  [23/32] rotana.net (en) - RotanaAflam.sa - Nov 27, 2024 (16 programs)
  [24/32] rotana.net (en) - RotanaKids.sa - Nov 26, 2024 (83 programs)
  [25/32] rotana.net (en) - RotanaKhalijia.sa - Nov 26, 2024 (23 programs)
  [26/32] rotana.net (en) - RotanaDrama.sa - Nov 27, 2024 (26 programs)
  [27/32] rotana.net (en) - RotanaMusic.sa - Nov 27, 2024 (0 programs)
  [28/32] rotana.net (en) - RotanaMusic.sa - Nov 26, 2024 (0 programs)
  [29/32] rotana.net (en) - RotanaKhalijia.sa - Nov 27, 2024 (24 programs)
  [30/32] rotana.net (en) - RotanaDrama.sa - Nov 26, 2024 (26 programs)
  [31/32] rotana.net (en) - RotanaKids.sa - Nov 27, 2024 (83 programs)
  [32/32] rotana.net (en) - RotanaComedy.sa - Nov 27, 2024 (13 programs)
  saving to "guide.xml"...
  done in 00h 00m 49s
```

Signed-off-by: Toha <tohenk@yahoo.com>
This commit is contained in:
Toha 2024-11-27 03:48:25 +07:00
parent b311572748
commit e09316dc63
No known key found for this signature in database
GPG key ID: 2D7AA6389D44DCAB
8 changed files with 833 additions and 606 deletions

View file

@ -1,51 +1,241 @@
<div class="hour">
<div class="bg" id="item-10-12-2023">
<div class="bg" id="item-26-11-2024">
<h4 class="big-title text-uppercase mt-0 fadeInRight animated " data-animation-in="fadeInRight"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s">
<span>الأحد</span>
2023-12-10
</h4>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-239849">
<div class="iq-accordion-title" onclick="getData(239849)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s">
<span>00:36
</span>
<span>كتكوت</span>
</h5>
</div>
<div class="iq-accordion-details" style="display: none;">
</div>
</div>
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>الثلاثاء</span> 2024-11-26 </h4>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-239850">
<div class="iq-accordion-title" onclick="getData(239850)">
<div class="iq-accordion-block " id="item-736961">
<div class="iq-accordion-title" onclick="getData(736961)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s">
<span>02:46
</span>
<span>عيار ناري</span>
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>05:00 </span><span>المولد</span>
</h5>
</div>
<div class="iq-accordion-details" style="display: none;">
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736970">
<div class="iq-accordion-title" onclick="getData(736970)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>23:00 </span><span>خيانة
مشروعة</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736969">
<div class="iq-accordion-title" onclick="getData(736969)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>21:00 </span><span>عسل
إسود</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2" id="playing-now-event">
<div class="iq-accordion-block iq-active " id="item-736968">
<div class="iq-accordion-title" onclick="getData(736968)">
<div class="egp-live"><i aria-hidden="true" class="fa fa-tv"></i></div>
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>19:00 </span><span>ولاد
العم</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736967">
<div class="iq-accordion-title" onclick="getData(736967)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>16:30 </span><span>كتكوت</span>
</h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736966">
<div class="iq-accordion-title" onclick="getData(736966)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>14:00 </span><span>أربعة في مهمة
رسمية</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736965">
<div class="iq-accordion-title" onclick="getData(736965)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>12:00 </span><span>غاوي
حب</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736964">
<div class="iq-accordion-title" onclick="getData(736964)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>10:00 </span><span>بنك
الحظ</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736963">
<div class="iq-accordion-title" onclick="getData(736963)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>09:00 </span><span>عرب
وود</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736962">
<div class="iq-accordion-title" onclick="getData(736962)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>07:00 </span><span>سمير وشهير
وبهير</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736960">
<div class="iq-accordion-title" onclick="getData(736960)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>03:00 </span><span>خط دم</span>
</h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736959">
<div class="iq-accordion-title" onclick="getData(736959)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>01:00 </span><span>الكنز الحب
والمصير</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="bg" id="item-27-11-2024">
<h4 class="big-title text-uppercase mt-0 fadeInRight animated " data-animation-in="fadeInRight"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>الأربعاء</span> 2024-11-27 </h4>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736981">
<div class="iq-accordion-title" onclick="getData(736981)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>23:00 </span><span>دكان
شحاتة</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736980">
<div class="iq-accordion-title" onclick="getData(736980)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>21:00 </span><span>القرموطي في
أرض النار</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736979">
<div class="iq-accordion-title" onclick="getData(736979)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>19:00 </span><span>حملة
فريزر</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736978">
<div class="iq-accordion-title" onclick="getData(736978)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>16:30
</span><span>المصلحة</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736977">
<div class="iq-accordion-title" onclick="getData(736977)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>14:00 </span><span>نأسف لهذا
الخطأ</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736975">
<div class="iq-accordion-title" onclick="getData(736975)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>10:00 </span><span>ولاد
العم</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736974">
<div class="iq-accordion-title" onclick="getData(736974)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>07:30 </span><span>كتكوت</span>
</h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736973">
<div class="iq-accordion-title" onclick="getData(736973)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>05:00 </span><span>أربعة في مهمة
رسمية</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736972">
<div class="iq-accordion-title" onclick="getData(736972)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>03:00 </span><span>غاوي
حب</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736971">
<div class="iq-accordion-title" onclick="getData(736971)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>01:00 </span><span>بنك
الحظ</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736976">
<div class="iq-accordion-title" onclick="getData(736976)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>12:00 </span><span>عسل
إسود</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
</div>

View file

@ -1,51 +1,241 @@
<div class="hour">
<div class="bg" id="item-10-12-2023">
<div class="bg" id="item-26-11-2024">
<h4 class="big-title text-uppercase mt-0 fadeInRight animated " data-animation-in="fadeInRight"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s">
<span>Sunday</span>
2023-12-10
</h4>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-239849">
<div class="iq-accordion-title" onclick="getData(239849)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s">
<span>00:36
</span>
<span>Katkout</span>
</h5>
</div>
<div class="iq-accordion-details" style="display: none;">
</div>
</div>
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>Tuesday</span> 2024-11-26 </h4>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-239850">
<div class="iq-accordion-title" onclick="getData(239850)">
<div class="iq-accordion-block " id="item-736961">
<div class="iq-accordion-title" onclick="getData(736961)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s">
<span>02:46
</span>
<span>Gunshot</span>
</h5>
</div>
<div class="iq-accordion-details" style="display: none;">
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>05:00
</span><span>Almualid</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736970">
<div class="iq-accordion-title" onclick="getData(736970)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>23:00 </span><span>Khiyana
Mashroua</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736969">
<div class="iq-accordion-title" onclick="getData(736969)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>21:00 </span><span>Black
Honey</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736968">
<div class="iq-accordion-title" onclick="getData(736968)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>19:00
</span><span>Cousins</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2" id="playing-now-event">
<div class="iq-accordion-block iq-active " id="item-736967">
<div class="iq-accordion-title" onclick="getData(736967)">
<div class="egp-live"><i aria-hidden="true" class="fa fa-tv"></i></div>
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>16:30
</span><span>Katkout</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736966">
<div class="iq-accordion-title" onclick="getData(736966)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>14:00 </span><span>Four on an
Official Mission</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736965">
<div class="iq-accordion-title" onclick="getData(736965)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>12:00 </span><span>Ghawy
Hob</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736964">
<div class="iq-accordion-title" onclick="getData(736964)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>10:00
</span><span>Monopoly</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736963">
<div class="iq-accordion-title" onclick="getData(736963)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>09:00
</span><span>Arabwood</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736962">
<div class="iq-accordion-title" onclick="getData(736962)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>07:00 </span><span>Samir and
Shahir and Bahir</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736960">
<div class="iq-accordion-title" onclick="getData(736960)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>03:00 </span><span>Blood
Line</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736959">
<div class="iq-accordion-title" onclick="getData(736959)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>01:00 </span><span>The Treasure
2 Love and Destiny</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="bg" id="item-27-11-2024">
<h4 class="big-title text-uppercase mt-0 fadeInRight animated " data-animation-in="fadeInRight"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>Wednesday</span> 2024-11-27 </h4>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736981">
<div class="iq-accordion-title" onclick="getData(736981)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>23:00 </span><span>Dokan
Shehata</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736980">
<div class="iq-accordion-title" onclick="getData(736980)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>21:00 </span><span>El Qarmouti
in the Land of Fire</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736979">
<div class="iq-accordion-title" onclick="getData(736979)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>19:00 </span><span>Freezer
Mission</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736978">
<div class="iq-accordion-title" onclick="getData(736978)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>16:30 </span><span>Al
Maslaha</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736977">
<div class="iq-accordion-title" onclick="getData(736977)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>14:00 </span><span>Nasaf lhdha
alkhata</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736975">
<div class="iq-accordion-title" onclick="getData(736975)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>10:00
</span><span>Cousins</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736974">
<div class="iq-accordion-title" onclick="getData(736974)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>07:30
</span><span>Katkout</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736973">
<div class="iq-accordion-title" onclick="getData(736973)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>05:00 </span><span>Four on an
Official Mission</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736972">
<div class="iq-accordion-title" onclick="getData(736972)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>03:00 </span><span>Ghawy
Hob</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736971">
<div class="iq-accordion-title" onclick="getData(736971)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>01:00
</span><span>Monopoly</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
<div class="iq-accordion iq-accordion-square mt-2">
<div class="iq-accordion-block " id="item-736976">
<div class="iq-accordion-title" onclick="getData(736976)">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>12:00 </span><span>Black
Honey</span></h5>
</div>
<div class="iq-accordion-details" style="display: none;"></div>
</div>
</div>
</div>

View file

@ -1,240 +1,131 @@
<div class="row">
<div class="col-lg-6 col-md-12 col-sm-12 ">
<img src="https://imgsrv.rotana.net/spider_storage/1398X1000/1690882129.webp?w=450&amp;fit=max"
loading="lazy" alt="كتكوت">
</div>
<div class="col-lg-6 col-md-12 col-sm-12">
<div class="iq-blog-detail">
<div class="trending-info">
<div class="row">
<div class="col-md-12 col-12 mb-auto">
<div class="d-md-flex trending-box">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s">
كتكوت
</h5>
</div>
<ul class="p-0 list-inline d-flex flex-wrap align-items-center mb-3 mt-4 iq_tag-list">
<li class="text-primary text-lable mr-3">
<i class="fa fa-tags" aria-hidden="true"></i>
التصنيف
</li>
<li class="trending-list mr-3">
<a class="title"
href="#">كوميديا , عائلة , إثارة
</a>
</li>
<div class="iq-accordion-details" style="display: block;">
<div class="row">
<div class="col-lg-6 col-md-12 col-sm-12 "><img
src="https://s3.eu-central-1.amazonaws.com/rotana.website/spider_storage/1398X1000/1687084565"
loading="lazy" alt="خيانة مشروعة"></div>
<div class="col-lg-6 col-md-12 col-sm-12">
<div class="iq-blog-detail">
<div class="trending-info">
<div class="row">
<div class="col-md-12 col-12 mb-auto">
<div class="d-md-flex trending-box">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated"
data-animation-in="fadeInLeft" data-delay-in="0.6"
style="opacity: 1; animation-delay: 0.6s"> خيانة مشروعة </h5>
</div>
<ul class="p-0 list-inline d-flex flex-wrap align-items-center mb-3 mt-4 iq_tag-list">
<li class="text-primary text-lable mr-3"><i class="fa fa-tags" aria-hidden="true"></i>
التصنيف </li>
<li class="trending-list mr-3"><a class="title" href="#">جريمة , إثارة , دراما </a></li>
</ul>
<div class="blog-button">
<button id="modal-open-button"
type="button" class="btn btn-primary button-link" data-toggle="modal"
data-target="#exampleModal"
onclick="throttle(getPlayer_epg, 1000, 'https://hiplayer.hibridcdn.net/l/rotana-cinemamasrdvr',1702168573,1702176316); showCatchUpStatus();"
<i class="ri-tv-line"></i>
الأرشيف
</button>
<div class="blog-button"></div><br><span>
<p><strong></strong></p> يعلم هشام البحيري أن والده قد حرمه من الميراث، ووهب كل ثروته لشقيقه اﻷكبر، وهو ما يدفعه لتدبير جريمة قتل شقيقه لتبدو وكأنها دفاع عن الشرف، وذلك حين يقتل هشام زوجته مع شقيقه. <br><br>
<span> البلد : مصر </span><br>
<span> سنة الإصدار :2006 </span><br>
<span> التصنيف : فيلم </span><br>
<span> اللغة : عربي</span><br>
<span> المخرج : خالد يوسف </span><br><br>
</span>
</div>
<br>
<span>
<p><strong></strong></p>
في إطار كوميدي تدور أحداث الفيلم، حول (كتكوت) الصعيدي الذي تحاول عمته كبيرة العائلة الصعيدية إجباره على تقديم نفسه للقتل ليفدي عائلته، ولكنه يهرب وتخطفه جهة أمنية لاكتشاف شبه كبير بينه وبين (يوسف خوري...
<br><br>
<span> البلد
:
مصر
</span>
<br>
<span> سنة الإصدار
:
2006
</span>
<br>
<span> التصنيف
:
فيلم
</span>
<br>
<span> اللغة
:
عربي
</span>
<br>
<br>
</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-12 col-lg-12 col-md-12 col-sm-12 col-xs-12 ">
<div class="iq-accordion-title">
<h5 class="big-title text-uppercase mt-0 fadeInDown animated" data-animation-in="fadeInDown"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s">
<span>طاقم العمل</span>
</h5>
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>طاقم العمل</span></h5>
</div>
<div class="">
<ul class=" row list-inline mb-0 iq-rtl-direction iq_genres-contents">
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 2">
<a
href="https://rotana.net/ar/actor-details/2619/%D9%85%D8%AD%D9%85%D8%AF-%D8%B3%D8%B9%D8%AF" target="_blank">
<div class="block-images position-relative watchlist-first">
<div class="img-box">
<img src="https://imgsrv.rotana.net/elcinema_persons/1677278061?w=165&amp;fit=max"
class="img-fluid" loading="lazy" alt="محمد سعد">
</div>
<div
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
<h6 class="iq-title">
محمد سعد
</h6>
<h6 class="iq-title">ممثل</h6>
</div>
<ul class=" row list-inline mb-0 iq-rtl-direction iq_genres-contents">
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 2"><a
href="https://rotana.net/ar/actor-details/1392/%D9%87%D8%A7%D9%86%D9%8A-%D8%B3%D9%84%D8%A7%D9%85%D8%A9"
target="_blank">
<div class="block-images position-relative watchlist-first">
<div class="img-box"><img
src="https://s3.eu-central-1.amazonaws.com/rotana.website/elcinema_persons/1677266060"
class="img-fluid" loading="lazy" alt="هاني سلامة"></div>
<div
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
<h6 class="iq-title"> هاني سلامة </h6>
<h6 class="iq-title">ممثل</h6>
</div>
</a>
</li>
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 3">
<a
href="https://rotana.net/ar/actor-details/714/%D8%AD%D8%B3%D9%86-%D8%AD%D8%B3%D9%86%D9%8A" target="_blank">
<div class="block-images position-relative watchlist-first">
<div class="img-box">
<img src="https://imgsrv.rotana.net/elcinema_persons/1677264896?w=165&amp;fit=max"
class="img-fluid" loading="lazy" alt="حسن حسني">
</div>
<div
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
<h6 class="iq-title">
حسن حسني
</h6>
<h6 class="iq-title">ممثل</h6>
</div>
</div>
</a></li>
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 3"><a
href="https://rotana.net/ar/actor-details/476/%D9%85%D9%8A-%D8%B9%D8%B2-%D8%A7%D9%84%D8%AF%D9%8A%D9%86"
target="_blank">
<div class="block-images position-relative watchlist-first">
<div class="img-box"><img
src="https://s3.eu-central-1.amazonaws.com/rotana.website/elcinema_persons/1677281286"
class="img-fluid" loading="lazy" alt="مي عز الدين"></div>
<div
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
<h6 class="iq-title"> مي عز الدين </h6>
<h6 class="iq-title">ممثل</h6>
</div>
</a>
</li>
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 4">
<a
href="https://rotana.net/ar/actor-details/6148/%D9%87%D8%A8%D9%87-%D8%A7%D9%84%D8%B3%D9%8A%D8%B3%D9%8A" target="_blank">
<div class="block-images position-relative watchlist-first">
<div class="img-box">
<img src="https://imgsrv.rotana.net/elcinema_persons/1677266249?w=165&amp;fit=max"
class="img-fluid" loading="lazy" alt="هبه السيسي">
</div>
<div
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
<h6 class="iq-title">
هبه السيسي
</h6>
<h6 class="iq-title">ممثل</h6>
</div>
</div>
</a></li>
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 4"><a
href="https://rotana.net/ar/actor-details/1393/%D8%B3%D9%85%D9%8A%D8%A9-%D8%A7%D9%84%D8%AE%D8%B4%D8%A7%D8%A8"
target="_blank">
<div class="block-images position-relative watchlist-first">
<div class="img-box"><img
src="https://s3.eu-central-1.amazonaws.com/rotana.website/elcinema_persons/1677290429"
class="img-fluid" loading="lazy" alt="سمية الخشاب"></div>
<div
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
<h6 class="iq-title"> سمية الخشاب </h6>
<h6 class="iq-title">مغني</h6>
</div>
</a>
</li>
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 5">
<a
href="https://rotana.net/ar/actor-details/2589/%D8%B9%D9%84%D9%8A-%D8%AD%D8%B3%D9%86%D9%8A%D9%86" target="_blank">
<div class="block-images position-relative watchlist-first">
<div class="img-box">
<img src="https://imgsrv.rotana.net/elcinema_persons/1677253689?w=165&amp;fit=max"
class="img-fluid" loading="lazy" alt="علي حسنين">
</div>
<div
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
<h6 class="iq-title">
علي حسنين
</h6>
<h6 class="iq-title">ممثل</h6>
</div>
</div>
</a></li>
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 5"><a
href="https://rotana.net/ar/actor-details/2358/%D9%87%D8%B4%D8%A7%D9%85-%D8%B3%D9%84%D9%8A%D9%85"
target="_blank">
<div class="block-images position-relative watchlist-first">
<div class="img-box"><img
src="https://s3.eu-central-1.amazonaws.com/rotana.website/elcinema_persons/1677266419"
class="img-fluid" loading="lazy" alt="هشام سليم"></div>
<div
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
<h6 class="iq-title"> هشام سليم </h6>
<h6 class="iq-title">ممثل</h6>
</div>
</a>
</li>
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 6">
<a
href="https://rotana.net/ar/actor-details/987/%D9%85%D8%AD%D9%85%D8%AF-%D9%88%D9%81%D9%8A%D9%82" target="_blank">
<div class="block-images position-relative watchlist-first">
<div class="img-box">
<img src="https://imgsrv.rotana.net/elcinema_persons/1677278771?w=165&amp;fit=max"
class="img-fluid" loading="lazy" alt="محمد وفيق">
</div>
<div
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
<h6 class="iq-title">
محمد وفيق
</h6>
<h6 class="iq-title">ممثل</h6>
</div>
</div>
</a></li>
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 6"><a
href="https://rotana.net/ar/actor-details/2807/%D8%B3%D8%A7%D9%85%D8%AD-%D8%A7%D9%84%D8%B5%D8%B1%D9%8A%D8%B7%D9%8A"
target="_blank">
<div class="block-images position-relative watchlist-first">
<div class="img-box"><img
src="https://s3.eu-central-1.amazonaws.com/rotana.website/elcinema_persons/1677288796"
class="img-fluid" loading="lazy" alt="سامح الصريطي"></div>
<div
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
<h6 class="iq-title"> سامح الصريطي </h6>
<h6 class="iq-title">ممثل</h6>
</div>
</a>
</li>
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 7">
<a
href="https://rotana.net/ar/actor-details/1035/%D8%AD%D8%B3%D9%86-%D8%B9%D8%A8%D8%AF%D8%A7%D9%84%D9%81%D8%AA%D8%A7%D8%AD" target="_blank">
<div class="block-images position-relative watchlist-first">
<div class="img-box">
<img src="https://imgsrv.rotana.net/elcinema_persons/1677264953?w=165&amp;fit=max"
class="img-fluid" loading="lazy" alt="حسن عبدالفتاح">
</div>
<div
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
<h6 class="iq-title">
حسن عبدالفتاح
</h6>
<h6 class="iq-title">ممثل</h6>
</div>
</div>
</a></li>
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 7"><a
href="https://rotana.net/ar/actor-details/1210/%D8%B9%D9%85%D8%B1%D9%88-%D8%B3%D8%B9%D8%AF"
target="_blank">
<div class="block-images position-relative watchlist-first">
<div class="img-box"><img
src="https://s3.eu-central-1.amazonaws.com/rotana.website/elcinema_persons/1677253966"
class="img-fluid" loading="lazy" alt="عمرو سعد"></div>
<div
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
<h6 class="iq-title"> عمرو سعد </h6>
<h6 class="iq-title">ممثل</h6>
</div>
</a>
</li>
</div>
</a></li>
</ul>
</div>
</div>
</div>
</div>

View file

@ -1,240 +1,132 @@
<div class="row">
<div class="col-lg-6 col-md-12 col-sm-12 ">
<img src="https://imgsrv.rotana.net/spider_storage/1398X1000/1690882129.webp?w=450&amp;fit=max"
loading="lazy" alt="Katkout">
</div>
<div class="col-lg-6 col-md-12 col-sm-12">
<div class="iq-blog-detail">
<div class="trending-info">
<div class="row">
<div class="col-md-12 col-12 mb-auto">
<div class="d-md-flex trending-box">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated" data-animation-in="fadeInLeft"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s">
Katkout
</h5>
</div>
<ul class="p-0 list-inline d-flex flex-wrap align-items-center mb-3 mt-4 iq_tag-list">
<li class="text-primary text-lable mr-3">
<i class="fa fa-tags" aria-hidden="true"></i>
Genres
<div class="iq-accordion-details" style="display: block;">
<div class="row">
<div class="col-lg-6 col-md-12 col-sm-12 "><img
src="https://s3.eu-central-1.amazonaws.com/rotana.website/spider_storage/1398X1000/1687084565"
loading="lazy" alt="Khiyana Mashroua"></div>
<div class="col-lg-6 col-md-12 col-sm-12">
<div class="iq-blog-detail">
<div class="trending-info">
<div class="row">
<div class="col-md-12 col-12 mb-auto">
<div class="d-md-flex trending-box">
<h5 class="big-title text-uppercase mt-0 fadeInLeft animated"
data-animation-in="fadeInLeft" data-delay-in="0.6"
style="opacity: 1; animation-delay: 0.6s"> Khiyana Mashroua </h5>
</div>
<ul class="p-0 list-inline d-flex flex-wrap align-items-center mb-3 mt-4 iq_tag-list">
<li class="text-primary text-lable mr-3"><i class="fa fa-tags" aria-hidden="true"></i>
Genres </li>
<li class="trending-list mr-3"><a class="title" href="#">Crime , Thriller , Drama </a>
</li>
<li class="trending-list mr-3">
<a class="title"
href="#">Comedy , Family , Thriller
</a>
</li>
</ul>
<div class="blog-button">
<button id="modal-open-button"
type="button" class="btn btn-primary button-link" data-toggle="modal"
data-target="#exampleModal"
onclick="throttle(getPlayer_epg, 1000, 'https://hiplayer.hibridcdn.net/l/rotana-cinemamasrdvr',1702168573,1702176316); showCatchUpStatus();"
<i class="ri-tv-line"></i>
Catch up
</button>
<div class="blog-button"></div><br><span>
<p><strong></strong></p> Hisham knows that his father has given all his wealth to his elder brother. This leads him to plan to kill his brother to make it look like a defense of honor, which he does by killing his wife along... <br><br>
<span> Country : Egypt</span><br>
<span> Release Year : 2006 </span><br>
<span> Category : Movie</span><br>
<span> Language : Arabic </span><br>
<span> Director : Khaled Youssef</span><br><br>
</span>
</div>
<br>
<span>
<p><strong></strong></p>
In a comic framework, the events of the film revolve around (Katkoot) Al-Saedi, whose aunt, the eldest of the Al-Saedi family, tries to force him to kill himself in order to ransom his family. A time...
<br><br>
<span> Country
:
Egypt
</span>
<br>
<span> Release Year
:
2006
</span>
<br>
<span> Category
:
Movie
</span>
<br>
<span> Language
:
Arabic
</span>
<br>
<br>
</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-12 col-lg-12 col-md-12 col-sm-12 col-xs-12 ">
<div class="iq-accordion-title">
<h5 class="big-title text-uppercase mt-0 fadeInDown animated" data-animation-in="fadeInDown"
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s">
<span>Cast</span>
</h5>
data-delay-in="0.6" style="opacity: 1; animation-delay: 0.6s"><span>Cast</span></h5>
</div>
<div class="">
<ul class=" row list-inline mb-0 iq-rtl-direction iq_genres-contents">
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 2">
<a
href="https://rotana.net/en/actor-details/2619/%D9%85%D8%AD%D9%85%D8%AF-%D8%B3%D8%B9%D8%AF" target="_blank">
<div class="block-images position-relative watchlist-first">
<div class="img-box">
<img src="https://imgsrv.rotana.net/elcinema_persons/1677278061?w=165&amp;fit=max"
class="img-fluid" loading="lazy" alt="Mohamed Saad">
</div>
<div
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
<h6 class="iq-title">
Mohamed Saad
</h6>
<h6 class="iq-title">Actor</h6>
</div>
<ul class=" row list-inline mb-0 iq-rtl-direction iq_genres-contents">
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 2"><a
href="https://rotana.net/en/actor-details/1392/%D9%87%D8%A7%D9%86%D9%8A-%D8%B3%D9%84%D8%A7%D9%85%D8%A9"
target="_blank">
<div class="block-images position-relative watchlist-first">
<div class="img-box"><img
src="https://s3.eu-central-1.amazonaws.com/rotana.website/elcinema_persons/1677266060"
class="img-fluid" loading="lazy" alt="Hani Salama"></div>
<div
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
<h6 class="iq-title"> Hani Salama </h6>
<h6 class="iq-title">Actor</h6>
</div>
</a>
</li>
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 3">
<a
href="https://rotana.net/en/actor-details/714/%D8%AD%D8%B3%D9%86-%D8%AD%D8%B3%D9%86%D9%8A" target="_blank">
<div class="block-images position-relative watchlist-first">
<div class="img-box">
<img src="https://imgsrv.rotana.net/elcinema_persons/1677264896?w=165&amp;fit=max"
class="img-fluid" loading="lazy" alt="Hassan Hosny">
</div>
<div
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
<h6 class="iq-title">
Hassan Hosny
</h6>
<h6 class="iq-title">Actor</h6>
</div>
</div>
</a></li>
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 3"><a
href="https://rotana.net/en/actor-details/476/%D9%85%D9%8A-%D8%B9%D8%B2-%D8%A7%D9%84%D8%AF%D9%8A%D9%86"
target="_blank">
<div class="block-images position-relative watchlist-first">
<div class="img-box"><img
src="https://s3.eu-central-1.amazonaws.com/rotana.website/elcinema_persons/1677281286"
class="img-fluid" loading="lazy" alt="Mai Ezz El Din"></div>
<div
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
<h6 class="iq-title"> Mai Ezz El Din </h6>
<h6 class="iq-title">Actor</h6>
</div>
</a>
</li>
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 4">
<a
href="https://rotana.net/en/actor-details/6148/%D9%87%D8%A8%D9%87-%D8%A7%D9%84%D8%B3%D9%8A%D8%B3%D9%8A" target="_blank">
<div class="block-images position-relative watchlist-first">
<div class="img-box">
<img src="https://imgsrv.rotana.net/elcinema_persons/1677266249?w=165&amp;fit=max"
class="img-fluid" loading="lazy" alt="Heba El Sisi">
</div>
<div
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
<h6 class="iq-title">
Heba El Sisi
</h6>
<h6 class="iq-title">Actor</h6>
</div>
</div>
</a></li>
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 4"><a
href="https://rotana.net/en/actor-details/1393/%D8%B3%D9%85%D9%8A%D8%A9-%D8%A7%D9%84%D8%AE%D8%B4%D8%A7%D8%A8"
target="_blank">
<div class="block-images position-relative watchlist-first">
<div class="img-box"><img
src="https://s3.eu-central-1.amazonaws.com/rotana.website/elcinema_persons/1677290429"
class="img-fluid" loading="lazy" alt="Somaya El Khashab"></div>
<div
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
<h6 class="iq-title"> Somaya El Khashab </h6>
<h6 class="iq-title">Singer</h6>
</div>
</a>
</li>
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 5">
<a
href="https://rotana.net/en/actor-details/2589/%D8%B9%D9%84%D9%8A-%D8%AD%D8%B3%D9%86%D9%8A%D9%86" target="_blank">
<div class="block-images position-relative watchlist-first">
<div class="img-box">
<img src="https://imgsrv.rotana.net/elcinema_persons/1677253689?w=165&amp;fit=max"
class="img-fluid" loading="lazy" alt="Ali Hassanein">
</div>
<div
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
<h6 class="iq-title">
Ali Hassanein
</h6>
<h6 class="iq-title">Actor</h6>
</div>
</div>
</a></li>
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 5"><a
href="https://rotana.net/en/actor-details/2358/%D9%87%D8%B4%D8%A7%D9%85-%D8%B3%D9%84%D9%8A%D9%85"
target="_blank">
<div class="block-images position-relative watchlist-first">
<div class="img-box"><img
src="https://s3.eu-central-1.amazonaws.com/rotana.website/elcinema_persons/1677266419"
class="img-fluid" loading="lazy" alt="Hesham Selim"></div>
<div
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
<h6 class="iq-title"> Hesham Selim </h6>
<h6 class="iq-title">Actor</h6>
</div>
</a>
</li>
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 6">
<a
href="https://rotana.net/en/actor-details/987/%D9%85%D8%AD%D9%85%D8%AF-%D9%88%D9%81%D9%8A%D9%82" target="_blank">
<div class="block-images position-relative watchlist-first">
<div class="img-box">
<img src="https://imgsrv.rotana.net/elcinema_persons/1677278771?w=165&amp;fit=max"
class="img-fluid" loading="lazy" alt="Mohammad Wafik">
</div>
<div
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
<h6 class="iq-title">
Mohammad Wafik
</h6>
<h6 class="iq-title">Actor</h6>
</div>
</div>
</a></li>
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 6"><a
href="https://rotana.net/en/actor-details/2807/%D8%B3%D8%A7%D9%85%D8%AD-%D8%A7%D9%84%D8%B5%D8%B1%D9%8A%D8%B7%D9%8A"
target="_blank">
<div class="block-images position-relative watchlist-first">
<div class="img-box"><img
src="https://s3.eu-central-1.amazonaws.com/rotana.website/elcinema_persons/1677288796"
class="img-fluid" loading="lazy" alt="Sameh El-Sereety"></div>
<div
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
<h6 class="iq-title"> Sameh El-Sereety </h6>
<h6 class="iq-title">Actor</h6>
</div>
</a>
</li>
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 7">
<a
href="https://rotana.net/en/actor-details/1035/%D8%AD%D8%B3%D9%86-%D8%B9%D8%A8%D8%AF%D8%A7%D9%84%D9%81%D8%AA%D8%A7%D8%AD" target="_blank">
<div class="block-images position-relative watchlist-first">
<div class="img-box">
<img src="https://imgsrv.rotana.net/elcinema_persons/1677264953?w=165&amp;fit=max"
class="img-fluid" loading="lazy" alt="Hassan Abdulfattah">
</div>
<div
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
<h6 class="iq-title">
Hassan Abdulfattah
</h6>
<h6 class="iq-title">Actor</h6>
</div>
</div>
</a></li>
<li class="slide-item col-6 col-lg-2 col-md-4 col-sm-6 col-xs-6 7"><a
href="https://rotana.net/en/actor-details/1210/%D8%B9%D9%85%D8%B1%D9%88-%D8%B3%D8%B9%D8%AF"
target="_blank">
<div class="block-images position-relative watchlist-first">
<div class="img-box"><img
src="https://s3.eu-central-1.amazonaws.com/rotana.website/elcinema_persons/1677253966"
class="img-fluid" loading="lazy" alt="Amr Saad"></div>
<div
class="block-description d-flex justify-content-center flex-column text-center cast-small-title">
<h6 class="iq-title"> Amr Saad </h6>
<h6 class="iq-title">Actor</h6>
</div>
</a>
</li>
</div>
</a></li>
</ul>
</div>
</div>
</div>
</div>

View file

@ -10,6 +10,9 @@ dayjs.extend(timezone)
dayjs.extend(utc)
dayjs.extend(customParseFormat)
const tz = 'Asia/Riyadh'
const nworker = 25
const headers = {
'User-Agent':
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 OPR/104.0.0.0'
@ -33,11 +36,33 @@ module.exports = {
}
const items = parseItems(content, date)
for (const item of items) {
const program = await parseProgram(item, channel)
if (program) {
programs.push(program)
if (items.length) {
const workers = []
const n = Math.min(nworker, items.length)
while (workers.length < n) {
const worker = () => {
if (items.length) {
const item = items.shift()
parseProgram(item, channel)
.then(() => {
programs.push(item)
worker()
})
} else {
workers.splice(workers.indexOf(worker), 1)
}
}
workers.push(worker)
worker()
}
await new Promise(resolve => {
const interval = setInterval(() => {
if (workers.length === 0) {
clearInterval(interval)
resolve()
}
}, 500)
})
}
return programs
@ -58,85 +83,116 @@ module.exports = {
}
}
async function parseProgram(item, channel, options = {}) {
options = options || {}
const deep = options.deep !== undefined ? options.deep : true
const raw = options.raw !== undefined ? options.raw : false
const top = item.find('.iq-accordion-block')
const info = top.find('.iq-accordion-title .big-title span')
if (info.length) {
const [time, title] = info.text().split('\n')
const [d, m, y] = item._date.split('-')
const start = dayjs.tz(`${y}-${m}-${d} ${time.trim()}`, 'YYYY-MM-DD HH:mm', 'Asia/Riyadh')
let description, image, stop
if (deep) {
const pid = top.attr('id').split('-')[1]
if (pid) {
const url = `https://rotana.net/${channel.lang}/streams?channel=${channel.site_id}&itemId=${pid}`
const params = {
headers: Object.assign({}, headers, { 'X-Requested-With': 'XMLHttpRequest' }),
Cookie: cookies[channel.lang]
}
debug(`fetching description ${url}`)
const result = await axios
.get(url, params)
.then(response => response.data)
.catch(console.error)
async function parseProgram(item, channel) {
if (item.program) {
const url = `https://rotana.net/${channel.lang}/streams?channel=${channel.site_id}&itemId=${item.program}`
const params = {
headers: Object.assign({}, headers, { 'X-Requested-With': 'XMLHttpRequest' }),
Cookie: cookies[channel.lang]
}
debug(`fetching description ${url}`)
const result = await axios
.get(url, params)
.then(response => response.data)
.catch(console.error)
const $ = cheerio.load(result)
const details = $('.trending-info div > span')
if (details.length) {
description = details.text().split('\n')[3].trim()
}
const img = $('.row > div > img')
if (img.length) {
image = img.attr('src')
}
}
if (item._next) {
const next = await parseProgram(item._next, channel, { deep: false, raw: true })
if (next.start) {
stop = next.start
const $ = cheerio.load(result)
const details = $('.trending-info .row div > span')
if (details.length) {
for (const el of details[0].children) {
switch (el.constructor.name) {
case 'Text':
if (item.description === undefined) {
const desc = $(el).text().trim()
if (desc) {
item.description = desc
}
}
break;
case 'Element':
if (el.name === 'span') {
const [k, v] = $(el).text().split(':').map(a => a.trim())
switch (k) {
case 'Category':
case 'التصنيف':
item.category = v;
break;
case 'Country':
case 'البلد':
item.country = v;
break;
case 'Director':
case 'المخرج':
item.director = v;
break;
case 'Language':
case 'اللغة':
item.language = v;
break;
case 'Release Year':
case 'سنة الإصدار':
item.date = v;
break;
}
}
break;
}
}
}
return {
title: title?.trim(),
description: description?.trim(),
image,
start: raw ? start : start?.toISOString(),
stop: raw ? stop : stop?.toISOString()
const img = $('.row > div > img')
if (img.length) {
item.image = img.attr('src')
}
delete item.program
}
}
function parseItems(content, date) {
const result = []
const $ = cheerio.load(content)
const expectedId = `item-${date.format('DD-MM-YYYY')}`
let lastId
const items = []
let curDate
$('.hour > div').each((_, item) => {
const $item = $(item)
if ($item.hasClass('bg')) {
lastId = $item.attr('id')
curDate = $item.attr('id')
curDate = curDate.substr(curDate.indexOf('-') + 1).split('-')
} else if ($item.hasClass('iq-accordion')) {
$item._date = lastId.substr(lastId.indexOf('-') + 1)
// is date match?
if (lastId === expectedId) {
// set next item
if (result.length) {
result[result.length - 1]._next = $item
}
result.push($item)
} else if (result.length && !result[result.length - 1]._next) {
// set next item
result[result.length - 1]._next = $item
const top = $item.find('.iq-accordion-block')
const heading = top.find('.iq-accordion-title .big-title')
if (heading.length) {
const progId = top.attr('id')
const title = heading.find('span:eq(1)').text()
.split('\n')
.map(a => a.trim())
.join(' ')
const time = heading.find('span:eq(0)').text()
const [d, m, y] = curDate
items.push({
program: progId.substr(progId.indexOf('-') + 1),
title: title ? title.trim() : title,
start: `${y}-${m}-${d} ${time.trim()}`,
})
}
}
})
return result
items.sort((a, b) => a.start.localeCompare(b.start))
for (let i = 0; i < items.length; i++) {
if (i < items.length - 2) {
items[i].stop = items[i + 1].start
} else {
const dt = dayjs.tz(items[i].start).add(1, 'd')
items[i].stop = `${dt.format('YYYY-MM-DD')} 00:00`
}
}
const expectedDate = `${date.format('YYYY-MM-DD')}`
return items
.filter(a => a.start.startsWith(expectedDate) || a.stop.startsWith(expectedDate))
.map(a => {
a.start = dayjs.tz(a.start, tz)
a.stop = dayjs.tz(a.stop, tz)
return a
})
}
function parseCookies(headers) {

View file

@ -11,7 +11,7 @@ dayjs.extend(utc)
jest.mock('axios')
const date = dayjs.utc('2023-12-10').startOf('d')
const date = dayjs.utc('2024-11-26').startOf('d')
const channel = {
lang: 'en',
site_id: '439',
@ -20,12 +20,12 @@ const channel = {
const channelAr = Object.assign({}, channel, { lang: 'ar' })
axios.get.mockImplementation((url, opts) => {
if (url === 'https://rotana.net/en/streams?channel=439&itemId=239849') {
if (url === 'https://rotana.net/en/streams?channel=439&itemId=736970') {
return Promise.resolve({
data: fs.readFileSync(path.resolve(__dirname, '__data__/program_en.html'))
})
}
if (url === 'https://rotana.net/ar/streams?channel=439&itemId=239849') {
if (url === 'https://rotana.net/ar/streams?channel=439&itemId=736970') {
return Promise.resolve({
data: fs.readFileSync(path.resolve(__dirname, '__data__/program_ar.html'))
})
@ -52,34 +52,50 @@ it('can generate valid arabic url', () => {
})
it('can parse english response', async () => {
const result = await parser({
let result = await parser({
channel,
date,
content: fs.readFileSync(path.join(__dirname, '/__data__/content_en.html'))
})
expect(result[0]).toMatchObject({
start: '2023-12-09T21:36:00.000Z',
stop: '2023-12-09T23:46:00.000Z',
title: 'Katkout',
result = result.map(a => {
a.start = a.start.toJSON()
a.stop = a.stop.toJSON()
return a
})
expect(result.length).toBe(12)
expect(result[11]).toMatchObject({
start: '2024-11-26T20:00:00.000Z',
stop: '2024-11-26T22:00:00.000Z',
title: 'Khiyana Mashroua',
description:
'In a comic framework, the events of the film revolve around (Katkoot) Al-Saedi, whose aunt, the eldest of the Al-Saedi family, tries to force him to kill himself in order to ransom his family. A time...',
image: 'https://imgsrv.rotana.net/spider_storage/1398X1000/1690882129.webp?w=450&fit=max'
'Hisham knows that his father has given all his wealth to his elder brother. This leads him to plan to kill his brother to make it look like a defense of honor, which he does by killing his wife along...',
image: 'https://s3.eu-central-1.amazonaws.com/rotana.website/spider_storage/1398X1000/1687084565',
category: 'Movie'
})
})
it('can parse arabic response', async () => {
const result = await parser({
let result = await parser({
channel: channelAr,
date,
content: fs.readFileSync(path.join(__dirname, '/__data__/content_ar.html'))
})
expect(result[0]).toMatchObject({
start: '2023-12-09T21:36:00.000Z',
stop: '2023-12-09T23:46:00.000Z',
title: 'كتكوت',
result = result.map(a => {
a.start = a.start.toJSON()
a.stop = a.stop.toJSON()
return a
})
expect(result.length).toBe(12)
expect(result[11]).toMatchObject({
start: '2024-11-26T20:00:00.000Z',
stop: '2024-11-26T22:00:00.000Z',
title: 'خيانة مشروعة',
description:
'في إطار كوميدي تدور أحداث الفيلم، حول (كتكوت) الصعيدي الذي تحاول عمته كبيرة العائلة الصعيدية إجباره على تقديم نفسه للقتل ليفدي عائلته، ولكنه يهرب وتخطفه جهة أمنية لاكتشاف شبه كبير بينه وبين (يوسف خوري...',
image: 'https://imgsrv.rotana.net/spider_storage/1398X1000/1690882129.webp?w=450&fit=max'
'يعلم هشام البحيري أن والده قد حرمه من الميراث، ووهب كل ثروته لشقيقه اﻷكبر، وهو ما يدفعه لتدبير جريمة قتل شقيقه لتبدو وكأنها دفاع عن الشرف، وذلك حين يقتل هشام زوجته مع شقيقه.',
image: 'https://s3.eu-central-1.amazonaws.com/rotana.website/spider_storage/1398X1000/1687084565',
category: 'فيلم'
})
})

View file

@ -3,11 +3,8 @@
<channel site="rotana.net" lang="ar" xmltv_id="" site_id="432">روتانا أتش دي</channel>
<channel site="rotana.net" lang="ar" xmltv_id="" site_id="433">روتانا سينما فرنسا</channel>
<channel site="rotana.net" lang="ar" xmltv_id="AlResalah.sa" site_id="446">الرساله</channel>
<channel site="rotana.net" lang="ar" xmltv_id="AlResalahInternational.sa" site_id="449">قناة رسالة الدولية</channel>
<channel site="rotana.net" lang="ar" xmltv_id="DahkwaBass.sa" site_id="447">ضحك وبس</channel>
<channel site="rotana.net" lang="ar" xmltv_id="LBC.sa" site_id="434">إل بي سي</channel>
<channel site="rotana.net" lang="ar" xmltv_id="MPlusHD.sa" site_id="445">M+ HD</channel>
<channel site="rotana.net" lang="ar" xmltv_id="Romance.sa" site_id="450">رومانس</channel>
<channel site="rotana.net" lang="ar" xmltv_id="RotanaAflam.sa" site_id="440">روتانا أفلام</channel>
<channel site="rotana.net" lang="ar" xmltv_id="RotanaAmerica.sa" site_id="442">روتانا أمريكا</channel>
<channel site="rotana.net" lang="ar" xmltv_id="RotanaCinemaEgypt.eg" site_id="439">روتانا سينما مصر</channel>
@ -19,5 +16,4 @@
<channel site="rotana.net" lang="ar" xmltv_id="RotanaKhalijia.sa" site_id="435">روتانا خليجية</channel>
<channel site="rotana.net" lang="ar" xmltv_id="RotanaKids.sa" site_id="441">روتانا كيدز</channel>
<channel site="rotana.net" lang="ar" xmltv_id="RotanaMusic.sa" site_id="444">روتانا موسيقي</channel>
<channel site="rotana.net" lang="ar" xmltv_id="SayedatAlshasha.sa" site_id="448">سيدة الشاشة</channel>
</channels>

View file

@ -3,11 +3,8 @@
<channel site="rotana.net" lang="en" xmltv_id="" site_id="432">Rotana HD</channel>
<channel site="rotana.net" lang="en" xmltv_id="" site_id="433">Rotana Cinema France</channel>
<channel site="rotana.net" lang="en" xmltv_id="AlResalah.sa" site_id="446">Al Resalah</channel>
<channel site="rotana.net" lang="en" xmltv_id="AlResalahInternational.sa" site_id="449">Al Resalah International</channel>
<channel site="rotana.net" lang="en" xmltv_id="DahkwaBass.sa" site_id="447">Dahk wa Bass</channel>
<channel site="rotana.net" lang="en" xmltv_id="LBC.sa" site_id="434">LBC</channel>
<channel site="rotana.net" lang="en" xmltv_id="MPlusHD.sa" site_id="445">M+ HD</channel>
<channel site="rotana.net" lang="en" xmltv_id="Romance.sa" site_id="450">Romance</channel>
<channel site="rotana.net" lang="en" xmltv_id="RotanaAflam.sa" site_id="440">Rotana Aflam</channel>
<channel site="rotana.net" lang="en" xmltv_id="RotanaAmerica.sa" site_id="442">Rotana USA</channel>
<channel site="rotana.net" lang="en" xmltv_id="RotanaCinemaEgypt.eg" site_id="439">Rotana Cinema Masr</channel>
@ -19,5 +16,4 @@
<channel site="rotana.net" lang="en" xmltv_id="RotanaKhalijia.sa" site_id="435">Rotana Khalijea HD</channel>
<channel site="rotana.net" lang="en" xmltv_id="RotanaKids.sa" site_id="441">Rotana Kids</channel>
<channel site="rotana.net" lang="en" xmltv_id="RotanaMusic.sa" site_id="444">Rotana Music</channel>
<channel site="rotana.net" lang="en" xmltv_id="SayedatAlshasha.sa" site_id="448">Sayedat Alshasha</channel>
</channels>