Compare commits

...

1221 Commits

Author SHA1 Message Date
Ajay Ramachandran
bf55b0f233 Merge pull request #415 from ajayyy/react
Fixed minutes not displaying zero when hours are displayed
2020-07-18 22:23:46 -04:00
Ajay Ramachandran
df1d3b401c Update version number 2020-07-18 22:19:47 -04:00
Ajay Ramachandran
4d55a71619 Fixed minutes not displaying zero when hours are displayed 2020-07-18 22:19:13 -04:00
Ajay Ramachandran
29e6ebab29 Merge pull request #414 from ajayyy/react
Improvements
2020-07-18 22:11:44 -04:00
Ajay Ramachandran
97e80c6f4e New Crowdin updates (#407)
* New translations messages.json (Romanian)

* New translations messages.json (German)

* New translations messages.json (French)

* New translations messages.json (Swedish)

* New translations messages.json (Japanese)

* New translations messages.json (Portuguese, Brazilian)

* New translations messages.json (Portuguese, Brazilian)

* New translations messages.json (French)

* New translations messages.json (German)
2020-07-18 21:22:23 -04:00
Ajay Ramachandran
3ac730c053 Fix errors when response fails 2020-07-18 21:21:53 -04:00
Ajay Ramachandran
d25951f313 Update version number 2020-07-18 21:20:36 -04:00
Ajay Ramachandran
886e134010 Made all preview segments auto skip 2020-07-18 21:20:18 -04:00
Ajay Ramachandran
cde50b0cb5 Update README.md 2020-07-18 17:52:47 -04:00
Ajay Ramachandran
19ac01a17c Updated description 2020-07-18 15:24:31 -04:00
Ajay Ramachandran
e9e53d1d43 Merge pull request #401 from ajayyy/react
Improvements
2020-07-12 23:09:43 -04:00
Ajay Ramachandran
07ab99a8d0 New Crowdin updates (#400)
* New translations messages.json (Romanian)

* New translations messages.json (German)

* New translations messages.json (Portuguese)

* New translations messages.json (Polish)

* New translations messages.json (Italian)

* New translations messages.json (French)

* New translations messages.json (Finnish)

* New translations messages.json (Spanish)

* New translations messages.json (Russian)

* New translations messages.json (Chinese Simplified)

* New translations messages.json (Ukrainian)

* New translations messages.json (Turkish)

* New translations messages.json (Swedish)

* New translations messages.json (Portuguese, Brazilian)

* New translations messages.json (German)
2020-07-12 23:08:04 -04:00
Ajay Ramachandran
896120d311 Update version number 2020-07-12 23:07:55 -04:00
Ajay Ramachandran
3dc6563048 Default to blank category when submitting 2020-07-12 20:59:35 -04:00
Ajay Ramachandran
2d74ce2093 Added hours to time with skips 2020-07-12 18:52:36 -04:00
Ajay Ramachandran
eac4ca4d71 Add edge 2020-07-08 21:43:26 -04:00
Ajay Ramachandran
399a5af990 Update README.md 2020-07-07 17:48:36 -04:00
Ajay Ramachandran
48861439b7 Don't run time without skips on mobile or invidious 2020-07-05 00:21:26 -04:00
Ajay Ramachandran
bd60875c66 Fix invidious css issues 2020-07-05 00:17:54 -04:00
Ajay Ramachandran
fe8f25fe23 Hide submit button on invidious 2020-07-05 00:11:29 -04:00
Ajay Ramachandran
87f3cf3881 Fixed invidious preview bar 2020-07-05 00:09:18 -04:00
Ajay Ramachandran
0b9df8a45c Remove submitting on mobile 2020-07-05 00:07:10 -04:00
Ajay Ramachandran
59c5b7eefe Remove unused function 2020-07-05 00:05:36 -04:00
Ajay Ramachandran
dea9dac20a Fix crashing on mobile youtube 2020-07-05 00:03:52 -04:00
Ajay Ramachandran
684cd676e5 Delete empty unsubmitted submissions when delete is called 2020-07-04 15:34:29 -04:00
Ajay Ramachandran
929e3396cd New Crowdin updates (#386)
* New translations messages.json (Romanian)

* New translations messages.json (German)

* New translations messages.json (Turkish)

* New translations messages.json (Ukrainian)

* New translations messages.json (Chinese Simplified)

* New translations messages.json (Slovak)

* New translations messages.json (Russian)

* New translations messages.json (French)

* New translations messages.json (Dutch)

* New translations messages.json (Portuguese, Brazilian)

* New translations messages.json (Finnish)

* New translations messages.json (Hungarian)

* New translations messages.json (Swedish)

* New translations messages.json (Bulgarian)

* New translations messages.json (Spanish)

* New translations messages.json (Gujarati)

* New translations messages.json (Polish)

* New translations messages.json (German)

* New translations messages.json (French)

* New translations messages.json (German)

* New translations messages.json (Swedish)

* New translations messages.json (Portuguese, Brazilian)

* New translations messages.json (Portuguese, Brazilian)

* New translations messages.json (German)

* New translations messages.json (Russian)

* New translations messages.json (Chinese Simplified)
2020-07-03 21:25:13 -04:00
Ajay Ramachandran
fad3284c4f Merge pull request #399 from ajayyy/react
Save category in preview submissions and other fixes
2020-07-03 21:20:53 -04:00
Ajay Ramachandran
c69047c7f9 Show short names when hovering the preview bar 2020-07-03 21:16:38 -04:00
Ajay Ramachandran
4fc7a69dd5 Merge branch 'master' of https://github.com/ajayyy/SponsorBlock into react 2020-07-03 20:58:15 -04:00
Ajay Ramachandran
dd4c903c6a Merge pull request #395 from NDevTK/patch-1
Added config option for excluding skipped content from the video duration
2020-07-03 20:58:01 -04:00
Ajay Ramachandran
c9a2edaf3d Remove unused function 2020-07-03 20:56:45 -04:00
Ajay Ramachandran
8d41af073d Added option to options page 2020-07-03 20:55:58 -04:00
Ajay Ramachandran
bfafcd07cc Fix font issue, NaN issue and remove hide real time 2020-07-03 19:56:08 -04:00
Ajay Ramachandran
77abc1d031 Reuse existing functions 2020-07-03 19:44:15 -04:00
Ajay Ramachandran
809de0e0fd Increased version number 2020-07-03 19:31:18 -04:00
Ajay Ramachandran
e55d1f5115 Removed intermission category and renamed intro to intermission. 2020-07-03 19:31:00 -04:00
Ajay Ramachandran
037bd511b0 Remove keybind restriction.
Closes https://github.com/ajayyy/SponsorBlock/issues/379
2020-07-03 19:07:05 -04:00
Ajay Ramachandran
1265eeb941 Save category with the preview submissions. 2020-07-02 23:34:13 -04:00
Ajay Ramachandran
b3a94142c3 Allow colon on invidious options 2020-07-02 21:39:00 -04:00
Ajay Ramachandran
367657e44e Added intermission category 2020-07-02 21:37:38 -04:00
Ajay Ramachandran
955ee32b46 Remove category update message 2020-07-02 21:13:07 -04:00
Ajay Ramachandran
cd0b1f4a31 Wait for permissions before reloading 2020-07-02 20:56:41 -04:00
Ajay Ramachandran
5c4f0c960c Reload after importing options 2020-07-02 20:50:06 -04:00
Ajay Ramachandran
5ac6dd1a7f Update description 2020-07-02 20:48:39 -04:00
NDevTK
8d53e776b8 Do not show if skipDuration is 0 2020-06-29 19:35:11 +01:00
NDevTK
ec2950786f Skip if skipDuration is 0 2020-06-29 17:52:28 +01:00
Ajay Ramachandran
f33fa2f621 Moved Android to official 2020-06-27 11:38:49 -04:00
NDevTK
fd77748b15 Updated config 2020-06-27 15:20:00 +01:00
NDevTK
3b59389cab Added different ui option 2020-06-27 15:16:36 +01:00
Ajay Ramachandran
e6f53a3ef9 Update README.md 2020-06-27 00:49:55 -04:00
Ajay Ramachandran
b2f1a737f5 Remove port without pre-built release 2020-06-27 00:44:38 -04:00
Ajay Ramachandran
e2c7f4d16f Merge pull request #397 from daniel11420/patch-2
Add more unofficial ports to the Unofficial Ports section in the README
2020-06-27 00:44:00 -04:00
Ajay Ramachandran
4a89dfaac5 Merge pull request #396 from daniel11420/patch-1
Fix typo in README
2020-06-27 00:42:50 -04:00
daniel11420
e47330a79c Add more unofficial ports to the Unofficial Ports section in the README 2020-06-27 06:38:29 +02:00
daniel11420
72fc3620bc Fix typo in README 2020-06-27 06:32:21 +02:00
NDevTK
0ebd7f4f8d Added duration override 2020-06-26 19:33:19 +01:00
NDevTK
beea8181a1 Added config option 2020-06-26 19:19:51 +01:00
Ajay Ramachandran
f0716e8bbb Merge pull request #389 from kittenparry/patch-1
Fix typo in Chrome Users badge
2020-06-22 18:51:02 -04:00
Edvin Boul
783ea5cf5b Fix typo in Chrome Users badge
Chome -> Chrome
2020-06-22 18:29:08 +03:00
Ajay Ramachandran
42a813d325 Merge pull request #388 from ajayyy/react
Another hotfix for name string issue
2020-06-21 15:54:25 -04:00
Ajay Ramachandran
e6dfb5041e Another hotfix for name string issue 2020-06-21 15:53:26 -04:00
Ajay Ramachandran
c857308038 Merge pull request #387 from ajayyy/react
Fixed wrong string removed
2020-06-21 12:55:27 -04:00
Ajay Ramachandran
f73abdbabc Fixed wrong string removed 2020-06-21 12:55:10 -04:00
Ajay Ramachandran
43184e466f Merge pull request #385 from ajayyy/react
Fixed options page issues
2020-06-20 00:20:01 -04:00
Ajay Ramachandran
627c7769b0 New Crowdin updates (#380)
* New translations messages.json (French)

* New translations messages.json (French)

* New translations messages.json (French)

* New translations messages.json (French)
2020-06-19 18:54:17 -04:00
Ajay Ramachandran
759dba9cd3 Increased version number 2020-06-19 18:53:39 -04:00
Ajay Ramachandran
7cac2c4045 Fix help page not hiding options title bar 2020-06-19 18:53:24 -04:00
Ajay Ramachandran
27bb44189f Remove name from localisation 2020-06-19 18:49:49 -04:00
Ajay Ramachandran
4c44f3da25 Merge pull request #378 from ajayyy/react
Fixed missing options from options page
2020-06-16 22:01:55 -04:00
Ajay Ramachandran
e917a3e94a New Crowdin translations (#369)
* New translations messages.json (French)

* New translations messages.json (French)

* New translations messages.json (Dutch)

* New translations messages.json (Portuguese, Brazilian)

* New translations messages.json (Finnish)

* New translations messages.json (German)

* New translations messages.json (German)

* New translations messages.json (Hungarian)

* New translations messages.json (Swedish)

* New translations messages.json (Swedish)

* New translations messages.json (Bulgarian)

* New translations messages.json (Finnish)

* New translations messages.json (French)
2020-06-16 22:01:08 -04:00
Ajay Ramachandran
1570bfdd0a Fixed missing options from options page 2020-06-16 22:00:49 -04:00
Ajay Ramachandran
e511de9f88 Update README.md 2020-06-14 20:29:12 -04:00
drlellinger
e694393edc Improve German translation (#371) 2020-06-10 19:53:35 -04:00
Ajay Ramachandran
e1cb86e6b4 New Crowdin translations (#368)
* New translations messages.json (Romanian)

* New translations messages.json (German)
2020-06-07 21:24:15 -04:00
Ajay Ramachandran
22221ba9bd Update version number 2020-06-07 21:21:38 -04:00
Ajay Ramachandran
9ad67c1a03 Merge pull request #363 from ajayyy/react
Category Improvements
2020-06-07 11:30:33 -04:00
Ajay Ramachandran
53071a9291 New Crowdin translations (#362)
* New translations messages.json (Portuguese, Brazilian)

* New translations messages.json (Swedish)

* New translations messages.json (Ukrainian)

* New translations messages.json (Chinese Simplified)

* New translations messages.json (Russian)

* New translations messages.json (Turkish)

* New translations messages.json (Bulgarian)

* New translations messages.json (French)

* New translations messages.json (Spanish)

* New translations messages.json (German)

* New translations messages.json (Finnish)

* New translations messages.json (Portuguese)

* New translations messages.json (Italian)

* New translations messages.json (Dutch)

* New translations messages.json (Polish)

* New translations messages.json (Turkish)

* New translations messages.json (Chinese Simplified)

* New translations messages.json (Romanian)

* New translations messages.json (Romanian)
2020-06-07 11:30:10 -04:00
Ajay Ramachandran
56e40b791f Increased version number 2020-06-07 11:28:41 -04:00
Ajay Ramachandran
93316bf463 Added option to disable notification 2020-06-07 11:27:35 -04:00
Ajay Ramachandran
3f98e2fc73 Remove options page header on help page 2020-06-07 11:21:21 -04:00
Ajay Ramachandran
9f4fec2a43 Added category update info on the notice 2020-06-07 11:16:24 -04:00
Ajay Ramachandran
89cc6ed184 Added "read the guidelines button. 2020-06-05 21:38:38 -04:00
Ajay Ramachandran
730d966019 Lowered category description width 2020-06-05 21:26:07 -04:00
Ajay Ramachandran
c509b8807c Shortened sponsor description 2020-06-05 19:37:39 -04:00
Ajay Ramachandran
7de907fa23 Added help button to submission notice 2020-06-04 21:46:56 -04:00
Ajay Ramachandran
b4e03ae055 Added category descriptions 2020-06-03 21:00:32 -04:00
Ajay Ramachandran
c9460bd6c6 Added short category names 2020-06-03 20:42:38 -04:00
Ajay Ramachandran
d9800b3c14 Added options page to help page as iframe 2020-06-03 20:31:14 -04:00
Ajay Ramachandran
fa7f577177 Fix skip options 2020-06-03 20:30:25 -04:00
Ajay Ramachandran
ca2727655e Added customizable seek bar colors 2020-06-03 20:20:02 -04:00
Ajay Ramachandran
28cddf92d5 Merge pull request #358 from ajayyy/react
Categories Improvements
2020-06-02 19:40:11 -04:00
Ajay Ramachandran
465a6dde9b New Crowdin translations (#355)
* New translations messages.json (Bulgarian)

* New translations messages.json (Italian)

* New translations messages.json (German)

* New translations messages.json (French)

* New translations messages.json (Bulgarian)

* New translations messages.json (Portuguese, Brazilian)

* New translations messages.json (Russian)

* New translations messages.json (Chinese Simplified)

* New translations messages.json (Ukrainian)

* New translations messages.json (Swedish)

* New translations messages.json (Slovak)

* New translations messages.json (Turkish)

* New translations messages.json (Portuguese)

* New translations messages.json (Polish)

* New translations messages.json (German)

* New translations messages.json (German)

* New translations messages.json (Russian)

* New translations messages.json (German)

* New translations messages.json (Dutch)

* New translations messages.json (Portuguese, Brazilian)

* New translations messages.json (Swedish)

* New translations messages.json (Ukrainian)

* New translations messages.json (Chinese Simplified)

* New translations messages.json (Russian)

* New translations messages.json (Turkish)

* New translations messages.json (Bulgarian)

* New translations messages.json (French)

* New translations messages.json (German)

* New translations messages.json (Portuguese)

* New translations messages.json (Italian)

* New translations messages.json (Dutch)

* New translations messages.json (Polish)

* New translations messages.json (Chinese Simplified)

* New translations messages.json (Finnish)

* New translations messages.json (Gujarati)

* New translations messages.json (Gujarati)

* New translations messages.json (Spanish)

* New translations messages.json (French)

* New translations messages.json (French)

* New translations messages.json (French)

* New translations messages.json (French)

* New translations messages.json (Spanish)

* New translations messages.json (French)

* New translations messages.json (Spanish)

* New translations messages.json (Polish)

* New translations messages.json (French)

* New translations messages.json (Polish)
2020-06-02 19:38:04 -04:00
Ajay Ramachandran
5336399365 Increase version number 2020-06-02 19:37:53 -04:00
Ajay Ramachandran
3f69b19e23 Remove duplicate vote error message 2020-05-25 22:27:39 -04:00
Ajay Ramachandran
23103f1274 Made preview submissions always autoskip 2020-05-25 22:21:11 -04:00
Ajay Ramachandran
9bfaf98dda Revised self-promo naming 2020-05-25 18:32:53 -04:00
Ajay Ramachandran
f21be82cce Fix local saved time tracking.
Also made it track when the notice is closed.
2020-05-24 23:00:39 -04:00
Ajay Ramachandran
39155fdf99 Moved requests to the background script.
This should avoid ad blockers messing with requests.

Helps with https://github.com/ajayyy/SponsorBlock/issues/354
2020-05-24 22:42:55 -04:00
Ajay Ramachandran
1676e50e15 Merge pull request #357 from ajayyy/react
Categories Improvements
2020-05-20 23:52:40 -04:00
Ajay Ramachandran
f165b3b602 Removed autoUpvote config 2020-05-20 23:50:26 -04:00
Ajay Ramachandran
0f82c16940 Fixed "voted" text. 2020-05-20 23:47:13 -04:00
Ajay Ramachandran
9ef3ef03a4 Added padding to vote buttons 2020-05-20 23:36:03 -04:00
Ajay Ramachandran
ef17cae9a1 Changed to upvote/downvote from report 2020-05-20 23:32:57 -04:00
Ajay Ramachandran
05acb1669e Added segment chooser when skipping multiple segments.
Now the skip notice supports skipping multiple segments.
2020-05-19 23:21:51 -04:00
Ajay Ramachandran
0850421afb Update config.json.example 2020-05-17 19:42:11 -04:00
Ajay Ramachandran
edf06ac908 Fixed typo: sever -> server 2020-05-17 11:31:35 -04:00
Ajay Ramachandran
842d35235a Gave web-ext the beta name and made signing happen at the end. 2020-05-17 00:23:44 -04:00
Ajay Ramachandran
45d20574d9 Merge pull request #356 from ajayyy/react
Fix preview sponsors not skipping
2020-05-17 00:00:08 -04:00
Ajay Ramachandran
252da8c56a Added the ability to stop the notice timer by clicking it 2020-05-16 23:58:02 -04:00
Ajay Ramachandran
99373c3e55 Added category names to notice 2020-05-16 23:48:41 -04:00
Ajay Ramachandran
dce69b3642 Incorrect -> Incorrect/Wrong Timing 2020-05-16 23:42:10 -04:00
Ajay Ramachandran
bb670b93e9 Fix preview sponsors not skipping 2020-05-16 23:39:04 -04:00
Ajay Ramachandran
c011ad105d Merge branch 'rafern' 2020-05-15 21:27:37 -04:00
Ajay Ramachandran
856125f7fd Merge pull request #350 from rafern/master
Don't skip ads, hide controls & sponsor times preview bar when ads are playing
2020-05-15 21:25:30 -04:00
Ajay Ramachandran
178b122ab8 Added back requested changes 2020-05-15 21:20:32 -04:00
Ajay Ramachandran
7b0488d068 Reverse "requested changes" 2020-05-15 21:15:50 -04:00
Ajay Ramachandran
02a9238869 Merge branch 'master' into master 2020-05-15 21:12:31 -04:00
Ajay Ramachandran
2fb97409a1 Changed where cd is used in release workflow 2020-05-15 21:08:52 -04:00
Ajay Ramachandran
3640463112 New Crowdin translations (#353)
* New translations messages.json (Portuguese, Brazilian)

* New translations messages.json (Portuguese, Brazilian)
2020-05-15 21:00:07 -04:00
Ajay Ramachandran
d872ed642d Merge pull request #351 from ajayyy/react
Category Improvements
2020-05-15 20:56:09 -04:00
Ajay Ramachandran
1ab1f33caf Change zip binary in release workflow 2020-05-15 20:51:24 -04:00
Ajay Ramachandran
ba13f5951e Increase version number 2020-05-15 19:40:24 -04:00
Ajay Ramachandran
f66e8ddf92 Merge branch 'master' of https://github.com/ajayyy/SponsorBlock into react 2020-05-15 19:40:12 -04:00
Ajay Ramachandran
cff72b19c7 Enable category vote on main server 2020-05-15 19:39:37 -04:00
rafern
c046df7d18 Requested changes 2020-05-14 10:58:30 +01:00
Ajay Ramachandran
941bd41cdb Added another check to prevent phantom skips 2020-05-13 21:11:00 -04:00
Rafael
dd5ed6ce42 Remove duplicate code 2020-05-13 17:45:08 +01:00
rafern
3a0d5221f6 Don't skip ads, hide controls & bar when ad playing 2020-05-13 17:29:34 +01:00
Ajay Ramachandran
a72f571bd4 Update manifest.json 2020-05-12 22:03:38 -04:00
Ajay Ramachandran
50c9c9fe8a Merge pull request #349 from ajayyy/react
Hotfixes for 1.2.28.1
2020-05-12 21:56:14 -04:00
Ajay Ramachandran
7f8badb34d New Crowdin translations (#348)
* New translations messages.json (Chinese Simplified)

* New translations messages.json (Chinese Simplified)
2020-05-12 21:55:43 -04:00
Ajay Ramachandran
f9d8daeca0 Upgraded web-ext 2020-05-12 21:18:07 -04:00
Ajay Ramachandran
55070d5852 Fixed mutation listener stack overflow on Firefox. 2020-05-12 21:17:52 -04:00
Ajay Ramachandran
789bd5939b Fixed zipping command in release workflow 2020-05-11 21:13:19 -04:00
Ajay Ramachandran
b591fbfc4b Removed log 2020-05-11 21:04:28 -04:00
Ajay Ramachandran
57eb122fce Changed rough time calculation to only use real time or end time.
Also fixed getting the replay button element.
2020-05-11 21:04:10 -04:00
Ajay Ramachandran
aec287f0cf Fixed preview bar hover text error 2020-05-11 20:59:30 -04:00
Ajay Ramachandran
c68aabaa40 Added null coalescence checks to video info 2020-05-11 20:45:48 -04:00
Ajay Ramachandran
167cff4693 New Crowdin translations (#346)
* New translations messages.json (French)

* New translations messages.json (German)

* New translations messages.json (Polish)

* New translations messages.json (Russian)

* New translations messages.json (Swedish)

* New translations messages.json (Chinese Simplified)

* New translations messages.json (Ukrainian)

* New translations messages.json (Turkish)

* New translations messages.json (Slovak)

* New translations messages.json (Turkish)
2020-05-11 19:31:11 -04:00
Ajay Ramachandran
99c343c2ce Merge pull request #347 from ajayyy/react
1.2.28 Hotfixes
2020-05-11 19:30:59 -04:00
Ajay Ramachandran
70239bc045 Increase version number 2020-05-11 19:28:02 -04:00
Ajay Ramachandran
d1748f1758 Changed endscreen check to use replay button instead. 2020-05-11 19:27:26 -04:00
Ajay Ramachandran
ac3d27bf88 Changed instances of splice to only remove one 2020-05-11 18:36:07 -04:00
Ajay Ramachandran
3fb5c1c14f Only splice 1 when removing offtopic category selection 2020-05-11 18:35:07 -04:00
Ajay Ramachandran
b1d9cde715 Added code to remove off-topic from category selections.
That category has been removed.
2020-05-11 18:28:27 -04:00
Ajay Ramachandran
aa8225c196 Fixed release CI 2020-05-10 23:16:35 -04:00
Ajay Ramachandran
918adc7c28 New Crowdin translations (#345)
* New translations messages.json (Turkish)

* New translations messages.json (Czech)

* New translations messages.json (Slovak)

* New translations messages.json (Turkish)

* New translations messages.json (Turkish)

* New translations messages.json (Hungarian)
2020-05-10 23:09:52 -04:00
Ajay Ramachandran
ab84b9d2e0 Merge pull request #332 from ajayyy/react
Categories Improvements
2020-05-10 23:09:40 -04:00
Ajay Ramachandran
9e0a9b4601 Increase version number 2020-05-10 22:12:13 -04:00
Ajay Ramachandran
98fd841a54 Fixed null whitelisted channel check happening after use 2020-05-10 21:28:01 -04:00
Ajay Ramachandran
3816313f1e Removed log 2020-05-10 21:26:21 -04:00
Ajay Ramachandran
a433dad080 Fix edit text on old YouTube dark theme 2020-05-10 21:23:25 -04:00
Ajay Ramachandran
dc04e045aa Use duration as current time if endcards or autoplay is visible when submitting 2020-05-10 21:06:15 -04:00
Ajay Ramachandran
2f842a0455 Remove config listener from EditComponent properly 2020-05-10 20:32:49 -04:00
Ajay Ramachandran
7c38b1f8f2 Fix new vote options table layout 2020-05-10 20:27:33 -04:00
Ajay Ramachandran
6942bcb418 Remove livestream category. 2020-05-10 20:12:35 -04:00
Ajay Ramachandran
a335ae2b72 Added warning when submitting non-music category on music video.
Also added a color for the music category.
2020-05-10 18:48:28 -04:00
Ajay Ramachandran
52020bcac6 Renamed outro category and added music and livestream categories 2020-05-10 16:59:42 -04:00
Ajay Ramachandran
5454861c78 Adjusted category names 2020-05-10 16:46:53 -04:00
Ajay Ramachandran
1217b9ed0b Added change category button for testing server 2020-05-10 16:44:53 -04:00
Ajay Ramachandran
e78a1b0fed New Crowdin translations (#342)
* New translations messages.json (Ukrainian)

* New translations messages.json (Turkish)
2020-05-07 23:34:07 -04:00
Ajay Ramachandran
a259949cd6 Update README.md 2020-05-06 20:22:11 -04:00
Ajay Ramachandran
ebf333b8c6 Removed cancel button 2020-05-05 23:36:06 -04:00
Ajay Ramachandran
9a5cb5ae0f Added another check to prevent scheduled skips from old videos 2020-05-04 16:39:01 -04:00
Ajay Ramachandran
20e1a96a84 Removed off-topic category 2020-05-04 16:27:36 -04:00
Ajay Ramachandran
822c7bda89 Added a category tooltip on hover. 2020-05-03 11:42:39 -04:00
Ajay Ramachandran
1526fbcbe8 New translations messages.json (Swedish) (#337) 2020-05-02 15:14:40 -04:00
Ajay Ramachandran
b8f4f8bebc New Crowdin translations (#334)
* New translations messages.json (Ukrainian)

* New translations messages.json (Chinese Simplified)
2020-04-29 22:50:36 -04:00
Ajay Ramachandran
e3698dcdca Fix release CI not zipping things properly 2020-04-27 16:32:26 -04:00
Ajay Ramachandran
fc3abc2b56 Fixed invidious message typo 2020-04-27 15:23:55 -04:00
Ajay Ramachandran
2a8a425627 Removed invidiou.sh from default instances 2020-04-27 15:22:19 -04:00
Ajay Ramachandran
9069f7cee6 Fixed indentation in release workflow 2020-04-27 14:07:09 -04:00
Ajay Ramachandran
a217831c22 Removed February info 2020-04-27 14:04:40 -04:00
Ajay Ramachandran
44e8b316a5 Added Firefox signing to CI 2020-04-27 00:01:45 -04:00
Ajay Ramachandran
885b38b682 New translations messages.json (Chinese Simplified) (#331) 2020-04-26 23:21:13 -04:00
Ajay Ramachandran
938db4b8e0 Merge pull request #322 from ajayyy/react
Categories Improvements
2020-04-26 23:16:53 -04:00
Ajay Ramachandran
ad361cdf28 Increase version number 2020-04-26 23:14:47 -04:00
Ajay Ramachandran
fbafb723cb Added option to force a whitelist check before allowing skipping. 2020-04-26 23:14:18 -04:00
Ajay Ramachandran
797fbf563b Fix start sponsor code not functioning as well as it should have 2020-04-26 21:46:38 -04:00
Ajay Ramachandran
d23c8b0e1f Fix adblocker error messages and increased unlisted check time 2020-04-26 21:12:56 -04:00
Ajay Ramachandran
18852d16ac isUnlisted now uses JSON data. 2020-04-26 20:40:11 -04:00
Ajay Ramachandran
6179278699 Improved options page descriptions 2020-04-26 18:18:55 -04:00
Ajay Ramachandran
8a6488f082 Added migration code for whitelisted channelIDs vs URLs 2020-04-26 18:07:10 -04:00
Ajay Ramachandran
89c4432b89 Revised delete button option description 2020-04-26 18:05:56 -04:00
Ajay Ramachandran
16896be97f Changed whitelisting to use channel JSON instead of page scraping.
It also only pulls data once. Uses channelID now instead of URLs.

Resolves https://github.com/ajayyy/SponsorBlock/issues/275

TODO: Add migration method to use channelID instead of channelURL
2020-04-26 15:16:00 -04:00
Ajay Ramachandran
8a9a19efeb Update README.md 2020-04-26 00:10:31 -04:00
Ajay Ramachandran
f3c786eb57 Fix Crowdin deleting translations >:( (#330)
(Portuguese, Brazilian)
2020-04-26 00:04:26 -04:00
Ajay Ramachandran
19ab83fee9 New Crowdin translations (#327)
* New translations messages.json (Chinese Simplified)

* New translations messages.json (Portuguese, Brazilian)

* New translations messages.json (French)

* New translations messages.json (German)

* New translations messages.json (Dutch)
2020-04-25 23:47:42 -04:00
Ajay Ramachandran
0f9e794428 Fix notice on old YouTube 2020-04-25 23:46:55 -04:00
Ajay Ramachandran
1b8af9da11 Redid hidden sponsor implementation + added info about being hid due to minimum duration
Fixes https://github.com/ajayyy/SponsorBlock/issues/326 and https://github.com/ajayyy/SponsorBlock/issues/325
2020-04-25 23:41:08 -04:00
Ajay Ramachandran
0b90539372 Fixed incorrect videoID check being in reverse. 2020-04-24 21:28:08 -04:00
Ajay Ramachandran
4131442066 Properly reset hiddenSponsorTimes.
Maybe related to https://github.com/ajayyy/SponsorBlock/issues/325
2020-04-24 21:27:45 -04:00
Ajay Ramachandran
e4f642e7d6 Merge pull request #324 from malmers/swedish
Swedish translation
2020-04-23 12:10:26 -04:00
Ajay Ramachandran
a65e40a87d Removed help page 2020-04-23 12:09:11 -04:00
Ajay Ramachandran
edf467a6b9 Removed help page 2020-04-23 12:07:29 -04:00
Pontus Malm
3fbb11191e Swedish translation 2020-04-22 22:45:59 +02:00
Ajay Ramachandran
54a67e6aba New Crowdin translations (#323)
* New translations messages.json (French)

* New translations messages.json (German)
2020-04-22 13:00:41 -04:00
Ajay Ramachandran
8912f88131 Fixed show on seekbar categories appearing in list of start times to skip. 2020-04-21 16:01:41 -04:00
Ajay Ramachandran
c31d30821b Call incorrect videoID check when scheduling a skip. 2020-04-21 14:16:09 -04:00
Ajay Ramachandran
7eb6f1c482 Changed popup look 2020-04-20 16:56:12 -04:00
Ajay Ramachandran
a7e2f83033 Fix Firefox popup scrolling issues 2020-04-20 15:57:07 -04:00
Ajay Ramachandran
0cfe0dc90f Fix submission count not being counted 2020-04-20 15:48:47 -04:00
Ajay Ramachandran
8c1d837770 Update README.md 2020-04-20 01:22:03 -04:00
Ajay Ramachandran
9a70599e60 Added end button to submission notice 2020-04-20 00:37:25 -04:00
Ajay Ramachandran
89f72c185c Update submission UI whenever there is a config update. 2020-04-20 00:33:41 -04:00
Ajay Ramachandran
2f5c239c82 Added path to release CI 2020-04-19 20:59:36 -04:00
Ajay Ramachandran
31b76553dc Merge pull request #317 from ajayyy/react
Categories Improvements
2020-04-19 20:54:25 -04:00
Ajay Ramachandran
eff73548e3 New Crowdin translations (#321)
* New translations messages.json (French)
2020-04-19 20:53:36 -04:00
Ajay Ramachandran
2ca98ad97b Increase version number. 2020-04-19 20:52:26 -04:00
Ajay Ramachandran
4e9b5ca0bc Fixed preview button 2020-04-19 20:48:43 -04:00
Ajay Ramachandran
3d7d291d9a Changed "show on overlay" wording 2020-04-19 20:38:21 -04:00
Ajay Ramachandran
195ed1f5fc Removed old submission method 2020-04-19 20:37:30 -04:00
Ajay Ramachandran
74f14b3bf8 Fixed polish folder 2020-04-14 23:50:20 -04:00
Ajay Ramachandran
290dff25f9 Update Crowdin configuration file 2020-04-14 23:44:15 -04:00
Ajay Ramachandran
64ab6b5768 Update Crowdin configuration file 2020-04-14 23:41:50 -04:00
Ajay Ramachandran
1b2bc6def4 Submission notice size now updates when the video size changes.
React listeners are properly cleaned up now.
2020-04-14 00:47:09 -04:00
Ajay Ramachandran
18c7be8161 Made submission notice max height dynamic 2020-04-14 00:31:47 -04:00
Ajay Ramachandran
638439a671 Moved notice closing to renderer (no leftover nodes) 2020-04-14 00:10:20 -04:00
Ajay Ramachandran
9fafb9cf54 Made the submission notice scroll when too large 2020-04-13 21:48:55 -04:00
Ajay Ramachandran
0223aa8307 Only show selected categories when submitting and added a "show more categories" button 2020-04-13 12:43:12 -04:00
Ajay Ramachandran
07f1106579 Merge pull request #288 from ajayyy/react
Moving elements to React
2020-04-10 00:10:07 -04:00
Ajay Ramachandran
2f78f31874 Increased version number. 2020-04-10 00:08:49 -04:00
Ajay Ramachandran
74a4ef0692 Changed name of merch category 2020-04-09 16:40:42 -04:00
Ajay Ramachandran
2d55ea0fc5 Removed logging 2020-04-09 15:34:11 -04:00
Ajay Ramachandran
a50f030a3b Properly handle server error 2020-04-09 14:08:26 -04:00
Ajay Ramachandran
ae690f0c65 Renamed new request function 2020-04-09 14:03:13 -04:00
Ajay Ramachandran
e2128f7ae3 Fixed editing non first index submissions.
The idSuffix was not being set properly and was set to undefined.
2020-04-09 12:54:04 -04:00
Ajay Ramachandran
80fe28a952 Fixed now button locale missing 2020-04-09 12:48:41 -04:00
Ajay Ramachandran
be74ebe7bc Added category colours 2020-04-09 12:44:10 -04:00
Ajay Ramachandran
e085163dfd Only shows sponsor category if test server is disabled 2020-04-09 12:13:56 -04:00
Ajay Ramachandran
adef65b878 Made submission notice above other notices 2020-04-09 01:42:16 -04:00
Ajay Ramachandran
b7870cbd74 Added submissions with the new API 2020-04-09 01:35:23 -04:00
Ajay Ramachandran
cd03218940 Now uses new GET api when testing server is enabled 2020-04-09 01:19:00 -04:00
Ajay Ramachandran
6abf6a0044 Added testing server option. 2020-04-09 00:40:11 -04:00
Ajay Ramachandran
6ef5dd4522 Update README.md 2020-04-07 18:28:53 -04:00
Ajay Ramachandran
9f87c839b5 Fixed preview bar sometimes not appearing 2020-04-06 21:58:42 -04:00
Ajay Ramachandran
85c1a45c8b Improved skipping over multiple segments 2020-04-06 01:19:17 -04:00
Ajay Ramachandran
963fb58321 Fixed endIndex not being used while skipping and made end index finding function recursive 2020-04-06 00:45:28 -04:00
Ajay Ramachandran
d1d4dcdc9c Added migration for auto skip option 2020-04-06 00:40:30 -04:00
Ajay Ramachandran
24dd98a98f Update README.md 2020-04-05 18:34:10 -04:00
Ajay Ramachandran
5abc0bedd4 Fixed some non converted sponsorTimes code 2020-04-05 14:28:26 -04:00
Ajay Ramachandran
e1e570fb18 Made show only overlay work 2020-04-05 00:08:44 -04:00
Ajay Ramachandran
93c0a0c003 Give the user error messages from the server.
Helps with https://github.com/ajayyy/SponsorBlockServer/pull/70
2020-04-04 23:47:01 -04:00
Ajay Ramachandran
93f82de7fd Moves submission error check into the proper place 2020-04-04 23:45:10 -04:00
Ajay Ramachandran
f6945b56d8 Fixed submitted sponsors and prevented preview sponsors from being voted on 2020-04-04 23:35:44 -04:00
Ajay Ramachandran
55e17ceb60 Fixed issues with manual skipping 2020-04-04 23:26:34 -04:00
Ajay Ramachandran
2a432490bc Moved audio setting 2020-04-04 23:26:09 -04:00
Ajay Ramachandran
0115a6df13 Merge pull request #315 from Joe-Dowd/react
Audio notification on skip
2020-04-04 22:26:51 -04:00
Ajay Ramachandran
a5e9ceda60 Removed custom options code for audio 2020-04-04 22:25:10 -04:00
Ajay Ramachandran
09f53c80f0 Sync volume with video volume 2020-04-04 22:22:37 -04:00
Ajay Ramachandran
8134b5a67e Added missing category to example config 2020-04-04 22:17:11 -04:00
Ajay Ramachandran
ebd6c9c952 Fixed error when preview bar updates 2020-04-04 22:12:54 -04:00
Ajay Ramachandran
37e2fb0972 Fixed react whitespace error 2020-04-04 22:11:39 -04:00
Ajay Ramachandran
7af44eae66 Category submission notice now works.
It still submits to the server without a category since the server-side is not done.
2020-04-04 22:06:59 -04:00
Ajay Ramachandran
62c50d77c6 Added offtopic category 2020-04-04 21:08:18 -04:00
Ajay Ramachandran
bac9029a28 Switched skipping to use category settings.
Submission editing is now broken as well as clicking submit.

Skipping through multiple submissions just treats it as skipping from one (no multiple vote options).
2020-04-04 21:04:17 -04:00
Joe Dowd
48a614943d Merge branch 'react' into react 2020-04-04 18:44:05 +01:00
Ajay Ramachandran
ec9f1efd55 Added category skip option to just show an overlay without skipping 2020-04-04 12:58:02 -04:00
Joe-Dowd
59c6455298 removed duplicate locale message 2020-04-04 14:13:27 +01:00
Joe-Dowd
d7a7476cd1 fixed tabbing 2020-04-04 14:01:31 +01:00
Joe-Dowd
36981af95a Added audio notification on skip to options menu 2020-04-04 13:59:04 +01:00
Ajay Ramachandran
d4d5e4743e Added key to sponsorTimeEditComponent 2020-04-02 22:14:52 -04:00
Ajay Ramachandran
3afde08a6e Category selections now save 2020-04-02 22:13:36 -04:00
Ajay Ramachandran
6ea87d7cd0 Added basic category chooser UI 2020-04-02 21:26:13 -04:00
Ajay Ramachandran
b6c243236b Submission notice now saves on submission 2020-04-02 14:38:33 -04:00
Ajay Ramachandran
6fa67088bc Removed old edit pane from popup and made it call the new one 2020-04-02 13:22:08 -04:00
Ajay Ramachandran
d37abcfa9f Added category list to example config 2020-04-02 01:33:28 -04:00
Ajay Ramachandran
5575eda7b1 Changed UI data to be store in strings for better UX 2020-04-02 01:29:12 -04:00
Ajay Ramachandran
e17eb60b4d Added basic category selector to the UI 2020-04-02 01:25:06 -04:00
Ajay Ramachandran
e055a66342 Submission notice now updates when sponsors are added 2020-04-02 00:59:11 -04:00
Ajay Ramachandran
72c98923f6 Fixed close button on submission confirmation notice 2020-04-02 00:44:38 -04:00
Ajay Ramachandran
8ecea87c52 Added now button to editor 2020-04-01 20:38:10 -04:00
Ajay Ramachandran
7727cd56db Save edits before previewing 2020-04-01 20:24:50 -04:00
Ajay Ramachandran
242fbf8009 Save edits correctly 2020-04-01 20:22:51 -04:00
Ajay Ramachandran
24f2ce4a32 Fixed event propagation issues 2020-04-01 20:19:31 -04:00
Ajay Ramachandran
0d08e11b1d Added basic time editing.
The button presses don't work yet as YouTube steals the events.
2020-04-01 20:06:46 -04:00
Ajay Ramachandran
513a140754 Merge branch 'master' of https://github.com/ajayyy/SponsorBlock into react
# Conflicts:
#	public/_locales/en/messages.json
#	src/content.ts
2020-03-31 00:29:27 -04:00
Ajay Ramachandran
88350e3421 Merge pull request #308 from ajayyy/experimental
Skipping Fixes
2020-03-30 20:11:33 -04:00
Ajay Ramachandran
36d79313de Increase version number 2020-03-30 20:10:32 -04:00
Ajay Ramachandran
a9993d5d80 Added check for videoID change not being called 2020-03-30 20:08:00 -04:00
Ajay Ramachandran
4a6ddf6774 Remove mobile support announcement 2020-03-30 19:15:25 -04:00
Ajay Ramachandran
b6172c6d9b Fixed sponsor skipping after quickly playing and pausing. 2020-03-30 19:07:59 -04:00
Ajay Ramachandran
b21a59f4e5 Fixed looping sometimes not skipping beginning sponsors.
Resolves https://github.com/ajayyy/SponsorBlock/issues/306
2020-03-30 15:33:03 -04:00
Ajay Ramachandran
78dd44c502 Fixed missing name in release workflow 2020-03-30 14:44:26 -04:00
Ajay Ramachandran
f4a129b346 Merge pull request #307 from ajayyy/experimental
Skipping fixes
2020-03-30 14:34:31 -04:00
Ajay Ramachandran
6d60a90533 Increased version number. 2020-03-30 14:18:11 -04:00
Ajay Ramachandran
0d33794636 Fixed almost zero second sponsors skipping a little too late. 2020-03-30 14:11:46 -04:00
Ajay Ramachandran
e62d46f2dd Improved zero second skipping for directly loaded videos 2020-03-30 14:07:35 -04:00
Ajay Ramachandran
7f36c7eec3 Merge pull request #302 from Joe-Dowd/restrict-keybindings
Restrict keybindings
2020-03-26 12:35:28 -04:00
Ajay Ramachandran
08d28798c6 Localised key errors 2020-03-26 12:30:06 -04:00
Ajay Ramachandran
fe33277d8f Merge branch 'master' of https://github.com/ajayyy/SponsorBlock into restrict-keybindings 2020-03-26 12:27:06 -04:00
Ajay Ramachandran
feec5b4e22 Added spacing and separated code into a function 2020-03-26 12:26:47 -04:00
Ajay Ramachandran
62b5e90d87 Merge pull request #300 from Joe-Dowd/debug-output
Added copy debug information to clipboard options element.
2020-03-26 12:19:07 -04:00
Ajay Ramachandran
2c980a269d Fixed sponsorTimes data on export and import 2020-03-26 12:18:52 -04:00
Ajay Ramachandran
1da60e38a1 Merge pull request #304 from ajayyy/experimental
Scheduling fixes
2020-03-25 19:01:43 -04:00
Ajay Ramachandran
ed67cc52fe Fixed mobile YouTube starting sponsor detection that are not exactly 0 seconds. 2020-03-21 20:59:08 -04:00
Joe-Dowd
b614dce91a Added more restricted characters 2020-03-20 19:55:29 +00:00
Joe-Dowd
c013c7ef0f added N and i to the list of restricted characters 2020-03-20 19:50:38 +00:00
Joe-Dowd
c78e2cd214 Fixed mod keys when setting keybinding 2020-03-20 19:39:37 +00:00
Joe-Dowd
da5a3841bd Added restrictions to keybindings. 2020-03-20 15:35:23 +00:00
Joe Dowd
e73d79071c Added copy debug information to clipboard options element. 2020-03-18 00:15:04 +00:00
Ajay Ramachandran
f100ee4738 Made preview button functional 2020-03-11 19:56:16 -04:00
Ajay Ramachandran
37662138df Increase precision in submission preview 2020-03-11 19:48:51 -04:00
Ajay Ramachandran
037d1089a3 Merge branch 'experimental' of https://github.com/ajayyy/SponsorBlock into react 2020-03-11 19:40:42 -04:00
Ajay Ramachandran
0467dd5d21 Made sure no skips are scheduled while paused 2020-03-11 19:39:08 -04:00
Ajay Ramachandran
1df123de6d Merge branch 'master' of https://github.com/ajayyy/SponsorBlock into react
# Conflicts:
#	public/_locales/en/messages.json
#	src/js-components/skipNotice.ts
2020-03-11 19:36:41 -04:00
Ajay Ramachandran
3063591a4c Added delete function to new dialog 2020-03-11 19:35:20 -04:00
Ajay Ramachandran
a182354254 Added basic react submission confirmation notice 2020-03-11 17:50:50 -04:00
Ajay Ramachandran
5f879bceab Fixed where repo-token was inputted in release workflow 2020-03-10 23:30:53 -04:00
Ajay Ramachandran
457bd15e17 Merge pull request #298 from ajayyy/experimental
Options Improvements
2020-03-10 23:24:36 -04:00
Ajay Ramachandran
cc1b8ee499 Merge branch 'master' of https://github.com/ajayyy/SponsorBlock into experimental 2020-03-10 23:23:30 -04:00
Ajay Ramachandran
4a9ed1348e Increase version number 2020-03-10 23:23:10 -04:00
Ajay Ramachandran
5595420be6 Removed redundant if statement 2020-03-10 23:22:57 -04:00
Ajay Ramachandran
191e9ceb6f Makes sure the playing and play listener both don't get called at the same time.
This led to double notices.
2020-03-10 23:22:17 -04:00
Ajay Ramachandran
a02aef591e Split notice text into a separate component 2020-03-10 12:57:26 -04:00
Ajay Ramachandran
1e26faa57c Update README.md 2020-03-10 12:11:08 -04:00
Ajay Ramachandran
1a92265e65 Made non timed notice the default 2020-03-10 12:08:54 -04:00
Ajay Ramachandran
92a6065c98 Added support for untimed notice 2020-03-10 03:08:15 -04:00
Ajay Ramachandran
d7ca56941a Moved timing mechanism to separate component 2020-03-10 03:01:20 -04:00
Ajay Ramachandran
030256c9e1 Enable checkbox when the permission prompt is successful 2020-03-10 02:14:00 -04:00
Ajay Ramachandran
77eff12d9b Merge pull request #261 from OfficialNoob/patch-1
Made decodeStoredItem detect item type
2020-03-10 01:21:10 -04:00
Ajay Ramachandran
2967fce013 Update README.md 2020-03-10 00:57:44 -04:00
Ajay Ramachandran
db1def623a Update README.md 2020-03-10 00:56:58 -04:00
Ajay Ramachandran
140e324bf1 Update README.md 2020-03-10 00:55:18 -04:00
Ajay Ramachandran
f0bf051259 Properly ask for permissions when changing the server address 2020-03-10 00:48:53 -04:00
Ajay Ramachandran
2ec47d52cd Added basic options import/export 2020-03-10 00:33:50 -04:00
Ajay Ramachandran
50002cfbbd Fix github token using the wrong key in release workflow 2020-03-09 23:10:59 -04:00
Ajay Ramachandran
6ccd4b8b37 Merge pull request #297 from ajayyy/experimental
Fix non zero second skips
2020-03-09 23:05:45 -04:00
Ajay Ramachandran
da6ccb561d Fixed manual skip vote check using wrong variable 2020-03-09 23:04:01 -04:00
Ajay Ramachandran
c0894afff9 Prevent manual skipping votes from affecting to UI and happening when auto vote is off 2020-03-09 23:03:24 -04:00
Ajay Ramachandran
09f244150c Fixed skipping for non zero second sponsors.
Also now using the playing event to fix issues with mobile YouTube skipping.
2020-03-09 23:00:39 -04:00
Ajay Ramachandran
c526a812e0 Made manual skip vote follow config 2020-03-09 22:50:07 -04:00
Ajay Ramachandran
ccbc0456f9 Made skip notice use react states 2020-03-09 21:51:44 -04:00
Ajay Ramachandran
efec8b320c Increase version num 2020-03-09 18:38:02 -04:00
Ajay Ramachandran
e6ea9f77e9 Fixed skip scheduling for auto skip 2020-03-09 18:34:33 -04:00
Ajay Ramachandran
0813aa4ba3 Prevent release workflow from running multiple times 2020-03-09 18:30:57 -04:00
Ajay Ramachandran
ba575f6b8d Merge pull request #296 from ajayyy/experimental
Prevent manual skips from triggering a view and improved skip schedule for manual skip
2020-03-09 18:20:11 -04:00
Ajay Ramachandran
ff9b2338e0 Fixed scheduling being wrong when manual skip is enabled 2020-03-09 18:12:05 -04:00
Ajay Ramachandran
d2bb4b38e3 Increased version number 2020-03-09 18:07:29 -04:00
Ajay Ramachandran
760c08dd0c Prevent manual skips from triggering a view 2020-03-09 18:07:06 -04:00
Ajay Ramachandran
50517eb462 Switched upload to release action 2020-03-09 11:15:29 -04:00
Ajay Ramachandran
e77425c21e Merge pull request #294 from ajayyy/experimental
Another potential fix for zero second sponsor freezing
2020-03-09 11:04:26 -04:00
Ajay Ramachandran
f63abb053d Revert to only using workflows 2020-03-09 11:02:14 -04:00
Ajay Ramachandran
7b5703aa04 Fixed action format 2020-03-09 10:56:06 -04:00
Ajay Ramachandran
d641066312 Checkout in CI 2020-03-09 10:52:43 -04:00
Ajay Ramachandran
44ca8d47d8 Moved CI into the right place 2020-03-09 10:51:26 -04:00
Ajay Ramachandran
d5f41bf4ad Fixed CI 2020-03-09 10:49:50 -04:00
Ajay Ramachandran
73e8926444 Start skip schedule from skip time to prevent slow video updates from breaking it. 2020-03-09 10:43:13 -04:00
Ajay Ramachandran
5ad694af65 Increase version number 2020-03-08 23:26:46 -04:00
Ajay Ramachandran
d7f7acb219 Fixed release action 2020-03-08 23:20:41 -04:00
Ajay Ramachandran
b4be51333a Merge pull request #293 from ajayyy/experimental
Fixed double sponsor skip for zero second sponsors
2020-03-08 23:17:48 -04:00
Ajay Ramachandran
ae94811a00 Increase version number 2020-03-08 23:16:50 -04:00
Ajay Ramachandran
a484f2f2cc Fixed double sponsor skip for zero second sponsors 2020-03-08 23:16:09 -04:00
Ajay Ramachandran
9cce4e734d Merge pull request #292 from grishka/russian
Fix Russian translation and add missing strings
2020-03-07 12:34:48 -05:00
Grishka
3c63644213 fix 2020-03-07 13:45:56 +03:00
Grishka
ad25bc34de Add missing Russian strings 2020-03-07 13:37:58 +03:00
Ajay Ramachandran
0241e15691 Only seek if the video is not paused 2020-02-28 15:06:08 -05:00
Ajay Ramachandran
af9a6b8a84 Merge branch 'master' of https://github.com/ajayyy/SponsorBlock into experimental 2020-02-28 14:09:21 -05:00
Ajay Ramachandran
329b188435 Checkout before using other CI 2020-02-27 22:23:33 -05:00
Ajay Ramachandran
2e49bb73c5 Merge pull request #290 from ajayyy/experimental
Potentially fixed zero second skip spam
2020-02-27 22:21:33 -05:00
Ajay Ramachandran
5158020293 Potentially fixed zero second skip spam 2020-02-27 22:20:30 -05:00
Ajay Ramachandran
feaf80ad1e Merge pull request #289 from Joe-Dowd/messages-typo
Typo in en messages locale "skipeed -> skipped"
2020-02-25 15:14:01 -05:00
Joe Dowd
7fbd89159e Typo in en messages locale skipped 2020-02-25 18:25:28 +00:00
Ajay Ramachandran
0d9b624fd5 Delete old skip notice 2020-02-25 00:43:20 -05:00
Ajay Ramachandran
008c9380b1 Switched notice to react 2020-02-25 00:38:03 -05:00
Ajay Ramachandran
716861da18 Fixed beta builds 2020-02-23 20:49:17 -05:00
Ajay Ramachandran
d0a34d423c Fix release CI 2020-02-23 20:42:12 -05:00
Ajay Ramachandran
adfba72f19 Merge pull request #286 from ajayyy/experimental
Mobile fix + mobile update notice
2020-02-23 20:40:48 -05:00
Ajay Ramachandran
f00337c376 Increase version number. 2020-02-23 20:39:29 -05:00
Ajay Ramachandran
737a023b65 Added mobile support message. 2020-02-23 20:39:13 -05:00
Ajay Ramachandran
5551344355 Fixed mobile notice zoom on Firefox 2020-02-23 16:14:18 -05:00
Ajay Ramachandran
07f64382fb Merge pull request #285 from cherryblossom000/patch-1
Fix "0 sponsor" in popup
2020-02-23 11:21:21 -05:00
Ajay Ramachandran
1c7cde2a19 Changed to !== 2020-02-23 11:20:21 -05:00
cherryblossom
8510a7f3d8 Fix popup saying "0 sponsor" 2020-02-23 17:03:18 +11:00
Ajay Ramachandran
db60b11a17 Merge pull request #284 from ajayyy/experimental
CI Improvements
2020-02-20 15:38:35 -05:00
Ajay Ramachandran
6a212b762a Fixed invalid release workflow 2020-02-20 12:21:30 -05:00
Ajay Ramachandran
c8ec2922cf Added makedir to CI 2020-02-20 12:17:51 -05:00
Ajay Ramachandran
b629b7d333 Added basic release workflow 2020-02-20 12:14:01 -05:00
Ajay Ramachandran
514a8b62d6 Added beta build to CI 2020-02-20 11:39:06 -05:00
Ajay Ramachandran
cd11618a5d Merge pull request #283 from ajayyy/experimental
New skipping mechanism fixes
2020-02-20 11:25:32 -05:00
Ajay Ramachandran
8be3cb157a Increased version number 2020-02-20 11:23:44 -05:00
Ajay Ramachandran
4ca57cc025 Fixed preview sponsors not skipping when only they are there. 2020-02-19 13:45:00 -05:00
Ajay Ramachandran
397bcc94c5 Remove redundant code 2020-02-19 13:35:05 -05:00
Ajay Ramachandran
8b28bccfd7 Run dev now uses dev build. 2020-02-19 12:57:22 -05:00
Ajay Ramachandran
c6107057d9 Firefox dev environment now loads Firefox uBlock Origin 2020-02-19 12:54:58 -05:00
Ajay Ramachandran
ab2a9530e9 Sped up zero second sponsors a tiny bit 2020-02-19 12:41:22 -05:00
Ajay Ramachandran
bfc771bd99 Removed unused variables 2020-02-19 12:37:39 -05:00
Ajay Ramachandran
e75e588755 Sped up direct links a tiny bit. 2020-02-19 12:37:17 -05:00
Ajay Ramachandran
0266bb49ca Fixed typo 2020-02-19 12:35:10 -05:00
Ajay Ramachandran
9e693fd555 Update README.md 2020-02-19 12:33:48 -05:00
Ajay Ramachandran
1f30b9ec84 Merge pull request #280 from ajayyy/mobile-youtube
Mobile YouTube support + Precise skipping
2020-02-19 11:40:07 -05:00
Ajay Ramachandran
50862e3c03 Increased version number 2020-02-19 11:25:14 -05:00
Ajay Ramachandran
20e90bbc34 Fixed schedule not updating when new sponsors arrive 2020-02-19 00:54:30 -05:00
Ajay Ramachandran
2e212e6d10 Improved mobile preview bar 2020-02-19 00:14:08 -05:00
Ajay Ramachandran
2039bfa081 Made buttons on mobile not close the menu. 2020-02-19 00:10:05 -05:00
Ajay Ramachandran
7dc8a99247 Added button support to mobile. 2020-02-19 00:00:22 -05:00
Ajay Ramachandran
1b25ea7f95 Shrunk notice on mobile 2020-02-18 19:29:20 -05:00
Ajay Ramachandran
1869382166 Fixed popup issues. 2020-02-18 19:03:34 -05:00
Ajay Ramachandran
d58cd639c7 Added zero second preview sponsors. 2020-02-18 18:45:33 -05:00
Ajay Ramachandran
6cd2d4cf83 Added back whitelist support 2020-02-18 18:44:06 -05:00
Ajay Ramachandran
b681f5abd9 Added support for preview sponsors in new skipping method. 2020-02-18 18:43:45 -05:00
Ajay Ramachandran
5b2a0feccf Switched to new skipping mechanic 2020-02-18 18:29:02 -05:00
Ajay Ramachandran
cd58f6bc73 Skip notice improvement. 2020-02-18 15:57:40 -05:00
Ajay Ramachandran
aeabf806ac Added duration change listener check to prevent mid-video zero second skips.
Sometimes the video gets reset to zero seconds for a few milliseconds, this should not trigger a skip.

Resolves https://github.com/ajayyy/SponsorBlock/issues/183
2020-02-18 15:03:55 -05:00
Ajay Ramachandran
af7ba31c2f Remove logging. 2020-02-18 14:40:40 -05:00
Ajay Ramachandran
5b962b1b9d Merge pull request #281 from ajayyy/experimental
Rename CI artifacts
2020-02-17 15:24:49 -05:00
Ajay Ramachandran
219a7ba8c3 Added preview bar to mobile 2020-02-17 15:10:50 -05:00
Ajay Ramachandran
933babb4e6 Added mobile YouTube site to the whitelist. 2020-02-17 11:32:00 -05:00
Ajay Ramachandran
023ba2e051 Merge branch 'master' of https://github.com/ajayyy/SponsorBlock into experimental 2020-02-17 11:24:36 -05:00
Ajay Ramachandran
8d82a6a3e6 Fixed data old format migration. 2020-02-14 23:20:11 -05:00
Ajay Ramachandran
88a8fda566 Moved window.SB creation for security reasons. 2020-02-14 23:16:01 -05:00
Ajay Ramachandran
1c833a8b1d Rename CI artifacts. 2020-02-11 21:04:41 -05:00
Ajay Ramachandran
7143d7532d Increase version number 2020-02-11 21:01:35 -05:00
Ajay Ramachandran
1f10bdf593 Merge pull request #279 from CommanderRoot/patch-1
Retain decimals in seconds value when editing sponsor times
2020-02-11 20:33:04 -05:00
CommanderRoot
3b543916ff Retain decimals in seconds value 2020-02-12 02:24:03 +01:00
Ajay Ramachandran
c4da85340a Merge pull request #277 from ajayyy/experimental
Fixed regex to support Firefox
2020-02-11 14:10:47 -05:00
Ajay Ramachandran
ec59c7e0f9 Increase version number. 2020-02-11 14:10:11 -05:00
Ajay Ramachandran
2454cd9a39 Fixed regex to support Firefox. 2020-02-11 12:29:19 -05:00
Ajay Ramachandran
c19e2bea29 Merge pull request #274 from ajayyy/experimental
Various fixes
2020-02-10 22:35:54 -05:00
Ajay Ramachandran
2f2c1ad49b Increased version number. 2020-02-10 22:32:15 -05:00
Ajay Ramachandran
657aff2167 Removed use of Invidious API.
Resolves https://github.com/ajayyy/SponsorBlock/issues/189.
2020-02-10 22:27:54 -05:00
Ajay Ramachandran
2450457fe5 Fixed close button on dark theme.
Resolves https://github.com/ajayyy/SponsorBlock/issues/196
2020-02-10 21:54:11 -05:00
Ajay Ramachandran
ba9e42e6f0 Forced auto skip if previewing sponsor.
Resolves https://github.com/ajayyy/SponsorBlock/issues/222
2020-02-10 21:49:17 -05:00
Ajay Ramachandran
f05d80523b Made it unpause when previewing a sponsor.
Resolves https://github.com/ajayyy/SponsorBlock/issues/222
2020-02-10 21:39:39 -05:00
Ajay Ramachandran
d2779aba86 Fix editing not adding numbers.
Resolves https://github.com/ajayyy/SponsorBlock/issues/273.
2020-02-10 18:03:09 -05:00
Ajay Ramachandran
852912a42b Fixed inlines sponsor popup.
Fixes https://github.com/ajayyy/SponsorBlock/issues/272
2020-02-10 17:12:52 -05:00
Official Noob
995fe072bd Merge pull request #1 from ajayyy/master
Update
2020-02-09 22:15:27 +00:00
Ajay Ramachandran
45e0f87f9f Reformatted manifest. 2020-02-09 11:14:40 -05:00
Ajay Ramachandran
79b02c7ae7 Merge pull request #269 from ajayyy/experimental
Fixed Firefox recursion issue
2020-02-09 10:36:20 -05:00
Ajay Ramachandran
cfb902180d Increased version number. 2020-02-09 10:35:32 -05:00
Ajay Ramachandran
1753c05686 Fix Firefox infinite recursion issue. 2020-02-09 10:34:18 -05:00
Ajay Ramachandran
c76d2c9a95 Merge pull request #266 from ajayyy/experimental
Options page improvements + Preview sponsors
2020-02-08 23:30:12 -05:00
Ajay Ramachandran
00117bdfac Increase version number. 2020-02-08 23:29:09 -05:00
Ajay Ramachandran
40cddbf8ee Disabling auto skip now enables the notice. 2020-02-08 23:28:41 -05:00
Ajay Ramachandran
9026044528 Fixed preview sponsor times not turning into actual ones upon submission. 2020-02-08 23:16:44 -05:00
Ajay Ramachandran
50f293d783 Added better server address trimming. 2020-02-08 23:01:28 -05:00
Ajay Ramachandran
2b558c43bd Removed subdomain requirement. 2020-02-08 22:55:59 -05:00
Ajay Ramachandran
22cc51734f Merge pull request #264 from ajayyy/privacy-confirm
Added privacy confirmation for unlisted videos
2020-02-08 22:45:22 -05:00
Ajay Ramachandran
cd5adc1b82 Merge pull request #265 from ajayyy/typescript
Issue fixing
2020-02-08 22:44:47 -05:00
Ajay Ramachandran
b7e83a0efe Added unlisted check option.
https://github.com/ajayyy/SponsorBlock/pull/224

Co-authored-by: OfficialNoob <OfficialNoob@users.noreply.github.com>
2020-02-08 22:43:27 -05:00
Ajay Ramachandran
6159605afd Merge branch 'master' of https://github.com/ajayyy/SponsorBlock into typescript
# Conflicts:
#	public/_locales/en/messages.json
#	src/config.ts
2020-02-08 22:19:07 -05:00
Ajay Ramachandran
ceae02426d Merge pull request #262 from Joe-Dowd/customServerAddress
Add custom server address
2020-02-08 22:18:07 -05:00
Ajay Ramachandran
51d2886f70 Seperated show upload button option from info button. 2020-02-08 22:18:03 -05:00
Ajay Ramachandran
c2eb973a28 Fixed centering and added some more notes to the help page. 2020-02-08 22:13:36 -05:00
Ajay Ramachandran
f8532d39eb Improved invidious warning on the help page. 2020-02-08 22:07:51 -05:00
Ajay Ramachandran
c2be1ee6d4 Added reset button to text change. 2020-02-08 22:03:45 -05:00
Ajay Ramachandran
1735cdb45d Added server address input validation. 2020-02-08 21:58:50 -05:00
Ajay Ramachandran
be6cd62fbe Rename string change option to more fitting name. 2020-02-08 21:42:15 -05:00
Ajay Ramachandran
cfe91f6280 Changed order of options. 2020-02-08 21:34:26 -05:00
Ajay Ramachandran
4e7bfa5ed3 Changed server address config name 2020-02-08 21:32:46 -05:00
Ajay Ramachandran
6f03c68fdc Change the way server address defaults are handled. 2020-02-08 21:30:57 -05:00
Ajay Ramachandran
62653705ff Improved custom instance message 2020-02-08 21:27:55 -05:00
Ajay Ramachandran
8cdbebd6de Added the config as a global variable. 2020-02-08 20:16:26 -05:00
Ajay Ramachandran
94af8ab301 Prevent all strings from being parsed as JSON. 2020-02-08 20:15:49 -05:00
Ajay Ramachandran
be3a4a4e91 Added support for old format. 2020-02-08 20:08:34 -05:00
Ajay Ramachandran
3791c5c78b Fixed JSON conversion iterator 2020-02-08 20:05:31 -05:00
Joe Dowd
6bd22896b9 Merged Lartza/min-duration 2020-02-09 01:02:40 +00:00
Ajay Ramachandran
ea4331e4b1 Merge branch 'master' of https://github.com/ajayyy/SponsorBlock into typescript
# Conflicts:
#	src/config.ts
2020-02-08 19:31:18 -05:00
Ajay Ramachandran
84fbc93c8a Merge pull request #250 from Lartza/min-duration
Add minimum duration option
2020-02-08 19:30:36 -05:00
Ajay Ramachandran
553581f67b Removed extra file 2020-02-08 19:28:23 -05:00
Ajay Ramachandran
afe16e6623 Improved confirm message. 2020-02-08 19:27:38 -05:00
Ajay Ramachandran
0942da0cd1 Moved minimum duration open down 2020-02-08 19:23:48 -05:00
Ajay Ramachandran
c2b3835618 Added colon to minimum duration message 2020-02-08 19:23:34 -05:00
Ajay Ramachandran
4a96a52398 Fixed multiple sponsors being hidden. 2020-02-08 19:19:27 -05:00
Ajay Ramachandran
4e1eb82538 Fixed typescript issues. 2020-02-08 19:10:04 -05:00
Ajay Ramachandran
885fae175d Merge branch 'master' of https://github.com/ajayyy/SponsorBlock into min-duration
# Conflicts:
#	SB.js
#	src/options.ts
2020-02-08 19:09:17 -05:00
Ajay Ramachandran
1cd84d8a2c Fixed Chrome Invidious CSS issues.
Apparently the chrome API doesn't work well with CSS.

Resolves https://github.com/ajayyy/SponsorBlock/issues/241
2020-02-08 18:23:08 -05:00
Ajay Ramachandran
0c891e0a09 Changed time saved date to updated time. 2020-02-08 17:51:16 -05:00
Ajay Ramachandran
08c7754f29 Fixed skip count resetting.
Resolves https://github.com/ajayyy/SponsorBlock/issues/256
2020-02-08 17:50:06 -05:00
Ajay Ramachandran
5f21d3f96f Default UUIDs to an empty list instead of null.
Resolves https://github.com/ajayyy/SponsorBlock/issues/252.
2020-02-08 17:45:22 -05:00
Ajay Ramachandran
158b76c17e Fixed incorrect type. 2020-02-06 20:10:35 -05:00
Joe Dowd
3455a79298 Removed console.log calls 2020-02-07 00:57:24 +00:00
Joe Dowd
dd08ff1507 add custom server address 2020-02-07 00:40:01 +00:00
Official Noob
1c17464c94 config => defaults 2020-02-04 23:29:11 +00:00
Lartza
b5996a9783 Discard short segments instead of ignoring them later 2020-02-05 01:12:03 +02:00
Lartza
edb108bbcf Confirm shorter than minDuration submissions 2020-02-04 22:36:22 +00:00
Official Noob
8896c5707a Made decodeStoredItem detect item type
Not tested because SB.config cant be used anymore :(
2020-02-04 22:16:40 +00:00
Ajay Ramachandran
feda7fd1a0 Merge pull request #260 from ajayyy/typescript
Rename SB.js
2020-02-04 02:16:47 -05:00
Ajay Ramachandran
46ffb330fc Fix invidious enabling error 2020-02-04 02:15:06 -05:00
Ajay Ramachandran
2f7a4bdb36 Fix chrome build scripts 2020-02-04 02:14:30 -05:00
Ajay Ramachandran
96dab6b6b2 Renamed SB.js and setup types for the config. 2020-02-04 02:10:59 -05:00
Ajay Ramachandran
3e9afe1dc8 Merge pull request #259 from ajayyy/typescript
Manifest building
2020-02-04 01:57:48 -05:00
Ajay Ramachandran
2df2b4c53d Mkdir with directory 2020-02-04 01:48:32 -05:00
Ajay Ramachandran
968dd34c3d Update README.md 2020-02-04 01:45:41 -05:00
Ajay Ramachandran
0cbe73c527 Add recursive to mkdir 2020-02-04 01:43:49 -05:00
Ajay Ramachandran
6d312e7ba7 Create dir when building if needed. 2020-02-04 01:41:47 -05:00
Ajay Ramachandran
09a33c4252 Added manifest building. 2020-02-04 01:32:58 -05:00
Ajay Ramachandran
76d966c1f9 Merge pull request #254 from ajayyy/typescript
Moving to TypeScript
2020-02-04 00:22:08 -05:00
Ajay Ramachandran
da364b49f0 Removed old config example 2020-02-04 00:16:46 -05:00
Ajay Ramachandran
f6f416b899 Fixed direct link channel whitelisting 2020-02-04 00:13:38 -05:00
Ajay Ramachandran
3582f45fd8 Fixed skip notice references fixing manual skip notices. 2020-02-04 00:05:03 -05:00
Ajay Ramachandran
13cef5ff14 Remove invidious message 2020-02-03 23:40:44 -05:00
Ajay Ramachandran
4049d2d1ab Fixed keybind not working 2020-02-03 23:39:41 -05:00
Ajay Ramachandran
db7ac02c7d Fix CI filepath 2020-02-03 23:25:50 -05:00
Ajay Ramachandran
26f3560e97 CI uses new manifest location 2020-02-03 23:23:26 -05:00
Ajay Ramachandran
1eaf4f44c2 Fixed incorrect syntax in example config 2020-02-03 23:20:57 -05:00
Ajay Ramachandran
0a0d4d3e0f Fixed config.json.example naming 2020-02-03 23:16:05 -05:00
Ajay Ramachandran
7f22687c24 Updated CI to use config.json 2020-02-03 23:13:40 -05:00
Ajay Ramachandran
7404e0831b Updated CI 2020-02-03 23:11:01 -05:00
Ajay Ramachandran
e3be54cbe7 Updated build commands 2020-02-03 23:10:04 -05:00
Ajay Ramachandran
b0a23a5c4e Converted options page to TypeScript 2020-02-03 22:34:43 -05:00
Ajay Ramachandran
5bb5dae20e Added config types and added back handler to proxy 2020-02-03 14:11:52 -05:00
Ajay Ramachandran
bb9de35722 Fixed naming issue 2020-02-02 18:26:43 -05:00
Ajay Ramachandran
4907be7738 Fixed maps not being handled properly 2020-02-01 19:25:40 -05:00
Ajay Ramachandran
23141aa624 Made the extension successfully build 2020-02-01 19:18:53 -05:00
Ajay Ramachandran
17381e7deb Moved Utils away from a static class.
Moved Firefox content script registration to the background script.

Moved onInvidious to the content script.
2020-02-01 18:47:36 -05:00
Ajay Ramachandran
4bd410f04e Made the skip notice work with TypeScript. 2020-02-01 18:17:48 -05:00
Ajay Ramachandran
20a09d3d27 Fixed type errors. 2020-02-01 17:51:42 -05:00
Ajay Ramachandran
98b36380b5 Update readme to new config name 2020-02-01 17:46:55 -05:00
Ajay Ramachandran
7716827a98 Fixed incorrect import. 2020-02-01 17:40:12 -05:00
Ajay Ramachandran
070a51954a Fixed channel ID promise 2020-02-01 17:38:58 -05:00
Ajay Ramachandran
de66e21d14 Added support for the on page popup. 2020-02-01 17:36:02 -05:00
Ajay Ramachandran
932cf8ecf1 Fixed SBMap not importing entries. 2020-02-01 16:53:33 -05:00
Ajay Ramachandran
4a491f1ebf Moved server code to utils 2020-02-01 16:41:08 -05:00
Ajay Ramachandran
5ebdfd8466 Added config to gitignore. 2020-02-01 16:27:58 -05:00
Ajay Ramachandran
16c720e500 Setup new config.json and fixed typescript errors in the popup 2020-02-01 16:26:57 -05:00
Ajay Ramachandran
d77f8abf42 Converted more code to TypeScript. 2020-01-28 23:52:15 -05:00
Ajay Ramachandran
03836b69f2 Started conversion to TypeScript. 2020-01-28 22:16:48 -05:00
Ajay Ramachandran
5837205a9a Updated API URL 2020-01-28 15:45:18 -05:00
Ajay Ramachandran
0f346c2096 Updated API url 2020-01-28 15:38:32 -05:00
Ajay Ramachandran
30acfdd788 Uses old query 2020-01-25 12:20:40 -05:00
Ajay Ramachandran
478edfee7c Changed to new user count query 2020-01-25 12:20:18 -05:00
Ajay Ramachandran
a685950a66 Use defaults if it the config is broken 2020-01-24 21:44:24 -05:00
Ajay Ramachandran
69d1d709f6 Merge pull request #251 from ajayyy/experimental
Removed December date.
2020-01-24 21:43:03 -05:00
Ajay Ramachandran
1fcfdcd13c Removed December date. 2020-01-24 21:39:06 -05:00
Lartza
34a21c6d8c Handle invalid current minDuration in options.js 2020-01-24 02:29:11 +02:00
Lartza
e6ef27936e Add minimum duration option 2020-01-24 01:02:23 +02:00
Ajay Ramachandran
2b7f940669 Merge pull request #248 from ajayyy/hotfix-invidious
Fixed firefox content script registration
2020-01-21 23:05:33 -05:00
Ajay Ramachandran
bdcd613f02 Update version number 2020-01-21 23:05:23 -05:00
Ajay Ramachandran
7255300903 Merge pull request #244 from OfficialNoob/patch-5
Support options button when not in popup
2020-01-19 21:44:03 -05:00
Ajay Ramachandran
21b2ad71b9 Merge pull request #245 from jplsek/opt-html5
Set options and help page to use html5
2020-01-19 10:11:23 -05:00
Ajay Ramachandran
1ff7e69556 Merge pull request #247 from OfficialNoob/patch-6
Save Map content
2020-01-19 10:09:28 -05:00
Official Noob
f7a3f98ad3 Comments 2020-01-16 18:43:49 +00:00
Official Noob
4cdb874b4f Removed deleteProperty from MapIO 2020-01-16 18:27:29 +00:00
Official Noob
5df0801c64 deleteProperty() if no key provided delete by id 2020-01-16 18:13:07 +00:00
Official Noob
e286797ac5 Update SB.js 2020-01-16 18:03:40 +00:00
Official Noob
e784dc017d Added clear 2020-01-16 18:02:48 +00:00
Official Noob
251339f26b Comments and added delete 2020-01-16 17:57:54 +00:00
Official Noob
3e3b8eab6f Save Map content 2020-01-16 14:29:03 +00:00
Ajay Ramachandran
a7d769dd6d Merge pull request #246 from jplsek/keybind-esc
Allow keybind cancel with ESC
2020-01-15 21:39:14 -05:00
Jeremy Plsek
ad37e9abe7 Allow keybind cancel with ESC 2020-01-15 20:50:51 -05:00
Jeremy Plsek
f99a3f5088 Set options and help page to use html5
- Fix css when using html5
- Add encoding scheme to html
- Remove font-size change on title on hover. It's jarring
seeing the whole page move when trying to move your mouse
to the options.
- Remove center tags
- Remove unnecessary styles
- Fix some minor grammar
2020-01-15 20:30:07 -05:00
Ajay Ramachandran
6f2a09695b Update README.md 2020-01-14 10:32:26 -05:00
Official Noob
9ae8769869 inPopup did not always work 2020-01-13 20:08:06 +00:00
Official Noob
f58a16179a Added "openConfig" message 2020-01-13 19:54:24 +00:00
Official Noob
297c95ac6b Added inPopup check for options button 2020-01-13 19:52:54 +00:00
Ajay Ramachandran
ced3100b4e Merge pull request #243 from Deykun/master
Polish translation created
2020-01-12 19:04:57 -05:00
Szymon T
7358be6faa Shorter version of fullName 2020-01-13 00:27:55 +01:00
Szymon T
03e29dbb81 Polish translation created 2020-01-12 23:46:38 +01:00
Ajay Ramachandran
7cb2915fd7 Fixed firefox content script registration. 2020-01-11 17:48:11 -05:00
Ajay Ramachandran
5348496768 Merge pull request #235 from OfficialNoob/patch-2
Formatting changes & proxy delete support
2020-01-11 15:17:34 -05:00
Ajay Ramachandran
7526abc3e1 Merge pull request #236 from ajayyy/hotfix-invidious
Fixed new line issue
2020-01-11 14:55:34 -05:00
Ajay Ramachandran
1163b6f0ce Fixed wrong variabled being used. 2020-01-11 14:50:11 -05:00
Ajay Ramachandran
7c809419f8 Formatting changes 2020-01-11 14:48:17 -05:00
Ajay Ramachandran
0a42f130ac Fixed new line issue 2020-01-11 14:45:16 -05:00
Official Noob
4de0ae51e8 Formatting changes & proxy delete support 2020-01-11 19:42:35 +00:00
Ajay Ramachandran
f5a4ffabde Merge pull request #234 from ajayyy/hotfix-invidious
Hotfix
2020-01-11 13:42:10 -05:00
Ajay Ramachandran
115b1edf11 Increased version number 2020-01-11 13:41:44 -05:00
Ajay Ramachandran
04942a3a5d Fixed delete button potentially appearing. 2020-01-11 13:35:20 -05:00
Ajay Ramachandran
aee0712ef1 Fixed old sponsortime config being broken. 2020-01-11 13:27:20 -05:00
Ajay Ramachandran
63568aae9c Merge pull request #229 from ajayyy/experimental-ajay
Increase version number
2020-01-10 22:26:22 -05:00
Ajay Ramachandran
bf90d2a8e6 Increase version number 2020-01-10 22:22:55 -05:00
Ajay Ramachandran
d87cb77895 Merge pull request #228 from ajayyy/experimental-ajay
Invidious support fixes
2020-01-10 22:22:24 -05:00
Ajay Ramachandran
36c4ebda65 Added comments to the settimeout on install 2020-01-10 22:16:53 -05:00
Ajay Ramachandran
968df5a2e4 Increased notice width 2020-01-10 22:15:42 -05:00
Ajay Ramachandran
259f7a9439 Added notice info about the Invidious update. TODO: remove this in the future. 2020-01-10 22:15:28 -05:00
Ajay Ramachandran
4f8e1bc827 Fixed formatting. 2020-01-10 20:49:21 -05:00
Ajay Ramachandran
9e8a520d1e Fixed broken voting. 2020-01-10 20:48:16 -05:00
Ajay Ramachandran
7335429541 Added option for auto-vote. 2020-01-10 20:06:16 -05:00
Ajay Ramachandran
5c227f445a Added ublock origin to npm run dev 2020-01-10 19:58:59 -05:00
Ajay Ramachandran
dce90e86bf Added invidious support info to the help page. 2020-01-10 15:46:50 -05:00
Ajay Ramachandran
36d7dcce9b Revert "Removed snopyta.org from the default."
This reverts commit fb974de53b.
2020-01-10 15:17:31 -05:00
Ajay Ramachandran
502bec55c4 Merge pull request #181 from afrmtbl/add-invidious
Initial Invidious support
2020-01-09 22:41:08 -05:00
Ajay Ramachandran
21a61bb238 Fixed options page and manifest. 2020-01-09 22:40:44 -05:00
Ajay Ramachandran
fb974de53b Removed snopyta.org from the default. 2020-01-09 22:34:26 -05:00
Ajay Ramachandran
a5adf73b88 Moved registration removal to a util function. 2020-01-09 22:32:20 -05:00
Ajay Ramachandran
1f4c4c0901 Make content script reregister on firefox every browser restart 2020-01-09 22:13:00 -05:00
Ajay Ramachandran
338fbcea9c Fixed buttons appearing on invidious. 2020-01-09 21:32:56 -05:00
Ajay Ramachandran
a20fa9871e Added support for any invidious instance. 2020-01-09 21:23:25 -05:00
Ajay Ramachandran
25436d9620 Merge branch 'master' of https://github.com/ajayyy/SponsorBlock into add-invidious
# Conflicts:
#	background.js
2020-01-09 20:42:31 -05:00
Ajay Ramachandran
8d3a633d85 Merge pull request #226 from ajayyy/ajay-config-listener
Config callback updating
2020-01-09 20:41:18 -05:00
Ajay Ramachandran
f67568e3b6 Fixed indentation. 2020-01-09 20:29:47 -05:00
Ajay Ramachandran
d902cc5efe Made buttons update with the config. 2020-01-09 20:29:20 -05:00
Ajay Ramachandran
9e89eb521a Added config callback support. 2020-01-09 20:09:32 -05:00
Ajay Ramachandran
f4c5f50f8c Merge branch 'master' of https://github.com/ajayyy/SponsorBlock into add-invidious 2020-01-09 19:53:49 -05:00
Ajay Ramachandran
4301a6bfe3 Merge pull request #225 from ajayyy/experimental-ajay
Option page fixes
2020-01-09 19:53:40 -05:00
Ajay Ramachandran
2c5a78947a Added instance display 2020-01-09 19:52:20 -05:00
Ajay Ramachandran
8f7eb82b6e Remove unnecessary code 2020-01-09 19:42:18 -05:00
Ajay Ramachandran
d2e1373e2a Fixed more merging issues. 2020-01-09 19:23:05 -05:00
Ajay Ramachandran
d705610855 Fix merge issues 2020-01-09 19:19:30 -05:00
Ajay Ramachandran
c40b6576d6 Updated gitignore. 2020-01-09 15:02:06 -05:00
Ajay Ramachandran
1c3e2fcdad Fixed help page style issue. 2020-01-09 15:01:42 -05:00
Ajay Ramachandran
7acc6c3329 Added warning message when changing the userID. 2020-01-09 15:00:03 -05:00
Ajay Ramachandran
1715ee327f Merge branch 'master' of https://github.com/ajayyy/SponsorBlock into experimental-ajay 2020-01-09 14:28:40 -05:00
Ajay Ramachandran
0481943737 Merge branch 'master' of https://github.com/ajayyy/SponsorBlock into add-invidious
# Conflicts:
#	background.js
#	content.js
#	options/options.js
2020-01-09 14:28:06 -05:00
Ajay Ramachandran
c53bc20294 Merge pull request #219 from OfficialNoob/patch-26
Config proxy [WIP]
2020-01-09 13:24:33 -05:00
Ajay Ramachandran
a8fc22eae8 Reformatted variable name. 2020-01-09 13:17:26 -05:00
Ajay Ramachandran
4ba82f6e00 Set local config right away 2020-01-09 13:16:27 -05:00
Ajay Ramachandran
8fd671d4d3 Added docs and improved consistency. 2020-01-09 12:46:04 -05:00
Ajay Ramachandran
309b1b007e Removed unneeded function 2020-01-09 12:39:48 -05:00
Ajay Ramachandran
d0e7213cc4 Added docs and removed reflection. Also removed inheritance. 2020-01-09 12:38:15 -05:00
Ajay Ramachandran
a2e9688418 Formatting + duplicate code removal. 2020-01-09 12:30:09 -05:00
Ajay Ramachandran
f42c23cd9a Formatting fixes 2020-01-09 12:12:49 -05:00
Official Noob
52f60d70e2 Map support :D 2020-01-09 16:39:23 +00:00
Official Noob
339d05e157 :/ 2020-01-08 23:27:34 +00:00
Official Noob
c0c3640638 Reverted back <Not working> 2020-01-08 23:16:02 +00:00
Official Noob
a314139302 Map storage encoding 2020-01-08 22:22:18 +00:00
Official Noob
bfa0472f84 Reflect 2020-01-08 19:52:41 +00:00
Ajay Ramachandran
fa19e435cc Switched to a listener map. 2020-01-07 22:59:50 -05:00
Ajay Ramachandran
eb4bf89194 Fixed default 2020-01-07 22:12:53 -05:00
Ajay Ramachandran
da8a1376a7 Converted options page to new config system. 2020-01-07 22:02:16 -05:00
Ajay Ramachandran
267132cdde Merge branch 'master' of https://github.com/ajayyy/SponsorBlock into patch-26 2020-01-07 21:24:54 -05:00
Ajay Ramachandran
b8ebe5076b Fixed indentation. 2020-01-07 21:23:59 -05:00
Ajay Ramachandran
cb9877b3b4 Merge branch 'master' of https://github.com/ajayyy/SponsorBlock into experimental-ajay 2020-01-06 22:31:17 -05:00
Ajay Ramachandran
c73b9ed5a6 Remove redundant code. 2020-01-06 22:30:35 -05:00
Ajay Ramachandran
1bd0b4349f Fixed build not ignoring ignored folder 2020-01-06 19:51:49 -05:00
Official Noob
d15785146f Update options.js 2020-01-06 23:42:02 +00:00
Official Noob
47d9d93818 Added SB.js to options html 2020-01-06 23:34:33 +00:00
Official Noob
601ff44145 Forgot comma 2020-01-06 23:29:04 +00:00
Official Noob
cbd451949b Added hideDiscordLink, hideDiscordLink 2020-01-06 23:27:07 +00:00
Official Noob
a7dc207c5f Fix format conflict 2020-01-06 23:12:48 +00:00
Official Noob
c20b67d11f Fixed syntax 2020-01-06 21:20:22 +00:00
Official Noob
0b9def800b Update SB.js 2020-01-06 21:17:28 +00:00
Official Noob
d8ae73e96a Update SB.js 2020-01-06 21:14:31 +00:00
Ajay Ramachandran
c99f7925eb Fixed migrate 2020-01-06 16:13:50 -05:00
Official Noob
3627661e1f Backwards compatibility 2020-01-06 21:11:37 +00:00
Official Noob
f1c68a98cf removed SB.config.dontShowNoticeOld 2020-01-06 18:59:38 +00:00
Official Noob
92f10d51aa Removed SB.config.dontShowNoticeOld 2020-01-06 18:58:47 +00:00
Official Noob
bdae68be35 () => 2020-01-06 18:56:37 +00:00
Official Noob
2a4abf958d Map test 2020-01-01 19:20:14 +00:00
Official Noob
1362331a93 Map test 2020-01-01 19:12:15 +00:00
Official Noob
a70aa7723e Map test 2020-01-01 19:11:17 +00:00
Official Noob
a3f5200c9a Map test 2020-01-01 19:10:34 +00:00
Official Noob
1005783034 Update SB.js 2020-01-01 18:02:16 +00:00
Official Noob
278e40207c Create empty array for sponsorTimeKey 2020-01-01 18:00:47 +00:00
Ajay Ramachandran
509b627e88 Made it reenable the permission when an invidious instance is added.
Right now it throws an error
2020-01-01 12:55:35 -05:00
Official Noob
ecd9f6eaff Update content.js 2020-01-01 15:09:13 +00:00
Official Noob
1d2b6b2010 userID 2020-01-01 14:50:05 +00:00
Official Noob
6c4d5c0705 submitTimes async 2020-01-01 14:47:41 +00:00
Official Noob
0533919bde Update SB.js 2020-01-01 14:45:34 +00:00
Official Noob
e02ca1c822 Update SB.js 2020-01-01 14:45:22 +00:00
Official Noob
039c1a178f Update background.js 2020-01-01 14:44:39 +00:00
Official Noob
6f682baa45 Update content.js 2020-01-01 14:30:23 +00:00
Official Noob
0241c0a036 Update SB.js 2020-01-01 14:04:49 +00:00
Official Noob
4ebdcf1cc5 Update content.js 2020-01-01 14:04:18 +00:00
Official Noob
46c3187c89 Update content.js 2020-01-01 13:46:09 +00:00
Official Noob
c65e3c21e3 fix 2020-01-01 13:01:42 +00:00
Official Noob
e35774138f Added run_at document_start 2020-01-01 13:01:18 +00:00
Official Noob
a9b678f0ff dontShowNoticeAgain 2020-01-01 12:36:29 +00:00
Official Noob
32356d711d Update SB.js 2020-01-01 12:35:54 +00:00
Official Noob
477ae3eb2c Update SB.js 2020-01-01 12:27:59 +00:00
Ajay Ramachandran
0b41118232 Added option for custom invidious instances. 2019-12-31 19:09:37 -05:00
Ajay Ramachandran
ea3f9f246e Fixed firefox support. 2019-12-31 18:13:51 -05:00
Official Noob
9dd954e7d8 Added default for trackViewCount 2019-12-31 22:54:02 +00:00
Official Noob
41352a5116 Update content.js 2019-12-31 22:52:41 +00:00
Official Noob
1ac9989288 Use defaults 2019-12-31 22:50:52 +00:00
Ajay Ramachandran
b441cc2123 Added firefox support and support for multiple invidious instances. 2019-12-31 17:48:43 -05:00
Official Noob
5e2bc43722 Update SB.js 2019-12-31 22:48:29 +00:00
Official Noob
da17dd8bae Added addDefaults and resetConfig 2019-12-31 22:46:16 +00:00
Official Noob
87098d1c3e Update content.js 2019-12-31 22:04:40 +00:00
Official Noob
2a1b60596b debug 2019-12-31 21:30:54 +00:00
Official Noob
7bbbe0dcf3 Use SB.config 2019-12-31 20:56:30 +00:00
Official Noob
25672a6496 SB.js content script 2019-12-31 20:17:27 +00:00
Official Noob
796bf6ef45 Added SB.js 2019-12-31 20:10:16 +00:00
Official Noob
6ceeaebd9d Added SB 2019-12-31 20:08:11 +00:00
Official Noob
61b8427270 File used to control the SB object 2019-12-31 20:07:43 +00:00
Official Noob
4450aaa3b3 Moving to separate due to load order 2019-12-31 20:07:03 +00:00
Ajay Ramachandran
b0e0c380dd Added Firefox fixes 2019-12-31 14:50:01 -05:00
Official Noob
8baf11a053 Forgot SB. 2019-12-31 19:20:20 +00:00
Official Noob
67f9697f3f test 2019-12-31 19:17:10 +00:00
Official Noob
a94d941125 Added sync config 2019-12-31 19:16:46 +00:00
Official Noob
2917de6776 Moved localconfig to SB object 2019-12-31 19:06:33 +00:00
Official Noob
272698f97b Update utils.js 2019-12-31 19:03:43 +00:00
Official Noob
3fbb689e0a Moving utils 2019-12-31 19:01:17 +00:00
Ajay Ramachandran
4817af5e4f Removed minimum version 2019-12-31 13:29:59 -05:00
Ajay Ramachandran
aba08a515e Merge branch 'master' of https://github.com/ajayyy/SponsorBlock into add-invidious 2019-12-31 13:18:46 -05:00
Ajay Ramachandran
83801db82e Merge pull request #215 from jplsek/ci4
Add web-ext and ci artifact generation
2019-12-31 13:17:46 -05:00
Official Noob
84e4adbc12 Config proxy [POC]
Having a global SB.config that can be used to store get and set variables easily  
Example: SB.config.userID = "blah"
2019-12-31 14:55:03 +00:00
Ajay Ramachandran
6a37753753 Added defaults to option page. 2019-12-31 02:32:44 -05:00
Ajay Ramachandran
0898c7e28c Added options description. 2019-12-31 02:23:39 -05:00
Ajay Ramachandran
412be37ae5 Fixed channel parsing error. 2019-12-31 02:23:23 -05:00
Ajay Ramachandran
beec376e10 Updated invidious explainer. 2019-12-31 02:17:02 -05:00
Ajay Ramachandran
df30f00347 Moved invidious code to functions and made it check permissions on init. 2019-12-31 02:15:10 -05:00
Ajay Ramachandran
dcfdade927 Added invidio.sh 2019-12-31 02:08:32 -05:00
Ajay Ramachandran
741ddcd8aa Fixed permissions. 2019-12-31 02:06:58 -05:00
Ajay Ramachandran
433db26078 Added option to enable invidious support. 2019-12-30 23:15:29 -05:00
Ajay Ramachandran
fc033cb69d Merge branch 'master' of https://github.com/ajayyy/SponsorBlock into add-invidious 2019-12-30 17:40:32 -05:00
Ajay Ramachandran
bd8c67bc24 Merge branch 'experimental-ajay' of https://github.com/ajayyy/SponsorBlock into add-invidious 2019-12-30 17:39:07 -05:00
Ajay Ramachandran
a80fbc1a04 Merge pull request #216 from ajayyy/options-page
Options Page
2019-12-30 17:37:59 -05:00
Ajay Ramachandran
e347504616 Removed options from popup. 2019-12-30 17:37:02 -05:00
Ajay Ramachandran
94cbf089db Added submission keybind option 2019-12-30 17:23:05 -05:00
Ajay Ramachandran
cb2fb6925b Added keybind option. 2019-12-30 16:41:33 -05:00
Ajay Ramachandran
b3361a473c Removed use of center tag. 2019-12-30 14:44:03 -05:00
Ajay Ramachandran
fcb6ed7676 Added text set option (userID) 2019-12-30 01:20:20 -05:00
Ajay Ramachandran
91f4d7f669 Removed logs 2019-12-30 00:49:23 -05:00
Ajay Ramachandran
2e2ff60c23 Made the options save. 2019-12-30 00:48:59 -05:00
Ajay Ramachandran
13727270d4 Added all toggle buttons and made them set to their values. 2019-12-30 00:39:02 -05:00
Ajay Ramachandran
b27f56bc00 Added basic options panel.
Co-authored-by: Official Noob <31563761+OfficialNoob@users.noreply.github.com>
2019-12-29 23:18:18 -05:00
Ajay Ramachandran
7ad7d793d0 Added info about web-ext run 2019-12-29 20:52:40 -05:00
Ajay Ramachandran
491bef680e Removed unnecessary ignored files. 2019-12-29 20:49:31 -05:00
Ajay Ramachandran
e581dc818f Updated ignore files for build. 2019-12-29 20:26:47 -05:00
Jeremy Plsek
8d0b032eb6 Add web-ext and ci artifact generation 2019-12-29 19:35:02 -05:00
Ajay Ramachandran
9cb4fd6f79 Merge pull request #214 from OfficialNoob/patch-26
getYouTubeVideoID ~ TV support
2019-12-29 16:56:36 -05:00
Official Noob
87abcae249 fix embeds 2019-12-29 21:51:11 +00:00
Ajay Ramachandran
fe608b579e Formatting 2019-12-29 16:48:10 -05:00
Official Noob
f74e25a482 Update utils.js 2019-12-29 21:42:43 +00:00
Official Noob
1db9d25f3b getYouTubeVideoID ~ TV support 2019-12-29 21:39:19 +00:00
Ajay Ramachandran
f25aeefe83 Merge branch 'master' into add-invidious 2019-12-29 00:34:49 -05:00
Ajay Ramachandran
1abc1b9b28 Merge pull request #212 from ajayyy/experimental-ajay
UserID import, ID fixes, view count fix, embed error fix
2019-12-29 00:29:51 -05:00
Ajay Ramachandran
d10c8041bf Update build number 2019-12-29 00:28:56 -05:00
Ajay Ramachandran
c14c795474 Improved channel name query selector.
Resolves https://github.com/ajayyy/SponsorBlock/issues/199
2019-12-29 00:21:38 -05:00
Ajay Ramachandran
e5937431c3 Prevented error on embed.
Resolves https://github.com/ajayyy/SponsorBlock/issues/202
2019-12-29 00:14:51 -05:00
Ajay Ramachandran
b24a688e63 Improved view count 2019-12-29 00:10:08 -05:00
Ajay Ramachandran
10fd22f49c Fixed view counting being broken. 2019-12-29 00:08:57 -05:00
Ajay Ramachandran
f1dda95847 Merge branch 'experimental' of https://github.com/ajayyy/SponsorBlock into experimental-ajay
# Conflicts:
#	content.js
2019-12-29 00:08:41 -05:00
Ajay Ramachandran
f3f6dd171b Switched vote and view to POST. 2019-12-28 23:56:38 -05:00
Ajay Ramachandran
c802212a62 Added ability to import/export your userID. 2019-12-28 22:13:03 -05:00
Ajay Ramachandran
afb666797d Fixed IDs being localized in some parts. 2019-12-28 11:04:36 -05:00
Ajay Ramachandran
85a591c984 Merge pull request #207 from ImMaax/master
Fixed German translation
2019-12-23 21:01:04 -05:00
Max
3edaea8102 Removed word 2019-12-22 22:57:04 +01:00
Max
93c39c3ecc Fixed German translation 2019-12-22 22:54:43 +01:00
Ajay Ramachandran
ab2f0ef395 Crowdin fixes 2019-12-21 00:00:23 -05:00
Ajay Ramachandran
005ca73cce Update Crowdin configuration file 2019-12-20 23:56:49 -05:00
Ajay Ramachandran
8dd8897f1f Fixed yaml formatting 2019-12-20 23:08:34 -05:00
Ajay Ramachandran
95555ed3fd Fixed yaml 2019-12-20 23:06:07 -05:00
Ajay Ramachandran
11b71f7366 Added custom language mapping to crowdin file 2019-12-20 23:03:41 -05:00
Ajay Ramachandran
4537c70105 Update Crowdin configuration file 2019-12-20 22:42:22 -05:00
Ajay Ramachandran
42a0cff162 Update crowdin.yml 2019-12-20 17:55:35 -05:00
Ajay Ramachandran
527e6d4c24 Update Crowdin configuration file 2019-12-20 17:43:23 -05:00
Ajay Ramachandran
2c19da2117 Merge pull request #201 from ajayyy/experimental-ajay
Fixed channel whitelisting on old YouTube
2019-12-19 01:06:48 -05:00
Ajay Ramachandran
7ee1cc911f Increase version number. 2019-12-19 01:05:11 -05:00
Ajay Ramachandran
9fc846bd7a Made sure the video player button options are ignored on Invidious. 2019-12-19 01:03:09 -05:00
Ajay Ramachandran
5b628ccbf9 Fixed submit button being shown at the wrong time. 2019-12-19 00:56:52 -05:00
Ajay Ramachandran
5471273673 Fixed getting channel ID for invidious. 2019-12-19 00:48:26 -05:00
Ajay Ramachandran
58c0c6e152 Merge branch 'experimental-ajay' of https://github.com/ajayyy/SponsorBlock into add-invidious 2019-12-19 00:46:52 -05:00
Ajay Ramachandran
36078acaee Fixed channel whitelisting on old YouTube. 2019-12-19 00:46:37 -05:00
Ajay Ramachandran
7d62c9f575 Merge branch 'master' of https://github.com/ajayyy/SponsorBlock into add-invidious 2019-12-19 00:40:32 -05:00
Ajay Ramachandran
45a64fcb03 Prevented upload button from appearing on invidious.
It still appears if the video player controls are disabled.
2019-12-19 00:38:55 -05:00
Ajay Ramachandran
630b099fd6 Fixed formatting and removed whitelisting fix code.
Whitelisting was now fixed in a different way.
2019-12-19 00:36:35 -05:00
Ajay Ramachandran
c17e47ddd3 Merge pull request #198 from ajayyy/experimental-ajay
German translation + fixes
2019-12-19 00:09:46 -05:00
Ajay Ramachandran
81bf54c42d Upped version number 2019-12-19 00:08:31 -05:00
Ajay Ramachandran
5b693e81fd Added german translation thanks to Floatinger. 2019-12-19 00:08:07 -05:00
Ajay Ramachandran
00115cd707 Fixed string not using language file. 2019-12-17 18:32:20 -05:00
Ajay Ramachandran
e992844fa2 Fixed channel parsing error.
Fixes whitelisting issues.
2019-12-17 18:32:01 -05:00
Ajay Ramachandran
b30acaac78 Merge pull request #195 from ajayyy/experimental-ajay
Small Fixes
2019-12-13 23:37:11 -05:00
Ajay Ramachandran
46ac654224 Update version number 2019-12-13 23:35:17 -05:00
Ajay Ramachandran
8578e96c3a Fixed channel whitelisting and channel finding on new YouTube layout. 2019-12-13 23:21:21 -05:00
Ajay Ramachandran
b42bdc6e6f Fixed popup stats padding. 2019-12-13 22:45:40 -05:00
Ajay Ramachandran
369364f574 Fixed downvoted sponsors reappearing. 2019-12-13 22:38:00 -05:00
Ajay Ramachandran
a5baebab3f Fixed new submissions getting added to the downloaded submissions. 2019-12-13 21:55:43 -05:00
Ajay Ramachandran
b34e6076e4 Moved error message handling to a util file and added a link to the status site. 2019-12-13 21:32:57 -05:00
Ajay Ramachandran
226c5d601c Added space to notification. 2019-12-10 18:17:07 -05:00
Ajay Ramachandran
cc1a12e1a2 Clarified that auto-upvote can be disabled. 2019-12-09 17:06:30 -05:00
Ajay Ramachandran
1d342b21fd Added small guideline reminder to submission confirmation dialog. 2019-12-08 12:08:36 -05:00
afrmtbl
5dc67a386c Fix manifest 2019-12-05 16:13:22 -05:00
afrmtbl
6d442b9e80 Explain additional whitelist check 2019-12-05 15:48:26 -05:00
afrmtbl
2f6ddeb5f1 Initial Invidious support 2019-12-05 15:35:25 -05:00
Ajay Ramachandran
3d01ffee1b Merge pull request #179 from ajayyy/experimental-ajay
Added better local stats.
2019-12-04 23:53:26 -05:00
Ajay Ramachandran
9c51df9159 Increased version number. 2019-12-04 23:51:47 -05:00
Ajay Ramachandran
3a29fcc3d8 Added time the user saved others from plus better time formatting. 2019-12-04 23:51:20 -05:00
Ajay Ramachandran
b18f2ae60d Made it show how much time you have saved yourself. 2019-12-04 23:38:07 -05:00
Ajay Ramachandran
ab07478e25 Updated build number 2019-12-03 17:01:34 -05:00
Ajay Ramachandran
d6aeec933a Merge pull request #176 from ajayyy/experimental-ajay
Better error messages and manual skipping
2019-12-03 00:02:07 -05:00
Ajay Ramachandran
cd5207f816 Added ability to disable auto skip.
Resolves https://github.com/ajayyy/SponsorBlock/issues/131 and https://github.com/ajayyy/SponsorBlock/issues/162
2019-12-02 23:58:29 -05:00
Ajay Ramachandran
381c11ed99 Updated error messages. 2019-11-28 18:03:33 -05:00
Ajay Ramachandran
62d4b365c2 Merge pull request #173 from ajayyy/experimental-ajay
Made the popup work on non YouTube tabs
2019-11-24 01:16:56 -05:00
Ajay Ramachandran
524df6389a Update version number. 2019-11-24 01:14:55 -05:00
Ajay Ramachandran
24292e771b Made the popup work on non YouTube tabs. 2019-11-24 01:13:52 -05:00
Ajay Ramachandran
f35d34a807 Merge pull request #172 from ajayyy/experimental-ajay
Small features and bug fixes
2019-11-24 00:55:04 -05:00
Ajay Ramachandran
468e33eff7 Update version number. 2019-11-24 00:53:51 -05:00
Ajay Ramachandran
600f9e4b85 Changed order of popup. Also fixed discord link.
Resolves https://github.com/ajayyy/SponsorBlock/issues/156.
2019-11-24 00:48:35 -05:00
Ajay Ramachandran
9cb3da4a7f Added a button to disable skipping. Also changed up popup look.
Resolves https://github.com/ajayyy/SponsorBlock/issues/167
2019-11-24 00:05:35 -05:00
Ajay Ramachandran
a66c7c8063 Properly added submissions to sponsor times when done. 2019-11-23 18:05:42 -05:00
Ajay Ramachandran
0a84dbd3a5 Improved speed of whitelist check. 2019-11-23 17:53:04 -05:00
Ajay Ramachandran
2fa412e574 Removed deprecated code to fix whitelist array. 2019-11-23 17:44:22 -05:00
Ajay Ramachandran
f240416886 Fixed reversed strings.
Resolves https://github.com/ajayyy/SponsorBlock/issues/170.
2019-11-23 14:35:33 -05:00
Ajay Ramachandran
2a025b7977 Fixed formatting in readme 2019-11-23 13:33:55 -05:00
Ajay Ramachandran
f44d2b67e5 Added link to MPV port 2019-11-23 13:33:22 -05:00
Ajay Ramachandran
6b15ebac99 Added link in readme 2019-11-23 12:54:34 -05:00
Ajay Ramachandran
ff41251f17 Merge pull request #171 from ajayyy/experimental-ajay
Fixed error message, prevented double counting contributions and delayed userID generation
2019-11-23 12:49:19 -05:00
Ajay Ramachandran
c7c1cb79a8 Increased version number. 2019-11-23 12:48:10 -05:00
Ajay Ramachandran
fc155ccdfa Prevented contributions from counting twice. 2019-11-23 12:47:00 -05:00
Ajay Ramachandran
dfad1a5636 Added delayed startup after install. 2019-11-23 12:44:38 -05:00
Ajay Ramachandran
6790952f86 Fixed error messages not working. Added message for error 503 and 0. 2019-11-23 12:26:24 -05:00
Ajay Ramachandran
1a28f714a1 Update README.md 2019-11-17 21:32:31 -05:00
Ajay Ramachandran
55a55fefba Update README.md 2019-11-17 21:32:01 -05:00
Ajay Ramachandran
fe74f7caa3 Merge pull request #169 from ajayyy/experimental-ajay
Decreased requests to help with server load issues
2019-11-14 15:05:57 -05:00
Ajay Ramachandran
108aac0e79 Improved non YouTube tab message. 2019-11-14 15:04:46 -05:00
Ajay Ramachandran
008c07acc3 Merge branch 'master' of https://github.com/ajayyy/SponsorBlock into experimental-ajay 2019-11-14 14:59:55 -05:00
Ajay Ramachandran
831a3c1b5a Increased retry timeout when the server is down. 2019-11-14 14:59:44 -05:00
Ajay Ramachandran
dc7b63d735 Merge pull request #164 from Otiel/french-translation
Improve French translation
2019-11-14 14:58:50 -05:00
Ajay Ramachandran
9267f36165 Raised retry time from 10 seconds to 180 seconds (3 mins). 2019-11-14 14:53:40 -05:00
Ajay Ramachandran
ae6d63c3ab Merge pull request #168 from ajayyy/experimental-ajay
Fixed notice never hiding
2019-11-07 13:05:22 -05:00
Ajay Ramachandran
a3214f0fa7 Fixed notice never hiding. 2019-11-07 13:04:31 -05:00
Otiel
d4bd5313fc french: add missing translation 2019-10-31 21:07:37 +01:00
Otiel
c69fe53ea6 french: improve existing translation 2019-10-31 21:07:12 +01:00
Otiel
d7c496847f french: fix spelling 2019-10-31 20:20:48 +01:00
Ajay Ramachandran
44516648a1 Merge pull request #163 from ajayyy/experimental-ajay
Keybind edit, show notice again, ignore rate limits
2019-10-30 23:39:18 -04:00
Ajay Ramachandran
fbeabc830b Merge branch 'firefox-optimizations' of https://github.com/ajayyy/SponsorBlock into experimental-ajay 2019-10-30 23:38:56 -04:00
Ajay Ramachandran
f370746382 Merge branch 'master' of https://github.com/ajayyy/SponsorBlock into experimental-ajay 2019-10-30 23:38:18 -04:00
Ajay Ramachandran
e82beb861a Merge pull request #153 from owendaprile/firefox-optimizations
Some Firefox Optimizations
2019-10-30 23:38:13 -04:00
Ajay Ramachandran
1791d31681 Revert "Moved browser specific settings into manifest"
This reverts commit 047432af03.
2019-10-30 23:37:36 -04:00
Ajay Ramachandran
784ddea34a Updated version number. 2019-10-30 23:33:10 -04:00
Ajay Ramachandran
69c93a0563 Removed deprecated show install page code 2019-10-30 23:32:32 -04:00
Ajay Ramachandran
4e4d50de82 Fixed feature to show the notice to users again. 2019-10-30 23:30:30 -04:00
Ajay Ramachandran
25b9edabf8 Changed hint to say that you can change the keybind. 2019-10-28 16:16:13 -04:00
Ajay Ramachandran
6851470547 Added the ability to change the keybind. 2019-10-28 16:13:37 -04:00
Ajay Ramachandran
73c1fc17b3 Merge branch 'master' of https://github.com/ajayyy/SponsorBlock into experimental-ajay 2019-10-28 11:59:10 -04:00
Ajay Ramachandran
cba5b05c0c Merge pull request #160 from ptalmeida/master
Add european portuguese translation
2019-10-27 20:17:22 -04:00
Pedro Almeida
3f1573f1b3 Improve portuguese locales 2019-10-27 22:11:47 +01:00
Pedro Almeida
93ffc93943 Improve Brazilian Portuguese locale 2019-10-27 19:28:16 +01:00
Pedro Almeida
4214af4d56 Add support for European Portuguese 2019-10-27 19:27:22 +01:00
Owen D'Aprile
01405dd32e Ignore WebStorm project configuration folder 2019-10-15 17:49:01 -04:00
Owen D'Aprile
047432af03 Moved browser specific settings into manifest 2019-10-15 17:48:40 -04:00
Owen D'Aprile
a8bd5d0068 Suppress Firefox error when changing tabs 2019-10-15 17:46:42 -04:00
Ajay Ramachandran
eeb6d20e96 Fixed grammar 2019-10-13 12:09:14 -04:00
Ajay Ramachandran
8bb8511bf4 Fixed indenting. 2019-09-24 18:21:47 -04:00
Ajay Ramachandran
563610cbcd Made it show the new notice again. 2019-09-24 18:16:57 -04:00
Ajay Ramachandran
04190b27d8 Made it ignore rate limits for voting. 2019-09-24 17:55:07 -04:00
Ajay Ramachandran
1782376e3d Merge pull request #145 from ajayyy/experimental-ajay
Fixed info button + videoChannelID errors
2019-09-02 21:33:36 -04:00
Ajay Ramachandran
ef1b96bbf1 Update version number 2019-09-02 21:33:14 -04:00
Ajay Ramachandran
7deea5d648 Made getChannelID only get called if there is a valid YouTube page. 2019-09-02 10:54:49 -04:00
Ajay Ramachandran
c6460b006f Update README.md 2019-09-01 22:41:52 -04:00
Ajay Ramachandran
4352667b1c Added days saved 2019-09-01 22:40:18 -04:00
Ajay Ramachandran
a84502dc92 Update README.md 2019-09-01 21:54:52 -04:00
Ajay Ramachandran
d7c67fb481 Update README.md 2019-09-01 21:52:14 -04:00
Ajay Ramachandran
adc9748d4d Update README.md 2019-09-01 21:51:31 -04:00
Ajay Ramachandran
f310c53f88 Made sure info menu is not placed in the incorrect container. 2019-09-01 21:08:29 -04:00
Ajay Ramachandran
f2c2fd0d29 Merge pull request #144 from Strappazzon/i18n-it
Add Italian translation
2019-09-01 14:47:40 -04:00
Strappazzon
1b0cd0f485 Shorter title 2019-09-01 19:17:33 +02:00
Strappazzon
48f6f2f66c Add Italian translation 2019-09-01 18:52:24 +02:00
Ajay Ramachandran
85b70f8ad7 Merge pull request #143 from ajayyy/experimental-ajay
More Localisation + Fixed Whitelisting
2019-08-31 22:07:41 -04:00
Ajay Ramachandran
3e32f28d2e Update version number. 2019-08-31 22:07:22 -04:00
Ajay Ramachandran
9bd1b03504 Made the info button not appear on embeds.
Also fixed issues with the buttons changing visibility before being added.
2019-08-31 21:32:48 -04:00
Ajay Ramachandran
cdccc43b31 Revert "Fancy tooltip for player controls"
This reverts commit 0c2ceb134b.
2019-08-31 21:21:01 -04:00
Ajay Ramachandran
21ce614bd9 Made the function clear whitelisted channels that were null. 2019-08-31 21:17:07 -04:00
Ajay Ramachandran
7f56ec238f Merge branch 'experimental' of https://github.com/ajayyy/SponsorBlock into experimental-ajay 2019-08-31 21:04:19 -04:00
Ajay Ramachandran
e1625437d4 Fixed getting the channel URL for whitelisting. 2019-08-31 21:04:08 -04:00
Ajay Ramachandran
5b9afebd4e Merge pull request #142 from omarroth/fields-api
Only request published field from Invidious API
2019-08-31 17:14:31 -04:00
Ajay Ramachandran
93afc06717 Merge branch 'master' of https://github.com/ajayyy/SponsorBlock into experimental 2019-08-31 17:13:59 -04:00
Omar Roth
cfbf1f8995 Only request published field from Invidious API 2019-08-31 16:44:46 -04:00
Ajay Ramachandran
516e5077a9 Merge pull request #141 from FisheyLP/experimental
Fancy tooltip for player controls
2019-08-31 14:06:40 -04:00
FisheyLP
0c2ceb134b Fancy tooltip for player controls 2019-08-31 18:37:29 +02:00
Ajay Ramachandran
02bcb0b213 Merge branch 'experimental' of https://github.com/ajayyy/SponsorBlock into experimental-ajay 2019-08-28 18:12:59 -04:00
Ajay Ramachandran
35c6ed81b5 Updated hotkey handling. 2019-08-28 18:11:29 -04:00
Ajay Ramachandran
a229aee2cc Merge pull request #134 from OfficialNoob/patch-23
Content.js messageListener switch
2019-08-27 21:17:46 -04:00
Ajay Ramachandran
f91c6d5f9d Change return to break. 2019-08-27 21:17:21 -04:00
Ajay Ramachandran
0e93fb6f57 Merge pull request #135 from OfficialNoob/patch-24
Popup i18n support
2019-08-27 21:14:13 -04:00
Ajay Ramachandran
1f491d2031 Updated naming 2019-08-27 21:13:37 -04:00
Ajay Ramachandran
32dd7d43d7 Updated it to make it work in the info menu (on page popup). 2019-08-27 21:10:35 -04:00
Ajay Ramachandran
284efe9902 Merge branch 'experimental' into patch-24 2019-08-27 21:04:05 -04:00
Ajay Ramachandran
4e795c8fb1 Merge pull request #139 from ajayyy/experimental-ajay
Fixed preview bar causing issues
2019-08-27 21:01:48 -04:00
Ajay Ramachandran
c83eb589ea Updated version number. 2019-08-27 21:00:00 -04:00
Ajay Ramachandran
7cd6b324b9 Merge branch 'master' of https://github.com/ajayyy/SponsorBlock into experimental-ajay 2019-08-27 20:59:36 -04:00
Ajay Ramachandran
5891fccacb Updated shield links 2019-08-26 16:10:25 -04:00
Ajay Ramachandran
59233f3307 Update README.md 2019-08-26 16:09:26 -04:00
Ajay Ramachandran
796466a72a Added some shields 2019-08-26 16:08:33 -04:00
Ajay Ramachandran
3f35642010 Made the preview bar wait for it to not be null. 2019-08-26 14:35:49 -04:00
Ajay Ramachandran
5bbfcf742d Fixed preview bar bar loading too early 2019-08-26 14:30:55 -04:00
Ajay Ramachandran
aaf79fda0d Added more language strings 2019-08-25 23:22:35 -04:00
Ajay Ramachandran
8604788d27 Merge branch 'experimental' into patch-24 2019-08-24 14:03:04 -04:00
Ajay Ramachandran
519a822751 Merge pull request #138 from ajayyy/experimental-ajay
Improved away function
2019-08-24 14:01:35 -04:00
Ajay Ramachandran
fef31c399b Update version number. 2019-08-24 14:00:15 -04:00
Ajay Ramachandran
5802e05228 Update utils.js 2019-08-24 13:59:53 -04:00
Ajay Ramachandran
da21081a12 Merge branch 'patch-21' into experimental-ajay 2019-08-24 13:54:24 -04:00
Official Noob
6d739de57c Fixed html 2019-08-24 18:22:04 +01:00
Official Noob
edcd328743 Added localizeHtmlPage(); to popup.js 2019-08-24 18:18:16 +01:00
Official Noob
5c9e6cac0e Removed localizeHtmlPage(); 2019-08-24 18:17:36 +01:00
Official Noob
7ab5e2cf52 Added localizeHtmlPage() 2019-08-24 18:08:22 +01:00
Official Noob
42dcdb40cf Added localizeHtmlPage 2019-08-24 18:06:25 +01:00
Ajay Ramachandran
896357a943 Merge pull request #136 from ajayyy/experimental-ajay
Fixed submissions being broken on the video player
2019-08-24 12:32:56 -04:00
Ajay Ramachandran
2d96c24b13 Update version number 2019-08-24 12:30:03 -04:00
Ajay Ramachandran
1753f58120 Fixed submissions being broken. 2019-08-24 12:29:51 -04:00
Official Noob
7244ca8f5e Update messages.json 2019-08-24 15:16:29 +01:00
Official Noob
ec0c989066 Added stuff for popup 2019-08-24 15:07:05 +01:00
Official Noob
c801b1fecd Update popup.html 2019-08-24 15:03:19 +01:00
Official Noob
57b50106d1 Popup i18n support 2019-08-24 14:50:02 +01:00
Official Noob
871ba63f67 Content.js messageListener switch 2019-08-24 12:55:42 +01:00
Ajay Ramachandran
f0888faf78 Merge pull request #133 from ajayyy/experimental
Update master
2019-08-23 23:30:11 -04:00
Ajay Ramachandran
23fbbebc9e Merge branch 'experimental' of https://github.com/ajayyy/SponsorBlock into experimental-ajay 2019-08-23 23:28:56 -04:00
Ajay Ramachandran
9951a19478 Updated version number. 2019-08-23 23:27:42 -04:00
Ajay Ramachandran
dd4ab2f38a Merge branch 'master' of https://github.com/ajayyy/SponsorBlock into experimental 2019-08-23 21:13:37 -04:00
Ajay Ramachandran
6bcdb3e272 Merge branch 'master' of https://github.com/ajayyy/SponsorBlock into experimental-ajay 2019-08-23 21:13:23 -04:00
Ajay Ramachandran
227bec4d8e Merge pull request #83 from OfficialNoob/patch-16
Added youtube-nocookie.com
2019-08-23 21:13:03 -04:00
Ajay Ramachandran
556b4f88d2 Merge pull request #122 from OfficialNoob/patch-21
Added addButtons
2019-08-23 21:11:04 -04:00
Ajay Ramachandran
2d12f957bc Improved await function. 2019-08-23 21:10:28 -04:00
Ajay Ramachandran
c1efe02614 Improved promise calling in button updating function. 2019-08-23 21:06:00 -04:00
Ajay Ramachandran
f0e1979aab Renamed addButtons and defined controls. 2019-08-23 21:03:43 -04:00
Ajay Ramachandran
989db6d6b6 Added more spacing. 2019-08-23 21:02:17 -04:00
Ajay Ramachandran
781096c290 Fixed cut off text. 2019-08-23 21:01:31 -04:00
Ajay Ramachandran
536c6e3e41 Removed new line from messages. 2019-08-23 21:00:07 -04:00
Ajay Ramachandran
de376176db Fixed preview bar being added too soon. 2019-08-23 20:59:13 -04:00
Ajay Ramachandran
e63389cfa3 Fixed buttons appearing too early not hidden (submit and clear button). 2019-08-23 20:52:12 -04:00
Ajay Ramachandran
1c4ca8da26 Fixed formatting issues + previewBar not displaying.
Also changed the isSubmitButtonLoaded function to be checking for the right button and fixed the startSponsorButton not hiding.

Useless function was removed.
2019-08-23 20:50:10 -04:00
Ajay Ramachandran
dcbd7ba4cd Merge pull request #132 from ajayyy/experimental-ajay
More checks + popup fix
2019-08-23 20:31:29 -04:00
Ajay Ramachandran
9fc8d385ab Fixed popup getting cut off. 2019-08-23 14:23:34 -04:00
Ajay Ramachandran
07e878e065 Fixed missing language call. 2019-08-23 14:22:16 -04:00
Official Noob
a2af4dba52 Added back getYouTubeVideoStartTime 2019-08-23 17:19:44 +01:00
Ajay Ramachandran
2fbafb6b10 Added duration check to popup as well. 2019-08-22 23:12:30 -04:00
Ajay Ramachandran
98eb72ef1f Made sure rechecks didn't happen twice. 2019-08-22 22:43:55 -04:00
Ajay Ramachandran
89d127c5c5 Added a check to make sure the time doesn't exceed the duration of the video. 2019-08-22 22:43:19 -04:00
Ajay Ramachandran
a784c8a850 Merge pull request #130 from doubouil/patch-1
Better french translation
2019-08-22 21:29:45 -04:00
Ajay Ramachandran
a533aaf5cf Updated French translation 2019-08-22 21:28:52 -04:00
doubouil
434b5bdbad Better french translation
Native speaker here, the machine based translation was not great so here's a first draft.
I choose to use "message commercial" (commercial message) and not "publicité" (advertisement) since ads feels to me to be more a legal status than a definite thing. "Endossement" is not a valid french word in this context, and endorsements would be translated to "sponsors" or "mécénat" in fr_FR, but again this are more legal category than pure identifying terms and fr_CA strongly dislikes frenglish.
But I left it in the extension name since this is a good keyword for people looking for adblocking-related extensions.
2019-08-22 21:10:41 +00:00
Ajay Ramachandran
d1f1f9213e Merge pull request #129 from ajayyy/experimental-ajay
UserID undefined checks
2019-08-22 16:10:50 -04:00
Ajay Ramachandran
d498c107a8 Update version number. 2019-08-22 16:08:38 -04:00
Ajay Ramachandran
f12b44762e Added new check to setup a proper userID if undefined while voting. 2019-08-22 16:08:16 -04:00
Official Noob
fc4da038e9 Merge branch 'experimental' into patch-21 2019-08-22 19:48:59 +01:00
Official Noob
d5999ad330 Added isDraggable 2019-08-22 19:39:17 +01:00
Official Noob
146ece3bff Fixed JSON error 2019-08-22 19:36:30 +01:00
Ajay Ramachandran
92095acf36 Merge pull request #128 from Revadike/fix-draggable
Disallow dragging of button
2019-08-22 12:34:18 -04:00
Revadike
279c10d555 Disallow dragging of button 2019-08-22 15:52:45 +02:00
Ajay Ramachandran
0ae3820681 Merge pull request #127 from ajayyy/experimental
Update master
2019-08-21 20:01:43 -04:00
Ajay Ramachandran
283e4d053e Merge pull request #126 from ajayyy/experimental-ajay
Translations + Unsubmitted sponsor preview
2019-08-21 20:01:18 -04:00
Ajay Ramachandran
6dbb2f9d10 Update version number. 2019-08-21 19:58:44 -04:00
Ajay Ramachandran
c657bb763b Merge branch 'experimental' of https://github.com/ajayyy/SponsorBlock into experimental-ajay 2019-08-21 19:57:40 -04:00
Ajay Ramachandran
259cdb1abe Merge pull request #123 from bershanskiy/russian
Russian translation
2019-08-21 19:57:30 -04:00
Ajay Ramachandran
86e96e59af Update README.md 2019-08-21 19:21:06 -04:00
Official Noob
9ba30dbafa Moved to bottom 2019-08-21 20:21:39 +01:00
Anton Bershanskiy
2907db705c Update messages.json 2019-08-21 14:03:46 -05:00
Ajay Ramachandran
a6a0f917e0 Fixed preview not working when no sponsors are found. 2019-08-21 14:35:46 -04:00
Official Noob
bcdba798d9 Added locals for buttons 2019-08-21 19:29:24 +01:00
Ajay Ramachandran
32884372fa Unsubmitted sponsors are now in the preview. 2019-08-21 14:27:25 -04:00
Official Noob
9b2364cfb7 fixed isSubmitLoaded 2019-08-21 19:22:59 +01:00
Ajay Ramachandran
c1aebf45c8 Removed the need for getYouTubeVideoStartTime and made it check the current video time instead. 2019-08-21 14:16:52 -04:00
Official Noob
6e0c6332cc Fixed title in createButton 2019-08-21 19:15:35 +01:00
Official Noob
47d0d340d4 Requested changes 2019-08-21 19:10:49 +01:00
Ajay Ramachandran
118804e139 Added confirm language to translations. Increased size of notice. Updated translations. 2019-08-21 14:04:05 -04:00
Ajay Ramachandran
0bef50e259 Merge pull request #121 from OfficialNoob/patch-18
Added wait function
2019-08-21 13:47:57 -04:00
Official Noob
bfb876af8b Changed button exists check 2019-08-21 18:29:41 +01:00
Official Noob
84d5d3124c Update content.js 2019-08-21 18:17:30 +01:00
Official Noob
825d997d6d Update content.js 2019-08-20 23:37:40 +01:00
Official Noob
8e9e5bfddb Update content.js 2019-08-20 23:26:35 +01:00
Official Noob
05765682a5 Update content.js 2019-08-20 23:11:18 +01:00
Official Noob
2b5d56942a Update content.js 2019-08-20 22:59:34 +01:00
Ajay Ramachandran
f097ff60aa Fixed indentation 2019-08-20 17:47:31 -04:00
Anton Bershanskiy
655691a28f Russian translation 2019-08-20 15:10:21 -05:00
Ajay Ramachandran
7ddef8d519 Update README.md 2019-08-20 16:09:47 -04:00
Ajay Ramachandran
2fb79f0066 Update README.md 2019-08-20 16:09:22 -04:00
Ajay Ramachandran
655d87ce0f Update README.md 2019-08-20 16:08:27 -04:00
Ajay Ramachandran
ed7c98afa8 Update README.md 2019-08-20 16:06:29 -04:00
Ajay Ramachandran
41bf0c9697 Update README.md 2019-08-20 16:05:47 -04:00
Ajay Ramachandran
5eb0132660 Update README.md 2019-08-20 16:05:25 -04:00
Ajay Ramachandran
c43695e596 Update README.md 2019-08-20 16:04:47 -04:00
Ajay Ramachandran
9aeda25136 Merge branch 'master' of https://github.com/ajayyy/SponsorBlock into experimental 2019-08-20 15:54:51 -04:00
Ajay Ramachandran
90e671ebf8 Updated french translation 2019-08-20 15:54:40 -04:00
Ajay Ramachandran
3ecc180d06 Added french translation + fixed i18n not being used for the notification. 2019-08-20 15:46:00 -04:00
Official Noob
7ac9ec37ef Adding addButtons and using sponsorVideoID more 2019-08-20 20:27:30 +01:00
Ajay Ramachandran
e176a9f241 Fixed it linking to non existent file 2019-08-20 15:07:36 -04:00
Ajay Ramachandran
91bd910c40 Added Brazilian Portuguese translation by @Geroyuni
Co-authored-by: Geroyuni <Geroyuni@users.noreply.github.com>
2019-08-20 15:04:13 -04:00
Official Noob
a6c77185de Added wait function 2019-08-20 17:46:05 +01:00
Ajay Ramachandran
b871d721db Update version number. 2019-08-19 22:27:42 -04:00
Ajay Ramachandran
85f9bb1d34 Removed setInterval when removing the notice. 2019-08-19 22:26:49 -04:00
Ajay Ramachandran
adb60c6357 Update README.md 2019-08-19 20:57:31 -04:00
Ajay Ramachandran
90046aed53 Merge pull request #120 from ajayyy/experimental-ajay
Update version number
2019-08-19 20:25:52 -04:00
Ajay Ramachandran
7adef119d3 Update version number 2019-08-19 20:23:42 -04:00
Ajay Ramachandran
4db6593681 Merge branch 'experimental' of https://github.com/ajayyy/SponsorBlock into experimental 2019-08-19 20:20:08 -04:00
Ajay Ramachandran
f4c7e11ae1 Merge pull request #119 from ajayyy/experimental-ajay
Notice countdown counter, reskip, formatting fixes + sponsor check fixes
2019-08-19 20:19:48 -04:00
Ajay Ramachandran
b1393a563f Added language support to setUsername. Fixed error messages not appearing. Reset error messages properly.
Resolves https://github.com/ajayyy/SponsorBlock/issues/111
2019-08-19 20:17:32 -04:00
Ajay Ramachandran
279e49a143 Fixed more indentation 2019-08-19 20:05:33 -04:00
Ajay Ramachandran
db4182d074 Fixed indentation 2019-08-19 19:21:19 -04:00
Ajay Ramachandran
cc2d1405b6 Made the notice id suffix not just the sponsor UUID. 2019-08-19 19:19:33 -04:00
Ajay Ramachandran
19802a7a31 Made the notice stay open after an unskip and allow to reskip.
The time remaining of the popup becomes the time remaining of the sponsor.
2019-08-19 19:07:14 -04:00
Ajay Ramachandran
50f929c11a Adjusted fade out animation to feel much better 2019-08-19 17:57:10 -04:00
Ajay Ramachandran
e5e250ff36 Added fade out animation 2019-08-19 17:39:22 -04:00
Ajay Ramachandran
6fe94a70a7 Countdown timer now pauses after hovering.
Also lowered countdown time.
2019-08-19 17:24:17 -04:00
Ajay Ramachandran
db2af83a34 Added countdown to skip notice 2019-08-19 17:08:31 -04:00
Ajay Ramachandran
cbab026f27 Added new button backgrounds. Centered report button 2019-08-19 16:49:22 -04:00
Ajay Ramachandran
0c2c868e5c Made report text disappear after voting. 2019-08-19 16:13:18 -04:00
Ajay Ramachandran
175cf62201 Refractored skipNotice to use a class now 2019-08-19 16:09:54 -04:00
Ajay Ramachandran
761ae63845 Fixed css issues on old YouTube on the notice. 2019-08-19 12:11:19 -04:00
Ajay Ramachandran
70948d9b36 Update version number 2019-08-15 23:56:35 -04:00
Ajay Ramachandran
3e0638d811 Updated sponsor check to support slower PCs 2019-08-15 15:16:24 -04:00
Ajay Ramachandran
096bf0d750 Merge pull request #118 from ajayyy/experimental-ajay
Report button additions
2019-08-15 11:26:01 -04:00
Ajay Ramachandran
c81d4cc2a1 Update version number 2019-08-15 11:23:38 -04:00
Ajay Ramachandran
628f1043fa Added text to the report button. 2019-08-15 11:23:19 -04:00
Ajay Ramachandran
73b8d82b0f Made view count tracking work when the notice is disabled 2019-08-15 11:12:46 -04:00
Ajay Ramachandran
d6ba6c83e8 Update README.md 2019-08-15 00:54:45 -04:00
Ajay Ramachandran
3c56bc49fd Merge pull request #117 from ajayyy/experimental-ajay
Updated help page
2019-08-14 22:22:40 -04:00
Ajay Ramachandran
1697bf5e6a Updated help page 2019-08-14 22:22:19 -04:00
Ajay Ramachandran
960bca13d4 Merge pull request #116 from ajayyy/experimental
New notice + language support + preview fixes
2019-08-14 22:18:49 -04:00
Ajay Ramachandran
ccf6d8dd8f Merge pull request #115 from ajayyy/experimental-ajay
Added new notice and new only downvote behavior
2019-08-14 22:17:59 -04:00
Ajay Ramachandran
6822fa9a67 Merge branch 'experimental' of https://github.com/ajayyy/SponsorBlock into experimental-ajay 2019-08-14 22:09:59 -04:00
Ajay Ramachandran
2266df88d5 Update version number 2019-08-14 22:09:50 -04:00
Ajay Ramachandran
5d075a6be4 Made autovote only happen if view counting is enabled 2019-08-14 22:08:23 -04:00
Ajay Ramachandran
215098f647 Added new text values to translation file. 2019-08-14 21:53:38 -04:00
Ajay Ramachandran
a7f3701272 Made it auto vote when a sponsor is skipped 2019-08-14 21:50:32 -04:00
Ajay Ramachandran
08b8b63678 Removed need for important tag 2019-08-14 21:46:30 -04:00
Ajay Ramachandran
d550bb6b7f Revert upvote and downvote buttons 2019-08-14 21:33:32 -04:00
Ajay Ramachandran
edb577cf5b Changed popup to only use report button instead of upvote and downvote + improved popup. 2019-08-14 21:30:02 -04:00
Ajay Ramachandran
739548d169 Changed alignment and switched icons 2019-08-14 14:07:00 -04:00
Ajay Ramachandran
2e2e5d136a Added explanation about the username 2019-08-14 13:56:19 -04:00
Ajay Ramachandran
b1ce20cd5a Added basic features for the new voting UI 2019-08-13 23:43:02 -04:00
Ajay Ramachandran
2431f44a29 Merge pull request #114 from ajayyy/experimental-ajay
Made preview bar update more and made the sponsor times reset more.
2019-08-13 21:10:48 -04:00
Ajay Ramachandran
0e4d95dca7 Made preview bar update more and made the sponsor times reset more. 2019-08-13 19:18:53 -04:00
Ajay Ramachandran
5ee80d6e50 Merge pull request #113 from ajayyy/experimental-ajay
Fixes for #86 and better preview bar
2019-08-13 18:58:15 -04:00
Ajay Ramachandran
bfd841486e Fixed incorrect message and changed formatting 2019-08-13 18:55:50 -04:00
Ajay Ramachandran
29da12ec71 Updated popup title 2019-08-13 18:49:55 -04:00
Ajay Ramachandran
d89238f76b Changed to not change popup HTML file based on language 2019-08-13 18:44:47 -04:00
Ajay Ramachandran
57f076c5d3 Removed debug log 2019-08-13 18:40:46 -04:00
Ajay Ramachandran
ea41980fc6 Merge branch 'experimental' of https://github.com/ajayyy/SponsorBlock into experimental-ajay
# Conflicts:
#	manifest.json
2019-08-13 18:23:56 -04:00
Ajay Ramachandran
33954aafaf Merge pull request #86 from OfficialNoob/patch-18
Multilingual support [TESTING]
2019-08-13 18:12:37 -04:00
OfficialNoob
a10b4ab06e Fix merge error 2019-08-13 22:14:45 +01:00
OfficialNoob
f350f18190 Fixed code problems 2019-08-13 22:05:39 +01:00
Ajay Ramachandran
60fc61560d Added leaderboard link 2019-08-13 14:39:20 -04:00
Ajay Ramachandran
fadb294c98 Made the preview bar only get created if a video is found. 2019-08-13 14:05:32 -04:00
Ajay Ramachandran
137ba895bb Merge pull request #110 from ajayyy/experimental
Update master
2019-08-13 13:06:10 -04:00
Ajay Ramachandran
ecc48de396 Merge pull request #109 from ajayyy/experimental-ajay
Fixed preview bar
2019-08-13 13:05:52 -04:00
Ajay Ramachandran
aa95687b56 Update version number 2019-08-13 13:03:08 -04:00
Ajay Ramachandran
a8147738ef Raised retry limit for when the server is down. 2019-08-13 13:02:54 -04:00
Ajay Ramachandran
4a3d36b952 Fixed preview bar.
Made it reset when no sponsors are found.

Made it wait until the video metadata is loaded if necessary.
2019-08-13 13:02:35 -04:00
Ajay Ramachandran
f9bd82db35 Merge pull request #103 from OfficialNoob/patch-20
Added switch for chrome.runtime.onMessage
2019-08-13 00:32:43 -04:00
Ajay Ramachandran
c8438b9d59 Updated formatting 2019-08-13 00:32:33 -04:00
Ajay Ramachandran
5347340c1c Merge pull request #107 from ajayyy/experimental-ajay
Preview bar, downvote to hide sponsor, usernames
2019-08-12 23:44:53 -04:00
Ajay Ramachandran
524e443f4d Updated build number 2019-08-12 23:44:14 -04:00
Ajay Ramachandran
b9091c3a97 Made it get the current username when letting you edit it. 2019-08-12 23:32:10 -04:00
Ajay Ramachandran
5445146b56 Added ability to set your username 2019-08-12 23:20:35 -04:00
Ajay Ramachandran
13d0e4a33a Made it still possible to vote on downvoted sponsors.
Added "(hidden)" to the button.

Resolves https://github.com/ajayyy/SponsorBlock/issues/28
2019-08-12 20:22:00 -04:00
Ajay Ramachandran
8f0a9d97f6 Downvoting now temporarily hides the sponsor time. 2019-08-12 20:00:42 -04:00
Ajay Ramachandran
5feed6bfcc Added preview bar with the sponsors 2019-08-12 19:34:44 -04:00
Official Noob
e8246a9a8a Added new stuff 2019-08-12 22:29:15 +01:00
Official Noob
e141b1f4e8 Update manifest.json 2019-08-12 22:28:41 +01:00
Official Noob
f9fcd80552 CC 2019-08-12 22:28:07 +01:00
Official Noob
8c7d749f11 CC 2019-08-12 22:15:25 +01:00
Official Noob
bcc927f21a CC 2019-08-12 22:10:33 +01:00
Official Noob
b13837ce44 CC 2019-08-12 22:07:24 +01:00
Official Noob
806456d287 added helpPage 2019-08-12 21:45:14 +01:00
Official Noob
2deb2ff4b5 added helpPage 2019-08-12 21:43:34 +01:00
Official Noob
fb1836cd07 Rename popup.html to popup_en.html 2019-08-12 21:41:40 +01:00
Official Noob
f2036885aa Update manifest.json 2019-08-12 21:41:16 +01:00
Official Noob
948293db04 added popup 2019-08-12 21:40:23 +01:00
Official Noob
5031a85a5c Update background.js 2019-08-12 21:38:44 +01:00
Official Noob
a5e3dcaf4d Update background.js 2019-08-12 21:34:03 +01:00
Official Noob
37816ba762 Rename index.html to index_en.html 2019-08-12 21:30:02 +01:00
Official Noob
ed9a445b4c browser.i18n -> chrome.i18n 2019-08-12 21:25:03 +01:00
Official Noob
0b801ae986 browser.i18n -> chrome.i18n 2019-08-12 21:23:11 +01:00
Ajay Ramachandran
5916baf5ea Merge pull request #105 from ajayyy/experimental
Lowered permissions + Edit panel additions
2019-08-12 16:05:28 -04:00
Official Noob
afa260b733 Merge branch 'experimental' into patch-18 2019-08-12 21:02:55 +01:00
Ajay Ramachandran
1c3a857fcf Merge pull request #104 from ajayyy/experimental-ajay
Edit panel additions
2019-08-12 16:01:56 -04:00
Ajay Ramachandran
640ad58c65 Updated version number 2019-08-12 15:59:06 -04:00
Ajay Ramachandran
41aa58e004 Fixed userIDs not being properly submitted. 2019-08-12 15:58:25 -04:00
Ajay Ramachandran
6b3eb09198 Added button to set edit to the current time. 2019-08-12 15:27:35 -04:00
Official Noob
59c2e5cae7 i18n 2019-08-12 20:10:13 +01:00
Official Noob
a30c7cf383 Update messages.json 2019-08-12 20:08:26 +01:00
Official Noob
334e32fb6b i18n 2019-08-12 19:47:11 +01:00
Official Noob
7a36277695 added connectionError 2019-08-12 19:46:25 +01:00
Official Noob
9a2bce4ba6 Added Segment 2019-08-12 19:35:08 +01:00
Official Noob
71d2231fb5 Update messages.json 2019-08-12 18:41:45 +01:00
Official Noob
cc3f970aef Internationalization 2019-08-12 18:40:16 +01:00
Official Noob
189a28f027 added fullName 2019-08-12 18:36:02 +01:00
Official Noob
a2750ad709 Fixed JSON 2019-08-12 18:34:17 +01:00
Official Noob
c8341a448d Switched to native 2019-08-12 18:33:36 +01:00
Official Noob
44c4671977 Added switch for chrome.runtime.onMessage 2019-08-12 17:41:26 +01:00
Ajay Ramachandran
ac118173a5 Made preview also save the edit. 2019-08-12 12:26:52 -04:00
Ajay Ramachandran
3f815a18c4 Added a sponsor time preview.
It skips 2 seconds before the start time so you can preview how it feels.

Also increased the space between the times and the clear times button.

Resolves https://github.com/ajayyy/SponsorBlock/issues/66
2019-08-12 12:21:20 -04:00
Ajay Ramachandran
e281b90699 Fixed sponsor times not properly saving 2019-08-12 12:05:16 -04:00
Ajay Ramachandran
012a36b931 Increased button padding 2019-08-12 12:04:57 -04:00
Ajay Ramachandran
43e3d03e9a Added better error checking 2019-08-12 12:02:01 -04:00
Ajay Ramachandran
5adeeed634 Made editing not possible on unfinished sponsors.
Resolved https://github.com/ajayyy/SponsorBlock/issues/77
2019-08-12 11:42:39 -04:00
Ajay Ramachandran
29a8608f9d Merge pull request #90 from OfficialNoob/patch-19
Removed tabs permission
2019-08-12 11:36:57 -04:00
Official Noob
5347b9c935 Merge branch 'experimental' into patch-18 2019-08-12 15:59:25 +01:00
Official Noob
67c4acbc5e Removed videoID as now message active tab 2019-08-12 13:38:35 +01:00
Official Noob
a5d605f539 Removed videoID as now message active tab 2019-08-12 13:38:27 +01:00
Ajay Ramachandran
66b6985c5e Merge pull request #101 from ajayyy/experimental
Better lookups + userID generator improvements
2019-08-11 23:24:17 -04:00
Ajay Ramachandran
0025785a78 Updated version number 2019-08-11 23:22:20 -04:00
Ajay Ramachandran
ba284aec2f Merge pull request #100 from ajayyy/experimental-ajay
More lookups
2019-08-11 23:19:40 -04:00
Ajay Ramachandran
5ffe207a86 Made it retry a sponsor lookup each second if there is a connection error.
It will stop after 15 tries.
2019-08-11 23:18:50 -04:00
Ajay Ramachandran
3a4d867ae3 Made it check again for sponsors after submitting. 2019-08-11 23:13:07 -04:00
Ajay Ramachandran
7a2c57aae9 Merge pull request #73 from OfficialNoob/patch-13
Made UUID less predictable
2019-08-11 23:08:54 -04:00
Ajay Ramachandran
05faa7e138 Merge branch 'master' into patch-13 2019-08-11 23:07:27 -04:00
Ajay Ramachandran
455189d916 Merge pull request #99 from ajayyy/experimental-ajay
Update version number
2019-08-11 17:10:56 -04:00
Ajay Ramachandran
1c05de3098 Update version number 2019-08-11 17:10:40 -04:00
Ajay Ramachandran
577baa508b Merge pull request #98 from ajayyy/experimental
New background script and utils script
2019-08-11 17:10:08 -04:00
Ajay Ramachandran
aebb4313bc Merge pull request #97 from ajayyy/experimental-ajay
Fixed background not using serverAddress from config
2019-08-11 17:09:42 -04:00
Ajay Ramachandran
d42377a5cd Fixed background not using serverAddress from config. 2019-08-11 17:09:04 -04:00
Official Noob
f254a99d6f notifications 2019-08-11 21:21:04 +01:00
Official Noob
19a1a5efda Added alertPrevious message 2019-08-11 21:20:10 +01:00
Official Noob
28322f19b5 videoID 2019-08-11 19:36:52 +01:00
Official Noob
c7d03aa423 videoID 2019-08-11 19:32:44 +01:00
Official Noob
60242df3c9 Removed stuff thats in utils.js 2019-08-11 19:29:38 +01:00
Official Noob
1aab52edbe Remove userID 2019-08-11 19:27:38 +01:00
Ajay Ramachandran
2580577ce0 Added comments 2019-08-11 12:49:25 -04:00
Official Noob
1ab33375ec Update background.js 2019-08-11 13:51:59 +01:00
Official Noob
e1f5046ace Merge branch 'experimental' into patch-19 2019-08-11 13:38:00 +01:00
Ajay Ramachandran
699ca91a94 Made channel whitelisting properly work on first loaded video. 2019-08-10 22:04:32 -04:00
Ajay Ramachandran
30c12e3983 Reduced errors by getting if the channel is whitelisted after checking it is is a YouTube tab. 2019-08-10 20:57:11 -04:00
Ajay Ramachandran
15d6a48359 Fixed url object not being properly defined. 2019-08-10 20:53:43 -04:00
Ajay Ramachandran
b700d4eec0 Merge pull request #72 from OfficialNoob/patch-10
Added Utils file + Updated Parser
2019-08-10 19:57:11 -04:00
Ajay Ramachandran
5be8ecb32b Fixed up formatting and style. Added more detailed error messages. Changed from var to let.
Co-author worked on creating this url parser.

Co-Authored-By: Giacomo Rossetto <jackyman_cs4@live.it>
2019-08-10 19:55:39 -04:00
Ajay Ramachandran
ccafbf663c Fixed typos.
Co-author worked on creating this url parser.

Co-Authored-By: Giacomo Rossetto <jackyman_cs4@live.it>
2019-08-10 19:51:08 -04:00
Ajay Ramachandran
3f7e9e22ec Merge pull request #89 from bershanskiy/nonpersistent
Refactor: make background non-persistent
2019-08-10 19:38:29 -04:00
Ajay Ramachandran
e5d9c75392 Merge pull request #92 from bershanskiy/web_accessible_resources
Remove help/* from web_accessible_resources
2019-08-10 19:37:46 -04:00
Official Noob
b28087f723 Kind of better :/ 2019-08-09 11:34:08 +01:00
Official Noob
866cc33f0e Update content.js 2019-08-08 20:33:05 +01:00
Official Noob
02448307ab Update background.js 2019-08-08 20:32:18 +01:00
Anton Bershanskiy
b34b3f5651 Remove help/* from web_accessible_resources
Remove files in help/ directory from web_accessible_resources in manifest.json because the help page opens in context of the extension (no need to expose it to other contexts).
2019-08-08 14:21:42 -05:00
Anton Bershanskiy
7c787b77e8 Remove unnecessary changes 2019-08-08 14:17:33 -05:00
Official Noob
1b5d5f8a3a Added tab update back 2019-08-08 20:15:23 +01:00
Official Noob
6707d6df8d Added onUpdated back as did not work 2019-08-08 19:59:15 +01:00
Anton Bershanskiy
0c669d6b83 Fix: add migration path away from shownInstallPage 2019-08-08 13:29:09 -05:00
Official Noob
883871123a Update content.js 2019-08-08 19:26:26 +01:00
Official Noob
301e16b8f1 Removed tabUpdate as detecting in contentscript 2019-08-08 19:25:29 +01:00
Ajay Ramachandran
df1bc9d7a6 Merge pull request #91 from ajayyy/master
Update experimental
2019-08-08 13:40:22 -04:00
Official Noob
e1f1814748 Moved code from background.js 2019-08-08 17:03:58 +01:00
Official Noob
074f7c5456 Switched callback to onTabs 2019-08-08 16:50:33 +01:00
Official Noob
2a64afe9dc camelCase 2019-08-08 16:48:00 +01:00
Official Noob
4c12bb9c2f camelCase 2019-08-08 16:45:23 +01:00
Official Noob
22e7c6a40d Sync Video ID with Storage API 2019-08-08 14:44:48 +01:00
Official Noob
a9ea22f505 Get ID from storage API 2019-08-08 14:43:15 +01:00
Official Noob
2067b1c787 Removed unused lines 2019-08-08 14:04:21 +01:00
Official Noob
410f5fc138 Update background.js 2019-08-08 14:03:13 +01:00
Official Noob
077efd2de3 Moving to content script 2019-08-08 14:02:06 +01:00
Official Noob
62632792cc Removed tabs permission 2019-08-08 13:28:50 +01:00
Anton Bershanskiy
7e2925a1e3 Refactor: make background non-persistent 2019-08-08 00:24:30 -05:00
Official Noob
4c37bd24ac Update LANG.js 2019-08-07 18:12:04 +01:00
Official Noob
8e3a46d393 Update LANG.js 2019-08-07 17:45:56 +01:00
Official Noob
c7f8a39282 Update LANG.js 2019-08-07 17:45:10 +01:00
Official Noob
c09cff86b5 Update popup.js 2019-08-07 17:33:16 +01:00
Official Noob
24c61bab71 Auto detect lang 2019-08-07 17:15:57 +01:00
Official Noob
37df697b3d Added Utils for lang 2019-08-07 17:08:29 +01:00
Official Noob
86fee63a8b Moving into LANG 2019-08-07 17:04:50 +01:00
Official Noob
21b5fc9723 Added LANG.js 2019-08-07 16:59:57 +01:00
Official Noob
e5add6c392 Create LANG.js 2019-08-07 16:55:47 +01:00
Official Noob
b964d93ea9 Update utils.js 2019-08-07 16:35:29 +01:00
Official Noob
baba619fe7 Fixed scope 2019-08-07 16:20:07 +01:00
Official Noob
dce036b0e6 Update utils.js 2019-08-07 15:46:07 +01:00
Official Noob
c6c8d7de49 Update utils.js 2019-08-07 15:34:21 +01:00
Official Noob
02e11503cb Removed Regex as "looks bad" 2019-08-06 22:06:23 +01:00
Official Noob
d75a7ca897 Added youtube-nocookie.com 2019-08-06 21:40:23 +01:00
Official Noob
2b5402fa57 Added sanity check 2019-08-06 14:08:46 +01:00
Official Noob
7ad5e426fb Improved Parser 2019-08-06 10:27:13 +01:00
Official Noob
bbbb4f4877 Made UUID less predictable 2019-08-04 20:01:39 +01:00
Official Noob
9a32710ef8 Removed getYouTubeVideoStartTime 2019-08-04 19:09:46 +01:00
Official Noob
d25792f39a Removed getYouTubeVideoID 2019-08-04 19:07:00 +01:00
Official Noob
5ee279dec7 Added getYouTubeVideoStartTime 2019-08-04 19:06:07 +01:00
Official Noob
e6fa832cb8 Removed getYouTubeVideoID as in utils 2019-08-04 19:04:43 +01:00
Official Noob
64befaebfc Removed getYouTubeVideoID as in utils 2019-08-04 19:00:54 +01:00
Official Noob
5425c54fca Added utils.js 2019-08-04 18:59:51 +01:00
Official Noob
aae0998426 Added utils.js 2019-08-04 18:59:08 +01:00
Official Noob
f6c9e8e235 Added getYouTubeVideoID 2019-08-04 18:47:07 +01:00
Ajay Ramachandran
18909ffef6 Merge pull request #71 from marioortizmanero/master
Grammar and phrasing fixes
2019-08-04 09:17:10 -04:00
Mario Ortiz Manero
3a037818a8 Grammar and phrasing fixes 2019-08-04 13:29:43 +02:00
Ajay Ramachandran
101d94f46e Merge pull request #70 from ajayyy/experimental
Made popup close on video change
2019-08-03 23:32:07 -04:00
Ajay Ramachandran
38bb50a472 Made popup close on video change 2019-08-03 23:30:45 -04:00
Ajay Ramachandran
3b3653af67 Update README.md 2019-08-03 22:38:21 -04:00
Ajay Ramachandran
6be7408d80 Merge pull request #68 from ajayyy/experimental
Channel whitelisting, more support and bug fixes
2019-08-03 22:17:29 -04:00
Ajay Ramachandran
6d67559627 Update version number. 2019-08-03 22:14:08 -04:00
Ajay Ramachandran
db46d0438f Added whitelist support to the old YouTube theme. 2019-08-03 22:12:20 -04:00
Ajay Ramachandran
a5580daebd Added channel whitelisting.
Known issue: Does not work with 0 second sponsors.

Resolves https://github.com/ajayyy/SponsorBlock/issues/38
2019-08-03 21:35:41 -04:00
Ajay Ramachandran
809be3b2fb Fixed submit button disappearing after already submitting once. 2019-08-03 20:52:09 -04:00
Ajay Ramachandran
0319c507d3 Made videos load from the subscription page. 2019-08-03 14:11:47 -04:00
Ajay Ramachandran
8ffab867e1 Made zero second skips not skip when the video starts at a non zero time. 2019-08-02 22:37:12 -04:00
Ajay Ramachandran
fcf7141733 Update version number 2019-08-02 22:14:35 -04:00
Ajay Ramachandran
1c1fb6006c Added support for loading a channel page first.
Still has some issues on slow PCs, see https://github.com/ajayyy/SponsorBlock/issues/60
2019-08-02 12:18:56 -04:00
Ajay Ramachandran
6cb07b5be3 Fixed the preview sometimes not updating 2019-08-02 00:54:50 -04:00
Ajay Ramachandran
9342112bac Merge pull request #59 from ajayyy/experimental
Moved notice, embed support and bug fixes
2019-08-01 21:42:52 -04:00
Ajay Ramachandran
3d1be7158d Added support for embedded videos.
Resolved https://github.com/ajayyy/SponsorBlock/issues/12
2019-08-01 20:55:47 -04:00
Ajay Ramachandran
efe512b561 Removed unnecessary check for if the info tab is loaded 2019-08-01 20:38:36 -04:00
Ajay Ramachandran
d738eac42d Moved notice to a better location and shrunk it. 2019-08-01 20:32:04 -04:00
Ajay Ramachandran
a83969e3eb Fixed notice never displaying 2019-08-01 20:21:45 -04:00
Ajay Ramachandran
92cb8fb65c Updated version number 2019-08-01 20:02:42 -04:00
Ajay Ramachandran
932702cca1 Added preview before uploading submissions. 2019-08-01 20:01:33 -04:00
Ajay Ramachandran
ca8404147d Made clicking upload hide the clear button 2019-08-01 15:19:58 -04:00
Ajay Ramachandran
35c3b5b97f Made it only count a contribution if it was uploaded successfully. 2019-07-31 23:47:04 -04:00
Ajay Ramachandran
015b283731 Merge pull request #50 from OfficialNoob/patch-7
Added ErrorParser
2019-07-31 23:24:28 -04:00
Ajay Ramachandran
2667838937 Merge branch 'experimental' of https://github.com/ajayyy/SponsorBlock into patch-7
# Conflicts:
#	popup.js
2019-07-31 23:22:43 -04:00
Ajay Ramachandran
a5ec7b2466 Fixed missing comma 2019-07-31 23:21:30 -04:00
Ajay Ramachandran
3a0a267e12 Reimplements error system 2019-07-31 23:17:40 -04:00
Ajay Ramachandran
cbdb715fac Merge pull request #51 from OfficialNoob/patch-8
"Improvements" to the Ref system
2019-07-31 23:11:26 -04:00
Ajay Ramachandran
64fb12289c Merge branch 'experimental' into patch-8 2019-07-31 23:11:18 -04:00
Ajay Ramachandran
25801b6fcd Merged into master 2019-07-31 23:09:33 -04:00
Ajay Ramachandran
1341d5e11d Fixed grammer 2019-07-31 22:57:50 -04:00
Official Noob
e1dc5fbdf5 t => T 2019-07-31 12:53:25 +01:00
Ajay Ramachandran
83b4bbc95a Merge pull request #56 from ajayyy/experimental
Added help page on install
2019-07-31 00:14:04 -04:00
Ajay Ramachandran
585be8adf4 Added help page on install. 2019-07-31 00:12:02 -04:00
Ajay Ramachandran
9462886539 Merge pull request #55 from ajayyy/experimental
Fixed save button being in the wrong place and made submit button hidden on editing
2019-07-30 21:08:58 -04:00
Ajay Ramachandran
85518d8130 Fixed save button being in the wrong place and made submit button hide on editing. 2019-07-30 21:07:27 -04:00
Ajay Ramachandran
e3aeb0caa1 Update LICENSE 2019-07-30 18:38:07 -04:00
Ajay Ramachandran
7ed72fad40 Merge pull request #52 from ajayyy/experimental
Firefox fixes
2019-07-30 18:22:45 -04:00
Ajay Ramachandran
a2b4f8d141 Update version number 2019-07-30 18:21:23 -04:00
Ajay Ramachandran
6ad1070c44 Merge branch 'master' into experimental 2019-07-30 18:20:27 -04:00
Ajay Ramachandran
b1784fa311 Update version number. 2019-07-30 18:18:03 -04:00
Ajay Ramachandran
74affbd9c0 Fixed Firefox notification issue 2019-07-30 18:15:49 -04:00
Ajay Ramachandran
10d1978566 Added better support for the old YouTube layout. 2019-07-30 15:57:28 -04:00
Official Noob
d51e8044f4 Update popup.js 2019-07-30 20:46:02 +01:00
Official Noob
69dee25ea8 "Improvements" to the Ref system 2019-07-30 20:43:45 +01:00
Official Noob
0d8c18a38a Update popup.js 2019-07-30 19:44:45 +01:00
Ajay Ramachandran
a1c8ecabca Merge pull request #49 from OfficialNoob/patch-6
Old function in-use
2019-07-30 14:41:21 -04:00
Official Noob
a4eb37db18 Added ErrorParser 2019-07-30 19:41:06 +01:00
Official Noob
53f611a43a Old function in-use 2019-07-30 18:59:06 +01:00
Ajay Ramachandran
b0929e2431 Remade the popup menu to support Firefox and not use IFrames. 2019-07-30 13:27:20 -04:00
Ajay Ramachandran
da20709512 Merge pull request #48 from ajayyy/experimental
More options
2019-07-30 00:11:45 -04:00
Ajay Ramachandran
6ff461fa86 Updated version number 2019-07-30 00:09:11 -04:00
Ajay Ramachandran
e205447968 Added ability to hide info and delete button. 2019-07-29 21:40:13 -04:00
Ajay Ramachandran
ff6234bffe Increased font size of sponsor time, edit and delete buttons.
Also made clicking times trigger an edit.
2019-07-29 21:19:29 -04:00
Ajay Ramachandran
d93d475c1f Added error messages to video player submission. 2019-07-29 21:09:10 -04:00
Ajay Ramachandran
0d0b919106 Added better error messages to voting. 2019-07-29 21:06:15 -04:00
Ajay Ramachandran
366fd43752 Added more specific error message for error 502 2019-07-29 20:58:48 -04:00
Ajay Ramachandran
1119adffb7 Added clear button. 2019-07-29 20:54:10 -04:00
Ajay Ramachandran
9d14f02bec Update README.md 2019-07-29 17:54:21 -04:00
Ajay Ramachandran
9fada00028 Update LICENSE 2019-07-29 17:53:15 -04:00
Ajay Ramachandran
e0d2436372 Added support for old youtube theme 2019-07-29 16:35:30 -04:00
Ajay Ramachandran
e4c94aa5c5 Added more info the confirmation button. 2019-07-29 16:29:20 -04:00
Ajay Ramachandran
e3e4121a21 Merge pull request #46 from ajayyy/experimental
Improved video controls
2019-07-29 16:25:39 -04:00
Ajay Ramachandran
a75ea50098 Update version number. 2019-07-29 15:42:48 -04:00
Ajay Ramachandran
6b6e74b5a0 Added popup as an info menu that is opened on the side. 2019-07-29 15:42:14 -04:00
Ajay Ramachandran
d6c5dbaff1 Made deleting an unfinished sponsor time properly update buttons. 2019-07-29 14:22:46 -04:00
Ajay Ramachandran
a66804064a Made edit button not work when end time not specified 2019-07-29 14:20:55 -04:00
Ajay Ramachandran
919f9f56bd Added sponsor time editing in the popup. 2019-07-29 14:18:10 -04:00
Ajay Ramachandran
bd614e250b Added ability to delete individual sponsor times 2019-07-29 13:09:23 -04:00
Ajay Ramachandran
6275c2d62c Added info about popup. 2019-07-29 11:41:43 -04:00
Ajay Ramachandran
feea7aa51d Added what the sponsor times being submitted are to the confirmation message. 2019-07-29 11:36:57 -04:00
Ajay Ramachandran
16263d463f Updated extension name 2019-07-29 11:12:02 -04:00
Ajay Ramachandran
6673272e14 Update README.md 2019-07-29 11:08:19 -04:00
Ajay Ramachandran
6358ba2e11 Merge pull request #44 from ajayyy/experimental
Added discord link to popup
2019-07-28 23:53:39 -04:00
Ajay Ramachandran
2415784eee Added discord link to popup. 2019-07-28 23:52:32 -04:00
Ajay Ramachandran
acb3c67629 Merge pull request #43 from ajayyy/experimental
Updates to the video player controls
2019-07-28 20:53:38 -04:00
Ajay Ramachandran
622b2ea158 Updated version number. 2019-07-28 20:51:09 -04:00
Ajay Ramachandran
7a9af6cbcf Alt-text now updates with state on player button 2019-07-28 18:51:46 -04:00
Ajay Ramachandran
51a389284d Made video player controls state properly update when the video changes. 2019-07-28 18:48:28 -04:00
Ajay Ramachandran
2ff70f1511 Added missing references. 2019-07-28 18:32:53 -04:00
129 changed files with 30827 additions and 2131 deletions

62
.github/workflows/ci.yml vendored Normal file
View File

@@ -0,0 +1,62 @@
name: CI
on: [push, pull_request]
jobs:
build:
name: Create artifacts
runs-on: ubuntu-latest
steps:
# Initialization
- uses: actions/checkout@v1
- uses: actions/setup-node@v1
- run: npm install
- name: Copy configuration
run: cp config.json.example config.json
# Create Chrome artifacts
- name: Create Chrome artifacts
run: npm run build:chrome
- uses: actions/upload-artifact@v1
with:
name: ChromeExtension
path: dist
- run: mkdir ./builds
- uses: montudor/action-zip@v0.1.0
with:
args: zip -qq -r ./builds/ChromeExtension.zip ./dist
# Create Firefox artifacts
- name: Create Firefox artifacts
run: npm run build:firefox
- uses: actions/upload-artifact@v1
with:
name: FirefoxExtension
path: dist
- uses: montudor/action-zip@v0.1.0
with:
args: zip -qq -r ./builds/FirefoxExtension.zip ./dist
# Create Beta artifacts (Builds with the name changed to beta)
- name: Create Chrome Beta artifacts
run: npm run build:chrome -- --env.stream=beta
- uses: actions/upload-artifact@v1
with:
name: ChromeExtensionBeta
path: dist
- uses: montudor/action-zip@v0.1.0
with:
args: zip -qq -r ./builds/ChromeExtensionBeta.zip ./dist
- name: Create Firefox Beta artifacts
run: npm run build:firefox -- --env.stream=beta
- uses: actions/upload-artifact@v1
with:
name: FirefoxExtensionBeta
path: dist
- uses: montudor/action-zip@v0.1.0
with:
args: zip -qq -r ./builds/FirefoxExtensionBeta.zip ./dist

107
.github/workflows/release.yml vendored Normal file
View File

@@ -0,0 +1,107 @@
name: Upload Release Build
on:
release:
types: [published]
jobs:
build:
name: Upload Release
runs-on: ubuntu-latest
steps:
# Initialization
- uses: actions/checkout@v1
- uses: actions/setup-node@v1
- run: npm install
- name: Copy configuration
run: cp config.json.example config.json
# Create Chrome artifacts
- name: Create Chrome artifacts
run: npm run build:chrome
- uses: actions/upload-artifact@v1
with:
name: ChromeExtension
path: dist
- run: mkdir ./builds
- name: Zip Artifacts
run: cd ./dist ; zip -r ../builds/ChromeExtension.zip *
# Create Firefox artifacts
- name: Create Firefox artifacts
run: npm run build:firefox
- uses: actions/upload-artifact@v1
with:
name: FirefoxExtension
path: dist
- name: Zip Artifacts
run: cd ./dist ; zip -r ../builds/FirefoxExtension.zip *
# Create Beta artifacts (Builds with the name changed to beta)
- name: Create Chrome Beta artifacts
run: npm run build:chrome -- --env.stream=beta
- uses: actions/upload-artifact@v1
with:
name: ChromeExtensionBeta
path: dist
- name: Zip Artifacts
run: cd ./dist ; zip -r ../builds/ChromeExtensionBeta.zip *
# Upload each release asset
- name: Upload ChromeExtension to release
uses: Shopify/upload-to-release@master
with:
args: builds/ChromeExtension.zip
name: ChromeExtension.zip
path: ./builds/ChromeExtension.zip
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Upload ChromeExtensionBeta to release
uses: Shopify/upload-to-release@master
with:
args: builds/ChromeExtensionBeta.zip
name: ChromeExtensionBeta.zip
path: ./builds/ChromeExtensionBeta.zip
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Upload FirefoxExtension to release
uses: Shopify/upload-to-release@master
with:
args: builds/FirefoxExtension.zip
name: FirefoxExtension.zip
path: ./builds/FirefoxExtension.zip
repo-token: ${{ secrets.GITHUB_TOKEN }}
# Firefox Beta
- name: Create Firefox Beta artifacts
run: npm run build:firefox -- --env.stream=beta
- uses: actions/upload-artifact@v1
with:
name: FirefoxExtensionBeta
path: dist
- name: Zip Artifacts
run: cd ./dist ; zip -r ../builds/FirefoxExtensionBeta.zip *
# Create Firefox Signed Beta version
- name: Create Firefox Signed Beta artifacts
run: npm run web-sign
env:
WEB_EXT_API_KEY: ${{ secrets.WEB_EXT_API_KEY }}
WEB_EXT_API_SECRET: ${{ secrets.WEB_EXT_API_SECRET }}
- name: Install rename
run: sudo apt-get install rename
- name: Rename signed file
run: cd ./web-ext-artifacts ; rename 's/.*/FirefoxSignedInstaller.xpi/' *
- uses: actions/upload-artifact@v1
with:
name: FirefoxExtensionSigned.xpi
path: ./web-ext-artifacts/FirefoxSignedInstaller.xpi
- name: Upload FirefoxSignedInstaller.xpi to release
uses: Shopify/upload-to-release@master
with:
args: web-ext-artifacts/FirefoxSignedInstaller.xpi
name: FirefoxSignedInstaller.xpi
path: ./web-ext-artifacts/FirefoxSignedInstaller.xpi
repo-token: ${{ secrets.GITHUB_TOKEN }}

8
.gitignore vendored
View File

@@ -1,2 +1,8 @@
config.js
config.json
ignored
.idea/
node_modules
web-ext-artifacts
.vscode/
dist/
tmp/

View File

@@ -1,3 +1,7 @@
SponsorBlock Copyright (C) 2019 Ajay Ramachandran and other SponsorBlock contributors.
Please refer to the license below.
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
@@ -653,6 +657,7 @@ Also add information on how to contact you by electronic and paper mail.
notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.

View File

@@ -1,36 +1,87 @@
![Logo](icons/LogoSponsorBlocker256px.png)
<br/><sub>Logo by [@munadikieh](https://github.com/munadikieh)</sub>
<p align="center">
<a href="https://sponsor.ajay.app"><img src="public/icons/LogoSponsorBlocker256px.png" alt="Logo"></img></a>
# SponsorBlock
<br/>
<sub>Logo by <a href="https://github.com/munadikieh">@munadikieh</a></sub>
</p>
SponsorBlock is an extension that will skip over sponsored segments of YouTube videos. SponsorBlock is a crowdsourced browser extension that let's anyone submit the start and end time's of sponsored segments of YouTube videos. Once one person submits this information, everyone else with this extension will skip right over the sponsored segment.
<h1 align="center">SponsorBlock</h1>
# Available for Chrome and Firefox
<p align="center">
<b>Download:</b>
<a href="https://chrome.google.com/webstore/detail/mnjggcdmjocbbbhaepdhchncahnbgone">Chrome/Chromium</a> |
<a href="https://addons.mozilla.org/addon/sponsorblock/?src=external-github">Firefox</a> |
<a href="https://github.com/ajayyy/SponsorBlock/wiki/Android">Android</a> |
<a href="https://github.com/ajayyy/SponsorBlock/wiki/Edge">Edge</a> |
<a href="https://sponsor.ajay.app">Website</a> |
<a href="https://sponsor.ajay.app/stats">Stats</a>
</p>
Chrome: https://chrome.google.com/webstore/detail/mnjggcdmjocbbbhaepdhchncahnbgone/
<p align="center">
<b>Unofficial Ports:</b>
<a href="https://github.com/ajayyy/SponsorBlock/wiki/Unofficial-Ports#mpv-media-player">MPV</a> |
<a href="https://github.com/ajayyy/SponsorBlock/wiki/Unofficial-Ports#kodi">Kodi</a> |
<a href="https://github.com/ajayyy/SponsorBlock/wiki/Unofficial-Ports#ios">iOS</a>
</p>
Firefox: https://addons.mozilla.org/addon/sponsorblock/
<p align="center">
<a href="https://addons.mozilla.org/addon/sponsorblock/?src=external-github"><img src="https://img.shields.io/amo/users/sponsorblock?label=Firefox%20Users" alt="Badge"></img></a>
<a href="https://chrome.google.com/webstore/detail/mnjggcdmjocbbbhaepdhchncahnbgone"><img src="https://img.shields.io/chrome-web-store/users/mnjggcdmjocbbbhaepdhchncahnbgone?label=Chrome%20Users" alt="Badge"></img></a>
<a href="https://sponsor.ajay.app/stats"><img src="https://img.shields.io/badge/dynamic/json?label=Submissions&query=totalSubmissions&suffix=%20segments&url=http%3A%2F%2Fsponsor.ajay.app%2Fapi%2FgetTotalStats&color=darkred" alt="Badge"></img></a>
<a href="https://sponsor.ajay.app/stats"><img src="https://img.shields.io/badge/dynamic/json?label=Contributing%20Users&query=userCount&url=http%3A%2F%2Fsponsor.ajay.app%2Fapi%2FgetTotalStats&color=darkblue" alt="Badge"></img></a>
<a href="https://sponsor.ajay.app/stats"><img src="https://img.shields.io/badge/dynamic/json?label=Time%20Saved%20From%20Skips&query=daysSaved&url=http%3A%2F%2Fsponsor.ajay.app%2Fapi%2FgetDaysSavedFormatted&color=darkgreen&suffix=%20days" alt="Badge"></img></a>
</p>
SponsorBlock is an open-source crowdsourced browser extension to skip sponsor segments in YouTube videos. Users submit when a sponsor happens from the extension, and the extension automatically skips sponsors it knows about. It also supports skipping other categories, such as intros, outros and reminders to subscribe.
It also supports Invidio.us.
**Translate:** [![Crowdin](https://badges.crowdin.net/sponsorblock/localized.svg)](https://crowdin.com/project/sponsorblock)
# Important Links
See the [Wiki](https://github.com/ajayyy/SponsorBlock/wiki) for important links.
# Server
The backend server code is available here: https://github.com/ajayyy/SponsorBlockServer
It is a simple Sqlite database that will hold all the timing data.
It is a simple SQLite database that will hold all the timing data.
To make sure that this project doesn't die, I have made the database publicly downloadable at https://sponsor.ajay.app/database.db. So, you can download a backup or get archive.org to take a backup if you do desire.
To make sure that this project doesn't die, I have made the database publicly downloadable at https://sponsor.ajay.app/database.db ([License](https://github.com/ajayyy/SponsorBlock/wiki/Database-and-API-License)). If you are planning on using the database in another project, please read the [API Docs](https://github.com/ajayyy/SponsorBlock/wiki/API-Docs) page for more information.
Hopefully this project can be combined with projects like [this](https://github.com/Sponsoff/sponsorship_remover) and use this data to create a neural network to predict when sponsored segments happen. That project is sadly abandoned now, so I have decided to attempt to revive this idea.
The dataset and API are now being used in some [ports](https://github.com/ajayyy/SponsorBlock/wiki/Unofficial-Ports) as well as a [neural network](https://github.com/andrewzlee/NeuralBlock).
# Previous extension
A [previous project](https://github.com/Sponsoff/sponsorship_remover) attempted to create a neural network to predict when sponsored segments happen. That project is sadly abandoned now, so I have decided to attempt to revive this idea starting from a crowd-sourced system instead.
This project is partially based off of [this experimental extension](https://github.com/OfficialNoob/YTSponsorSkip). That extension has the basic video skipping functionality.
# API
# Build Yourself
You can read the API docs [here](https://github.com/ajayyy/SponsorBlockServer#api-docs).
You can load this project as an unpacked extension. Make sure to rename the `config.js.example` file to `config.js` before installing.
# Building
Rename `config.json.example` to `config.json` and adjust configuration as desired.
There are also other build scripts available. Install `npm`, then run `npm install` in the repository to install dependencies.
Run `npm run build` to generate a Chrome extension.
Use `npm run build:firefox` to generate a Firefox extension.
The result is in `dist`. This can be loaded as an unpacked extension
## Developing with a clean profile
Run `npm run dev` to run the extension using a clean browser profile with hot reloading. Use `npm run dev:firefox` for Firefox. This uses [`web-ext run`](https://extensionworkshop.com/documentation/develop/web-ext-command-reference/#commands).
# Credit
The awesome [Invidious API](https://github.com/omarroth/invidious/wiki/API) is used to grab the time the video was published.
The awesome [Invidious API](https://github.com/omarroth/invidious/wiki/API) was previously used.
Originally forked from [YTSponsorSkip](https://github.com/OfficialNoob/YTSponsorSkip), but zero code remains.
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="http://creativecommons.org/licenses/by/3.0/" title="Creative Commons BY 3.0" target="_blank">CC 3.0 BY</a>
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> are licensed by <a href="http://creativecommons.org/licenses/by/3.0/" title="Creative Commons BY 3.0" target="_blank">CC 3.0 BY</a>

View File

@@ -1,244 +0,0 @@
var previousVideoID = null
//the id of this user, randomly generated once per install
var userID = null;
//when a new tab is highlighted
chrome.tabs.onActivated.addListener(
function(activeInfo) {
chrome.tabs.get(activeInfo.tabId, function(tab) {
let id = getYouTubeVideoID(tab.url);
//if this even is a YouTube tab
if (id) {
videoIDChange(id, activeInfo.tabId);
}
})
}
);
//when a tab changes URLs
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
if (changeInfo != undefined && changeInfo.url != undefined) {
let id = getYouTubeVideoID(changeInfo.url);
//if URL changed and is youtube video message contentScript the video id
if (changeInfo.url && id) {
videoIDChange(id, tabId);
}
}
});
chrome.runtime.onMessage.addListener(function (request, sender, callback) {
if (request.message == "submitTimes") {
submitTimes(request.videoID, callback);
//this allows the callback to be called later by the submitTimes function
return true;
} else if (request.message == "addSponsorTime") {
addSponsorTime(request.time, request.videoID);
} else if (request.message == "getSponsorTimes") {
getSponsorTimes(request.videoID, function(sponsorTimes) {
callback({
sponsorTimes: sponsorTimes
})
});
//this allows the callback to be called later
return true;
} else if (request.message == "submitVote") {
submitVote(request.type, request.UUID, callback);
//this allows the callback to be called later
return true;
}
});
//gets the sponsor times from memory
function getSponsorTimes(videoID, callback) {
let sponsorTimes = [];
let sponsorTimeKey = "sponsorTimes" + videoID;
chrome.storage.sync.get([sponsorTimeKey], function(result) {
let sponsorTimesStorage = result[sponsorTimeKey];
if (sponsorTimesStorage != undefined && sponsorTimesStorage.length > 0) {
sponsorTimes = sponsorTimesStorage;
}
callback(sponsorTimes)
});
}
function addSponsorTime(time, videoID) {
getSponsorTimes(videoID, function(sponsorTimes) {
//add to sponsorTimes
if (sponsorTimes.length > 0 && sponsorTimes[sponsorTimes.length - 1].length < 2) {
//it is an end time
sponsorTimes[sponsorTimes.length - 1][1] = time;
} else {
//it is a start time
let sponsorTimesIndex = sponsorTimes.length;
sponsorTimes[sponsorTimesIndex] = [];
sponsorTimes[sponsorTimesIndex][0] = time;
}
//save this info
let sponsorTimeKey = "sponsorTimes" + videoID;
chrome.storage.sync.set({[sponsorTimeKey]: sponsorTimes});
});
}
function submitVote(type, UUID, callback) {
getUserID(function(userID) {
//publish this vote
sendRequestToServer('GET', "/api/voteOnSponsorTime?UUID=" + UUID + "&userID=" + userID + "&type=" + type, function(xmlhttp, error) {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
callback({
successType: 1
});
} else if (xmlhttp.readyState == 4 && xmlhttp.status == 405) {
//duplicate vote
callback({
successType: 0
});
} else if (error) {
//error while connect
callback({
successType: -1
});
}
})
})
}
function submitTimes(videoID, callback) {
//get the video times from storage
let sponsorTimeKey = 'sponsorTimes' + videoID;
chrome.storage.sync.get([sponsorTimeKey], function(result) {
let sponsorTimes = result[sponsorTimeKey];
if (sponsorTimes != undefined && sponsorTimes.length > 0) {
//submit these times
for (let i = 0; i < sponsorTimes.length; i++) {
getUserID(function(userIDStorage) {
//submit the sponsorTime
sendRequestToServer('GET', "/api/postVideoSponsorTimes?videoID=" + videoID + "&startTime=" + sponsorTimes[i][0] + "&endTime=" + sponsorTimes[i][1]
+ "&userID=" + userIDStorage, function(xmlhttp, error) {
if (xmlhttp.readyState == 4 && !error) {
callback({
statusCode: xmlhttp.status
});
} else if (error) {
callback({
statusCode: -1
});
}
});
});
}
//add these to the storage log
chrome.storage.sync.get(["sponsorTimesContributed"], function(result) {
let currentContributionAmount = 0;
if (result.sponsorTimesContributed != undefined) {
//current contribution amount is known
currentContributionAmount = result.sponsorTimesContributed;
}
//save the amount contributed
chrome.storage.sync.set({"sponsorTimesContributed": currentContributionAmount + sponsorTimes.length});
});
}
});
}
function videoIDChange(currentVideoID, tabId) {
//send a message to the content script
chrome.tabs.sendMessage(tabId, {
message: 'ytvideoid',
id: currentVideoID
});
//warn them if they had unsubmitted times
if (previousVideoID != null) {
//get the sponsor times from storage
let sponsorTimeKey = 'sponsorTimes' + previousVideoID;
chrome.storage.sync.get([sponsorTimeKey], function(result) {
let sponsorTimes = result[sponsorTimeKey];
if (sponsorTimes != undefined && sponsorTimes.length > 0) {
//warn them that they have unsubmitted sponsor times
chrome.notifications.create("stillThere" + Math.random(), {
type: "basic",
title: "Do you want to submit the sponsor times for watch?v=" + previousVideoID + "?",
message: "You seem to have left some sponsor times unsubmitted. Go back to that page to submit them (they are not deleted).",
iconUrl: "./icons/LogoSponsorBlocker256px.png"
});
}
//set the previous video id to the currentID
previousVideoID = currentVideoID;
});
} else {
previousVideoID = currentVideoID;
}
}
function getUserID(callback) {
if (userID != null) {
callback(userID);
return;
}
//if it is not cached yet, grab it from storage
chrome.storage.sync.get(["userID"], function(result) {
let userIDStorage = result.userID;
if (userIDStorage != undefined) {
userID = userIDStorage;
callback(userID);
} else {
//double check if a UUID hasn't been created since this was first called
if (userID != null) {
callback(userID);
return;
}
//generate a userID
userID = generateUUID();
//save this UUID
chrome.storage.sync.set({"userID": userID});
callback(userID);
}
});
}
function sendRequestToServer(type, address, callback) {
let xmlhttp = new XMLHttpRequest();
xmlhttp.open(type, serverAddress + address, true);
if (callback != undefined) {
xmlhttp.onreadystatechange = function () {
callback(xmlhttp, false);
};
xmlhttp.onerror = function(ev) {
callback(xmlhttp, true);
};
}
//submit this request
xmlhttp.send();
}
function getYouTubeVideoID(url) { // Return video id or false
var regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*/;
var match = url.match(regExp);
return (match && match[7].length == 11) ? match[7] : false;
}
//uuid generator function from https://gist.github.com/jed/982883
function generateUUID(a){return a?(a^Math.random()*16>>a/4).toString(16):([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,generateUUID)}

View File

@@ -1,3 +0,0 @@
//this file is loaded along iwth content.js
//this file sets the server to connect to, and is gitignored
var serverAddress = "https://sponsor.ajay.app";

6
config.json.example Normal file
View File

@@ -0,0 +1,6 @@
{
"serverAddress": "https://sponsor.ajay.app",
"testingServerAddress": "https://sponsor.ajay.app/test",
"serverAddressComment": "This specifies the default SponsorBlock server to connect to",
"categoryList": ["sponsor", "intro", "outro", "interaction", "selfpromo", "music_offtopic"]
}

View File

@@ -1,195 +0,0 @@
.playerButtonImage {
height: 60%;
top: 0;
bottom: 0;
display: block;
margin: auto;
}
.playerButton {
vertical-align: top;
}
.sponsorSkipObject {
font-family: 'Source Sans Pro', sans-serif;
}
.sponsorSkipLogo {
height: 64px;
position: absolute;
top: 0;
bottom: 0;
margin: auto;
margin-left: 10px;
}
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
.sponsorSkipNotice {
min-height: 165px;
min-width: 400px;
background-color: rgba(255, 217, 217, 0.8);
position: absolute;
z-index: 1;
border: 3px solid rgba(0, 0, 0, 0.8);
margin-top: -50px;
animation: fadeIn 0.5s;
}
/* if two are very close to eachother */
.secondSkipNotice {
margin-left: 500px;
transition: margin-left 0.2s;
}
.sponsorSkipMessage {
font-size: 18px;
color: #000000;
text-align: center;
margin-top: 10px;
font-weight: bold;
margin-top: 4px;
}
.sponsorSkipInfo {
font-size: 10px;
color: #000000;
text-align: center;
margin-top: 0px;
}
#sponsorTimesThanksForVotingText {
font-size: 20px;
font-weight: bold;
color: #000000;
text-align: center;
margin-top: 0px;
margin-bottom: 0px;
}
#sponsorTimesThanksForVotingInfoText {
font-size: 12px;
font-weight: bold;
color: #000000;
text-align: center;
margin-top: 0px;
}
.sponsorTimesInfoMessage {
font-size: 15px;
font-weight: bold;
color: #000000;
text-align: center;
}
.voteButton {
height: 32px;
margin-right: 15px;
cursor: pointer;
}
.voteButton:hover {
filter: brightness(80%);
}
.submitButton {
background-color:#ec1c1c;
-moz-border-radius:28px;
-webkit-border-radius:28px;
border-radius:28px;
border:1px solid #d31919;
display:inline-block;
cursor:pointer;
color:#ffffff;
font-size:14px;
padding:4px 15px;
text-decoration:none;
text-shadow:0px 0px 0px #662727;
margin-top: 5px;
margin-right: 15px;
}
.submitButton:hover {
background-color:#bf2a2a;
}
.submitButton:focus {
outline: none;
background-color:#bf2a2a;
}
.submitButton:active {
position:relative;
top:1px;
}
@keyframes rotate {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
.sponsorSkipButton {
background-color:#ec1c1c;
-moz-border-radius:28px;
-webkit-border-radius:28px;
border-radius:28px;
border:1px solid #d31919;
display:inline-block;
cursor:pointer;
color:#ffffff;
font-size:14px;
padding:4px 15px;
text-decoration:none;
text-shadow:0px 0px 0px #662727;
margin-top: 5px;
margin-right: 15px;
}
.sponsorSkipButton:hover {
background-color:#bf2a2a;
}
.sponsorSkipButton:focus {
outline: none;
background-color:#bf2a2a;
}
.sponsorSkipButton:active {
position:relative;
top:1px;
}
.sponsorSkipDontShowButton {
-moz-box-shadow:inset 0px 1px 0px 0px #cf866c;
-webkit-box-shadow:inset 0px 1px 0px 0px #cf866c;
box-shadow:inset 0px 1px 0px 0px #cf866c;
background-color:#d0451b;
-moz-border-radius:3px;
-webkit-border-radius:3px;
border-radius:3px;
border:1px solid #942911;
display:inline-block;
cursor:pointer;
color:#ffffff;
font-size:13px;
padding:6px 24px;
text-decoration:none;
text-shadow:0px 1px 0px #854629;
}
.sponsorSkipDontShowButton:hover {
background-color:#bc3315;
}
.sponsorSkipDontShowButton:focus {
outline: none;
background-color:#bc3315;
}
.sponsorSkipDontShowButton:active {
position:relative;
top:1px;
}

View File

@@ -1,690 +0,0 @@
//was sponsor data found when doing SponsorsLookup
var sponsorDataFound = false;
//the actual sponsorTimes if loaded and UUIDs associated with them
var sponsorTimes = null;
var UUIDs = null;
//what video id are these sponsors for
var sponsorVideoID = null;
if(id = getYouTubeVideoID(document.URL)){ // Direct Links
videoIDChange(id);
}
//the video
var v;
//the last time looked at (used to see if this time is in the interval)
var lastTime = -1;
//the actual time (not video time) that the last skip happened
var lastUnixTimeSkipped = -1;
//the last time in the video a sponsor was skipped
//used for the go back button
var lastSponsorTimeSkipped = null;
//used for ratings
var lastSponsorTimeSkippedUUID = null;
//if showing the start sponsor button or the end sponsor button on the player
var showingStartSponsor = true;
//should the video controls buttons be added
var hideVideoPlayerControls = false;
//should view counts be tracked
var trackViewCount = false;
chrome.storage.sync.get(["trackViewCount"], function(result) {
let trackViewCountStorage = result.trackViewCount;
if (trackViewCountStorage != undefined) {
trackViewCount = trackViewCountStorage;
} else {
trackViewCount = true;
}
});
//if the notice should not be shown
//happens when the user click's the "Don't show notice again" button
var dontShowNotice = false;
chrome.storage.sync.get(["dontShowNoticeAgain"], function(result) {
let dontShowNoticeAgain = result.dontShowNoticeAgain;
if (dontShowNoticeAgain != undefined) {
dontShowNotice = dontShowNoticeAgain;
}
});
chrome.runtime.onMessage.addListener( // Detect URL Changes
function(request, sender, sendResponse) {
console.log(request.message)
//message from background script
if (request.message == "ytvideoid") {
videoIDChange(request.id);
}
//messages from popup script
if (request.message == "sponsorStart") {
sponsorMessageStarted();
}
if (request.message == "isInfoFound") {
//send the sponsor times along with if it's found
sendResponse({
found: sponsorDataFound,
sponsorTimes: sponsorTimes,
UUIDs: UUIDs
})
}
if (request.message == "getVideoID") {
sendResponse({
videoID: getYouTubeVideoID(document.URL)
})
}
if (request.message == "showNoticeAgain") {
dontShowNotice = false;
}
if (request.message == "changeStartSponsorButton") {
changeStartSponsorButton(request.showStartSponsor, request.uploadButtonVisible);
}
if (request.message == "changeVideoPlayerControlsVisibility") {
hideVideoPlayerControls = request.value;
updateVisibilityOfPlayerControlsButton();
}
if (request.message == "trackViewCount") {
trackViewCount = request.value;
}
});
//check for hotkey pressed
document.onkeydown = function(e){
e = e || window.event;
var key = e.which || e.keyCode;
let video = document.getElementById("movie_player");
//is the video in focus, otherwise they could be typing a comment
if (document.activeElement === video) {
if(key == 186){
//semicolon
startSponsorClicked();
} else if (key == 222) {
//single quote
submitSponsorTimes();
}
}
}
function videoIDChange(id) {
//not a url change
if (sponsorVideoID == id){
return;
}
//reset last sponsor times
lastTime = -1;
lastUnixTimeSkipped = -1;
//reset sponsor times
sponsorTimes = null;
UUIDs = null;
sponsorVideoID = id;
//reset sponsor data found check
sponsorDataFound = false;
sponsorsLookup(id);
//see if the onvideo control image needs to be changed
chrome.runtime.sendMessage({
message: "getSponsorTimes",
videoID: id
}, function(response) {
if (response != undefined) {
let sponsorTimes = response.sponsorTimes;
if (sponsorTimes != null && sponsorTimes.length > 0 && sponsorTimes[sponsorTimes.length - 1].length >= 2) {
document.getElementById("submitButton").style.display = "unset";
} else if (sponsorTimes != null && sponsorTimes.length > 0 && sponsorTimes[sponsorTimes.length - 1].length < 2) {
toggleStartSponsorButton();
}
}
});
//see if video control buttons should be added
chrome.storage.sync.get(["hideVideoPlayerControls"], function(result) {
if (result.hideVideoPlayerControls != undefined) {
hideVideoPlayerControls = result.hideVideoPlayerControls;
}
updateVisibilityOfPlayerControlsButton();
});
}
function sponsorsLookup(id) {
v = document.querySelector('video') // Youtube video player
//check database for sponsor times
sendRequestToServer('GET', "/api/getVideoSponsorTimes?videoID=" + id, function(xmlhttp) {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
sponsorDataFound = true;
sponsorTimes = JSON.parse(xmlhttp.responseText).sponsorTimes;
UUIDs = JSON.parse(xmlhttp.responseText).UUIDs;
// If the sponsor data exists, add the event to run on the videos "ontimeupdate"
v.ontimeupdate = function () {
sponsorCheck(sponsorTimes);
};
} else if (xmlhttp.readyState == 4) {
sponsorDataFound = false;
//check if this video was uploaded recently
//use the invidious api to get the time published
sendRequestToCustomServer('GET', "https://invidio.us/api/v1/videos/" + id, function(xmlhttp, error) {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
let unixTimePublished = JSON.parse(xmlhttp.responseText).published;
//if less than 3 days old
if ((Date.now() / 1000) - unixTimePublished < 259200) {
setTimeout(() => sponsorsLookup(id), 10000);
}
}
});
}
});
}
function sponsorCheck(sponsorTimes) { // Video skipping
//see if any sponsor start time was just passed
for (let i = 0; i < sponsorTimes.length; i++) {
//this means part of the video was just skipped
if (Math.abs(v.currentTime - lastTime) > 1 && lastTime != -1) {
//make lastTime as if the video was playing normally
lastTime = v.currentTime - 0.0001;
}
let currentTime = Date.now();
//If the sponsor time is in between these times, skip it
//Checks if the last time skipped to is not too close to now, to make sure not to get too many
// sponsor times in a row (from one troll)
//the last term makes 0 second start times possible
if ((Math.abs(v.currentTime - sponsorTimes[i][0]) < 0.3 && sponsorTimes[i][0] >= lastTime && sponsorTimes[i][0] <= v.currentTime
&& (lastUnixTimeSkipped == -1 || currentTime - lastUnixTimeSkipped > 500)) || (lastTime == -1 && sponsorTimes[i][0] == 0)) {
//skip it
v.currentTime = sponsorTimes[i][1];
lastSponsorTimeSkipped = sponsorTimes[i][0];
let currentUUID = UUIDs[i];
lastSponsorTimeSkippedUUID = currentUUID;
//send out the message saying that a sponsor message was skipped
openSkipNotice(currentUUID);
setTimeout(() => closeSkipNotice(currentUUID), 7000);
//send telemetry that a this sponsor was skipped happened
if (trackViewCount) {
sendRequestToServer("GET", "/api/viewedVideoSponsorTime?UUID=" + currentUUID);
}
}
}
//don't keep track until they are loaded in
if (sponsorTimes.length > 0) {
lastTime = v.currentTime;
}
}
function goBackToPreviousTime(UUID) {
if (sponsorTimes != null) {
//add a tiny bit of time to make sure it is not skipped again
v.currentTime = sponsorTimes[UUIDs.indexOf(UUID)][0] + 0.001;
closeSkipNotice(UUID);
}
}
//Adds a sponsorship starts button to the player controls
function addPlayerControlsButton() {
if (document.getElementById("startSponsorButton") != null) {
//it's already added
return;
}
let startSponsorButton = document.createElement("button");
startSponsorButton.id = "startSponsorButton";
startSponsorButton.className = "ytp-button playerButton";
startSponsorButton.setAttribute("title", "Sponsor Starts Now");
startSponsorButton.addEventListener("click", startSponsorClicked);
let startSponsorImage = document.createElement("img");
startSponsorImage.id = "startSponsorImage";
startSponsorImage.className = "playerButtonImage";
startSponsorImage.src = chrome.extension.getURL("icons/PlayerStartIconSponsorBlocker256px.png");
//add the image to the button
startSponsorButton.appendChild(startSponsorImage);
let referenceNode = document.getElementsByClassName("ytp-right-controls")[0];
referenceNode.prepend(startSponsorButton);
}
function removePlayerControlsButton() {
document.getElementById("startSponsorButton").style.display = "none";
document.getElementById("submitButton").style.display = "none";
}
//adds or removes the player controls button to what it should be
function updateVisibilityOfPlayerControlsButton() {
addPlayerControlsButton();
addSubmitButton();
if (hideVideoPlayerControls) {
removePlayerControlsButton();
}
}
function startSponsorClicked() {
toggleStartSponsorButton();
//send back current time with message
chrome.runtime.sendMessage({
message: "addSponsorTime",
time: v.currentTime,
videoID: getYouTubeVideoID(document.URL)
});
}
function changeStartSponsorButton(showStartSponsor, uploadButtonVisible) {
if (showStartSponsor) {
showingStartSponsor = true;
document.getElementById("startSponsorImage").src = chrome.extension.getURL("icons/PlayerStartIconSponsorBlocker256px.png");
if (document.getElementById("startSponsorImage").style.display != "none" && uploadButtonVisible) {
document.getElementById("submitButton").style.display = "unset";
} else if (!uploadButtonVisible) {
//disable submit button
document.getElementById("submitButton").style.display = "none";
}
} else {
showingStartSponsor = false;
document.getElementById("startSponsorImage").src = chrome.extension.getURL("icons/PlayerStopIconSponsorBlocker256px.png");
//disable submit button
document.getElementById("submitButton").style.display = "none";
}
}
function toggleStartSponsorButton() {
changeStartSponsorButton(!showingStartSponsor, true);
}
//shows the submit button on the video player
function addSubmitButton() {
if (document.getElementById("submitButton") != null) {
//it's already added
return;
}
//make a submit button
let submitButton = document.createElement("button");
submitButton.id = "submitButton";
submitButton.className = "ytp-button playerButton";
submitButton.setAttribute("title", "Submit Sponsor Times");
submitButton.addEventListener("click", submitSponsorTimes);
//hide it at the start
submitButton.style.display = "none";
let submitImage = document.createElement("img");
submitImage.id = "submitButtonImage";
submitImage.className = "playerButtonImage";
submitImage.src = chrome.extension.getURL("icons/PlayerUploadIconSponsorBlocker256px.png");
//add the image to the button
submitButton.appendChild(submitImage);
let referenceNode = document.getElementsByClassName("ytp-right-controls")[0];
referenceNode.prepend(submitButton);
}
//Opens the notice that tells the user that a sponsor was just skipped
function openSkipNotice(UUID){
if (dontShowNotice) {
//don't show, return
return;
}
//check if page is loaded yet (for 0 second sponsors, the page might not be loaded yet)
//it looks for the view count div and sees if it is full yet
//querySelectorAll is being used like findElementById for multiple objects, because for
//some reason YouTube has put more than one object with one ID.
let viewCountNode = document.querySelectorAll("#count");
//check to see if the length is over zero, otherwise it's a different YouTube theme probably
if (viewCountNode.length > 0) {
//check if any of these have text
let viewCountVisible = false;
for (let i = 0; i < viewCountNode.length; i++) {
if (viewCountNode[i].innerText != null) {
viewCountVisible = true;
break;
}
}
if (!viewCountVisible) {
//this is the new YouTube layout and it is still loading
//wait a bit for opening the notice
setTimeout(() => openSkipNotice(UUID), 200);
return;
}
}
let amountOfPreviousNotices = document.getElementsByClassName("sponsorSkipNotice").length;
if (amountOfPreviousNotices > 0) {
//already exists
let previousNotice = document.getElementsByClassName("sponsorSkipNotice")[0];
previousNotice.classList.add("secondSkipNotice")
}
let noticeElement = document.createElement("div");
//what sponsor time this is about
noticeElement.id = "sponsorSkipNotice" + UUID;
noticeElement.classList.add("sponsorSkipObject");
noticeElement.classList.add("sponsorSkipNotice");
noticeElement.style.zIndex = 5 + amountOfPreviousNotices;
let logoElement = document.createElement("img");
logoElement.id = "sponsorSkipLogo" + UUID;
logoElement.className = "sponsorSkipLogo";
logoElement.src = chrome.extension.getURL("icons/LogoSponsorBlocker256px.png");
let noticeMessage = document.createElement("div");
noticeMessage.id = "sponsorSkipMessage" + UUID;
noticeMessage.classList.add("sponsorSkipMessage");
noticeMessage.classList.add("sponsorSkipObject");
noticeMessage.innerText = "Hey, you just skipped a sponsor!";
let noticeInfo = document.createElement("p");
noticeInfo.id = "sponsorSkipInfo" + UUID;
noticeInfo.classList.add("sponsorSkipInfo");
noticeInfo.classList.add("sponsorSkipObject");
noticeInfo.innerText = "This message will disapear in 7 seconds";
//thumbs up and down buttons
let voteButtonsContainer = document.createElement("div");
voteButtonsContainer.id = "sponsorTimesVoteButtonsContainer" + UUID;
voteButtonsContainer.setAttribute("align", "center");
let upvoteButton = document.createElement("img");
upvoteButton.id = "sponsorTimesUpvoteButtonsContainer" + UUID;
upvoteButton.className = "sponsorSkipObject voteButton";
upvoteButton.src = chrome.extension.getURL("icons/upvote.png");
upvoteButton.addEventListener("click", () => vote(1, UUID));
let downvoteButton = document.createElement("img");
downvoteButton.id = "sponsorTimesDownvoteButtonsContainer" + UUID;
downvoteButton.className = "sponsorSkipObject voteButton";
downvoteButton.src = chrome.extension.getURL("icons/downvote.png");
downvoteButton.addEventListener("click", () => vote(0, UUID));
//add thumbs up and down buttons to the container
voteButtonsContainer.appendChild(upvoteButton);
voteButtonsContainer.appendChild(downvoteButton);
let buttonContainer = document.createElement("div");
buttonContainer.setAttribute("align", "center");
let goBackButton = document.createElement("button");
goBackButton.innerText = "Go back";
goBackButton.className = "sponsorSkipButton";
goBackButton.addEventListener("click", () => goBackToPreviousTime(UUID));
let hideButton = document.createElement("button");
hideButton.innerText = "Dismiss";
hideButton.className = "sponsorSkipButton";
hideButton.addEventListener("click", () => closeSkipNotice(UUID));
let dontShowAgainButton = document.createElement("button");
dontShowAgainButton.innerText = "Don't Show This Again";
dontShowAgainButton.className = "sponsorSkipDontShowButton";
dontShowAgainButton.addEventListener("click", dontShowNoticeAgain);
buttonContainer.appendChild(goBackButton);
buttonContainer.appendChild(hideButton);
buttonContainer.appendChild(document.createElement("br"));
buttonContainer.appendChild(document.createElement("br"));
buttonContainer.appendChild(dontShowAgainButton);
noticeElement.appendChild(logoElement);
noticeElement.appendChild(noticeMessage);
noticeElement.appendChild(noticeInfo);
noticeElement.appendChild(voteButtonsContainer);
noticeElement.appendChild(buttonContainer);
let referenceNode = document.getElementById("info");
if (referenceNode == null) {
//old YouTube
referenceNode = document.getElementById("watch-header");
}
referenceNode.prepend(noticeElement);
}
function afterDownvote(UUID) {
//change text to say thanks for voting
//remove buttons
let upvoteButton = document.getElementById("sponsorTimesUpvoteButtonsContainer" + UUID);
let downvoteButton = document.getElementById("sponsorTimesDownvoteButtonsContainer" + UUID);
if (upvoteButton != null) {
document.getElementById("sponsorTimesVoteButtonsContainer" + UUID).removeChild(upvoteButton);
}
if (downvoteButton != null) {
document.getElementById("sponsorTimesVoteButtonsContainer" + UUID).removeChild(downvoteButton);
}
let previousInfoMessage = document.getElementById("sponsorTimesInfoMessage" + UUID);
if (previousInfoMessage != null) {
//remove it
document.getElementById("sponsorTimesVoteButtonsContainer" + UUID).removeChild(previousInfoMessage);
}
//add thanks for voting text
let thanksForVotingText = document.createElement("p");
thanksForVotingText.id = "sponsorTimesThanksForVotingText";
thanksForVotingText.innerText = "Thanks for voting!"
//add extra info for voting
let thanksForVotingInfoText = document.createElement("p");
thanksForVotingInfoText.id = "sponsorTimesThanksForVotingInfoText";
thanksForVotingInfoText.innerText = "Hit go back to get to where you came from."
//add element to div
document.getElementById("sponsorTimesVoteButtonsContainer" + UUID).appendChild(thanksForVotingText);
document.getElementById("sponsorTimesVoteButtonsContainer" + UUID).appendChild(thanksForVotingInfoText);
}
function addLoadingInfo(message, UUID) {
//change text to say thanks for message
//remove buttons
let upvoteButton = document.getElementById("sponsorTimesUpvoteButtonsContainer" + UUID);
let downvoteButton = document.getElementById("sponsorTimesDownvoteButtonsContainer" + UUID);
if (upvoteButton != null) {
document.getElementById("sponsorTimesVoteButtonsContainer" + UUID).removeChild(upvoteButton);
}
if (downvoteButton != null) {
document.getElementById("sponsorTimesVoteButtonsContainer" + UUID).removeChild(downvoteButton);
}
let previousInfoMessage = document.getElementById("sponsorTimesInfoMessage" + UUID);
if (previousInfoMessage != null) {
//remove it
document.getElementById("sponsorTimesVoteButtonsContainer" + UUID).removeChild(previousInfoMessage);
}
//add thanks for voting text
let thanksForVotingText = document.createElement("p");
thanksForVotingText.id = "sponsorTimesInfoMessage" + UUID;
thanksForVotingText.className = "sponsorTimesInfoMessage";
thanksForVotingText.innerText = message;
//add element to div
document.getElementById("sponsorTimesVoteButtonsContainer" + UUID).appendChild(thanksForVotingText);
}
function vote(type, UUID) {
//add loading info
addLoadingInfo("Loading...", UUID)
chrome.runtime.sendMessage({
message: "submitVote",
type: type,
UUID: UUID
}, function(response) {
if (response != undefined) {
//see if it was a success or failure
if (response.successType == 1) {
//success
if (type == 0) {
afterDownvote(UUID);
} else if (type == 1) {
closeSkipNotice(UUID);
}
} else if (response.successType == 0) {
//failure: duplicate vote
addLoadingInfo("It seems you've already voted before", UUID)
} else if (response.successType == -1) {
//failure: duplicate vote
addLoadingInfo("A connection error has occured.", UUID)
}
}
});
}
//Closes the notice that tells the user that a sponsor was just skipped for this UUID
function closeSkipNotice(UUID){
let notice = document.getElementById("sponsorSkipNotice" + UUID);
if (notice != null) {
notice.remove();
}
}
//Closes all notices that tell the user that a sponsor was just skipped
function closeAllSkipNotices(){
let notices = document.getElementsByClassName("sponsorSkipNotice");
for (let i = 0; i < notices.length; i++) {
notices[i].remove();
}
}
function dontShowNoticeAgain() {
chrome.storage.sync.set({"dontShowNoticeAgain": true});
dontShowNotice = true;
closeAllSkipNotices();
}
function sponsorMessageStarted() {
let v = document.querySelector('video');
//send back current time
chrome.runtime.sendMessage({
message: "time",
time: v.currentTime
});
//update button
toggleStartSponsorButton();
}
function submitSponsorTimes() {
if(!confirm("Are you sure you want to submit this?")) return;
if (document.getElementById("submitButton").style.display == "none") {
//don't submit, not ready
return;
}
//add loading animation
document.getElementById("submitButtonImage").src = chrome.extension.getURL("icons/PlayerUploadIconSponsorBlocker256px.png");
document.getElementById("submitButton").style.animation = "rotate 1s 0s infinite";
let currentVideoID = getYouTubeVideoID(document.URL);
chrome.runtime.sendMessage({
message: "submitTimes",
videoID: currentVideoID
}, function(response) {
if (response != undefined) {
if (response.statusCode == 200) {
//hide loading message
let submitButton = document.getElementById("submitButton");
//finish this animation
submitButton.style.animation = "rotate 1s";
//when the animation is over, hide the button
submitButton.addEventListener("animationend", function() {
submitButton.style.animation = "unset";
submitButton.style.display = "none";
});
//clear the sponsor times
let sponsorTimeKey = "sponsorTimes" + currentVideoID;
chrome.storage.sync.set({[sponsorTimeKey]: []});
} else {
//for a more detailed error message, they should check the popup
//show that the upload failed
document.getElementById("submitButton").style.animation = "unset";
document.getElementById("submitButtonImage").src = chrome.extension.getURL("icons/PlayerUploadFailedIconSponsorBlocker256px.png");
}
}
});
}
function sendRequestToServer(type, address, callback) {
let xmlhttp = new XMLHttpRequest();
xmlhttp.open(type, serverAddress + address, true);
if (callback != undefined) {
xmlhttp.onreadystatechange = function () {
callback(xmlhttp, false);
};
xmlhttp.onerror = function(ev) {
callback(xmlhttp, true);
};
}
//submit this request
xmlhttp.send();
}
function sendRequestToCustomServer(type, fullAddress, callback) {
let xmlhttp = new XMLHttpRequest();
xmlhttp.open(type, fullAddress, true);
if (callback != undefined) {
xmlhttp.onreadystatechange = function () {
callback(xmlhttp, false);
};
xmlhttp.onerror = function(ev) {
callback(xmlhttp, true);
};
}
//submit this request
xmlhttp.send();
}
function getYouTubeVideoID(url) { // Returns with video id else returns false
var regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*/;
var match = url.match(regExp);
var id = new URL(url).searchParams.get("v");
return (match && match[7].length == 11) ? id : false;
}

3
crowdin.yml Normal file
View File

@@ -0,0 +1,3 @@
files:
- source: /public/_locales/en/*
translation: /public/_locales/%two_letters_code%/%original_file_name%

View File

@@ -1,61 +0,0 @@
{
"name": "SponsorBlock - YouTube Sponsorship Blocker",
"short_name": "SponsorBlock",
"version": "1.0.12",
"description": "Skip over sponsorship on YouTube videos. Report sponsors on videos you watch to save the time of others.",
"content_scripts": [
{
"matches": [
"https://*.youtube.com/*"
],
"js": [
"config.js",
"content.js"
],
"css": [
"content.css",
"./libs/Source+Sans+Pro.css"
]
}
],
"web_accessible_resources": [
"icons/LogoSponsorBlocker256px.png",
"icons/IconSponsorBlocker256px.png",
"icons/PlayerStartIconSponsorBlocker256px.png",
"icons/PlayerStopIconSponsorBlocker256px.png",
"icons/PlayerUploadIconSponsorBlocker256px.png",
"icons/PlayerUploadFailedIconSponsorBlocker256px.png",
"icons/upvote.png",
"icons/downvote.png"
],
"permissions": [
"tabs",
"storage",
"notifications",
"https://sponsor.ajay.app/*"
],
"browser_action": {
"default_title": "SponsorBlock",
"default_popup": "popup.html"
},
"background": {
"scripts":[
"config.js",
"background.js"
]
},
"icons": {
"16": "icons/IconSponsorBlocker16px.png",
"32": "icons/IconSponsorBlocker32px.png",
"64": "icons/LogoSponsorBlocker64px.png",
"128": "icons/LogoSponsorBlocker128px.png",
"256": "icons/LogoSponsorBlocker256px.png"
},
"browser_specific_settings": {
"gecko": {
"id": "sponsorBlocker@ajay.app",
"strict_min_version": "57.0"
}
},
"manifest_version": 2
}

BIN
icon.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

8
jest.config.js Normal file
View File

@@ -0,0 +1,8 @@
module.exports = {
"roots": [
"src"
],
"transform": {
"^.+\\.ts$": "ts-jest"
},
};

View File

@@ -1,55 +0,0 @@
{
"name": "SponsorBlock - YouTube Sponsorship Blocker",
"short_name": "SponsorBlock",
"version": "1.0.12",
"description": "Skip over sponsorship on YouTube videos. Report sponsors on videos you watch to save the time of others.",
"content_scripts": [
{
"matches": [
"https://*.youtube.com/*"
],
"js": [
"config.js",
"content.js"
],
"css": [
"content.css",
"./libs/Source+Sans+Pro.css"
]
}
],
"web_accessible_resources": [
"icons/LogoSponsorBlocker256px.png",
"icons/IconSponsorBlocker256px.png",
"icons/PlayerStartIconSponsorBlocker256px.png",
"icons/PlayerStopIconSponsorBlocker256px.png",
"icons/PlayerUploadIconSponsorBlocker256px.png",
"icons/PlayerUploadFailedIconSponsorBlocker256px.png",
"icons/upvote.png",
"icons/downvote.png"
],
"permissions": [
"tabs",
"storage",
"notifications",
"https://sponsor.ajay.app/*"
],
"browser_action": {
"default_title": "SponsorBlock",
"default_popup": "popup.html"
},
"background": {
"scripts":[
"config.js",
"background.js"
]
},
"icons": {
"16": "icons/IconSponsorBlocker16px.png",
"32": "icons/IconSponsorBlocker32px.png",
"64": "icons/LogoSponsorBlocker64px.png",
"128": "icons/LogoSponsorBlocker128px.png",
"256": "icons/LogoSponsorBlocker256px.png"
},
"manifest_version": 2
}

View File

@@ -0,0 +1,4 @@
{
"name": "BETA - SponsorBlock"
}

View File

@@ -0,0 +1,8 @@
{
"optional_permissions": [
"declarativeContent"
],
"background": {
"persistent": false
}
}

View File

@@ -0,0 +1,8 @@
{
"browser_specific_settings": {
"gecko": {
"id": "sponsorBlockerBETA@ajay.app"
}
}
}

View File

@@ -0,0 +1,7 @@
{
"browser_specific_settings": {
"gecko": {
"id": "sponsorBlocker@ajay.app"
}
}
}

74
manifest/manifest.json Normal file
View File

@@ -0,0 +1,74 @@
{
"name": "__MSG_fullName__",
"short_name": "SponsorBlock",
"version": "2.0.4.2",
"default_locale": "en",
"description": "__MSG_Description__",
"content_scripts": [{
"run_at": "document_start",
"matches": [
"https://*.youtube.com/*",
"https://www.youtube-nocookie.com/embed/*"
],
"all_frames": true,
"js": [
"./js/vendor.js",
"./js/content.js"
],
"css": [
"content.css",
"./libs/Source+Sans+Pro.css",
"popup.css"
]
}],
"web_accessible_resources": [
"icons/LogoSponsorBlocker256px.png",
"icons/IconSponsorBlocker256px.png",
"icons/PlayerStartIconSponsorBlocker256px.png",
"icons/PlayerStopIconSponsorBlocker256px.png",
"icons/PlayerUploadIconSponsorBlocker256px.png",
"icons/PlayerUploadFailedIconSponsorBlocker256px.png",
"icons/upvote.png",
"icons/downvote.png",
"icons/thumbs_down.svg",
"icons/thumbs_up.svg",
"icons/help.svg",
"icons/report.png",
"icons/close.png",
"icons/beep.ogg",
"icons/PlayerInfoIconSponsorBlocker256px.png",
"icons/PlayerDeleteIconSponsorBlocker256px.png",
"popup.html",
"content.css"
],
"permissions": [
"storage",
"notifications",
"https://sponsor.ajay.app/*"
],
"optional_permissions": [
"*://*/*"
],
"browser_action": {
"default_title": "SponsorBlock",
"default_popup": "popup.html"
},
"background": {
"scripts":[
"./js/vendor.js",
"./js/background.js"
]
},
"icons": {
"16": "icons/IconSponsorBlocker16px.png",
"32": "icons/IconSponsorBlocker32px.png",
"64": "icons/LogoSponsorBlocker64px.png",
"128": "icons/LogoSponsorBlocker128px.png",
"256": "icons/LogoSponsorBlocker256px.png"
},
"options_ui": {
"page": "options/options.html",
"open_in_tab": true
},
"manifest_version": 2
}

13733
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

59
package.json Normal file
View File

@@ -0,0 +1,59 @@
{
"name": "sponsorblock",
"version": "1.0.0",
"description": "",
"main": "background.js",
"dependencies": {
"@types/react": "^16.9.22",
"@types/react-dom": "^16.9.5",
"babel": "^6.23.0",
"babel-core": "^6.26.3",
"babel-loader": "^8.0.6",
"babel-preset-env": "^1.7.0",
"concurrently": "^5.1.0",
"react": "^16.12.0",
"react-dom": "^16.12.0"
},
"devDependencies": {
"web-ext": "^4.2.0",
"@types/chrome": "0.0.91",
"@types/firefox-webext-browser": "70.0.1",
"@types/jest": "^24.0.23",
"@types/jquery": "^3.3.31",
"copy-webpack-plugin": "^5.0.5",
"jest": "^24.9.0",
"ts-jest": "^24.2.0",
"rimraf": "^3.0.0",
"ts-loader": "^6.2.1",
"typescript": "~3.7.3",
"webpack": "~4.41.2",
"webpack-cli": "~3.3.10",
"webpack-merge": "~4.2.2"
},
"scripts": {
"web-run": "npm run web-run:chrome",
"web-sign": "web-ext sign -s dist --id sponsorBlockerBETA@ajay.app",
"web-run:firefox": "cd dist && web-ext run --start-url https://addons.mozilla.org/firefox/addon/ublock-origin/",
"web-run:chrome": "cd dist && web-ext run --start-url https://chrome.google.com/webstore/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm -t chromium",
"build": "npm run build:chrome",
"build:chrome": "webpack --env.browser=chrome --config webpack/webpack.prod.js",
"build:firefox": "webpack --env.browser=firefox --config webpack/webpack.prod.js",
"build:dev": "npm run build:dev:chrome",
"build:dev:chrome": "webpack --env.browser=chrome --config webpack/webpack.dev.js",
"build:dev:firefox": "webpack --env.browser=firefox --config webpack/webpack.dev.js",
"build:watch": "npm run build:watch:chrome",
"build:watch:chrome": "webpack --env.browser=chrome --config webpack/webpack.dev.js --watch",
"build:watch:firefox": "webpack --env.browser=firefox --config webpack/webpack.dev.js --watch",
"dev": "npm run build:dev && concurrently \"npm run web-run\" \"npm run build:watch\"",
"dev:firefox": "npm run build:dev:firefox && concurrently \"npm run web-run:firefox\" \"npm run build:watch:firefox\"",
"clean": "rimraf dist",
"test": "npx jest"
},
"repository": {
"type": "git",
"url": "git+https://github.com/ajayyy/SponsorBlock.git"
},
"author": "Ajay Ramachandran",
"license": "GPL-3.0-only",
"private": true
}

135
popup.css
View File

@@ -1,135 +0,0 @@
* {
font-family: 'Source Sans Pro', sans-serif;
}
h1 {
margin-top: 0px;
}
body {
font-size: 14px;
width: 300px;
background-color: #ffd9d9;
}
.recordingSubtitle {
margin-bottom: 10px;
}
.voteButton {
height: 32px;
margin-right: 15px;
cursor: pointer;
}
.voteButton:hover {
filter: brightness(80%);
}
.greenButton {
background-color:#ec1c1c;
-moz-border-radius:28px;
-webkit-border-radius:28px;
border-radius:28px;
border:1px solid #d31919;
display:inline-block;
cursor:pointer;
color:#ffffff;
font-size:16px;
padding:8px 37px;
text-decoration:none;
text-shadow:0px 0px 0px #662727;
}
.greenButton:hover {
background-color:#bf2a2a;
}
.greenButton:focus {
outline: none;
background-color:#bf2a2a;
}
.greenButton:active {
position:relative;
top:1px;
}
.dangerButton {
-moz-box-shadow:inset 0px 1px 0px 0px #cf866c;
-webkit-box-shadow:inset 0px 1px 0px 0px #cf866c;
box-shadow:inset 0px 1px 0px 0px #cf866c;
background-color:#d0451b;
-moz-border-radius:3px;
-webkit-border-radius:3px;
border-radius:3px;
border:1px solid #942911;
display:inline-block;
cursor:pointer;
color:#ffffff;
font-size:13px;
padding:6px 24px;
text-decoration:none;
text-shadow:0px 1px 0px #854629;
}
.dangerButton:hover {
background-color:#bc3315;
}
.dangerButton:focus {
outline: none;
background-color:#bc3315;
}
.dangerButton:active {
position:relative;
top:1px;
}
.warningButton {
-moz-box-shadow:inset 0px 1px 0px 0px #cfbd6c;
-webkit-box-shadow:inset 0px 1px 0px 0px #cfbd6c;
box-shadow:inset 0px 1px 0px 0px #cfbd6c;
background-color:#d0821b;
-moz-border-radius:3px;
-webkit-border-radius:3px;
border-radius:3px;
border:1px solid #948b11;
display:inline-block;
cursor:pointer;
color:#ffffff;
font-size:13px;
padding:6px 24px;
text-decoration:none;
text-shadow:0px 1px 0px #856829;
}
.warningButton:hover {
background-color:#bc8215;
}
.warningButton:focus {
outline: none;
background-color:#bc8215;
}
.warningButton:active {
position:relative;
top:1px;
}
.smallButton {
background-color:#f9902d;
-moz-border-radius:3px;
-webkit-border-radius:3px;
border-radius:3px;
border:1px solid #f9a72d;
display:inline-block;
cursor:pointer;
color:#ffffff;
font-size:14px;
padding:6px 10px;
text-decoration:none;
}
.smallButton:hover {
background-color:#fa9806;
}
.smallButton:focus {
outline: none;
background-color:#fa9806;
}
.smallButton:active {
position:relative;
top:1px;
}

View File

@@ -1,150 +0,0 @@
<html>
<head>
<title>Set Page Color Popup</title>
<link rel="stylesheet" type="text/css" href="/libs/Source+Sans+Pro.css"/>
<link rel="stylesheet" type="text/css" href="popup.css"/>
</head>
<center>
<div id="app">
<img src="icons/LogoSponsorBlocker256px.png" height="64px"/>
<h1>SponsorBlock</h1>
<!-- Loading text -->
<p id="loadingIndicator">Loading...</p>
<!-- Hidden until loading complete -->
<div id="mainControls" class="main" style="display: none">
<!-- If the video was found in the database -->
<div id="videoFound">
</div>
<div id="downloadedSponsorMessageTimes">
</div>
<br/>
<button id="reportAnIssue" class="dangerButton">Vote On A Sponsor Time</button>
<div id="issueReporterContainer" style="display: none">
<h3 style="margin-top: 0px">Vote On A Sponsor Time</h3>
<div id="issueReporterTimeButtons">
</div>
</div>
<h2 class="recordingSubtitle">Record the times of a sponsorship</h2>
<p>
<span id=sponsorTimesContributionsContainer style="display: none">
So far, you've submitted
<span id="sponsorTimesContributionsDisplay">
0
</span>
<span id="sponsorTimesContributionsDisplayEndWord">
sponsors.
</span>
</span>
<span id=sponsorTimesViewsContainer style="display: none">
You have saved people from
<span id="sponsorTimesViewsDisplay">
0
</span>
<span id="sponsorTimesViewsDisplayEndWord">
sponsor segments.
</span>
</span>
</p>
<p>
Click the button below when the sponsorship starts and ends to record and
submit it to the database.
</p>
<div>
<button id="sponsorStart" class="greenButton">Sponsorship Starts Now</button>
</div>
<sub>Hint: Press the semicolon key while focused on a video report the start/end of a sponsor and quote to submit.</sub>
<div id="submissionSection" style="display: none">
<h3>Latest Sponsor Message Times Chosen</h3>
<b>
<div id="sponsorMessageTimes">
</div>
</b>
<button id="clearTimes" class="smallButton">Clear Times</button>
<br/>
<br/>
<div id="submitTimesContainer" style="display: none">
<button id="submitTimes" class="smallButton">Submit Times</button>
<div id="submitTimesInfoMessageContainer" style="display: none">
<h3 id="submitTimesInfoMessage">
</h3>
</div>
</div>
</div>
<div id="optionsButtonContainer">
<br/>
<br/>
<button id="optionsButton" class="dangerButton">Options</button>
</div>
<div id="options" style="display: none">
<br/>
<h3>Options</h3>
<button id="hideVideoPlayerControls" class="warningButton">Hide Button On YouTube Player</button>
<button id="showVideoPlayerControls" style="display: none" class="warningButton">Show Button On YouTube Player</button>
<br/>
<sub>
This hides the button that appears on the YouTube player to submit sponsors. I can see this being annoying for some
people. Instead of using the button there, this popup can be used to submit sponsors. To hide the notice that appears,
use the button that appears on the notice saying "Don't show this again". You can always enable these settings again
later.
</sub>
<br/>
<br/>
<button id="disableSponsorViewTracking" class="warningButton">Disable Sponsor View Tracking</button>
<button id="enableSponsorViewTracking" style="display: none" class="warningButton">Enable Sponsor View Tracking</button>
<br/>
<sub>
This feature tracks which sponsors you have skipped to let users know how much their submission has helped others and
used as a metric along with upvotes to ensure that spam doesn't get into the database. The extension sends a message
to the server each time you skip a sponsor. Hopefully most people don't change this setting so that the view numbers
are accurate. :)
</sub>
<br/>
<br/>
<button id="showNoticeAgain" style="display: none" class="dangerButton">Show Notice Again</button>
</div>
</div>
</div>
</center>
<!-- Scripts that need to load after the html -->
<script src="config.js"></script>
<script src="popup.js"></script>
</html>

579
popup.js
View File

@@ -1,579 +0,0 @@
// References
var SB = {};
SB.sponsorStart = document.getElementById("sponsorStart");
SB.clearTimes = document.getElementById("clearTimes");
SB.submitTimes = document.getElementById("submitTimes");
SB.showNoticeAgain = document.getElementById("showNoticeAgain");
SB.hideVideoPlayerControls = document.getElementById("hideVideoPlayerControls");
SB.showVideoPlayerControls = document.getElementById("showVideoPlayerControls");
SB.disableSponsorViewTracking = document.getElementById("disableSponsorViewTracking");
SB.enableSponsorViewTracking = document.getElementById("enableSponsorViewTracking");
SB.optionsButton = document.getElementById("optionsButton");
SB.reportAnIssue = document.getElementById("reportAnIssue");
// sponsorTimesContributions
SB.sponsorTimesContributionsContainer = document.getElementById("sponsorTimesContributionsContainer");
SB.sponsorTimesContributionsDisplay = document.getElementById("sponsorTimesContributionsDisplay");
SB.sponsorTimesContributionsDisplayEndWord = document.getElementById("sponsorTimesContributionsDisplayEndWord");
//setup click listeners
SB.sponsorStart.addEventListener("click", sendSponsorStartMessage);
SB.clearTimes.addEventListener("click", clearTimes);
SB.submitTimes.addEventListener("click", submitTimes);
SB.showNoticeAgain.addEventListener("click", showNoticeAgain);
SB.hideVideoPlayerControls.addEventListener("click", hideVideoPlayerControls);
SB.showVideoPlayerControls.addEventListener("click", showVideoPlayerControls);
SB.disableSponsorViewTracking.addEventListener("click", disableSponsorViewTracking);
SB.enableSponsorViewTracking.addEventListener("click", enableSponsorViewTracking);
SB.optionsButton.addEventListener("click", openOptions);
SB.reportAnIssue.addEventListener("click", reportAnIssue);
//if true, the button now selects the end time
var startTimeChosen = false;
//the start and end time pairs (2d)
var sponsorTimes = [];
//current video ID of this tab
var currentVideoID = null;
//is this a YouTube tab?
var isYouTubeTab = false;
//if the don't show notice again variable is true, an option to
// disable should be available
chrome.storage.sync.get(["dontShowNoticeAgain"], function(result) {
let dontShowNoticeAgain = result.dontShowNoticeAgain;
if (dontShowNoticeAgain != undefined && dontShowNoticeAgain) {
SB.showNoticeAgain.style.display = "unset";
}
});
//show proper video player controls option
chrome.storage.sync.get(["hideVideoPlayerControls"], function(result) {
let hideVideoPlayerControls = result.hideVideoPlayerControls;
if (hideVideoPlayerControls != undefined && hideVideoPlayerControls) {
SB.hideVideoPlayerControls.style.display = "none";
SB.showVideoPlayerControls.style.display = "unset";
}
});
//show proper tracking option
chrome.storage.sync.get(["trackViewCount"], function(result) {
let trackViewCount = result.trackViewCount;
if (trackViewCount != undefined && !trackViewCount) {
SB.disableSponsorViewTracking.style.display = "none";
SB.enableSponsorViewTracking.style.display = "unset";
}
});
//get the amount of times this user has contributed and display it to thank them
chrome.storage.sync.get(["sponsorTimesContributed"], function(result) {
if (result.sponsorTimesContributed != undefined) {
if (result.sponsorTimesContributed > 1) {
SB.sponsorTimesContributionsDisplayEndWord.innerText = "sponsors."
} else {
SB.sponsorTimesContributionsDisplayEndWord.innerText = "sponsor."
}
SB.sponsorTimesContributionsDisplay.innerText = result.sponsorTimesContributed;
SB.sponsorTimesContributionsContainer.style.display = "unset";
//get the userID
chrome.storage.sync.get(["userID"], function(result) {
let userID = result.userID;
if (userID != undefined) {
//there are probably some views on these submissions then
//get the amount of views from the sponsors submitted
sendRequestToServer("GET", "/api/getViewsForUser?userID=" + userID, function(xmlhttp) {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
let viewCount = JSON.parse(xmlhttp.responseText).viewCount;
if (viewCount != 0) {
if (viewCount > 1) {
SB.sponsorTimesViewsDisplayEndWord.innerText = "sponsor segments."
} else {
SB.sponsorTimesViewsDisplayEndWord.innerText = "sponsor segment."
}
SB.sponsorTimesViewsDisplay.innerText = viewCount;
SB.sponsorTimesViewsContainer.style.display = "unset";
}
}
});
}
});
}
});
chrome.tabs.query({
active: true,
currentWindow: true
}, loadTabData);
function loadTabData(tabs) {
//set current videoID
currentVideoID = getYouTubeVideoID(tabs[0].url);
if (!currentVideoID) {
//this isn't a YouTube video then
displayNoVideo();
return;
}
//load video times for this video
let sponsorTimeKey = "sponsorTimes" + currentVideoID;
chrome.storage.sync.get([sponsorTimeKey], function(result) {
let sponsorTimesStorage = result[sponsorTimeKey];
if (sponsorTimesStorage != undefined && sponsorTimesStorage.length > 0) {
if (sponsorTimesStorage[sponsorTimesStorage.length - 1] != undefined && sponsorTimesStorage[sponsorTimesStorage.length - 1].length < 2) {
startTimeChosen = true;
SB.sponsorStart.innerHTML = "Sponsorship Ends Now";
}
sponsorTimes = sponsorTimesStorage;
displaySponsorTimes();
//show submission section
document.getElementById("submissionSection").style.display = "unset";
showSubmitTimesIfNecessary();
}
});
//check if this video's sponsors are known
chrome.tabs.sendMessage(
tabs[0].id,
{message: 'isInfoFound'},
infoFound
);
}
function infoFound(request) {
if(chrome.runtime.lastError) {
//This page doesn't have the injected content script, or at least not yet
displayNoVideo();
return;
}
//if request is undefined, then the page currently being browsed is not YouTube
if (request != undefined) {
//this must be a YouTube video
//set variable
isYouTubeTab = true;
//remove loading text
document.getElementById("mainControls").style.display = "unset"
document.getElementById("loadingIndicator").innerHTML = "";
if (request.found) {
document.getElementById("videoFound").innerHTML = "This video's sponsors are in the database!"
displayDownloadedSponsorTimes(request);
} else {
document.getElementById("videoFound").innerHTML = "No sponsors found"
}
}
}
function setVideoID(request) {
//if request is undefined, then the page currently being browsed is not YouTube
if (request != undefined) {
videoID = request.videoID;
}
}
function sendSponsorStartMessage() {
//the content script will get the message if a YouTube page is open
chrome.tabs.query({
active: true,
currentWindow: true
}, tabs => {
chrome.tabs.sendMessage(
tabs[0].id,
{from: 'popup', message: 'sponsorStart'}
);
});
}
chrome.runtime.onMessage.addListener(function (request, sender, callback) {
if (request.message == "time") {
let sponsorTimesIndex = sponsorTimes.length - (startTimeChosen ? 1 : 0);
if (sponsorTimes[sponsorTimesIndex] == undefined) {
sponsorTimes[sponsorTimesIndex] = [];
}
sponsorTimes[sponsorTimesIndex][startTimeChosen ? 1 : 0] = request.time;
let sponsorTimeKey = "sponsorTimes" + currentVideoID;
chrome.storage.sync.set({[sponsorTimeKey]: sponsorTimes});
updateStartTimeChosen();
//display video times on screen
displaySponsorTimes();
//show submission section
document.getElementById("submissionSection").style.display = "unset";
showSubmitTimesIfNecessary();
}
});
//display the video times from the array
function displaySponsorTimes() {
//set it to the message
document.getElementById("sponsorMessageTimes").innerHTML = getSponsorTimesMessage(sponsorTimes);
}
//display the video times from the array at the top, in a different section
function displayDownloadedSponsorTimes(request) {
if (request.sponsorTimes != undefined) {
//set it to the message
document.getElementById("downloadedSponsorMessageTimes").innerHTML = getSponsorTimesMessage(request.sponsorTimes);
//add them as buttons to the issue reporting container
let container = document.getElementById("issueReporterTimeButtons");
for (let i = 0; i < request.sponsorTimes.length; i++) {
let sponsorTimeButton = document.createElement("button");
sponsorTimeButton.className = "warningButton";
sponsorTimeButton.innerText = getFormattedTime(request.sponsorTimes[i][0]) + " to " + getFormattedTime(request.sponsorTimes[i][1]);
let votingButtons = document.createElement("div");
let UUID = request.UUIDs[i];
//thumbs up and down buttons
let voteButtonsContainer = document.createElement("div");
voteButtonsContainer.id = "sponsorTimesVoteButtonsContainer" + UUID;
voteButtonsContainer.setAttribute("align", "center");
voteButtonsContainer.style.display = "none"
let upvoteButton = document.createElement("img");
upvoteButton.id = "sponsorTimesUpvoteButtonsContainer" + UUID;
upvoteButton.className = "voteButton";
upvoteButton.src = chrome.extension.getURL("icons/upvote.png");
upvoteButton.addEventListener("click", () => vote(1, UUID));
let downvoteButton = document.createElement("img");
downvoteButton.id = "sponsorTimesDownvoteButtonsContainer" + UUID;
downvoteButton.className = "voteButton";
downvoteButton.src = chrome.extension.getURL("icons/downvote.png");
downvoteButton.addEventListener("click", () => vote(0, UUID));
//add thumbs up and down buttons to the container
voteButtonsContainer.appendChild(document.createElement("br"));
voteButtonsContainer.appendChild(document.createElement("br"));
voteButtonsContainer.appendChild(upvoteButton);
voteButtonsContainer.appendChild(downvoteButton);
//add click listener to open up vote panel
sponsorTimeButton.addEventListener("click", function() {
voteButtonsContainer.style.display = "unset";
});
container.appendChild(sponsorTimeButton);
container.appendChild(voteButtonsContainer);
//if it is not the last iteration
if (i != request.sponsorTimes.length - 1) {
container.appendChild(document.createElement("br"));
container.appendChild(document.createElement("br"));
}
}
}
}
//get the message that visually displays the video times
function getSponsorTimesMessage(sponsorTimes) {
let sponsorTimesMessage = "";
for (let i = 0; i < sponsorTimes.length; i++) {
for (let s = 0; s < sponsorTimes[i].length; s++) {
let timeMessage = getFormattedTime(sponsorTimes[i][s]);
//if this is an end time
if (s == 1) {
timeMessage = " to " + timeMessage;
} else if (i > 0) {
//add commas if necessary
timeMessage = ", " + timeMessage;
}
sponsorTimesMessage += timeMessage;
}
}
return sponsorTimesMessage;
}
function clearTimes() {
//send new sponsor time state to tab
if (sponsorTimes.length > 0) {
chrome.tabs.query({
active: true,
currentWindow: true
}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {
message: "changeStartSponsorButton",
showStartSponsor: true,
uploadButtonVisible: false
});
});
}
//reset sponsorTimes
sponsorTimes = [];
let sponsorTimeKey = "sponsorTimes" + currentVideoID;
chrome.storage.sync.set({[sponsorTimeKey]: sponsorTimes});
displaySponsorTimes();
//hide submission section
document.getElementById("submissionSection").style.display = "none";
resetStartTimeChosen();
}
function submitTimes() {
//make info message say loading
document.getElementById("submitTimesInfoMessage").innerText = "Loading...";
document.getElementById("submitTimesInfoMessageContainer").style.display = "unset";
if (sponsorTimes.length > 0) {
chrome.runtime.sendMessage({
message: "submitTimes",
videoID: currentVideoID
}, function(response) {
if (response != undefined) {
if (response.statusCode == 200) {
//hide loading message
document.getElementById("submitTimesInfoMessageContainer").style.display = "none";
clearTimes();
} else if(response.statusCode == 400) {
document.getElementById("submitTimesInfoMessage").innerText = "Server said this request was invalid";
document.getElementById("submitTimesInfoMessageContainer").style.display = "unset";
} else if(response.statusCode == 429) {
document.getElementById("submitTimesInfoMessage").innerText = "You have submitted too many sponsor times for this one video, are you sure there are this many?";
document.getElementById("submitTimesInfoMessageContainer").style.display = "unset";
} else if(response.statusCode == 409) {
document.getElementById("submitTimesInfoMessage").innerText = "This has already been submitted before";
document.getElementById("submitTimesInfoMessageContainer").style.display = "unset";
} else {
document.getElementById("submitTimesInfoMessage").innerText = "There was an error submitting your sponsor times, please try again later. Error code " + response.statusCode;
document.getElementById("submitTimesInfoMessageContainer").style.display = "unset";
}
}
});
}
}
function showNoticeAgain() {
chrome.storage.sync.set({"dontShowNoticeAgain": false});
chrome.tabs.query({
active: true,
currentWindow: true
}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {
message: "showNoticeAgain"
});
});
SB.showNoticeAgain.style.display = "none";
}
function hideVideoPlayerControls() {
chrome.storage.sync.set({"hideVideoPlayerControls": true});
chrome.tabs.query({
active: true,
currentWindow: true
}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {
message: "changeVideoPlayerControlsVisibility",
value: true
});
});
SB.hideVideoPlayerControls.style.display = "none";
SB.showVideoPlayerControls.style.display = "unset";
}
function showVideoPlayerControls() {
chrome.storage.sync.set({"hideVideoPlayerControls": false});
chrome.tabs.query({
active: true,
currentWindow: true
}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {
message: "changeVideoPlayerControlsVisibility",
value: false
});
});
SB.hideVideoPlayerControls.style.display = "unset";
SB.showVideoPlayerControls.style.display = "none";
}
function disableSponsorViewTracking() {
chrome.storage.sync.set({"trackViewCount": false});
chrome.tabs.query({
active: true,
currentWindow: true
}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {
message: "trackViewCount",
value: false
});
});
SB.disableSponsorViewTracking.style.display = "none";
SB.enableSponsorViewTracking.style.display = "unset";
}
function enableSponsorViewTracking() {
chrome.storage.sync.set({"trackViewCount": true});
chrome.tabs.query({
active: true,
currentWindow: true
}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {
message: "trackViewCount",
value: true
});
});
SB.enableSponsorViewTracking.style.display = "none";
SB.disableSponsorViewTracking.style.display = "unset";
}
function updateStartTimeChosen() {
//update startTimeChosen variable
if (!startTimeChosen) {
startTimeChosen = true;
SB.sponsorStart.innerHTML = "Sponsorship Ends Now";
} else {
resetStartTimeChosen();
}
}
//set it to false
function resetStartTimeChosen() {
startTimeChosen = false;
SB.sponsorStart.innerHTML = "Sponsorship Starts Now";
}
//hides and shows the submit times button when needed
function showSubmitTimesIfNecessary() {
//check if an end time has been specified for the latest sponsor time
if (sponsorTimes.length > 0 && sponsorTimes[sponsorTimes.length - 1].length > 1) {
//show submit times button
document.getElementById("submitTimesContainer").style.display = "unset";
} else {
//hide submit times button
document.getElementById("submitTimesContainer").style.display = "none";
}
}
//make the options div visisble
function openOptions() {
document.getElementById("optionsButtonContainer").style.display = "none";
document.getElementById("options").style.display = "unset";
}
//this is not a YouTube video page
function displayNoVideo() {
document.getElementById("loadingIndicator").innerHTML = "This probably isn't a YouTube tab, or you clicked too early. " +
"If you know this is a YouTube tab, close this popup and open it again.";
}
function reportAnIssue() {
document.getElementById("issueReporterContainer").style.display = "unset";
SB.reportAnIssue.style.display = "none";
}
function addVoteMessage(message, UUID) {
let container = document.getElementById("sponsorTimesVoteButtonsContainer" + UUID);
//remove all children
while (container.firstChild) {
container.removeChild(container.firstChild);
}
let thanksForVotingText = document.createElement("h2");
thanksForVotingText.innerText = message;
//there are already breaks there
thanksForVotingText.style.marginBottom = "0px";
container.appendChild(thanksForVotingText);
}
function vote(type, UUID) {
//add loading info
addVoteMessage("Loading...", UUID)
//send the vote message to the tab
chrome.runtime.sendMessage({
message: "submitVote",
type: type,
UUID: UUID
}, function(response) {
if (response != undefined) {
//see if it was a success or failure
if (response.successType == 1) {
//success
addVoteMessage("Thanks for voting!", UUID)
} else if (response.successType == 0) {
//failure: duplicate vote
addVoteMessage("You have already voted this way before.", UUID)
} else if (response.successType == -1) {
//failure: duplicate vote
addVoteMessage("A connection error has occured.", UUID)
}
}
});
}
//converts time in seconds to minutes:seconds
function getFormattedTime(seconds) {
let minutes = Math.floor(seconds / 60);
let secondsDisplay = Math.round(seconds - minutes * 60);
if (secondsDisplay < 10) {
//add a zero
secondsDisplay = "0" + secondsDisplay;
}
let formatted = minutes+ ":" + secondsDisplay;
return formatted;
}
function sendRequestToServer(type, address, callback) {
let xmlhttp = new XMLHttpRequest();
xmlhttp.open(type, serverAddress + address, true);
if (callback != undefined) {
xmlhttp.onreadystatechange = function () {
callback(xmlhttp, false);
};
xmlhttp.onerror = function(ev) {
callback(xmlhttp, true);
};
}
//submit this request
xmlhttp.send();
}
function getYouTubeVideoID(url) { // Return video id or false
var regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*/;
var match = url.match(regExp);
return (match && match[7].length == 11) ? match[7] : false;
}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1,148 @@
{
"fullName": {
"message": "SponsorBlock за YouTube - пропускай спонсорства",
"description": "Name of the extension."
},
"Description": {
"message": "Пропускай спонсорствата в YouTube клипове. Докладвай за спонсорства в клиповете които гледате, за да спестите време на други хора.",
"description": "Description of the extension."
},
"400": {
"message": "Сървърът каза, че тази заявка е невалидна"
},
"429": {
"message": "Подали сте прекалено много спонсорства за едно видео, сигурни ли сте, че има толкова много?"
},
"409": {
"message": "Това спонсорство вече е подадено"
},
"channelWhitelisted": {
"message": "Каналът е добавен към Whitelist!"
},
"Sponsor": {
"message": "спонсор"
},
"Sponsors": {
"message": "спонсори"
},
"Segment": {
"message": "част със спонсорство"
},
"Segments": {
"message": "части със спонсорство"
},
"reportButtonTitle": {
"message": "Докладвай"
},
"Dismiss": {
"message": "Отхвърли"
},
"Loading": {
"message": "Зареждане..."
},
"Mins": {
"message": "Минути"
},
"Secs": {
"message": "Секунди"
},
"Hide": {
"message": "Никога не показвай"
},
"hitGoBack": {
"message": "Натиснете \"върни\" за да се върнете където бяхте."
},
"unskip": {
"message": "Върни"
},
"reskip": {
"message": "Пропусни отново"
},
"paused": {
"message": "На пауза"
},
"confirmMSG": {
"message": "За да редактирате или изтриете някои стойности, натиснете на \"инфо\" бутона или отворете изкачащият прозорец на добавката чрез кликване на иконата на добавката в горният ляв ъгъл."
},
"clearThis": {
"message": "Сигурни ли сте, че искате да изчистите това?\n\n"
},
"Unknown": {
"message": "Възникна грешка при подаването на Вашите спонсорски времена, моля опитайте отново по-късно."
},
"sponsorFound": {
"message": "Спонсорите на това видео са в базата данни!"
},
"sponsor404": {
"message": "Няма намерени спонсорства"
},
"sponsorStart": {
"message": "Спонсорството Започва Сега"
},
"sponsorEnd": {
"message": "Спонсорството Започва Сега"
},
"noVideoID": {
"message": "Не е намерено YouTube видео в този раздел. Ако сте сигурни, че това е YouTube раздел, затворете този изскачащ прозорец и го отворете отново. Ако това не проработи, опитайте се да презаредите раздела."
},
"success": {
"message": "Успешно!"
},
"voted": {
"message": "Гласувано!"
},
"connectionError": {
"message": "Възникна грешка с връзката. Код на грешката: "
},
"wantToSubmit": {
"message": "Искате ли да подадете спонсорствата за това видео ID"
},
"leftTimes": {
"message": "Изглежда, че не сте подали някои спонсорства. Върнете се в страницата и ги подайте (те не са изтрити)."
},
"clearTimes": {
"message": "Премахни Спонсорствата"
},
"openPopup": {
"message": "Отворете изскачащия прозорец на SponsorBlock"
},
"SubmitTimes": {
"message": "Подайте спонсорите"
},
"submitCheck": {
"message": "Сигурни ли сте, че искате да подадете това?"
},
"whitelistChannel": {
"message": "Добавяне на канала към Whitelist"
},
"removeFromWhitelist": {
"message": "Премахване на канала от Whitelist"
},
"voteOnTime": {
"message": "Гласуване за спонсорства"
},
"savedPeopleFrom": {
"message": "Вие сте помогнали на хора да пропуснат "
},
"viewLeaderboard": {
"message": "Вижте leaderboard-а"
},
"here": {
"message": "тук"
},
"discordAdvert": {
"message": "Елате в официалния Discord сървър за да давате предложения!"
},
"hideThis": {
"message": "Скрий това"
},
"Options": {
"message": "Настройки"
},
"showButtons": {
"message": "Показване на бутоните в YouTube Player-а"
},
"hideButtons": {
"message": "Скриване на бутоните в YouTube Player-а"
}
}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1,8 @@
{
"Sponsor": {
"message": "sponzor"
},
"Sponsors": {
"message": "sponzoři"
}
}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1,638 @@
{
"fullName": {
"message": "SponsorBlock für YouTube - Überspringe Sponsor Anzeigen",
"description": "Name of the extension."
},
"Description": {
"message": "Überspringe die gesponserten Inhalte in YouTube-Videos. Melde gesponsorte Inhalte in den von dir angesehenen Videos und erspare anderen die Zeit.",
"description": "Description of the extension."
},
"400": {
"message": "Der Server meldet, dass diese Anfrage ungültig war"
},
"429": {
"message": "Du hast zu viele Segmente in diesem Video eingereicht. Sind es wirklich so viele?"
},
"409": {
"message": "Dieser Inhalt wurde bereits eingereicht."
},
"channelWhitelisted": {
"message": "Kanal auf Whitelist gesetzt!"
},
"Sponsor": {
"message": "Sponsor"
},
"Sponsors": {
"message": "Sponsoren"
},
"Segment": {
"message": "gesponsorter Inhalt"
},
"Segments": {
"message": "gesponserten Inhalten"
},
"upvoteButtonInfo": {
"message": "Diesen Beitrag aufwerten"
},
"reportButtonTitle": {
"message": "Melden"
},
"reportButtonInfo": {
"message": "Beitrag als unzulässig melden."
},
"Dismiss": {
"message": "Abbrechen"
},
"Loading": {
"message": "Laden..."
},
"Mins": {
"message": "Minuten"
},
"Secs": {
"message": "Sekunden"
},
"Hide": {
"message": "Verstecken"
},
"hitGoBack": {
"message": "Klicke Zurück um die Aktion rückgängig zu machen."
},
"unskip": {
"message": "Zurück"
},
"reskip": {
"message": "Vorwärts"
},
"paused": {
"message": "Pausiert"
},
"manualPaused": {
"message": "Timer angehalten"
},
"confirmMSG": {
"message": "\n\nUm einzelne Werte zu löschen oder zu ändern, klicke auf den Info-Button, oder öffne die Erweiterungs-Übersicht, indem du das Erweiterungssymbol in der rechten oberen Ecke anklickst."
},
"clearThis": {
"message": "Bist du sicher, dass du Folgendes löschen möchtest?\n\n"
},
"Unknown": {
"message": "Deine Segmente konnten nicht gesendet werden, bitte versuche es später erneut."
},
"sponsorFound": {
"message": "Die gesponsorten Inhalte dieses Videos befinden sich bereits in der Datenbank!"
},
"sponsor404": {
"message": "Keine Sponsoren gefunden"
},
"sponsorStart": {
"message": "Gesponserter Inhalt beginnt"
},
"sponsorEnd": {
"message": "Gesponserter Inhalt endet"
},
"noVideoID": {
"message": "Keine YouTube-Videos in diesem Tab gefunden. Wenn dies ein Youtube-Tab ist, schließe dieses Pop-up und öffne es erneut. Wenn das nicht hilft, versuche den Tab neu zu laden."
},
"success": {
"message": "Erfolg!"
},
"voted": {
"message": "Abgestimmt!"
},
"serverDown": {
"message": "Der Server ist scheinbar offline. Bitte unverzüglich dem Entwickler melden."
},
"connectionError": {
"message": "Ein Verbindungsfehler ist aufgetreten. Fehlermeldung: "
},
"wantToSubmit": {
"message": "Möchtest du die Segmente für die Video ID senden?"
},
"leftTimes": {
"message": "Scheinbar hast du einige Segmente noch nicht gesendet. Kehre zur Seite zurück um sie zu senden (sie sind noch gespeichert)."
},
"clearTimes": {
"message": "Lösche Auswahl"
},
"openPopup": {
"message": "Öffne SponsorBlock-Popup"
},
"SubmitTimes": {
"message": "Diese Zeiten einreichen"
},
"submitCheck": {
"message": "Bist du sicher, dass die Auswahl abgeschickt werden soll?"
},
"whitelistChannel": {
"message": "Kanal auf Whitelist setzen "
},
"removeFromWhitelist": {
"message": "Kanal von der Whitelist entfernen"
},
"voteOnTime": {
"message": "Stimme für Zeiten ab"
},
"recordTimes": {
"message": "Lege das Zeitfenster eines gesponsorten Inhalts fest"
},
"soFarUHSubmited": {
"message": "Gemeldet wurden von dir bisher"
},
"savedPeopleFrom": {
"message": "Du hast andere Benutzer bewahrt vor"
},
"viewLeaderboard": {
"message": "Siehe Rangliste"
},
"here": {
"message": "hier"
},
"recordTimesDescription": {
"message": "Klicke den Knopf unten, wenn der gesponsorte Inhalt beginnt und endet, um aufzunehmen und\n einzusenden"
},
"popupHint": {
"message": "Hinweis: In den Optionen lässt sich eine Taste für das Festlegen von Anfang/Ende des gesponsorten Inhalts, sowie für das Einsenden festlegen"
},
"lastTimes": {
"message": "Letzte ausgewählte Zeitabschnitte"
},
"clearTimesButton": {
"message": "Zeiten löschen"
},
"submitTimesButton": {
"message": "Zeiten einsenden"
},
"publicStats": {
"message": "Dies ist wichtig für die öffentliche Nutzerstatistik. Siehe"
},
"setUsername": {
"message": "Alias festlegen"
},
"discordAdvert": {
"message": "Tritt dem offiziellen Discord-Kanal bei und teile Anregungen und Feedback!"
},
"hideThis": {
"message": "Verstecken"
},
"Options": {
"message": "Optionen"
},
"showButtons": {
"message": "Knöpfe in YouTube-Leiste zeigen"
},
"hideButtons": {
"message": "Knöpfe in YouTube-Leiste verstecken"
},
"hideButtonsDescription": {
"message": "Die Einstellung versteckt den Einsende-Knopf in der Youtube-Leiste. Ich kann verstehen, weshalb manchen diese Funktion\n an dieser Stelle stört. Stattdessen kann dafür dieses Pop-up genutzt werden. Um die transparente Benachrichtigung zu verstecken, klicke auf den \"Verstecken\"-Knopf \n der Benachrichtigung. Diese Einstellungen können wieder rückgängig gemacht werden."
},
"showInfoButton": {
"message": "Zeige Info-Knopf in Youtube-Leiste"
},
"hideInfoButton": {
"message": "Verstecke Info-Knopf in Youtube-Leiste"
},
"whatInfoButton": {
"message": "Dieser Knopf öffnet ein Pop-up auf der Youtube-Seite."
},
"hideDeleteButton": {
"message": "Verstecke Löschen-Knopf in Youtube Leiste"
},
"showDeleteButton": {
"message": "Zeige Löschen-Knopf in Youtube Leiste"
},
"whatDeleteButton": {
"message": "Dieser Knopf entfernt sämtlich Segmente in der Youtube-Zeitleiste."
},
"disableViewTracking": {
"message": "Deaktiviere das Mitzählen übersprungener Sponsoren"
},
"enableViewTracking": {
"message": "Aktiviere das Mitzählen übersprungener Sponsoren"
},
"whatViewTracking": {
"message": "Diese Funktion hält fest, welche Sponsoren von dir übersprungen wurden und hilft anderen zu erfahren, was ihre Einsendungen bewirkt haben.\n Außerdem dienen die Werte zusammen mit positiven Rückmeldungen als Anti-Spam-Schutz. \n Wenn ein gesponsorter Inhalt übersprungen wird, sendet die Erweiterung eine Nachricht an den Server. \n Hoffentlich wird diese Funktion auch weiterhin genutzt, damit der Algorithmus funktioniert. :)"
},
"showNotice": {
"message": "Benachrichtigung wieder zeigen"
},
"longDescription": {
"message": "SponsorBlock ist eine Erweiterung, die gesponserte Segmente von YouTube Videos überspringt. SponsorBlock ist eine durch Crowdsourcing betriebene Browsererweiterung, die es jedem erlaubt, die Beginn- und Endzeitpunkte von gesponserten Segmenten in YouTube Videos einzureichen. Nachdem diese Information eingereicht wurde, wird das Segment für alle anderen Nutzer mit dieser Erweiterung direkt übersprungen.\n\nDu kannst auch den Vorspann, Nachspann, Erinnerungen zu abonnieren und andere Kategorien überspringen.",
"description": "Full description of the extension on the store pages."
},
"website": {
"message": "Webseite",
"description": "Used on Firefox Store Page"
},
"sourceCode": {
"message": "Quellcode",
"description": "Used on Firefox Store Page"
},
"noticeUpdate": {
"message": "Die Benachrichtigung wurde verbessert!",
"description": "The first line of the message displayed after the notice was upgraded."
},
"noticeUpdate2": {
"message": "Gefällt dir immer noch nicht? Dann klicke den Verstecken-Knopf.",
"description": "The second line of the message displayed after the notice was upgraded."
},
"setStartSponsorShortcut": {
"message": "Segment aufnehmen Taste festlegen"
},
"setSubmitKeybind": {
"message": "Segment einsenden Taste festlegen"
},
"keybindDescription": {
"message": "Taste drücken, um festzulegen"
},
"keybindDescriptionComplete": {
"message": "Die Taste wurde festgelegt auf: "
},
"0": {
"message": "Verbindungsüberschreibung. Überprüfe deine Internetverbindung. Bist du mit dem Internet verbunden, ist der Server wahrscheinlich offline."
},
"disableSkipping": {
"message": "SponsorBlock ausschalten"
},
"enableSkipping": {
"message": "SponsorBlock einschalten"
},
"yourWork": {
"message": "Deine Statistik",
"description": "Used to describe the section that will show you the statistics from your submissions."
},
"502": {
"message": "Der Server scheint überlastet zu sein. Probiere es in ein paar Sekunden erneut."
},
"errorCode": {
"message": "Fehlermeldung: "
},
"skip": {
"message": "Überspringen"
},
"skipped": {
"message": "Übersprungen"
},
"disableAutoSkip": {
"message": "Auto-Überspringen deaktivieren"
},
"enableAutoSkip": {
"message": "Automatisches Überspringen aktivieren"
},
"autoSkipDescription": {
"message": "Auto-Überspringen überspringt gesponsorte Inhalte für dich. Wenn deaktiviert, fragt die Benachrichtigung, ob übersprungen werden soll."
},
"audioNotification": {
"message": "Audio-Benachrichtigung beim Überspringen"
},
"audioNotificationDescription": {
"message": "Audio-Benachrichtigung beim Überspringen wird einen Ton abspielen, wenn ein Sponsor übersprungen wird. Wenn deaktiviert (oder wenn Automatisches-Überspringen deaktiviert ist), wird kein Ton abgespielt."
},
"showTimeWithSkips": {
"message": "Zeit mit entfernten Überspringungen anzeigen"
},
"showTimeWithSkipsDescription": {
"message": "Diese Zeit wird in Klammern neben der aktuellen Zeit in der Suchleiste angezeigt. Diese Zeit die gesamte Dauer des Videos ohne jeglicher Segmente. Dies inkludiert auch Segmente, die als \"In Suchleiste anzeigen\" markiert sind."
},
"youHaveSkipped": {
"message": "Du übersprangst "
},
"youHaveSaved": {
"message": "Du erspartest dir "
},
"minLower": {
"message": "Minute"
},
"minsLower": {
"message": "Minuten"
},
"hourLower": {
"message": "Stunde"
},
"hoursLower": {
"message": "Stunden"
},
"youHaveSavedTime": {
"message": "Du erspartest anderen"
},
"youHaveSavedTimeEnd": {
"message": " ihrer Zeit."
},
"guildlinesSummary": {
"message": "- Stellen Sie sicher, dass Ihr Segment nur kostenpflichtige Werbeaktionen enthält, nichts anderes.\n- Stellen Sie sicher, dass das Überspringen dieses Segments wertvolle Inhalte nicht abschneiden wird\n- Wenn das ganze Video ein Sponsor ist, bitte nicht melden. Ein vollständiges Video-Reporting-System wird bald herauskommen.\n- Bitte melde keine Haftungsausschlüsse, die Voreingenommenheit zeigen könnten (falls ein Bewertungsvideo gesponsert wird, überspringen Sie nicht, wenn sie dies erwähnen)."
},
"statusReminder": {
"message": "Überprüfen Sie status.sponsor.ajay.app für den Serverstatus."
},
"changeUserID": {
"message": "Benutzer ID importieren/exportieren"
},
"whatChangeUserID": {
"message": "Dies sollte privat gehalten werden. Dies ist wie ein Passwort und sollte nicht mit jemandem geteilt werden."
},
"setUserID": {
"message": "Benutzer ID festlegen"
},
"userIDChangeWarning": {
"message": "Warnung: Das Ändern der Benutzer ID ist permanent. Sind Sie sicher, dass Sie dies tun möchten? Stellen Sie sicher, dass Sie von Ihren alten Benutzer ID eine Sicherheitskopie machen, nur für den Fall."
},
"createdBy": {
"message": "Erstellt von"
},
"autoSkip": {
"message": "Automatisch überspringen"
},
"showSkipNotice": {
"message": "Zeige Hinweis nach dem Übersprung eines Sponsors"
},
"keybindCurrentlySet": {
"message": ". Es ist derzeit gesetzt auf:"
},
"supportInvidious": {
"message": "Unterstütze Invidious"
},
"supportInvidiousDescription": {
"message": "Invidious (invidio.us) ist ein Drittanbieter-YouTube-Client. Um Support zu aktivieren, müssen Sie die zusätzlichen Berechtigungen akzeptieren. Dies funktioniert NICHT im Incongnito-modus auf Chrome und anderen Chromium-Varianten."
},
"optionsInfo": {
"message": "Invidious Support aktivieren, Autoskip deaktivieren, Tasten ausblenden und vieles mehr."
},
"addInvidiousInstance": {
"message": "Invidious-Instanzen hinzufügen"
},
"addInvidiousInstanceDescription": {
"message": "Fügen Sie eine benutzerdefinierte Instanz von Invidious hinzu. Dies muss mit NUR der Domain formatiert werden. Beispiel: invidious.ajay.app"
},
"add": {
"message": "Hinzufügen"
},
"addInvidiousInstanceError": {
"message": "Dies ist eine ungültige Domain. Dies sollte NUR den Domain-Teil beinhalten. Beispiel: invidious.ajay.app"
},
"resetInvidiousInstance": {
"message": "Invidious Instanzliste zurücksetzen"
},
"resetInvidiousInstanceAlert": {
"message": "Du bist dabei, die Liste der \"Invidious\" Instanzen zurückzusetzen"
},
"currentInstances": {
"message": "Aktuelle Instanzen:"
},
"minDuration": {
"message": "Minimale Dauer (Sekunden):"
},
"minDurationDescription": {
"message": "Sponsor Segmente, die kürzer als der festgelegte Wert sind, werden nicht übersprungen oder im Player angezeigt."
},
"shortCheck": {
"message": "Die folgende Einreichung ist kürzer als Ihre Mindestdauer. Dies könnte bedeuten, dass dies bereits eingereicht wurde und aufgrund dieser Option einfach ignoriert wird. Sind Sie sicher, dass Sie einreichen möchten?"
},
"showUploadButton": {
"message": "Upload-Button anzeigen"
},
"whatUploadButton": {
"message": "Diese Schaltfläche erscheint auf dem YouTube-Player, nachdem Sie einen Zeitstempel ausgewählt haben und bereit sind zu senden."
},
"customServerAddress": {
"message": "SponsorBlock Server-Adresse"
},
"customServerAddressDescription": {
"message": "Die Ardesse die SponsorBlock verwendet um Anfragen an den Server zu senden. Solange sie keine eigene Serverinstanz haben sollte das nicht geändert werden."
},
"save": {
"message": "Speichern"
},
"reset": {
"message": "Zurücksetzen"
},
"customAddressError": {
"message": "Diese Adresse ist nicht in der richtigen Form. Stellen Sie sicher, dass Sie http:// oder https:// am Anfang haben und keine abschließenden Schrägstriche haben."
},
"areYouSureReset": {
"message": "Sind sie sicher dass sie das zurücksetzen wollen?"
},
"confirmPrivacy": {
"message": "Das Video wurde als ungelistet erkannt. Klicken Sie auf Abbrechen, wenn Sie nicht nach Sponsoren suchen möchten."
},
"unlistedCheck": {
"message": "Nicht gelistete Videos ignorieren"
},
"whatUnlistedCheck": {
"message": "Diese Einstellung verlangsamt den Sponsor-Block erheblich. Sponsor-Suchvorgänge erfordern das Senden der Video-ID an den Server. Wenn Sie sich Sorgen darüber machen, dass nicht gelistete Video-IDs über das Internet gesendet werden, aktivieren Sie diese Option."
},
"mobileUpdateInfo": {
"message": "m.youtube.com wird jetzt unterstützt"
},
"exportOptions": {
"message": "Import/Export aller Optionen"
},
"whatExportOptions": {
"message": "Dies ist Ihre gesamte Konfiguration in JSON. Dies schließt Ihre Benutzer-ID ein, also sollten Sie diese klug teilen."
},
"setOptions": {
"message": "Optionen einstellen"
},
"exportOptionsWarning": {
"message": "Warnung: Das Ändern der Benutzer ID ist permanent. Sind Sie sicher, dass Sie dies tun möchten? Stellen Sie sicher, dass Sie von Ihren alten Benutzer ID eine Sicherheitskopie machen, nur für den Fall."
},
"incorrectlyFormattedOptions": {
"message": "Dieses JSON ist nicht korrekt formatiert. Ihre Einstellungen wurden nicht geändert."
},
"confirmNoticeTitle": {
"message": "Segment absenden"
},
"submit": {
"message": "Senden"
},
"cancel": {
"message": "Abbrechen"
},
"delete": {
"message": "Löschen"
},
"preview": {
"message": "Vorschau"
},
"edit": {
"message": "Bearbeiten"
},
"copyDebugInformation": {
"message": "Debug-Informationen in Zwischenablage kopieren"
},
"copyDebugInformationFailed": {
"message": "Fehler beim Schreiben in die Zwischenablage"
},
"copyDebugInformationOptions": {
"message": "Kopiert Informationen in die Zwischenablage einem Entwickler zur Verfügung gestellt werden, wenn ein Bug / wenn ein Entwickler es anfordert. Sensitive Informationen wie Ihre Benutzer-ID, Kanäle auf der Whitelist-Liste und benutzerdefinierte Server-Adresse wurden entfernt. Es enthält jedoch Informationen wie den Useragent, den Browser, das Betriebssystem und die Versionsnummer der Erweiterung. "
},
"copyDebugInformationComplete": {
"message": "Die Debug-Informationen wurden in das Clip-Board kopiert. Sie können alle Informationen entfernen, die Sie nicht teilen möchten. Speichern Sie diese in einer Textdatei oder fügen Sie sie in den Fehlerbericht ein."
},
"theKey": {
"message": "Die Taste"
},
"keyAlreadyUsed": {
"message": "an eine andere Aktion gebunden. Bitte wählen Sie eine andere Taste."
},
"to": {
"message": "bis",
"description": "Used between sponsor times. Example: 1:20 to 1:30"
},
"category_sponsor": {
"message": "Sponsor"
},
"category_sponsor_description": {
"message": "Bezahlte Promotion, bezahlte Empfehlungen und direkte Werbung. Nicht für Selbstpromotion oder kostenlose Shoutouts an Ursachen/Webseiten/Produkte, die sie mögen."
},
"category_intro": {
"message": "Unterbrechung/Vorspann"
},
"category_intro_description": {
"message": "Ein Intervall ohne relevanten Inhalt. Beispiele dafür wären eine Pause, ein statisches Bild oder sich wiederholende Animationen. Dies sollte nicht für Übergänge benutzt werden, die Informationen erhalten oder für Musikvideos."
},
"category_intro_short": {
"message": "Unterbrechung"
},
"category_outro": {
"message": "Endkarten/Credits"
},
"category_outro_description": {
"message": "Credits oder wenn die YouTube-Endkarten erscheinen. Nicht für gesprochene Fazits. Dies sollte keine nützlichen Inhalte beinhalten. Dies sollte nicht für Musikvideos verwendet werden."
},
"category_interaction": {
"message": "Interaktions-Erinnerung (Abonnieren)"
},
"category_interaction_description": {
"message": "Wenn es eine kurze Erinnerung gibt, zu abonnieren oder zu folgen in der Mitte des Videos. Wenn es lange ist oder etwas Konkretes ist, sollte es stattdessen unter Selbstpromotion stehen."
},
"category_interaction_short": {
"message": "Interaktions-Erinnerung"
},
"category_selfpromo": {
"message": "Unbezahlt/Eigenwerbung"
},
"category_selfpromo_description": {
"message": "Ähnlich wie bei \"Sponsor\" mit Ausnahme von unbezahlten oder Selbstpromotion. Dies beinhaltet Abschnitte über Waren, Spenden oder Informationen darüber, mit wem sie zusammengearbeitet haben."
},
"category_music_offtopic": {
"message": "Musik: Nicht-Musik-Abschnitt"
},
"category_music_offtopic_description": {
"message": "Nur für den Einsatz in Musikvideos. Dies beinhaltet Einführungen oder Outros in Musikvideos."
},
"category_music_offtopic_short": {
"message": "Nicht-Musik"
},
"category_livestream_messages": {
"message": "Livestream: Spenden/Nachrichten vorlesen"
},
"category_livestream_messages_short": {
"message": "Nachrichten lesen"
},
"disable": {
"message": "Deaktivieren"
},
"manualSkip": {
"message": "Manuelles Überspringen"
},
"showOverlay": {
"message": "Vor-/Rücklaufleiste anzeigen"
},
"colorFormatIncorrect": {
"message": "Ihre Farbe ist falsch formatiert. Sie sollte ein 3-6-stelliger Hex-Code mit einem Zahlenzeichen am Anfang sein."
},
"previewColor": {
"message": "Vorschau Farbe",
"description": "Referring to submissions that have not been sent to the server yet."
},
"seekBarColor": {
"message": "Suchleisten-Farbe"
},
"category": {
"message": "Kategorie"
},
"skipOption": {
"message": "Option zum Überspringen",
"description": "Used on the options page to describe the ways to skip the segment (auto skip, manual, etc.)"
},
"enableTestingServer": {
"message": "Beta Testing Server aktivieren"
},
"whatEnableTestingServer": {
"message": "Deine Einreichungen und Stimmen werden NICHT für den Hauptserver geltend. Benutze dies nur für Tests."
},
"testingServerWarning": {
"message": "Alle Einreichungen und Stimmen werden NICHT ZÄHLEN gegenüber dem Hauptserver während der Verbindung zum Test-Server. Stellen Sie sicher, dass sie dies deaktivieren, wenn Sie echte Einreichungen machen möchten."
},
"bracketNow": {
"message": "(jetzt)"
},
"moreCategories": {
"message": "Weitere Kategorien"
},
"chooseACategory": {
"message": "Wähle eine Kategorie"
},
"youMustSelectACategory": {
"message": "Sie müssen eine Kategorie für alle Segmente auswählen, die Sie abschicken!"
},
"bracketEnd": {
"message": "(Ende)"
},
"hiddenDueToDownvote": {
"message": "versteckt: downvote"
},
"hiddenDueToDuration": {
"message": "verborgen: zu kurz"
},
"channelDataNotFound": {
"message": "Kanal-ID wurde noch nicht geladen."
},
"adblockerIssue": {
"message": "Irgendwas hält SponsorBlock davon ab, die Videodaten abzurufen. Möglicherweise ist das dein Werbeblocker. Mehr Infos: https://github.com/ajayyy/SponsorBlock/wiki/Fix-Ad-Blocker-Blocking-SponsorBlock's-Requests"
},
"itCouldBeAdblockerIssue": {
"message": "Falls dies weiterhin geschieht, könnte dies durch Ihren Werbeblocker verursacht werden. Bitte überprüfen Sie https://github.com/ajayyy/SponsorBlock/wiki/Fix-Ad-Blocker-Blocking-SponsorBlock's-Requests"
},
"forceChannelCheck": {
"message": "Kanalprüfung erzwingen vor dem Überspringen von Sponsoren"
},
"whatForceChannelCheck": {
"message": "Standardmäßig überspringt er Sponsoren sofort, bevor er überhaupt weiß, was der Kanal ist. Standardmäßig werden auf den Kanälen auf der Whitelist-Liste einige null Sekunden Sponsoren übersprungen. Das Aktivieren dieser Option verhindert dies, aber das Überspringen hat eine leichte Verzögerung, da die Kanal-ID einige Zeit in Anspruch nehmen kann. Diese Verzögerung kann bei schnellen Internetverbindungen unauffällig sein."
},
"forceChannelCheckPopup": {
"message": "Bedenken Sie die Aktivierung der Force-Channel-Prüfung vor dem Überspringen von Sponsoren"
},
"downvoteDescription": {
"message": "Nicht korrektes/Falsches Timing"
},
"incorrectCategory": {
"message": "Falsche Kategorie"
},
"nonMusicCategoryOnMusic": {
"message": "Dieses Video ist als Musik kategorisiert. Sind Sie sicher, dass Sie Segmente mit Nicht-Musikkategorien einreichen möchten? Wenn dieses Video nicht wirklich Musik ist, sollten Sie dieses Segment nicht einreichen. Bitte lesen Sie die Richtlinien, wenn Sie verwirrt sind."
},
"multipleSegments": {
"message": "Mehrere Segmente"
},
"guidelines": {
"message": "Richtlinien"
},
"readTheGuidelines": {
"message": "Lesen Sie die Richtlinien!!",
"description": "Show the first time they submit or if they are \"high risk\""
},
"categoryUpdate1": {
"message": "Kategorien sind hier!"
},
"categoryUpdate2": {
"message": "Öffnen Sie die Optionen um Intros, Outros, Merch usw. zu überspringen."
},
"unsubmittedWarning": {
"message": "Nicht eingereichte Segment-Benachrichtigung"
},
"unsubmittedWarningDescription": {
"message": "Senden Sie eine Benachrichtigung, wenn Sie ein Video mit nicht hochgeladenen Segmenten verlassen"
}
}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1,638 @@
{
"fullName": {
"message": "SponsorBlock for YouTube - Skip Sponsorships",
"description": "Name of the extension."
},
"Description": {
"message": "Skip sponsorships, subscription begging and more on YouTube videos. Report sponsors on videos you watch to save others' time.",
"description": "Description of the extension."
},
"400": {
"message": "Server said this request was invalid"
},
"429": {
"message": "You have submitted too many sponsor times for this one video, are you sure there are this many?"
},
"409": {
"message": "This has already been submitted before"
},
"channelWhitelisted": {
"message": "Channel Whitelisted!"
},
"Sponsor": {
"message": "sponsor"
},
"Sponsors": {
"message": "sponsors"
},
"Segment": {
"message": "sponsor segment"
},
"Segments": {
"message": "sponsor segments"
},
"upvoteButtonInfo": {
"message": "Upvote this submission"
},
"reportButtonTitle": {
"message": "Report"
},
"reportButtonInfo": {
"message": "Report this submission as incorrect."
},
"Dismiss": {
"message": "Dismiss"
},
"Loading": {
"message": "Loading..."
},
"Mins": {
"message": "Minutes"
},
"Secs": {
"message": "Seconds"
},
"Hide": {
"message": "Never Show"
},
"hitGoBack": {
"message": "Hit unskip to get to where you came from."
},
"unskip": {
"message": "Unskip"
},
"reskip": {
"message": "Reskip"
},
"paused": {
"message": "Paused"
},
"manualPaused": {
"message": "Timer Stopped"
},
"confirmMSG": {
"message": "To edit or delete individual values, click the info button or open the extension popup by clicking the extension icon in the top right corner."
},
"clearThis": {
"message": "Are you sure you want to clear this?\n\n"
},
"Unknown": {
"message": "There was an error submitting your sponsor times, please try again later."
},
"sponsorFound": {
"message": "This video's sponsors are in the database!"
},
"sponsor404": {
"message": "No sponsors found"
},
"sponsorStart": {
"message": "Sponsorship Starts Now"
},
"sponsorEnd": {
"message": "Sponsorship Ends Now"
},
"noVideoID": {
"message": "No YouTube video found at this tab. If you know this is a YouTube tab, close this popup and open it again. If that does not work, try reloading the tab."
},
"success": {
"message": "Success!"
},
"voted": {
"message": "Voted!"
},
"serverDown": {
"message": "It seems the server is down. Contact the dev immediately."
},
"connectionError": {
"message": "A connection error has occured. Error code: "
},
"wantToSubmit": {
"message": "Do you want to submit the sponsor times for video id"
},
"leftTimes": {
"message": "You seem to have left some sponsor times unsubmitted. Go back to that page to submit them (they are not deleted)."
},
"clearTimes": {
"message": "Clear Sponsor Times"
},
"openPopup": {
"message": "Open SponsorBlock Popup"
},
"SubmitTimes": {
"message": "Submit Sponsor Times"
},
"submitCheck": {
"message": "Are you sure you want to submit this?"
},
"whitelistChannel": {
"message": "Whitelist Channel"
},
"removeFromWhitelist": {
"message": "Remove Channel From Whitelist"
},
"voteOnTime": {
"message": "Vote On A Sponsor Time"
},
"recordTimes": {
"message": "Record the times of a sponsorship"
},
"soFarUHSubmited": {
"message": "So far, you've submitted"
},
"savedPeopleFrom": {
"message": "You have saved people from "
},
"viewLeaderboard": {
"message": "View the leaderboard"
},
"here": {
"message": "here"
},
"recordTimesDescription": {
"message": "Click the button below when the sponsorship starts and ends to record and\nsubmit it to the database."
},
"popupHint": {
"message": "Hint: Press the semicolon key while focused on a video to report the start/end of a sponsor and quote to submit. (This can be changed in the options)"
},
"lastTimes": {
"message": "Latest Sponsor Message Times Chosen"
},
"clearTimesButton": {
"message": "Clear Times"
},
"submitTimesButton": {
"message": "Submit Times"
},
"publicStats": {
"message": "This is used on the public stats page to show off how much you've contributed. See it"
},
"setUsername": {
"message": "Set Username"
},
"discordAdvert": {
"message": "Come join the official discord server to give suggestions and feedback!"
},
"hideThis": {
"message": "Hide this"
},
"Options": {
"message": "Options"
},
"showButtons": {
"message": "Show Buttons On YouTube Player"
},
"hideButtons": {
"message": "Hide Buttons On YouTube Player"
},
"hideButtonsDescription": {
"message": "This hides the buttons that appear on the YouTube player to submit skip segments."
},
"showInfoButton": {
"message": "Show Info Button On YouTube Player"
},
"hideInfoButton": {
"message": "Hide Info Button On YouTube Player"
},
"whatInfoButton": {
"message": "This is the button that opens up a popup in the YouTube page."
},
"hideDeleteButton": {
"message": "Hide Delete Button On YouTube Player"
},
"showDeleteButton": {
"message": "Show Delete Button On YouTube Player"
},
"whatDeleteButton": {
"message": "This is the button on the YouTube player that will clear all your un-submitted segments for the current video."
},
"disableViewTracking": {
"message": "Disable Sponsor Skip Count Tracking"
},
"enableViewTracking": {
"message": "Enable Sponsor Skip Count Tracking"
},
"whatViewTracking": {
"message": "This feature tracks which sponsors you have skipped to let users know how much their submission has helped others and\nused as a metric along with upvotes to ensure that spam doesn't get into the database. The extension sends a message\nto the server each time you skip a sponsor. Hopefully most people don't change this setting so that the view numbers are accurate. :)"
},
"showNotice": {
"message": "Show Notice Again"
},
"longDescription": {
"message": "SponsorBlock lets you skip over sponsors, intros, outros subscription reminders, and other annoying parts of YouTube videos. SponsorBlock is a crowdsourced browser extension that let's anyone submit the start and end time's of sponsored segments and other segments of YouTube videos. Once one person submits this information, everyone else with this extension will skip right over the sponsored segment. You can also skip over non music sections of music videos.",
"description": "Full description of the extension on the store pages."
},
"website": {
"message": "Website",
"description": "Used on Firefox Store Page"
},
"sourceCode": {
"message": "Source Code",
"description": "Used on Firefox Store Page"
},
"noticeUpdate": {
"message": "The notice has been upgraded!",
"description": "The first line of the message displayed after the notice was upgraded."
},
"noticeUpdate2": {
"message": "If you still don't like it, hit the never show button.",
"description": "The second line of the message displayed after the notice was upgraded."
},
"setStartSponsorShortcut": {
"message": "Set key for start sponsor keybind"
},
"setSubmitKeybind": {
"message": "Set key for submission keybind"
},
"keybindDescription": {
"message": "Select a key by typing it"
},
"keybindDescriptionComplete": {
"message": "The keybind has been set to: "
},
"0": {
"message": "Connection Timeout. Check your internet connection. If your internet is working, the server is probably overloaded or down."
},
"disableSkipping": {
"message": "Disable SponsorBlock"
},
"enableSkipping": {
"message": "Enable SponsorBlock"
},
"yourWork": {
"message": "Your Work",
"description": "Used to describe the section that will show you the statistics from your submissions."
},
"502": {
"message": "The server seems to be overloaded. Try again in a few seconds."
},
"errorCode": {
"message": "Error Code: "
},
"skip": {
"message": "Skip"
},
"skipped": {
"message": "Skipped"
},
"disableAutoSkip": {
"message": "Disable Auto Skip"
},
"enableAutoSkip": {
"message": "Enable Auto Skip"
},
"autoSkipDescription": {
"message": "Auto skip will skip sponsors for you. If disabled, a notice will appear asking if you'd like to skip."
},
"audioNotification": {
"message": "Audio Notification On Skip"
},
"audioNotificationDescription": {
"message": "Audio notification on skip will play a sound whenever a sponsor is skipped. If disabled (or auto skip is disabled), no sound will be played."
},
"showTimeWithSkips": {
"message": "Show Time With Skips Removed"
},
"showTimeWithSkipsDescription": {
"message": "This time appears in brackets next to the current time on below the seekbar. This shows the total video duration minus any segments. This includes segments marked as only \"Show In Seekbar\"."
},
"youHaveSkipped": {
"message": "You have skipped "
},
"youHaveSaved": {
"message": "You have saved yourself "
},
"minLower": {
"message": "minute"
},
"minsLower": {
"message": "minutes"
},
"hourLower": {
"message": "hour"
},
"hoursLower": {
"message": "hours"
},
"youHaveSavedTime": {
"message": "You have saved people"
},
"youHaveSavedTimeEnd": {
"message": " of their lives."
},
"guildlinesSummary": {
"message": "- Make sure your segment only contains paid promotion segment, nothing else.\n- Make sure skipping this segment will not skip valuable content\n- If the whole video is a sponsor, please do not report it. A full video reporting system will come out soon.\n- Please do not report disclaimers that could show bias (if a review video is sponsored, don't skip when they mention that)."
},
"statusReminder": {
"message": "Check status.sponsor.ajay.app for server status."
},
"changeUserID": {
"message": "Import/Export Your UserID"
},
"whatChangeUserID": {
"message": "This should be kept private. This is like a password and should not be shared with anyone. If someone has this, they can impersonate you."
},
"setUserID": {
"message": "Set UserID"
},
"userIDChangeWarning": {
"message": "Warning: Changing the UserID is permanent. Are you sure you would like to do this? Make sure to backup your old one just in case."
},
"createdBy": {
"message": "Created By"
},
"autoSkip": {
"message": "Auto Skip"
},
"showSkipNotice": {
"message": "Show Notice After A Sponsor Is Skipped"
},
"keybindCurrentlySet": {
"message": ". It is currently set to:"
},
"supportInvidious": {
"message": "Support Invidious"
},
"supportInvidiousDescription": {
"message": "Invidious (invidio.us) is a third party YouTube client. To enable support, you must accept the extra permissions. This does NOT work in incognito on Chrome and other Chromium variants."
},
"optionsInfo": {
"message": "Enable Invidious support, disable autoskip, hide buttons and more."
},
"addInvidiousInstance": {
"message": "Add Invidious Instance"
},
"addInvidiousInstanceDescription": {
"message": "Add a custom instance of Invidious. This must be formatted with JUST the domain. Example: invidious.ajay.app"
},
"add": {
"message": "Add"
},
"addInvidiousInstanceError": {
"message": "This is an invalid domain. This should JUST include the domain part. Example: invidious.ajay.app"
},
"resetInvidiousInstance": {
"message": "Reset Invidious Instance List"
},
"resetInvidiousInstanceAlert": {
"message": "You are about to reset the Invidious instance list"
},
"currentInstances": {
"message": "Current Instances:"
},
"minDuration": {
"message": "Minimum duration (seconds):"
},
"minDurationDescription": {
"message": "Sponsor segments shorter than the set value will not be skipped or show in the player."
},
"shortCheck": {
"message": "The following submission is shorter than your minimum duration option. This could mean that this is already submitted, and just being ignored due to this option. Are you sure you would like to submit?"
},
"showUploadButton": {
"message": "Show Upload Button"
},
"whatUploadButton": {
"message": "This button appears on the YouTube player after you have selected a timestamp and are ready to submit."
},
"customServerAddress": {
"message": "SponsorBlock Server Address"
},
"customServerAddressDescription": {
"message": "The address SponsorBlock uses to make calls to the server.\nUnless you have your own server instance, this should not be changed."
},
"save": {
"message": "Save"
},
"reset": {
"message": "Reset"
},
"customAddressError": {
"message": "This address is not in the right form. Make sure you have http:// or https:// at the begining and no trailing slashes."
},
"areYouSureReset": {
"message": "Are you sure you would like to reset this?"
},
"confirmPrivacy": {
"message": "The video has been detected as unlisted. Click cancel if you do not want to check for sponsors."
},
"unlistedCheck": {
"message": "Ignore Unlisted/Private Videos"
},
"whatUnlistedCheck": {
"message": "This setting will slightly slow down SponsorBlock. Sponsor lookups require sending the video ID to the server. If you are concerned about unlisted video IDs being sent over the internet, enable this option."
},
"mobileUpdateInfo": {
"message": "m.youtube.com is now supported"
},
"exportOptions": {
"message": "Import/Export All Options"
},
"whatExportOptions": {
"message": "This is your entire configuration in JSON. This includes your userID, so be sure to share this wisely."
},
"setOptions": {
"message": "Set Options"
},
"exportOptionsWarning": {
"message": "Warning: Changing the options is permanent and can break your install. Are you sure you would like to do this? Make sure to backup your old one just in case."
},
"incorrectlyFormattedOptions": {
"message": "This JSON is not formatted correctly. Your options have not been changed."
},
"confirmNoticeTitle" : {
"message": "Submit Segment"
},
"submit": {
"message": "Submit"
},
"cancel": {
"message": "Cancel"
},
"delete": {
"message": "Delete"
},
"preview": {
"message": "Preview"
},
"edit": {
"message": "Edit"
},
"copyDebugInformation": {
"message": "Copy Debug Information To Clipboard"
},
"copyDebugInformationFailed": {
"message": "Failed to write to clipboard"
},
"copyDebugInformationOptions": {
"message": "Copies information to the clipboard to be provided to a developer when raising a bug / when a developer requests it. Sensitive information such as your user ID, whitelisted channels, and custom server address have been removed. However it does contain information such as your useragent, browser, operating system, and extension version number. "
},
"copyDebugInformationComplete": {
"message": "The debug information has been copied to the clip board. Feel free to remove any information you would rather not share. Save this in a text file or paste into the bug report."
},
"theKey": {
"message": "The key"
},
"keyAlreadyUsed": {
"message": "is bound to another action. Please select another key."
},
"to": {
"message": "to",
"description": "Used between sponsor times. Example: 1:20 to 1:30"
},
"category_sponsor": {
"message": "Sponsor"
},
"category_sponsor_description": {
"message": "Paid promotion, paid referrals and direct advertisements. Not for self-promotion or free shoutouts to causes/creators/websites/products they like."
},
"category_intro": {
"message": "Intermission/Intro Animation"
},
"category_intro_description": {
"message": "An interval without actual content. Could be a pause, static frame, repeating animation. This should not be used for transitions containing information or be used on music videos."
},
"category_intro_short": {
"message": "Intermission"
},
"category_outro": {
"message": "Endcards/Credits"
},
"category_outro_description": {
"message": "Credits or when the YouTube endcards appear. Not for spoken conclusions. This should not include useful content. This should not be used on music videos."
},
"category_interaction": {
"message": "Interaction Reminder (Subscribe)"
},
"category_interaction_description": {
"message": "When there is a short reminder to like, subscribe or follow them in the middle of content. If it is long or about something specific, it should be under self promotion instead."
},
"category_interaction_short": {
"message": "Interaction Reminder"
},
"category_selfpromo": {
"message": "Unpaid/Self Promotion"
},
"category_selfpromo_description": {
"message": "Similar to \"sponsor\" except for unpaid or self promotion. This includes sections about merchandise, donations, or information about who they collaborated with."
},
"category_music_offtopic": {
"message": "Music: Non-Music Section"
},
"category_music_offtopic_description": {
"message": "Only for use in music videos. This includes introductions or outros in music videos."
},
"category_music_offtopic_short": {
"message": "Non-Music"
},
"category_livestream_messages": {
"message": "Livestream: Donation/Message Readings"
},
"category_livestream_messages_short": {
"message": "Message Reading"
},
"disable": {
"message": "Disable"
},
"manualSkip": {
"message": "Manual Skip"
},
"showOverlay": {
"message": "Show In Seek Bar"
},
"colorFormatIncorrect": {
"message": "Your color is formatted incorrectly. It should be a 3 or 6 digit hex code with a number sign at the beginning."
},
"previewColor": {
"message": "Preview Color",
"description": "Referring to submissions that have not been sent to the server yet."
},
"seekBarColor": {
"message": "Seek Bar Color"
},
"category": {
"message": "Category"
},
"skipOption": {
"message": "Skip Option",
"description": "Used on the options page to describe the ways to skip the segment (auto skip, manual, etc.)"
},
"enableTestingServer": {
"message": "Enable Beta Testing Server"
},
"whatEnableTestingServer": {
"message": "Your submissions and votes WILL NOT COUNT towards the main server. Only use this for testing."
},
"testingServerWarning": {
"message": "All submissions and votes WILL NOT COUNT towards the main server while connecting to the test server. Make sure to disable this when you want to make real submissions."
},
"bracketNow": {
"message": "(Now)"
},
"moreCategories": {
"message": "More Categories"
},
"chooseACategory": {
"message": "Choose a Category"
},
"youMustSelectACategory": {
"message": "You must select a category for all segments you are submitting!"
},
"bracketEnd": {
"message": "(End)"
},
"hiddenDueToDownvote": {
"message": "hidden: downvote"
},
"hiddenDueToDuration": {
"message": "hidden: too short"
},
"channelDataNotFound": {
"message": "Channel ID not loaded yet."
},
"adblockerIssue": {
"message": "It seems that something is blocking SponsorBlock's ability to get video data. This is probably your ad blocker. Please check https://github.com/ajayyy/SponsorBlock/wiki/Fix-Ad-Blocker-Blocking-SponsorBlock's-Requests"
},
"itCouldBeAdblockerIssue": {
"message": "If this keeps occuring, it could be caused by your ad blocker. Please check https://github.com/ajayyy/SponsorBlock/wiki/Fix-Ad-Blocker-Blocking-SponsorBlock's-Requests"
},
"forceChannelCheck": {
"message": "Force Channel Check Before Skipping Sponsors"
},
"whatForceChannelCheck": {
"message": "By default, it will skip sponsors right away before it even knows what the channel is. By default, some zero second sponsors might be skipped on whitelisted channels. Enabling this option will prevent this but making all skipping have a slight delay as getting the channelID can take some time. This delay might be unnoticeable if you have fast internet."
},
"forceChannelCheckPopup": {
"message": "Consider Enabling Force Channel Check Before Skipping Sponsors"
},
"downvoteDescription": {
"message": "Incorrect/Wrong Timing"
},
"incorrectCategory": {
"message": "Wrong Category"
},
"nonMusicCategoryOnMusic": {
"message": "This video is categorized as music. Are you sure you would like to submit segments with non-music categories? Unless this video is not actually music, you should not be submitting this segment. Please read the guidelines if you are confused."
},
"multipleSegments": {
"message": "Multiple Segments"
},
"guidelines": {
"message": "Guidelines"
},
"readTheGuidelines": {
"message": "Read The Guidelines!!",
"description": "Show the first time they submit or if they are \"high risk\""
},
"categoryUpdate1": {
"message": "Categories are here!"
},
"categoryUpdate2": {
"message": "Open the options to skip intros, outros, merch, etc."
},
"unsubmittedWarning": {
"message": "Unsubmitted Segments Notification"
},
"unsubmittedWarningDescription": {
"message": "Send a notification when you leave a video with segments that are not uploaded"
}
}

View File

@@ -0,0 +1,483 @@
{
"fullName": {
"message": "SponsorBlock para YouTube - Omitir Sponsors",
"description": "Name of the extension."
},
"Description": {
"message": "Omitir sponsors en videos de YouTube. Infórmanos de sponsors en videos que ves para ahorrar el tiempo de otros.",
"description": "Description of the extension."
},
"400": {
"message": "Servidor dijo que esta solicitud no es valida"
},
"429": {
"message": "Has enviado demasiados tiempos de sponsor en este video, ¿estas seguro de que hay tantos?"
},
"409": {
"message": "Esto ya ha sido enviado antes"
},
"channelWhitelisted": {
"message": "Canal Permitido!"
},
"Sponsor": {
"message": "sponsor"
},
"Sponsors": {
"message": "sponsors"
},
"Segment": {
"message": "segmento de sponsor"
},
"Segments": {
"message": "segmentos de sponsor"
},
"upvoteButtonInfo": {
"message": "Votar a favor de esta sumisión"
},
"reportButtonTitle": {
"message": "Denunciar"
},
"reportButtonInfo": {
"message": "Denunciar esta sumisión como incorrecta."
},
"Dismiss": {
"message": "Descartar"
},
"Loading": {
"message": "Cargando..."
},
"Mins": {
"message": "Minutos"
},
"Secs": {
"message": "Segundos"
},
"Hide": {
"message": "Nunca Mostrar"
},
"hitGoBack": {
"message": "Haz clic en no omitir para volver a donde estabas."
},
"unskip": {
"message": "No omitir"
},
"reskip": {
"message": "Volver a saltar"
},
"paused": {
"message": "Pausado"
},
"manualPaused": {
"message": "Temporizador Detenido"
},
"confirmMSG": {
"message": "Para editar o eliminar valores individuales, haz clic en el botón de información o abre la ventana de extensión haciendo clic en el icono de extensión en la esquina superior derecha."
},
"clearThis": {
"message": "¿Estas seguro de que quieres eliminar esto?\n\n"
},
"Unknown": {
"message": "Se ha producido un error enviando tus tiempos de sponsor, por favor inténtalo de nuevo más tarde."
},
"sponsorFound": {
"message": "¡Los sponsors de este video están en la base de datos!"
},
"sponsor404": {
"message": "No se encontró ningún sponsor"
},
"sponsorStart": {
"message": "Sponsor Empieza Ahora"
},
"sponsorEnd": {
"message": "Sponsor Acaba Ahora"
},
"noVideoID": {
"message": "Ningún video de YouTube se encontró en esta pestaña. Si sabes que esto es una pestaña de YouTube, cierra esta ventana y ábrela otra vez. Si eso no funciona, intenta recargar la pestaña."
},
"success": {
"message": "¡Completado!"
},
"voted": {
"message": "¡Votado!"
},
"serverDown": {
"message": "Parece que el servidor está desconectado. Póngase en contacto con el desarrollador inmediatamente."
},
"connectionError": {
"message": "Ha ocurrido un error de conexión. Código de error: "
},
"wantToSubmit": {
"message": "¿Quieres enviar los tiempos de sponsor para el vídeo id"
},
"leftTimes": {
"message": "Parece que has dejado algunos tiempos de sponsor sin enviar. Vuelve a esa página para enviarlos (no se eliminaron)."
},
"clearTimes": {
"message": "Eliminar Tiempos de Sponsor"
},
"openPopup": {
"message": "Abrir Ventana de SponsorBlock"
},
"SubmitTimes": {
"message": "Enviar Tiempos de Sponsor"
},
"submitCheck": {
"message": "¿Estás seguro de que quieres enviar esto?"
},
"whitelistChannel": {
"message": "Permitir Canal"
},
"removeFromWhitelist": {
"message": "Parar De Permitir Canal"
},
"voteOnTime": {
"message": "Votar en un tiempo de sponsor"
},
"recordTimes": {
"message": "Registrar los tiempos de un sponsor"
},
"soFarUHSubmited": {
"message": "Hasta ahora, has enviado"
},
"savedPeopleFrom": {
"message": "Has salvado personas de "
},
"viewLeaderboard": {
"message": "Ver la tabla de clasificación"
},
"here": {
"message": "aquí"
},
"recordTimesDescription": {
"message": "Haga clic en el botón de abajo cuando el sponsor comienza y termina para registrarlo y\nenviarlo a la base de datos."
},
"popupHint": {
"message": "Consejo: Presiona la tecla de punto y coma mientras enfocado en un video para registrar el comienzo/fin de un sponsor y presiona comillas para enviar. (Esto se puede cambiar en las opciones)"
},
"lastTimes": {
"message": "Últimos mensajes de sponsor elegidos"
},
"clearTimesButton": {
"message": "Eliminar Tiempos"
},
"submitTimesButton": {
"message": "Enviar Tiempos"
},
"publicStats": {
"message": "Esto se utiliza en la página de estadísticas públicas para mostrar cuánto has contribuido. Véala"
},
"setUsername": {
"message": "Escoger Nombre De Usuario"
},
"discordAdvert": {
"message": "¡Únete al servidor oficial de discord para darnos sugerencias y comentarios!"
},
"hideThis": {
"message": "No mostrar esto"
},
"Options": {
"message": "Opciones"
},
"showButtons": {
"message": "Mostrar botones en el reproductor de YouTube"
},
"hideButtons": {
"message": "Ocultar botones en el reproductor de YouTube"
},
"hideButtonsDescription": {
"message": "Esto oculta los botones que aparecen en el reproductor de YouTube que se usan para enviar segmentos saltados."
},
"showInfoButton": {
"message": "Mostrar botón de información en el reproductor de YouTube"
},
"hideInfoButton": {
"message": "Ocultar botón de información en el reproductor de YouTube"
},
"whatInfoButton": {
"message": "Este es el botón que abre una ventana en la página de YouTube."
},
"hideDeleteButton": {
"message": "Ocultar botón de eliminar en el reproductor de YouTube"
},
"showDeleteButton": {
"message": "Mostrar botón de eliminar en el reproductor de YouTube"
},
"whatDeleteButton": {
"message": "Este es el botón en el reproductor de YouTube que eliminará todos tus segmentos no enviados para el vídeo actual."
},
"disableViewTracking": {
"message": "Desactivar seguimiento de numero de sponsorsomitidos"
},
"enableViewTracking": {
"message": "Activar seguimiento de numero de sponsors omitidos"
},
"whatViewTracking": {
"message": "Esta opción registra los sponsors que te has saltado para que los otros usuarios sepan cuánto su sumisión ha ayudado a otros y\nes usado como métrica junto con votos positivos para asegurar que el spam no ingrese a la base de datos. La extensión envía un mensaje\nal servidor cada vez que se salta un patrocinador. Esperemos que la mayoría de la gente no cambie esta opción para que los números de vista sean exactos. :)"
},
"showNotice": {
"message": "Mostrar aviso de nuevo"
},
"website": {
"message": "Sitio Web",
"description": "Used on Firefox Store Page"
},
"sourceCode": {
"message": "Código Fuente",
"description": "Used on Firefox Store Page"
},
"noticeUpdate": {
"message": "¡El aviso ha sido actualizado!",
"description": "The first line of the message displayed after the notice was upgraded."
},
"noticeUpdate2": {
"message": "Si aún no te gusta, pulsa el botón de nunca mostrar.",
"description": "The second line of the message displayed after the notice was upgraded."
},
"setStartSponsorShortcut": {
"message": "Establecer botón de inicio de sponsor"
},
"setSubmitKeybind": {
"message": "Establecer botón de envio"
},
"keybindDescription": {
"message": "Seleccione un botón escribiéndolo"
},
"keybindDescriptionComplete": {
"message": "El botón se ha establecido a: "
},
"0": {
"message": "Tiempo de espera agotado. Compruebe su conexión a Internet. Si su internet está funcionando, el servidor probablemente esta sobrecargado o desconectado."
},
"disableSkipping": {
"message": "Desactivar SponsorBlock"
},
"enableSkipping": {
"message": "Activar SponsorBlock"
},
"yourWork": {
"message": "Tu trabajo",
"description": "Used to describe the section that will show you the statistics from your submissions."
},
"502": {
"message": "El servidor parece estar sobrecargado. Inténtalo de nuevo en unos segundos."
},
"errorCode": {
"message": "Código de error: "
},
"skip": {
"message": "Omitir"
},
"skipped": {
"message": "Omitido"
},
"disableAutoSkip": {
"message": "Desactivar la omisión automática"
},
"enableAutoSkip": {
"message": "Activar la omisión automática"
},
"autoSkipDescription": {
"message": "La omisión automática omitirá sponsors por ti. Si esta desactivada, aparecerá un aviso preguntando si quieres omitir."
},
"audioNotification": {
"message": "Notificación de audio al omitir"
},
"audioNotificationDescription": {
"message": "Notificación de audio al omitir reproducirá un sonido cada vez que se omite un sponsor. Si está desactivada (o se desactiva la omisión automática), no se reproducirá ningún sonido."
},
"youHaveSkipped": {
"message": "Has omitido "
},
"youHaveSaved": {
"message": "Te has ahorrado "
},
"minLower": {
"message": "minuto"
},
"minsLower": {
"message": "minutos"
},
"hourLower": {
"message": "hora"
},
"hoursLower": {
"message": "horas"
},
"youHaveSavedTime": {
"message": "Has ahorrado a otras personas"
},
"youHaveSavedTimeEnd": {
"message": " de sus vidas."
},
"guildlinesSummary": {
"message": "- Asegúrate de que tu segmento sólo contiene un segmento de promoción de pago, nada más.\n- Asegúrate de que omitir este segmento no omitirá ningún contenido valioso\n- Si todo el vídeo es un sponsor, por favor, no lo envíen. Pronto saldrá un sistema completo de reportes de vídeo.\n- Por favor, no informe de los avisos que podrían mostrar parcialidad (si un vídeo de revista está patrocinado, no se salte cuando mencionen eso)."
},
"statusReminder": {
"message": "Comprueba status.sponsor.ajay.app para ver el estado del servidor."
},
"changeUserID": {
"message": "Importar/Exportar tu UserID"
},
"whatChangeUserID": {
"message": "Esto debería mantenerse privado. Es como una contraseña y no debe ser compartido con nadie. Si alguien tiene esto, pueden imitarte."
},
"setUserID": {
"message": "Definir UserID"
},
"userIDChangeWarning": {
"message": "Advertencia: Cambiar el UserID es permanente. ¿Estás seguro de que desea hacer esto? Asegúrese de hacer una copia de seguridad de su UserID anterior por si acaso."
},
"createdBy": {
"message": "Creado Por"
},
"autoSkip": {
"message": "Omisión Automática"
},
"showSkipNotice": {
"message": "Mostrar aviso después de que se omita un sponsor"
},
"keybindCurrentlySet": {
"message": ". Actualmente está establecido a:"
},
"supportInvidious": {
"message": "Soportar Invidious"
},
"supportInvidiousDescription": {
"message": "Invidious (invidio.us) es un cliente alternativo para YouTube. Para habilitar soporte, tienes que aceptar los permisos adicionales. Esto NO funciona en modo incógnito en Chrome y otros variantes de Chromium."
},
"optionsInfo": {
"message": "Activar soporte de Invidious, deshabilitar omisión automática, ocultar botones y más."
},
"addInvidiousInstance": {
"message": "Añadir nodo de Invidious"
},
"addInvidiousInstanceDescription": {
"message": "Añadir un nodo de Invidious personalizado. Esto debe estar formateado con SOLO el dominio. Ejemplo: invidious.ajay.app"
},
"add": {
"message": "Añadir"
},
"addInvidiousInstanceError": {
"message": "Esto es un dominio inválido. Esto debería incluir SOLO el dominio. Ejemplo: invidious.ajay.app"
},
"resetInvidiousInstance": {
"message": "Restablecer Lista de Nodos de Invidious"
},
"resetInvidiousInstanceAlert": {
"message": "Estás a punto de restablecer la lista de nodos de invidious"
},
"currentInstances": {
"message": "Nodos actuales:"
},
"minDuration": {
"message": "Duración mínima (en segundos):"
},
"minDurationDescription": {
"message": "Los segmentos de sponsor más cortos que el valor establecido no serán omitidos ni mostrados en el reproductor."
},
"shortCheck": {
"message": "La siguiente sumisión es más corto que su opción de duración mínima. Esto podría significar que esto ya se ha enviado y que simplemente se ha ignorado debido a esta opción. ¿Está seguro de que desea enviar?"
},
"showUploadButton": {
"message": "Mostrar botón de subida"
},
"whatUploadButton": {
"message": "Este botón aparece en el reproductor de YouTube después de que has seleccionado una marca de tiempo y estas listo para enviar."
},
"customServerAddress": {
"message": "Dirección del servidor SponsorBlock"
},
"customServerAddressDescription": {
"message": "La dirección que SponsorBlock utiliza para hacer llamadas al servidor.\nA menos que tengas tu propia instancia del servidor, no debería cambiarse."
},
"save": {
"message": "Guardar"
},
"reset": {
"message": "Restablecer"
},
"mobileUpdateInfo": {
"message": "m.youtube.com ahora es compatible"
},
"exportOptions": {
"message": "Importar/Exportar todas las opciones"
},
"setOptions": {
"message": "Configurar opciones"
},
"confirmNoticeTitle": {
"message": "Enviar segmento"
},
"submit": {
"message": "Enviar"
},
"cancel": {
"message": "Cancelar"
},
"delete": {
"message": "Eliminar"
},
"preview": {
"message": "Vista Previa"
},
"edit": {
"message": "Editar"
},
"copyDebugInformation": {
"message": "Copiar información de depuración al portapapeles"
},
"copyDebugInformationFailed": {
"message": "Error al escribir al portapapeles"
},
"theKey": {
"message": "El botón"
},
"keyAlreadyUsed": {
"message": "está enlazado a otra acción. Por favor, seleccione otro botón."
},
"category_sponsor": {
"message": "Sponsor"
},
"category_outro": {
"message": "Tarjetas/Créditos"
},
"category_interaction": {
"message": "Recordatorio de interacción (subscribir)"
},
"category_music_offtopic": {
"message": "Música: Sección sin musica"
},
"category_livestream_messages": {
"message": "Directo: Lecturas de donaciones y mensajes"
},
"disable": {
"message": "Desactivar"
},
"manualSkip": {
"message": "Omisión manual"
},
"enableTestingServer": {
"message": "Habilitar Servidor de Pruebas Beta"
},
"bracketNow": {
"message": "(Ahora)"
},
"moreCategories": {
"message": "Más categorías"
},
"bracketEnd": {
"message": "(Final)"
},
"channelDataNotFound": {
"message": "ID de canal no cargado todavía."
},
"downvoteDescription": {
"message": "Tiempo incorrecto"
},
"incorrectCategory": {
"message": "Categoría errónea"
},
"multipleSegments": {
"message": "Varios segmentos"
}
}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1,371 @@
{
"fullName": {
"message": "SponsorBlock YouTubelle - Ohita sponsoroinnit",
"description": "Name of the extension."
},
"Description": {
"message": "Ohita sponsorointi YouTube-videoissa. Ilmoita katsomiesi videoinen sponsoreista säästääksesi muiden aikaa.",
"description": "Description of the extension."
},
"400": {
"message": "Palvelin sanoi tämän pyynnön olevan virheellinen"
},
"429": {
"message": "Olet lähettänyt liian monta sponsorointiaikaa tälle yhdelle videolle. Oletko varma, että niitä on useita?"
},
"409": {
"message": "Tämä on jo lähetetty aiemmin"
},
"channelWhitelisted": {
"message": "Kanava lisätty valkoiselle listalle!"
},
"Sponsor": {
"message": "sponsori"
},
"Sponsors": {
"message": "sponsorit"
},
"Segment": {
"message": "sponsoroitu kohta"
},
"Segments": {
"message": "sponsoroidut kohdat"
},
"upvoteButtonInfo": {
"message": "Äänestä tätä lähetystä"
},
"reportButtonTitle": {
"message": "Ilmoita"
},
"reportButtonInfo": {
"message": "Ilmoita tämän lähetyksen olevan virheellinen."
},
"Dismiss": {
"message": "Hylkää"
},
"Loading": {
"message": "Ladataan..."
},
"Mins": {
"message": "Minuuttia"
},
"Secs": {
"message": "Sekuntia"
},
"Hide": {
"message": "Älä näytä koskaan"
},
"hitGoBack": {
"message": "Paina 'älä ohita' mennäksesi takaisin kohtaan jossa olit."
},
"unskip": {
"message": "Älä ohita"
},
"reskip": {
"message": "Ohita uudelleen"
},
"paused": {
"message": "Pysäytetty"
},
"manualPaused": {
"message": "Ajastin pysäytetty"
},
"clearThis": {
"message": "Haluatko varmasti poistaa tämän?\n\n"
},
"Unknown": {
"message": "Sponsorointiaikoja lähetettäessä tapahtui virhe, yritä myöhemmin uudelleen."
},
"sponsorFound": {
"message": "Tämän videon sponsorit löytyvät tietokannasta!"
},
"sponsor404": {
"message": "Sponsoreita ei löytynyt"
},
"sponsorStart": {
"message": "Sponsorointi alkaa nyt"
},
"sponsorEnd": {
"message": "Sponsorointi päättyy nyt"
},
"noVideoID": {
"message": "Välilehdeltä ei löytynyt YouTube-videota. Jos olet varma, että tämä on YouTube-välilehti, sulje tämä ponnahdusikkuna ja avaa se uudelleen. Jos sekään ei toimi, yritä ladata välilehti uudelleen."
},
"success": {
"message": "Onnistui!"
},
"voted": {
"message": "Äänestetty!"
},
"serverDown": {
"message": "Palvelin näyttää olevan alhaalla. Ota heti yhteyttä kehittäjään."
},
"connectionError": {
"message": "Yhteysvirhe on tapahtunut. Virhekoodi: "
},
"clearTimes": {
"message": "Tyhjennä sponsorointiajat"
},
"openPopup": {
"message": "Avaa SponsorBlock-ponnahdusikkuna"
},
"SubmitTimes": {
"message": "Lähetä sponsorointiajat"
},
"submitCheck": {
"message": "Haluatko varmasti lähettää tämän?"
},
"whitelistChannel": {
"message": "Lisää kanava valkoiselle listalle"
},
"removeFromWhitelist": {
"message": "Poista kanava valkoiselta listalta"
},
"voteOnTime": {
"message": "Äänestä sponsorointiaikaa"
},
"recordTimes": {
"message": "Tallenna sponsoroinnin ajat"
},
"soFarUHSubmited": {
"message": "Tähän mennessä, olet lähettänyt"
},
"savedPeopleFrom": {
"message": "Olet säästänyt ihmisiltä "
},
"viewLeaderboard": {
"message": "Näytä tulostaulukko"
},
"here": {
"message": "tässä"
},
"clearTimesButton": {
"message": "Tyhjennä ajat"
},
"submitTimesButton": {
"message": "Lähetä ajat"
},
"setUsername": {
"message": "Aseta käyttäjänimi"
},
"hideThis": {
"message": "Piilota tämä"
},
"Options": {
"message": "Asetukset"
},
"showButtons": {
"message": "Näytä painikkeet YouTuben soittimessa"
},
"hideButtons": {
"message": "Piilota painikkeet YouTuben soittimessa"
},
"hideButtonsDescription": {
"message": "Tämä piilottaa YouTuben soittimessa näkyvät, ohitettavien aikojen lähettämiseen käytetyt painikkeet."
},
"showInfoButton": {
"message": "Näytä info-painike YouTuben soittimessa"
},
"hideInfoButton": {
"message": "Piilota info-painike YouTuben soittimessa"
},
"whatInfoButton": {
"message": "Tämä on painike, joka avaa ponnahdusikkunan YouTube-sivulla."
},
"hideDeleteButton": {
"message": "Piilota poista-painike YouTuben soittimessa"
},
"showDeleteButton": {
"message": "Näytä poista-painike YouTuben soittimessa"
},
"whatDeleteButton": {
"message": "Tämä on YouTuben soittimen painike, joka poistaa kaikki kyseisen videon sponsorointikohdat, joita et ole vielä lähettänyt."
},
"website": {
"message": "Sivusto",
"description": "Used on Firefox Store Page"
},
"sourceCode": {
"message": "Lähdekoodi",
"description": "Used on Firefox Store Page"
},
"keybindDescription": {
"message": "Valitse näppäin painamalla sitä"
},
"disableSkipping": {
"message": "Poista Sponsorblock käytöstä"
},
"enableSkipping": {
"message": "Ota SponsorBlock käyttöön"
},
"yourWork": {
"message": "Sinun työsi",
"description": "Used to describe the section that will show you the statistics from your submissions."
},
"errorCode": {
"message": "Virhekoodi: "
},
"skip": {
"message": "Ohita"
},
"skipped": {
"message": "Ohitettu"
},
"disableAutoSkip": {
"message": "Poista automaattinen ohitus käytöstä"
},
"enableAutoSkip": {
"message": "Ota automaattinen ohitus käyttöön"
},
"youHaveSkipped": {
"message": "Olet ohittanut "
},
"youHaveSaved": {
"message": "Olet säästänyt itseltäsi "
},
"minLower": {
"message": "minuutti"
},
"minsLower": {
"message": "minuuttia"
},
"hourLower": {
"message": "tunti"
},
"hoursLower": {
"message": "tuntia"
},
"youHaveSavedTime": {
"message": "Olet säästänyt ihmisiltä"
},
"youHaveSavedTimeEnd": {
"message": " heidän elämästään."
},
"changeUserID": {
"message": "Tuo/vie sinun UserID:si"
},
"setUserID": {
"message": "Aseta UserID"
},
"supportInvidious": {
"message": "Tue Invidious:ta"
},
"addInvidiousInstance": {
"message": "Lisää Invidious-instanssi"
},
"add": {
"message": "Lisää"
},
"resetInvidiousInstance": {
"message": "Nollaa Invidious-instanssien lista"
},
"resetInvidiousInstanceAlert": {
"message": "Olet nollaamassa Invidious-instanssien listan"
},
"currentInstances": {
"message": "Nykyiset instanssit:"
},
"minDuration": {
"message": "Vähimmäiskesto (sekuntia):"
},
"showUploadButton": {
"message": "Näytä lähetä-painike"
},
"save": {
"message": "Tallenna"
},
"reset": {
"message": "Nollaa"
},
"mobileUpdateInfo": {
"message": "m.youtube.com-osoitetta tuetaan nyt"
},
"exportOptions": {
"message": "Vie/tuo kaikki asetukset"
},
"setOptions": {
"message": "Käytä asetuksia"
},
"confirmNoticeTitle": {
"message": "Lähetä kohta"
},
"submit": {
"message": "Jatka"
},
"cancel": {
"message": "Peruuta"
},
"delete": {
"message": "Poista"
},
"preview": {
"message": "Esikatsele"
},
"edit": {
"message": "Muokkaa"
},
"copyDebugInformationFailed": {
"message": "Kirjoittaminen leikepöydälle epäonnistui"
},
"theKey": {
"message": "Näppäin"
},
"keyAlreadyUsed": {
"message": "on jo liitetty toiseen toimintoon. Valitse toinen näppäin."
},
"to": {
"message": "-",
"description": "Used between sponsor times. Example: 1:20 to 1:30"
},
"category_sponsor": {
"message": "Sponsori"
},
"category_outro": {
"message": "Loppukortit/-tekstit"
},
"category_interaction": {
"message": "Vuorovaikutusmuistutus (tilaaminen)"
},
"category_music_offtopic": {
"message": "Musiikki: muussa kuin Musiikki-osiossa"
},
"category_livestream_messages": {
"message": "Livestream: lahjoituksen/viestin lukeminen"
},
"disable": {
"message": "Poista käytöstä"
},
"manualSkip": {
"message": "Manuaalinen ohitus"
},
"enableTestingServer": {
"message": "Ota betatestauspalvelin käyttöön"
},
"bracketNow": {
"message": "(Nyt)"
},
"moreCategories": {
"message": "Lisää kategorioita"
},
"bracketEnd": {
"message": "(Päättyy)"
},
"hiddenDueToDownvote": {
"message": "piilotettu: miinusääniä"
},
"hiddenDueToDuration": {
"message": "piilotettu: liian lyhyt"
},
"channelDataNotFound": {
"message": "Kanavatunnusta ei ole vielä ladattu."
},
"downvoteDescription": {
"message": "Virheellinen/väärä aika"
},
"incorrectCategory": {
"message": "Väärä kategoria"
},
"multipleSegments": {
"message": "Useita kohtia"
}
}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1,638 @@
{
"fullName": {
"message": "SponsorBlock pour YouTube - Supprime les messages commerciaux et publicités intégrées",
"description": "Name of the extension."
},
"Description": {
"message": "Passe automatiquement les messages commerciaux intégrés dans les vidéos YouTube. Soumettez les segments commerciaux dans les vidéos que vous regardez pour aidez les autres.",
"description": "Description of the extension."
},
"400": {
"message": "Soumission invalide"
},
"429": {
"message": "Vous cherchez à envoyer beaucoup de segments, y en a-t-il vraiment autant ?"
},
"409": {
"message": "Déja soumis"
},
"channelWhitelisted": {
"message": "Chaîne mise sur liste blanche !"
},
"Sponsor": {
"message": "message commercial"
},
"Sponsors": {
"message": "messages commerciaux"
},
"Segment": {
"message": "segment commercial"
},
"Segments": {
"message": "segments commerciaux"
},
"upvoteButtonInfo": {
"message": "Voter pour cette entrée"
},
"reportButtonTitle": {
"message": "Signaler"
},
"reportButtonInfo": {
"message": "Signaler que ce segment commercial est incorrect."
},
"Dismiss": {
"message": "Fermer"
},
"Loading": {
"message": "Chargement..."
},
"Mins": {
"message": "Minutes"
},
"Secs": {
"message": "Secondes"
},
"Hide": {
"message": "Ne plus montrer"
},
"hitGoBack": {
"message": "Cliquez sur revenir en arrière pour revenir avant le saut du segment commercial."
},
"unskip": {
"message": "Revenir en arrière"
},
"reskip": {
"message": "Sauter"
},
"paused": {
"message": "En pause"
},
"manualPaused": {
"message": "Timer arrêté"
},
"confirmMSG": {
"message": "Pour modifier ou supprimer des soumissions, cliquez sur le bouton d'info ou ouvrez la fenêtre de l'extension en cliquant sur son icône dans le coin en haut à droite."
},
"clearThis": {
"message": "Êtes-vous certain(e) de vouloir supprimer vos soumissions ?\n\n"
},
"Unknown": {
"message": "Une erreur s'est produite lors de la soumission, veuillez réessayer plus tard."
},
"sponsorFound": {
"message": "Les messages commerciaux pour cette vidéo sont déjà dans notre base de données !"
},
"sponsor404": {
"message": "Pas de messages commerciaux trouvés"
},
"sponsorStart": {
"message": "Début du message commercial"
},
"sponsorEnd": {
"message": "Fin du message commercial"
},
"noVideoID": {
"message": "Ceci n'est pas un onglet YouTube, ou vous avez cliqué trop tôt. \n Si vous êtes sûr(e) que c'est un onglet YouTube, fermez cette fenêtre et réessayez."
},
"success": {
"message": "Succès !"
},
"voted": {
"message": "A voté !"
},
"serverDown": {
"message": "Le serveur ne fonctionne pas. Contactez le développeur."
},
"connectionError": {
"message": "Erreur de connexion. Code d'erreur : "
},
"wantToSubmit": {
"message": "Voulez-vous soumettre les segments commerciaux pour cette vidéo"
},
"leftTimes": {
"message": "Vous avez laissé des segments commerciaux non soumis. Retournez sur la vidéo pour les soumettre (ils ont été conservés)."
},
"clearTimes": {
"message": "Supprimer les segments commerciaux"
},
"openPopup": {
"message": "Ouvrir l'encart SponsorBlock"
},
"SubmitTimes": {
"message": "Soumettre les segments commerciaux"
},
"submitCheck": {
"message": "Êtes-vous sûr de vouloir soumettre ces segments?"
},
"whitelistChannel": {
"message": "Ajouter la chaîne à la liste blanche"
},
"removeFromWhitelist": {
"message": "Supprimer la chaîne de la liste blanche"
},
"voteOnTime": {
"message": "Voter sur un segment commercial"
},
"recordTimes": {
"message": "Enregistrer un segment commercial"
},
"soFarUHSubmited": {
"message": "Vous avez soumis jusqu'à présent"
},
"savedPeopleFrom": {
"message": "Vous avez permis aux autres de passer "
},
"viewLeaderboard": {
"message": "Consulter le classement"
},
"here": {
"message": "ici"
},
"recordTimesDescription": {
"message": "Cliquez sur le bouton ci-dessous quand le segment commercial commence puis \nse termine pour l'enregistrer et le soumettre à la base de données."
},
"popupHint": {
"message": "Astuce : utilisez la touche point-virgule lorsque la vidéo est sélectionnée pour enregistrer le début et la fin d'un segment commercial; utilisez la touche guillemet pour le soumettre. (Les touches peuvent être modifiées dans les options)"
},
"lastTimes": {
"message": "Derniers temps choisis pour le segment commercial"
},
"clearTimesButton": {
"message": "Supprimer les temps"
},
"submitTimesButton": {
"message": "Soumettre les temps"
},
"publicStats": {
"message": "Votre pseudo est inscrit dans le classement public pour afficher vos contributions. Le consulter"
},
"setUsername": {
"message": "Choisir un pseudonyme"
},
"discordAdvert": {
"message": "Rejoignez le serveur Discord officiel pour toutes suggestions ou remarques!"
},
"hideThis": {
"message": "Cacher"
},
"Options": {
"message": "Paramètres"
},
"showButtons": {
"message": "Montrer les boutons sur le lecteur YouTube"
},
"hideButtons": {
"message": "Cacher les boutons sur le lecteur YouTube"
},
"hideButtonsDescription": {
"message": "Cela permet de cacher du lecteur YouTube les boutons utilisés pour soumettre des segments commerciaux. Je peux \ncomprendre que certaines personnes les trouvent perturbants. Au lieu d'utiliser ces boutons, cette fenêtre peut être utilisée \npour soumettre des segments commerciaux. Pour cacher la notification, utilisez le bouton \"Ne plus montrer\" sur la notification. Vous pouvez toujours réactiver ces paramètres plus tard."
},
"showInfoButton": {
"message": "Montrer le bouton Info sur le lecteur YouTube"
},
"hideInfoButton": {
"message": "Cacher le bouton Info sur le lecteur YouTube"
},
"whatInfoButton": {
"message": "Il s'agit du bouton qui ouvre l'encart sur la page YouTube."
},
"hideDeleteButton": {
"message": "Cacher le bouton Supprimer sur le lecteur YouTube"
},
"showDeleteButton": {
"message": "Montrer le bouton Supprimer sur le lecteur YouTube"
},
"whatDeleteButton": {
"message": "Il s'agit du bouton qui permet de supprimer tous les segments commerciaux depuis le lecteur YouTube."
},
"disableViewTracking": {
"message": "Désactiver le suivi des vues de segments commerciaux"
},
"enableViewTracking": {
"message": "Activer le suivi des vues de segments commerciaux"
},
"whatViewTracking": {
"message": "Cette fonctionnalité suit quels segments commerciaux vous avez sautés afin de calculer le bénéfice des soumissions des \nautres utilisateurs. Elle est également utilisée comme métrique, avec les haut-votes, afin de s'assurer que les spams \nsont ignorés. L'extension envoie un message au serveur à chauque fois qu'un segment commercial est sauté. Avec un peu de chance, peu de personnes désactiveront cette fonctionnalité afin d'obtenir des nombres de vues exacts. :)"
},
"showNotice": {
"message": "Afficher la notification"
},
"longDescription": {
"message": "SponsorBlock est une extension qui permet de sauter les segments sponsorisés des vidéos de YouTube. SponsorBlock est une extension de navigateur participative qui permet à quiconque de soumettre les heures de début et de fin des segments sponsorisés des vidéos de YouTube. Une fois qu'une personne a soumis ces informations, toutes les autres personnes possédant cette extension sauteront automatiquement les segments sponsorisés. \n\n Vous pouvez également sauter les intros, les outros, les rappels d'abonnement et d'autres catégories.",
"description": "Full description of the extension on the store pages."
},
"website": {
"message": "Site web",
"description": "Used on Firefox Store Page"
},
"sourceCode": {
"message": "Code source",
"description": "Used on Firefox Store Page"
},
"noticeUpdate": {
"message": "La notification a été mise à jour !",
"description": "The first line of the message displayed after the notice was upgraded."
},
"noticeUpdate2": {
"message": "Si elle ne vous plaît pas, cliquez sur le bouton \"Ne plus montrer\".",
"description": "The second line of the message displayed after the notice was upgraded."
},
"setStartSponsorShortcut": {
"message": "Changer le raccourci pour enregistrer un segment"
},
"setSubmitKeybind": {
"message": "Changer le raccourci pour soumettre les segments"
},
"keybindDescription": {
"message": "Appuyez sur une touche"
},
"keybindDescriptionComplete": {
"message": "Le raccourci choisi est : "
},
"0": {
"message": "Délai de connexion dépassé. Vérifiez votre connexion internet. Si votre connexion internet fonctionne, le serveur est probablement surchargé ou hors service."
},
"disableSkipping": {
"message": "Désactiver SponsorBlock"
},
"enableSkipping": {
"message": "Activer SponsorBlock"
},
"yourWork": {
"message": "Votre travail",
"description": "Used to describe the section that will show you the statistics from your submissions."
},
"502": {
"message": "Le serveur semble être surchargé. Réessayez dans quelques secondes."
},
"errorCode": {
"message": "Code d'erreur : "
},
"skip": {
"message": "Passer"
},
"skipped": {
"message": "Passé"
},
"disableAutoSkip": {
"message": "Désactiver le passage automatique"
},
"enableAutoSkip": {
"message": "Activer le passage automatique"
},
"autoSkipDescription": {
"message": "Le passage automatique passera automatiquement les sponsors pour vous. Si désactivé, un avis apparaîtra vous demandant si vous souhaitez passer."
},
"audioNotification": {
"message": "Notification audio lors du passage"
},
"audioNotificationDescription": {
"message": "La notification audio lors du passage jouera un son à chaque fois qu'un sponsor est ignoré. Si désactivé (ou si le passage automatique est désactivé), aucun son ne sera joué."
},
"showTimeWithSkips": {
"message": "Afficher le temps avec les passages supprimés"
},
"showTimeWithSkipsDescription": {
"message": "Ce temps apparaît entre crochets à côté du temps actuel sous la barre de défilement. Cela indique la durée totale de la vidéo après déduction de tout les segments. Ceci comprend les segments marqués comme étant uniquement à \"Afficher dans la barre de recherche\"."
},
"youHaveSkipped": {
"message": "Vous avez passé "
},
"youHaveSaved": {
"message": "Vous vous êtes économisé "
},
"minLower": {
"message": "minute"
},
"minsLower": {
"message": "minutes"
},
"hourLower": {
"message": "heure"
},
"hoursLower": {
"message": "heures"
},
"youHaveSavedTime": {
"message": "Vous avez économisé"
},
"youHaveSavedTimeEnd": {
"message": " aux autres."
},
"guildlinesSummary": {
"message": "- Assurez-vous que votre segment ne contient que des segments de promotion payante, rien d'autre.\n- Assurez-vous que passer ce segment ne sautera pas de contenu important\n- Si la vidéo entière est un sponsor, s'il vous plaît, ne le signalez pas. Un système complet de reportage vidéo sortira bientôt.\n- Veuillez ne pas signaler les avertissements qui pourraient montrer des biais (si une vidéo de revue est sponsorisée, ne sautez pas quand ils le mentionnent)."
},
"statusReminder": {
"message": "Vérifiez status.sponsor.ajay.app pour le status du serveur."
},
"changeUserID": {
"message": "Importer/Exporter Votre ID d'Utilisateur"
},
"whatChangeUserID": {
"message": "Gardez ça privé. C'est comme un mot de passe et ne devrait pas être partagé avec quiconque. Si quelqu'un l'obtiens, il peut vous usurper."
},
"setUserID": {
"message": "Définir \"UserID\""
},
"userIDChangeWarning": {
"message": "Avertissement : La modification de \"UserID\" est permanente. Êtes-vous sûr de vouloir faire ça ? Assurez-vous de sauvegarder votre ancien au cas où."
},
"createdBy": {
"message": "Créé par"
},
"autoSkip": {
"message": "Passage automatique"
},
"showSkipNotice": {
"message": "Notifier après qu'un sponsor ait été sauté"
},
"keybindCurrentlySet": {
"message": ". Il est actuellement réglé sur :"
},
"supportInvidious": {
"message": "Supporter Invidious"
},
"supportInvidiousDescription": {
"message": "Invidious (invidio.us) est un client tiers pour YouTube. Vous devez accepter des permissions supplémentaires pour activer son support. Cette fonctionnalité ne fonctionne pas en mode incognito sur Chrome et les autres variantes de Chromium."
},
"optionsInfo": {
"message": "Activer Invidious, désactiver le passage automatique, masquer les boutons et plus encore."
},
"addInvidiousInstance": {
"message": "Ajouter une instance Invidious"
},
"addInvidiousInstanceDescription": {
"message": "Ajouter une instance Invidious personnalisée. Doit être formaté avec SEULEMENT le domaine. Exemple: invidious.ajay.app"
},
"add": {
"message": "Ajouter"
},
"addInvidiousInstanceError": {
"message": "Ce domaine n'est pas valide. Il devrait JUSTE inclure le domaine. Exemple: invidious.ajay.app"
},
"resetInvidiousInstance": {
"message": "Réinitialiser la liste d'instances Invidious"
},
"resetInvidiousInstanceAlert": {
"message": "Vous êtes sur le point de réinitialiser la liste des instances Invidious"
},
"currentInstances": {
"message": "Instances actuelles:"
},
"minDuration": {
"message": "Durée minimale (en secondes):"
},
"minDurationDescription": {
"message": "Les segments sponsorisés plus courts que la valeur définie ne seront pas passé ni affichés dans le lecteur."
},
"shortCheck": {
"message": "Le segment suivant est plus court que votre option de durée minimale. Cela pourrait signifier qu'il est déjà soumis, et just ignoré par cette option. Êtes-vous sûr de vouloir soumettre ?"
},
"showUploadButton": {
"message": "Afficher le bouton de téléchargement"
},
"whatUploadButton": {
"message": "Ce bouton apparaît sur le lecteur YouTube dès qu'un segment est prêt à être envoyé."
},
"customServerAddress": {
"message": "Adresse du serveur SponsorBlock"
},
"customServerAddressDescription": {
"message": "L'adresse que SponsorBlock utilise pour faire des appels au serveur.\nSauf si vous avez votre propre instance de serveur, cela ne devrait pas être changé."
},
"save": {
"message": "Sauvegarder"
},
"reset": {
"message": "Réinitialiser"
},
"customAddressError": {
"message": "Le format de l'adresse est incorrect. Assurez-vous qu'elle commence bien par http:// ou https:// et ne termine pas par un slash."
},
"areYouSureReset": {
"message": "Voulez-vous vraiment remettre à zéro ?"
},
"confirmPrivacy": {
"message": "Cette vidéo est non-listée. Appuyez sur annuler si vous ne voulez pas vérifier la présence de message commerciaux."
},
"unlistedCheck": {
"message": "Ignorer les vidéos non listées"
},
"whatUnlistedCheck": {
"message": "Cette fonctionnalité ralentie légèrement SponsorBlock. La recherche des message commerciaux nécessite l'envoie de l'ID de la vidéo au serveur. Si vous êtes préoccupé par l'envoi de l'ID des vidéos non listées sur Internet, activez cette option."
},
"mobileUpdateInfo": {
"message": "m.youtube.com est maintenant pris en charge"
},
"exportOptions": {
"message": "Importer/Exporter toutes les options"
},
"whatExportOptions": {
"message": "C'est votre configuration complète au format JSON. Elle inclut votre identifiant utilisateur, gardez-la pour vous."
},
"setOptions": {
"message": "Définir les options"
},
"exportOptionsWarning": {
"message": "Attention : La modification des options est permanente et peut casser votre installation. Êtes-vous sûr de vouloir faire ça ? Sauvegardez les anciennes au cas où."
},
"incorrectlyFormattedOptions": {
"message": "Ce JSON n'est pas formaté correctement. Vos options n'ont pas été modifiées."
},
"confirmNoticeTitle": {
"message": "Soumettre le segment"
},
"submit": {
"message": "Soumettre"
},
"cancel": {
"message": "Annuler"
},
"delete": {
"message": "Supprimer"
},
"preview": {
"message": "Aperçu"
},
"edit": {
"message": "Éditer"
},
"copyDebugInformation": {
"message": "Copier les informations de débogage dans le presse-papiers"
},
"copyDebugInformationFailed": {
"message": "Impossible de copier dans le presse-papiers"
},
"copyDebugInformationOptions": {
"message": "Copie les informations dans le presse-papiers pour les fournir aux développeurs lors d'un rapport de bug ou lorsqu'un développeur le demande. Les informations sensibles telles que l'ID d'utilisateur, les chaînes sur liste blanche ou l'adresse du serveur personnalisé ont été supprimées. Cependant, ça contient des informations telles que votre user-agent, votre navigateur, votre système d'exploitation et le numéro de version d'extension. "
},
"copyDebugInformationComplete": {
"message": "Les informations de débogage ont été copiées dans le presse-papiers. N'hésitez pas à supprimer toute information que vous ne préférez pas partager. Enregistrez-les dans un fichier texte ou collez-les dans le rapport de bug."
},
"theKey": {
"message": "La clé"
},
"keyAlreadyUsed": {
"message": "est lié à une autre action. Veuillez sélectionner une autre clé."
},
"to": {
"message": "à",
"description": "Used between sponsor times. Example: 1:20 to 1:30"
},
"category_sponsor": {
"message": "Message commercial"
},
"category_sponsor_description": {
"message": "Promotion rémunérée, parrainage rémunéré et publicité directe. Pas pour l'autopromotion ou les présentations gratuites de causes, de créateurs, de sites web ou de produits qu'ils aiment."
},
"category_intro": {
"message": "Entracte/Animation d'intro"
},
"category_intro_description": {
"message": "Un intervalle sans contenu réel. Peut être une pause, une image statique, une animation répétitive. Ceci ne doit pas être utilisé pour les transitions contenant des informations ou être utilisé sur les vidéos musicales."
},
"category_intro_short": {
"message": "Entracte"
},
"category_outro": {
"message": "Générique de fin"
},
"category_outro_description": {
"message": "Générique de fin ou quand les fiches de fin de vidéo apparaissent. Ne pas utiliser pour les conclusions orales. Ne doit pas inclure de contenu utile. Ne pas utiliser sur les vidéos de musique."
},
"category_interaction": {
"message": "Rappel d'interaction (abonnement)"
},
"category_interaction_description": {
"message": "Lorsqu'il y a un bref rappel pour liker, s'abonner ou les follow parmi le contenu. Si le message est long ou porte sur quelque chose de spécifique, cela devrait plutôt être classé comme une autopromotion."
},
"category_interaction_short": {
"message": "Rappel d'interaction"
},
"category_selfpromo": {
"message": "Non rémunéré/autopromotion"
},
"category_selfpromo_description": {
"message": "Semblable au \"sponsor\", excepté pour la promotion non rémunérée ou l'auto-promotion. Cela inclut les marchandises, les dons et les informations sur leurs collaborateurs."
},
"category_music_offtopic": {
"message": "Musique : Segment non-musicale"
},
"category_music_offtopic_description": {
"message": "A utiliser uniquement dans les vidéos musicales. Cela inclut les introductions ou les fins dans les vidéos."
},
"category_music_offtopic_short": {
"message": "Hors musique"
},
"category_livestream_messages": {
"message": "Stream : lecture de dons et messages"
},
"category_livestream_messages_short": {
"message": "Lecture de messages"
},
"disable": {
"message": "Désactiver"
},
"manualSkip": {
"message": "Passer manuellement"
},
"showOverlay": {
"message": "Afficher dans la barre de progression"
},
"colorFormatIncorrect": {
"message": "Votre couleur est mal formatée. Il devrait s'agir d'un code hexadécimal à 3 ou 6 chiffres avec un signe numérique au début."
},
"previewColor": {
"message": "Couleur en mode aperçu",
"description": "Referring to submissions that have not been sent to the server yet."
},
"seekBarColor": {
"message": "Couleur dans la barre de progression"
},
"category": {
"message": "Catégorie"
},
"skipOption": {
"message": "Option de saut",
"description": "Used on the options page to describe the ways to skip the segment (auto skip, manual, etc.)"
},
"enableTestingServer": {
"message": "Activer le serveur de test bêta"
},
"whatEnableTestingServer": {
"message": "Vos soumissions et votes NE COMPTERONT PAS sur le serveur principal. Utilisez ceci uniquement pour faire des tests."
},
"testingServerWarning": {
"message": "AUCUNE SOUMISSION OU VOTE DE COMPTERA sur le serveur principal tant que vous serez connecté au serveur de test. Désactivez ceci quand vous voudrez réellement soumettre ou voter."
},
"bracketNow": {
"message": "(Maintenant)"
},
"moreCategories": {
"message": "Autres catégories"
},
"chooseACategory": {
"message": "Choisissez une catégorie"
},
"youMustSelectACategory": {
"message": "Vous devez sélectionner une catégorie pour tous les segments que vous soumettez !"
},
"bracketEnd": {
"message": "(Fin)"
},
"hiddenDueToDownvote": {
"message": "masqué : vote négatif"
},
"hiddenDueToDuration": {
"message": "masqué : trop court"
},
"channelDataNotFound": {
"message": "L'ID de la chaîne n'a pas encore été chargé."
},
"adblockerIssue": {
"message": "Il semble que quelque chose empêche SponsorBlock de récupérer les données de la vidéo. C'est probablement votre bloqueur de publicités. Veuillez consulter https://github.com/ajayyy/SponsorBlock/wiki/Fix-Ad-Blocker-Blocking-SponsorBlock's-Requests"
},
"itCouldBeAdblockerIssue": {
"message": "Si ça se reproduit, c'est peut-être causé par votre bloqueur de publicités. Veuillez consulter https://github.com/ajayyy/SponsorBlock/wiki/Fix-Ad-Blocker-Blocking-SponsorBlock's-Requests"
},
"forceChannelCheck": {
"message": "Forcer la vérification de la chaîne avant de passer les message commerciaux"
},
"whatForceChannelCheck": {
"message": "Par défaut, les sponsors seront passés immédiatement, avant même que la chaîne soit connue. Des sponsors au début de la vidéo peuvent être passés sur des chaînes sur liste blanche. Activer cette option empêchera cela mais fera que les messages sponsorisés seront passés avec un petit délai, car la récupération du channelID peut prendre du temps. Ce délai peut être imperceptible si vous avez une connexion rapide."
},
"forceChannelCheckPopup": {
"message": "Envisagez d'activer la vérification forcée de la chaîne avant de passer les messages commerciaux"
},
"downvoteDescription": {
"message": "Segment de mauvaise qualité"
},
"incorrectCategory": {
"message": "Mauvaise catégorie"
},
"nonMusicCategoryOnMusic": {
"message": "Cette vidéo est classée dans les musiques. Êtes-vous sûr de vouloir soumettre des segments non-musicaux ? Vous devriez soumettre ce segment uniquement si la vidéo est de la musique. Veuillez lire les recommandations en cas de confusion."
},
"multipleSegments": {
"message": "Plusieurs segments"
},
"guidelines": {
"message": "Instructions"
},
"readTheGuidelines": {
"message": "Lisez les instructions !!",
"description": "Show the first time they submit or if they are \"high risk\""
},
"categoryUpdate1": {
"message": "Les catégories sont là !"
},
"categoryUpdate2": {
"message": "Ouvrir les options pour sauter les intros, outros, marchandises, etc."
},
"unsubmittedWarning": {
"message": "Notification de segments non soumis"
},
"unsubmittedWarningDescription": {
"message": "Envoyer une notification lorsque vous quittez une vidéo avec des segments qui ne sont pas téléversés"
}
}

View File

@@ -0,0 +1,18 @@
{
"fullName": {
"message": "યુટ્યુબ માટે સ્પોન્સરબ્લોક - સ્પોન્સરશિપ છોડી દો",
"description": "Name of the extension."
},
"400": {
"message": "સર્વરે કહ્યું કે આ વિનંતી અમાન્ય છે"
},
"429": {
"message": "તમે આ એક વિડિઓ માટે ઘણી પ્રાયોજક વખત સબમિટ કરી છે, શું તમને ખાતરી છે કે આ ઘણા છે?"
},
"409": {
"message": "આ અગાઉ રજુ કરવામાં આવી છે"
},
"channelWhitelisted": {
"message": "ચેનલ વ્હાઇટલિસ્ટેડ!"
}
}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1,29 @@
{
"Loading": {
"message": "Betöltés..."
},
"Hide": {
"message": "Sose mutassa"
},
"paused": {
"message": "Szüneteltetve"
},
"save": {
"message": "Mentés"
},
"reset": {
"message": "Visszaállítás"
},
"cancel": {
"message": "Mégse"
},
"delete": {
"message": "Törlés"
},
"preview": {
"message": "Előnézet"
},
"edit": {
"message": "Szerkesztés"
}
}

View File

@@ -0,0 +1,216 @@
{
"fullName": {
"message": "SponsorBlock per YouTube - Salta gli sponsor",
"description": "Name of the extension."
},
"Description": {
"message": "Salta i contenuti sponsorizzati nei video di YouTube. Segnala gli annunci incorporati nei video che guardi per far risparmiare tempo agli altri.",
"description": "Description of the extension."
},
"400": {
"message": "Richiesta non valida"
},
"429": {
"message": "Stai inviando troppi spezzoni per questo video, sei sicuro che ce ne siano così tanti?"
},
"409": {
"message": "Questo spezzone è già stato inviato"
},
"channelWhitelisted": {
"message": "Canale aggiunto alla whitelist!"
},
"Sponsor": {
"message": "sponsorizzazione"
},
"Sponsors": {
"message": "sponsorizzazioni"
},
"Segment": {
"message": "spezzone sponsorizzato"
},
"Segments": {
"message": "spezzoni sponsorizzati"
},
"reportButtonTitle": {
"message": "Segnala"
},
"Dismiss": {
"message": "Chiudi"
},
"Loading": {
"message": "Caricamento..."
},
"Mins": {
"message": "Minuti"
},
"Secs": {
"message": "Secondi"
},
"Hide": {
"message": "Non mostrare più"
},
"hitGoBack": {
"message": "Premi non saltare per tornare da dove sei venuto."
},
"unskip": {
"message": "Non saltare"
},
"reskip": {
"message": "Salta ancora"
},
"paused": {
"message": "In pausa"
},
"confirmMSG": {
"message": "\n\nPer modificare o eliminare valori specifici, premi il pulsante delle informazioni o apri il popup cliccando l'icona dell'estensione nell'angolo in alto a destra."
},
"clearThis": {
"message": "Sei sicuro di volerlo cancellare?\n\n"
},
"Unknown": {
"message": "Si è verificato un errore durante l'invio dello spezzone sponsorizzato, per favore riprova più tardi."
},
"sponsorFound": {
"message": "I contenuti sponsorizzati di questo video sono nel database!"
},
"sponsor404": {
"message": "Nessuna sponsorizzazione trovata"
},
"sponsorStart": {
"message": "La sponsorizzazione inizia adesso"
},
"sponsorEnd": {
"message": "La sponsorizzazione finisce adesso"
},
"noVideoID": {
"message": "Probabilmente questa non è una scheda di YouTube, oppure hai cliccato troppo presto. \nSe sei sicuro di essere in una scheda di YouTube,\n riapri questo popup."
},
"success": {
"message": "Successo!"
},
"voted": {
"message": "Votato!"
},
"connectionError": {
"message": "Si è verificato un errore durante la connessione. Codice errore: "
},
"wantToSubmit": {
"message": "Vuoi inviare gli spezzoni sponsorizzati per il video con id"
},
"leftTimes": {
"message": "Sembra che tu non abbia inviato alcuni spezzoni sponsorizzati. Ritorna alla pagina precedente per inviarli (non sono stati eliminati)."
},
"clearTimes": {
"message": "Cancella gli Spezzoni Sponsorizzati"
},
"openPopup": {
"message": "Apri il Popup di SponsorBlock"
},
"SubmitTimes": {
"message": "Invia gli Spezzoni Sponsorizzati"
},
"submitCheck": {
"message": "Sei sicuro di volerlo inviare?"
},
"whitelistChannel": {
"message": "Aggiungi Canale alla Whitelist"
},
"removeFromWhitelist": {
"message": "Rimuovi Canale dalla Whitelist"
},
"voteOnTime": {
"message": "Vota uno Spezzone Sponsorizzato"
},
"recordTimes": {
"message": "Registra uno Spezzone Sponsorizzato"
},
"soFarUHSubmited": {
"message": "Fino ad ora hai inviato"
},
"savedPeopleFrom": {
"message": "Hai salvato le persone da "
},
"viewLeaderboard": {
"message": "Guarda la classifica"
},
"here": {
"message": "qui"
},
"recordTimesDescription": {
"message": "Premi il pulsante qui sotto quando inizia e finisce la sponsorizzazione per registrarla e\ninviarla al database."
},
"popupHint": {
"message": "Suggerimento: Premi il tasto punto e virgola mentre il video è attivo per segnalare l'inizio/fine di una sponsorizzazione e virgolette per inviare."
},
"lastTimes": {
"message": "Ultimi minutaggi sponsorizzati scelti"
},
"clearTimesButton": {
"message": "Cancella Minutaggi"
},
"submitTimesButton": {
"message": "Invia Minutaggi"
},
"publicStats": {
"message": "Viene utilizzato nelle pagine delle statistiche pubbliche che mostrano quanto hai contribuito. Vedi"
},
"setUsername": {
"message": "Imposta Username"
},
"discordAdvert": {
"message": "Entra nel server Discord ufficiale per darci suggerimenti e feedback!"
},
"hideThis": {
"message": "Nascondi"
},
"Options": {
"message": "Opzioni"
},
"showButtons": {
"message": "Mostra i Pulsanti nel Lettore di YouTube"
},
"hideButtons": {
"message": "Nascondi i Pulsanti nel Lettore di YouTube"
},
"hideButtonsDescription": {
"message": "Nasconde i pulsanti che appaiono nel lettore di YouTube per inviare spezzoni sponsorizzati. Capisco che può essere fastidioso per alcune\n persone. Invece di utilizzare quei pulsanti, è possibile utilizzare questo popup per inviare gli spezzoni sponsorizzati. Per nascondere l'avviso che appare, \nusa il bottone \"Non mostrare più\" nell'avviso. Potrai sempre abilitare nuovamente queste impostazioni in futuro."
},
"showInfoButton": {
"message": "Mostra il Pulsante Informazioni nel Lettore di YouTube"
},
"hideInfoButton": {
"message": "Nascondi il Pulsante Informazioni nel Lettore di YouTube"
},
"whatInfoButton": {
"message": "Questo è il pulsante che apre un popup nella pagina YouTube."
},
"hideDeleteButton": {
"message": "Nascondi il Pulsante Elimina nel Lettore di YouTube"
},
"showDeleteButton": {
"message": "Mostra il Pulsante Elimina nel Lettore di YouTube"
},
"whatDeleteButton": {
"message": "Questo è il pulsante che ti permette di cancellare tutti gli spezzoni sponsorizzati nel lettore di YouTube."
},
"disableViewTracking": {
"message": "Disattiva il Monitoraggio delle Sponsorizzazioni"
},
"enableViewTracking": {
"message": "Disattiva il Monitoraggio delle Sponsorizzazioni"
},
"whatViewTracking": {
"message": "Questa funzione tiene traccia di quali sponsorizzazioni hai saltato per far sapere agli utenti quanto è stato d'aiuto agli altri il loro contributo e\nviene utilizzato come metrica assieme ai voti positivi per filtrare lo spam dal database. L'estensione invia un messaggio\nal server ogni volta che salti una sponsorizzazione. Si spera che la maggior parte delle persone non modifichi questa impostazione così i numeri sono accurati. :)"
},
"showNotice": {
"message": "Mostra di Nuovo l'Avviso"
},
"website": {
"message": "Sito Web",
"description": "Used on Firefox Store Page"
},
"sourceCode": {
"message": "Codice Sorgente",
"description": "Used on Firefox Store Page"
}
}

View File

@@ -0,0 +1,6 @@
{
"fullName": {
"message": "SponserBlock for YouTube - 動画のスポンサーセクションを自動でスキップする",
"description": "Name of the extension."
}
}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1,222 @@
{
"fullName": {
"message": "SponsorBlock voor YouTube - Sla sponsorberichten over",
"description": "Name of the extension."
},
"Description": {
"message": "Sla sponsoring over op YouTube video's. Rapporteer sponsors van video's die je bekijkt om tijd van anderen te besparen.",
"description": "Description of the extension."
},
"400": {
"message": "Server zegt dat het verzoek ongeldig is"
},
"429": {
"message": "Je hebt te veel sponsortijden voor deze video doorgegeven, weet je zeker dat het er zo veel zijn?"
},
"409": {
"message": "Dit is al een keer ingediend"
},
"channelWhitelisted": {
"message": "Kanaal gewhitelist!"
},
"Sponsor": {
"message": "sponsor"
},
"Sponsors": {
"message": "sponsoren"
},
"Segment": {
"message": "Sponsor segment"
},
"Segments": {
"message": "Sponsor segmenten"
},
"upvoteButtonInfo": {
"message": "Stem op deze indiening"
},
"reportButtonTitle": {
"message": "Melden"
},
"reportButtonInfo": {
"message": "Rapporteer deze indiening als onjuist."
},
"Dismiss": {
"message": "Negeren"
},
"Loading": {
"message": "Bezig met laden..."
},
"Mins": {
"message": "Minuten"
},
"Secs": {
"message": "Seconden"
},
"Hide": {
"message": "Nooit weergeven"
},
"hitGoBack": {
"message": "Druk op unskip om naar waar je vandaan komt te gaan."
},
"unskip": {
"message": "Unskip"
},
"reskip": {
"message": "Reskip"
},
"paused": {
"message": "Gepauzeerd"
},
"manualPaused": {
"message": "Timer gestopt"
},
"clearThis": {
"message": "Weet je zeker dat je dit formulier wilt wissen?\n\n"
},
"sponsor404": {
"message": "Geen sponsors gevonden"
},
"sponsorStart": {
"message": "Sponsorschap"
},
"sponsorEnd": {
"message": "Sponshopschap eindigt nu"
},
"noVideoID": {
"message": "Er is geen YouTube-video gevonden op dit tabblad. Als je weet dat dit een YouTube-tabblad is, sluit je deze pop-up en open het opnieuw. Als dat niet werkt, probeer het tabblad opnieuw te laden."
},
"success": {
"message": "Succesvol!"
},
"voted": {
"message": "Gestemd!"
},
"connectionError": {
"message": "Er is een verbindingsfout opgetreden. Foutcode: "
},
"wantToSubmit": {
"message": "Wilt u de sponsor tijden indienen voor video id"
},
"leftTimes": {
"message": "Het lijkt erop dat sommige sponsortijden niet ingezonden zijn. Ga terug naar die pagina om ze in te dienen (deze zijn niet verwijderd)."
},
"clearTimes": {
"message": "Sponsortijden wissen"
},
"viewLeaderboard": {
"message": "Bekijk de ranglijst"
},
"here": {
"message": "hier"
},
"clearTimesButton": {
"message": "Wis tijden"
},
"submitTimesButton": {
"message": "Dien tijden in"
},
"setUsername": {
"message": "Gebruikersnaam instellen"
},
"Options": {
"message": "Opties"
},
"showButtons": {
"message": "Toon knoppen op YouTube Player"
},
"hideButtons": {
"message": "Verberg knoppen op YouTube Player"
},
"showInfoButton": {
"message": "Toon info-knop op YouTube-speler"
},
"hideInfoButton": {
"message": "Verberg info-knop op YouTube Player"
},
"website": {
"message": "Website",
"description": "Used on Firefox Store Page"
},
"sourceCode": {
"message": "Broncode",
"description": "Used on Firefox Store Page"
},
"disableSkipping": {
"message": "SponsorBlock uitschakelen"
},
"enableSkipping": {
"message": "SponsorBlock inschakelen"
},
"502": {
"message": "De server lijkt overbelast te zijn. Probeer het over een paar seconden opnieuw."
},
"errorCode": {
"message": "Foutcode: "
},
"skip": {
"message": "Overslaan"
},
"skipped": {
"message": "Overgeslagen"
},
"disableAutoSkip": {
"message": "Automatisch overslaan uitschakelen"
},
"enableAutoSkip": {
"message": "Automatisch overslaan inschakelen"
},
"autoSkipDescription": {
"message": "Automatisch Overslaan zal sponsors voor u overslaan. Indien uitgeschakeld, zal een bericht vragen of u wilt overslaan."
},
"audioNotification": {
"message": "Audiomelding bij Overslaan"
},
"audioNotificationDescription": {
"message": "Audiomelding bij overslaan zal een geluid afspelen wanneer een sponsor wordt overgeslagen. Indien uitgeschakeld (of automatisch overslaan is uitgeschakeld) wordt er geen geluid afgespeeld."
},
"minLower": {
"message": "minuut"
},
"minsLower": {
"message": "minuten"
},
"hourLower": {
"message": "uur"
},
"hoursLower": {
"message": "uren"
},
"guildlinesSummary": {
"message": "- Zorg ervoor dat uw segment alleen betaalde promoties bevat, niets anders.\n- Zorg ervoor dat het overslaan van dit segment geen waardevolle inhoud overslaat\n- Als de hele video een sponsorsegment is, rapporteer dit alstublieft niet. Binnenkort komt er een systeem om volledige video's te rapporteren.\n- Rapporteer alstublieft geen disclaimers die partijdig kunnen zijn (als een recensievideo gesponsord is, sla deze niet over wanneer ze dit vermelden)."
},
"whatChangeUserID": {
"message": "Dit moet privé blijven. Beschouw dit als wachtwoord en mag met niemand worden gedeeld. Als iemand dit heeft, kunnen ze je imiteren."
},
"autoSkip": {
"message": "Automatisch overslaan"
},
"showSkipNotice": {
"message": "Toon melding na een sponsor is overgeslagen"
},
"minDuration": {
"message": "Minimale duur (seconden):"
},
"showUploadButton": {
"message": "Toon Upload Knop"
},
"customServerAddress": {
"message": "SponsorBlock Serveradres"
},
"save": {
"message": "Bewaren"
},
"mobileUpdateInfo": {
"message": "m.youtube.com wordt nu ondersteund"
},
"submit": {
"message": "Bevestigen"
},
"cancel": {
"message": "Annuleren"
}
}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1,363 @@
{
"fullName": {
"message": "SponsorBlock na YouTube - Omiń reklamy sponsorów",
"description": "Name of the extension."
},
"Description": {
"message": "Przewijaj reklamy sponsorów w filmach na YouTube. Zgłaszaj sponsorzy w filmach żeby oszczędzać czas innych.",
"description": "Description of the extension."
},
"400": {
"message": "Serwer odpowiedział, że to zapytanie jest niepoprawne"
},
"429": {
"message": "Zgłosiłeś za dużo segmentów sponsora dla tego jednego filmu. Jesteś pewien, że jest ich tak dużo?"
},
"409": {
"message": "To już zostało wcześniej zgłoszone"
},
"channelWhitelisted": {
"message": "Kanał dodany do wyjątków!"
},
"Sponsor": {
"message": "sponsor"
},
"Sponsors": {
"message": "sponsorzy"
},
"Segment": {
"message": "segment sponsorowany"
},
"Segments": {
"message": "segmenty sponsorowane"
},
"reportButtonTitle": {
"message": "Zgłoś"
},
"Dismiss": {
"message": "Odrzuć"
},
"Loading": {
"message": "Ładowanie..."
},
"Mins": {
"message": "Minuty"
},
"Secs": {
"message": "Sekundy"
},
"Hide": {
"message": "Nigdy nie pokazuj"
},
"hitGoBack": {
"message": "Kliknij cofnij aby przenieść się do miejsca przed przewinięciem."
},
"unskip": {
"message": "Cofnij"
},
"reskip": {
"message": "Przewiń"
},
"paused": {
"message": "Zatrzymany"
},
"confirmMSG": {
"message": "Żeby zmienić lub usunąć wartości, kliknij na guzik informacji lub otwórz okienko rozszerzenia klikając w ikonę rozszerzenia znajdującą się w prawym górnym rogu."
},
"clearThis": {
"message": "Jesteś pewien, że chcesz to usunąć?\n\n"
},
"Unknown": {
"message": "Wystąpił błąd podczas przesyłania twojego zgłoszenia, proszę spróbować ponownie później."
},
"sponsorFound": {
"message": "Segmenty sponsora dla tego nagrania są już w bazie!"
},
"sponsor404": {
"message": "Nie znaleziono segmentów sponsora"
},
"sponsorStart": {
"message": "Sponsor zaczyna się teraz"
},
"sponsorEnd": {
"message": "Sponsor kończy się teraz"
},
"noVideoID": {
"message": "Nie znaleziono nagrania wideo w tej karcie. Jeśli wiesz, że to karta YouTube'a, zamknij to okienko i otwórz je ponownie. Jeśli to nie zadziała spróbuj przeładować stronę."
},
"success": {
"message": "Sukces!"
},
"voted": {
"message": "Zagłosowano!"
},
"connectionError": {
"message": "Błąd z połączeniem. Kod błędu: "
},
"wantToSubmit": {
"message": "Chcesz zgłosić segment sponsorowany dla filmu z id"
},
"leftTimes": {
"message": "Wygląda na to, że masz nie wysłane segmenty sponsora. Cofnij się do tej strony żeby je zgłosić (nie zostały usunięte)."
},
"clearTimes": {
"message": "Usuń segmenty reklamowe"
},
"openPopup": {
"message": "Otwórz okienko SponsorBlock"
},
"SubmitTimes": {
"message": "Zgłoś segmenty sponsora"
},
"submitCheck": {
"message": "Jesteś pewien, że chcesz to zgłosić?"
},
"whitelistChannel": {
"message": "Dodaj kanał do wyjątków"
},
"removeFromWhitelist": {
"message": "Usuń kanał z listy wyjątków"
},
"voteOnTime": {
"message": "Głosuj na segment sponsora"
},
"recordTimes": {
"message": "Nagraj czasy segmentów sponsorowanych"
},
"soFarUHSubmited": {
"message": "Jak na razie zgłosiłeś:"
},
"savedPeopleFrom": {
"message": "Ocaliłeś ludzi przed "
},
"viewLeaderboard": {
"message": "Zobacz ranking użytkowników"
},
"here": {
"message": "tutaj"
},
"recordTimesDescription": {
"message": "Kliknij guzik poniżej kiedy segment reklamowy się zaczyna i kończy żeby go oznaczyć i wysłać do bazy danych."
},
"popupHint": {
"message": "Podpowiedź: Klikając średnik kiedy zaznaczone jest zgłaszanie wideo możesz oznaczyć początek reklamy, znakiem cytatu oznaczysz jej koniec. (Klawisze można zmienić w opcjach)"
},
"lastTimes": {
"message": "Ostanie wybrane czasy reklam"
},
"clearTimesButton": {
"message": "Usuń czasy"
},
"submitTimesButton": {
"message": "Zgłoś czasy"
},
"publicStats": {
"message": "Ten dane są używane na naszej stronie żeby pokazać twój wkład. Zobacz to"
},
"setUsername": {
"message": "Ustaw nazwę użytkownika"
},
"discordAdvert": {
"message": "Dołącz do oficjalnego serwera na discordzie i podziel się wrażeniami i sugestiami!"
},
"hideThis": {
"message": "Ukryj to"
},
"Options": {
"message": "Opcje"
},
"showButtons": {
"message": "Pokaż guziki w odtwarzaczu YouTube"
},
"hideButtons": {
"message": "Ukryj guziki w odtwarzaczu YouTube"
},
"hideButtonsDescription": {
"message": "Ta opcja ukrywa guziki zgłaszania reklamy w odtwarzaczu. Wiem, że mogą one irytować niektórych. Zamiast zgłaszania bezpośrednio w odtwarzaczu możesz to zrobić w tym okienku. Zawsze możesz zmienić te opcje później."
},
"showInfoButton": {
"message": "Pokaż guzik informacyjny w odtwarzaczu YouTube"
},
"hideInfoButton": {
"message": "Ukryj guzik informacyjny w odtwarzaczu YouTube"
},
"whatInfoButton": {
"message": "Jest to guzik otwierający popup na stronie YouTube."
},
"hideDeleteButton": {
"message": "Ukryj guzik usuwania w odtwarzaczu YouTube"
},
"showDeleteButton": {
"message": "Pokaż guzik usuwania w odtwarzaczu YouTube"
},
"whatDeleteButton": {
"message": "Ten guzik pozwala ci wyczyścić wszystkie segmenty reklamowe w odtwarzaczu YouTube."
},
"disableViewTracking": {
"message": "Wyłącz licznik przewinięć"
},
"enableViewTracking": {
"message": "Włącz licznik przewinięć"
},
"whatViewTracking": {
"message": "Ta opcja śledzi które segmenty pominąłeś i informuje zgłaszających ile czasu Ci zaoszczędzili, też wraz systemem głosowania pomaga wykrywać spam w zgłoszeniach. Rozszerzenie wysyła zapytanie do serwera za każdym razem kiedy przewinąłeś segment reklamowy. Miejmy nadzieję, że większość ludzi tego nie wyłączy i licznik wyświetleń będzie rzetelny. :)"
},
"showNotice": {
"message": "Pokaż informacje ponownie"
},
"website": {
"message": "Strona",
"description": "Used on Firefox Store Page"
},
"sourceCode": {
"message": "Kod źródłowy",
"description": "Used on Firefox Store Page"
},
"noticeUpdate": {
"message": "Informacje zostały zaktualizowane!",
"description": "The first line of the message displayed after the notice was upgraded."
},
"noticeUpdate2": {
"message": "Jeśli nadal jej nie lubisz wybierz opcje nie pokazuj więcej.",
"description": "The second line of the message displayed after the notice was upgraded."
},
"setStartSponsorShortcut": {
"message": "Ustaw klawisz do oznaczania początku reklamy"
},
"setSubmitKeybind": {
"message": "Ustaw klawisz do wysyłania czasów"
},
"keybindDescription": {
"message": "Wybierz klawisz klikając go na klawiaturze"
},
"keybindDescriptionComplete": {
"message": "Ustawiony klawisz to: "
},
"0": {
"message": "Połączenie przerwane z powodu braku odpowiedzi. Sprawdź swoje połączenie z internetem. Jeśli wszystko z nim w porządku oznacza to, że serwer jest prawdopodobnie przeciążony lub nie działa."
},
"disableSkipping": {
"message": "Wyłącz SponsorBlock"
},
"enableSkipping": {
"message": "Włącz SponsorBlock"
},
"yourWork": {
"message": "Twój wkład",
"description": "Used to describe the section that will show you the statistics from your submissions."
},
"502": {
"message": "Serwer jest prawdopodobnie przeciążony, spróbuj ponownie za kilka sekund."
},
"errorCode": {
"message": "Kod błędu: "
},
"skip": {
"message": "Przewiń"
},
"disableAutoSkip": {
"message": "Wyłącz auto przewijanie"
},
"enableAutoSkip": {
"message": "Włącz auto przewijanie"
},
"autoSkipDescription": {
"message": "Auto przewijanie przewinie segment za ciebie, wyłączone wyświetli komunikat z pytaniem czy chcesz przewinąć reklamę."
},
"youHaveSkipped": {
"message": "Przewinąłeś "
},
"youHaveSaved": {
"message": "Oszczędziłeś sobie "
},
"minLower": {
"message": "minuta"
},
"minsLower": {
"message": "minuty"
},
"hourLower": {
"message": "godzina"
},
"hoursLower": {
"message": "godziny"
},
"youHaveSavedTime": {
"message": "Oszczędziłeś ludziom"
},
"youHaveSavedTimeEnd": {
"message": " czasu."
},
"guildlinesSummary": {
"message": "- Upewnij się, że zgłaszany fragment zawiera tylko reklamę i nic więcej.\n- Upewnij się, że nie zostanie przewinięta wartościowa treść\n- Jeśli całe nagranie to reklama, proszę nie zgłaszaj go. Blokowanie całych nagrań pojawi się wkrótce.\n- Nie ukrywaj treści które są istotne dla użytkownika (nie ukrywaj informacji, że recenzja produktu została opłacona przez producenta)"
},
"statusReminder": {
"message": "Wejdź na status.sponsor.ajay.app żeby sprawdzić czy serwer działa."
},
"changeUserID": {
"message": "Zaimportuj/Wyeksportuj swój UserID"
},
"whatChangeUserID": {
"message": "Ta informacja jest poufna i działa jak hasło, użytkownik który ma do niej dostęp może zgłaszać treści jako ty."
},
"setUserID": {
"message": "Ustaw UserID"
},
"userIDChangeWarning": {
"message": "Ostrzeżenie: Zmiana UserID jest nieodwracalna. Jesteś pewien, że chcesz to zrobić? Skopiuj obecny UserID na wszelki wypadek."
},
"createdBy": {
"message": "Stworzony przez"
},
"autoSkip": {
"message": "Auto przewijanie"
},
"showSkipNotice": {
"message": "Pokaż informację po przewiniętym fragmencie"
},
"keybindCurrentlySet": {
"message": ". Jest obecnie ustawione jako:"
},
"supportInvidious": {
"message": "Wesprzyj Invidious"
},
"supportInvidiousDescription": {
"message": "Invidious (invidio.us) to nieoficjalny klient YouTube'a. Aby włączyć dla niego wsparcie musisz przyznać dodatkowe uprawnienia. W Chrome'ie i innych przeglądarkach bazujących na Chromium, ta opcja nie działa w trybie incognito."
},
"optionsInfo": {
"message": "Wesprzyj Invidious, wyłącz auto przewijanie, ukryj guziki i więcej."
},
"addInvidiousInstance": {
"message": "Dodaj instancje Invidious"
},
"addInvidiousInstanceDescription": {
"message": "Dodaj niestandardową instancje Invidious. W formie domeny. Na przykład: invidious.ajay.app"
},
"add": {
"message": "Dodaj"
},
"addInvidiousInstanceError": {
"message": "Ta domena jest nieprawidłowa. Wartość powinna zawierać TYLKO domenę. Na przykład: invidious.ajay.app"
},
"resetInvidiousInstance": {
"message": "Zresetuj listę instancji Invidious"
},
"resetInvidiousInstanceAlert": {
"message": "Zresetujesz listę instancji Invidious"
},
"currentInstances": {
"message": "Obecne instancje:"
},
"minDuration": {
"message": "Minimalny czas trwania (sekundy):"
},
"mobileUpdateInfo": {
"message": "m.youtube.com jest teraz wspierany"
},
"exportOptions": {
"message": "Importuj/Eksportuj wszystkie ustawienia"
},
"copyDebugInformationComplete": {
"message": "Informacje do debugowania zostały skopiowane do schowka. Możesz usunąć dane, których nie chcesz udostępniać. Zapisz je w pliku tekstowym albo wklej do raportu podczas zgłaszania błędu."
}
}

View File

@@ -0,0 +1,586 @@
{
"fullName": {
"message": "SponsorBlock para YouTube - Pule patrocínios",
"description": "Name of the extension."
},
"Description": {
"message": "Pule patrocinadores em vídeos do YouTube. Reporte patrocinadores em videos que você assiste para salvar o tempo dos outros.",
"description": "Description of the extension."
},
"400": {
"message": "O servidor disse que esse pedido foi inválido"
},
"429": {
"message": "Você enviou muitos segmentos para esse vídeo, tem certeza que tem tantos assim?"
},
"409": {
"message": "Isso já foi enviado antes"
},
"channelWhitelisted": {
"message": "Canal adicionado à lista branca!"
},
"Sponsor": {
"message": "patrocinador"
},
"Sponsors": {
"message": "patrocinadores"
},
"Segment": {
"message": "segmento de patrocinador"
},
"Segments": {
"message": "segmentos de patrocinadores"
},
"upvoteButtonInfo": {
"message": "Votar nesse segmento positivamente"
},
"reportButtonTitle": {
"message": "Reportar"
},
"reportButtonInfo": {
"message": "Reportar esse segmento como inválido."
},
"Dismiss": {
"message": "Ignorar"
},
"Loading": {
"message": "Carregando..."
},
"Mins": {
"message": "Minutos"
},
"Secs": {
"message": "Segundos"
},
"Hide": {
"message": "Nunca mostrar"
},
"hitGoBack": {
"message": "Aperta \"reverter pulo\" para voltar onde estava."
},
"unskip": {
"message": "Reverter pulo"
},
"reskip": {
"message": "Pular novamente"
},
"paused": {
"message": "Pausado"
},
"manualPaused": {
"message": "Tempo parado"
},
"confirmMSG": {
"message": "\n\nPara editar ou remover linhas individuais, clique com o botão direito ou abra o popup da extensão pelo icone no canto superior direito."
},
"clearThis": {
"message": "Tem certeza que quer limpar isso?\n\n"
},
"Unknown": {
"message": "Houve um erro ao enviar seus segmentos, tente novamente mais tarde."
},
"sponsorFound": {
"message": "Os patrocinadores desse vídeo estão no banco de dados!"
},
"sponsor404": {
"message": "Nenhum patrocinador encontrado"
},
"sponsorStart": {
"message": "Patrocínio começa agora"
},
"sponsorEnd": {
"message": "Patrocínio termina agora"
},
"noVideoID": {
"message": "Nenhum vídeo do YouTube foi encontrado nesta aba. Se você sabe que esta é uma aba do YouTube, feche este pop-up e abra-o novamente. Se isso não funcionar, tente recarregar a aba."
},
"success": {
"message": "Sucesso!"
},
"voted": {
"message": "Votado!"
},
"serverDown": {
"message": "Parece que o servidor caiu. Contate o desenvolvedor o quanto antes."
},
"connectionError": {
"message": "Ocorreu um erro de conexão. Código de erro: "
},
"wantToSubmit": {
"message": "Quer enviar os segmentos para o vídeo de ID"
},
"leftTimes": {
"message": "Parece que você se esqueceu de enviar alguns segmentos. Volte para aquela página para enviá-los (eles não foram deletados)."
},
"clearTimes": {
"message": "Apagar intervalos dos patrocínios"
},
"openPopup": {
"message": "Abrir o Popup SponsorBlock"
},
"SubmitTimes": {
"message": "Enviar intervalos de patrocínios"
},
"submitCheck": {
"message": "Você tem certeza que deseja enviar isto?"
},
"whitelistChannel": {
"message": "Colocar canal na lista branca"
},
"removeFromWhitelist": {
"message": "Remover canal da lista branca"
},
"voteOnTime": {
"message": "Vote num intervalo de patrocínio"
},
"recordTimes": {
"message": "Grave os intervalos de um patrocínio"
},
"soFarUHSubmited": {
"message": "Até agora, você já enviou"
},
"savedPeopleFrom": {
"message": "Poupaste a outros de "
},
"viewLeaderboard": {
"message": "Ver a leaderboard"
},
"here": {
"message": "aqui"
},
"recordTimesDescription": {
"message": "Clique no botão abaixo quando o patrocínio começa e termina para gravá-lo na base de dados."
},
"popupHint": {
"message": "Dica: Aperte a tecla ponto e vírgula (;) com a janela focada em um vídeo para reportar o começo/fim de um patrocínio e aspas (\") para enviar. (Esta configuração pode ser mudada nas opções.)"
},
"lastTimes": {
"message": "Últimos Intervalos de Patrocínios Seleciados"
},
"clearTimesButton": {
"message": "Limpar Intervalos"
},
"submitTimesButton": {
"message": "Enviar Intervalos"
},
"publicStats": {
"message": "Isso é usado na página pública de estatísticas que mostra o quanto você já contríbuíu. Veja-a"
},
"setUsername": {
"message": "Definir nome de usuário"
},
"discordAdvert": {
"message": "Junte-se ao servidor do discord oficial para dar dicas e sugestões!"
},
"hideThis": {
"message": "Esconder isto"
},
"Options": {
"message": "Opções"
},
"showButtons": {
"message": "Mostrar botões no player do Youtube"
},
"hideButtons": {
"message": "Esconder botões no player do Youtube"
},
"hideButtonsDescription": {
"message": "Isto esconde os botões que aparecem no player do Youtube para submeter patrocínios. Entendemos que possa ser\n incómodo a algumas pessoas. Em vez de usar esses botões pode usar os do popup. Para esconder a mensagem que aparece, \n ususe o botão na mesma que diz \"Don't show this again\". Pode sempre reactivar estas definições novamente."
},
"showInfoButton": {
"message": "Mostrar botão de Informações no player do Youtube"
},
"hideInfoButton": {
"message": "Esconder botão de Informações no player do Youtube"
},
"whatInfoButton": {
"message": "Este é o botão que abre o popup na pagina do Youtube."
},
"hideDeleteButton": {
"message": "Esconder botão de Apagar no player do Youtube"
},
"showDeleteButton": {
"message": "Mostrar botão de Apagar no player do Youtube"
},
"whatDeleteButton": {
"message": "Este é o botão que lhe permite saltar todos os patrocínios do player do Youtube."
},
"disableViewTracking": {
"message": "Desactivar registo de visualização de patrocínios"
},
"enableViewTracking": {
"message": "Activar registo de visualização de patrocínios"
},
"whatViewTracking": {
"message": "Esta funcionalidade regista que patrocínios tem saltado para que outros utilizadores saibam o quanto as suas submições têm ajudado outros\n e é usado como métrica de votos para evitar spam na base de dados. A extenção \n envia uma notificação ao servidor sempre que salta um patrocínio. Quanto menos pessoas desactivarem esta funcionalidade mais precisas serão as estimativas :)"
},
"showNotice": {
"message": "Mostrar notificação outra vez"
},
"longDescription": {
"message": "SponsorBlock é uma extensão que pula patrocínios em vídeos no YouTube. SponsorBlock é uma extensão de navegador que deixa qualquer pessoa enviar o começo e fim de segmentos patrocinados em vídeos no YouTube. Quando uma pessoa envia essa informação, todo mundo com a extensão vai pular essa mesma parte patrocinada. \n\n Você também pode pular introduções, finais do vídeo, lembretes para inscrever e outras categorias.",
"description": "Full description of the extension on the store pages."
},
"website": {
"message": "Site",
"description": "Used on Firefox Store Page"
},
"sourceCode": {
"message": "Código fonte",
"description": "Used on Firefox Store Page"
},
"noticeUpdate": {
"message": "A notificação foi atualizada!",
"description": "The first line of the message displayed after the notice was upgraded."
},
"noticeUpdate2": {
"message": "Se você ainda não gostar dessa, aperte o botão não mostrar novamente.",
"description": "The second line of the message displayed after the notice was upgraded."
},
"setStartSponsorShortcut": {
"message": "Defina a tecla para que marca o início do patrocínio"
},
"setSubmitKeybind": {
"message": "Defina a tecla para enviar o segmento de patrocínio"
},
"keybindDescription": {
"message": "Selecione uma tecla apertando-a"
},
"keybindDescriptionComplete": {
"message": "A tecla foi definida para: "
},
"0": {
"message": "Tempo limite de conexão excedida. Cheque a sua conexão de internet. Se a sua internet estiver funcionando, o servidor está sobrecarregado ou fora do ar."
},
"disableSkipping": {
"message": "Desativar SponsorBlock"
},
"enableSkipping": {
"message": "Ativar SponsorBlock"
},
"yourWork": {
"message": "Suas submissões",
"description": "Used to describe the section that will show you the statistics from your submissions."
},
"502": {
"message": "O servidor parece estar sobrecarregado. Tente novamente em alguns segundos."
},
"errorCode": {
"message": "Código de erro: "
},
"skip": {
"message": "Pular"
},
"skipped": {
"message": "Pulado"
},
"disableAutoSkip": {
"message": "Desativar Salto Automático"
},
"enableAutoSkip": {
"message": "Ativar Salto Automático"
},
"autoSkipDescription": {
"message": "Pular automaticamente irá pular patrocínios por você. Se desabilitado, um aviso irá aparecer perguntando se deseja pular o anúncio."
},
"audioNotification": {
"message": "Notificação de áudio ao pular"
},
"audioNotificationDescription": {
"message": "A notificação de áudio ao pular irá tocar um som sempre que um patrocínio for ignorado. Se desativado (ou o pulo automático estiver desativado), nenhum som será reproduzido."
},
"showTimeWithSkips": {
"message": "Mostrar tempo com pulos removidos"
},
"youHaveSkipped": {
"message": "Você pulou "
},
"youHaveSaved": {
"message": "Você poupou "
},
"minLower": {
"message": "minuto"
},
"minsLower": {
"message": "minutos"
},
"hourLower": {
"message": "hora"
},
"hoursLower": {
"message": "horas"
},
"youHaveSavedTime": {
"message": "Você poupou outros"
},
"youHaveSavedTimeEnd": {
"message": " de suas vidas."
},
"guildlinesSummary": {
"message": "- Certifique-se de que seu segmento contém apenas patrocínio, nada mais.\n- Certifique-se de que pular esse segmento não vai pular conteúdo importante.\n- Se todo o vídeo for patrocinado, por favor não o denuncie. Um sistema completo de relatório de vídeo virá em breve.\n- Por favor, não denuncie avisos de parcialidade do vídeo (se um vídeo de avaliação for patrocinado, não pule quando eles mencionarem que é patrocinado)."
},
"statusReminder": {
"message": "Verifique status.sponsor.ajay.app para o status do servidor."
},
"changeUserID": {
"message": "Importar/Exportar seu ID de usuário"
},
"whatChangeUserID": {
"message": "Isso deve ser mantido em segredo. É como se fosse uma senha e não deve ser compartilhado com ninguém. Se alguém tiver isso, poderá se passar por você."
},
"setUserID": {
"message": "Definir ID de usuário"
},
"userIDChangeWarning": {
"message": "Atenção: A alteração do ID de usuário é permanente. Você tem certeza que deseja fazer isso? Certifique-se de fazer backup de seu ID antigo por precaução."
},
"createdBy": {
"message": "Criado por"
},
"autoSkip": {
"message": "Pular automaticamente"
},
"showSkipNotice": {
"message": "Mostrar aviso após um patrocínio ser ignorado"
},
"keybindCurrentlySet": {
"message": ". Atualmente, está definido para:"
},
"supportInvidious": {
"message": "Apoiar Invidious"
},
"supportInvidiousDescription": {
"message": "Invidious (invidio.us) é um cliente para YouTube de terceiros. Para ativar o apoio, você precisa aceitar as permissões adicionais. Isso não funciona em modo anônimo no Chrome ou em outras variantes do Chromium."
},
"optionsInfo": {
"message": "Ativar apoio ao Invidious, desabilitar pular automaticamente, ocultar botões e mais."
},
"addInvidiousInstance": {
"message": "Adicionar instância do Invidious"
},
"addInvidiousInstanceDescription": {
"message": "Adicionar uma instância personalizada do Invidious. Deve ser formatado com APENAS o domínio. Exemplo: invidious.ajay.app"
},
"add": {
"message": "Adicionar"
},
"addInvidiousInstanceError": {
"message": "Este é um domínio inválido. Ele deve incluir APENAS a parte do domínio. Exemplo: invidious.ajay.app"
},
"resetInvidiousInstance": {
"message": "Redefinir Lista de Instâncias do Invidious"
},
"resetInvidiousInstanceAlert": {
"message": "Você está prestes a redefinir a lista de instâncias do Invidious"
},
"currentInstances": {
"message": "Instâncias Atuais:"
},
"minDuration": {
"message": "Duração mínima (segundos):"
},
"minDurationDescription": {
"message": "Segmentos de patrocinadores menores do que o valor definido não serão pulados ou mostrados no reprodutor."
},
"shortCheck": {
"message": "A seguinte submissão é mais curta do que sua opção de duração mínima. Isto significa que já foi enviada e que está sendo ignorada devido a esta opção. Tem certeza que deseja enviar mesmo assim?"
},
"showUploadButton": {
"message": "Mostrar botão de envio"
},
"whatUploadButton": {
"message": "Este botão aparece no reprodutor do YouTube depois de ter selecionado um carimbo de data/hora e está pronto para ser enviado."
},
"customServerAddress": {
"message": "Endereço do servidor do SponsorBlock"
},
"customServerAddressDescription": {
"message": "Endereço que o SponsorBlock usa para fazer chamadas ao servidor.\nA menos que você tenha sua própria instância de servidor, isso não deve ser alterado."
},
"save": {
"message": "Salvar"
},
"reset": {
"message": "Redefinir"
},
"customAddressError": {
"message": "Este endereço não está na forma correta. Certifique-se de que possui http:// ou https:// no início e sem barras no final."
},
"areYouSureReset": {
"message": "Tem certeza que deseja redefinir?"
},
"confirmPrivacy": {
"message": "O este vídeo está marcado como não listado. Clique em cancelar se você não deseja verificar se há patrocínios."
},
"unlistedCheck": {
"message": "Ignorar vídeos não listados/privados"
},
"whatUnlistedCheck": {
"message": "Esta configuração irá diminuir um pouco o desempenho do SponsorBlock. As pesquisas do patrocinador exigem que se envie o ID do vídeo para o servidor. Se você estiver preocupado com o envio de IDs de vídeo não listados pela internet, habilite essa opção."
},
"mobileUpdateInfo": {
"message": "m.youtube.com agora é suportado"
},
"exportOptions": {
"message": "Importar/Exportar Todas as Opções"
},
"whatExportOptions": {
"message": "Essa suas preferências em JSON. Isso inclui seu ID de usuário, então lembre-se de compartilhar com cuidado."
},
"setOptions": {
"message": "Definir Opções"
},
"exportOptionsWarning": {
"message": "Aviso: Alterar as opções é permanente e pode fazer a extensão parar de funcionar. Tem certeza que deseja fazer isso? Certifique-se de fazer um backup de seu antigo por precaução."
},
"incorrectlyFormattedOptions": {
"message": "Este JSON não está formatado corretamente. Suas opções não foram alteradas."
},
"confirmNoticeTitle": {
"message": "Enviar Segmento"
},
"submit": {
"message": "Enviar"
},
"cancel": {
"message": "Cancelar"
},
"delete": {
"message": "Deletar"
},
"preview": {
"message": "Pré-visualizar"
},
"edit": {
"message": "Editar"
},
"copyDebugInformation": {
"message": "Copiar Informações de Depuração Para Área de Transferência"
},
"copyDebugInformationFailed": {
"message": "Erro ao copiar para a área de transferência"
},
"copyDebugInformationOptions": {
"message": "Copia informações para a área de transferência para serem fornecidas a um desenvolvedor quando houver um bug / quando um solicitado pelo desenvolvedor. Informações sensíveis como seu ID de usuário, canais na lista de permissões e endereço personalizado do servidor foram removidos. No entanto, ele contém informações como seu useragent, navegador, sistema operacional e número de versão de extensão. "
},
"copyDebugInformationComplete": {
"message": "A informação de depuração foi copiada para a área de transferência. Sinta-se à vontade para remover qualquer informação que prefira não compartilhar. Salve em um arquivo de texto ou cole-a no relatório de bug."
},
"theKey": {
"message": "A tecla"
},
"keyAlreadyUsed": {
"message": "está vinculado a outra ação. Por favor, selecione outra tecla."
},
"to": {
"message": "até",
"description": "Used between sponsor times. Example: 1:20 to 1:30"
},
"category_sponsor": {
"message": "Patrocinador"
},
"category_outro": {
"message": "Finalização/Créditos"
},
"category_interaction": {
"message": "Lembrete de interação (inscrever-se)"
},
"category_interaction_short": {
"message": "Lembrete de interação"
},
"category_music_offtopic": {
"message": "Música: Seção sem música"
},
"category_livestream_messages": {
"message": "Livestream: Leituras de Doação/Mensagem"
},
"category_livestream_messages_short": {
"message": "Leitura de mensagens"
},
"disable": {
"message": "Desativar"
},
"manualSkip": {
"message": "Pular manualmente"
},
"showOverlay": {
"message": "Mostrar barra de progresso"
},
"previewColor": {
"message": "Cor de pré-visualização",
"description": "Referring to submissions that have not been sent to the server yet."
},
"seekBarColor": {
"message": "Cor da barra"
},
"category": {
"message": "Categoria"
},
"skipOption": {
"message": "Opção de pulo",
"description": "Used on the options page to describe the ways to skip the segment (auto skip, manual, etc.)"
},
"enableTestingServer": {
"message": "Habilitar Servidor em teste Beta"
},
"whatEnableTestingServer": {
"message": "Seus envios e votos NÃO SERÃO ENVIADOS para o servidor principal. Use isso apenas para testes."
},
"testingServerWarning": {
"message": "Todas os envios e votos NÃO SERÃO ENVIADOS para o servidor principal enquanto se conecta ao servidor de teste. Certifique-se de desativar isso quando você quiser fazer envios reais."
},
"bracketNow": {
"message": "(agora)"
},
"moreCategories": {
"message": "Mais categorias"
},
"bracketEnd": {
"message": "(Fim)"
},
"hiddenDueToDownvote": {
"message": "oculto: Downvote"
},
"hiddenDueToDuration": {
"message": "oculto: muito curto"
},
"channelDataNotFound": {
"message": "ID do canal ainda não carregado."
},
"adblockerIssue": {
"message": "Parece que algo está bloqueando o SponsorBlock de obter dados de vídeo. Isso é provavelmente o seu bloqueador de anúncios. Por favor, verifique https://github.com/ajayyy/SponsorBlock/wiki/Fix-Ad-Blocker-Blocking-SponsorBlock-Requests"
},
"itCouldBeAdblockerIssue": {
"message": "Se isso continuar acontecendo, pode ser causado pelo seu bloqueador de anúncios. Por favor, verifique https://github.com/ajayyy/SponsorBlock/wiki/Fix-Ad-Blocker-Blocking-SponsorBlock-Requests"
},
"forceChannelCheck": {
"message": "Forçar verificação do canal antes de pular os patrocínios"
},
"whatForceChannelCheck": {
"message": "Por padrão, isso pulará os patrocínios imediatamente mesmo antes de saber qual é o canal. Por padrão, alguns patrocinadores de zero segundo podem ser ignorados nos canais da lista branca. Habilitar esta opção evitará isso, mas irá fazer com que todos os saltos tenham um ligeiro atraso, já que obter o channelID pode levar algum tempo. Este atraso pode não ser perceptível se você tiver internet rápida."
},
"forceChannelCheckPopup": {
"message": "Considere habilitar a verificação de canal forçada antes de pular os patrocinadores"
},
"downvoteDescription": {
"message": "Incorreto/tempo errado"
},
"incorrectCategory": {
"message": "Categoria errada"
},
"nonMusicCategoryOnMusic": {
"message": "Este vídeo é classificado como música. Você tem certeza que deseja enviar segmentos com categorias que não são músicas? A menos que esse vídeo não seja de fato música, você não deve enviar esse segmento. Por favor leia as orientações se estiver em dúvidas."
},
"multipleSegments": {
"message": "Multiplos segmentos"
},
"categoryUpdate1": {
"message": "As categorias estão aqui!"
},
"unsubmittedWarning": {
"message": "Notificação de segmentos não enviados"
},
"unsubmittedWarningDescription": {
"message": "Enviar uma notificação quando você sair de um vídeo com segmentos que não foram enviados"
}
}

View File

@@ -0,0 +1,216 @@
{
"fullName": {
"message": "SponsorBlock para o YouTube - Salte patrocínios",
"description": "Name of the extension."
},
"Description": {
"message": "Salte patrocinadores em vídeos do YouTube. Reporte patrocinadores em vídeos que assista para poupar tempo a outros.",
"description": "Description of the extension."
},
"400": {
"message": "O servidor disse que este pedido foi inválido"
},
"429": {
"message": "Enviou muitos segmentos para este vídeo, tem certeza que tem assim tantos?"
},
"409": {
"message": "Isso já foi enviado antes"
},
"channelWhitelisted": {
"message": "Canal adicionado à whitelist!"
},
"Sponsor": {
"message": "patrocinador"
},
"Sponsors": {
"message": "patrocinadores"
},
"Segment": {
"message": "segmento de patrocínio"
},
"Segments": {
"message": "segmentos de patrocínio"
},
"reportButtonTitle": {
"message": "Reportar"
},
"Dismiss": {
"message": "Ignorar"
},
"Loading": {
"message": "A carregar..."
},
"Mins": {
"message": "Minutos"
},
"Secs": {
"message": "Segundos"
},
"Hide": {
"message": "Nunca mostrar"
},
"hitGoBack": {
"message": "Carregue em reverter salto para voltar a onde estava"
},
"unskip": {
"message": "Reverter salto"
},
"reskip": {
"message": "Saltar novamente"
},
"paused": {
"message": "Pausado"
},
"confirmMSG": {
"message": "\n\nPara editar ou remover linhas individuais, carregue com o botão direito ou abra o popup da extensão pelo icone no canto superior direito."
},
"clearThis": {
"message": "Tem certeza que deseja limpar isto?\n\n"
},
"Unknown": {
"message": "Erro ao enviar os seus segmentos, tente novamente mais tarde."
},
"sponsorFound": {
"message": "Os patrocinadores desse vídeo estão no banco de dados!"
},
"sponsor404": {
"message": "Nenhum patrocinador encontrado"
},
"sponsorStart": {
"message": "Patrocínio começa agora"
},
"sponsorEnd": {
"message": "Patrocínio termina agora"
},
"noVideoID": {
"message": "Isto provavelmente não é uma tab do YouTube, ou pode ter clicado muito cedo. \n Se sabe que é uma tab do YouTube,\n feche este popup e abra de novo."
},
"success": {
"message": "Sucesso!"
},
"voted": {
"message": "Votado!"
},
"connectionError": {
"message": "Deu-se um erro de conecção: Código: "
},
"wantToSubmit": {
"message": "Quer enviar os segmentos para o vídeo de ID"
},
"leftTimes": {
"message": "Parece que se esqueceu de enviar alguns segmentos. Retorne à página para os enviar (não foram apagados)."
},
"clearTimes": {
"message": "Apagar intervalos dos patrocínios"
},
"openPopup": {
"message": "Abrir o Popup SponsorBlock"
},
"SubmitTimes": {
"message": "Submeter intervalos dos patrocínios"
},
"submitCheck": {
"message": "Tem a certeza que pretende submeter?"
},
"whitelistChannel": {
"message": "Meter canal na Whitelist"
},
"removeFromWhitelist": {
"message": "Remover canal da Whitelist"
},
"voteOnTime": {
"message": "Vote num intervalo de patrocínio"
},
"recordTimes": {
"message": "Registe um intervalo de patrocínio"
},
"soFarUHSubmited": {
"message": "Até agora submeteu"
},
"savedPeopleFrom": {
"message": "Poupaste a outros de "
},
"viewLeaderboard": {
"message": "Ver a leaderboard"
},
"here": {
"message": "aqui"
},
"recordTimesDescription": {
"message": "Carregue neste botão abaixo quando o patrocínio começar e quando\n acabar para registar e submetê-lo à base de dados"
},
"popupHint": {
"message": "Dica: Carregue na tecla ; enquanto num vídeo para registar o começo/fim de um patrocínio e \" para submeter"
},
"lastTimes": {
"message": "Intervalos de Patrocínios Escolhidos mais Recentemente"
},
"clearTimesButton": {
"message": "Limpar Intervalos"
},
"submitTimesButton": {
"message": "Submeter Intervalos"
},
"publicStats": {
"message": "Isto é usado na página pública de estatísticas que mostra o quanto já contríbuíu. Veje-a"
},
"setUsername": {
"message": "Criar nomde de utilizador"
},
"discordAdvert": {
"message": "Junte-se ao discord oficial para sugerir dicas e sugestões!"
},
"hideThis": {
"message": "Esconder isto"
},
"Options": {
"message": "Opções"
},
"showButtons": {
"message": "Mostrar botões no player do Youtube"
},
"hideButtons": {
"message": "Esconder botões no player do Youtube"
},
"hideButtonsDescription": {
"message": "Isto esconde os botões que aparecem no player do Youtube para submeter patrocínios. Entendemos que possa ser\n incómodo a algumas pessoas. Em vez de usar esses botões pode usar os do popup. Para esconder a mensagem que aparece, \n ususe o botão na mesma que diz \"Don't show this again\". Pode sempre reactivar estas definições novamente."
},
"showInfoButton": {
"message": "Mostrar botão de Informações no player do Youtube"
},
"hideInfoButton": {
"message": "Esconder botão de Informações no player do Youtube"
},
"whatInfoButton": {
"message": "Este é o botão que abre o popup na pagina do Youtube."
},
"hideDeleteButton": {
"message": "Esconder botão de Apagar no player do Youtube"
},
"showDeleteButton": {
"message": "Mostrar botão de Apagar no player do Youtube"
},
"whatDeleteButton": {
"message": "Este é o botão que lhe permite saltar todos os patrocínios do player do Youtube."
},
"disableViewTracking": {
"message": "Desactivar registo de visualização de patrocínios"
},
"enableViewTracking": {
"message": "Activar registo de visualização de patrocínios"
},
"whatViewTracking": {
"message": "Esta funcionalidade regista que patrocínios tem saltado para que outros utilizadores saibam o quanto as suas submições têm ajudado outros\n e é usado como métrica de votos para evitar spam na base de dados. A extenção \n envia uma notificação ao servidor sempre que salta um patrocínio. Quanto menos pessoas desactivarem esta funcionalidade mais precisas serão as estimativas :)"
},
"showNotice": {
"message": "Mostrar notificação outra vez"
},
"website": {
"message": "Site",
"description": "Used on Firefox Store Page"
},
"sourceCode": {
"message": "Código fonte",
"description": "Used on Firefox Store Page"
}
}

View File

@@ -0,0 +1,638 @@
{
"fullName": {
"message": "SponsorBlock pentru YouTube - Sari peste sponsorizări",
"description": "Name of the extension."
},
"Description": {
"message": "Sari peste sponsorizările din videoclipurile de pe YouTube. Adaugă sponsorizări din videoclipurile pe care le urmăriți pentru a salva timpul altora.",
"description": "Description of the extension."
},
"400": {
"message": "Serverul a spus că această cerere este invalidă"
},
"429": {
"message": "Ai trimis prea multe timpuri ale sponsorizărilor pentru acest videoclip, sunteți sigur că sunt atât de multe?"
},
"409": {
"message": "Acest lucru a fost deja trimis înainte"
},
"channelWhitelisted": {
"message": "Canalul a fost adăugat la excepții!"
},
"Sponsor": {
"message": "sponsor"
},
"Sponsors": {
"message": "sponsori"
},
"Segment": {
"message": "segment sponsorizat"
},
"Segments": {
"message": "segmente sponsorizate"
},
"upvoteButtonInfo": {
"message": "Votează această înregistrare"
},
"reportButtonTitle": {
"message": "Raportează"
},
"reportButtonInfo": {
"message": "Raportează această înregistrare ca fiind incorectă."
},
"Dismiss": {
"message": "Renunță"
},
"Loading": {
"message": "Se încarcă..."
},
"Mins": {
"message": "Minute"
},
"Secs": {
"message": "Secunde"
},
"Hide": {
"message": "Nu mai afișa niciodată"
},
"hitGoBack": {
"message": "Apasă unskip pentru a reveni."
},
"unskip": {
"message": "Unskip"
},
"reskip": {
"message": "Sari peste"
},
"paused": {
"message": "Pauză"
},
"manualPaused": {
"message": "Cronometru oprit"
},
"confirmMSG": {
"message": "Pentru a edita sau a șterge valori individuale, apasă butonul de informații sau deschide popup-ul extensiei apăsând iconița extensiei din colțul dreapta sus."
},
"clearThis": {
"message": "Ești sigur că vrei să ștergi asta?\n\n"
},
"Unknown": {
"message": "A apărut o eroare în trimiterea timpilor sponsorizărilor, încearcă din nou mai târziu."
},
"sponsorFound": {
"message": "Sponsorii acestui videoclip se află în baza de date!"
},
"sponsor404": {
"message": "Nu s-a gasit niciun sponsor"
},
"sponsorStart": {
"message": "Sponsorizarea Începe Acum"
},
"sponsorEnd": {
"message": "Sponsorizarea Se Termină Acum"
},
"noVideoID": {
"message": "Nu există niciun videoclip YouTube în aceast tab. Dacă știți că acesta este un tab YouTube, închideți acest popup și deschideți-l din nou. Daca nici asta nu merge, încercați să reîncărcați pagina."
},
"success": {
"message": "Succes!"
},
"voted": {
"message": "Votat!"
},
"serverDown": {
"message": "Se pare că serverul este oprit. Contactează imediat dezvoltatorul."
},
"connectionError": {
"message": "A apărut o eroare de conexiune. Cod de eroare: "
},
"wantToSubmit": {
"message": "Doriți să trimiteți timpii sponsorizărilor pentru acest video id"
},
"leftTimes": {
"message": "Se pare că ați lăsat unii timpi ai sponsorilor netrimiși. Mergeți înapoi la pagina respectivă pentru a îi trimite (timpii nu au fost șterși)."
},
"clearTimes": {
"message": "Șterge Timpii Sponsorizărilor"
},
"openPopup": {
"message": "Deschide Popup-ul SponsorBlock"
},
"SubmitTimes": {
"message": "Trimte Timpii Sponsorizărilor"
},
"submitCheck": {
"message": "Sunteți sigur că doriți să trimiteți asta?"
},
"whitelistChannel": {
"message": "Adaugă Canalul La Excepții"
},
"removeFromWhitelist": {
"message": "Șterge Canalul De La Excepții"
},
"voteOnTime": {
"message": "Votează Timpii Sponsorizărilor"
},
"recordTimes": {
"message": "Înregistrează timpul unei sponsorizări"
},
"soFarUHSubmited": {
"message": "Până acum, ai trimis"
},
"savedPeopleFrom": {
"message": "Ai salvat alte persoane de la "
},
"viewLeaderboard": {
"message": "Vezi clasamentul"
},
"here": {
"message": "aici"
},
"recordTimesDescription": {
"message": "Apasă pe butonul de mai jos când începe o sponsorizare și când se termină pentru a înregistra-o și pentru a o trimite la baza de date."
},
"popupHint": {
"message": "Indiciu: Apasă pe tasta punct și virgulă în timp ce ești centrat pe videoclip pentru a raporta începutul/finalul unei sponsorizări și apasă pe ghilimele pentru a o trimite. (Acest lucru poate fi schimbat din opțiuni)"
},
"lastTimes": {
"message": "Ultimii Timpi Ai Mesajului Sponsorizat Aleși"
},
"clearTimesButton": {
"message": "Șterge Timpii"
},
"submitTimesButton": {
"message": "Trimite Timpii"
},
"publicStats": {
"message": "Acest lucru este folosit pe pagina publică de statistici pentru a arăta cât de mult ai contribuit. Vezi pagina"
},
"setUsername": {
"message": "Setează Numele De Utilizator"
},
"discordAdvert": {
"message": "Vino și alătură-te serverului oficial de discord pentru a oferi sugestii și feedback!"
},
"hideThis": {
"message": "Ascunde asta"
},
"Options": {
"message": "Opţiuni"
},
"showButtons": {
"message": "Arată Butoanele Pe Playerul De YouTube"
},
"hideButtons": {
"message": "Ascunde Butoanele Pe Playerul De YouTube"
},
"hideButtonsDescription": {
"message": "Asta ascunde butoanele ce apar pe playerul de YouTube pentru a trimite segmente."
},
"showInfoButton": {
"message": "Arată Butoanele De Informații Pe Playerul De YouTube"
},
"hideInfoButton": {
"message": "Ascunde Butoanele De Informații Pe Playerul De YouTube"
},
"whatInfoButton": {
"message": "Acesta este butonul care deschide popup-ul pe pagina de YouTube."
},
"hideDeleteButton": {
"message": "Ascunde Butonul De Ștergere Pe Playerul De YouTube"
},
"showDeleteButton": {
"message": "Arată Butonul De Ștergere Pe Playerul De YouTube"
},
"whatDeleteButton": {
"message": "Acest buton de pe playerul de YouTube va șterge toate segmentele netrimise pentru videoclipul curent."
},
"disableViewTracking": {
"message": "Dezactivează Urmărirea Săriturilor"
},
"enableViewTracking": {
"message": "Activează Urmărirea Săriturilor"
},
"whatViewTracking": {
"message": "Acest lucru urmărește peste ce sponsori ai sărit pentru a informa utilizatorii cât de mult înregistrările lor i-au ajutat pe alții și\neste folosit ca un contor împreună cu upvoturile pentru a ne asigura că spamul nu pătrunde în baza de date. Extensia trimite un mesaj\nserverului de fiecare dată când sari peste un sponsor. Sperăm că majoritatea oamenilor nu vor schimba această setare astfel că numerele să fie exacte. :)"
},
"showNotice": {
"message": "Arată Notificarea Din Nou"
},
"longDescription": {
"message": "SponsorBlock este o extensie care va sări peste segmentele sponsorizate din videoclipurile de pe YouTube. SponsorBlock este o extensie crowdsourced care lasă pe oricine să trimită începutul și finalul segmentelor sponsorizate din videoclipurile de pe YouTube. Odată ce o persoană trimite aceste informații, toată lumea cu această extensie va sări peste acel segment sponsorizat. \n\n Poți de asemenea să sari peste intro-uri, outro-uri, amintiri de abonare și alte categorii.",
"description": "Full description of the extension on the store pages."
},
"website": {
"message": "Website",
"description": "Used on Firefox Store Page"
},
"sourceCode": {
"message": "Cod Sursă",
"description": "Used on Firefox Store Page"
},
"noticeUpdate": {
"message": "Notificarea a fost actualizată!",
"description": "The first line of the message displayed after the notice was upgraded."
},
"noticeUpdate2": {
"message": "Dacă nu îți place, apasă butonul nu mai arăta niciodată.",
"description": "The second line of the message displayed after the notice was upgraded."
},
"setStartSponsorShortcut": {
"message": "Setează tasta pentru pornirea sponsorizării"
},
"setSubmitKeybind": {
"message": "Setează tasta pentru trimiterea sponsorizării"
},
"keybindDescription": {
"message": "Selectează o tastă apasând-o"
},
"keybindDescriptionComplete": {
"message": "Tasta a fost setată la: "
},
"0": {
"message": "Eroare de Conexiune. Verifică-ți conexiunea la internet. Daca internetul functionează, serverul este probabil supraîncărcat sau a căzut."
},
"disableSkipping": {
"message": "Dezactivează SponsorBlock"
},
"enableSkipping": {
"message": "Activează SponsorBlock"
},
"yourWork": {
"message": "Munca Ta",
"description": "Used to describe the section that will show you the statistics from your submissions."
},
"502": {
"message": "Serverul pare să fie supraîncărcat. Încercați din nou în câteva secunde."
},
"errorCode": {
"message": "Codul Erorii: "
},
"skip": {
"message": "Sari"
},
"skipped": {
"message": "Sărit"
},
"disableAutoSkip": {
"message": "Dezactivează Autoskip"
},
"enableAutoSkip": {
"message": "Activează Autoskip"
},
"autoSkipDescription": {
"message": "Autoskip va sări automat peste segmentele sponsorizate pentru tine. Dacă este dezactivată, o notificare va apărea care vă va întreba dacă doriți să săriți peste."
},
"audioNotification": {
"message": "Notificare Audio Când Sari"
},
"audioNotificationDescription": {
"message": "Notificarea audio va reda un sunet atunci când sari peste un segement sponsorizat. Daca este dezactivat (sau autoskip este dezactivat), niciun sunet nu va fi redat."
},
"showTimeWithSkips": {
"message": "Arată timpul cu săriturile eliminate"
},
"showTimeWithSkipsDescription": {
"message": "Acest timp apare în paranteze lângă ora curentă sub bara de progres. Aceasta arată durata totală a videoclipului minus orice segment. Aceasta include segmente marcate doar ca \"Afișare în Seekbar\"."
},
"youHaveSkipped": {
"message": "Ai sărit peste "
},
"youHaveSaved": {
"message": "V-ați salvat "
},
"minLower": {
"message": "minut"
},
"minsLower": {
"message": "minute"
},
"hourLower": {
"message": "oră"
},
"hoursLower": {
"message": "ore"
},
"youHaveSavedTime": {
"message": "Ai salvat alte persoane"
},
"youHaveSavedTimeEnd": {
"message": " din viața lor."
},
"guildlinesSummary": {
"message": "- Asigurați-vă că segmentul conține doar promoții plătite, nimic altceva.\n- Asigurați-vă că dacă săriți peste acest segment nu săriți și peste conținut valoros\n- Dacă tot videoclipul este o sponsorizare, vă rugăm să nu îl trimiteți. Un sistem de trimitere a întregului videoclip este în lucru.\n- Vă rugăm să nu trimiteți mențiunile că videoclipul este sponsorizat care ar putea arăta favoritismul (spre exemplu dacă un videoclip de tip review este sponsorizat, nu trimiteți mențiunea că acel videoclip este sponsorizat)."
},
"statusReminder": {
"message": "Verificați status.sponsor.ajay.app pentru starea serverului."
},
"changeUserID": {
"message": "Importă/Exportă Id-ul Tău De Utilizator"
},
"whatChangeUserID": {
"message": "Acest lucru trebuie să fie păstrat. Este ca și o parolă și nu ar trebui împartășită cu nimeni. Daca cineva are acest lucru, se poate da drept tu."
},
"setUserID": {
"message": "Setează Id-ul Utilizatorului"
},
"userIDChangeWarning": {
"message": "Atenție: Schimbarea Id-ului Utilizatorului este permanentă. Sunteți sigur că doriți să faceți asta? Asigurați-vă că ați făcut o copie de rezervă."
},
"createdBy": {
"message": "Creat De"
},
"autoSkip": {
"message": "Sari Peste Automat"
},
"showSkipNotice": {
"message": "Arată O Notificare După Ce Am Sărit Peste O Sponsorizare"
},
"keybindCurrentlySet": {
"message": ". În prezent este setat:"
},
"supportInvidious": {
"message": "Sprijină Invidious"
},
"supportInvidiousDescription": {
"message": "Invidious (invidio.us) este un client YouTube terț. Pentru a susține, trebuie să acceptați permisiunile suprimentare. Această funcție NU funcționează în incognito pe Chrome sau în alte variante Chromium."
},
"optionsInfo": {
"message": "Activează suportul Invidious, dezactivează autoskip-ul, ascunde butoanele și altele."
},
"addInvidiousInstance": {
"message": "Adaugă O Instanță Invidious"
},
"addInvidiousInstanceDescription": {
"message": "Adaugă o instanță personalizată Invidious. Aceasta trebuie să fie formatată DOAR cu domeniul. Exemplu: invidious.ajay.app"
},
"add": {
"message": "Adaugă"
},
"addInvidiousInstanceError": {
"message": "Acesta este un domeniu invalid. Acesta trebuie să includă DOAR partea de domeniu. Exemplu: invidious.ajay.app"
},
"resetInvidiousInstance": {
"message": "Resetează Lista De Instanțe Invidious"
},
"resetInvidiousInstanceAlert": {
"message": "Sunteți pe cale să resetați lista de instanțe Invidious"
},
"currentInstances": {
"message": "Instanțele curente:"
},
"minDuration": {
"message": "Durată minimă (secunde):"
},
"minDurationDescription": {
"message": "Segmentele de sponsor mai scurte decât valoarea setată nu vor fi omise sau afișate în player."
},
"shortCheck": {
"message": "Următoarea înregistrare este mai mică decât opțiunea voastră de durată minimă. Acest lucru ar putea însemna că a fost deja trimisă și a fost ignorat datorită acestei opțiuni. Sunteți sigur că doriți să trimiteți?"
},
"showUploadButton": {
"message": "Arată Butonul De Încărcare"
},
"whatUploadButton": {
"message": "Acest buton apare pe playerul YouTube după ce ați selectat un marcaj de timp și sunteți gata să îl trimiteți."
},
"customServerAddress": {
"message": "Adresa Serverului SponsorBlock"
},
"customServerAddressDescription": {
"message": "Adresa SponsorBlock este folosită pentru a se efectua apeluri către server.\nDacă nu ai propriul tău server, acesta nu ar trebui modificat."
},
"save": {
"message": "Salvează"
},
"reset": {
"message": "Resetează"
},
"customAddressError": {
"message": "Adresa nu este în forma corectă. Asigurați-vă că http:// sau https:// se află la început."
},
"areYouSureReset": {
"message": "Sunteți sigur că doriți să resetați asta?"
},
"confirmPrivacy": {
"message": "Acest videoclip a fost detectat ca nelistat. Apasă anulați dacă nu doriți să verificați sponsorii."
},
"unlistedCheck": {
"message": "Ignoră Videoclipurile Nelistate/Private"
},
"whatUnlistedCheck": {
"message": "Această setare va încetini puțin SponsorBlock. Căutările segmentelor sponsorizate necesită trimiterea ID-ului videoclipului către server. Dacă sunteți îngrijorat de trimiterea ID-ul videoclipurilor nelistate, activați această opțiune."
},
"mobileUpdateInfo": {
"message": "m.youtube.com este acum suportat"
},
"exportOptions": {
"message": "Importă/Exportă Toate Opțiunile"
},
"whatExportOptions": {
"message": "Aceasta este întreaga configurație în format JSON. Asta include si ID-ul tău de utilizator, așa că fi sigur să împărtășești asta cu înțelepciune."
},
"setOptions": {
"message": "Setează Opțiuni"
},
"exportOptionsWarning": {
"message": "Atenție: Schimbarea acestei opțiuni este permanentă și poate strica instalarea. Sunteți sigur că doriți să faceți asta? Asigurati-vă că ați făcut o copie de rezervă."
},
"incorrectlyFormattedOptions": {
"message": "Acest JSON nu este formatat corect. Opțiunile dumneavoastră nu au fost modificate."
},
"confirmNoticeTitle": {
"message": "Trimite Segment"
},
"submit": {
"message": "Trimite"
},
"cancel": {
"message": "Anulează"
},
"delete": {
"message": "Șterge"
},
"preview": {
"message": "Previzualizare"
},
"edit": {
"message": "Editare"
},
"copyDebugInformation": {
"message": "Copiază Informațiile de Depanare În Clipboard"
},
"copyDebugInformationFailed": {
"message": "Eroare la scrierea în clipboard"
},
"copyDebugInformationOptions": {
"message": "Copiază informația în clipboard pentru a fi furnizată dezvoltatorului când se găsește o eroare / când un dezvoltator o cere. Informațiile sensibile precum ID-ul de utilizator, canale exceptate, și adresa serverului personalizat au fost șterse. Însă conține informații precum useragent-ul, browser-ul, sistemul de operare, și numărul versiunii extensiei. "
},
"copyDebugInformationComplete": {
"message": "Informația de depanare a fost copiată în clipboard. Puteți elimina orice informație pe care nu doriți să o partajați. Salvați într-un fișier sau lipiți-o în raportul de erori."
},
"theKey": {
"message": "Tasta"
},
"keyAlreadyUsed": {
"message": "este deja setată la o altă acțiune. Vă rugăm să selectați o altă tastă."
},
"to": {
"message": "până la",
"description": "Used between sponsor times. Example: 1:20 to 1:30"
},
"category_sponsor": {
"message": "Sponsor"
},
"category_sponsor_description": {
"message": "Promovare plătită, refferali plătiți și reclame directe. Nu pentru autopromovări sau promovări gratis ale cauzelor/creatorilor/website-urilor/produselor."
},
"category_intro": {
"message": "Pauză/Animație Intro"
},
"category_intro_description": {
"message": "Un interval fără conținut real. Poate fi o pauză, un cadru static, o animație care se repetă. Acestea nu ar trebui utilizate pentru tranziții care conțin informații sau nu ar trebui utilizate pe videoclipuri muzicale."
},
"category_intro_short": {
"message": "Pauză"
},
"category_outro": {
"message": "Ecran De Final/Credite"
},
"category_outro_description": {
"message": "Credite sau când ecranul de final YouTube apare. Nu pentru concluzii vorbite. Nu ar trebui să includă conținut util. Nu ar trebui folosit în videoclipuri muzicale."
},
"category_interaction": {
"message": "Reamintire de Interactiune (Abonare)"
},
"category_interaction_description": {
"message": "Când există o scurtă remintire pentru like, abonare sau urmărire în mijlocul conținutului. Daca este mai lung sau despre ceva specific, folosiți autopromovarea."
},
"category_interaction_short": {
"message": "Reamintire de Interacțiune"
},
"category_selfpromo": {
"message": "Promovare neplătită/autopromovare"
},
"category_selfpromo_description": {
"message": "Similar cu \"sponsorizare\" doar că este neplătit sau autopromovare. Aceasta include secțiuni despre merchandise, donații, sau informații despre cei cu care au colaborat."
},
"category_music_offtopic": {
"message": "Muzică: Secţiune Non-Muzicală"
},
"category_music_offtopic_description": {
"message": "Doar pentru videoclipuri muzicale. Include introducțiile sau outro-urile în videoclipurile muzicale."
},
"category_music_offtopic_short": {
"message": "Non-Muzical"
},
"category_livestream_messages": {
"message": "Transmisiune În Direct: Donație/Citirea Mesajelor"
},
"category_livestream_messages_short": {
"message": "Citire Mesaj"
},
"disable": {
"message": "Dezactivare"
},
"manualSkip": {
"message": "Sari Peste Manual"
},
"showOverlay": {
"message": "Arată În Bara de Derulare"
},
"colorFormatIncorrect": {
"message": "Culoarea ta este formatată incorect. Ar trebui să fie un cod hexadecimal de 3 sau 6 cifre cu un hash la început."
},
"previewColor": {
"message": "Previzualizare Culoare",
"description": "Referring to submissions that have not been sent to the server yet."
},
"seekBarColor": {
"message": "Culoarea Barei de Derulare"
},
"category": {
"message": "Categorie"
},
"skipOption": {
"message": "Opțiunea Săriturii",
"description": "Used on the options page to describe the ways to skip the segment (auto skip, manual, etc.)"
},
"enableTestingServer": {
"message": "Activează Serverul de Teste"
},
"whatEnableTestingServer": {
"message": "Înregistrările și voturile dumneavoastră NU VOR FI CONTORIZATE pe serverul principal. Utilizați asta doar pentru teste."
},
"testingServerWarning": {
"message": "Toate înregistrările și voturile dumneavoastră NU VOR FI CONTORIZATE pe serverul principal în timp ce vă conectați la serverul de teste. Asigurați-vă că dezactivați asta când vreți să trimiteți înregistrări reale."
},
"bracketNow": {
"message": "(Acum)"
},
"moreCategories": {
"message": "Mai multe categorii"
},
"chooseACategory": {
"message": "Alege o categorie"
},
"youMustSelectACategory": {
"message": "Trebuie să selectaţi o categorie pentru toate segmentele pe care le trimiteţi!"
},
"bracketEnd": {
"message": "(Sfârșit)"
},
"hiddenDueToDownvote": {
"message": "ascuns: downvote"
},
"hiddenDueToDuration": {
"message": "ascuns: prea scurt"
},
"channelDataNotFound": {
"message": "ID-ul Canalului nu a fost încărcat încă."
},
"adblockerIssue": {
"message": "Se pare că ceva blocheaza abilitatea extensiei SponsorBlock pentru a obține datele videoclipului. Cel mai probabil este adblocker-ul dumneavoastră. Vă rugăm să verificați https://github.com/ajayyy/SponsorBlock/wiki/Fix-Ad-Blocker-Blocking-SponsorBlock's-Requests"
},
"itCouldBeAdblockerIssue": {
"message": "Dacă acest lucru continuă să se întample, ar putea fi cauzat de adblocker-ul dumneavoastră. Vă rugăm să verificați \nhttps://github.com/ajayyy/SponsorBlock/wiki/Fix-Ad-Blocker-Blocking-SponsorBlock's-Requests"
},
"forceChannelCheck": {
"message": "Forțează Verificarea Canalului Înainte De A Sări Peste Sponsorizări"
},
"whatForceChannelCheck": {
"message": "În mod implicit, va sări peste sponsorizări chiar și înainte de a ști ce canal este. În mod implicit, s-ar putea să se sară și peste unele sponsorizări ce încep la secunda zero din canalele excluse. Activând această opțiune va preveni asta, dar va face ca toate săriturile să aibă o ușoară întârziere, deoarece obținerea Id-ului canalului poate dura ceva timp. Această întărziere poate fi neobservată daca aveți internet rapid."
},
"forceChannelCheckPopup": {
"message": "Consideră Activarea Forțării Verificarii Canalului Înainte De A Sări Peste Sponsorizări"
},
"downvoteDescription": {
"message": "Timpi Incorecți/Greșiți"
},
"incorrectCategory": {
"message": "Categorie Greșită"
},
"nonMusicCategoryOnMusic": {
"message": "Categoria acestui videoclip este muzică. Sunteți sigur că doriți să trimiteți segmente non-muzicale? Dacă acest videoclip nu este de fapt muzică, nu ar trebui să trimiteți acest segment. Vă rugăm să citiți recomandările dacă sunteți confuz."
},
"multipleSegments": {
"message": "Segmente Multiple"
},
"guidelines": {
"message": "Instrucțiuni"
},
"readTheGuidelines": {
"message": "Citește Instrucțiunile!!",
"description": "Show the first time they submit or if they are \"high risk\""
},
"categoryUpdate1": {
"message": "Categoriile sunt aici!"
},
"categoryUpdate2": {
"message": "Deschide opțiunile pentru a sări peste intro-uri, outro-uri, merch, etc."
},
"unsubmittedWarning": {
"message": "Notificare Segmente Netrimise"
},
"unsubmittedWarningDescription": {
"message": "Trimite o notificare atunci când părăsești un video cu segmente care nu au fost încărcate"
}
}

View File

@@ -0,0 +1,444 @@
{
"fullName": {
"message": "SponsorBlock для YouTube - Пропускайте спонсорские вставки",
"description": "Name of the extension."
},
"Description": {
"message": "Пропускайте спонсорские вставки в видео на YouTube. Сообщайте о спонсорских вставках в видео, которые Вы смотрите, чтобы сэкономить время других пользователей.",
"description": "Description of the extension."
},
"400": {
"message": "Сервер отклонил этот запрос."
},
"429": {
"message": "Вы отправили слишком много спонсоров для этого видео. Вы уверены, что их так много?"
},
"409": {
"message": "Этот запрос был отправлен ранее."
},
"channelWhitelisted": {
"message": "Канал добавлен в белый список!"
},
"Sponsor": {
"message": "спонсора"
},
"Sponsors": {
"message": "спонсоров"
},
"Segment": {
"message": "спонсорская вставка"
},
"Segments": {
"message": "спонсорские вставки"
},
"reportButtonTitle": {
"message": "Ошибка"
},
"Dismiss": {
"message": "Закрыть"
},
"Loading": {
"message": "Загрузка..."
},
"Mins": {
"message": "мин"
},
"Secs": {
"message": "сек"
},
"Hide": {
"message": "Не показывать"
},
"hitGoBack": {
"message": "Нажмите «Назад», чтобы вернуться обратно."
},
"unskip": {
"message": "Назад"
},
"reskip": {
"message": "Пропустить"
},
"paused": {
"message": "Пауза"
},
"manualPaused": {
"message": "Таймер остановлен"
},
"confirmMSG": {
"message": "\n\nЧтобы изменить или удалить отдельные значения, нажмите кнопку «Информация» или откройте всплывающее окно расширения, щелкнув значок расширения в правом верхнем углу."
},
"clearThis": {
"message": "Вы уверены, что хотите удалить эту информацию?\n\n"
},
"Unknown": {
"message": "При отправке отчета о спонсорском сегменте произошла ошибка. Попытайтесь отправить его позже."
},
"sponsorFound": {
"message": "Спонсоры этого видео уже находятся в базе данных!"
},
"sponsor404": {
"message": "Спонсорские вставки не найдены"
},
"sponsorStart": {
"message": "Спонсорская вставка начинается сейчас"
},
"sponsorEnd": {
"message": "Спонсорская вставка оканчивается сейчас"
},
"noVideoID": {
"message": "Возможно, это не вкладка YouTube, или Вы нажали слишком рано. \n Если это вкладка YouTube,\n закройте это всплывающее окно и откройте его снова."
},
"success": {
"message": "Успех!"
},
"voted": {
"message": "Голос засчитан!"
},
"connectionError": {
"message": "Ошибка соединения. Код ошибки: "
},
"wantToSubmit": {
"message": "Вы точно хотите отправить отчёт о спонсорских вставках в видео с идентификатором"
},
"leftTimes": {
"message": "Вы ещё не отправили отчёты о некоторых спонсорских вставках. Хотите вернуться на эту страницу, чтобы отправить их (они не удаляются)."
},
"clearTimes": {
"message": "Удалить отмеченные сегменты"
},
"openPopup": {
"message": "Открыть всплывающее окно SponsorBlock"
},
"SubmitTimes": {
"message": "Отправить отмеченные сегменты"
},
"submitCheck": {
"message": "Вы уверены, что хотите отправить эту информацию?"
},
"whitelistChannel": {
"message": "Добавить канал в белый список"
},
"removeFromWhitelist": {
"message": "Удалить канал из белого списка"
},
"voteOnTime": {
"message": "Проголосовать за время спонсорской вставки"
},
"recordTimes": {
"message": "Записать время спонсорской вставки"
},
"soFarUHSubmited": {
"message": "На данный момент Вы отправили"
},
"savedPeopleFrom": {
"message": "Вы помогли людям сэкономить "
},
"viewLeaderboard": {
"message": "Посмотреть доску почёта"
},
"here": {
"message": "здесь"
},
"recordTimesDescription": {
"message": "Нажмите кнопку ниже, когда спонсорская вставка начинается и заканчивается, чтобы записать\nи отправить её в базу данных."
},
"popupHint": {
"message": "Подсказка: нажмите ;, чтобы сообщить начало/конец спонсорской вставки, и \", чтобы отправить. (Это можно изменить в настройках)"
},
"lastTimes": {
"message": "Последнее выбранное время спонсорской вставки"
},
"clearTimesButton": {
"message": "Очистить время"
},
"submitTimesButton": {
"message": "Отправить время"
},
"publicStats": {
"message": "Оно используется на публичной странице статистики, чтобы показать Ваш вклад. Её можно посмотреть "
},
"setUsername": {
"message": "Установить имя пользователя"
},
"discordAdvert": {
"message": "Присоединяйтесь к официальному серверу Discord, чтобы оставить предложения и обратную связь!"
},
"hideThis": {
"message": "Скрыть это"
},
"Options": {
"message": "Настройки"
},
"showButtons": {
"message": "Показывать кнопки в плеере YouTube"
},
"hideButtons": {
"message": "Скрыть кнопки в плеере YouTube"
},
"hideButtonsDescription": {
"message": "Эта настройка скрывает кнопки для отправки спонсорских вставок, которые появляются в плеере YouTube. Они могут раздражать\n некоторых. Вместо кнопок для отправки спонсорских вставок можно использовать это всплывающее окно. Чтобы скрыть\nуведомление, нажмите кнопку \"Не показывать снова\" в уведомлении. Вы всегда сможете включить эти настройки обратно."
},
"showInfoButton": {
"message": "Показывать кнопку информации в плеере YouTube"
},
"hideInfoButton": {
"message": "Скрыть кнопку информации в плеере YouTube"
},
"whatInfoButton": {
"message": "Эта кнопка открывает всплывающее окно на странице YouTube."
},
"hideDeleteButton": {
"message": "Скрыть кнопку удаления в плеере YouTube"
},
"showDeleteButton": {
"message": "Показывать кнопку удаления в плеере YouTube"
},
"whatDeleteButton": {
"message": "Эта кнопка позволяет Вам очистить все спонсорские вставки в плеере YouTube."
},
"disableViewTracking": {
"message": "Отключить отслеживание количества пропусков спонсорских вставок"
},
"enableViewTracking": {
"message": "Включить отслеживание количества пропусков спонсорских вставок"
},
"whatViewTracking": {
"message": "Эта возможность отслеживает, какие спонсорские вставки Вы пропустили, чтобы помочь пользователям узнать, насколько их\nвклад помог другим, и используется как метрика, чтобы убедиться, что спам не попадает в базу данных. Расширение отправляет\nсообщение на сервер каждый раз, когда Вы пропускаете спонсорскую вставку. Надеемся, большая часть пользователей не поменяет эту настройку, так что у нас будет точная статистика просмотров :)"
},
"showNotice": {
"message": "Показывать уведомление снова"
},
"website": {
"message": "Сайт",
"description": "Used on Firefox Store Page"
},
"sourceCode": {
"message": "Исходный код",
"description": "Used on Firefox Store Page"
},
"noticeUpdate": {
"message": "Уведомление было обновлено!",
"description": "The first line of the message displayed after the notice was upgraded."
},
"noticeUpdate2": {
"message": "Если оно Вам всё равно не нравится, нажмите \"не показывать\".",
"description": "The second line of the message displayed after the notice was upgraded."
},
"setStartSponsorShortcut": {
"message": "Назначить горячую клавишу для начала спонсорской вставки"
},
"setSubmitKeybind": {
"message": "Назначить горячую клавишу для отправки"
},
"keybindDescription": {
"message": "Нажмите клавишу, чтобы выбрать её"
},
"keybindDescriptionComplete": {
"message": "Клавиша назначена на: "
},
"0": {
"message": "Таймаут подключения. Проверьте ваше соединение с интернетом. Если ваш интернет работает, сервер, скорее всего, перегружен или лежит."
},
"disableSkipping": {
"message": "Отключить SponsorBlock"
},
"enableSkipping": {
"message": "Включить SponsorBlock"
},
"yourWork": {
"message": "Ваша работа",
"description": "Used to describe the section that will show you the statistics from your submissions."
},
"502": {
"message": "Похоже, сервер перегружен. Попробуйте ещё раз через несколько секунд."
},
"errorCode": {
"message": "Код ошибки: "
},
"skip": {
"message": "Пропустить"
},
"skipped": {
"message": "Пропущено"
},
"disableAutoSkip": {
"message": "Отключить автоматический пропуск"
},
"enableAutoSkip": {
"message": "Включить автоматический пропуск"
},
"autoSkipDescription": {
"message": "Автоматический пропуск будет пропускать спонсорские вставки за Вас. Если выключено, будет показываться уведомление с предложением пропустить."
},
"audioNotification": {
"message": "Аудио уведомление при пропуске"
},
"audioNotificationDescription": {
"message": "Аудио уведомление о пропуске будет воспроизводиться каждый раз, когда спонсор пропущен. Если отключено (или автоматическое пропуск отключен), звук не будет воспроизводиться."
},
"youHaveSkipped": {
"message": "Вы пропустили "
},
"youHaveSaved": {
"message": "Вы сэкономили "
},
"minLower": {
"message": "минуту"
},
"minsLower": {
"message": "минут"
},
"hourLower": {
"message": "час"
},
"hoursLower": {
"message": "часов"
},
"youHaveSavedTime": {
"message": "Вы сэкономили людям"
},
"youHaveSavedTimeEnd": {
"message": " их жизней."
},
"guildlinesSummary": {
"message": "- Убедитесь, что Ваш сегмент содержит только платную интеграцию, и больше ничего.\n- Убедитесь, что пропуск этого сегмента не пропустит никакой ценный контент\n- Если всё видео целиком спонсорское, пожалуйста, не сообщайте о нём. Система для сообщения о целых видео скоро выйдет.\n- Пожалуйста, не сообщайте об отказах от ответственности, которые могут показать предвзятость (если видео с обзором проплачено, не пропускайте, когда они это упоминают)."
},
"statusReminder": {
"message": "Смотрите состояние сервера на status.sponsor.ajay.app."
},
"changeUserID": {
"message": "Импортировать/экспортировать Ваш идентификатор пользователя"
},
"whatChangeUserID": {
"message": "Это нужно держать в секрете. Это как пароль, не стоит им ни с кем делиться. Если он у кого-то есть, он сможет выдать себя за Вас."
},
"setUserID": {
"message": "Установить идентификатор пользователя"
},
"userIDChangeWarning": {
"message": "Внимание: изменение идентификатора пользователя необратимо. Вы действительно хотите это сделать? Сделайте резервную копию вашего старого на всякий случай."
},
"createdBy": {
"message": "Создано"
},
"autoSkip": {
"message": "Автоматический пропуск"
},
"showSkipNotice": {
"message": "Показывать уведомление после пропуска спонсорской вставки"
},
"keybindCurrentlySet": {
"message": ". Он сейчас назначен на:"
},
"supportInvidious": {
"message": "Поддержка Invidious"
},
"supportInvidiousDescription": {
"message": "Invidious (invidio.us) — это неофициальный клиент для YouTube. Чтобы включить поддержку, Вам понадобится принять дополнительные разрешения. Эта функция НЕ работает в режиме \"инкогнито\" в Chrome и браузерах, основанных на Chromium."
},
"optionsInfo": {
"message": "Включить поддержку Invidious, выключить автоматический пропуск, скрыть кнопки и не только."
},
"addInvidiousInstance": {
"message": "Добавить инстанс Invidious"
},
"addInvidiousInstanceDescription": {
"message": "Добавить свой инстанс Invidious. Формат: ТОЛЬКО домен. Например, invidious.ajay.app"
},
"add": {
"message": "Добавить"
},
"addInvidiousInstanceError": {
"message": "Это неправильный домен. Введите ТОЛЬКО домен. Например, invidious.ajay.app"
},
"resetInvidiousInstance": {
"message": "Сбросить список инстансов Invidious"
},
"resetInvidiousInstanceAlert": {
"message": "Вы собираетесь сбросить список инстансов Invidious"
},
"currentInstances": {
"message": "Текущие инстансы:"
},
"minDuration": {
"message": "Минимальная длительность (секунд):"
},
"minDurationDescription": {
"message": "Спонсорские сегменты короче этого значения не будут пропускаться и не будут показаны в плеере."
},
"shortCheck": {
"message": "Следующий диапазон времени короче, чем Ваша настройка минимальной длительности. Это может означать, что он уже был отправлен, и просто игнорируется из-за этой настройки. Вы действительно хотите отправить?"
},
"showUploadButton": {
"message": "Показывать кнопку отправки"
},
"whatUploadButton": {
"message": "Эта кнопка появляется в плеере YouTube после того, как Вы выбрали отметку времени и готовы к отправке."
},
"customServerAddress": {
"message": "Адрес сервера SponsorBlock"
},
"customServerAddressDescription": {
"message": "Адрес, по которому SponsorBlock обращается к серверу.\nМеняйте только если Вы подняли свой сервер."
},
"save": {
"message": "Сохранить"
},
"reset": {
"message": "Сбросить"
},
"customAddressError": {
"message": "Этот адрес неправильного формата. Убедитесь, что он начинается с http:// или https://, и что на конце нет слэшей."
},
"areYouSureReset": {
"message": "Вы действительно хотите это сбросить?"
},
"confirmPrivacy": {
"message": "Было обнаружено, что это видео непубличное. Нажмите \"отмена\", если не хотите проверять его на спонсоров."
},
"unlistedCheck": {
"message": "Игнорировать непубличные видео"
},
"whatUnlistedCheck": {
"message": "Эта настройка значительно замедлит SponsorBlock. Поиск спонсоров требует отправки идентификатора видео на сервер. Если Вас беспокоит отправка идентификаторов непубличных видео по интернету, включите эту настройку."
},
"mobileUpdateInfo": {
"message": "m.youtube.com теперь поддерживается"
},
"exportOptions": {
"message": "Импорт/Экспорт всех настроек"
},
"whatExportOptions": {
"message": "Это вся конфигурация в формате JSON. Этот файл содержит Ваш идентификатор пользователя, поэтому не забудьте общаться с этим разумно."
},
"submit": {
"message": "Отправить"
},
"cancel": {
"message": "Отменить"
},
"delete": {
"message": "Удалить"
},
"preview": {
"message": "Превью"
},
"edit": {
"message": "Редактировать"
},
"copyDebugInformation": {
"message": "Скопировать отладочную информацию в буфер обмена"
},
"bracketNow": {
"message": "(Сейчас)"
},
"moreCategories": {
"message": "Прочие категории"
},
"bracketEnd": {
"message": "(Конец)"
},
"incorrectCategory": {
"message": "Неверная категория"
}
}

View File

@@ -0,0 +1,138 @@
{
"Sponsor": {
"message": "sponzor"
},
"Sponsors": {
"message": "sponzori"
},
"reportButtonTitle": {
"message": "Nahlásiť"
},
"Loading": {
"message": "Načitávanie..."
},
"Mins": {
"message": "Minúty"
},
"Secs": {
"message": "Sekundy"
},
"Hide": {
"message": "Nikdy nezobrazovať"
},
"paused": {
"message": "Pozastavené"
},
"here": {
"message": "tu"
},
"hideThis": {
"message": "Skryť Toto"
},
"Options": {
"message": "Nastavenia"
},
"website": {
"message": "Webstránka",
"description": "Used on Firefox Store Page"
},
"sourceCode": {
"message": "Zdrojový Kód",
"description": "Used on Firefox Store Page"
},
"yourWork": {
"message": "Vaša Práca",
"description": "Used to describe the section that will show you the statistics from your submissions."
},
"errorCode": {
"message": "Kód chyby: "
},
"skip": {
"message": "Preskočiť"
},
"disableAutoSkip": {
"message": "Zakázať Automatické Preskočenie"
},
"enableAutoSkip": {
"message": "Povoliť Automatické Preskočenie"
},
"minLower": {
"message": "minúta"
},
"minsLower": {
"message": "minúty"
},
"hourLower": {
"message": "hodina"
},
"hoursLower": {
"message": "hodiny"
},
"setUserID": {
"message": "Nastaviť Používateľove ID"
},
"createdBy": {
"message": "Vytvoril"
},
"autoSkip": {
"message": "Automatické Preskočenie"
},
"add": {
"message": "Pridať"
},
"showUploadButton": {
"message": "Ukázať Nahrávacie Tlačidlo"
},
"save": {
"message": "Uložiť"
},
"reset": {
"message": "Vynulovať"
},
"setOptions": {
"message": "Nastaviť Nastavenia"
},
"submit": {
"message": "Poslať"
},
"cancel": {
"message": "Zrušiť"
},
"delete": {
"message": "Odstrániť"
},
"preview": {
"message": "Ukážka"
},
"edit": {
"message": "Upraviť"
},
"theKey": {
"message": "Kľúč"
},
"to": {
"message": "pre",
"description": "Used between sponsor times. Example: 1:20 to 1:30"
},
"category_sponsor": {
"message": "Sponzor"
},
"disable": {
"message": "Zakázať"
},
"manualSkip": {
"message": "Manuálne Preskočenie"
},
"bracketNow": {
"message": "(Teraz)"
},
"moreCategories": {
"message": "Viac Kategórií"
},
"bracketEnd": {
"message": "(Koniec)"
},
"channelDataNotFound": {
"message": "ID kanála nie je zatiaľ načítané."
}
}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1,545 @@
{
"fullName": {
"message": "SponsorBlock för YouTube - Hoppa över sponsring",
"description": "Name of the extension."
},
"Description": {
"message": "Hoppa över sponsormeddelanden på YouTube-videor. Rapportera sponsring på videor du ser på för att spara tid åt andra.",
"description": "Description of the extension."
},
"400": {
"message": "Felaktigt anrop enligt servern"
},
"429": {
"message": "Du har rapporterat för många sponsormeddelanden för den här videon, är du säker att det finns så många?"
},
"409": {
"message": "Den här har redan blivit rapporterad"
},
"channelWhitelisted": {
"message": "Kanal vitlistad!"
},
"Sponsor": {
"message": "sponsor"
},
"Sponsors": {
"message": "sponsorer"
},
"Segment": {
"message": "sponsorsegment"
},
"Segments": {
"message": "sponsorsegment"
},
"reportButtonTitle": {
"message": "Rapportera"
},
"reportButtonInfo": {
"message": "Rapportera det här segmentet som inkorrekt."
},
"Dismiss": {
"message": "Avfärda"
},
"Loading": {
"message": "Laddar..."
},
"Mins": {
"message": "Minuter"
},
"Secs": {
"message": "Sekunder"
},
"Hide": {
"message": "Visa Aldrig"
},
"hitGoBack": {
"message": "Tryck på Tillbaka för att ångra åtgärden."
},
"unskip": {
"message": "Tillbaka"
},
"reskip": {
"message": "Framåt"
},
"paused": {
"message": "Pausad"
},
"manualPaused": {
"message": "Timern stoppad"
},
"confirmMSG": {
"message": "Klicka på infoknappen eller öppna popup-rutan genom att klicka på tilläggets ikon i hörnet uppe till höger för att redigera eller ta bort inviduella värden."
},
"clearThis": {
"message": "Är du säker på att du vill rensa detta?\n\n"
},
"Unknown": {
"message": "Ett fel uppstod vid rapportering av sponsorsegment, försök igen senare."
},
"sponsorFound": {
"message": "Den här videons sponsormeddelande finns i databasen!"
},
"sponsor404": {
"message": "Inga sponsormeddelanden hittades"
},
"sponsorStart": {
"message": "Sponsormeddelandet Börjar Nu"
},
"sponsorEnd": {
"message": "Sponsormeddelandet Slutar Nu"
},
"noVideoID": {
"message": "Kunde inte hitta någon YouTube-video i denna tab. Om du är säker på att detta är en Youtube-flik, stäng den här rutan och öppna den igen. Ladda om fliken om inte det funkar."
},
"success": {
"message": "Lyckades!"
},
"voted": {
"message": "Röstat!"
},
"serverDown": {
"message": "Det verkar som att servern är nere. Kontakta utvecklaren omedelbart."
},
"connectionError": {
"message": "Anslutningsfel. Felkod: "
},
"wantToSubmit": {
"message": "Vill du rapportera sponsortiderna för video id"
},
"leftTimes": {
"message": "Du har lämnat några sponsortider orapporterade. Gå tillbaka till den sidan för att rapportera dem (de är inte borttagna)."
},
"clearTimes": {
"message": "Rensa Sponsortider"
},
"openPopup": {
"message": "Öppna SponsorBlock Popup"
},
"SubmitTimes": {
"message": "Rapportera Sponsortider"
},
"submitCheck": {
"message": "Är du säker på att du vill rapportera detta?"
},
"whitelistChannel": {
"message": "Vitlista Kanal"
},
"removeFromWhitelist": {
"message": "Ta bort kanal från vitlistan"
},
"voteOnTime": {
"message": "Rösta på en sponsortid"
},
"recordTimes": {
"message": "Spela in sponsortider"
},
"soFarUHSubmited": {
"message": "Hitills har du rapporterat"
},
"savedPeopleFrom": {
"message": "Du har sparat andra "
},
"viewLeaderboard": {
"message": "Se leaderboarden"
},
"here": {
"message": "här"
},
"recordTimesDescription": {
"message": "Klicka på knappen nedan när sponsormeddelandet börjar och slutar för att spela in och rapportera till databasen."
},
"popupHint": {
"message": "Tips: Tryck på semikolon när fokus är på en video för att markera början/slutet av ett sponsormeddelande och citattecken för att rapportera till databasen. (Kan ändras under inställningar)"
},
"lastTimes": {
"message": "Senaste Sponsortiderna Valda."
},
"clearTimesButton": {
"message": "Rensa Tider"
},
"submitTimesButton": {
"message": "Rapportera Tider"
},
"publicStats": {
"message": "Detta kommer att användas på den publika statistiksidan för att visa hur mycket du har bidragit. Spana in den"
},
"setUsername": {
"message": "Ange Användarnamn"
},
"discordAdvert": {
"message": "Gå med i den officiella discordservern för att ge förslag och feedback!"
},
"hideThis": {
"message": "Dölj detta"
},
"Options": {
"message": "Inställningar"
},
"showButtons": {
"message": "Visa Knappar På YouTube-spelaren"
},
"hideButtons": {
"message": "Dölj Knappar På YouTube-spelaren"
},
"hideButtonsDescription": {
"message": "Detta döljer knapparna på YouTube-spelaren som du kan rapportera sponsormeddelanden med. Jag förstår att det kan se störande ut för en del. Istället för att ha knappen där kan den här popup-rutan användas för att rapportera sponsormeddelanden. För att dölja notisen som dyker upp, tryck på knappen som syns på notisen som säger \"Visa inte det här igen\". Du kan alltid slå på dessa inställningar igen senare."
},
"showInfoButton": {
"message": "Visa Infoknapp På YouTube-spelaren"
},
"hideInfoButton": {
"message": "Dölj Infoknapp På YouTube-spelaren"
},
"whatInfoButton": {
"message": "Detta är knappen som öppnar popup-rutan på YouTube-sidan."
},
"hideDeleteButton": {
"message": "Dölj \"Ta Bort\"-knappen På YouTube-spelaren"
},
"showDeleteButton": {
"message": "Visa \"Ta Bort\"-knappen På YouTube-spelaren"
},
"whatDeleteButton": {
"message": "Denna knappen tar bort alla sponsormeddelanden på YouTube-spelaren."
},
"disableViewTracking": {
"message": "Avaktivera Räkning Av Undvikta Sponsormeddelanden"
},
"enableViewTracking": {
"message": "Aktivera Räkning Av Undvikta Sponsormeddelanden"
},
"whatViewTracking": {
"message": "Den här funktionen håller koll på vilka sponsormeddelanden du har hoppat över för att uppskatta hur mycket tid en användare har sparat andra och används tillsammans med röster för att se till att spam inte läggs i databasen. Detta tillägg skickar ett meddelande till servern varje gång du hoppar över ett sponsormeddelande. Förhoppningsvis ändrar inte folk den här inställningen så statistiken hålls tillförlitlig. :)"
},
"showNotice": {
"message": "Visa Notisen Igen"
},
"website": {
"message": "Hemsida",
"description": "Used on Firefox Store Page"
},
"sourceCode": {
"message": "Källkod",
"description": "Used on Firefox Store Page"
},
"noticeUpdate": {
"message": "Den här notisen har förbättrats!",
"description": "The first line of the message displayed after the notice was upgraded."
},
"noticeUpdate2": {
"message": "Om du ändå inte gillar det, tryck på \"Visa aldrig\"-knappen.",
"description": "The second line of the message displayed after the notice was upgraded."
},
"setStartSponsorShortcut": {
"message": "Välj knapp att koppla till start av sponsormeddelande"
},
"setSubmitKeybind": {
"message": "Välj knapp att koppla till rapportering av sponsormeddelande"
},
"keybindDescription": {
"message": "Koppla knapp genom att trycka på den"
},
"keybindDescriptionComplete": {
"message": "Kopplad till: "
},
"0": {
"message": "Anslutningsfel. Se över din internetanslutning. Om du kan komma åt internet så är servern förmodligen överbelastad eller nere."
},
"disableSkipping": {
"message": "Avaktivera SponsorBlock"
},
"enableSkipping": {
"message": "Aktivera SponsorBlock"
},
"yourWork": {
"message": "Ditt Bidrag",
"description": "Used to describe the section that will show you the statistics from your submissions."
},
"502": {
"message": "Servern verkar vara överbelastad. Försök igen om några sekunder."
},
"errorCode": {
"message": "Felkod: "
},
"skip": {
"message": "Hoppa över"
},
"skipped": {
"message": "Skippat"
},
"disableAutoSkip": {
"message": "Avaktivera Hoppa Över Automatiskt"
},
"enableAutoSkip": {
"message": "Aktivera Hoppa Över Automatiskt"
},
"autoSkipDescription": {
"message": "Hoppa Över Automatiskt undviker att spela upp sponsormeddelanden för dig. Ifall det är avaktiverat dyker en notis upp som frågar om du vill hoppa över."
},
"audioNotification": {
"message": "Ljudeffekt vid hopp"
},
"audioNotificationDescription": {
"message": "Ljudeffekt vid hopp spelar upp en ljudeffekt när du hoppar över ett sponsormeddelande. Ifall det är avaktiverat (eller hoppa över automatiskt är avaktiverat), kommer inget ljud att spelas upp."
},
"youHaveSkipped": {
"message": "Du har hoppat över "
},
"youHaveSaved": {
"message": "Du har sparat "
},
"minLower": {
"message": "minuter"
},
"minsLower": {
"message": "minuter"
},
"hourLower": {
"message": "timma"
},
"hoursLower": {
"message": "timmar"
},
"youHaveSavedTime": {
"message": "Du har sparat andra"
},
"youHaveSavedTimeEnd": {
"message": " av deras liv."
},
"guildlinesSummary": {
"message": "- Se till att ditt sponsorsegment bara innehåller betald marknadsföring, inget annat.\n- Se till att inget värdefullt innehåll missas genom att hoppa över ditt sponsorsegment\n- Rapportera inte en video ifall hela videon är ett sponsormeddelande. Ett rapporteringssystem för hela videor kommer snart.\n- Se till att inte hoppa över delar som uppmärksammar partiskhet (om en recensionsvideo är sponsrad, hoppa inte över delen av videon där det nämns)."
},
"statusReminder": {
"message": "Gå till status.sponsor.ajay.app för serverstatus."
},
"changeUserID": {
"message": "Importera/Exportera Ditt AnvändarID"
},
"whatChangeUserID": {
"message": "Detta bör hållas hemligt. Det fungerar som ett lösenord och borde inte delas vidare med någon. Om någon kommer över detta kan den personen utge sig för att vara dig."
},
"setUserID": {
"message": "Ange AnvändarID"
},
"userIDChangeWarning": {
"message": "Varning: Ändring av AnvändarID är permanent. Är du säker att du vill göra det? Se till att ta en backup av ditt gamla för säkerhets skull."
},
"createdBy": {
"message": "Skapad av"
},
"autoSkip": {
"message": "Hoppa Över Automatiskt"
},
"showSkipNotice": {
"message": "Visa Notis Efter Sponsormeddelande Har Hoppats Över"
},
"keybindCurrentlySet": {
"message": ". Är just nu kopplat till:"
},
"supportInvidious": {
"message": "Stöd Invidious"
},
"supportInvidiousDescription": {
"message": "Invidious (invidio.us) är en tredjeparts YouTube-klient. För att aktivera stöd måste du acceptera de extra behörigheterna. Detta kommer INTE att fungera i incognito i Chrome och andra Cromium-varianter."
},
"optionsInfo": {
"message": "Aktivera Invidious stöd, avaktivera hoppa över automatiskt, dölj knappar och mer."
},
"addInvidiousInstance": {
"message": "Lägg Till Invidious Instans"
},
"addInvidiousInstanceDescription": {
"message": "Lägg till en anpassad instans av Invidious. Denna måste vara formaterad med ENBART domänen. Exempelvis: invidious.ajay.app"
},
"add": {
"message": "Lägg till"
},
"addInvidiousInstanceError": {
"message": "Detta är en individuell domän. Den måste ENBART inkludera domändelen. Exempelvis: invidious.ajay.app"
},
"resetInvidiousInstance": {
"message": "Rensa Invidious instanslista"
},
"resetInvidiousInstanceAlert": {
"message": "Du kommer nu att rensa Invidious instanslista"
},
"currentInstances": {
"message": "Nuvarande Instanser:"
},
"minDuration": {
"message": "Minsta varaktighet (sekunder):"
},
"minDurationDescription": {
"message": "Sponsorsegment som är kortare än det satta minstavärdet kommer inte att hoppas över eller visas i spelaren."
},
"shortCheck": {
"message": "Följande rapport är kortare än ditt minstavärde i inställningarna. Det skulle kunna betyda att det redan är rapporterat och bara ignorerat på grund av denna inställning. Är du säker på att du vill rapportera?"
},
"showUploadButton": {
"message": "Visa Uppladdningsknapp"
},
"whatUploadButton": {
"message": "Denna knapp visas på YouTube-spelaren efter att du har valt en tidpunkt och är redo att rapportera."
},
"customServerAddress": {
"message": "SponsorBlock Serveradress"
},
"customServerAddressDescription": {
"message": "Adressen SponsorBlock använder för att prata med servern.\nOm du inte har din egen serverinstans ska den här inställningen inte ändras."
},
"save": {
"message": "Spara"
},
"reset": {
"message": "Rensa"
},
"customAddressError": {
"message": "Denna adressen är inte korrekt formaterad. Se till att du har http:// eller https:// i början och inga snedstreck i slutet."
},
"areYouSureReset": {
"message": "Är du säker på att du vill rensa?"
},
"confirmPrivacy": {
"message": "Videon ser ut att vara olistad. Tryck på avbryt om du inte vill kolla efter sponsorer."
},
"unlistedCheck": {
"message": "Ignorera Olistade Videor"
},
"whatUnlistedCheck": {
"message": "Denna inställning kommer göra SponsorBlock märkbart långsammare. Uppslag av sponsormeddelanden kräver att video-ID skickas till servern. Om du är bekymrad över att olistade video-IDn skickas över internet, aktivera denna inställning."
},
"mobileUpdateInfo": {
"message": "m.youtube.com stöds nu"
},
"exportOptions": {
"message": "Importera/Exportera Alla Inställningar"
},
"whatExportOptions": {
"message": "Detta är alla dina inställningar i JSON-format. Det inkluderar ditt AnvändarID, så var nog med hur du hanterar datan."
},
"setOptions": {
"message": "Ange Inställningar"
},
"exportOptionsWarning": {
"message": "Varning: Att ändra inställningarna är permanent och kan förstöra din installation. Är du säker på att du vill göra detta? Se till att göra en backup för säkerhets skull."
},
"incorrectlyFormattedOptions": {
"message": "Denna JSON är inte korrekt formaterad. Dina inställningar har inte ändrats."
},
"confirmNoticeTitle": {
"message": "Rapportera Segment"
},
"submit": {
"message": "Skicka"
},
"cancel": {
"message": "Avbryt"
},
"delete": {
"message": "Ta bort"
},
"preview": {
"message": "Förhandsgranska"
},
"edit": {
"message": "Redigera"
},
"copyDebugInformation": {
"message": "Kopiera Debuginformation Till Urklipp"
},
"copyDebugInformationFailed": {
"message": "Misslyckades med att kopiera debuginformation till urklipp"
},
"copyDebugInformationOptions": {
"message": "Kopierar information till urklipp för att dela med en utvecklare vid rapportering av en bugg / när en utvecklare ber om det. Känslig data som AnvändarID, vitlistade kanaler, och anpassad serveradress följer inte med. Däremot innehåller det information om useragent, webbläsare, operativsystem, och tilläggsversion."
},
"copyDebugInformationComplete": {
"message": "Debuginformationen har kopierats till urklipp. Ta bort eventuell information du inte vill dela med dig av. Spara informationen i en textfil eller klistra in den i en buggrapport."
},
"theKey": {
"message": "Nyckeln"
},
"keyAlreadyUsed": {
"message": "är kopplad till en annan funktion. Välj en annan knapp."
},
"to": {
"message": "till",
"description": "Used between sponsor times. Example: 1:20 to 1:30"
},
"category_sponsor": {
"message": "Sponsormeddelande"
},
"category_music_offtopic_description": {
"message": "Endast för användning i musikvideor. Detta inkluderar intros och outros i musikvideor."
},
"category_music_offtopic_short": {
"message": "Icke-musik"
},
"disable": {
"message": "Avaktivera"
},
"manualSkip": {
"message": "Hoppa Över Manuellt"
},
"showOverlay": {
"message": "Visa Lager Ovanpå Spelare"
},
"category": {
"message": "Kategori"
},
"enableTestingServer": {
"message": "Aktivera Server För Betatestning"
},
"whatEnableTestingServer": {
"message": "Dina rapporter och röster KOMMER INTE RÄKNAS mot huvudservern. Använd endast detta för testning."
},
"testingServerWarning": {
"message": "Alla rapporter och röster KOMMER INTE RÄKNAS mot huvudservern så länge du är ansluten mot testservern. Se till att avaktivera detta när du vill rapportera ett riktigt sponsormeddelande."
},
"bracketNow": {
"message": "(Nu)"
},
"moreCategories": {
"message": "Fler Kategorier"
},
"chooseACategory": {
"message": "Välj en kategori"
},
"youMustSelectACategory": {
"message": "Du måste välja en kategori för alla segment du skickar in!"
},
"bracketEnd": {
"message": "(Slut)"
},
"hiddenDueToDuration": {
"message": "dold: för kort"
},
"channelDataNotFound": {
"message": "Kanal-ID är inte inladdat än."
},
"adblockerIssue": {
"message": "Det verkar som om något blockerar SponsorBlocks från att hämta videodata. Det beror förmodligen på din annonsblockerare. Vänligen kontrollera https://github.com/ajayyy/SponsorBlock/wiki/Fix-Ad-Blocker-Blocking-SponsorBlock's-Requests"
},
"itCouldBeAdblockerIssue": {
"message": "Om detta fortsätter att inträffa, kan orsaken vara din annonsblockerare. Vänligen kontrollera https://github.com/ajayyy/SponsorBlock/wiki/Fix-Ad-Blocker-Blocking-SponsorBlock's-Requests"
},
"downvoteDescription": {
"message": "Fel timing"
},
"incorrectCategory": {
"message": "Fel kategori"
},
"nonMusicCategoryOnMusic": {
"message": "Den här videon är kategoriserad som musik. Är du säker på att du vill skicka in segment med icke-musikkategorier? Om denna video faktiskt är musik, bör du inte skicka in detta segment. Vänligen läs riktlinjerna om du är förvirrad."
},
"multipleSegments": {
"message": "Flera segment"
},
"guidelines": {
"message": "Riktlinjer"
},
"readTheGuidelines": {
"message": "Läs riktlinjerna!!",
"description": "Show the first time they submit or if they are \"high risk\""
}
}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1,577 @@
{
"fullName": {
"message": "Youtube için SponsorBlock - Sponsorlukları Atla",
"description": "Name of the extension."
},
"Description": {
"message": "YouTube videolarındaki sponsorlukları atla. İzlediğin videolardaki sponsorları diğerlerine zaman kazandırmak için raporla.",
"description": "Description of the extension."
},
"400": {
"message": "Sunucu isteğin geçersiz olduğunu iletti"
},
"429": {
"message": "Sadece bu video için çok fazla sponsor süresi belirtti, bu kadar fazla olduğuna emin misin?"
},
"409": {
"message": "Bu daha önce zaten gönderilmiş"
},
"channelWhitelisted": {
"message": "Kanal beyazlistede!"
},
"Sponsor": {
"message": "sponsor"
},
"Sponsors": {
"message": "sponsorlar"
},
"Segment": {
"message": "sponsor bölümü"
},
"Segments": {
"message": "sponsor bölümleri"
},
"upvoteButtonInfo": {
"message": "Bu öneriye oy ver"
},
"reportButtonTitle": {
"message": "Raporla"
},
"reportButtonInfo": {
"message": "Bu öneriyi hatalı olarak bildir."
},
"Dismiss": {
"message": "Yoksay"
},
"Loading": {
"message": "Yükleniyor..."
},
"Mins": {
"message": "Dakika"
},
"Secs": {
"message": "Saniye"
},
"Hide": {
"message": "Asla Gösterme"
},
"hitGoBack": {
"message": "Geldiğiniz yere dönmek istiyorsanız atlama'ya basın."
},
"unskip": {
"message": "Atlama"
},
"reskip": {
"message": "Tekrar atla"
},
"paused": {
"message": "Duraklatıldı"
},
"manualPaused": {
"message": "Zamanlayıcı Durduruldu"
},
"confirmMSG": {
"message": "Değerleri tek başına düzenlemek ve silmek için, bilgi butonuna basın veya sağ yukarıdaki eklenti simgesine tıklayarak eklenti menüsünü açın."
},
"clearThis": {
"message": "Bunu silmek istediğinize emin misiniz?\n\n"
},
"Unknown": {
"message": "Sponsor sürelerini yollarken bir sorun oluştur, lütfen tekrar deneyin."
},
"sponsorFound": {
"message": "Bu videonun sponsorları veritabanında mevcut!"
},
"sponsor404": {
"message": "Sponsor bulunamadı"
},
"sponsorStart": {
"message": "Sponsorluk Şimdi Başlıyor"
},
"sponsorEnd": {
"message": "Sponsorluk Şimdi Bitiyor"
},
"noVideoID": {
"message": "Bu sekmede YouTube videosu bulunamadı. Bu sekmenin bir YouTube sekmesi olduğundan eminseniz, bu pencereyi kapatıp, tekrar açın. Eğer o da işe yaramazsa, sekmeyi yenilemeyi deneyin."
},
"success": {
"message": "Başarılı!"
},
"voted": {
"message": "Oylandı!"
},
"serverDown": {
"message": "Sunucu çökmüş gibi duruyor. Derhal geliştiriciyle iletişime geçin."
},
"connectionError": {
"message": "Bağlantı hatası oluştu. Hata kodu: "
},
"wantToSubmit": {
"message": "Bu video için sponsor sürelerini göndermek istiyor musunuz"
},
"leftTimes": {
"message": "Bazı sponsor sürelerini göndermediğinizi görüyoruz. Göndermek için sayfaya geri dönebilirsiniz (hala mevcutlar)."
},
"clearTimes": {
"message": "Sponsor Sürelerini Temizle"
},
"openPopup": {
"message": "SponsorBlock Penceresini Aç"
},
"SubmitTimes": {
"message": "Sponsor Sürelerini Gönder"
},
"submitCheck": {
"message": "Bunu göndermek istediğinize emin misiniz?"
},
"whitelistChannel": {
"message": "Kanalı Beyazlisteye Ekle"
},
"removeFromWhitelist": {
"message": "Kanalı Beyazlisteden Kaldır"
},
"voteOnTime": {
"message": "Sponsor Süresi için Oy Kullan"
},
"recordTimes": {
"message": "Sponsor Süresini Kaydet"
},
"soFarUHSubmited": {
"message": "Şu an kadar yolladığınız"
},
"savedPeopleFrom": {
"message": "İnsanların şu kadar vaktini kurtardınız "
},
"viewLeaderboard": {
"message": "Liderlik tablosunu görüntüle"
},
"here": {
"message": "burada"
},
"recordTimesDescription": {
"message": "Kaydetmek ve veritabanına yollamak için sponsorluk başladığında ve bittiğinde aşağıdaki butona tıklayın."
},
"popupHint": {
"message": "İpuçu: Sponsorluk süresinin başını ve sonunu raporlamak için video üzerindeyken noktalı virgül tuşuna, yollamak için tırnak tuşuna basınız. (Bu ayarlardan değiştirilebilir.)"
},
"lastTimes": {
"message": "Son Sponsor Mesajı Süresi Seçildi"
},
"clearTimesButton": {
"message": "Süreleri Temizle"
},
"submitTimesButton": {
"message": "Süreleri Gönder"
},
"publicStats": {
"message": "Bu, ne kadar katkı sağladığınızı göstermek için herkese açık istatistik sayfasında kullanılacaktır. Görün"
},
"setUsername": {
"message": "Kullanıcı Adı Belirle"
},
"discordAdvert": {
"message": "Öneri ve geri bildirimleriniz için resmi Discord serverımıza katılın!"
},
"hideThis": {
"message": "Bunu sakla"
},
"Options": {
"message": "Ayarlar"
},
"showButtons": {
"message": "YouTube oynatıcısında Butonları Göster"
},
"hideButtons": {
"message": "YouTube Oynatıcısındaki Butonları Gizle"
},
"hideButtonsDescription": {
"message": "Bu YouTube oynatıcısındaki bölüm geçişlerini yolladığınız butonları saklayacaktır."
},
"showInfoButton": {
"message": "YouTube Oynatıcısındaki Bilgi Butonunu Göster"
},
"hideInfoButton": {
"message": "YouTube Oynatıcısındaki Bilgi Butonunu Gizle"
},
"whatInfoButton": {
"message": "Bu, YouTube sayfasında açılan pencereyi açan butondur."
},
"hideDeleteButton": {
"message": "YouTube Oynatıcısında Silme Tuşunu Gizle"
},
"showDeleteButton": {
"message": "YouTube Oynatıcısında Silme Tuşunu Göster"
},
"whatDeleteButton": {
"message": "Bu, YouTube oynatıcısındaki mevcut video için gönderilmemiş bölümleri temizleyen butondur."
},
"disableViewTracking": {
"message": "Sponsor Atlama Takip Sayacını Devredışı Bırak"
},
"enableViewTracking": {
"message": "Sponsor Atlama Takip Sayacını Devreye Sok"
},
"whatViewTracking": {
"message": "Bu özellik, önerinizin diğerlerine ne kadar işe yaradığını bildirmek için atladığınız sponsorları kaydeder ve istenmeyen önerilerin veritabanına girmesini engellemek adına bir ölçü olarak kullanılır. Her sponsor atladığınızda eklenti sunucuya bir mesaj yollar. Umarım bu ayarı birçok kişi değiştirmez ve böylece görüntülenme sayıları doğru kalır. :)"
},
"showNotice": {
"message": "Uyarıyı Tekrar Göster"
},
"website": {
"message": "Website",
"description": "Used on Firefox Store Page"
},
"sourceCode": {
"message": "Kaynak Kodu",
"description": "Used on Firefox Store Page"
},
"noticeUpdate": {
"message": "Uyarı güncellendi!",
"description": "The first line of the message displayed after the notice was upgraded."
},
"noticeUpdate2": {
"message": "Eğer hala beğenmediyseniz, asla gösterme butonuna basın.",
"description": "The second line of the message displayed after the notice was upgraded."
},
"setStartSponsorShortcut": {
"message": "Sponsor bölümünün başlangıcı için bir tuş belirleyin"
},
"setSubmitKeybind": {
"message": "Gönderim için bir tuş belirleyin"
},
"keybindDescription": {
"message": "Yazarak bir tuş seçin"
},
"keybindDescriptionComplete": {
"message": "Tuş seçimi şu tuşa ayarlandı: "
},
"0": {
"message": "Bağlantı zaman aşımına uğradı. İnternet bağlantınızı kontrol ediniz. Eğer internetiniz çalışıyor ise, büyük ihtimalle sunucuya erişilemiyor veya sunucuya aşırı yüklenilmiş olabilir."
},
"disableSkipping": {
"message": "SponsorBlock'u Devredışı Bırak"
},
"enableSkipping": {
"message": "SponsorBlock'u Devreye Sok"
},
"yourWork": {
"message": "Çalışmalarınız",
"description": "Used to describe the section that will show you the statistics from your submissions."
},
"502": {
"message": "Sunucuya aşırı yüklenilmiş gibi gözüküyor. Birazdan tekrar deneyin."
},
"errorCode": {
"message": "Hata Kodu: "
},
"skip": {
"message": "Atla"
},
"skipped": {
"message": "Atlandı"
},
"disableAutoSkip": {
"message": "Otomatik Atlamayı Devredışı Bırak"
},
"enableAutoSkip": {
"message": "Otomatik Atlamayı Devreye Sok"
},
"autoSkipDescription": {
"message": "Otomatik atlama sponsorları sizin için atlayacak. Kapalı olduğunda, atlamak istediğinizi soran bir uyarı ekranı belirecek."
},
"audioNotification": {
"message": "Atlamada Sesli Bildirim"
},
"audioNotificationDescription": {
"message": "Atlamada sesli bildirim, bir sponsor bölümü atlandığında bir ses çalar. Eğer devredışı bırakıldıysa (veya otomatik atlama devredışı bırakıldıysa), herhangi bir ses çalmayacak."
},
"youHaveSkipped": {
"message": "Bunu atladınız "
},
"youHaveSaved": {
"message": "Şu kadar süre kazandınız "
},
"minLower": {
"message": "dakika"
},
"minsLower": {
"message": "dakika"
},
"hourLower": {
"message": "saat"
},
"hoursLower": {
"message": "saat"
},
"youHaveSavedTime": {
"message": "İnsanların"
},
"youHaveSavedTimeEnd": {
"message": " kadar vaktini kurtardınız."
},
"guildlinesSummary": {
"message": "- Bölümünüzün sadece ücretli tanıtım bölümü olduğundan emin olun.\n- Bu bölümü atlamanın önemli içerik bölümlerini de atlamayacağından emin olun. \n- Eğer tüm bölüm sponsor ise, lütfen raporlamayın. Tüm video rapor sistemimiz yakında gelecek.\n- Eğer videoda taraflılık içeren bir uyarı var raporlamayın (Eğer bir inceleme videosu sponsorluysa, bundan bahsettikleri kısmı atlatmayın)."
},
"statusReminder": {
"message": "Sunucu durumu için status.sponsor.ajay.app kontrol edin."
},
"changeUserID": {
"message": "Kullanıcı kimliğini Dışarı/İçeri Aktar"
},
"whatChangeUserID": {
"message": "Bu gizli tutulmalıdır. Bu bir şifreye benzer ve diğerleriyle paylaşılmaması gerekir. Birinin eline geçerse, sizi taklit edebilir."
},
"setUserID": {
"message": "Kullanıcı kimliği Belirle"
},
"userIDChangeWarning": {
"message": "Uyarı: Kullanıcı kimliği değiştirmek kalıcıdır. Bunu yapmak istediğinizden emin misiniz? Eskisini yedeklediğinizden emin olun."
},
"createdBy": {
"message": "Oluşturan"
},
"autoSkip": {
"message": "Otomatik Atla"
},
"showSkipNotice": {
"message": "Sponsor Atladıktan Sonra Uyarı Göster"
},
"keybindCurrentlySet": {
"message": ". Şu an buna ayarlı:"
},
"supportInvidious": {
"message": "Invidious'a Destek Ver"
},
"supportInvidiousDescription": {
"message": "Invidious (invidio.us) üçüncü parti YouTube istemcisidir. Desteği etkinleştirmek için fazladan izinlere onay vermelisiniz. Bu Chrome ve Chromium bazlı tarayıcılarda gizli pencere modunda ÇALIŞMAZ."
},
"optionsInfo": {
"message": "Invidious desteğini, otomatik atlamayı, butonları saklamayı ve daha fazlasını etkinleştir."
},
"addInvidiousInstance": {
"message": "Invidious Oluşumu Ekle"
},
"addInvidiousInstanceDescription": {
"message": "Özel Indivious oluşumu ekle. Bu SADECE alan adıyla düzenlenmelidir. Örnek: invidious.ajay.app"
},
"add": {
"message": "Ekle"
},
"addInvidiousInstanceError": {
"message": "Bu geçersiz bir alan adı. Bu SADECE alan adı kısmını içermelidir. Örnek: invidious.ajay.app"
},
"resetInvidiousInstance": {
"message": "Invidious Oluşum Listesini Sıfırla"
},
"resetInvidiousInstanceAlert": {
"message": "Invidious Oluşum listesini sıfırlamak üzeresiniz"
},
"currentInstances": {
"message": "Mevcut Oluşumlar:"
},
"minDuration": {
"message": "Minimum süre (saniye):"
},
"minDurationDescription": {
"message": "Belirlenen değerden kısa olan sponsor bölümleri atlanmayacak veya oynatıcıda gözükmeyecektir."
},
"shortCheck": {
"message": "Sıradaki öneri belirlediğiniz minimum süre ayarından daha kısa. Bu zaten yollandığı ve bu ayardan dolayı yok sayıldığı anlamına gelebilir. Göndermek istediğinizden emin misiniz?"
},
"showUploadButton": {
"message": "Karşıya Yükleme Butonunu Göster"
},
"whatUploadButton": {
"message": "Bu buton, YouTube oynatıcısında bir zaman seçtiğiniz ve göndermeye hazır olduğunuzda gözükür."
},
"customServerAddress": {
"message": "SponsorBlock Sunucu Adresi"
},
"customServerAddressDescription": {
"message": "SponsorBlock'un sunucu ile iletişimi sağlamak için kullandığı adres.\nKendi sunucu kopyanız olmadığı sürece bu değiştirilmemelidir."
},
"save": {
"message": "Kaydet"
},
"reset": {
"message": "Sıfırla"
},
"customAddressError": {
"message": "Bu adres doğru formatta değil. Başında http:// veya https:// olduğundan ve sonda / işareti olmadığından emin olun."
},
"areYouSureReset": {
"message": "Bunu sıfırlamak istediğinize emin misiniz?"
},
"confirmPrivacy": {
"message": "Bu videonun listede olmadığı belirlendi. Bu videoyu sponsorlar için kontrol etmek istemiyorsanız iptale basınız."
},
"unlistedCheck": {
"message": "Listedışı/Özel Videoları Görmezden Gel"
},
"whatUnlistedCheck": {
"message": "Bu ayar SponsorBlock eklentisini az miktarda yavaşlatacaktır. Sponsor kontrolleri, sunucuya video kimlik numarası göndermeyi gerektirir. Eğer listedışı videoların, video kimlik numaralarının internet üzerinden gönderilmesini istemiyorsanız bu seçeneği aktive edin."
},
"mobileUpdateInfo": {
"message": "m.youtube.com şu an desteklenmektedir"
},
"exportOptions": {
"message": "Bütün Ayarlarını İçe/Dışa Aktar"
},
"whatExportOptions": {
"message": "Bu, JSON formatında bütün kurulumunuzu gösterir. Kullanıcı kimliğinizi içerir, bu sebeple paylaşırken dikkatli olun."
},
"setOptions": {
"message": "Seçenekleri Ayarla"
},
"exportOptionsWarning": {
"message": "Uyarı: Ayarları değiştirmek kalıcıdır ve yüklemenizi bozabilir. Bunu yapmak istediğinizden emin misiniz? Eskisini yenilediğinizden emin olun."
},
"incorrectlyFormattedOptions": {
"message": "Bu JSON doğru formatlanmamış. Ayarlarınız değiştirilmedi."
},
"confirmNoticeTitle": {
"message": "Bölüm Gönder"
},
"submit": {
"message": "Gönder"
},
"cancel": {
"message": "İptal"
},
"delete": {
"message": "Sil"
},
"preview": {
"message": "Önizle"
},
"edit": {
"message": "Düzenle"
},
"copyDebugInformation": {
"message": "Onarım Bilgisini Panoya Kopyala"
},
"copyDebugInformationFailed": {
"message": "Panoya kopyalanamadı"
},
"copyDebugInformationOptions": {
"message": "Panoya, geliştiricinin hata gideriminde veya ulaşmak istediğinde geliştiriciye sağlamak üzerine bilgileri kaydeder. Kullanıcı kimliği, beyaz listenizdeki kanallar ve düzenlenmiş sunucu adresleri gibi hassas bilgiler silinmiştir. Ancak tarayıcı bilgileri, işletim sisteminiz ve eklenti numaranız gibi bilgileri içerebilir. "
},
"copyDebugInformationComplete": {
"message": "Bu çözüm bilgisi panoya kopyalandı. Paylaşmak istemediğiniz herhangi bir bilgiyi silmekte özgürsünüz. Bir yazı dosyası olarak kaydedin veya hata raporuna kopyalayın."
},
"theKey": {
"message": "Anahtar"
},
"keyAlreadyUsed": {
"message": "başka bir eyleme bağlı. Lütfen başka bir anahtar seçin."
},
"to": {
"message": "'e",
"description": "Used between sponsor times. Example: 1:20 to 1:30"
},
"category_sponsor": {
"message": "Sponsor"
},
"category_outro": {
"message": "Bitiş Ekranı/Jenerik"
},
"category_interaction": {
"message": "Etkileşim Hatırlatıcısı (Abonelik)"
},
"category_selfpromo": {
"message": "Karşılıksız/Kendi Reklamı"
},
"category_music_offtopic": {
"message": "Müzik: Müzik Olmayan Bölüm"
},
"category_livestream_messages": {
"message": "Canlı Yayın: Bağış/Mesaj Okuma"
},
"disable": {
"message": "Devredışı"
},
"manualSkip": {
"message": "Elle Atla"
},
"showOverlay": {
"message": "Arama Çubuğunda Göster"
},
"previewColor": {
"message": "Önizleme Rengi",
"description": "Referring to submissions that have not been sent to the server yet."
},
"seekBarColor": {
"message": "Oynatma Çubuğu Rengi"
},
"category": {
"message": "Kategori"
},
"skipOption": {
"message": "Atlama Seçeneği",
"description": "Used on the options page to describe the ways to skip the segment (auto skip, manual, etc.)"
},
"enableTestingServer": {
"message": "Beta Deneme Sunucusunu Devreye Sok"
},
"whatEnableTestingServer": {
"message": "Önerileriniz ve oylarınız ana sunucuya GÖNDERİLMEYECEKTİR. Bunu sadece deneme amacıyla kullanın."
},
"testingServerWarning": {
"message": "Tüm öneriler ve oylar, test sunucusuna bağlandığınız sürece ana sunucuya iletilmeyecektir. Gerçek öneriler yapmak istediğinizde bu ayarı kapatmayı unutmayın."
},
"bracketNow": {
"message": "(Şimdi)"
},
"moreCategories": {
"message": "Daha Fazla Kategori"
},
"bracketEnd": {
"message": "(Son)"
},
"hiddenDueToDownvote": {
"message": "gizlendi: eksile"
},
"hiddenDueToDuration": {
"message": "gizlendi: çok kısa"
},
"channelDataNotFound": {
"message": "Kanal kimliği henüz yüklenmedi."
},
"adblockerIssue": {
"message": "Bir şeyin SponsorBlock'un video bilgisi almasını engelliyor gibi görünüyor. Bu reklam engelleyiciniz olabilir. Lütfen şu adresi kontrol edin https://github.com/ajayyy/SponsorBlock/wiki/Fix-Ad-Blocker-Blocking-SponsorBlock's-Requests"
},
"itCouldBeAdblockerIssue": {
"message": "Bunu sürekli yaşıyorsanız, reklam engelleyiciniz tarafından gerçekleşiyor olabilir. https://github.com/ajayyy/SponsorBlock/wiki/Fix-Ad-Blocker-Blocking-SponsorBlock's-Requests adresini kontrol edin."
},
"forceChannelCheck": {
"message": "Sponsorları Atlamadan Önce Kanal Kontrolünü Zorla"
},
"whatForceChannelCheck": {
"message": "Varsayılan olarak, eklenti kanalın ne olduğunu bilmeden önce sponsorları atlayacaktır. Varsayılan olarak, beyaz listede olan kanallarda sıfır saniyelik sponsor bölümleri atlanacaktır. Bu ayarı aktifleştirmek bunu engelleyecektir ancak kanal kimlik bilgisini almak biraz vakit alacağından atlamalarda gecikmeler yaratabilir. Eğer hızlı bir internetiniz varsa bu gecikmeler farkedilmeyebilir."
},
"forceChannelCheckPopup": {
"message": "Sponsorları Atlamadan Önce Kanal Kontrolünü Zorlamayı Gözden Geçir"
},
"downvoteDescription": {
"message": "Hatalı/Yanlış Zaman"
},
"incorrectCategory": {
"message": "Yanlış Kategori"
},
"nonMusicCategoryOnMusic": {
"message": "Bu videonun kategorisi müzik olarak belirlenmiş. Müzik içermeyen bölümleri göndermek istediğinize emin misiniz? Eğer bu bir müzik videosu değilse, bu bölümleri göndermemelisiniz. Eğer ayırt edemiyorsanız, lütfen rehberi okuyunuz."
},
"multipleSegments": {
"message": "Birden Çok Bölüm"
},
"guidelines": {
"message": "Kılavuz"
},
"readTheGuidelines": {
"message": "Kılavuzu Oku!!",
"description": "Show the first time they submit or if they are \"high risk\""
},
"categoryUpdate1": {
"message": "Kategoriler burada!"
}
}

View File

@@ -0,0 +1,456 @@
{
"fullName": {
"message": "SponsorBlock для YouTube - Пропускайте спонсорські вставки",
"description": "Name of the extension."
},
"Description": {
"message": "Пропускайте спонсорські вставки в відео на YouTube. Повідомляйте про спонсорські вставки в відео, які Ви дивіться, щоб заощадити час інших користувачів.",
"description": "Description of the extension."
},
"400": {
"message": "Сервер відхилив цей запит"
},
"429": {
"message": "Ви відправили занадто багато спонсорів для цього відео. Ви впевнені, що їх так багато?"
},
"409": {
"message": "Цей запит був відправлений раніше"
},
"channelWhitelisted": {
"message": "Канал доданий у білий список!"
},
"Sponsor": {
"message": "спонсори"
},
"Sponsors": {
"message": "спонсорів"
},
"Segment": {
"message": "спонсорська вставка"
},
"Segments": {
"message": "спонсорські вставки"
},
"reportButtonTitle": {
"message": "Помилка"
},
"Dismiss": {
"message": "Закрити"
},
"Loading": {
"message": "Завантаження..."
},
"Mins": {
"message": "хв"
},
"Secs": {
"message": "сек"
},
"Hide": {
"message": "Не відображати"
},
"hitGoBack": {
"message": "Натисніть «Назад», щоб повернутися назад."
},
"unskip": {
"message": "Назад"
},
"reskip": {
"message": "Пропустити"
},
"paused": {
"message": "Пауза"
},
"confirmMSG": {
"message": "Щоб змінити або видалити окремі значення, натисніть кнопку «Інформація» або відкрийте спливаюче вікно розширення, клацнувши значок розширення в правому верхньому куті."
},
"clearThis": {
"message": "Ви впевнені, що хочете видалити цю інформацію?\n\n"
},
"Unknown": {
"message": "При надсиланні звіту про спонсорський сегмент сталася помилка. Спробуйте надіслати його пізніше."
},
"sponsorFound": {
"message": "Спонсори цього відео вже знаходяться в базі даних!"
},
"sponsor404": {
"message": "Спонсорські вставки не знайдені"
},
"sponsorStart": {
"message": "Спонсорська вставка починається зараз"
},
"sponsorEnd": {
"message": "Спонсорська вставка закінчується зараз"
},
"noVideoID": {
"message": "Можливо, це не вкладка YouTube, або Ви натиснули занадто рано.\n  Якщо це вкладка YouTube,\n  закрийте це спливаюче вікно і відкрийте його знову."
},
"success": {
"message": "Успіх!"
},
"voted": {
"message": "Голос зарахований!"
},
"connectionError": {
"message": "Помилка з'єднання. Код помилки: "
},
"wantToSubmit": {
"message": "Ви точно хочете надіслати звіт про спонсорські вставки у відео з ідентифікатором"
},
"leftTimes": {
"message": "Ви ще не надіслали звіти про деякі спонсорські вставки. Хочете повернутися на цю сторінку, щоб надіслати їх (вони не видаляються)."
},
"clearTimes": {
"message": "Видалити відмічені сегменти"
},
"openPopup": {
"message": "Відкрийте спливаюче вікно SponsorBlock"
},
"SubmitTimes": {
"message": "Надіслати відмічені сегменти"
},
"submitCheck": {
"message": "Ви впевнені, що хочете надіслати цю інформацію?"
},
"whitelistChannel": {
"message": "Додати канал в білий список"
},
"removeFromWhitelist": {
"message": "Видалити канал з білого списку"
},
"voteOnTime": {
"message": "Проголосувати за час спонсорської вставки"
},
"recordTimes": {
"message": "Записати час спонсорської вставки"
},
"soFarUHSubmited": {
"message": "На даний момент Ви надіслали"
},
"savedPeopleFrom": {
"message": "Ви допомогли людям заощадити "
},
"viewLeaderboard": {
"message": "Подивитися дошку пошани"
},
"here": {
"message": "тут"
},
"recordTimesDescription": {
"message": "Натисніть кнопку нижче, коли спонсорська вставка починається і закінчується, щоб записати\nі надіслати її в базу даних."
},
"popupHint": {
"message": "Підказка: Натисніть клавішу крапки з комою, щоб повідомити початок/кінець спонсорської вставки і пропозицію для надсилання. (Це можна змінити в налаштуваннях)"
},
"lastTimes": {
"message": "Останній обраний час спонсорської вставки"
},
"clearTimesButton": {
"message": "Очистити час"
},
"submitTimesButton": {
"message": "Надіслати час"
},
"publicStats": {
"message": "Воно використовується на публічній сторінці статистики, щоб показати Ваш внесок. Її можна подивитися"
},
"setUsername": {
"message": "Встановити ім'я користувача"
},
"discordAdvert": {
"message": "Приєднуйтесь до офіційного сервера Discord, щоб залишити пропозиції і зворотний зв'язок!"
},
"hideThis": {
"message": "Приховати це"
},
"Options": {
"message": "Налаштування"
},
"showButtons": {
"message": "Показувати кнопки в плеєрі YouTube"
},
"hideButtons": {
"message": "Приховати кнопки в плеєрі YouTube"
},
"hideButtonsDescription": {
"message": "Це налаштування приховує кнопки для надсилання спонсорських вставок, які з'являються в плеєрі YouTube."
},
"showInfoButton": {
"message": "Показувати кнопку інформації в плеєрі YouTube"
},
"hideInfoButton": {
"message": "Приховати кнопку інформації в плеєрі YouTube"
},
"whatInfoButton": {
"message": "Ця кнопка відкриває спливаюче вікно на сторінці YouTube."
},
"hideDeleteButton": {
"message": "Приховати кнопку видалення в плеєрі YouTube"
},
"showDeleteButton": {
"message": "Показувати кнопку видалення в плеєрі YouTube"
},
"whatDeleteButton": {
"message": "Ця кнопка дозволяє очистити всі спонсорські вставки в плеєрі YouTube."
},
"disableViewTracking": {
"message": "Вимкнути відстеження кількості пропусків спонсорських вставок"
},
"enableViewTracking": {
"message": "Увімкнути відстеження кількості пропусків спонсорських вставок"
},
"whatViewTracking": {
"message": "Ця можливість відстежує, які спонсорські вставки Ви пропустили, щоб допомогти користувачам дізнатися, наскільки їхвнесок допоміг іншим, і використовується як метрика, щоб переконатися, що спам не потрапляє у базу даних. Розширення відправляє повідомлення на сервер кожен раз, коли Ви пропускаєте спонсорську вставку. Сподіваємося, велика частина користувачів не поміняє це налаштування, так що у нас буде точна статистика переглядів :)"
},
"showNotice": {
"message": "Показувати сповіщення знову"
},
"website": {
"message": "Сайт",
"description": "Used on Firefox Store Page"
},
"sourceCode": {
"message": "Вихідний код",
"description": "Used on Firefox Store Page"
},
"noticeUpdate": {
"message": "Повідомлення було оновлено!",
"description": "The first line of the message displayed after the notice was upgraded."
},
"noticeUpdate2": {
"message": "Якщо воно Вам все одно не подобається, натисніть «не показувати\".",
"description": "The second line of the message displayed after the notice was upgraded."
},
"setStartSponsorShortcut": {
"message": "Призначити гарячу клавішу для початку спонсорської вставки"
},
"setSubmitKeybind": {
"message": "Призначити гарячу клавішу для надсилання"
},
"keybindDescription": {
"message": "Натисніть, щоб вибрати її"
},
"keybindDescriptionComplete": {
"message": "Кнопка призначена на: "
},
"0": {
"message": "Таймаут підключення. Перевірте ваше з'єднання з інтернетом. Якщо ваш інтернет працює, сервер, швидше за все, перевантажений або лежить."
},
"disableSkipping": {
"message": "Відключити SponsorBlock"
},
"enableSkipping": {
"message": "Увімкнути SponsorBlock"
},
"yourWork": {
"message": "Ваша робота",
"description": "Used to describe the section that will show you the statistics from your submissions."
},
"502": {
"message": "Схоже, він перевантажений. Спробуйте ще раз через кілька секунд."
},
"errorCode": {
"message": "Код помилки: "
},
"skip": {
"message": "Пропустити"
},
"skipped": {
"message": "Пропущено"
},
"disableAutoSkip": {
"message": "Вимкнути автоматичний пропуск"
},
"enableAutoSkip": {
"message": "Увімкнути автоматичний пропуск"
},
"autoSkipDescription": {
"message": "Автоматичний пропуск буде пропускати спонсорські вставки за Вас. Якщо вимкнено, буде показуватися повідомлення з пропозицією пропустити."
},
"audioNotification": {
"message": "Аудіо сповіщення при пропуску"
},
"audioNotificationDescription": {
"message": "Аудіо сповіщення про пропуск буде відтворюватися кожен раз, коли спонсор пропущений. Якщо відключено (або автоматичне пропуск відключений), звук не буде відтворюватися."
},
"youHaveSkipped": {
"message": "Ви пропустили "
},
"youHaveSaved": {
"message": "Ви заощадили "
},
"minLower": {
"message": "хвилину"
},
"minsLower": {
"message": "хвилин"
},
"hourLower": {
"message": "година"
},
"hoursLower": {
"message": "годин"
},
"youHaveSavedTime": {
"message": "Ви заощадили людям"
},
"youHaveSavedTimeEnd": {
"message": " їх життя."
},
"guildlinesSummary": {
"message": "- Переконайтеся, що Ваш сегмент містить тільки платну інтеграцію, і більше нічого.\n- Переконайтеся, що пропуск цього сегмента не пропустить жодного цінного контенту\n- Якщо все відео цілком спонсорське, будь ласка, не повідомляйте про нього. Система для повідомлення про цілі відео скоро вийде.\n- Будь ласка, не повідомляйте про відмови від відповідальності, які можуть показати упередженість (якщо відео з оглядом проплачено, не пропускайте, коли вони це згадують)."
},
"statusReminder": {
"message": "Дивіться стан сервера на status.sponsor.ajay.app."
},
"changeUserID": {
"message": "Імпортувати/Експортувати Ваш ідентифікатор користувача"
},
"whatChangeUserID": {
"message": "Це потрібно тримати в секреті. Це як пароль, не варто ним ні з ким ділитися. Якщо він у кого-то є, він зможе видати себе за Вас."
},
"setUserID": {
"message": "Встановити ідентифікатор користувача"
},
"userIDChangeWarning": {
"message": "Увага: зміна ідентифікатора користувача є незворотнім. Ви дійсно хочете це зробити? Зробіть резервну копію вашого старого про всяк випадок."
},
"createdBy": {
"message": "Створено"
},
"autoSkip": {
"message": "Автоматичний пропуск"
},
"showSkipNotice": {
"message": "Показувати сповіщення після пропуску спонсорської вставки"
},
"keybindCurrentlySet": {
"message": ". Він зараз призначений на:"
},
"supportInvidious": {
"message": "Підтримка Invidious"
},
"supportInvidiousDescription": {
"message": "Invidious (invidio.us) - це неофіційний клієнт для YouTube. Щоб увімкнути підтримку, Вам знадобиться прийняти додаткові дозволи. Ця функція НЕ працює в режимі \"інкогніто\" в Chrome і браузерах, заснованих на Chromium."
},
"optionsInfo": {
"message": "Увімкнути підтримку Invidious, вимкнути автоматичний пропуск, приховати кнопки і не тільки."
},
"addInvidiousInstance": {
"message": "Додати інстанси Invidious"
},
"addInvidiousInstanceDescription": {
"message": "Додати свій інстанси Invidious. Формат: ТІЛЬКИ домен. Наприклад: invidious.ajay.app"
},
"add": {
"message": "Додати"
},
"addInvidiousInstanceError": {
"message": "Це неправильний домен. Введіть ТІЛЬКИ домен. Наприклад: invidious.ajay.app"
},
"resetInvidiousInstance": {
"message": "Скинути список інстанси Invidious"
},
"resetInvidiousInstanceAlert": {
"message": "Ви збираєтеся скинути список інстанси Invidious"
},
"currentInstances": {
"message": "Поточні інстанси:"
},
"minDuration": {
"message": "Мінімальна тривалість (секунд):"
},
"minDurationDescription": {
"message": "Спонсорські сегменти коротше цього значення не будуть пропускатися і не будуть показані в плеєрі."
},
"shortCheck": {
"message": "Наступний діапазон часу коротше, ніж Ваше налаштування мінімальної тривалості. Це може означати, що він вже був надісланий, і просто ігнорується через це налаштування. Ви дійсно хочете надіслати?"
},
"showUploadButton": {
"message": "Показувати кнопку надсилання"
},
"whatUploadButton": {
"message": "Ця кнопка з'являється в плеєрі YouTube після того, як Ви вибрали позначку часу і готові до надсилання."
},
"customServerAddress": {
"message": "Адреса сервера SponsorBlock"
},
"customServerAddressDescription": {
"message": "Адреса, за якою SponsorBlock звертається до сервера.\nМіняйте тільки якщо Ви підняли свій сервер."
},
"save": {
"message": "Зберегти"
},
"reset": {
"message": "Скинути"
},
"customAddressError": {
"message": "Ця адреса неправильного формату. Переконайтеся, що він починається з http: // або https: //, і що на кінці немає слеша."
},
"areYouSureReset": {
"message": "Ви дійсно хочете це скинути?"
},
"confirmPrivacy": {
"message": "Було виявлено, що це відео непублічна. Натисніть \"скасування\", якщо не хочете перевіряти його на спонсорів."
},
"unlistedCheck": {
"message": "Ігнорувати непублічні відео"
},
"whatUnlistedCheck": {
"message": "Це налаштування значно сповільнить SponsorBlock. Пошук спонсорів вимагає надсилання ідентифікатора відео на сервер. Якщо Вас турбує відправка ідентифікаторів непублічних відео по інтернету, увімкніть це налаштування."
},
"mobileUpdateInfo": {
"message": "m.youtube.com тепер підтримується"
},
"exportOptions": {
"message": "Імпорт/Експорт всіх налаштувань"
},
"whatExportOptions": {
"message": "Це вся конфігурація в форматі JSON. Цей файл містить Ваш ідентифікатор користувача, тому не забудьте ділитися з цим розумно."
},
"setOptions": {
"message": "Встановити параметри"
},
"confirmNoticeTitle": {
"message": "Надіслати сегмент"
},
"submit": {
"message": "Надіслати"
},
"cancel": {
"message": "Скасувати"
},
"delete": {
"message": "Видалити"
},
"preview": {
"message": "Попередній перегляд"
},
"edit": {
"message": "Редагувати"
},
"theKey": {
"message": "Ключ"
},
"category_sponsor": {
"message": "Спонсор"
},
"disable": {
"message": "Вимкнути"
},
"manualSkip": {
"message": "Пропуск вручну"
},
"bracketNow": {
"message": "(Зараз)"
},
"moreCategories": {
"message": "Більше категорій"
},
"bracketEnd": {
"message": "(Кінець)"
},
"incorrectCategory": {
"message": "Невірна категорія"
}
}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1,589 @@
{
"fullName": {
"message": "SponsorBlock for YouTube - 跳过赞助商广告",
"description": "Name of the extension."
},
"Description": {
"message": "跳过 YouTube 视频的赞助商广告。报告您观看的视频的赞助商广告以节省他人的时间。",
"description": "Description of the extension."
},
"400": {
"message": "服务器说此请求无效"
},
"429": {
"message": "您为这个视频提交了太长的赞助商广告时间,您确定有这么多吗?"
},
"409": {
"message": "它之前已经被提交过了"
},
"channelWhitelisted": {
"message": "频道已加入白名单!"
},
"Sponsor": {
"message": "赞助商广告"
},
"Sponsors": {
"message": "赞助商广告"
},
"Segment": {
"message": "赞助商广告片段"
},
"Segments": {
"message": "赞助商广告片段"
},
"upvoteButtonInfo": {
"message": "为这个提交点赞"
},
"reportButtonTitle": {
"message": "报告"
},
"reportButtonInfo": {
"message": "报告此提交不正确。"
},
"Dismiss": {
"message": "忽略"
},
"Loading": {
"message": "加载中..."
},
"Mins": {
"message": "分钟"
},
"Secs": {
"message": "秒"
},
"Hide": {
"message": "不再显示"
},
"hitGoBack": {
"message": "点击取消跳过以回到您原来的样子。"
},
"unskip": {
"message": "取消跳过"
},
"reskip": {
"message": "继续跳过"
},
"paused": {
"message": "已暂停"
},
"manualPaused": {
"message": "计时器已停止"
},
"confirmMSG": {
"message": "要编辑或删除个别值,请点击信息按钮或通过点击右上角的扩展图标打开扩展弹窗。"
},
"clearThis": {
"message": "您确定要清空它吗?\n\n"
},
"Unknown": {
"message": "提交您的赞助商广告时间时出错。请稍后再试。"
},
"sponsorFound": {
"message": "此视频的赞助商广告在数据库中!"
},
"sponsor404": {
"message": "未找到赞助商广告"
},
"sponsorStart": {
"message": "赞助商广告现在开始"
},
"sponsorEnd": {
"message": "赞助商广告现在结束"
},
"noVideoID": {
"message": "在此标签页未找到 Youtube 视频。如果您确定这是一个 Youtube 页面,请关闭此弹窗并重新打开。如果那没用,请尝试重新加载页面。"
},
"success": {
"message": "成功 "
},
"voted": {
"message": "已投票!"
},
"serverDown": {
"message": "服务器似乎已宕机。请立即联系开发者。"
},
"connectionError": {
"message": "连接错误。错误代码: "
},
"wantToSubmit": {
"message": "您想要为此视频提交赞助商广告时间吗"
},
"leftTimes": {
"message": "您似乎还有一些赞助商广告时间未提交。请回到那个页面提交它们(它们未被删除)。"
},
"clearTimes": {
"message": "清除赞助商广告时间"
},
"openPopup": {
"message": "打开 SponsorBlock 弹窗"
},
"SubmitTimes": {
"message": "提交赞助商广告时间"
},
"submitCheck": {
"message": "您确定要提交它吗?"
},
"whitelistChannel": {
"message": "白名单频道"
},
"removeFromWhitelist": {
"message": "将频道移出白名单"
},
"voteOnTime": {
"message": "为赞助商广告时间投票"
},
"recordTimes": {
"message": "记录赞助商广告次数"
},
"soFarUHSubmited": {
"message": "您目前已提交"
},
"savedPeopleFrom": {
"message": "您已为人们节省了 "
},
"viewLeaderboard": {
"message": "查看排行榜"
},
"here": {
"message": "这里"
},
"recordTimesDescription": {
"message": "当赞助商广告开始和结束时,请点击下面的按钮记录并将其提交到数据库。"
},
"popupHint": {
"message": "提示:在观看视频时,按下分号键(;)以报告赞助商广告的开始/结束时间,按下引号键(’)提交。(可以在选项中更改)"
},
"lastTimes": {
"message": "选择的最新的赞助商广告信息时间"
},
"clearTimesButton": {
"message": "清除时间"
},
"submitTimesButton": {
"message": "提交时间"
},
"publicStats": {
"message": "这被用于在公开统计页面上展示您的贡献。查看它"
},
"setUsername": {
"message": "设定用户名"
},
"discordAdvert": {
"message": "快加入官方 Discord 服务器来提供建议与反馈!"
},
"hideThis": {
"message": "隐藏它"
},
"Options": {
"message": "选项"
},
"showButtons": {
"message": "在 Youtube 播放器上显示按钮"
},
"hideButtons": {
"message": "在 Youtube 播放器上隐藏按钮"
},
"hideButtonsDescription": {
"message": "这将隐藏在 YouTube 播放器上提交赞助商广告的按钮。我了解这个东西打扰到了某些人。除了使用那个按钮,这个弹窗也可以用来提交赞助商广告。 要隐藏出现的通知,请使用通知中显示的写着 ”不再显示“ 的按钮。您可以在以后再次启用这些设置。"
},
"showInfoButton": {
"message": "在 Youtube 播放器上显示信息按钮"
},
"hideInfoButton": {
"message": "在 Youtube 播放器上隐藏信息按钮"
},
"whatInfoButton": {
"message": "此按钮用于在 Youtube 页面中打开弹窗。"
},
"hideDeleteButton": {
"message": "在 Youtube 播放器上隐藏删除按钮"
},
"showDeleteButton": {
"message": "在 Youtube 播放器上显示删除按钮"
},
"whatDeleteButton": {
"message": "此按钮用于在 Youtube 播放器中清除所有赞助商广告。"
},
"disableViewTracking": {
"message": "禁用赞助商广告跳过统计跟踪"
},
"enableViewTracking": {
"message": "启用赞助商广告跳过统计跟踪"
},
"whatViewTracking": {
"message": "此功能追踪您跳过了哪些赞助商广告,以让用户知道他们提交的信息帮助了多少人,并与点赞一同作为依据,来确保垃圾信息不会进入数据库。在您每次跳过赞助商广告时,扩展都会向服务器发送一条消息。希望大部分人不要改变此设置,以使观看数字准确。:)"
},
"showNotice": {
"message": "重新显示通知"
},
"website": {
"message": "网站",
"description": "Used on Firefox Store Page"
},
"sourceCode": {
"message": "源代码",
"description": "Used on Firefox Store Page"
},
"noticeUpdate": {
"message": "通知已升级!",
"description": "The first line of the message displayed after the notice was upgraded."
},
"noticeUpdate2": {
"message": "如果您依然不喜欢它,请按下不再显示按钮。",
"description": "The second line of the message displayed after the notice was upgraded."
},
"setStartSponsorShortcut": {
"message": "设定赞助商广告开始的绑定按键"
},
"setSubmitKeybind": {
"message": "设定提交的绑定按键"
},
"keybindDescription": {
"message": "点击您想选择的按键"
},
"keybindDescriptionComplete": {
"message": "绑定按键已被设定为: "
},
"0": {
"message": "连接超时。请检查您的网络连接。如果您的网络运行正常,则可能是服务器过载或宕机。"
},
"disableSkipping": {
"message": "禁用 SponsorBlock"
},
"enableSkipping": {
"message": "启用 SponsorBlock"
},
"yourWork": {
"message": "您的成果",
"description": "Used to describe the section that will show you the statistics from your submissions."
},
"502": {
"message": "服务器似乎已过载。请稍后再试。"
},
"errorCode": {
"message": "错误代码: "
},
"skip": {
"message": "跳过"
},
"skipped": {
"message": "跳过"
},
"disableAutoSkip": {
"message": "禁用自动跳过"
},
"enableAutoSkip": {
"message": "启用自动跳过"
},
"autoSkipDescription": {
"message": "自动跳过将会为您跳过赞助商广告。如果被禁用,将会显示一个通知询问您是否要跳过。"
},
"audioNotification": {
"message": "跳过时音频通知"
},
"audioNotificationDescription": {
"message": "跳过时音频通知会在跳过赞助商广告时播放声音。如果被禁用(或自动跳过被禁用),则不会播放声音。"
},
"youHaveSkipped": {
"message": "您已跳过 "
},
"youHaveSaved": {
"message": "您为自己节省了 "
},
"minLower": {
"message": "分钟"
},
"minsLower": {
"message": "分钟"
},
"hourLower": {
"message": "小时"
},
"hoursLower": {
"message": "小时"
},
"youHaveSavedTime": {
"message": "您为人们节省了"
},
"youHaveSavedTimeEnd": {
"message": " 的生命。"
},
"guildlinesSummary": {
"message": "- 请确保您的片段只包含付费推广片段,没有其他的东西。\n- 请确保跳过此片段不会跳过重要的内容\n- 如果整个视频本身就是赞助商广告,请不要报告它。完整视频报告系统将在不久后推出。\n- 请不要报告可能产生偏见的免责声明(如果评测视频有赞助商,请不要在他们提到这一点时跳过)。"
},
"statusReminder": {
"message": "在 status.sponsor.ajay.app 检查服务器状态。"
},
"changeUserID": {
"message": "导入/导出您的用户 ID"
},
"whatChangeUserID": {
"message": "这应该被保密。这就像一个密码,且不应该告诉任何人。如果有人拥有它,他就可以冒充您。"
},
"setUserID": {
"message": "设定用户 ID"
},
"userIDChangeWarning": {
"message": "警告:更改用户 ID 是永久性的。您确定要这么做吗?请务必备份您的旧用户 ID 以防万一。"
},
"createdBy": {
"message": "创建者"
},
"autoSkip": {
"message": "自动跳过"
},
"showSkipNotice": {
"message": "跳过赞助商广告后显示通知"
},
"keybindCurrentlySet": {
"message": "。目前被设定为:"
},
"supportInvidious": {
"message": "支持 Invidious"
},
"supportInvidiousDescription": {
"message": "Invidious (invidio.us) 是一个第三方 Youtube 客户端。要启用支持,您必须允许额外的权限。在 Chrome 及其他 Chromium 变种的匿名模式中无法工作。"
},
"optionsInfo": {
"message": "启用 Invidious 支持,禁用自动跳过,隐藏按钮等等。"
},
"addInvidiousInstance": {
"message": "添加 Invidious 实例"
},
"addInvidiousInstanceDescription": {
"message": "添加一个 Invidious 自定义实例。它必须是只有域名的格式。例如invidious.ajay.app"
},
"add": {
"message": "添加"
},
"addInvidiousInstanceError": {
"message": "这是一个无效的域名。它应该只包括域名部分。例如invidious.ajay.app"
},
"resetInvidiousInstance": {
"message": "重置 Invidious 实例列表"
},
"resetInvidiousInstanceAlert": {
"message": "您将会重置 Invidious 实例列表"
},
"currentInstances": {
"message": "当前实例:"
},
"minDuration": {
"message": "最小持续时间(秒)"
},
"minDurationDescription": {
"message": "短于设定值的赞助商广告片段将不会被跳过或显示在播放器中。"
},
"shortCheck": {
"message": "以下的提交短于您的最小持续时间选项。这代表它们可能已经被提交,只是由于该选项被忽略了。您确定要提交吗?"
},
"showUploadButton": {
"message": "显示上传按钮"
},
"whatUploadButton": {
"message": "在您选择了时间并准备提交后,此按钮会出现在 Youtube 播放器中。"
},
"customServerAddress": {
"message": "SponsorBlock 服务器地址"
},
"customServerAddressDescription": {
"message": "SponsorBlock 用于联系服务器的地址。\n除非您有自己的服务器实例否则这不应该更改。"
},
"save": {
"message": "保存"
},
"reset": {
"message": "重置"
},
"customAddressError": {
"message": "此地址格式不正确。请确保开头有 http:// 或 https:// ,结尾没有斜杠 / 。"
},
"areYouSureReset": {
"message": "您确定要重置它吗?"
},
"confirmPrivacy": {
"message": "未检测到视频的记录。如果您不想检查赞助商广告,请点击取消。"
},
"unlistedCheck": {
"message": "忽略未找到记录的视频"
},
"whatUnlistedCheck": {
"message": "此设置将显著的减慢 SponsorBlock 。赞助商广告查找器需要向服务器发送未找到记录的视频 ID 。如果您对通过互联网发送视频 ID 有疑虑,请启用此选项。"
},
"mobileUpdateInfo": {
"message": "现已支持 m.youtube.com"
},
"exportOptions": {
"message": "导入/导出所有选项"
},
"whatExportOptions": {
"message": "这是您全部配置的 JSON 格式。它包含了您的用户 ID ,所以您一定要谨慎的保管它。"
},
"setOptions": {
"message": "设定选项"
},
"exportOptionsWarning": {
"message": "警告:更改选项是永久性的且可能破坏您安装的东西。您确定要这么做吗?请确保已备份旧文件以防万一。"
},
"incorrectlyFormattedOptions": {
"message": "此 JSON 格式不正确。您的选项尚未更改。"
},
"confirmNoticeTitle": {
"message": "提交片段"
},
"submit": {
"message": "提交"
},
"cancel": {
"message": "取消"
},
"delete": {
"message": "删除"
},
"preview": {
"message": "预览"
},
"edit": {
"message": "编辑"
},
"copyDebugInformation": {
"message": "复制调试信息到剪贴板"
},
"copyDebugInformationFailed": {
"message": "复制到剪贴板失败"
},
"copyDebugInformationOptions": {
"message": "复制信息到剪贴板,在提交错误或开发者需要时提供给他。 敏感信息如您的用户ID白名单频道和自定义服务器地址等已被删除。然而它仍然包含诸如您的 useragent ,浏览器,操作系统和扩展版本号等信息。 "
},
"copyDebugInformationComplete": {
"message": "调试信息已复制到剪切板中。 您可以随意移除任何您不想分享的信息。请将其另存为 .txt 文件或粘贴到错误报告中。"
},
"theKey": {
"message": "按键"
},
"keyAlreadyUsed": {
"message": "已绑定其他操作。请选择其他按键。"
},
"to": {
"message": "到",
"description": "Used between sponsor times. Example: 1:20 to 1:30"
},
"category_sponsor": {
"message": "赞助商广告"
},
"category_outro": {
"message": "结束画面/结尾职员表"
},
"category_interaction": {
"message": "互动提醒(订阅)"
},
"category_interaction_short": {
"message": "互动提醒"
},
"category_selfpromo": {
"message": "未收钱的/自我推销"
},
"category_music_offtopic": {
"message": "音乐:非音乐部分"
},
"category_music_offtopic_short": {
"message": "无音乐"
},
"category_livestream_messages": {
"message": "直播:捐赠/消息阅读"
},
"category_livestream_messages_short": {
"message": "阅读消息"
},
"disable": {
"message": "禁用"
},
"manualSkip": {
"message": "手动跳过"
},
"showOverlay": {
"message": "在搜索栏中显示"
},
"previewColor": {
"message": "预览颜色",
"description": "Referring to submissions that have not been sent to the server yet."
},
"seekBarColor": {
"message": "拖动条颜色"
},
"category": {
"message": "类别"
},
"skipOption": {
"message": "跳过选项",
"description": "Used on the options page to describe the ways to skip the segment (auto skip, manual, etc.)"
},
"enableTestingServer": {
"message": "启用 Beta 测试服务器"
},
"whatEnableTestingServer": {
"message": "您的提交和投票将不会计入主服务器。它只被用于测试。"
},
"testingServerWarning": {
"message": "当连接到测试服务器时,所有的提交和投票将不会计入主服务器。当您想要进行真实提交时,请确保禁用了此选项。"
},
"bracketNow": {
"message": "(现在)"
},
"moreCategories": {
"message": "更多类别"
},
"bracketEnd": {
"message": "(结束)"
},
"hiddenDueToDownvote": {
"message": "隐藏:差评"
},
"hiddenDueToDuration": {
"message": "隐藏:过短"
},
"channelDataNotFound": {
"message": "频道 ID 尚未加载。"
},
"adblockerIssue": {
"message": "似乎某些东西正在阻止 SponsorBlock 获取视频数据的功能。它很可能是您的广告拦截器。请查看 https://github.com/ajayyy/SponsorBlock/wiki/Fix-Ad-Blocker-Blocking-SponsorBlock's-Requests"
},
"itCouldBeAdblockerIssue": {
"message": "如果这种情况不断发生,它可能是由您的广告拦截器引起的。请查看 https://github.com/ajayyy/SponsorBlock/wiki/Fix-Ad-Blocker-Blocking-SponsorBlock's-Requests"
},
"forceChannelCheck": {
"message": "跳过赞助商广告前强制进行频道检查"
},
"whatForceChannelCheck": {
"message": "默认情况下,即使还未检测出当前是什么频道,也会立即跳过赞助商广告。默认情况下,即使在白名单中的频道,一些在开头的赞助商广告也可能被跳过。启用此选项将防止这种情况,但所有的跳过将会产生轻微的延迟,因为获取频道 ID 需要一点时间。如果您的网速很快,那延迟可能非常短。"
},
"forceChannelCheckPopup": {
"message": "请考虑启用跳过赞助商广告前强制进行频道检查"
},
"downvoteDescription": {
"message": "不正确/错误的时间"
},
"incorrectCategory": {
"message": "错误的类别"
},
"nonMusicCategoryOnMusic": {
"message": "此视频被归类为音乐。您确定要提交带有非音乐类别的片段吗?除非此视频实际上不是音乐,否则您不应提交此片段。如果您感到困惑,请阅读指南。"
},
"multipleSegments": {
"message": "多个片段"
},
"guidelines": {
"message": "指南"
},
"readTheGuidelines": {
"message": "阅读指南!!",
"description": "Show the first time they submit or if they are \"high risk\""
},
"categoryUpdate1": {
"message": "类别在这里!"
},
"categoryUpdate2": {
"message": "打开选项,跳过开头,结尾,商业等。"
}
}

View File

@@ -0,0 +1 @@
{}

417
public/content.css Normal file
View File

@@ -0,0 +1,417 @@
#previewbar {
overflow: visible;
padding: 0;
margin: 0;
position: absolute;
width: 100%;
pointer-events: none;
height: 100%;
transform: scaleY(0.6) translateY(-30%) translateY(1.5px);
z-index: 40;
}
.sbHidden {
display: none !important;
}
.previewbar {
display: inline-block;
height: 100%;
}
/* Preview Bar page hacks */
.sbTooltipTwoTitleThumbnailOffset {
bottom: -5px !important;
}
.sbTooltipOneTitleThumbnailOffset {
bottom: 10px !important;
}
/* */
.popup {
z-index: 10;
width: 100%;
height: 500px;
}
.smallLink {
font-size: 10px;
text-decoration: underline;
cursor: pointer;
}
.playerButtonImage {
height: 60%;
top: 0;
bottom: 0;
display: block;
margin: auto;
}
.playerButton {
vertical-align: top;
}
.sponsorSkipObject {
font-family: Roboto, Arial, Helvetica, sans-serif;
margin-left: 2px;
margin-right: 2px;
}
.sponsorSkipLogo {
height: 18px;
float: left;
}
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
@keyframes fadeOut {
from { opacity: 1; }
to { opacity: 0; }
}
.sponsorBlockSpacer {
background-color: rgb(100, 100, 100);
border-color: rgb(100, 100, 100);
margin-left: 5px;
}
.sponsorSkipNotice {
min-width: 350px;
background-color: rgba(28, 28, 28, 0.9);
position: absolute;
right: 5px;
bottom: 100px;
right: 10px;
border-radius: 5px;
border-spacing: 5px 10px;
padding-left: 5px;
padding-right: 5px;
border-collapse: unset;
}
.sponsorSkipNoticeFadeIn {
animation: fadeIn 0.5s;
}
.sponsorSkipNoticeFadeOut {
animation: fadeOut 3s cubic-bezier(0.55, 0.055, 0.675, 0.19);
}
.sponsorSkipNoticeTimeLeft {
color: #eeeeee;
border-radius: 4px;
padding: 2px 5px;
font-size: 12px;
border: 1px solid #eeeeee;
}
/* if two are very close to eachother */
.secondSkipNotice {
bottom: 250px;
transition: bottom 0.2s;
}
.sponsorSkipNoticeUnskipSection {
float: left;
border-left: 1px solid rgb(150, 150, 150);
}
.sponsorSkipNoticeButton {
background: none;
color: rgb(235, 235, 235);
border: none;
display: inline-block;
font-size: 13.3333px !important;
cursor: pointer;
margin-right: 10px;
padding: 2px 5px;
}
.sponsorSkipNoticeButton:hover {
background-color: rgba(235, 235, 235,0.2);
border-radius: 4px;
transition: background-color 0.4s;
}
.sponsorTimesVoteButtonsContainer {
float: left;
padding: 2px 5px;
margin-right: 4px;
}
.sponsorSkipNoticeRightSection {
right: 0;
position: absolute;
float: right;
margin-right: 5px;
}
.sponsorSkipNoticeRightButton {
margin-right: 0;
}
.sponsorSkipNoticeCloseButton {
height: 10px;
width: 10px;
box-sizing: unset;
padding: 2px 5px;
margin-left: 2px;
float: right;
}
.sponsorSkipMessage {
font-size: 14px;
font-weight: bold;
color: rgb(235, 235, 235);
display: inline-block;
}
.sponsorSkipInfo {
font-size: 10px;
color: #000000;
text-align: center;
margin-top: 0px;
}
#sponsorTimesThanksForVotingText {
font-size: 20px;
font-weight: bold;
color: #000000;
text-align: center;
margin-top: 0px;
margin-bottom: 0px;
}
#sponsorTimesThanksForVotingInfoText {
font-size: 12px;
font-weight: bold;
color: #000000;
text-align: center;
margin-top: 0px;
}
.sponsorTimesVoteButtonMessage {
float: left;
}
.sponsorTimesInfoMessage {
font-size: 13.3333px;
color: rgb(235, 235, 235);
text-align: center;
}
.voteButton {
height: 17px;
cursor: pointer;
}
.voteButton:hover {
filter: brightness(80%);
}
.submitButton {
background-color:#ec1c1c;
-moz-border-radius:28px;
-webkit-border-radius:28px;
border-radius:28px;
border:1px solid #d31919;
display:inline-block;
cursor:pointer;
color:#ffffff;
font-size:14px;
padding:4px 15px;
text-decoration:none;
text-shadow:0px 0px 0px #662727;
margin-top: 5px;
margin-right: 15px;
}
.submitButton:hover {
background-color:#bf2a2a;
}
.submitButton:focus {
outline: none;
background-color:#bf2a2a;
}
.submitButton:active {
position:relative;
top:1px;
}
@keyframes rotate {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
.sponsorSkipButton {
background-color:#ec1c1c;
-moz-border-radius:28px;
-webkit-border-radius:28px;
border-radius:28px;
border:1px solid #d31919;
display:inline-block;
cursor:pointer;
color:#ffffff;
font-size:14px;
padding:4px 15px;
text-decoration:none;
text-shadow:0px 0px 0px #662727;
margin-top: 5px;
margin-right: 15px;
}
.sponsorSkipButton:hover {
background-color:#bf2a2a;
}
.sponsorSkipButton:focus {
outline: none;
background-color:#bf2a2a;
}
.sponsorSkipButton:active {
position:relative;
top:1px;
}
.sponsorSkipDontShowButton {
-moz-box-shadow:inset 0px 1px 0px 0px #cf866c;
-webkit-box-shadow:inset 0px 1px 0px 0px #cf866c;
box-shadow:inset 0px 1px 0px 0px #cf866c;
background-color:#d0451b;
-moz-border-radius:3px;
-webkit-border-radius:3px;
border-radius:3px;
border:1px solid #942911;
display:inline-block;
cursor:pointer;
color:#ffffff;
font-size:13px;
padding:6px 24px;
text-decoration:none;
text-shadow:0px 1px 0px #854629;
}
.sponsorSkipDontShowButton:hover {
background-color:#bc3315;
}
.sponsorSkipDontShowButton:focus {
outline: none;
background-color:#bc3315;
}
.sponsorSkipDontShowButton:active {
position:relative;
top:1px;
}
/* Submission Notice */
.sponsorTimeDisplay {
font-size: 15px;
}
.sponsorTimeEditButton {
text-decoration: underline;
margin-left: 20px;
margin-right: 20px;
font-size: 13px;
cursor: pointer;
}
.sponsorTimeEdit > input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}
.sponsorTimeMessagesRow {
max-height: 300px;
display: flex;
overflow: auto;
}
.sponsorTimeEdit {
font-size: 14px;
-moz-appearance: textfield;
}
.sponsorTimeEditMinutes {
width: 30px;
}
.sponsorTimeEditSeconds {
width: 60px;
}
.sponsorNowButton {
font-size: 11px;
cursor: pointer;
text-decoration: underline;
}
.sponsorTimeCategories {
margin-top: 5px;
margin-bottom: 5px;
background-color: rgba(28, 28, 28, 0.9);
border-color: rgb(130,0,0,0.9);
color: white;
border-width: 3px;
padding: 3px;
}
.helpButton {
}
.helpButton {
height: 25px;
cursor: pointer;
padding: 5px;
margin: auto;
top: 0;
bottom: 0;
position: absolute;
}
.helpButton:hover {
filter: brightness(80%);
}

136
public/help/index_en.html Normal file
View File

@@ -0,0 +1,136 @@
<!DOCTYPE html>
<head>
<title> SponsorBlock </title>
<meta charset="utf-8">
<link href="styles.css" rel="stylesheet"/>
</head>
<body>
<div id="title">
<img src="../icons/LogoSponsorBlocker256px.png" height="80" class="profilepic"/>
SponsorBlock
</div>
<div class="container">
<p class="createdBy">Created By <a href="https://ajay.app">Ajay Ramachandran</a> <img src="https://ajay.app/newprofilepic.jpg" height="30" class="profilepiccircle"/></p>
<p>
Thanks for installing SponsorBlock. Here are some quick tips for getting started. Feel free to contact me if you have any questions.
</p>
<p class="projectPreview">
<span class="projectPreviewImage">
<a href="https://discord.gg/QnmVMpU"><img width="80" src="https://www.logolynx.com/images/logolynx/1b/1bcc0f0aefe71b2c8ce66ffe8645d365.png"/></a>
</span>
Come contribute, make some suggestions and help out in the Discord: <a href="https://discord.gg/QnmVMpU">https://discord.gg/QnmVMpU</a>
</p>
<p style="margin-bottom: 0" class="bigText center">Please review the options below</p>
<p>
Many features are disabled by default. If you want to skip Intros, outros, use Invidious, please enable the specific options. These can be enabled or disabled at any time.
You can also hide/show all UI elements added to the YouTube page.
</p>
<iframe src="../options/options.html#embed" width="100%" height="500px" style="border: none"></iframe>
<h1>How skipping works</h1>
<p class="projectPreview">
<span class="projectPreviewImageLarge">
<img src="https://i.imgur.com/caf5Bju.png">
</span>
Videos will automatically be skipped if they are found in the database. You can open the popup by clicking the extension icon to get a preview of what they are.
<br/>
<br/>
Whenever you skip a video, you will get a notice report that submission. If the timing seems wrong, report it! You can also vote in the popup. The extension auto upvotes it if you don't report it, so make sure to report when necessary (this can be disabled in the options).
</p>
<div class="center"><img height="120px" src="https://user-images.githubusercontent.com/12688112/63067735-5a638700-bede-11e9-8147-f321b57527ec.gif"></div>
<h1>Submitting</h1>
<p class="projectPreview">
<span class="projectPreviewImageLargeRight">
<img src="https://i.imgur.com/A1ilk6x.gif">
</span>
Submitting can either be done in the popup by hitting the "Sponsorship Starts Now" button or in the video player with the buttons on the player.
<br/>
<br/>
Clicking the play button indicated the start of a sponsorship section and clicking the stop icon indicates the end. You can prepare multiple sponsors before hitting submit. Clicking the upload button will submit. Clicking the garbage can will delete.
</p>
<h1>Editing</h1>
<p class="projectPreview">
<span class="projectPreviewImageLarge">
<img src="https://i.imgur.com/DZHqbsx.gif">
</span>
If you messed up, you can edit or delete your sponsor times in the popup or in the info menu (by hitting the info icon).
</p>
<h1>This is too slow</h1>
<p>
There are hotkeys if you want to use them. You must be focused on the YouTube player to use them. Press the semicolon key to indicate the start/end of a sponsor segment and click the appostrophe to submit.
These can be changed in the options. If you don't use QWERTY, you should probably change the keybinds.
</p>
<h1>I hate these buttons, they are so ugly</h1>
<p>
All player buttons can be hidden in the options.
</p>
<h1>Can I get a copy of the Database? What happens if you disappear?</h1>
<p>
The database is public and available at <a href="https://sponsor.ajay.app/database.db">https://sponsor.ajay.app/database.db</a>. The source code is freely available. So, even if something happens to me, your submissions are not lost.
</p>
<h1>News and how it is made</h1>
<p>
See <a href="https://sponsor.ajay.app/news">https://sponsor.ajay.app/news</a>.
</p>
<h1>I want more features!</h1>
<p>
Ask on Discord or make an Issue on GitHub. I am happy to hear suggestions or improvements you want. You may also contribute code or graphics if you would like.
</p>
<h1>Where can I get the source code?</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>Credits</h1>
<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="http://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="http://creativecommons.org/licenses/by/3.0/" title="Creative Commons BY 3.0" target="_blank">CC 3.0 BY</a></p>
</div>
</body>

179
public/help/styles.css Normal file
View File

@@ -0,0 +1,179 @@
.bigText {
font-size: 50px;
}
body {
background-color: #333333;
font-family: sans-serif;
}
.center {
text-align: center;
}
.container {
max-width: 60%;
margin: auto;
}
.projectPreview {
position: relative;
}
.projectPreviewImage {
position: absolute;
left: -90px;
width: 80px;
top: 50%;
transform: translateY(-50%);
}
.projectPreviewImageLarge {
position: absolute;
left: -210px;
width: 200px;
top: 50%;
transform: translateY(-20%);
}
.projectPreviewImageLargeRight {
position: absolute;
right: -210px;
width: 200px;
top: 50%;
transform: translateY(-50%);
}
.createdBy {
font-size: 14px;
text-align: center;
padding-top: 0px;
padding-bottom: 0px;
}
#title {
background-color: #636363;
text-align: center;
vertical-align: middle;
font-size: 50px;
color: #212121;
padding: 20px;
text-decoration: none;
transition: font-size 1s;
}
.subtitle {
font-size: 40px;
color: #dad8d8;
padding-top: 10px;
transition: font-size 0.4s;
}
.subtitle:hover {
font-size: 45px;
transition: font-size 0.4s;
}
.profilepic {
background-color: #636363 !important;
vertical-align: middle;
}
.profilepiccircle {
vertical-align: middle;
overflow: hidden;
border-radius: 50%;
}
a {
text-decoration: underline;
color: inherit;
}
.link {
padding: 20px;
height: 80px;
transition: height 0.2s;
}
.link:hover {
height: 95px;
transition: height 0.2s;
}
#contact,.smalllink {
font-size: 25px;
color: #e8e8e8;
text-align: center;
padding: 10px;
}
#contact {
text-decoration: none;
}
p,li,a {
font-size: 20px;
color: #c4c4c4;
}
p,li,code,a {
text-align: left;
overflow-wrap: break-word;
}
@media screen and (orientation:portrait) {
p,li,code,a {
max-width: 100%;
}
.projectPreviewImage {
position: unset;
width: 130px;
display: block;
margin: auto;
transform: none;
}
}
.previewImage {
max-height: 200px;
}
img {
max-width: 100%;
text-align: center;
}
#recentPostTitle {
font-size: 30px;
color: #dad8d8;
}
#recentPostDate {
font-size: 15px;
color: #dad8d8;
}
h1,h2,h3,h4,h5,h6 {
color: #dad8d8;
text-align: center;
}
svg {
text-decoration: none;
}

View File

Before

Width:  |  Height:  |  Size: 551 B

After

Width:  |  Height:  |  Size: 551 B

View File

Before

Width:  |  Height:  |  Size: 6.7 KiB

After

Width:  |  Height:  |  Size: 6.7 KiB

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 9.1 KiB

After

Width:  |  Height:  |  Size: 9.1 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

BIN
public/icons/beep.ogg Normal file

Binary file not shown.

BIN
public/icons/close.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

58
public/icons/help.svg Normal file
View File

@@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
height="24"
viewBox="0 0 24 24"
width="24"
version="1.1"
id="svg6"
sodipodi:docname="help.svg"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
<metadata
id="metadata12">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs10" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="730"
inkscape:window-height="480"
id="namedview8"
showgrid="false"
inkscape:zoom="9.8333333"
inkscape:cx="12"
inkscape:cy="12"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="svg6" />
<path
d="M0 0h24v24H0z"
fill="none"
id="path2" />
<path
d="M11 18h2v-2h-2v2zm1-16C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm0-14c-2.21 0-4 1.79-4 4h2c0-1.1.9-2 2-2s2 .9 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4z"
id="path4"
style="fill:#ffffff" />
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

BIN
public/icons/report.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
height="24"
viewBox="0 0 24 24"
width="24"
version="1.1"
id="svg6"
sodipodi:docname="thumbs_down.svg"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
<metadata
id="metadata12">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs10" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="730"
inkscape:window-height="480"
id="namedview8"
showgrid="false"
inkscape:zoom="9.8333333"
inkscape:cx="12"
inkscape:cy="12"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="svg6" />
<path
d="M0 0h24v24H0z"
fill="none"
id="path2" />
<path
d="M15 3H6c-.83 0-1.54.5-1.84 1.22l-3.02 7.05c-.09.23-.14.47-.14.73v2c0 1.1.9 2 2 2h6.31l-.95 4.57-.03.32c0 .41.17.79.44 1.06L9.83 23l6.59-6.59c.36-.36.58-.86.58-1.41V5c0-1.1-.9-2-2-2zm4 0v12h4V3h-4z"
id="path4"
style="fill:#ffffff" />
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
viewBox="0 0 24 24"
fill="black"
width="18px"
height="18px"
version="1.1"
id="svg6"
sodipodi:docname="thumbs_up.svg"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
<metadata
id="metadata12">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs10" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="730"
inkscape:window-height="480"
id="namedview8"
showgrid="false"
inkscape:zoom="13.111111"
inkscape:cx="9"
inkscape:cy="9"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="svg6" />
<path
d="M0 0h24v24H0V0z"
fill="none"
id="path2" />
<path
d="M1 21h4V9H1v12zm22-11c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.59 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-2z"
id="path4"
style="fill:#ffffff" />
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

Some files were not shown because too many files have changed in this diff Show More