Skip to content

Commit

Permalink
getTVCategoryProgramPlaylist && getTVCategoryProgramPlaylistChapter
Browse files Browse the repository at this point in the history
  • Loading branch information
bipoza committed Dec 10, 2022
1 parent b05964f commit b7f49ba
Show file tree
Hide file tree
Showing 3 changed files with 143 additions and 10 deletions.
37 changes: 32 additions & 5 deletions docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -111,9 +111,22 @@ <h2 class="text-primary">Get tv category program playlist</h2>



<video width="352" height="198" controls crossorigin="true">
<source src="https://vod.eitb.eus/1670684107_c8081146d40ca3566e3e1c86320ddb5c255cdbe8/vod/geozone1/2022/12/02/0011696943/0011696943_480x270_768000_58c0e0e5BnfYQOVbhvUs.m3u8" type="application/x-mpegURL">
</video>

<div class="card mt-5 p-2">
<div class="card-body">
<h2 class="text-primary">Get tv category program playlist chapter</h2>
<code lang="javascript">import { getTVCategoryProgramPlaylistChapter } from "nahieran-js";

getTVCategoryProgramPlaylistChapter(cahpter_id).then(res => {
console.log("Response: ", res);
}, err => {
console.error("Response error: ", err);
});</code>
<br>
DEMO: <input value="174848" id="getTVCategoryProgramPlaylistChapterParam" /> <button type="button"
class="btn btn-primary" onclick="getDocTVCategoryProgramPlaylistChapter()">getTVCategoryProgramPlaylistChapter(174848)</button>
</div>
</div>
</div>


Expand Down Expand Up @@ -142,7 +155,8 @@ <h5 class="modal-title" id="modalTitle">...</h5>
getTVCategory,
getTVCategoryPrograms,
getTVPrograms,
getTVCategoryProgramPlaylist
getTVCategoryProgramPlaylist,
getTVCategoryProgramPlaylistChapter
} from "../src/index.js";

const myModal = new bootstrap.Modal(document.getElementById("exampleModal"), {});
Expand Down Expand Up @@ -184,7 +198,19 @@ <h5 class="modal-title" id="modalTitle">...</h5>

getTVCategoryProgramPlaylist(getTVCategoryProgramPlaylistParam).then(res => {
console.log("Response: ", res);
document.getElementById("modalTitle").innerText = "Get TV Category Programs";
document.getElementById("modalTitle").innerText = "Get TV category program playlist";
document.getElementById("modalBody").innerText = JSON.stringify(res, undefined, 4);
myModal.show();
}, err => console.error("Response error: ", err));
};


const getDocTVCategoryProgramPlaylistChapter = () => {
const getTVCategoryProgramPlaylisChaptertParam = document.getElementById("getTVCategoryProgramPlaylistChapterParam").value;

getTVCategoryProgramPlaylistChapter(getTVCategoryProgramPlaylisChaptertParam).then(res => {
console.log("Response: ", res);
document.getElementById("modalTitle").innerText = "Get TV category program playlist chapter";
document.getElementById("modalBody").innerText = JSON.stringify(res, undefined, 4);
myModal.show();
}, err => console.error("Response error: ", err));
Expand All @@ -203,6 +229,7 @@ <h5 class="modal-title" id="modalTitle">...</h5>
window.getDocTVCategory = getDocTVCategory;
window.getDocTVCategoryPrograms = getDocTVCategoryPrograms;
window.getDocTVCategoryProgramPlaylist = getDocTVCategoryProgramPlaylist;
window.getDocTVCategoryProgramPlaylistChapter = getDocTVCategoryProgramPlaylistChapter;
window.getDocTVPrograms = getDocTVPrograms;

</script>
Expand Down
11 changes: 10 additions & 1 deletion src/index.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,17 @@
import { getTVCategories, getTVCategory, getTVCategoryPrograms, getTVPrograms } from "./tv.js"
import {
getTVCategories,
getTVCategory,
getTVCategoryPrograms,
getTVCategoryProgramPlaylist,
getTVCategoryProgramPlaylistChapter,
getTVPrograms
} from "./tv.js"

export {
getTVCategories,
getTVCategory,
getTVCategoryPrograms,
getTVCategoryProgramPlaylist,
getTVCategoryProgramPlaylistChapter,
getTVPrograms
}
105 changes: 101 additions & 4 deletions src/tv.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
import { TV_API_CATEGORIES, TV_API_CATEGORY, TV_API_CATEGORY_PROGRAM, TV_API_PROGRAMS } from "./contants.js";
import {
TV_API_CATEGORIES,
TV_API_CATEGORY,
TV_API_CATEGORY_PROGRAM,
TV_API_PROGRAMS,
TV_API_CATEGORY_PROGRAM_PLAYLIST,
TV_API_CATEGORY_PROGRAM_PLAYLIST_CHAPTER
} from "./contants.js";
import { fetchAPI } from "./helpers/fetch.js";
import { parseImage } from "./helpers/parsers.js"

Expand Down Expand Up @@ -80,7 +87,95 @@ const getTVCategoryPrograms = (category_id) => {
});
};

const getTVPrograms = () =>{
const getTVCategoryProgramPlaylist = (playlist_id) => {
return new Promise(async (resolve, reject) => {
try {
const data = await fetchAPI(`${TV_API_CATEGORY_PROGRAM_PLAYLIST}/${playlist_id}/`);
const parsedData = {
count: data.num,
timestamp: data.timestamp,
id: data.id,
category_id: data.id_web_group,
playlist_id: data.id_web_playlist,
language: data.idioma,
name: data.name,
description: data.desc_playlist,
playlist: data.web_media.map(item => {
return {
id: item.ID,
name: item[`NAME_${item.IDIOMA}`],
chapter_title: item[`CHAPTER_${item.IDIOMA}`],
chapter_number: item.chapter,
language: item.IDIOMA,
description: item[`SHORT_DESC_${item.IDIOMA}`],
parental_rating: item.PARENTAL_RATING,
channel: item.LAST_BROADCST_CHANNEL,
publication_date: item.PUB_DATE,
thumbnail_url: item.THUMBNAIL_URL
}
})
};
resolve(parsedData);
} catch (err) {
reject(err);
}
});
};



const getTVCategoryProgramPlaylistChapter = (chapter_id) => {
return new Promise(async (resolve, reject) => {
try {
const data = await fetchAPI(`${TV_API_CATEGORY_PROGRAM_PLAYLIST_CHAPTER}/${chapter_id}/`);
const parsedData = {
count: data.num,
timestamp: data.timestamp,
id: data.id,
category_id: data.id_web_group,
playlist_id: data.id_web_playlist,
language: data.idioma,
name: data.name,
description: data.desc_playlist,
playlist: data.web_media.map(item => {
return {
id: item.ID,
name: item[`NAME_${item.IDIOMA}`],
chapter_title: item[`CHAPTER_${item.IDIOMA}`],
chapter_number: item.chapter,
language: item.IDIOMA,
description: item[`SHORT_DESC_${item.IDIOMA}`],
parental_rating: item.PARENTAL_RATING,
channel: item.LAST_BROADCST_CHANNEL,
publication_date: item.PUB_DATE,
thumbnail_url: item.THUMBNAIL_URL,
m3u8_streaming: item.HLS_SURL,
videos: item.RENDITIONS.map(video => {
return {
encoding_rate: video.ENCODING_RATE,
height: video.FRAME_HEIGHT,
width: video.WIDTH,
url: video.PMD_URL
}
}),
images: item.IMAGES ? item.IMAGES?.map((image) => {
return {
height: image.HEIGHT,
width: image.WIDTH,
url: image.URL
}
}) : []
}
})
};
resolve(parsedData);
} catch (err) {
reject(err);
}
});
};

const getTVPrograms = () => {
return new Promise(async (resolve, reject) => {
try {
const data = await fetchAPI(TV_API_PROGRAMS);
Expand All @@ -95,7 +190,7 @@ const getTVPrograms = () =>{
description: item.SHORT_DESC,
images: item.images ? item.images?.map((image) => parseImage(data.vod_url, image)) : [],
}
}),
}),
};
resolve(parsedData);
} catch (err) {
Expand All @@ -108,5 +203,7 @@ export {
getTVCategories,
getTVCategory,
getTVCategoryPrograms,
getTVPrograms
getTVCategoryProgramPlaylist,
getTVCategoryProgramPlaylistChapter,
getTVPrograms,
}

0 comments on commit b7f49ba

Please sign in to comment.