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