Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Старожил


Сообщения: 227
Благодарности: 21

Профиль | Отправить PM | Цитировать


Цитата Fors1k:
Покажите как должен в итоге выглядеть этот пример »
Fors1k, листов в сети множество и все по-разному составлены. Если плейлист от провайдера или толкового рестримера, то в нём практически и не нужно удалять дубликаты. А если это плейлист от юзеров, среди которых попадаются и совсем "криворукие", то в нём может быть всё что угодно (в разумных пределах конечно).
К примеру может быть такой плейлист:
in_list
Код: Выделить весь код
#EXTM3U
#EXTINF:-1,A1
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s45/04.m3u8
#EXTINF:-1,A2
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s33/04.m3u8
#EXTINF:-1,Новий канал
#EXTGRP:Украина
http://iptv.prosto.tv:7000/ch6/video.m3u8?secret=co9yg1i4
#EXTINF:-1,A1
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s45/01.m3u8
#EXTINF:0,Первый канал
http://gorod.tv/s/live/1/46.173.58.40/1544264103816/0.m3u8
#EXTINF:0,Россия 1 HD
https://meta.vcdn.biz/30560520b9dacb6e03aae2bc57bd8d78_megogo/vod/fs/o/41139221/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8
#EXTINF:0,5-тый канал
https://meta.vcdn.biz/bd7779421f9ce7a23453cb0fb05987a9_megogo/vod/fs/o/36429601/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8
#EXTINF:0,Первый
http://gorod.tv/s/live/1/46.173.58.40/1544264103816/0.m3u8
#EXTINF:0 group-title="Русские" tvg-id="zvezda" tvg-logo="https://pbs.twimg.com/media/DxnzMctXcAEPuMv.png",Звезда
https://meta.vcdn.biz/a90e6e1d617148ec8b087bae57dd3338_megogo/vod/fs/o/36429631/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8
#EXTINF:2.97077,Кинозал 2
http://cooltv.dyndns.tv:8200/udp/239.255.4.30:1234
#EXTINF:-1,СТБ
#EXTGRP:Украина
http://iptv.prosto.tv:7000/ch8/video.m3u8?secret=co9yg1i4
#EXTINF:1.87832,Кинозал 3
http://cooltv.dyndns.tv:8200/udp/239.255.4.31:1234
#EXTINF:0 group-title="Русские" tvg-id="rossia1" tvg-logo="https://pbs.twimg.com/media/DxnvslfWsAE6Sys.png",Россия 1 HD
https://meta.vcdn.biz/ret9421f9ce7a23453cb0fb05987a9_megogo/vod/fs/o/36429601/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8
#EXTINF:-1,СТБ
#EXTGRP:Украина
http://iptv.prosto.tv:7000/ch5/video.m3u8?secret=co9yg1i4
#EXTINF:-1,Новий канал
#EXTGRP:Украина
http://iptv.prosto.tv:7000/ch6/video.m3u8?secret=co9yg1i4
#EXTINF:0,Первый канал
http://gorod.tv/s/live/1/46.173.58.40/1544264103816/0.m3u8
#EXTINF:-1, 5 канал
#EXTGRP:Украина
http://iptv.prosto.tv:7000/ch7/video.m3u8?secret=co9yg1i4

В идеале на выходе должны получить:
out_list
Код: Выделить весь код
#EXTM3U
#EXTINF:0,5-тый канал
https://meta.vcdn.biz/bd7779421f9ce7a23453cb0fb05987a9_megogo/vod/fs/o/36429601/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8
#EXTINF:-1, 5 канал
#EXTGRP:Украина
http://iptv.prosto.tv:7000/ch7/video.m3u8?secret=co9yg1i4
#EXTINF:-1,A1
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s45/01.m3u8
#EXTINF:-1,A1
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s45/04.m3u8
#EXTINF:-1,A2
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s33/04.m3u8
#EXTINF:0 group-title="Русские" tvg-id="zvezda" tvg-logo="https://pbs.twimg.com/media/DxnzMctXcAEPuMv.png",Звезда
https://meta.vcdn.biz/a90e6e1d617148ec8b087bae57dd3338_megogo/vod/fs/o/36429631/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8
#EXTINF:2.97077,Кинозал 2
http://cooltv.dyndns.tv:8200/udp/239.255.4.30:1234
#EXTINF:1.87832,Кинозал 3
http://cooltv.dyndns.tv:8200/udp/239.255.4.31:1234
#EXTINF:-1,Новий канал
#EXTGRP:Украина
http://iptv.prosto.tv:7000/ch6/video.m3u8?secret=co9yg1i4
#EXTINF:0,Первый канал
http://gorod.tv/s/live/1/46.173.58.40/1544264103816/0.m3u8
#EXTINF:0,Россия 1 HD
https://meta.vcdn.biz/30560520b9dacb6e03aae2bc57bd8d78_megogo/vod/fs/o/41139221/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8
#EXTINF:0 group-title="Русские" tvg-id="rossia1" tvg-logo="https://pbs.twimg.com/media/DxnvslfWsAE6Sys.png",Россия 1 HD
https://meta.vcdn.biz/ret9421f9ce7a23453cb0fb05987a9_megogo/vod/fs/o/36429601/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8
#EXTINF:-1,СТБ
#EXTGRP:Украина
http://iptv.prosto.tv:7000/ch5/video.m3u8?secret=co9yg1i4
#EXTINF:-1,СТБ
#EXTGRP:Украина
http://iptv.prosto.tv:7000/ch8/video.m3u8?secret=co9yg1i4

то есть должны удалиться дубликаты и по именам каналов и по ссылкам на потоки, но при этом структура плейлиста не должна быть нарушена и должны сохраниться директивы #EXTGRP и #EXTVLCOPT

Foreigner, к сожалению Ваш код тоже путает строки.
Ну да ладно... Пока дорабатываю старый рабочий код, просто почитал новые посты в теме и пришла мысль добавить ещё и алфавитную сортировку по имени канала...

Отправлено: 16:45, 16-08-2020 | #54