mirror of
https://github.com/ajayyy/SponsorBlock.git
synced 2025-12-08 20:47:11 +03:00
Compare commits
18 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f9f6ac0107 | ||
|
|
133c61ffed | ||
|
|
21b7507a9e | ||
|
|
fd459414aa | ||
|
|
4296ea3f85 | ||
|
|
92b3cda9ef | ||
|
|
907eba3827 | ||
|
|
86cf324d62 | ||
|
|
e32db21f4e | ||
|
|
6afcc6fb3a | ||
|
|
e510686baa | ||
|
|
330dd3cbbd | ||
|
|
e9b687df6a | ||
|
|
e89dfed07e | ||
|
|
435b215025 | ||
|
|
e0165e4aac | ||
|
|
63f9bd5926 | ||
|
|
87c4758089 |
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "__MSG_fullName__",
|
"name": "__MSG_fullName__",
|
||||||
"short_name": "SponsorBlock",
|
"short_name": "SponsorBlock",
|
||||||
"version": "5.13.2",
|
"version": "5.13.4",
|
||||||
"default_locale": "en",
|
"default_locale": "en",
|
||||||
"description": "__MSG_Description__",
|
"description": "__MSG_Description__",
|
||||||
"homepage_url": "https://sponsor.ajay.app",
|
"homepage_url": "https://sponsor.ajay.app",
|
||||||
|
|||||||
Submodule maze-utils updated: e3388197c3...33f0b5b757
Submodule public/_locales updated: 1314fb8089...9469b109c2
@@ -107,6 +107,10 @@ div:hover > #previewbar.sbNotInvidious {
|
|||||||
transform: translateY(-1em) !important;
|
transform: translateY(-1em) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.ytp-tooltip.sponsorCategoryTooltipVisible {
|
||||||
|
transform: translateY(-1em) !important;
|
||||||
|
}
|
||||||
|
|
||||||
.ytp-tooltip.sponsorCategoryTooltipVisible.sponsorTwoTooltips {
|
.ytp-tooltip.sponsorCategoryTooltipVisible.sponsorTwoTooltips {
|
||||||
transform: translateY(-2em) !important;
|
transform: translateY(-2em) !important;
|
||||||
}
|
}
|
||||||
@@ -145,17 +149,17 @@ div:hover > #previewbar.sbNotInvidious {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.ytp-big-mode .ytp-tooltip.sponsorCategoryTooltipVisible.sponsorTwoTooltips > .ytp-tooltip-text-wrapper {
|
.ytp-big-mode .ytp-tooltip.sponsorCategoryTooltipVisible.sponsorTwoTooltips > .ytp-tooltip-text-wrapper {
|
||||||
transform: translateY(1em) !important;
|
transform: translateY(1.75em) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ytp-big-mode .ytp-tooltip.sponsorCategoryTooltipVisible > .ytp-tooltip-text-wrapper > .ytp-tooltip-text {
|
.ytp-big-mode .ytp-tooltip.sponsorCategoryTooltipVisible > .ytp-tooltip-text-wrapper .ytp-tooltip-text {
|
||||||
display: block !important;
|
display: inline-block !important;
|
||||||
transform: translateY(1em) !important;
|
transform: translateY(0.75em) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ytp-big-mode .ytp-tooltip.sponsorCategoryTooltipVisible.sponsorTwoTooltips > .ytp-tooltip-text-wrapper > .ytp-tooltip-text {
|
.ytp-big-mode .ytp-tooltip.sponsorCategoryTooltipVisible.sponsorTwoTooltips > .ytp-tooltip-text-wrapper .ytp-tooltip-text {
|
||||||
display: block !important;
|
display: inline-block !important;
|
||||||
transform: translateY(2em) !important;
|
transform: translateY(0.75em) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
div:hover > .sponsorBlockChapterBar {
|
div:hover > .sponsorBlockChapterBar {
|
||||||
@@ -184,6 +188,10 @@ div:hover > .sponsorBlockChapterBar {
|
|||||||
margin: auto;
|
margin: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.sbChapterVoteButton {
|
||||||
|
padding: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
.playerButton {
|
.playerButton {
|
||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
}
|
}
|
||||||
@@ -683,6 +691,14 @@ input::-webkit-inner-spin-button {
|
|||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.hideSegmentSubmitButton {
|
||||||
|
cursor: pointer;
|
||||||
|
margin: auto;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
|
||||||
/* Start SelectorComponent */
|
/* Start SelectorComponent */
|
||||||
|
|
||||||
.sbSelector {
|
.sbSelector {
|
||||||
@@ -740,6 +756,13 @@ input::-webkit-inner-spin-button {
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
display: flex;
|
display: flex;
|
||||||
color: white;
|
color: white;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* July 2025 test UI */
|
||||||
|
.ytp-delhi-modern .skipButtonControlBarContainer {
|
||||||
|
height: 48px;
|
||||||
|
margin: auto 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.skipButtonControlBarContainer.sbhidden {
|
.skipButtonControlBarContainer.sbhidden {
|
||||||
@@ -949,5 +972,5 @@ input::-webkit-inner-spin-button {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.sponsorblock-chapter-visible {
|
.sponsorblock-chapter-visible {
|
||||||
display: inherit !important;
|
display: block !important;
|
||||||
}
|
}
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 124 KiB |
BIN
public/help/images/submission menu.png
Normal file
BIN
public/help/images/submission menu.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 9.7 KiB |
BIN
public/help/images/votebuttons.gif
Normal file
BIN
public/help/images/votebuttons.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 64 KiB |
@@ -21,128 +21,128 @@
|
|||||||
<div class="container sponsorBlockPageBody">
|
<div class="container sponsorBlockPageBody">
|
||||||
|
|
||||||
<p class="createdBy">
|
<p class="createdBy">
|
||||||
<img src="https://ajay.app/newprofilepic.jpg" height="30" class="profilepiccircle"/>
|
<img src="../icons/newprofilepic.jpg" height="30" class="profilepiccircle"/>
|
||||||
Created By <a href="https://ajay.app">Ajay Ramachandran</a>
|
Created By <a href="https://ajay.app">Ajay Ramachandran</a>
|
||||||
<a href="https://sponsor.ajay.app/donate" target="_blank" rel="noopener" id="sbDonate">(Donate)</a>
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<span class="help-page-flex-container">
|
||||||
__MSG_helpPageThanksForInstalling__ By using this extension, you agree to the <a href="https://gist.github.com/ajayyy/aa9f8ded2b573d4f73a3ffa0ef74f796">Privacy Policy</a> and <a href="https://gist.github.com/ajayyy/9e8100f069348e0bc062641f34d6af12">Terms of Use</a>.
|
<div class="left-sidebar">
|
||||||
</p>
|
<div class="box1">
|
||||||
|
<p>
|
||||||
|
__MSG_helpPageThanksForInstalling__ By using this extension, you agree to the <a href="https://gist.github.com/ajayyy/aa9f8ded2b573d4f73a3ffa0ef74f796">Privacy Policy</a> and <a href="https://gist.github.com/ajayyy/9e8100f069348e0bc062641f34d6af12">Terms of Use</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Come contribute, make some suggestions and help out on <a href="https://discord.gg/SponsorBlock">Discord</a> or on <a href="https://matrix.to/#/#sponsor:ajay.app?via=ajay.app&via=matrix.org&via=mozilla.org">Matrix</a>.
|
Come contribute, make some suggestions and help out on <a href="https://discord.gg/SponsorBlock">Discord</a> or on <a href="https://matrix.to/#/#sponsor:ajay.app?via=ajay.app&via=matrix.org&via=mozilla.org">Matrix</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<a href="https://dearrow.ajay.app"
|
<a href="https://dearrow.ajay.app"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
id="dearrow-link"
|
id="dearrow-link"
|
||||||
class="dearrow-link hidden"
|
class="dearrow-link hidden"
|
||||||
rel="noreferrer">
|
rel="noreferrer">
|
||||||
<img src="/icons/dearrow.svg"/>
|
<img src="/icons/dearrow.svg"/>
|
||||||
|
|
||||||
<span id="dearrow-link-text">
|
<span id="dearrow-link-text">
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<img src="/icons/close.png" class="close-button"/>
|
<img src="/icons/close.png" class="close-button"/>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<p style="margin-bottom: 0; margin-top: 0" class="bigText center">__MSG_helpPageReviewOptions__</p>
|
<div id="donate-component" class="donate-ask">
|
||||||
|
<div class="donate-text">
|
||||||
|
<img
|
||||||
|
src="../icons/newprofilepic.jpg"
|
||||||
|
alt="Ajay's avatar"
|
||||||
|
></img>
|
||||||
|
__MSG_supportSponsorBlock__
|
||||||
|
</div>
|
||||||
|
|
||||||
<p class="smallText">
|
<a href="https://sponsor.ajay.app/donate" class="donate-button" target="_blank" rel="noopener">
|
||||||
__MSG_helpPageFeatureDisclaimer__
|
__MSG_Donate__
|
||||||
</p>
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="box3">
|
||||||
|
<h1>__MSG_helpPageHowSkippingWorks__</h1>
|
||||||
|
|
||||||
<iframe class="optionsFrame" src="../options/options.html#embed" style="border: none"></iframe>
|
<p class="projectPreview">
|
||||||
|
__MSG_helpPageHowSkippingWorks2__
|
||||||
|
</p>
|
||||||
|
|
||||||
<h1>__MSG_helpPageHowSkippingWorks__</h1>
|
<div class="center"><img src="images/voting on notice.gif"></div>
|
||||||
|
|
||||||
<p class="projectPreview">
|
<p class="projectPreview">
|
||||||
<span class="projectPreviewImageLarge">
|
__MSG_helpPageHowSkippingWorks1__
|
||||||
<img src="images/popup.png">
|
</p>
|
||||||
</span>
|
|
||||||
|
|
||||||
__MSG_helpPageHowSkippingWorks1__
|
<div class="center"><img style="height: 400px;" src="images/popup.png"></div>
|
||||||
|
|
||||||
<br/>
|
<h1>__MSG_Submitting__</h1>
|
||||||
<br/>
|
|
||||||
|
|
||||||
__MSG_helpPageHowSkippingWorks2__
|
<p class="projectPreview">
|
||||||
</p>
|
__MSG_helpPageSubmitting1__
|
||||||
|
</p>
|
||||||
|
|
||||||
<div class="center"><img src="images/voting on notice.gif"></div>
|
<div class="center"><img src="images/votebuttons.gif"></div>
|
||||||
|
|
||||||
<h1>__MSG_Submitting__</h1>
|
<p class="projectPreview">
|
||||||
|
__MSG_helpPageSubmitting2__
|
||||||
|
</p>
|
||||||
|
|
||||||
<p class="projectPreview">
|
<div class="center"><img src="images/submission menu.png"></div>
|
||||||
<img class="projectPreviewImageLarge" src="https://i.imgur.com/A1ilk6x.gif">
|
|
||||||
|
|
||||||
__MSG_helpPageSubmitting1__
|
<p class="projectPreview center">
|
||||||
|
<a href="https://wiki.sponsor.ajay.app/w/Guidelines" target="_blank">__MSG_guidelines__</a>
|
||||||
|
<br/>
|
||||||
|
<a href="https://wiki.sponsor.ajay.app/w/Advice_for_submitting" target="_blank">__MSG_AdviceForSubmitting__</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
<br/>
|
<h1>__MSG_helpPageCopyOfDatabase__</h1>
|
||||||
<br/>
|
|
||||||
|
|
||||||
__MSG_helpPageSubmitting2__
|
<p>
|
||||||
</p>
|
__MSG_helpPageCopyOfDatabase1__ <a href="https://sponsor.ajay.app/database">https://sponsor.ajay.app/database</a>. __MSG_helpPageCopyOfDatabase2__
|
||||||
|
</p>
|
||||||
|
|
||||||
<h1>__MSG_Editing__</h1>
|
<h4 style="display: inline">Client:</h4>
|
||||||
|
<!-- Github logo -->
|
||||||
|
<a href="https://github.com/ajayyy/SponsorBlock"><svg aria-hidden="true" version="1.1" viewBox="0 0 16 16" height="58px" style="padding-left: 15px"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"></path></svg></a>
|
||||||
|
|
||||||
<p class="projectPreview">
|
<h4 style="display: inline; padding-left: 20px">Server:</h4>
|
||||||
<span class="projectPreviewImageLarge">
|
<!-- Github logo -->
|
||||||
<img src="https://wiki.sponsor.ajay.app/images/6/6a/Popup_only.png">
|
<a href="https://github.com/ajayyy/SponsorBlockServer"><svg aria-hidden="true" version="1.1" viewBox="0 0 16 16" height="58px" style="padding-left: 15px"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"></path></svg></a>
|
||||||
</span>
|
|
||||||
|
|
||||||
__MSG_helpPageEditing1__
|
<h1>__MSG_Credits__</h1>
|
||||||
|
|
||||||
</p>
|
<p>
|
||||||
|
Thanks to all <a href="https://github.com/ajayyy/SponsorBlock/graphs/contributors">SponsorBlock contributors</a>,
|
||||||
|
<a href="https://github.com/ajayyy/SponsorBlockServer/graphs/contributors">SponsorBlockServer contributors</a> and
|
||||||
|
<a href="https://github.com/ajayyy/SponsorBlockSite/graphs/contributors">SponsorBlockSite contributors</a> such
|
||||||
|
as <a href="https://github.com/NDevTK">NDev</a>, <a href="https://github.com/Joe-Dowd">Joe Dowd</a>,
|
||||||
|
<a href="https://mchang.name/">Michael Chang</a> and more.
|
||||||
|
</p>
|
||||||
|
|
||||||
<h1>__MSG_helpPageTooSlow__</h1>
|
<p>
|
||||||
|
Logo by <a href="https://github.com/munadikieh">Munadi Kiehl</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>Some icons made by <a href="https://www.flaticon.com/authors/gregor-cresnar" title="Gregor Cresnar">Gregor Cresnar</a> from <a href="https://www.flaticon.com/" title="Flaticon">www.flaticon.com</a> and are licensed by <a href="https://creativecommons.org/licenses/by/3.0/" title="Creative Commons BY 3.0" target="_blank">CC 3.0 BY</a></p>
|
||||||
__MSG_helpPageTooSlow1__
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h1>__MSG_helpPageCopyOfDatabase__</h1>
|
<p>Some icons made by <a href="https://www.flaticon.com/authors/freepik" title="Freepik">Freepik</a> from <a href="https://www.flaticon.com/" title="Flaticon">www.flaticon.com</a> and are licensed by <a href="https://creativecommons.org/licenses/by/3.0/" title="Creative Commons BY 3.0" target="_blank">CC 3.0 BY</a></p>
|
||||||
|
|
||||||
<p>
|
<p style="text-align: center;"><a href="/oss-attribution/attribution.txt">Open Source Licenses</a></p>
|
||||||
__MSG_helpPageCopyOfDatabase1__ <a href="https://sponsor.ajay.app/database">https://sponsor.ajay.app/database</a>. __MSG_helpPageCopyOfDatabase2__
|
</div>
|
||||||
</p>
|
</div>
|
||||||
|
|
||||||
<h1>__MSG_helpPageNews__</h1>
|
<div class="box2">
|
||||||
|
<p style="margin-bottom: 0; margin-top: 0" class="bigText center">__MSG_helpPageReviewOptions__</p>
|
||||||
|
|
||||||
<p>
|
<p class="smallText" style="margin-bottom: 0; margin-top: 0">
|
||||||
See <a href="https://sponsor.ajay.app/news">https://sponsor.ajay.app/news</a>.
|
__MSG_helpPageFeatureDisclaimer__
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h1>__MSG_helpPageSourceCode__</h1>
|
|
||||||
|
|
||||||
<h4 style="display: inline">Client:</h4>
|
|
||||||
<!-- Github logo -->
|
|
||||||
<a href="https://github.com/ajayyy/SponsorBlock"><svg aria-hidden="true" version="1.1" viewBox="0 0 16 16" height="58px" style="padding-left: 15px"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"></path></svg></a>
|
|
||||||
|
|
||||||
<h4 style="display: inline; padding-left: 20px">Server:</h4>
|
|
||||||
<!-- Github logo -->
|
|
||||||
<a href="https://github.com/ajayyy/SponsorBlockServer"><svg aria-hidden="true" version="1.1" viewBox="0 0 16 16" height="58px" style="padding-left: 15px"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"></path></svg></a>
|
|
||||||
|
|
||||||
<h1>__MSG_Credits__</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Thanks to all <a href="https://github.com/ajayyy/SponsorBlock/graphs/contributors">SponsorBlock contributors</a>,
|
|
||||||
<a href="https://github.com/ajayyy/SponsorBlockServer/graphs/contributors">SponsorBlockServer contributors</a> and
|
|
||||||
<a href="https://github.com/ajayyy/SponsorBlockSite/graphs/contributors">SponsorBlockSite contributors</a> such
|
|
||||||
as <a href="https://github.com/NDevTK">NDev</a>, <a href="https://github.com/Joe-Dowd">Joe Dowd</a>,
|
|
||||||
<a href="https://mchang.name/">Michael Chang</a> and more.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>The awesome <a href="https://github.com/omarroth/invidious/wiki/API">Invidious API</a> is used to grab the time the video was published.</p>
|
|
||||||
|
|
||||||
<p>Some icons made by <a href="https://www.flaticon.com/authors/gregor-cresnar" title="Gregor Cresnar">Gregor Cresnar</a> from <a href="https://www.flaticon.com/" title="Flaticon">www.flaticon.com</a> and are licensed by <a href="https://creativecommons.org/licenses/by/3.0/" title="Creative Commons BY 3.0" target="_blank">CC 3.0 BY</a></p>
|
|
||||||
|
|
||||||
<p>Some icons made by <a href="https://www.flaticon.com/authors/freepik" title="Freepik">Freepik</a> from <a href="https://www.flaticon.com/" title="Flaticon">www.flaticon.com</a> and are licensed by <a href="https://creativecommons.org/licenses/by/3.0/" title="Creative Commons BY 3.0" target="_blank">CC 3.0 BY</a></p>
|
|
||||||
|
|
||||||
<p style="text-align: center;"><a href="/oss-attribution/attribution.txt">Open Source Licenses</a></p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
<iframe class="optionsFrame" src="../options/options.html#embed" style="border: none"></iframe>
|
||||||
|
</div>
|
||||||
|
</span>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -29,7 +29,11 @@ html {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.bigText {
|
.bigText {
|
||||||
font-size: 50px;
|
font-size: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.smallText {
|
||||||
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
@@ -46,7 +50,6 @@ body {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.container {
|
.container {
|
||||||
max-width: 60%;
|
|
||||||
margin: auto;
|
margin: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -168,7 +171,7 @@ p,li,code,a {
|
|||||||
|
|
||||||
.optionsFrame {
|
.optionsFrame {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 500px;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.previewImage {
|
.previewImage {
|
||||||
@@ -194,14 +197,59 @@ img {
|
|||||||
h1,h2,h3,h4,h5,h6 {
|
h1,h2,h3,h4,h5,h6 {
|
||||||
color: var(--title);
|
color: var(--title);
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|
||||||
|
font-size: 25px;
|
||||||
|
margin: 5px 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
svg {
|
svg {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
#sbDonate {
|
.donate-ask {
|
||||||
font-size: 10px;
|
background-color: rgb(26, 26, 26, 0.95);
|
||||||
|
border-radius: 15px;
|
||||||
|
|
||||||
|
text-align: center;
|
||||||
|
padding: 10px;
|
||||||
|
|
||||||
|
margin: 0.7em 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.donate-ask .donate-text {
|
||||||
|
margin-top: 10px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.donate-ask .donate-text img {
|
||||||
|
height: 2rem;
|
||||||
|
border-radius: 100%;
|
||||||
|
|
||||||
|
margin-right: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.donate-ask a {
|
||||||
|
text-decoration: none;
|
||||||
|
color: #eee;
|
||||||
|
border-radius: 15px;
|
||||||
|
background-color: rgb(58, 58, 58, 0.9);
|
||||||
|
padding: 10px;
|
||||||
|
|
||||||
|
transition: background-color 0.3s ease;
|
||||||
|
|
||||||
|
display: block;
|
||||||
|
width: fit-content;
|
||||||
|
margin: auto;
|
||||||
|
margin-top: 10px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.donate-ask a:hover {
|
||||||
|
background-color: rgba(70, 70, 70, 0.9);
|
||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (orientation:portrait) {
|
@media screen and (orientation:portrait) {
|
||||||
@@ -352,3 +400,49 @@ svg {
|
|||||||
.hidden {
|
.hidden {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.help-page-flex-container {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
gap: 20px;
|
||||||
|
margin-left: 20px;
|
||||||
|
margin-right: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left-sidebar {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
|
||||||
|
flex: 1 1 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box2 {
|
||||||
|
flex: 1 1 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Mobile */
|
||||||
|
@media only screen and (max-width: 600px) {
|
||||||
|
.box1 {
|
||||||
|
order: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box2 {
|
||||||
|
order: 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box3 {
|
||||||
|
order: 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left-sidebar {
|
||||||
|
display: contents;
|
||||||
|
}
|
||||||
|
|
||||||
|
.help-page-flex-container {
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.optionsFrame {
|
||||||
|
height: 500px;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -365,7 +365,7 @@
|
|||||||
<div class="small-description">__MSG_showTimeWithSkipsDescription__</div>
|
<div class="small-description">__MSG_showTimeWithSkipsDescription__</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div data-type="toggle" data-sync="cleanPopup" data-no-safari="true">
|
<div data-type="toggle" data-sync="cleanPopup">
|
||||||
<div class="switch-container">
|
<div class="switch-container">
|
||||||
<label class="switch">
|
<label class="switch">
|
||||||
<input id="cleanPopup" type="checkbox" checked>
|
<input id="cleanPopup" type="checkbox" checked>
|
||||||
@@ -375,6 +375,20 @@
|
|||||||
__MSG_cleanPopup__
|
__MSG_cleanPopup__
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<br/>
|
||||||
|
|
||||||
|
<div data-type="toggle" data-sync="hideSegmentCreationInPopup">
|
||||||
|
<div class="switch-container">
|
||||||
|
<label class="switch">
|
||||||
|
<input id="hideSegmentCreationInPopup" type="checkbox" checked>
|
||||||
|
<span class="slider round"></span>
|
||||||
|
</label>
|
||||||
|
<label class="switch-label" for="hideSegmentCreationInPopup">
|
||||||
|
__MSG_hideSegmentCreationInPopup__
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div data-type="toggle" data-sync="darkMode">
|
<div data-type="toggle" data-sync="darkMode">
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ class ChapterVoteComponent extends React.Component<ChapterVoteProps, ChapterVote
|
|||||||
draggable="false"
|
draggable="false"
|
||||||
title={chrome.i18n.getMessage("upvoteButtonInfo")}
|
title={chrome.i18n.getMessage("upvoteButtonInfo")}
|
||||||
onClick={(e) => this.vote(e, 1)}>
|
onClick={(e) => this.vote(e, 1)}>
|
||||||
<ThumbsUpSvg className="playerButtonImage"
|
<ThumbsUpSvg className="playerButtonImage sbChapterVoteButton"
|
||||||
fill={Config.config.colorPalette.white}
|
fill={Config.config.colorPalette.white}
|
||||||
width={this.state.size} height={this.state.size} />
|
width={this.state.size} height={this.state.size} />
|
||||||
</button>
|
</button>
|
||||||
@@ -102,7 +102,7 @@ class ChapterVoteComponent extends React.Component<ChapterVoteProps, ChapterVote
|
|||||||
}
|
}
|
||||||
}}>
|
}}>
|
||||||
<ThumbsDownSvg
|
<ThumbsDownSvg
|
||||||
className="playerButtonImage"
|
className="playerButtonImage sbChapterVoteButton"
|
||||||
fill={downvoteButtonColor(this.state.segment ? [this.state.segment] : null, SkipNoticeAction.Downvote, SkipNoticeAction.Downvote)}
|
fill={downvoteButtonColor(this.state.segment ? [this.state.segment] : null, SkipNoticeAction.Downvote, SkipNoticeAction.Downvote)}
|
||||||
width={this.state.size}
|
width={this.state.size}
|
||||||
height={this.state.size} />
|
height={this.state.size} />
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import * as React from "react";
|
import * as React from "react";
|
||||||
import * as CompileConfig from "../../config.json";
|
import * as CompileConfig from "../../config.json";
|
||||||
import Config from "../config";
|
import Config from "../config";
|
||||||
import { ActionType, Category, ChannelIDStatus, ContentContainer, SponsorTime } from "../types";
|
import { ActionType, Category, ChannelIDStatus, ContentContainer, SponsorHideType, SponsorTime } from "../types";
|
||||||
import SubmissionNoticeComponent from "./SubmissionNoticeComponent";
|
import SubmissionNoticeComponent from "./SubmissionNoticeComponent";
|
||||||
import { RectangleTooltip } from "../render/RectangleTooltip";
|
import { RectangleTooltip } from "../render/RectangleTooltip";
|
||||||
import SelectorComponent, { SelectorOption } from "./SelectorComponent";
|
import SelectorComponent, { SelectorOption } from "./SelectorComponent";
|
||||||
@@ -10,6 +10,7 @@ import { getFormattedTime, getFormattedTimeToSeconds } from "../../maze-utils/sr
|
|||||||
import { asyncRequestToServer } from "../utils/requests";
|
import { asyncRequestToServer } from "../utils/requests";
|
||||||
import { defaultPreviewTime } from "../utils/constants";
|
import { defaultPreviewTime } from "../utils/constants";
|
||||||
import { getVideo, getVideoDuration } from "../../maze-utils/src/video";
|
import { getVideo, getVideoDuration } from "../../maze-utils/src/video";
|
||||||
|
import { AnimationUtils } from "../../maze-utils/src/animationUtils";
|
||||||
|
|
||||||
export interface SponsorTimeEditProps {
|
export interface SponsorTimeEditProps {
|
||||||
index: number;
|
index: number;
|
||||||
@@ -242,6 +243,22 @@ class SponsorTimeEditComponent extends React.Component<SponsorTimeEditProps, Spo
|
|||||||
onChange={(e) => this.actionTypeSelectionChange(e)}>
|
onChange={(e) => this.actionTypeSelectionChange(e)}>
|
||||||
{this.getActionTypeOptions(sponsorTime)}
|
{this.getActionTypeOptions(sponsorTime)}
|
||||||
</select>
|
</select>
|
||||||
|
<img
|
||||||
|
className="voteButton hideSegmentSubmitButton"
|
||||||
|
title={chrome.i18n.getMessage("hideSegment")}
|
||||||
|
src={sponsorTime.hidden === SponsorHideType.Hidden ? chrome.runtime.getURL("icons/not_visible.svg") : chrome.runtime.getURL("icons/visible.svg")}
|
||||||
|
onClick={(e) => {
|
||||||
|
const stopAnimation = AnimationUtils.applyLoadingAnimation(e.currentTarget, 0.4);
|
||||||
|
stopAnimation();
|
||||||
|
|
||||||
|
if (sponsorTime.hidden === SponsorHideType.Hidden) {
|
||||||
|
sponsorTime.hidden = SponsorHideType.Visible;
|
||||||
|
} else {
|
||||||
|
sponsorTime.hidden = SponsorHideType.Hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.saveEditTimes();
|
||||||
|
}}/>
|
||||||
</div>
|
</div>
|
||||||
): ""}
|
): ""}
|
||||||
|
|
||||||
|
|||||||
@@ -77,6 +77,7 @@ interface SBConfig {
|
|||||||
shownDeArrowPromotion: boolean;
|
shownDeArrowPromotion: boolean;
|
||||||
showZoomToFillError2: boolean;
|
showZoomToFillError2: boolean;
|
||||||
cleanPopup: boolean;
|
cleanPopup: boolean;
|
||||||
|
hideSegmentCreationInPopup: boolean;
|
||||||
|
|
||||||
// Used to cache calculated text color info
|
// Used to cache calculated text color info
|
||||||
categoryPillColors: {
|
categoryPillColors: {
|
||||||
@@ -349,6 +350,7 @@ const syncDefaults = {
|
|||||||
shownDeArrowPromotion: false,
|
shownDeArrowPromotion: false,
|
||||||
showZoomToFillError2: true,
|
showZoomToFillError2: true,
|
||||||
cleanPopup: false,
|
cleanPopup: false,
|
||||||
|
hideSegmentCreationInPopup: false,
|
||||||
|
|
||||||
categoryPillColors: {},
|
categoryPillColors: {},
|
||||||
|
|
||||||
|
|||||||
@@ -712,7 +712,10 @@ async function startSponsorSchedule(includeIntersectingSegments = false, current
|
|||||||
if (incorrectVideoCheck(videoID, currentSkip)) return;
|
if (incorrectVideoCheck(videoID, currentSkip)) return;
|
||||||
forceVideoTime ||= Math.max(getCurrentTime(), getVirtualTime());
|
forceVideoTime ||= Math.max(getCurrentTime(), getVirtualTime());
|
||||||
|
|
||||||
if ((shouldSkip(currentSkip) || sponsorTimesSubmitting?.some((segment) => segment.segment === currentSkip.segment))) {
|
if ((shouldSkip(currentSkip)
|
||||||
|
|| sponsorTimesSubmitting?.some((segment) => segment.segment === currentSkip.segment
|
||||||
|
&& segment.actionType !== ActionType.Chapter
|
||||||
|
&& segment.hidden === SponsorHideType.Visible))) {
|
||||||
if (forceVideoTime >= skipTime[0] - skipBuffer && (forceVideoTime < skipTime[1] || skipTime[1] < skipTime[0])) {
|
if (forceVideoTime >= skipTime[0] - skipBuffer && (forceVideoTime < skipTime[1] || skipTime[1] < skipTime[0])) {
|
||||||
skipToTime({
|
skipToTime({
|
||||||
v: getVideo(),
|
v: getVideo(),
|
||||||
@@ -816,6 +819,7 @@ async function startSponsorSchedule(includeIntersectingSegments = false, current
|
|||||||
if (Config.config.showUpcomingNotice && getCurrentTime() < skippingSegments[0].segment[0]
|
if (Config.config.showUpcomingNotice && getCurrentTime() < skippingSegments[0].segment[0]
|
||||||
&& !sponsorTimesSubmitting?.some((segment) => segment.segment === currentSkip.segment)
|
&& !sponsorTimesSubmitting?.some((segment) => segment.segment === currentSkip.segment)
|
||||||
&& [ActionType.Skip, ActionType.Mute].includes(skippingSegments[0].actionType)
|
&& [ActionType.Skip, ActionType.Mute].includes(skippingSegments[0].actionType)
|
||||||
|
&& getCategorySelection(skippingSegments[0])?.option > CategorySkipOption.ShowOverlay
|
||||||
&& !getVideo()?.paused) {
|
&& !getVideo()?.paused) {
|
||||||
const maxPopupTime = 3000;
|
const maxPopupTime = 3000;
|
||||||
const timeUntilPopup = Math.max(0, offsetDelayTime - maxPopupTime);
|
const timeUntilPopup = Math.max(0, offsetDelayTime - maxPopupTime);
|
||||||
@@ -1189,7 +1193,7 @@ async function sponsorsLookup(keepOldSubmissions = true, ignoreCache = false) {
|
|||||||
const receivedSegments = segmentData.segments;
|
const receivedSegments = segmentData.segments;
|
||||||
|
|
||||||
if (receivedSegments && receivedSegments.length) {
|
if (receivedSegments && receivedSegments.length) {
|
||||||
sponsorDataFound = true;
|
sponsorDataFound = receivedSegments.findIndex((segment) => getCategorySelection(segment).option !== CategorySkipOption.Disabled) !== -1;
|
||||||
|
|
||||||
// Check if any old submissions should be kept
|
// Check if any old submissions should be kept
|
||||||
if (sponsorTimes !== null && keepOldSubmissions) {
|
if (sponsorTimes !== null && keepOldSubmissions) {
|
||||||
@@ -1425,7 +1429,8 @@ function updatePreviewBar(): void {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sponsorTimesSubmitting.forEach((segment) => {
|
sponsorTimesSubmitting.forEach((segment) => {
|
||||||
if (segment.actionType !== ActionType.Chapter || segment.segment.length > 1) {
|
if (segment.hidden === SponsorHideType.Visible
|
||||||
|
&& (segment.actionType !== ActionType.Chapter || segment.segment.length > 1)) {
|
||||||
previewBarSegments.push({
|
previewBarSegments.push({
|
||||||
segment: segment.segment as [number, number],
|
segment: segment.segment as [number, number],
|
||||||
category: segment.category,
|
category: segment.category,
|
||||||
@@ -1938,7 +1943,7 @@ function shouldAutoSkip(segment: SponsorTime): boolean {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function shouldSkip(segment: SponsorTime): boolean {
|
function shouldSkip(segment: SponsorTime): boolean {
|
||||||
return (segment.actionType !== ActionType.Full
|
return segment.hidden === SponsorHideType.Visible && (segment.actionType !== ActionType.Full
|
||||||
&& getCategorySelection(segment)?.option > CategorySkipOption.ShowOverlay)
|
&& getCategorySelection(segment)?.option > CategorySkipOption.ShowOverlay)
|
||||||
|| (Config.config.autoSkipOnMusicVideos && sponsorTimes?.some((s) => s.category === "music_offtopic")
|
|| (Config.config.autoSkipOnMusicVideos && sponsorTimes?.some((s) => s.category === "music_offtopic")
|
||||||
&& segment.actionType === ActionType.Skip)
|
&& segment.actionType === ActionType.Skip)
|
||||||
@@ -2133,6 +2138,7 @@ function updateSponsorTimesSubmitting(getFromConfig = true) {
|
|||||||
category: segmentTime.category,
|
category: segmentTime.category,
|
||||||
actionType: segmentTime.actionType,
|
actionType: segmentTime.actionType,
|
||||||
description: segmentTime.description,
|
description: segmentTime.description,
|
||||||
|
hidden: segmentTime.hidden,
|
||||||
source: segmentTime.source
|
source: segmentTime.source
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,6 +47,6 @@ async function init() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!showDonationLink()) {
|
if (!showDonationLink()) {
|
||||||
document.getElementById("sbDonate").style.display = "none";
|
document.getElementById("donate-component").style.display = "none";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -103,15 +103,18 @@ export const PopupComponent = () => {
|
|||||||
<button id="refreshSegmentsButton" title={chrome.i18n.getMessage("refreshSegments")} onClick={(e) => {
|
<button id="refreshSegmentsButton" title={chrome.i18n.getMessage("refreshSegments")} onClick={(e) => {
|
||||||
const stopAnimation = AnimationUtils.applyLoadingAnimation(e.currentTarget, 0.3);
|
const stopAnimation = AnimationUtils.applyLoadingAnimation(e.currentTarget, 0.3);
|
||||||
|
|
||||||
loadSegments({
|
sendMessage({ message: "refreshSegments" }).then(() => {
|
||||||
updating: true,
|
loadSegments({
|
||||||
setStatus,
|
updating: true,
|
||||||
setChannelWhitelisted,
|
setStatus,
|
||||||
setVideoID,
|
setChannelWhitelisted,
|
||||||
setCurrentTime,
|
setVideoID,
|
||||||
setSegments,
|
setCurrentTime,
|
||||||
setLoopedChapter
|
setSegments,
|
||||||
}).then(() => stopAnimation());
|
setLoopedChapter
|
||||||
|
}).then(() => stopAnimation());
|
||||||
|
});
|
||||||
|
|
||||||
}}>
|
}}>
|
||||||
<img src="/icons/refresh.svg" alt="Refresh icon" id="refreshSegments" />
|
<img src="/icons/refresh.svg" alt="Refresh icon" id="refreshSegments" />
|
||||||
</button>
|
</button>
|
||||||
@@ -217,7 +220,7 @@ export const PopupComponent = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
!Config.config.cleanPopup &&
|
!Config.config.cleanPopup && !Config.config.hideSegmentCreationInPopup &&
|
||||||
<SegmentSubmissionComponent
|
<SegmentSubmissionComponent
|
||||||
videoID={videoID || ""}
|
videoID={videoID || ""}
|
||||||
status={status.status}
|
status={status.status}
|
||||||
@@ -262,6 +265,10 @@ export const PopupComponent = () => {
|
|||||||
<a href="https://matrix.to/#/#sponsor:ajay.app?via=ajay.app&via=matrix.org&via=mozilla.org" target="_blank" rel="noreferrer">
|
<a href="https://matrix.to/#/#sponsor:ajay.app?via=ajay.app&via=matrix.org&via=mozilla.org" target="_blank" rel="noreferrer">
|
||||||
Matrix
|
Matrix
|
||||||
</a>
|
</a>
|
||||||
|
<a href="https://wiki.sponsor.ajay.app/w/Guidelines" target="_blank" rel="noreferrer">
|
||||||
|
{chrome.i18n.getMessage("guidelines")}
|
||||||
|
</a>
|
||||||
|
<br />
|
||||||
<a id="debugLogs"
|
<a id="debugLogs"
|
||||||
onClick={async () => {
|
onClick={async () => {
|
||||||
const logs = await sendMessage({ message: "getLogs" }) as LogResponse;
|
const logs = await sendMessage({ message: "getLogs" }) as LogResponse;
|
||||||
|
|||||||
@@ -237,7 +237,7 @@ function SegmentListItem({ segment, videoID, currentTime, isVip, startingLooped,
|
|||||||
&& [SponsorHideType.Visible, SponsorHideType.Hidden].includes(segment.hidden)) &&
|
&& [SponsorHideType.Visible, SponsorHideType.Hidden].includes(segment.hidden)) &&
|
||||||
<img
|
<img
|
||||||
className="voteButton"
|
className="voteButton"
|
||||||
title="Hide Segment"
|
title={chrome.i18n.getMessage("hideSegment")}
|
||||||
src={hidden === SponsorHideType.Hidden ? chrome.runtime.getURL("icons/not_visible.svg") : chrome.runtime.getURL("icons/visible.svg")}
|
src={hidden === SponsorHideType.Hidden ? chrome.runtime.getURL("icons/not_visible.svg") : chrome.runtime.getURL("icons/visible.svg")}
|
||||||
onClick={(e) => {
|
onClick={(e) => {
|
||||||
const stopAnimation = AnimationUtils.applyLoadingAnimation(e.currentTarget, 0.4);
|
const stopAnimation = AnimationUtils.applyLoadingAnimation(e.currentTarget, 0.4);
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { getCurrentPageTitle } from "../../maze-utils/src/elements";
|
||||||
import { getChannelIDInfo, getVideoDuration } from "../../maze-utils/src/video";
|
import { getChannelIDInfo, getVideoDuration } from "../../maze-utils/src/video";
|
||||||
import Config from "../config";
|
import Config from "../config";
|
||||||
import { CategorySelection, CategorySkipOption, SponsorSourceType, SponsorTime } from "../types";
|
import { CategorySelection, CategorySkipOption, SponsorSourceType, SponsorTime } from "../types";
|
||||||
@@ -19,7 +20,9 @@ export enum SkipRuleAttribute {
|
|||||||
Description = "chapter.name",
|
Description = "chapter.name",
|
||||||
Source = "chapter.source",
|
Source = "chapter.source",
|
||||||
ChannelID = "channel.id",
|
ChannelID = "channel.id",
|
||||||
ChannelName = "channel.name"
|
ChannelName = "channel.name",
|
||||||
|
VideoDuration = "video.duration",
|
||||||
|
Title = "video.title"
|
||||||
}
|
}
|
||||||
|
|
||||||
export enum SkipRuleOperator {
|
export enum SkipRuleOperator {
|
||||||
@@ -116,6 +119,10 @@ function getSkipRuleValue(segment: SponsorTime | VideoLabelsCacheData, rule: Adv
|
|||||||
case SkipRuleAttribute.ChannelName:
|
case SkipRuleAttribute.ChannelName:
|
||||||
getChannelIDInfo()
|
getChannelIDInfo()
|
||||||
return getChannelIDInfo().author;
|
return getChannelIDInfo().author;
|
||||||
|
case SkipRuleAttribute.VideoDuration:
|
||||||
|
return getVideoDuration();
|
||||||
|
case SkipRuleAttribute.Title:
|
||||||
|
return getCurrentPageTitle() || "";
|
||||||
default:
|
default:
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user