Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 11 additions & 11 deletions background.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ let videoLodedMap = new Map();

function forwardAutoCaptureMsg() {
chrome.tabs.query({ active: true, currentWindow: true }, (tabs) => {
console.log('upd: Tabs', tabs);
// console.log('upd: Tabs', tabs);
chrome.storage.sync.get(['autoCapture'], (result) => {
if (result.autoCapture && tabs.length !== 0) {
chrome.tabs.sendMessage(tabs[0].id, { autoCapture: "start", tabId: tabs[0].id, sender: "background.js" })
Expand All @@ -12,19 +12,19 @@ function forwardAutoCaptureMsg() {
}

chrome.tabs.onRemoved.addListener((tabId) => {
console.log('tabclosed', tabId);
// console.log('tabclosed', tabId);
chrome.storage.sync.get(['autoCapturing'], (result) => {
console.log('autoCapturing get result', result);
// console.log('autoCapturing get result', result);
let autoCapturingVideos = Object.keys(result).length ? [...result.autoCapturing] : []
let updatedVideos = autoCapturingVideos.filter((video) => video.tabId !== tabId)
console.log('autoCapturing set videos', updatedVideos);
// console.log('autoCapturing set videos', updatedVideos);
chrome.storage.sync.set({ autoCapturing: [...updatedVideos] })
})
})


chrome.runtime.onMessage.addListener((message) => {
console.log('ms:', message);
//console.log('ms:', message);
if (message.sender === 'updatePlayback') {
forwardAutoCaptureMsg()
}
Expand All @@ -33,7 +33,7 @@ chrome.runtime.onMessage.addListener((message) => {

chrome.webNavigation.onHistoryStateUpdated.addListener((details) => {
if (details.url.includes('https://www.youtube.com/watch?')) {
console.log('onhistoryupdated: ', details, details.transitionQualifiers.length)
//console.log('onhistoryupdated: ', details, details.transitionQualifiers.length)
let videoLoaded = videoLodedMap.get("videoLoaded")
let vidId = details.url.split('v=')[1].split('&')[0]
let documentId = details.documentId
Expand All @@ -43,7 +43,7 @@ chrome.webNavigation.onHistoryStateUpdated.addListener((details) => {
}
else {
videoLodedMap.set("videoLoaded", { vidId: vidId, documentId: documentId })
console.log('script injected onhist.')
// console.log('script injected onhist.')
chrome.scripting.executeScript({
target: { tabId: details.tabId },
files: ['updatePlayback.js']
Expand All @@ -53,7 +53,7 @@ chrome.webNavigation.onHistoryStateUpdated.addListener((details) => {
}
else {
videoLodedMap.set("videoLoaded", { vidId: vidId, documentId: documentId })
console.log('script injected onhist.')
//console.log('script injected onhist.')
chrome.scripting.executeScript({
target: { tabId: details.tabId },
files: ['updatePlayback.js']
Expand All @@ -68,14 +68,14 @@ chrome.webNavigation.onCommitted.addListener((details) => {
let videoLoaded = videoLodedMap.get("videoLoaded")
let vidId = details.url.split('v=')[1].split('&')[0]
let documentId = details.documentId
console.log('videoLodedMap onCommited: ', videoLoaded)
// console.log('videoLodedMap onCommited: ', videoLoaded)
if (videoLoaded) {
if (videoLoaded.vidId === vidId && videoLoaded.documentId === documentId) {
return
}
else {
videoLodedMap.set("videoLoaded", { vidId: vidId, documentId: documentId })
console.log('script injected oncommit.')
//console.log('script injected oncommit.')
chrome.scripting.executeScript({
target: { tabId: details.tabId },
files: ['updatePlayback.js']
Expand All @@ -84,7 +84,7 @@ chrome.webNavigation.onCommitted.addListener((details) => {
}
else {
videoLodedMap.set("videoLoaded", { vidId: vidId, documentId: documentId })
console.log('script injected oncommit.')
//console.log('script injected oncommit.')
chrome.scripting.executeScript({
target: { tabId: details.tabId },
files: ['updatePlayback.js']
Expand Down
20 changes: 10 additions & 10 deletions content_script.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
console.log('Content script loaded')
// console.log('Content script loaded')
let video;
let parentDiv;
let videoContainer;
Expand All @@ -11,19 +11,19 @@ chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
title = getTitle()
let videoId = videoContainer.baseURI.split('v=')[1].split('&')[0]

console.log('video from content script in first load: ', videoId);
//console.log('video from content script in first load: ', videoId);

// checking for add timestamp instruction
if (message.addTimestamp) {
console.log("video while normal capturing: ", videoContainer.baseURI.split('v=')[1]);
//console.log("video while normal capturing: ", videoContainer.baseURI.split('v=')[1]);
// update or set new timestamp of a video
chrome.storage.local.set({ [videoId]: { "title": title, "time": video.currentTime, "done": calculatePercentage(video.currentTime, video.duration) } }).then(() => {
sendResponse({ key: videoId, title: title, time: video.currentTime, done: calculatePercentage(video.currentTime, video.duration) })
});
}
// checking for auto capture instruction
if (message.autoCapture) {
console.log('msg for ac: ', message.sender, "\nvideoId from container: ", videoContainer.baseURI.split('v=')[1], "\nvideoId from videoId: ", videoId, "\nvideo title:", title);
//console.log('msg for ac: ', message.sender, "\nvideoId from container: ", videoContainer.baseURI.split('v=')[1], "\nvideoId from videoId: ", videoId, "\nvideo title:", title);
if (message.autoCapture === 'start') {
autoCapture(videoId, message.tabId, true)
sendResponse({ capturing: true })
Expand Down Expand Up @@ -54,14 +54,14 @@ function calculatePercentage(currentTime, duration) {
}
// let intervalIds = new Set();
function autoCapture(videoId, tabId, start) {
console.log('\n-----\nvideoId passed to autocapture: ', videoId, "\nstart: ", start, "\n-----\n");
// console.log('\n-----\nvideoId passed to autocapture: ', videoId, "\nstart: ", start, "\n-----\n");
if (start) {
chrome.storage.sync.get(['autoCapturing'], (result) => {
if (Object.keys(result).length > 0) {
let allCapturingVideos = result.autoCapturing
let previousVideoInTheTab = allCapturingVideos.find((video) => video.tabId === tabId)
if (previousVideoInTheTab) {
console.log('previousInterval InervalId: ', previousVideoInTheTab.intervalId);
//console.log('previousInterval InervalId: ', previousVideoInTheTab.intervalId);
clearInterval(previousVideoInTheTab.intervalId)
}

Expand All @@ -76,7 +76,7 @@ function autoCapture(videoId, tabId, start) {
let allCapturingVideos = result.autoCapturing
let previousVideoInTheTab = allCapturingVideos.find((video) => video.tabId === tabId)
if (previousVideoInTheTab) {
console.log('previousInterval InervalId: ', previousVideoInTheTab.intervalId);
//console.log('previousInterval InervalId: ', previousVideoInTheTab.intervalId);
clearInterval(previousVideoInTheTab.intervalId)
}
setCurrentlyAutoCapturingVideo(tabId, false, undefined)
Expand All @@ -96,7 +96,7 @@ function startInterval(videoId) {
updatedTime = Math.max(updatedTime, result[videoId].time)
}
chrome.storage.local.set({ [videoId]: { "title": title, "time": updatedTime, "done": calculatePercentage(video.currentTime, video.duration) } }).then(() => {
console.log('\n---\ncaptured video info\n', "videoId: ", videoId, "\ntitle: ", title, "\currentTime: ", updatedTime, "intervalId: ", intervalId, "\n----\n");
//console.log('\n---\ncaptured video info\n', "videoId: ", videoId, "\ntitle: ", title, "\currentTime: ", updatedTime, "intervalId: ", intervalId, "\n----\n");
});
})
}
Expand All @@ -122,7 +122,7 @@ function setCurrentlyAutoCapturingVideo(tabId, add, intervalId) {
function getTitle() {
let titleTag = document.querySelector('head > title')
if (titleTag) {
console.log('from else if cond', produceTitle(titleTag.innerText));
// console.log('from else if cond', produceTitle(titleTag.innerText));
return produceTitle(titleTag.innerText)
}
return null
Expand All @@ -142,4 +142,4 @@ function produceTitle(text) {
}
}

console.log('bye from content script');
//console.log('bye from content script');
24 changes: 12 additions & 12 deletions updatePlayback.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
console.log('enter in upd..');
//console.log('enter in upd..');
video = document.getElementsByTagName('video')[0]
parentDiv = video.parentElement
videoContainer = parentDiv.parentElement
// shortLinkElement = document.querySelector('head > link[rel="shortlinkUrl"]')
console.log('variables: ', videoContainer.baseURI);
//console.log('variables: ', videoContainer.baseURI);

function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
Expand All @@ -15,7 +15,7 @@ function sendAutoCaptureMsg() {

function setCurrentTime(video, currentTimestamp) {
video.currentTime = parseFloat(currentTimestamp) - 10
console.log('video c time', video.currentTime);
//console.log('video c time', video.currentTime);
sendAutoCaptureMsg()
return
}
Expand All @@ -24,12 +24,12 @@ function setCurrentTime(video, currentTimestamp) {
async function runAll(video, videoContainer) {
await sleep(2000)
let videoId = videoContainer.baseURI.split('v=')[1].split('&')[0]
console.log('vid', videoId);
//console.log('vid', videoId);

let observer = new MutationObserver(() => {
let vc = document.getElementsByTagName('video')[0].parentElement.parentElement
if (vc.classList.contains("ad-showing")) {
console.log('showing ad....');
//console.log('showing ad....');
}
else {
// console.log('not showing ad....', videoId);
Expand All @@ -40,30 +40,30 @@ async function runAll(video, videoContainer) {
// get the video from storage
chrome.storage.local.get([videoId]).then((result) => {
if (Object.keys(result).length === 0) {
console.log('no records found', videoId, result);
// console.log('no records found', videoId, result);
sendAutoCaptureMsg()
return
}
else {
console.log(Object.keys(result).length)
// console.log(Object.keys(result).length)
let currentTimestamp = result[videoId].time
// check if video is already loaded
if (video.currentTime !== undefined) {
setCurrentTime(video, currentTimestamp)
console.log('video already loaded:');
// console.log('video already loaded:');
}
else {
// wait for loading the video meta data
console.log('video not loaded yet', video.currentTime);
//console.log('video not loaded yet', video.currentTime);
video.onloadedmetadata = (event) => {
// update it's currentTime
console.log('Metadata loaded', video, video.currentTime);
// console.log('Metadata loaded', video, video.currentTime);
setCurrentTime(video, currentTimestamp)
video.onloadedmetadata = null;
};
}
}
console.log('bye from update playback')
// console.log('bye from update playback')
})
}
})
Expand All @@ -78,4 +78,4 @@ async function runAll(video, videoContainer) {
}

runAll(video, videoContainer)
console.log('Exit from update playback')
//console.log('Exit from update playback')