§
    WÜÖj{[  ã                   ó:  — d Z ddlZddlZddlZddlZddlZddlZddlZdZe› d�Z	e› d�Z
g d¢ZdZej                             de¦  «         ddlmZ d	Zd
ZddgZ ej         ej        d¬¦  «        ¦  «        ZdgZdZdZdZdZdZdddddddddddd d!d"œZ ej        d#¦  «        Z ej        d$¦  «        Z  ej        d%ej!        ¦  «        Z"d&„ Z#d'„ Z$d(„ Z%d)„ Z&d*„ Z'd+„ Z(d,„ Z)d>d0„Z*d?d1„Z+d2„ Z,d3„ Z-d@d5„Z.d6„ Z/d7„ Z0d8„ Z1d9„ Z2d:„ Z3dAd;„Z4d<„ Z5e6d=k    r e5¦   «          dS dS )Buõ  IG StudioSoft â€” REEL 2x/hari (11:00 & 19:00 WIB) dengan BACKGROUND BERGANTIAN putih/biru.

Perintah Bos 30 Sep 2026 (22:55 WIB): *"untuk IG StudioSoft harus bergantian warna Backgroundnya ..
untuk Reels ini bergantian BG nya . untuk Reels sehari tayang 2 postingan Reels jam 11.00 dan jam 19.00.
Besok jam 11.00 BG : Putih dan jam 19 BG Biru. besoknya jam 11.00 BG Biru dan jam 19. BG Putih ..
begitu terus ( bergantian warna Backgroundnya )"*

Aturan yang diterapkan (anchor DIPERBAIKI 3 Okt 2026 â€” perintah Bos: *"Ini harusnya Background putih.
Ayo pasang 18 bg putih. Coba kamu pelajari Ritmenya"*):
  â€¢ 2 reel/hari: **11:00 WIB** dan **19:00 WIB**.
  â€¢ Urutan warna SATU HARI (satu sumber kebenaran `ss_carousel_lib.warna_ke(tgl, urutan)`), jangan
    dihitung sendiri-sendiri per pipeline:
        urutan 1 = carousel feed 08:30   Â·   urutan 2 = reel 11:00   Â·   urutan 3 = reel 19:00
    Ganjil: carousel BIRU  â†’ 11:00 PUTIH â†’ 19:00 BIRU
    Genap : carousel PUTIH â†’ 11:00 BIRU  â†’ 19:00 PUTIH
    Ritmenya: tiap post yang tayang selalu kebalikan dari post sebelumnya di feed IG SS.
  â€¢ Patokan 2 Okt (reel 11:00 dihitung sebagai "urutan 1", pasangan baru per hari) bikin reel 11:00
    kembar dengan carousel 08:30 â†’ 2-3 Okt dua BIRU berurutan di feed. Itu yang dikoreksi 3 Okt.
  â€¢ Sumber = album carousel Threads StudioSoft yang sudah ada (`ss_opt2_*`, 4 slide, 1080x1350):
      BIRU  = 05, 07, 09, 11, 13, 17, 19   (bg #122B63, teks putih)
      PUTIH = 06, 08, 10, 14, 16, 18, 20   (bg #FFFFFF, teks #122B63)
    TIDAK ada desain baru. Video = slide utuh di tengah **kanvas sewarna slide** (putih / #122B63),
    jadi tepinya menyatu; bukan latar blur seperti pipeline navy lama.
  â€¢ Rotasi: album warna itu yang belum pernah dipakai jadi reel IG SS; kalau 7 album habis â†’ ulang dari awal.
  â€¢ Idempoten per slot (akun + scheduleAt). Story mirror feed ditangani `ss_ig_story_mirror.py` (+10 menit).
  â€¢ Jadwal lama diselaraskan dengan `atur_pola_reel.py` (tukar `scheduleAt` 11:00 â†” 19:00 per hari).

Pakai:
  python3 ss_ig_reel_warna.py --hari 4            # dry-run rencana
  python3 ss_ig_reel_warna.py --hari 4 --go       # rakit video + create jadwal
  python3 ss_ig_reel_warna.py --seri 11 --jam 19 --tgl 2026-10-02 --go   # satu slot manual
é    Nz//home/mantapman/.hermes/profiles/atun/workspacez/openclaw-imgz/musik)zkalem_hangat_24s.wavzceria_ringan_24s.wavzkalem_lembut_24s.wavzceria_cerah_24s.wavzkalem_malam_24s.wavzceria_jalan_24s.wavgš™™™™™é?)Ú
get_clientÚ6a38ac33c5ff4ce3a3231232z4https://mantapserver.tail3947bb.ts.net/openclaw-img/z103.84.155.153z103.84.155.217é   )Úhoursé   zIG StudioSoft Reel Harian)é   é+   éc   )éÿ   r   r   uG   Bagian mana yang paling relevan buat bisnismu? Cerita di komentar! ðŸ‘‡z8#studiosoft #digitalmarketing #seo #bisnissurabaya #umkm)zKecepatan website & konversiÚbiruz=https://studiosoft.id/core-web-vitals-kecepatan-website-2026/zÖkecepatan itu penentu. Loading lambat bikin 53% pengunjung pergi, dan Google memakai kecepatan sebagai sinyal peringkat. Kompres gambar, aktifkan cache, kurangi script berat, lalu cek skornya di PageSpeed Insights.)zRiset keyword pemulaÚputihz_https://studiosoft.id/7-cara-menggunakan-ai-untuk-riset-kata-kunci-yang-lebih-cepat-dan-akurat/z§riset keyword bukan menebak. Lihat apa yang orang ketik, pilih long-tail yang kompetisinya kecil, sesuaikan dengan niat beli, dan tools gratis sudah cukup untuk mulai.)zOn-page vs off-pager   ú@https://studiosoft.id/apa-itu-seo-pengertian-cara-kerja-manfaat/z½on-page itu yang ada di dalam situs (judul, struktur, kecepatan), off-page yang dibangun di luar (backlink, mention, ulasan). Dua-duanya memengaruhi peringkat, jadi jangan pilih salah satu.)zBacklink berkualitasr   r   z{backlink itu rekomendasi digital. Satu rujukan dari situs yang dipercaya lebih berguna daripada sepuluh tautan asal-asalan.)zSEO untuk UMKMr   z(https://studiosoft.id/jasa-seo-sidoarjo/z¡modal kecil bukan halangan. Bersaing di lingkup lokal dulu, tulis sepuluh artikel yang benar-benar dibutuhkan pelanggan, minta ulasan, lalu konsisten tiga bulan.)zSEO lokal Surabayar   zvhttps://studiosoft.id/strategi-seo-lokal-2026-cara-praktis-mendatangkan-lebih-banyak-pelanggan-di-sekitar-bisnis-anda/zÎkata kunci plus nama kota, Google Business Profile yang aktif, ulasan warga sekitar, dan konsistensi nama-alamat-telepon di semua platform itu yang bikin bisnis Anda muncul saat orang mengetik "dekat saya".)zStrategi digital marketing 2026r   zQhttps://studiosoft.id/digital-marketing-surabaya-strategi-jitu-bisnis-naik-kelas/zÁpergeserannya jelas: iklan makin mahal per klik, trust jadi mata uang utama, dan pelanggan benci konten gimmick. Fokuskan ke konten edukatif, data milik sendiri, dan komunitas kecil yang aktif.)z$Manfaat digital marketing untuk UMKMr   z1https://studiosoft.id/digital-marketing-sidoarjo/u–   digital marketing memangkas biaya promosi, membuka pasar lebih luas, dan membuat hasilnya terukur â€” tiga hal yang paling dicari pemilik usaha kecil.)zLanding page bisnis kecilr   r   zmlanding page yang baik fokus pada satu tujuan, memuat cepat di HP, dan menuntun pengunjung ke satu aksi saja.)zPsikologi konversir   z\https://studiosoft.id/7-alasan-landing-page-penting-untuk-tingkatkan-konversi-bisnis-online/z©yang mengubah pengunjung jadi pembeli biasanya sederhana: judul yang bicara ke masalah pembaca, manfaat yang konkret, CTA di beberapa titik, dan bukti sosial yang nyata.)zKonten IG yang dilirikr   ú8https://studiosoft.id/paket-kelola-sosial-media-bulanan/zgkonten yang dilihat orang biasanya menjawab satu pertanyaan spesifik, bukan sekadar menampilkan produk.)zJenis konten sosmedr   r   zšcampur proporsional: 40% edukasi dan tips, 30% proses serta cerita, 20% hiburan ringan, 10% promosi langsung. Satu rasa terus-terusan bikin audiens bosan.)zBudget medsos UMKMr   z/https://studiosoft.id/jasa-google-ads-surabaya/zxbudget media sosial tidak harus besar. Yang penting tahu mana yang mendatangkan pelanggan, bukan mana yang paling ramai.)Ú05Ú06Ú07Ú08Ú09Ú10Ú13Ú14Ú16Ú17Ú18Ú19Ú20z)[\u4e00-\u9fff\u3040-\u30ff\uac00-\ud7af]z@[A-Za-z0-9_.]+z1komentar|pendapat|diskusi|setuju|share|pengalamanc                 óF   — ddl }|                     | |dk    rdnd¦  «        S )uH  Warna BG reel untuk slot `jam` â€” lanjutan urutan warna hari itu (perintah Bos 3 Okt 2026).

    Urutan warna satu hari (sumber kebenaran `ss_carousel_lib.warna_ke`, jangan dihitung ulang):
      urutan 1 = carousel feed 08:30 Â· urutan 2 = reel 11:00 Â· urutan 3 = reel 19:00.
    Jadi reels BUKAN pasangan baru per hari, tapi kelanjutan warna carousel:
      3 Okt (ganjil): carousel BIRU â†’ 11:00 PUTIH â†’ 19:00 BIRU
      4 Okt (genap) : carousel PUTIH â†’ 11:00 BIRU â†’ 19:00 PUTIH
    Ritmenya: tiap post yang tayang selalu kebalikan dari post sebelumnya di feed IG SS.
    r   Né   é   é   )Úss_carousel_libÚwarna_ke)ÚtglÚjamÚLs      úC/home/mantapman/.hermes/profiles/atun/workspace/ss_ig_reel_warna.pyÚ
warna_harir'   Š   s0   € ð  ÐÐÐØ�:Š:�c  r¢	 	˜1˜1¨qÑ1Ô1Ð1ó    c                 ó   — d| › �S )NÚss_opt2_© ©ÚnumÚwarnas     r&   Ú
seri_albumr/   ˜   s   € Ø�cÐÐÐr(   c                 ó"   — t           › d|› d| › d�S )Nz	/ss_reel_Ú_z.mp4)ÚIMGr,   s     r&   Ú
video_pathr3   œ   s!   € ÝÐ-Ð-˜EÐ-Ð- CÐ-Ð-Ð-Ð-r(   c                 ól   — t           t          j                             t	          | |¦  «        ¦  «        z   S )N)ÚBASEÚosÚpathÚbasenamer3   r,   s     r&   Ú	video_urlr9       s'   € Ý•"”'×"Ò"¥:¨c°5Ñ#9Ô#9Ñ:Ô:Ñ:Ð:r(   c                 óÌ   — g }t          t          j        t          ¦  «        ¦  «        D ]:}t	          j        d| › d�|¦  «        r|                     t          › d|› �¦  «         Œ;|S )Nr*   z_\d\d\.jpg$ú/)Úsortedr6   Úlistdirr2   ÚreÚmatchÚappend)r-   ÚoutÚfs      r&   Úslide_filesrC   ¤   sh   € Ø
€CÝ•B”J�s‘O”OÑ$Ô$ð %ð %ˆÝŒ8Ð0 Ð0Ð0Ð0°!Ñ4Ô4ð 	%Ø�JŠJ�#�|�| �|�|Ñ$Ô$Ð$øØ€Jr(   c                 óÆ   — t          | ¦  «        |dk    rdndz   dz  t          t          ¦  «        z  }t          j                             t          t          |         ¦  «        S )uæ   Bed musik bergiliran per album/warna â€” biar tidak monoton antar reel.

    Rumus sengaja campur kalem & ceria (indeks BED bergantian), bukan satu rasa terus:
    reel edukasi lebih enak dengan kalem, reel tips dengan ceria.
    r   r   r    )ÚintÚlenÚBEDr6   r7   ÚjoinÚMUSIK)r-   r.   Úis      r&   Ú	bed_untukrK   ¬   sJ   € õ ˆc‰(Œ(˜5 Fš?˜?�a�a°Ñ
2°qÑ	8½CÅ¹H¼HÑD€AÝŒ7�<Š<��s 1œvÑ&Ô&Ð&r(   c                 óà   — t          j        ddd| dddddg	d	d	¬
¦  «        }t          j        d|j        ¦  «        }t          |¦  «        o%t          |                     d¦  «        ¦  «        dk    S )z?True kalau audio di dalam video tidak senyap (puncak > -50 dB).Úffmpegz-hide_bannerú-iz-afÚvolumedetectú-fÚnullú-T©Úcapture_outputÚtextzmax_volume: (-?[\d.]+) dBr   iÎÿÿÿ)Ú
subprocessÚrunr>   ÚsearchÚstderrÚboolÚfloatÚgroup)r7   ÚpÚms      r&   Úaudio_terisir_   ¶   st   € åŒ˜ .°$¸¸eÀ^Ø˜f cð+Ø;?Àdð	Lñ 	Lô 	L€Aå
Œ	Ð.°´Ñ9Ô9€AÝ�‰7Œ7Ð.•u˜QŸWšW Q™ZœZÑ(Ô(¨3Ò.Ð.r(   ç      @çffffffÖ?Fc                 óÞ  — d\  }}|t           k    rdnd|z  }	t          | ¦  «        }
||
z  }g d¢}| D ]}|dddt          |¦  «        d|gz  }Œg g }}t          |
¦  «        D ]h}d	||z
  › d
|› d|	› �}|dk    s|rd|› d|	› d�|z   }|                     d|› d|› d|› d|› d|	› d|› d|› d�¦  «         |                     d|› d�¦  «         Œid                     |¦  «        dz   d                     |¦  «        z   d|
› d�z   }|r8|ddd|gz  }|d|
› dt          › dt          d |d!z
  ¦  «        d"›d#|d"›d$�	z  }d%}d&}n|d'd(dt          |¦  «        dd)gz  }|
› d*�}d+}|d,|d-d.d-|d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?|d@dAdBdCdD|gz  }t          dEt          j
                             |¦  «        › dF|
› dG|› dH|	› dI|rt          j
                             |¦  «        ndJ› dK�¦  «         t          j        |dL¬M¦  «         |S )Nu†  Rakit 1080x1920 dari slide 4:5 di atas kanvas sewarna slide + bed musik.

    `fade_awal=False` (default, perintah Bos 1 Okt 2026): slide PERTAMA tampil utuh sejak
    frame 0 â€” tidak ada transisi fade di awal video. Slide berikutnya tetap pakai fade.
    `musik` = path WAV bed; dibakar ke MP4 (looping, fade in/out) karena IG hanya memutar
    audio yang ada di dalam berkas video.
    )i8  i€  Úwhitez0x%02X%02X%02X)rM   z-yz-vÚerrorz-loopÚ1z-trN   zfade=t=out:st=z:d=z:color=r   zfade=t=in:st=0:d=ú,ú[z	:v]scale=z:-2,pad=ú:z:0:(oh-ih)/2:color=z,setsar=1[vú]z[vú;Ú z	concat=n=z:v=1:a=0[vout]z-stream_loopz-1z;[z
:a]volume=z&,afade=t=in:st=0:d=0.8,afade=t=out:st=gš™™™™™¹?gš™™™™™ù?ú.2fz:d=1.6,atrim=0:z,asetpts=N/SR/TB[aud]z[aud]Ú192krP   Úlavfizanullsrc=r=44100:cl=stereoz:aÚ128kz-filter_complexz-mapz[vout]z-c:vÚlibx264z-presetÚmediumz-crfÚ22z-pix_fmtÚyuv420pz
-profile:vÚhighz-levelz4.0z-rÚ30z-c:aÚaacz-b:az-arÚ44100z	-shortestz	-movflagsz
+faststartz
    rakit ú (z	 slide x z dtk, kanvas z, musik rR   ú)T)Úcheck)ÚPUTIHrF   ÚstrÚranger@   rH   Ú	VOL_MUSIKÚmaxÚprintr6   r7   r8   rV   rW   )ÚfilesrA   ÚbgÚdurÚfadeÚ	fade_awalÚmusikÚWÚHÚcolÚnÚtotalÚcmdrB   ÚpartsÚlabelsrJ   ÚefekÚfcÚpeta_aÚbits                        r&   Úbuildr“   ¾   sR  € ð �D€A€qØ�5’[�[ˆ'ˆ'Ð&6¸Ñ&;€CÝˆE‰
Œ
€AØ�!‰G€EØ
)Ð
)Ð
)€CØð 7ð 7ˆØ�˜˜d¥C¨¡H¤H¨d°AÐ6Ñ6ˆˆØ˜ˆ6€EÝ�1‰XŒXð !ð !ˆØA  d¡
ÐAÐA¨tÐAÐA¸CÐAÐAˆØˆqŠ5ˆ5�Iˆ5Ø: tÐ:Ð:°CÐ:Ð:Ð:¸TÑAˆDØ�Šð%�ð %ð %˜Að %ð % qð %ð %¨1ð %ð %Àð %ð %Øð%ð %Ø !ð%ð %ð %ñ	
ô 	
ð 	
ð 	�Š�i˜1�i�i�iÑ Ô Ð Ð Ø	�Š�%‰Œ˜3Ñ	 §¢¨¡¤Ñ	0Ð3P¸qÐ3PÐ3PÐ3PÑ	P€BØð 
Ø�  d¨EÐ2Ñ2ˆØ
ð ;�Að ;ð ;¥ð ;ð ;Ý!$ S¨%°#©+Ñ!6Ô!6ÐCð;ð ;àÐ:ð;ð ;ð ;ñ 	<ˆð ˆØˆˆà��g˜t¥S¨¡Z¤Z°Ð7SÐTÑTˆØ���ˆØˆØØ˜2˜v x°¸Ø�	˜9 h°¸Ø�I˜|¨V°X¸uØˆd�F˜E 6¨3°°wÀØ�\ 3ðñ €Cõ 
ð @•r”w×'Ò'¨Ñ,Ô,ð @ð @°ð @ð @¸Cð @ð @Ècð @ð @Ø.3Ð<•2”7×#Ò# EÑ*Ô*Ð*¸ð@ð @ð @ñ Aô Að Aå„N�3˜dÐ#Ñ#Ô#Ð#Ø€Jr(   c           	      óâ  — t          | |¦  «        }t          j                             |¦  «        rft          j                             |¦  «        dk    rC|sAt          |¦  «        r|S t          dt          j                             |¦  «        › d�¦  «         t          | ¦  «        }|st          d| › d�¦  «         dS |dk    rt          nt          }t          |||t          | |¦  «        ¬¦  «        S )	zERakit reel satu album. Video lama tanpa musik otomatis dirakit ulang.i † u       â†» u%    masih senyap â€” rakit ulang + musiku       âš ï¸� ss_opt2_u   : file slide tidak ada â€” SKIPNr   )r†   )r3   r6   r7   ÚexistsÚgetsizer_   r€   r8   rC   r{   ÚBIRUr“   rK   )r-   r.   ÚforcerA   r�   r‚   s         r&   Úrakitr™   ð   sì   € å
�S˜%Ñ
 Ô
 €CÝ	„w‡~‚~�cÑÔð W�rœwŸš¨sÑ3Ô3°gÒ=Ð=ÀeÐ=Ý˜ÑÔð 	ØˆJÝÐU�œ×)Ò)¨#Ñ.Ô.ÐUÐUÐUÑVÔVÐVÝ˜ÑÔ€EØð ÝÐH CÐHÐHÐHÑIÔIÐIØˆtØ˜7Ò"Ð"�ˆ­€BÝ�˜˜R¥y°°eÑ'<Ô'<Ð=Ñ=Ô=Ð=r(   c                 óæ  — t           |          \  }}}}|                     ¦   «         d         }|                     ¦   «         r|n$|d                              ¦   «         |dd …         z   }d|› d�|› d�d|› d�d|› d	�d
|› d�g}g d¢}g d¢}	t	          | ¦  «        }
||
t          |¦  «        z           › d|› d||
t          |¦  «        z           › d|› d|	|
t          |	¦  «        z           › dt          › �S )Nr   r   zKlien sering tanya soal z. Ini ringkasnya.z2: tiga hal yang paling sering menentukan hasilnya.zKalau z% masih terasa kabur, mulai dari sini.zKami tulis ulang z jadi versi pendek.z6Pertanyaan yang muncul hampir tiap kali kami membahas ú.)z€Yang perlu diingat: kerjakan bagian yang paling dekat dengan pelanggan lebih dulu, ukur hasilnya, baru lanjut ke hal berikutnya.zoUrutannya berpengaruh. Mulai dari yang paling dekat dengan pembeli, ukur, lalu jaga konsistensinya tiap minggu.zgTidak perlu dikerjakan sekaligus. Satu langkah rapi lebih berguna daripada lima langkah setengah jalan.zGDasarnya sederhana: perbaiki yang sudah dikunjungi orang, ukur, ulangi.zXYang membedakan hasil biasanya bukan alatnya, tapi apakah pekerjaannya dijalankan rutin.)zBBagian mana yang paling relevan buat bisnismu? Cerita di komentar.zEKalau ada bagian yang ingin dibahas lebih panjang, tulis di komentar.z1Yang mana sudah kamu kerjakan? Tulis di komentar.z0Ada pertanyaan soal ini? Tanya saja di komentar.zBBagian yang mana yang paling susah dijalankan? Cerita di komentar.z

z(

Versi lengkapnya ada di artikel kami: )ÚALBUMÚsplitÚisupperÚlowerrE   rF   ÚHASHTAG)r-   Újudulr.   ÚlinkÚjabaranÚkata1ÚjlÚPEMBUKAÚLANJUTANÚPENUTUPrJ   s              r&   Úcaptionr©   ÿ   s^  € Ý"'¨¤*Ñ€Eˆ5�$˜ð �KŠK‰MŒM˜!Ô€EØ—-’-‘/”/Ð	Cˆˆ u¨Q¤x§~¢~Ñ'7Ô'7¸%ÀÀÀ¼)Ñ'C€Bð 	9 2Ð8Ð8Ð8ØÐDÐDÐDØ:�Ð:Ð:Ð:Ø3˜BÐ3Ð3Ð3ØFÀÐFÐFÐFð€Gðð ð €Hðð ð €Gõ 	ˆC‰Œ€Aà�1•s˜7‘|”|Ñ#Ô$ð 	4ð 	4Øð	4ð 	4à�A�˜H™œÑ%Ô&ð	4ð 	4ð 26ð	4ð 	4ð �1•s˜7‘|”|Ñ#Ô$ð		4ð 	4õ +2ð		4ð 	4ðr(   c                 ó€   — t          j        ddddddddd	d
| gdd¬¦  «        }|j                             ¦   «         dk    S )NÚcurlz-4ú-sú-oú	/dev/nullú-wú%{http_code}ú
--max-timeru   z-LTrS   Ú200)rV   rW   ÚstdoutÚstrip)Úur]   s     r&   Ú
link_hidupr¶   &  sT   € ÝŒ˜  d¨D°+¸tÀ^Ø$ d¨D°!ð5ØEIÐPTð	Vñ 	Vô 	V€AàŒ8�>Š>ÑÔ˜uÒ$Ð$r(   Tc                 ó   — g }t          | ¦  «        dk    r&|                     dt          | ¦  «        › d�¦  «         d| vr|                     d¦  «         t                               | ¦  «        s|                     d¦  «         t                               | ¦  «        r|                     d¦  «         t
                               | ¦  «        }|r+|                     d|                     d	¦  «        › �¦  «         |rRt          j        d
| ¦  «        D ]<}t          | 
                    d¦  «        ¦  «        s|                     d|› �¦  «         Œ=|S )Ni˜  zcaption z char (> 2200)zstudiosoft.idztanpa link studiosoft.idztanpa ajakan komentarzmengandung teks CJKzmention internal r   zhttps?://studiosoft\.id[^\s)]*z.,zlink mati: )rF   r@   ÚRE_CTArX   ÚRE_CJKÚ
RE_MENTIONr\   r>   Úfindallr¶   Úrstrip)ÚcapÚcek_linkÚmasalahr^   rµ   s        r&   ÚvalidrÀ   ,  sE  € Ø€GÝ
ˆ3�x„x�$‚€Ø�ŠÐ:¥# c¡(¤(Ð:Ð:Ð:Ñ;Ô;Ð;Ø˜cÐ!Ð!Ø�ŠÐ1Ñ2Ô2Ð2Ý�=Š=˜ÑÔð 0Ø�ŠÐ.Ñ/Ô/Ð/Ý‡}‚}�SÑÔð .Ø�ŠÐ,Ñ-Ô-Ð-Ý×Ò˜#ÑÔ€AØð 9Ø�ŠÐ7¨1¯7ª7°1©:¬:Ð7Ð7Ñ8Ô8Ð8Øð 2Ý”Ð=¸sÑCÔCð 	2ð 	2ˆAÝ˜aŸhšh t™nœnÑ-Ô-ð 2Ø—’Ð0¨QÐ0Ð0Ñ1Ô1Ð1øØ€Nr(   c                 óÆ   — t          j         | j        | j        | j        |t          ¬¦  «                             t           j        j        ¦  «                             d¦  «        S )N)Útzinfoz%Y-%m-%dT%H:%M:%S.000Z)	ÚdatetimeÚyearÚmonthÚdayÚWIBÚ
astimezoneÚtimezoneÚutcÚstrftime)r#   r$   s     r&   Úiso_utcrÌ   @  sG   € ÝÔ˜cœh¨¬	°3´7¸CÍÐLÑLÔLßŠZ�Ô)Ô-Ñ.Ô.¯xªxÐ8PÑ/QÔ/QðSr(   c                 óf  — g d}}|dk    r¦d }t          d¦  «        D ]E}	 |                      |d¬¦  «        } n*# t          $ r t          j        dd|z  z   ¦  «         Y ŒBw xY w|€t          d¦  «        ‚|                     d	¦  «        pg }|sn$||z  }t          |¦  «        dk     rn|dz  }|dk    °¦|S )
Nr   éÈ   é   éd   )ÚpageÚlimité   é   zgagal membaca jadwal ReplizÚdocs)r}   Úget_schedulesÚ	ExceptionÚtimeÚsleepÚ
SystemExitÚgetrF   )ÚcrÕ   rÑ   ÚrÚaÚbs         r&   Úsemua_jadwalrà   E  sï   € Ø�Qˆ$€DØ
�#Š+ˆ+ØˆÝ�q‘”ð 	&ð 	&ˆAð&Ø—O’O¨°S�OÑ9Ô9�Ø�øÝð &ð &ð &Ý”
˜1˜q 1™u™9Ñ%Ô%Ð%Ð%Ð%ð&øøøàˆ9ÝÐ:Ñ;Ô;Ð;Ø�EŠE�&‰MŒMÐ˜RˆØð 	ØØ�‰	ˆÝˆq‰6Œ6�CŠ<ˆ<ØØ�‰	ˆð! �#Š+ˆ+ð" €Ks   Ÿ8¸$AÁAc                 óÔ   — d}t           D ]]}t          j        dddddddd	d
d|› �| gdd¬¦  «        }|j                             ¦   «         }t          d|› d|› �¦  «         |o|dk    }Œ^|S )NTr«   r¬   r­   r®   r¯   r°   r±   ru   z	--resolvez#mantapserver.tail3947bb.ts.net:443:rS   ú      ú: r²   )ÚINGRESSrV   rW   r³   r´   r€   )rµ   ÚokÚipr]   Úkodes        r&   Úcek_url_ingressrè   [  s¡   € Ø	€BÝð "ð "ˆÝŒN˜F D¨$°¸TÀ>ÐS_ÐaeØ'Ð)SÈrÐ)SÐ)SÐUVðXà*.°Tð;ñ ;ô ;ˆð Œx�~Š~ÑÔˆÝÐ#�rÐ#Ð#˜TÐ#Ð#Ñ$Ô$Ð$ØÐ!�D˜E’MˆˆØ€Ir(   c                 ó  — |sdS d}t          dd¦  «        D ]È}	 |                      t          ||d|› d|› �t          d|g ddi¬	¦	  «	        }	|	                     d
¦  «        p)|	                     d¦  «        p|	                     d¦  «        } nU# t
          $ rH}
t          d|› dt          |
¦  «        dd…         › �¦  «         t          j	        d¦  «         Y d}
~
ŒÁd}
~
ww xY w|st          d¦  «         dS |  
                    |¦  «        }|                     d¦  «        p|}t          |t          ¦  «        rd|v r|d         d         }|                     d¦  «        dk    o|                     d¦  «        dk    }t          d|rdnd› d|› d|                     d¦  «        › d|                     d¦  «        › d |                     d!¦  «        pi gd                              d"d#¦  «                             d$¦  «        d%         › �
¦  «         |S )&z#Create + verifikasi satu slot reel.TNr   é   zReel IG SS z	 ss_opt2_ÚvideoÚisShareToFeed)ÚtitleÚtopicÚtype_ÚmediasÚrepliesÚadditional_infoÚ
scheduleIdÚ_idÚidu         âš ï¸� percobaan rã   éx   é   u         â�Œ create gagalFÚdatarÕ   r   ÚstatusÚpendingÚtyperâ   u   âœ…u   âš ï¸�z id=z status=z at=Ú
scheduleAtz media=rð   Úurlrk   r;   éÿÿÿÿ)r}   Úcreate_scheduleÚIG_SSÚTOPIKrÛ   r×   r€   r|   rØ   rÙ   Úget_scheduleÚ
isinstanceÚdictr�   )rÜ   r-   r.   Úatr½   ÚmediaÚgoÚsidÚattemptÚresÚeÚdrå   s                r&   Úpakair  g  se  € àð ØˆtØ
€CÝ˜˜A‘;”;ð 
ð 
ˆð		Ø×#Ò#¥E¨3°Ø*M¸Ð*MÐ*MÈÐ*MÐ*MÝ*/°wÀuÐVXØ5DÀdÐ4Kð $ñ Mô MˆCð —'’'˜,Ñ'Ô'ÐJ¨3¯7ª7°5©>¬>ÐJ¸S¿WºWÀT¹]¼]ˆCØˆEøÝð 	ð 	ð 	ÝÐE¨GÐEÐEµs¸1±v´v¸d¸s¸d´|ÐEÐEÑFÔFÐFÝŒJ�q‰MŒMˆMˆMˆMˆMˆMˆMøøøøð	øøøð ð ÝÐ&Ñ'Ô'Ð'ØˆuØ	�Š�sÑÔ€AØ	�Šˆf‰ŒÐ˜€AÝ�!•TÑÔð ˜v¨˜{˜{ØˆfŒI�aŒLˆØ	
�Šˆx‰Œ˜IÒ	%Ð	B¨!¯%ª%°©-¬-¸7Ò*B€BÝ	ð P˜BÐ,�5�5 Hð Pð P°#ð Pð P¸q¿uºuÀX¹¼ð Pð PÐTU×TYÒTYÐZfÑTgÔTgð Pð PØ—E’E˜(‘O”OÐ+¨ t¨QÔ/×3Ò3°E¸2Ñ>Ô>×DÒDÀSÑIÔIÈ"ÔMðPð Pñ Qô Qð Qà€Is   šA/BÂ
CÂ>CÃCc                 ó¬  — t          ¦   «         t          ¦   «         dœt          ¦   «         }}| D �]"}|                     d¦  «        t          k    rŒ"t          |                     d¦  «        ¦  «                             ¦   «         dk    r(|                     |                     d¦  «        ¦  «         |                     d¦  «        pg D ]ˆ}t          j        d|                     d¦  «        pd	                     d
¦  «        d         ¦  «        }|rA|| 	                    d¦  «                                      | 	                    d¦  «        ¦  «         Œ‰�Œ$||fS )N©r   r   Ú	accountIdrû   Ústoryrü   rð   z!ss_reel_(biru|putih)_(\d\d)\.mp4$rý   rk   r;   rþ   r   r    )
ÚsetrÛ   r   r|   rŸ   Úaddr>   r?   r�   r\   )rÕ   ÚterpakaiÚadar  r^   Úmms         r&   Úalbum_terpakair  „  s+  € Ý ™UœU­S©U¬UÐ3Ð3µS±U´Uˆc€HØð 7ñ 7ˆØ�5Š5�ÑÔ¥Ò&Ð&ØÝˆq�uŠu�V‰}Œ}ÑÔ×#Ò#Ñ%Ô%¨Ò0Ð0Ø�GŠG�A—E’E˜,Ñ'Ô'Ñ(Ô(Ð(Ø—%’%˜‘/”/Ð' Rð 	7ð 	7ˆAÝ”Ð>ÀÇÂÀuÁÄÐASÐQS×@ZÒ@ZÐ[^Ñ@_Ô@_Ð`bÔ@cÑdÔdˆBØð 7Ø˜Ÿš !™œÔ%×)Ò)¨"¯(ª(°1©+¬+Ñ6Ô6Ð6øñ	7ð �Sˆ=Ðr(   c                 óæ  ‡‡— t           j                              t          ¦  «                             ¦   «         }t           j                              t           j        j        ¦  «        }t          | ¦  «        }t          |¦  «        \  Š}d„ dD ¦   «         Šˆˆfd„‰D ¦   «         }	t          dt          ‰d         ¦  «        pd› dt          ‰d         ¦  «        pd› d	|› d
�¦  «         g }
t          |¦  «        D ]ù}|t          j        |¬¦  «        z   }t          D ]×}t          ||¦  «        }t           j                              |                     dd¦  «        ¦  «        |k    rŒJ||v rt          d|› d|d›d�¦  «         Œft!          ||¦  «        }|	|         r|	|                              d¦  «        n#‰|         |t%          ‰|         ¦  «        z           }|
                     |||||f¦  «         ŒØŒú|
st          d¦  «         d S d}|
D �]Á\  }}}}}t          d|› d|d›d|                     ¦   «         › d|› dt*          |         d         › d�¦  «         t-          |¦  «        }t/          ||¬¦  «        }|r|D ]}t          d|¦  «         Œ|dz  }Œ‰|sCt          dt%          |¦  «        › d|                     ¦   «         d         d d…         › �¦  «         ŒÎt3          |||¬¦  «        }|s|dz  }Œèt          d t4          j                             |¦  «        › dt4          j                             |¦  «        d!z  d"›d#�¦  «         t=          ||¦  «        }t?          |¦  «        st          d$¦  «         |dz  }�Œq|d%t4          j                             tA          ||¦  «        ¦  «        d&œg}tC          | ||||||¦  «        }||rdndz  }�ŒÃt          d't%          |
¦  «        |z
  › d(|› d)�¦  «         d S )*Nc                 óR   ‡— i | ]#Š‰t          ˆfd „t          D ¦   «         ¦  «        “Œ$S )c              3   óJ   •K  — | ]}t           |         d          ‰k    ¯|V — ŒdS )r   N)rœ   )Ú.0rŠ   Úws     €r&   ú	<genexpr>z"roll.<locals>.<dictcomp>.<genexpr>—  s5   øè è € Ð;Ð;˜A­%°¬(°1¬+¸Ò*:Ð*:�aÐ*:Ð*:Ð*:Ð*:Ð;Ð;r(   )r<   rœ   )r  r  s    @r&   ú
<dictcomp>zroll.<locals>.<dictcomp>—  s8   ø€ ÐWÐWÐWÀˆA�vÐ;Ð;Ð;Ð;¥Ð;Ñ;Ô;Ñ;Ô;ÐWÐWÐWr(   r  c                 óN   •‡— i | ] Š‰ˆˆfd „‰‰         D ¦   «         p‰‰         “Œ!S )c                 ó(   •— g | ]}|‰‰         v¯|‘ŒS r+   r+   )r  rŠ   r  r  s     €€r&   ú
<listcomp>z#roll.<locals>.<dictcomp>.<listcomp>˜  s'   ø€ Ð<Ð<Ð<�q q°¸´Ð';Ð';�Ð';Ð';Ð';r(   r+   )r  r  r  Úuruts    @€€r&   r  zroll.<locals>.<dictcomp>˜  sA   øø€ ÐVÐVÐVÈAˆQÐ<Ð<Ð<Ð<Ð<˜D œGÐ<Ñ<Ô<ÐGÀÀQÄÐVÐVÐVr(   z&roll reel IG SS | sudah dipakai: biru=r   rR   z putih=r   z | horizon z hari)ÚdaysÚZz+00:00u
     â�­ï¸�  ú Ú02du   :00 WIB â€” sudah ada, SKIPr   z'  semua slot dalam horizon sudah terisiu   
â”€â”€ ú:00 WIB | BG ú | ss_opt2_rx   u   ) â”€â”€©r¾   u     â�—r   z  (dry-run) caption z char | éF   ©r˜   u       âœ… g    €„.Arl   z MB)u<       â�— media tidak 200 di kedua ingress â€” lewati slot inirë   ©rý   rû   Úaltz

selesai: z slot dibuat, z janggal)"rÃ   ÚnowrÇ   ÚdaterÉ   rÊ   rà   r  r€   r<   r}   Ú	timedeltaÚSLOTrÌ   ÚfromisoformatÚreplacer'   ÚpoprF   r@   Úupperrœ   r©   rÀ   Ú
splitlinesr™   r6   r7   r8   r–   r9   rè   r3   r  )rÜ   Úharir  Úforce_videor¾   Úhari_iniÚsekarangrÕ   r  ÚantreÚrencanaÚofsr#   r$   r  r  r-   Úgagalr½   r¿   r^   rA   rµ   r  rå   r  r"  s                            @@r&   Úrollr?  ’  s  øø€ ÝÔ ×$Ò$¥SÑ)Ô)×.Ò.Ñ0Ô0€HÝÔ ×$Ò$¥XÔ%6Ô%:Ñ;Ô;€HÝ˜‰?Œ?€DÝ" 4Ñ(Ô(�M€HˆcØWÐWÐEVÐWÑWÔW€DØVÐVÐVÐVÐVÐQUÐVÑVÔV€EÝ	ð Lµ6¸(À6Ô:JÑ3KÔ3KÐ3RÈsð Lð LÝ˜( 7Ô+Ñ,Ô,Ð3°ðLð LØ@DðLð Lð Lñ Mô Mð Mð €GÝ�T‰{Œ{ð 3ð 3ˆØ�Ô+°Ð5Ñ5Ô5Ñ5ˆÝð 		3ð 		3ˆCÝ˜˜cÑ"Ô"ˆBÝÔ ×.Ò.¨r¯zªz¸#¸xÑ/HÔ/HÑIÔIÈXÒUÐUØØ�SˆyˆyÝÐM 3ÐMÐM¨ÐMÐMÐMÐMÑNÔNÐNØÝ˜3 Ñ$Ô$ˆAØ%*¨1¤XÐN�%˜”(—,’,˜q‘/”/�/°4¸´7¸3ÅÀTÈ!ÄWÁÄÑ;MÔ3NˆCØ�NŠN˜B  S¨!¨SÐ1Ñ2Ô2Ð2Ð2ð		3ð ð ÝÐ7Ñ8Ô8Ð8Øˆà€EØ 'ð  ñ  ÑˆˆC��a˜ÝÐj˜#ÐjÐj ÐjÐjÐj°a·g²g±i´iÐjÐjÈCÐjÐjÕSXÐY\ÔS]Ð^_ÔS`ÐjÐjÐjÑkÔkÐkÝ�c‰lŒlˆÝ˜ hÐ/Ñ/Ô/ˆØð 	Øð "ð "�Ý�g˜qÑ!Ô!Ð!Ð!Ø�Q‰JˆEØØð 	ÝÐU­¨S©¬ÐUÐU¸3¿>º>Ñ;KÔ;KÈAÔ;NÈsÐPRÈsÔ;SÐUÐUÑVÔVÐVØÝ�C˜ +Ð.Ñ.Ô.ˆØð 	Ø�Q‰JˆEØÝÐV�œ×)Ò)¨#Ñ.Ô.ÐVÐVµ"´'·/²/À#Ñ2FÔ2FÈÑ2LÐVÐVÐVÐVÑWÔWÐWÝ�c˜1ÑÔˆÝ˜qÑ!Ô!ð 	ÝÐPÑQÔQÐQØ�Q‰JˆEÙØ GµB´G×4DÒ4DÅZÐPSÐUVÑEWÔEWÑ4XÔ4XÐYÐYÐZˆÝ�1�c˜1˜b # u¨bÑ1Ô1ˆØ�b���˜aÑˆ‰å	Ð
K�˜G™œ uÑ,Ð
KÐ
K¸EÐ
KÐ
KÐ
KÑLÔLÐLÐLÐLr(   c                  ó  — t          j        ¦   «         } |                      dt          dd¬¦  «         |                      dd d¬¦  «         |                      dd d	¬¦  «         |                      d
t          d¬¦  «         |                      dd¬¦  «         |                      dd¬¦  «         |                      dd¬¦  «         |                      ¦   «         }|j        r7t          t          ¦   «         |j        |j        |j	        |j
         ¬¦  «         d S |j        st          d¦  «        ‚t          |j        ¦  «        dk    r|j                             d¦  «        n-|j                             dd¦  «                             d¦  «        }|t           vr't          d|› dt#          t           ¦  «        › �¦  «        ‚|j        r$t&          j                             |j        ¦  «        n5t&          j                             t.          ¦  «                             ¦   «         }|j        t2          v rt5          ||j        ¦  «        nt           |         d         }t7          ||j        ¦  «        }t9          d|› d|j        d›d|                     ¦   «         › d|› dt           |         d         › d �¦  «         t=          |¦  «        }t9          d!t          |¦  «        › d"|› d#�¦  «         t?          ||j
         ¬$¦  «        }|D ]}t9          d%|¦  «         Œ|rt9          d&¦  «         d S |j        st9          d'¦  «         d S t          ¦   «         }	tA          |	¦  «        }
d(„ |
D ¦   «         }||v rt9          d)|› d*�¦  «         d S tC          |||j	        ¬+¦  «        }|sd S tE          ||¦  «        }tG          |¦  «        st          d,¦  «        ‚|d-tH          j%         &                    tO          ||¦  «        ¦  «        d.œg}tQ          |	|||||d/¦  «         d S )0Nz--harir   z#roll horizon N hari (11:00 & 19:00))rû   ÚdefaultÚhelpz--seriz+nomor album (05..20) untuk satu slot manual)rA  rB  z--tglz
YYYY-MM-DDz--jamr   )rû   rA  z--force-videoÚ
store_true)Úactionz--skip-link-checkz--go)r8  r¾   z4pakai --hari N (roll) atau --seri NN [--tgl] [--jam]r    r*   rk   zalbum z tidak ada; pilihan: r   zreel IG SS | r%  r&  r'  r(  rx   ry   u   
â”€â”€ caption (u    char) â”€â”€
ú
r)  u   â�—z
BATAL: benahi dulu.u   (dry-run â€” pakai --go)c                 óä   — h | ]m}|                      d ¦  «        t          k    ¯ t          |                      d¦  «        ¦  «                             ¦   «         dk    ¯X|                      d¦  «        ’ŒnS )r  rû   r  rü   )rÛ   r   r|   rŸ   )r  r  s     r&   ú	<setcomp>zmain.<locals>.<setcomp>ò  so   € ð Uð Uð U 1Ø�eŠe�KÑ Ô ¥EÒ)Ð)­c°!·%²%¸±-´-Ñ.@Ô.@×.FÒ.FÑ.HÔ.HÈGÒ.SÐ.Sð �5Š5�ÑÔØ.SÐ.SÐ.Sr(   u   
â�­ï¸�  slot u    sudah terisi â€” SKIPr+  u   media tidak 200 â€” STOPrë   r,  T))ÚargparseÚArgumentParserÚadd_argumentrE   Ú
parse_argsr7  r?  r   r  r8  Úskip_link_checkÚserirÚ   rF   Úzfillr3  rœ   r<   r#   rÃ   r/  r2  r.  rÇ   r$   r1  r'   rÌ   r€   r5  r©   rÀ   rà   r™   r9   rè   r6   r7   r8   r3   r  )ÚaprÞ   r-   r#   r  r  r½   r¿   r^   rÜ   rÕ   r  rA   rµ   r  s                  r&   ÚmainrP  Ì  s  € Ý	Ô	 Ñ	"Ô	"€BØ‡O‚O�H¥3°Ð8]€OÑ^Ô^Ð^Ø‡O‚O�H dÐ1^€OÑ_Ô_Ð_Ø‡O‚O�G T°€OÑ=Ô=Ð=Ø‡O‚O�G¥#¨r€OÑ2Ô2Ð2Ø‡O‚O�O¨L€OÑ9Ô9Ð9Ø‡O‚OÐ'°€OÑ=Ô=Ð=Ø‡O‚O�F <€OÑ0Ô0Ð0Ø
�Š‰Œ€Aà„vð Ý�Z‰\Œ\˜1œ6 1¤4°Q´]ØÔ+Ð+ð	-ñ 	-ô 	-ð 	-àˆàŒ6ð QÝÐOÑPÔPÐPÝ  ¤™[œ[¨AÒ-Ð-ˆ!Œ&�,Š,�q‰/Œ/ˆ/°1´6·>²>À*ÈbÑ3QÔ3Q×3WÒ3WÐXYÑ3ZÔ3Z€CØ
•%ÐÐÝÐK #ÐKÐK½FÅ5¹M¼MÐKÐKÑLÔLÐLØ01´Ð
\�(Œ-×
%Ò
% a¤eÑ
,Ô
,Ð
,½8Ô;L×;PÒ;PÕQTÑ;UÔ;U×;ZÒ;ZÑ;\Ô;\€CØ"#¤%­4 - -�
�3˜œÑÔÐµU¸3´ZÀ´]€AÝ	��a”eÑ	Ô	€BÝ	Ð
e˜#Ð
eÐ
e ¤Ð
eÐ
eÐ
e¸¿º¹	¼	Ð
eÐ
eÈcÐ
eÐ
eÕUZÐ[^ÔU_Ð`aÔUbÐ
eÐ
eÐ
eÑfÔfÐfÝ
�#‰,Œ,€CÝ	Ð
?�s 3™xœxÐ
?Ð
?¸Ð
?Ð
?Ð
?Ñ@Ô@Ð@Ý�C aÔ&7Ð"7Ð8Ñ8Ô8€GØð ð ˆÝˆe�Q‰ŒˆˆØð ÝÐ%Ñ&Ô&Ð&ØˆØŒ4ð ÝÐ(Ñ)Ô)Ð)ØˆÝ‰Œ€AÝ˜‰?Œ?€DðUð U¨ð Uñ Uô U€Cà	ˆS€y€yÝÐ: Ð:Ð:Ð:Ñ;Ô;Ð;ØˆÝ
��Q˜aœmÐ
,Ñ
,Ô
,€CØð ØˆÝ�#�qÑÔ€AÝ˜1ÑÔð 5ÝÐ3Ñ4Ô4Ð4Ø µ´×0@Ò0@ÅÈCÐQRÑASÔASÑ0TÔ0TÐUÐUÐV€EÝ	ˆ!ˆS�!�R˜˜e TÑ*Ô*Ð*Ð*Ð*r(   Ú__main__)r`   ra   FN)F)T)FT)7Ú__doc__rH  rÃ   r6   r>   rV   ÚsysrØ   ÚWSr2   rI   rG   r~   r7   ÚinsertÚrepliz_clientr   r   r5   rä   rÉ   r0  rÇ   r1  r  r—   r{   ÚCTAr    rœ   Úcompiler¹   rº   ÚIr¸   r'   r/   r3   r9   rC   rK   r_   r“   r™   r©   r¶   rÀ   rÌ   rà   rè   r  r  r?  rP  Ú__name__r+   r(   r&   ú<module>r[     sú  ððð ð@ €€€Ø €€€Ø 	€	€	€	Ø 	€	€	€	Ø Ð Ð Ð Ø 
€
€
€
Ø €€€à6€Ø	ÐÐÐ€Øˆˆˆ€ð
ð ð €ð €	Ø „‡‚��2Ñ Ô Ð Ø $Ð $Ð $Ð $Ð $Ð $à"€Ø=€ØÐ-Ð
.€Ø€hÔÐ*˜Ô*°Ð3Ñ3Ô3Ñ4Ô4€Ø
€t€Ø#€Ø€Ø€àO€Ø
D€ð6ð
[ðð
3ðYð-ð*ð
Kð!ðað"ðQð,ðq<	ð <	€ð| 
ˆŒÐ@Ñ	AÔ	A€ØˆRŒZÐ*Ñ+Ô+€
Ø	ˆŒÐHÈ"Ì$Ñ	OÔ	O€ð2ð 2ð 2ðð ð ð.ð .ð .ð;ð ;ð ;ðð ð ð'ð 'ð 'ð/ð /ð /ð/ð /ð /ð /ðd>ð >ð >ð >ð$ð $ð $ðN%ð %ð %ðð ð ð ð(Sð Sð Sð
ð ð ð,	ð 	ð 	ðð ð ð:ð ð ð7Mð 7Mð 7Mð 7Mðt2+ð 2+ð 2+ðj ˆzÒÐØ€D�F„F€F€F€Fð Ðr(   