initial commit
This commit is contained in:
commit
ae5a7f2c12
19
Dockerfile
Normal file
19
Dockerfile
Normal file
|
@ -0,0 +1,19 @@
|
|||
FROM debian:12-slim
|
||||
|
||||
RUN apt update && apt install -y --no-install-recommends \
|
||||
bash \
|
||||
wget \
|
||||
lighttpd \
|
||||
curl \
|
||||
xmlstarlet \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY xml_tv_ids.txt /data/
|
||||
COPY xml_cleaner.sh /opt/
|
||||
|
||||
# Going to need a static IP adress for this part
|
||||
# RUN wget -P /data/ --no-check-certificate https://download2.iptvboss.pro/2da279ce-ce9a-4491-8b92-f72c60e92092/xmlonly/CANADA.xml \
|
||||
# && wget -P /data/ --no-check-certificate https://download2.iptvboss.pro/R5SQ-4GRG-KK00-0XQT-JZ67-7TSA-D5O7-UC1U/xmlonly/USA.xml
|
||||
|
||||
# ENTRYPOINT ["/opt/xml_cleaner.sh"]
|
||||
CMD ["bash"]
|
27
README.md
Normal file
27
README.md
Normal file
|
@ -0,0 +1,27 @@
|
|||
### BREAKDOWN
|
||||
# On rends le .txt unix-friendly
|
||||
sed -i 's/\r//' /data/xmltvids.txt
|
||||
|
||||
# On fait un big XPATH avec et on truncate le dernier "or"
|
||||
awk '{printf "@id='\''%s'\'' or ", $0}' | sed 's/ or $//'
|
||||
awk '{printf "@channel='\''%s'\'' or ", $0}' | sed 's/ or $//'
|
||||
|
||||
# On filter ce qu'on veut
|
||||
xargs -0 -I{} xmlstarlet sel -t -c "//channel[{}]" CANADA.xml
|
||||
xargs -0 -I{} xmlstarlet sel -t -c "//programme[{}]" /data/CANADA.xml
|
||||
|
||||
### FINAL CODE
|
||||
echo '<tv source-info-name="IPTVBoss">' > filtered_CANADA.xml
|
||||
awk '{printf "@id='\''%s'\'' or ", $0}' /data/xmltvids.txt | sed 's/ or $//' | xargs -0 -I{} xmlstarlet sel -t -c "//channel[{}]" /data/CANADA.xml >> filtered_CANADA.xml
|
||||
awk '{printf "@channel='\''%s'\'' or ", $0}' /data/xmltvids.txt | sed 's/ or $//' | xargs -0 -I{} xmlstarlet sel -t -c "//programme[{}]" /data/CANADA.xml >> filtered_CANADA.xml
|
||||
echo '</tv>' >> filtered_CANADA.xml
|
||||
|
||||
### OPTIONAL PRETTY VERSION
|
||||
xmlstarlet fo filtered_CANADA.xml > pretty_filtered_CANADA.xml
|
||||
|
||||
### COUNT CHECK
|
||||
CANADA.xml --> 739 channels, 129 538 programmes
|
||||
filtered_CANADA.xml --> 173 channels, 39067 programmes
|
||||
|
||||
USA.xml --> 11 668 channels, 975 691 programmes
|
||||
filtered_USA.xml --> ???
|
24
xml_cleaner.sh
Normal file
24
xml_cleaner.sh
Normal file
|
@ -0,0 +1,24 @@
|
|||
#!/bin/bash
|
||||
|
||||
wget -q --no-check-certificate https://download2.iptvboss.pro/2da279ce-ce9a-4491-8b92-f72c60e92092/xmlonly/CANADA.xml > /data/CANADA.xml
|
||||
wget -q --no-check-certificate https://download2.iptvboss.pro/R5SQ-4GRG-KK00-0XQT-JZ67-7TSA-D5O7-UC1U/xmlonly/USA.xml > /data/USA.xml
|
||||
|
||||
ids="/data/xml_tv_ids.txt"
|
||||
raw_can_xml="/data/CANADA.xml"
|
||||
raw_us_xml="/data/USA.xml"
|
||||
dir=$(dirname "$raw_can_xml")
|
||||
output="/var/www/html/clean_CANADA_US.xml"
|
||||
|
||||
# On crée les filtres pour trouver les channels/programmes qui nous intéressent
|
||||
id_filter=$(awk '{printf "@id='\''%s'\'' or ", $0}' "$ids" | sed 's/ or $//')
|
||||
prog_filter=$(awk '{printf "@channel='\''%s'\'' or ", $0}' "$ids" | sed 's/ or $//')
|
||||
|
||||
# On select avec xmlstarlet les channels et progs qu'on veut et on met ca dans un clean XML
|
||||
{
|
||||
echo '<tv source-info-name="IPTVBoss">'
|
||||
xmlstarlet sel -t -c "//channel[$id_filter]" "$raw_can_xml"
|
||||
xmlstarlet sel -t -c "//channel[$id_filter]" "$raw_us_xml"
|
||||
xmlstarlet sel -t -c "//programme[$prog_filter]" "$raw_can_xml"
|
||||
xmlstarlet sel -t -c "//programme[$prog_filter]" "$raw_us_xml"
|
||||
echo '</tv>'
|
||||
} > "$output"
|
193
xml_tv_ids.txt
Normal file
193
xml_tv_ids.txt
Normal file
|
@ -0,0 +1,193 @@
|
|||
XMLTV ID
|
||||
GlobalBC-CHAN.ca
|
||||
ICIGrandMontreal-CBFT.ca
|
||||
NOOVO-Montreal-CFJP.ca
|
||||
CBCMontreal-CBMT.ca
|
||||
TVA-Montreal-CFTM.ca
|
||||
TeleQuebecMontreal-CIVM.ca
|
||||
SavoirMedia-CFTU.ca
|
||||
CityTvMontreal-CJNT.ca
|
||||
meteomedia.ca
|
||||
CTVMontreal-CFCF.ca
|
||||
TV5.ca
|
||||
ICIMontreal.ca
|
||||
LeCanalNouvellesTVA.ca
|
||||
ICI-RDI.ca
|
||||
ICIARTVCanada.ca
|
||||
ReseaudesSports-RDS.ca
|
||||
RDS2.ca
|
||||
ReseaudesSportsInfo-RDSI.ca
|
||||
TVASports.ca
|
||||
TVASports2.ca
|
||||
BNNBloomberg.ca
|
||||
CBSWIVB-EAST.ca
|
||||
ABCWKBW.ca
|
||||
NBCWBTS-East.ca
|
||||
FOXWFXT-East.ca
|
||||
PBSWNED.ca
|
||||
CHEK.ca
|
||||
ICIQuebecCity-CBVT.ca
|
||||
ICITeleVancouver-CBUFT.ca
|
||||
ICIEstrie-CKSH.ca
|
||||
TVA-QuebecCity-CFCM.ca
|
||||
CBCToronto-CBLT.ca
|
||||
CBCVancouver-CBUT.ca
|
||||
GlobalToronto-CIII.ca
|
||||
GlobalKingston-CKWS.ca
|
||||
CTVToronto-CFTO.ca
|
||||
ctvvancouverhd.ca
|
||||
LeCanalVie.ca
|
||||
CanalD.ca
|
||||
CanalEvasion.ca
|
||||
CinePop.ca
|
||||
Prise2.ca
|
||||
SeriesPlus.ca
|
||||
Z.ca
|
||||
Investigation.ca
|
||||
ELLEFICTIONS.ca
|
||||
Max.ca
|
||||
Historia.ca
|
||||
TFO.ca
|
||||
LachaineDisney.ca
|
||||
TeletoonFrancais.ca
|
||||
QUB.ca
|
||||
ADDIKTV.ca
|
||||
TEMOIN.ca
|
||||
Zeste.ca
|
||||
CASA.ca
|
||||
ICIExplora.ca
|
||||
SuperEcran.ca
|
||||
SuperEcran2.ca
|
||||
SuperEcran3.ca
|
||||
SuperEcran4.ca
|
||||
AandE.ca
|
||||
Slice.ca
|
||||
CTVDramaChannel.ca
|
||||
TLC.ca
|
||||
FX.ca
|
||||
FXX.ca
|
||||
ABCSpark.ca
|
||||
CookingChannel.ca
|
||||
FoodNetwork.ca
|
||||
CTVLifeChannel.ca
|
||||
Lifetime.ca
|
||||
Treehouse.ca
|
||||
CTVSciFiChannel.ca
|
||||
YTV.ca
|
||||
DisneyJunior.ca
|
||||
DisneyXD.ca
|
||||
Nickelodeon.ca
|
||||
CartoonNetwork.ca
|
||||
Boomerang.ca
|
||||
YesTV.ca
|
||||
CTVComedyChannel.ca
|
||||
CMT.ca
|
||||
MTV.ca
|
||||
MuchMusic.ca
|
||||
NationalGeographic.ca
|
||||
NationalGeographicWild.ca
|
||||
CrimePlusInvestigation.ca
|
||||
InvestigationDiscovery.ca
|
||||
OutdoorLifeNetwork.ca
|
||||
History.ca
|
||||
HISTORY2.ca
|
||||
CTVNature.ca
|
||||
USANetwork.ca
|
||||
CTVSpeed.ca
|
||||
CTVWild.ca
|
||||
DTOUR.ca
|
||||
CHCH.ca
|
||||
CWWPIX.us
|
||||
TodaysShoppingChoice.ca
|
||||
EEntertainmentTelevision.ca
|
||||
HGTV.ca
|
||||
MagnoliaNetwork.ca
|
||||
CottageLife.ca
|
||||
WeatherNetwork.ca
|
||||
Omni1-CFMT.ca
|
||||
Omni2-CJMT.ca
|
||||
wgncanada.ca
|
||||
Crave1.ca
|
||||
Crave2.ca
|
||||
Crave3.ca
|
||||
Crave4.ca
|
||||
STARZ1.ca
|
||||
STARZ1.ca
|
||||
MovieTime.ca
|
||||
AdultSwim.ca
|
||||
Showcase.ca
|
||||
DejaView.ca
|
||||
TCM.ca
|
||||
VisionTV.ca
|
||||
WNetwork.ca
|
||||
AMC.ca
|
||||
HBO1.ca
|
||||
peachtree.ca
|
||||
TSN1.ca
|
||||
TSN2.ca
|
||||
TSN3.ca
|
||||
TSN4.ca
|
||||
TSN5.ca
|
||||
SportsnetEast.ca
|
||||
SportsnetOntario.ca
|
||||
SportsnetWest.ca
|
||||
SportsnetPacific.ca
|
||||
SportsnetOne.ca
|
||||
Sportsnet360.ca
|
||||
SportsnetWorld.ca
|
||||
GolfChannel.ca
|
||||
France24.ca
|
||||
CNN.ca
|
||||
CBCNewsNetwork.ca
|
||||
CTVNewsChannel.ca
|
||||
BBCWorldNews.ca
|
||||
FoxNewsChannel.ca
|
||||
HLN.ca
|
||||
StingrayEnMarge.ca
|
||||
StingrayFrancoCountry.ca
|
||||
StingrayFrancoPop.ca
|
||||
StingrayFrancoRetro.ca
|
||||
StingrayGreatestHits.us
|
||||
StingrayHipHop.us
|
||||
StingrayHitList.ca
|
||||
StingrayHotCountry.ca
|
||||
StingrayJammin.ca
|
||||
StingrayKidsStuff.ca
|
||||
StingrayJazzNow.ca
|
||||
StingrayJukeboxOldies.ca
|
||||
StingrayLePalmarès.ca
|
||||
StingrayMoussesMusique.ca
|
||||
StingrayNature.ca
|
||||
StingrayNostalgie.ca
|
||||
StingrayPopAdult.ca
|
||||
StingrayPopularClassical.ca
|
||||
StingrayFlashback70s.ca
|
||||
StingrayRememberthe80s.ca
|
||||
StingrayRock.ca
|
||||
StingrayAlternative.ca
|
||||
StingraySmoothJazz.ca
|
||||
StingraySoundsofSouthIndia.us
|
||||
StingraySouvenirs.ca
|
||||
StingrayTheAsianFlavour.us
|
||||
StingrayTheBlues.ca
|
||||
StingrayTheChillLounge.ca
|
||||
StingrayChristianPopandRock.ca
|
||||
StingrayTheSpa.ca
|
||||
StingrayHip-Hop_RandB.ca
|
||||
StingrayEasyListening.ca
|
||||
CJON-NTV.ca
|
||||
NBCWPTZ.us
|
||||
CBSWIVB-EAST.ca
|
||||
ABCWVNY.us
|
||||
FOXWFFF.us
|
||||
CPAC.ca
|
||||
CPACFrench.ca
|
||||
CanaldeAssembleeNationale.ca
|
||||
AmiTV.ca
|
||||
AMI-tele.ca
|
||||
UnisTV.ca
|
||||
tcftv.ca
|
||||
APTN.ca
|
||||
LeCanalNouvellesTVA.ca
|
||||
LeCanalNouvellesTVA.ca
|
||||
LeCanalNouvellesTVA.ca
|
Loading…
Reference in New Issue
Block a user