├── Chrome ├── .DS_Store ├── css │ ├── all.css │ ├── bootstrap.min.css │ ├── bulma.css │ ├── embed.css │ ├── espn.css │ ├── onInstall.css │ ├── style.css │ ├── thanks.css │ └── viewPage.css ├── images │ ├── .DS_Store │ ├── Docs-1.png │ ├── Docs-2.png │ ├── EngFlow.png │ ├── LMWBanner1.jpg │ ├── LMWBanner2.jpg │ ├── LMWBanner3.jpg │ ├── LMWLarge.jpg │ ├── LMWSmall.jpg │ ├── LMW_NEWSC1.jpg │ ├── LMW_NEWSC2.jpg │ ├── LMW_NEWSC3.jpg │ ├── LMWlogo.png │ ├── backIcon.png │ ├── backIcon1.png │ ├── backIcon3.png │ ├── backIcon4.png │ ├── backIcon5.png │ ├── backIcon6.png │ ├── backIconWhite.png │ ├── button.png │ ├── cinema.png │ ├── clapperboard.png │ ├── emp16.png │ ├── emp4.png │ ├── emp5.png │ ├── en1.png │ ├── en11.png │ ├── en5.png │ ├── en6.png │ ├── en7.png │ ├── en9.png │ ├── expl1.png │ ├── expl2.png │ ├── expl3.png │ ├── fwdIconWhite.png │ ├── movie-camera.png │ ├── nfl.png │ ├── nfl1.png │ ├── nfl2.png │ ├── nfl3.png │ ├── nfl5.png │ ├── nfl7.png │ ├── no-poster1.png │ ├── noposter2.png │ ├── noposter3.jpeg │ ├── onInstall1.png │ ├── onInstall2.png │ ├── onInstall3.png │ ├── popcorn (1).png │ ├── popcorn (2).png │ ├── popcorn-box.png │ ├── popcorn.png │ ├── ratingStar.png │ ├── sports │ │ ├── .DS_Store │ │ └── NFL │ │ │ ├── .DS_Store │ │ │ ├── 1.png │ │ │ ├── 10.png │ │ │ ├── 11.png │ │ │ ├── 12.png │ │ │ ├── 13.png │ │ │ ├── 14.png │ │ │ ├── 15.png │ │ │ ├── 16.png │ │ │ ├── 17.png │ │ │ ├── 18.png │ │ │ ├── 19.png │ │ │ ├── 2.png │ │ │ ├── 20.png │ │ │ ├── 21.png │ │ │ ├── 22.png │ │ │ ├── 23.png │ │ │ ├── 24.png │ │ │ ├── 25.png │ │ │ ├── 26.png │ │ │ ├── 27.png │ │ │ ├── 28.png │ │ │ ├── 29.png │ │ │ ├── 3.png │ │ │ ├── 30.png │ │ │ ├── 33.png │ │ │ ├── 34.png │ │ │ ├── 4.png │ │ │ ├── 5.png │ │ │ ├── 6.png │ │ │ ├── 7.png │ │ │ ├── 8.png │ │ │ ├── 9.png │ │ │ └── NFL.jpg │ ├── web_git_sc1.png │ ├── web_git_sc2.png │ ├── web_newsc1.png │ ├── web_newsc2.png │ └── winLogo.png ├── js │ ├── .DS_Store │ ├── adstop.js │ ├── autocomplete.js │ ├── background.js │ ├── popup.js │ ├── thankYou.js │ ├── third-party │ │ ├── .DS_Store │ │ ├── analytics.js │ │ ├── axios.min.js │ │ ├── bootstrap.bundle.min.js │ │ ├── jquery-3.6.0.min.js │ │ ├── main.min.js │ │ └── scrollreveal.min.js │ ├── utils.js │ └── viewPage.js ├── manifest.json ├── onInstall.html ├── popup.html ├── thankYou.html └── viewPage.html ├── Firefox ├── .DS_Store ├── css │ ├── all.css │ ├── bootstrap.min.css │ ├── bulma.css │ ├── embed.css │ ├── espn.css │ ├── onInstall.css │ ├── style.css │ ├── thanks.css │ └── viewPage.css ├── images │ ├── .DS_Store │ ├── Docs-1.png │ ├── Docs-2.png │ ├── EngFlow.png │ ├── LMWBanner1.jpg │ ├── LMWBanner2.jpg │ ├── LMWBanner3.jpg │ ├── LMWLarge.jpg │ ├── LMWLogo48.png │ ├── LMWLogo96.png │ ├── LMWSmall.jpg │ ├── LMW_NEWSC1.jpg │ ├── LMW_NEWSC2.jpg │ ├── LMW_NEWSC3.jpg │ ├── LMWlogo.png │ ├── backIcon.png │ ├── backIcon1.png │ ├── backIcon3.png │ ├── backIcon4.png │ ├── backIcon5.png │ ├── backIcon6.png │ ├── backIconWhite.png │ ├── button.png │ ├── cinema.png │ ├── clapperboard.png │ ├── emp16.png │ ├── emp4.png │ ├── emp5.png │ ├── en1.png │ ├── en11.png │ ├── en5.png │ ├── en6.png │ ├── en7.png │ ├── en9.png │ ├── expl1.png │ ├── expl2.png │ ├── expl3.png │ ├── fwdIconWhite.png │ ├── movie-camera.png │ ├── nfl.png │ ├── nfl1.png │ ├── nfl2.png │ ├── nfl3.png │ ├── nfl5.png │ ├── nfl7.png │ ├── no-poster1.png │ ├── noposter2.png │ ├── noposter3.jpeg │ ├── onInstall1.png │ ├── onInstall2.png │ ├── onInstall3.png │ ├── popcorn (1).png │ ├── popcorn (2).png │ ├── popcorn-box.png │ ├── popcorn.png │ ├── ratingStar.png │ ├── sports │ │ ├── .DS_Store │ │ └── NFL │ │ │ ├── .DS_Store │ │ │ ├── 1.png │ │ │ ├── 10.png │ │ │ ├── 11.png │ │ │ ├── 12.png │ │ │ ├── 13.png │ │ │ ├── 14.png │ │ │ ├── 15.png │ │ │ ├── 16.png │ │ │ ├── 17.png │ │ │ ├── 18.png │ │ │ ├── 19.png │ │ │ ├── 2.png │ │ │ ├── 20.png │ │ │ ├── 21.png │ │ │ ├── 22.png │ │ │ ├── 23.png │ │ │ ├── 24.png │ │ │ ├── 25.png │ │ │ ├── 26.png │ │ │ ├── 27.png │ │ │ ├── 28.png │ │ │ ├── 29.png │ │ │ ├── 3.png │ │ │ ├── 30.png │ │ │ ├── 33.png │ │ │ ├── 34.png │ │ │ ├── 4.png │ │ │ ├── 5.png │ │ │ ├── 6.png │ │ │ ├── 7.png │ │ │ ├── 8.png │ │ │ ├── 9.png │ │ │ └── NFL.jpg │ └── winLogo.png ├── js │ ├── .DS_Store │ ├── adstop.js │ ├── autocomplete.js │ ├── background.js │ ├── popup.js │ ├── thankYou.js │ ├── third-party │ │ ├── .DS_Store │ │ ├── analytics.js │ │ ├── axios.min.js │ │ ├── bootstrap.bundle.min.js │ │ ├── jquery-3.6.0.min.js │ │ ├── main.min.js │ │ └── scrollreveal.min.js │ ├── utils.js │ └── viewPage.js ├── manifest.json ├── onInstall.html ├── popup.html ├── thankYou.html └── viewPage.html ├── LICENSE └── README.md /Chrome/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/.DS_Store -------------------------------------------------------------------------------- /Chrome/css/onInstall.css: -------------------------------------------------------------------------------- 1 | .tutorial { 2 | width: 300px; 3 | text-align: center; 4 | margin: auto; 5 | } 6 | 7 | figure.image { 8 | display: flex; 9 | justify-content: right; 10 | background-color: black; 11 | } 12 | 13 | figure .image img { 14 | justify-content: right; 15 | height: 190px; 16 | border-radius: 3px; 17 | /*max-width: 120px;*/ 18 | } 19 | 20 | .notification { 21 | margin-top: 20px !important; 22 | } 23 | 24 | .results { 25 | max-height: 400px; 26 | overflow-y: scroll; 27 | } 28 | 29 | .title .icon { 30 | margin-left: 15px; 31 | } 32 | 33 | .hero { 34 | margin-bottom: 20px; 35 | } 36 | 37 | .forms { 38 | display: flex; 39 | justify-content: space-around; 40 | } 41 | 42 | .dropdown-item { 43 | display: flex; 44 | height: 110px; 45 | } 46 | 47 | .dropdown-item img { 48 | height: 100px; 49 | width: 75px; 50 | min-height: 100px; 51 | min-width: 75px; 52 | margin-right: 10px; 53 | border-radius: 2px; 54 | } 55 | 56 | 57 | /* 58 | CUSTOM - ADDED SCRIPT 59 | */ 60 | 61 | html { 62 | background-color: black; 63 | /* background-image: linear-gradient( 64 | 141deg, #425cf0 0%, #47c4f5 71%, #1ea1a3 100%); */ 65 | width: 100%; 66 | height: 100%; 67 | padding-bottom: 1% 68 | } 69 | 70 | #summary { 71 | width: auto; 72 | height: auto; 73 | } 74 | 75 | label { 76 | color: white 77 | } 78 | 79 | .dropdown-content { 80 | width: 400px; 81 | background-color: black; 82 | } 83 | 84 | .dropdown-menu { 85 | padding-bottom: 7px; 86 | } 87 | 88 | a.dropdown-item { 89 | white-space: unset; 90 | color: white; 91 | background-color: black; 92 | } 93 | 94 | .media-content { 95 | overflow-x: unset; 96 | } 97 | 98 | .content { 99 | display: block; 100 | justify-content: space-between; 101 | align-items: right; 102 | } 103 | 104 | h4 { 105 | color: white; 106 | white-space: nowrap; 107 | font-size: 12px; 108 | font: bold; 109 | margin-bottom: 0px; 110 | font-weight: 450; 111 | } 112 | 113 | .content h4 { 114 | color: white; 115 | white-space: nowrap; 116 | font-size: 12px; 117 | font-weight: 300; 118 | margin-bottom: 6px; 119 | } 120 | 121 | .content h1 { 122 | white-space: nowrap; 123 | font-size: 4vw; 124 | margin-bottom: 0px; 125 | padding-left: 0px; 126 | margin-left: 1px; 127 | line-height: 1.5; 128 | font-weight: 400; 129 | } 130 | 131 | .media-content p { 132 | font-size: 29px; 133 | padding-bottom: 0px; 134 | padding-top: 15px; 135 | font-weight: 200; 136 | line-height: 1.35; 137 | margin-left: 5%; 138 | } 139 | 140 | .content h1, 141 | .content h4, 142 | .media-content p { 143 | color: white; 144 | } 145 | 146 | article.media { 147 | display: block; 148 | width: 98%; 149 | /* height: 85%; */ 150 | /* background-color: black; */ 151 | border-radius: 4px; 152 | padding: 3 10px 7px 10px; 153 | margin-top: 0.7%; 154 | background-image: linear-gradient( 141deg, #425cf0 0%, #47c4f5 71%, #1ea1a3 100%); 155 | } 156 | 157 | .pill { 158 | /* background-color: #ddd;*/ 159 | background-image: linear-gradient(141deg, #ff7070e3 0%, #fb3e3edc 71%, #ff9d9d 100%); 160 | border: none; 161 | color: black; 162 | padding: 10px 20px; 163 | text-align: center; 164 | text-decoration: none; 165 | display: inline-block; 166 | cursor: pointer; 167 | border-radius: 16px; 168 | width: auto; 169 | } 170 | 171 | 172 | /* 173 | .seasons { 174 | position: relative; 175 | bottom: 0px; 176 | }*/ 177 | 178 | .pill-eps { 179 | background-image: linear-gradient(141deg, #42f0ca 0%, #47f5ec 71%, #359bee 100%); 180 | border: none; 181 | color: black; 182 | padding: 10px 20px; 183 | text-align: center; 184 | text-decoration: none; 185 | display: inline-block; 186 | cursor: pointer; 187 | border-radius: 16px; 188 | width: auto; 189 | margin-bottom: 5px; 190 | } 191 | 192 | 193 | /* .episodes { 194 | position: absolute; 195 | bottom: 32px; 196 | }*/ 197 | 198 | .pill-nxtszn, 199 | .pill-prevszn { 200 | background-image: url('../images/fwdIconWhite.png'); 201 | background-size: 22px 22px; 202 | height: 22px; 203 | width: 22px; 204 | background-color: black; 205 | border: none; 206 | padding: 0px 0px 0px 0px; 207 | color: white; 208 | text-align: center; 209 | text-decoration: none; 210 | display: inline-block; 211 | cursor: pointer; 212 | border-radius: 4px; 213 | font-weight: 700; 214 | margin: 0px 0px 0px 0px; 215 | padding-bottom: 8px; 216 | padding-right: 13px; 217 | margin-top: 7px; 218 | position: absolute; 219 | left: 310px; 220 | /* 221 | 222 | padding-bottom: 8px; 223 | padding-right: 13px; 224 | margin-top: 7px; 225 | position: absolute; 226 | right: 12px; 227 | background-image: linear-gradient(141deg, #ff7070e3 0%, #fb3e3edc 71%, #ff9d9d 100%); 228 | border: none; 229 | color: black; 230 | padding: 5px 10px; 231 | text-align: center; 232 | text-decoration: none; 233 | display: inline-block; 234 | cursor: pointer; 235 | border-radius: 16px; 236 | width: auto; 237 | margin-bottom: 10px;*/ 238 | } 239 | 240 | 241 | /*font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji;*/ 242 | 243 | .dropdown { 244 | display: block; 245 | } 246 | 247 | *::placeholder { 248 | /* modern browser */ 249 | color: white; 250 | } 251 | 252 | #autocomplete { 253 | width: 400px; 254 | } 255 | 256 | .input { 257 | color: white; 258 | background-color: black; 259 | width: 100%; 260 | font-size: 16px; 261 | font-weight: 500; 262 | } 263 | 264 | #logoHeader { 265 | height: 27px; 266 | display: inline-flex; 267 | color: white; 268 | padding: 0px 0px 0px 0px; 269 | margin: 0px 0px 0px 0px; 270 | margin-left: 28%; 271 | font-size: 25px; 272 | font-weight: 700; 273 | vertical-align: center; 274 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif; 275 | } 276 | 277 | a.dropdown-item:focus, 278 | button.dropdown-item:focus { 279 | background-color: whitesmoke; 280 | color: #0a0a0a; 281 | } 282 | 283 | .content { 284 | display: flex; 285 | } 286 | 287 | .media .content:not(:last-child) { 288 | margin-bottom: 0px; 289 | } 290 | 291 | #currSzn { 292 | margin-top: 10.5px; 293 | font-weight: 450; 294 | } 295 | 296 | .media-content p { 297 | overflow: hidden; 298 | text-overflow: hidden; 299 | display: block; 300 | padding-bottom: 4px; 301 | /* number of lines to show */ 302 | -webkit-box-orient: vertical; 303 | } 304 | 305 | .pill-back { 306 | /*background-image: linear-gradient(141deg, #ff7070e3 0%, #fb3e3edc 71%, #ff9d9d 100%);*/ 307 | background-image: url('../images/backIcon6.png'); 308 | background-size: 26px 26px; 309 | height: 26px; 310 | width: 26px; 311 | background-color: white; 312 | border: none; 313 | color: white; 314 | padding: 0px 0px 0px 0px; 315 | text-align: center; 316 | text-decoration: none; 317 | display: inline-block; 318 | cursor: pointer; 319 | border-radius: 4px; 320 | font-weight: 700; 321 | margin: 0px 0px 0px 0px; 322 | padding-bottom: 0px; 323 | } 324 | 325 | .content h1:not(:first-child) { 326 | margin-top: 0em; 327 | } 328 | 329 | article.seasons { 330 | font-size: 100%; 331 | } 332 | 333 | body { 334 | font-size: 75%; 335 | padding-left: 26%; 336 | padding-right: 24%; 337 | padding-top: 1%; 338 | padding-bottom: 0.5%; 339 | height: 100%; 340 | } 341 | 342 | .dropdown-item .description { 343 | font-size: 4vw; 344 | margin-bottom: 6px; 345 | padding-left: 0px; 346 | line-height: 1.25; 347 | } 348 | 349 | #appName { 350 | font-size: 8vw; 351 | font-weight: 100; 352 | line-height: 1.125; 353 | padding-left: 20px; 354 | margin-top: -1%; 355 | vertical-align: bottom; 356 | color: white; 357 | /* background: rgb(63, 94, 251); 358 | background: radial-gradient(circle, rgba(63, 94, 251, 1) 0%, rgba(252, 70, 107, 1) 100%); 359 | */ 360 | } 361 | 362 | #logoSummaryTV { 363 | height: 8vw; 364 | display: inline-flex; 365 | color: white; 366 | padding: 0px 0px 0px 0px; 367 | margin: 0px 0px 0px 0px; 368 | font-size: 25px; 369 | font-weight: bolder; 370 | margin-left: 0%; 371 | vertical-align: center; 372 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif; 373 | } 374 | 375 | #logoSummaryTVSzn { 376 | height: 27px; 377 | display: inline-flex; 378 | color: white; 379 | padding: 0px 0px 0px 0px; 380 | margin: 0px 0px 0px 0px; 381 | margin-left: 28%; 382 | font-size: 25px; 383 | font-weight: 700; 384 | vertical-align: center; 385 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif; 386 | } 387 | 388 | #logoSummaryMovie { 389 | height: 27px; 390 | display: inline-flex; 391 | color: white; 392 | padding: 0px 0px 0px 0px; 393 | margin: 0px 0px 0px 0px; 394 | margin-left: 28%; 395 | font-size: 25px; 396 | font-weight: 600; 397 | vertical-align: center; 398 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif; 399 | } 400 | 401 | .pill-nxtep, 402 | .pill-prevep { 403 | background-image: url('../images/fwdIconWhite.png'); 404 | background-size: 22px 22px; 405 | height: 22px; 406 | width: 22px; 407 | background-color: black; 408 | border: none; 409 | padding: 0px 0px 0px 0px; 410 | color: white; 411 | text-align: center; 412 | text-decoration: none; 413 | display: inline-block; 414 | cursor: pointer; 415 | border-radius: 4px; 416 | font-weight: 700; 417 | margin: 0px 0px 0px 0px; 418 | padding-bottom: 8px; 419 | padding-right: 13px; 420 | margin-top: 7px; 421 | position: absolute; 422 | right: -10px; 423 | } 424 | 425 | #suggestDescription { 426 | display: block; 427 | } 428 | 429 | #suggestDescription h1 { 430 | white-space: normal; 431 | line-height: 1.125; 432 | font-weight: 300; 433 | font-size: 4.5vw; 434 | } 435 | 436 | a.dropdown-item:hover * { 437 | color: black; 438 | } 439 | 440 | a.dropdown-item:focus * { 441 | color: black; 442 | } 443 | 444 | #rating img { 445 | min-height: 40px; 446 | min-width: 40px; 447 | height: 40px; 448 | width: 40px; 449 | position: absolute; 450 | right: -6px; 451 | top: 0px; 452 | } 453 | 454 | 455 | /* 456 | #rating img { 457 | height: 20px; 458 | width: 20px; 459 | margin-top: -5px; 460 | padding-left: 3px; 461 | } 462 | */ 463 | 464 | #rating h4 { 465 | padding-top: 14px; 466 | margin-left: -10px; 467 | position: absolute; 468 | right: 15px; 469 | top: 2px; 470 | font-size: 12px; 471 | font-weight: 300; 472 | color: black; 473 | } 474 | 475 | #rating { 476 | margin-top: -15px; 477 | display: flex; 478 | float: right; 479 | } 480 | 481 | #suggSubhead { 482 | margin-top: 2px; 483 | font-size: 3vw; 484 | } 485 | 486 | #inpSugg::placeholder { 487 | color: rgba(255, 255, 255, 0.589); 488 | font-weight: 300; 489 | } 490 | 491 | #tvTitle { 492 | margin-left: 0px; 493 | text-align: center; 494 | font-size: 61px; 495 | font-weight: 200; 496 | white-space: normal; 497 | line-height: 1.125; 498 | color: white; 499 | /* vertical-align: bottom; */ 500 | position: absolute; 501 | bottom: 30px; 502 | left: 23.1%; 503 | } 504 | 505 | #getStarted { 506 | margin-left: 0px; 507 | font-size: 33px; 508 | font-weight: 200; 509 | white-space: normal; 510 | line-height: 1.125; 511 | padding-bottom: 3px; 512 | padding-left: 2px; 513 | color: white; 514 | } 515 | 516 | #gsArticle { 517 | display: flex; 518 | width: 99%; 519 | height: auto; 520 | margin-left: 0%; 521 | padding-bottom: 0; 522 | padding: 0.5% 1% 0% 1%; 523 | background-image: linear-gradient( 317deg, #ffa500 0%, #ff0000c2 100%); 524 | } 525 | 526 | #description { 527 | margin-top: -5px; 528 | } 529 | 530 | .checked { 531 | color: orange; 532 | } 533 | 534 | #watchNow { 535 | margin-top: 5px; 536 | margin-bottom: 5px; 537 | } 538 | 539 | #logoArticle { 540 | background-image: linear-gradient(141deg, #425cf0 0%, #47c4f5 71%, #1ea1a3 100%); 541 | width: 75%; 542 | height: 100%; 543 | padding: 25px 25px 25px 25px; 544 | } 545 | 546 | #contentArticle { 547 | width: 18.5%; 548 | height: auto; 549 | margin-left: 0%; 550 | padding-bottom: 0; 551 | padding: 0.5% 1% 0% 1%; 552 | display: flex; 553 | } 554 | 555 | #contentDiv { 556 | display: block; 557 | margin-left: 10px; 558 | } 559 | 560 | #descriptionFt { 561 | margin-top: -35px; 562 | margin-left: 6px; 563 | font-size: 20px; 564 | font-weight: 200; 565 | } 566 | 567 | #descriptionIns { 568 | margin-top: -18px; 569 | margin-left: 6px; 570 | font-size: 20px; 571 | font-weight: 200; 572 | } 573 | 574 | #thanosBan { 575 | max-height: 280px; 576 | } 577 | 578 | 579 | /*font-family: 'Montserrat', sans-serif; 580 | font-family: 'Noto Sans JP', sans-serif; 581 | font-family: 'Open Sans', sans-serif; 582 | font-family: 'Poppins', sans-serif; 583 | font-family: 'Roboto', sans-serif; 584 | font-weight: bold; 585 | font-family: system-ui, sans-serif; 586 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji'; 587 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; 588 | font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; 589 | font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif ; 590 | */ -------------------------------------------------------------------------------- /Chrome/css/viewPage.css: -------------------------------------------------------------------------------- 1 | .pill { 2 | /* background-color: #ddd;*/ 3 | background-image: linear-gradient(141deg, #ff7070e3 0%, #fb3e3edc 71%, #ff9d9d 100%); 4 | border: none; 5 | color: black; 6 | text-align: center; 7 | text-decoration: none; 8 | display: inline-block; 9 | cursor: pointer; 10 | border-radius: 16px; 11 | } 12 | 13 | .pill-servers { 14 | background: black; 15 | color: #ffffff; 16 | border: none; 17 | padding: 10px 20px; 18 | text-align: center; 19 | text-decoration: none; 20 | cursor: pointer; 21 | border-radius: 16px; 22 | font-size: 16px; 23 | margin-top: 2px; 24 | margin-left: -5px; 25 | width: 160px; 26 | font-family: Montserrat, Arial; 27 | font-weight: 300; 28 | -webkit-font-smoothing: antialiased; 29 | display: inline-block; 30 | font-style: normal; 31 | font-variant: normal; 32 | position: fixed; 33 | z-index: 1; 34 | padding-top: 7px; 35 | padding-bottom: 7px; 36 | } -------------------------------------------------------------------------------- /Chrome/images/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/.DS_Store -------------------------------------------------------------------------------- /Chrome/images/Docs-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/Docs-1.png -------------------------------------------------------------------------------- /Chrome/images/Docs-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/Docs-2.png -------------------------------------------------------------------------------- /Chrome/images/EngFlow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/EngFlow.png -------------------------------------------------------------------------------- /Chrome/images/LMWBanner1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/LMWBanner1.jpg -------------------------------------------------------------------------------- /Chrome/images/LMWBanner2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/LMWBanner2.jpg -------------------------------------------------------------------------------- /Chrome/images/LMWBanner3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/LMWBanner3.jpg -------------------------------------------------------------------------------- /Chrome/images/LMWLarge.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/LMWLarge.jpg -------------------------------------------------------------------------------- /Chrome/images/LMWSmall.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/LMWSmall.jpg -------------------------------------------------------------------------------- /Chrome/images/LMW_NEWSC1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/LMW_NEWSC1.jpg -------------------------------------------------------------------------------- /Chrome/images/LMW_NEWSC2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/LMW_NEWSC2.jpg -------------------------------------------------------------------------------- /Chrome/images/LMW_NEWSC3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/LMW_NEWSC3.jpg -------------------------------------------------------------------------------- /Chrome/images/LMWlogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/LMWlogo.png -------------------------------------------------------------------------------- /Chrome/images/backIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/backIcon.png -------------------------------------------------------------------------------- /Chrome/images/backIcon1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/backIcon1.png -------------------------------------------------------------------------------- /Chrome/images/backIcon3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/backIcon3.png -------------------------------------------------------------------------------- /Chrome/images/backIcon4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/backIcon4.png -------------------------------------------------------------------------------- /Chrome/images/backIcon5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/backIcon5.png -------------------------------------------------------------------------------- /Chrome/images/backIcon6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/backIcon6.png -------------------------------------------------------------------------------- /Chrome/images/backIconWhite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/backIconWhite.png -------------------------------------------------------------------------------- /Chrome/images/button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/button.png -------------------------------------------------------------------------------- /Chrome/images/cinema.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/cinema.png -------------------------------------------------------------------------------- /Chrome/images/clapperboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/clapperboard.png -------------------------------------------------------------------------------- /Chrome/images/emp16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/emp16.png -------------------------------------------------------------------------------- /Chrome/images/emp4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/emp4.png -------------------------------------------------------------------------------- /Chrome/images/emp5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/emp5.png -------------------------------------------------------------------------------- /Chrome/images/en1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/en1.png -------------------------------------------------------------------------------- /Chrome/images/en11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/en11.png -------------------------------------------------------------------------------- /Chrome/images/en5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/en5.png -------------------------------------------------------------------------------- /Chrome/images/en6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/en6.png -------------------------------------------------------------------------------- /Chrome/images/en7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/en7.png -------------------------------------------------------------------------------- /Chrome/images/en9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/en9.png -------------------------------------------------------------------------------- /Chrome/images/expl1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/expl1.png -------------------------------------------------------------------------------- /Chrome/images/expl2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/expl2.png -------------------------------------------------------------------------------- /Chrome/images/expl3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/expl3.png -------------------------------------------------------------------------------- /Chrome/images/fwdIconWhite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/fwdIconWhite.png -------------------------------------------------------------------------------- /Chrome/images/movie-camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/movie-camera.png -------------------------------------------------------------------------------- /Chrome/images/nfl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/nfl.png -------------------------------------------------------------------------------- /Chrome/images/nfl1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/nfl1.png -------------------------------------------------------------------------------- /Chrome/images/nfl2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/nfl2.png -------------------------------------------------------------------------------- /Chrome/images/nfl3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/nfl3.png -------------------------------------------------------------------------------- /Chrome/images/nfl5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/nfl5.png -------------------------------------------------------------------------------- /Chrome/images/nfl7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/nfl7.png -------------------------------------------------------------------------------- /Chrome/images/no-poster1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/no-poster1.png -------------------------------------------------------------------------------- /Chrome/images/noposter2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/noposter2.png -------------------------------------------------------------------------------- /Chrome/images/noposter3.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/noposter3.jpeg -------------------------------------------------------------------------------- /Chrome/images/onInstall1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/onInstall1.png -------------------------------------------------------------------------------- /Chrome/images/onInstall2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/onInstall2.png -------------------------------------------------------------------------------- /Chrome/images/onInstall3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/onInstall3.png -------------------------------------------------------------------------------- /Chrome/images/popcorn (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/popcorn (1).png -------------------------------------------------------------------------------- /Chrome/images/popcorn (2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/popcorn (2).png -------------------------------------------------------------------------------- /Chrome/images/popcorn-box.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/popcorn-box.png -------------------------------------------------------------------------------- /Chrome/images/popcorn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/popcorn.png -------------------------------------------------------------------------------- /Chrome/images/ratingStar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/ratingStar.png -------------------------------------------------------------------------------- /Chrome/images/sports/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/sports/.DS_Store -------------------------------------------------------------------------------- /Chrome/images/sports/NFL/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/sports/NFL/.DS_Store -------------------------------------------------------------------------------- /Chrome/images/sports/NFL/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/sports/NFL/1.png -------------------------------------------------------------------------------- /Chrome/images/sports/NFL/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/sports/NFL/10.png -------------------------------------------------------------------------------- /Chrome/images/sports/NFL/11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/sports/NFL/11.png -------------------------------------------------------------------------------- /Chrome/images/sports/NFL/12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/sports/NFL/12.png -------------------------------------------------------------------------------- /Chrome/images/sports/NFL/13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/sports/NFL/13.png -------------------------------------------------------------------------------- /Chrome/images/sports/NFL/14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/sports/NFL/14.png -------------------------------------------------------------------------------- /Chrome/images/sports/NFL/15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/sports/NFL/15.png -------------------------------------------------------------------------------- /Chrome/images/sports/NFL/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/sports/NFL/16.png -------------------------------------------------------------------------------- /Chrome/images/sports/NFL/17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/sports/NFL/17.png -------------------------------------------------------------------------------- /Chrome/images/sports/NFL/18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/sports/NFL/18.png -------------------------------------------------------------------------------- /Chrome/images/sports/NFL/19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/sports/NFL/19.png -------------------------------------------------------------------------------- /Chrome/images/sports/NFL/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/sports/NFL/2.png -------------------------------------------------------------------------------- /Chrome/images/sports/NFL/20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/sports/NFL/20.png -------------------------------------------------------------------------------- /Chrome/images/sports/NFL/21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/sports/NFL/21.png -------------------------------------------------------------------------------- /Chrome/images/sports/NFL/22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/sports/NFL/22.png -------------------------------------------------------------------------------- /Chrome/images/sports/NFL/23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/sports/NFL/23.png -------------------------------------------------------------------------------- /Chrome/images/sports/NFL/24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/sports/NFL/24.png -------------------------------------------------------------------------------- /Chrome/images/sports/NFL/25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/sports/NFL/25.png -------------------------------------------------------------------------------- /Chrome/images/sports/NFL/26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/sports/NFL/26.png -------------------------------------------------------------------------------- /Chrome/images/sports/NFL/27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/sports/NFL/27.png -------------------------------------------------------------------------------- /Chrome/images/sports/NFL/28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/sports/NFL/28.png -------------------------------------------------------------------------------- /Chrome/images/sports/NFL/29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/sports/NFL/29.png -------------------------------------------------------------------------------- /Chrome/images/sports/NFL/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/sports/NFL/3.png -------------------------------------------------------------------------------- /Chrome/images/sports/NFL/30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/sports/NFL/30.png -------------------------------------------------------------------------------- /Chrome/images/sports/NFL/33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/sports/NFL/33.png -------------------------------------------------------------------------------- /Chrome/images/sports/NFL/34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/sports/NFL/34.png -------------------------------------------------------------------------------- /Chrome/images/sports/NFL/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/sports/NFL/4.png -------------------------------------------------------------------------------- /Chrome/images/sports/NFL/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/sports/NFL/5.png -------------------------------------------------------------------------------- /Chrome/images/sports/NFL/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/sports/NFL/6.png -------------------------------------------------------------------------------- /Chrome/images/sports/NFL/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/sports/NFL/7.png -------------------------------------------------------------------------------- /Chrome/images/sports/NFL/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/sports/NFL/8.png -------------------------------------------------------------------------------- /Chrome/images/sports/NFL/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/sports/NFL/9.png -------------------------------------------------------------------------------- /Chrome/images/sports/NFL/NFL.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/sports/NFL/NFL.jpg -------------------------------------------------------------------------------- /Chrome/images/web_git_sc1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/web_git_sc1.png -------------------------------------------------------------------------------- /Chrome/images/web_git_sc2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/web_git_sc2.png -------------------------------------------------------------------------------- /Chrome/images/web_newsc1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/web_newsc1.png -------------------------------------------------------------------------------- /Chrome/images/web_newsc2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/web_newsc2.png -------------------------------------------------------------------------------- /Chrome/images/winLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/images/winLogo.png -------------------------------------------------------------------------------- /Chrome/js/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/js/.DS_Store -------------------------------------------------------------------------------- /Chrome/js/adstop.js: -------------------------------------------------------------------------------- 1 | const clear = (() => { 2 | const defined = v => v !== null && v !== undefined; 3 | const timeout = setInterval(() => { 4 | const ad = [...document.querySelectorAll('.ad-showing')][0]; 5 | if (defined(ad)) { 6 | const video = document.querySelector('video'); 7 | if (defined(video)) { 8 | video.currentTime = video.duration; 9 | } 10 | } 11 | }, 500); 12 | return function() { 13 | clearTimeout(timeout); 14 | } 15 | })(); 16 | clear(); 17 | /* 18 | var myScript = `const clear = (() => { 19 | const defined = v => v !== null && v !== undefined; 20 | const timeout = setInterval(() => { 21 | const ad = [...document.querySelectorAll('.ad-showing')][0]; 22 | if (defined(ad)) { 23 | const video = document.querySelector('video'); 24 | if (defined(video)) { 25 | video.currentTime = video.duration; 26 | } 27 | } 28 | }, 500); 29 | return function() { 30 | clearTimeout(timeout); 31 | } 32 | })(); 33 | //clear(); 34 | `; 35 | var scriptTag = document.createElement("script"); 36 | scriptTag.innerHTML = myScript; 37 | document.querySelector('head').appendChild(scriptTag);*/ -------------------------------------------------------------------------------- /Chrome/js/autocomplete.js: -------------------------------------------------------------------------------- 1 | const createAutoComplete = async({ root, renderOption, onOptionSelect, inputValue, fetchData }) => { 2 | root.innerHTML = ` 3 |
4 | 5 |

LetMeWatch

6 |
7 | 8 | 13 | 27 | 31 | `; 32 | const popMovies = (await axios.get('https://api.themoviedb.org/3/movie/popular?api_key=04c908115dc6ff5e5aa3709b5a735393&language=en-US&page=1')).data.results; 33 | const popMoviesTwo = (await axios.get('https://api.themoviedb.org/3/movie/popular?api_key=04c908115dc6ff5e5aa3709b5a735393&language=en-US&page=2')).data.results; 34 | const popMoviesThree = (await axios.get('https://api.themoviedb.org/3/movie/popular?api_key=04c908115dc6ff5e5aa3709b5a735393&language=en-US&page=3')).data.results; 35 | const popShows = (await axios.get('https://api.themoviedb.org/3/tv/popular?api_key=04c908115dc6ff5e5aa3709b5a735393&language=en-US&page=1')).data.results; 36 | const popShowsTwo = (await axios.get('https://api.themoviedb.org/3/tv/popular?api_key=04c908115dc6ff5e5aa3709b5a735393&language=en-US&page=2')).data.results; 37 | const popShowsThree = (await axios.get('https://api.themoviedb.org/3/tv/popular?api_key=04c908115dc6ff5e5aa3709b5a735393&language=en-US&page=3')).data.results; 38 | // const popSports = (await fetch()) 39 | const input = root.querySelector('input'); 40 | const dropdown = root.querySelector('.dropdown'); 41 | const resultsWrapper = root.querySelector('.results'); 42 | for (let i = 0; i < 20; i++) { 43 | let currPM = popMovies[i]; 44 | let currPS = popShows[i]; 45 | 46 | const pmElem = document.createElement('a'); 47 | pmElem.classList.add('scrollmenu-item'); 48 | pmElem.innerHTML = ``; 49 | pmElem.addEventListener('click', () => { 50 | input.value = inputValue(currPM); 51 | document.querySelector('html').style.height = 'auto'; 52 | onOptionSelect(currPM); 53 | 54 | }); 55 | document.getElementById("pmScroll").appendChild(pmElem); 56 | 57 | const psElem = document.createElement('a'); 58 | psElem.classList.add('scrollmenu-item'); 59 | psElem.innerHTML = ``; 60 | psElem.addEventListener('click', () => { 61 | input.value = inputValue(currPS); 62 | document.querySelector('html').style.height = 'auto'; 63 | onOptionSelect(currPS); 64 | }); 65 | document.getElementById("psScroll").appendChild(psElem); 66 | } 67 | for (let i = 0; i < 20; i++) { 68 | let currPM = popMoviesTwo[i]; 69 | let currPS = popShowsTwo[i]; 70 | 71 | const pmElem = document.createElement('a'); 72 | pmElem.classList.add('scrollmenu-item'); 73 | pmElem.innerHTML = ``; 74 | pmElem.addEventListener('click', () => { 75 | input.value = inputValue(currPM); 76 | document.querySelector('html').style.height = 'auto'; 77 | onOptionSelect(currPM); 78 | 79 | }); 80 | document.getElementById("pmScroll").appendChild(pmElem); 81 | 82 | const psElem = document.createElement('a'); 83 | psElem.classList.add('scrollmenu-item'); 84 | psElem.innerHTML = ``; 85 | psElem.addEventListener('click', () => { 86 | input.value = inputValue(currPS); 87 | document.querySelector('html').style.height = 'auto'; 88 | onOptionSelect(currPS); 89 | }); 90 | document.getElementById("psScroll").appendChild(psElem); 91 | } 92 | for (let i = 0; i < 20; i++) { 93 | let currPM = popMoviesThree[i]; 94 | let currPS = popShowsThree[i]; 95 | 96 | const pmElem = document.createElement('a'); 97 | pmElem.classList.add('scrollmenu-item'); 98 | pmElem.innerHTML = ``; 99 | pmElem.addEventListener('click', () => { 100 | input.value = inputValue(currPM); 101 | document.querySelector('html').style.height = 'auto'; 102 | onOptionSelect(currPM); 103 | 104 | }); 105 | document.getElementById("pmScroll").appendChild(pmElem); 106 | 107 | const psElem = document.createElement('a'); 108 | psElem.classList.add('scrollmenu-item'); 109 | psElem.innerHTML = ``; 110 | psElem.addEventListener('click', () => { 111 | input.value = inputValue(currPS); 112 | document.querySelector('html').style.height = 'auto'; 113 | onOptionSelect(currPS); 114 | }); 115 | document.getElementById("psScroll").appendChild(psElem); 116 | } 117 | 118 | //SPORTS - NFL 119 | /*const spElem = document.createElement('a'); 120 | spElem.classList.add('scrollmenu-item'); 121 | spElem.innerHTML = ``; 122 | spElem.addEventListener('click', () => { 123 | document.querySelector('#autocomplete').style.display = 'none'; 124 | document.querySelector('#summary').style.display = 'block'; 125 | document.querySelector('#summary').innerHTML = ''; 126 | //setTemplate("nfl", 001, document.querySelector('#summary'), null); 127 | onSportSelect("NFL"); 128 | }); 129 | document.getElementById("spScroll").appendChild(spElem);*/ 130 | 131 | 132 | 133 | document.getElementById("popMovies").style.display = 'block'; 134 | let movieSugg = document.getElementById("movieSuggButt"); 135 | let tvSugg = document.getElementById("tvSuggButt"); 136 | 137 | tvSugg.style.backgroundColor = 'white'; 138 | tvSugg.style.color = 'black'; 139 | //let sportsSugg = document.getElementById("sportsSuggButt"); 140 | 141 | movieSugg.addEventListener('click', () => { 142 | document.getElementById("pmScroll").style.display = 'block'; 143 | document.getElementById("psScroll").style.display = 'none'; 144 | document.getElementById("spScroll").style.display = 'none'; 145 | movieSugg.style.backgroundColor = 'white'; 146 | movieSugg.style.color = 'black'; 147 | tvSugg.style.backgroundColor = 'black'; 148 | tvSugg.style.color = 'white'; 149 | sportsSugg.style.backgroundColor = 'black'; 150 | sportsSugg.style.color = 'white'; 151 | }); 152 | tvSugg.addEventListener('click', () => { 153 | document.getElementById("pmScroll").style.display = 'none'; 154 | document.getElementById("spScroll").style.display = 'none'; 155 | document.getElementById("psScroll").style.display = 'block'; 156 | tvSugg.style.backgroundColor = 'white'; 157 | tvSugg.style.color = 'black'; 158 | movieSugg.style.backgroundColor = 'black'; 159 | movieSugg.style.color = 'white'; 160 | sportsSugg.style.backgroundColor = 'black'; 161 | sportsSugg.style.color = 'white'; 162 | }); 163 | /* 164 | sportsSugg.addEventListener('click', () => { 165 | document.getElementById("pmScroll").style.display = 'none'; 166 | document.getElementById("psScroll").style.display = 'none'; 167 | document.getElementById("spScroll").style.display = 'block'; 168 | sportsSugg.style.backgroundColor = 'white'; 169 | sportsSugg.style.color = 'black'; 170 | movieSugg.style.backgroundColor = 'black'; 171 | movieSugg.style.color = 'white'; 172 | tvSugg.style.backgroundColor = 'black'; 173 | tvSugg.style.color = 'white'; 174 | });*/ 175 | //document.getElementById("popShows").style.display = 'block'; 176 | 177 | const onInput = async event => { 178 | const items = await fetchData(event.target.value); 179 | console.log(document.activeElement.className); 180 | if (!items.length) { 181 | document.querySelector('.dropdown-menu').style.display = 'none'; 182 | document.querySelector('html').style.height = 'auto'; 183 | document.querySelector('#summary').innerHTML = ''; 184 | document.getElementById("popMovies").style.display = 'block'; 185 | //document.getElementById("popShows").style.display = 'block'; 186 | //document.getElementById("pmScroll").scrollLeft = 0; 187 | //document.getElementById("psScroll").scrollLeft = 0; 188 | return; 189 | } else { 190 | document.querySelector('.dropdown-menu').style.display = 'block'; 191 | document.querySelector('html').style.height = '100%'; 192 | document.getElementById("popMovies").style.display = 'none'; 193 | //document.getElementById("popShows").style.display = 'none'; 194 | //document.querySelector('.results').scrollTop = 0; 195 | } 196 | resultsWrapper.innerHTML = ''; 197 | dropdown.classList.add('is-active'); 198 | for (let item of items) { 199 | const option = document.createElement('a'); 200 | option.classList.add('dropdown-item'); 201 | option.innerHTML = renderOption(item); 202 | option.addEventListener('click', () => { 203 | //dropdown.classList.remove('is-active'); 204 | input.value = inputValue(item); 205 | document.querySelector('html').style.height = 'auto'; 206 | onOptionSelect(item); 207 | }); 208 | option.addEventListener('keydown', event => { 209 | 210 | console.log(event.key); 211 | 212 | if (event.key === "ArrowDown") { 213 | event.preventDefault(); 214 | var currActive = document.activeElement; 215 | if (currActive.nextElementSibling) { 216 | currActive.nextElementSibling.focus(); 217 | } else { 218 | input.focus(); 219 | } 220 | } else if (event.key === "ArrowUp") { 221 | event.preventDefault(); 222 | var currActive = document.activeElement; 223 | if (currActive.previousElementSibling) { 224 | console.log("prev sibling"); 225 | currActive.previousElementSibling.focus(); 226 | } else { 227 | input.focus(); 228 | } 229 | } else if (event.key === "Enter") { 230 | event.preventDefault(); 231 | dropdown.classList.remove('is-active'); 232 | input.value = inputValue(item); 233 | document.querySelector('html').style.height = 'auto'; 234 | onOptionSelect(item); 235 | } else { 236 | event.preventDefault(); 237 | if (isLetter(event.key) || isNumeric(event.key)) { 238 | input.value += event.key; 239 | } 240 | input.focus(); 241 | } 242 | }); 243 | option.setAttribute('tabindex', 0); 244 | resultsWrapper.appendChild(option); 245 | } 246 | 247 | function isLetter(str) { 248 | return str.length === 1 && str.match(/[a-z]/i); 249 | } 250 | 251 | function isNumeric(str) { 252 | if (typeof str != "string") return false // we only process strings! 253 | return !isNaN(str) && // use type coercion to parse the _entirety_ of the string (`parseFloat` alone does not do this)... 254 | !isNaN(parseFloat(str)) // ...and ensure strings of whitespace fail 255 | } 256 | input.addEventListener('keydown', event => { 257 | if (event.key === "ArrowDown") { 258 | event.preventDefault(); 259 | console.log(event.key); 260 | resultsWrapper.firstElementChild.focus(); 261 | } else if (event.key === "ArrowUp") { 262 | event.preventDefault(); 263 | console.log(event.key); 264 | resultsWrapper.lastElementChild.focus(); 265 | } 266 | 267 | }); 268 | }; 269 | input.addEventListener('input', debounce(onInput, 50)); 270 | 271 | document.addEventListener('click', event => { 272 | if (!root.contains(event.target)) { 273 | dropdown.classList.remove('is-active'); 274 | } 275 | }); 276 | 277 | }; 278 | 279 | function loadStored(cbMedia) { 280 | chrome.storage.local.get(['savedPopMovies', 'savedPopShows', 'pmArr', 'psArr'], cbMedia); 281 | } -------------------------------------------------------------------------------- /Chrome/js/background.js: -------------------------------------------------------------------------------- 1 | chrome.runtime.onInstalled.addListener((details) => { 2 | const currentVersion = chrome.runtime.getManifest().version; 3 | const previousVersion = details.previousVersion; 4 | const reason = details.reason; 5 | /* 6 | chrome.storage.local.get("savedPopMovies", function(items) { 7 | getTrending(); 8 | }); 9 | chrome.alarms.get('getTrending', a => { 10 | if (!a){ 11 | chrome.alarms.create('getTrending', { periodInMinutes: 1440.0 }); 12 | } 13 | }); 14 | console.log('Previous Version: ${previousVersion }') 15 | console.log('Current Version: ${currentVersion }') 16 | */ 17 | 18 | switch (reason) { 19 | case 'install': 20 | console.log('New User installed the extension.') 21 | chrome.tabs.create({ url: "https://letmewatch.app/install.html" }); 22 | break; 23 | case 'update': 24 | console.log('User has updated their extension.') 25 | break; 26 | case 'chrome_update': 27 | case 'shared_module_update': 28 | default: 29 | console.log('Other install events within the browser') 30 | break; 31 | } 32 | 33 | }); 34 | 35 | /*chrome.alarms.onAlarm.addListener(() => { 36 | chrome.storage.local.set({ 'savedSummary': document.getElementById("summary").outerHTML }); 37 | 38 | }); 39 | 40 | /*chrome.runtime.onStartup.addListener(() => { 41 | //chrome.storage.local.get("savedPopMovies", function(items) { 42 | getTrending(); 43 | //}); 44 | }); 45 | /* 46 | //const getTrending = async() => { 47 | function getTrending() { 48 | //const popMovies = (await axios.get('https://api.themoviedb.org/3/movie/popular?api_key=04c908115dc6ff5e5aa3709b5a735393&language=en-US&page=1')).data.results; 49 | // var popMovies; 50 | // var popShows; 51 | //var pmRes = 52 | //var psRes; 53 | console.log("getTrending"); 54 | fetch('https://api.themoviedb.org/3/movie/popular?api_key=04c908115dc6ff5e5aa3709b5a735393&language=en-US&page=1').then(r => r.json()).then(popMovies => { 55 | console.log(popMovies.results); 56 | var pmRes = popMovies.results; 57 | 58 | 59 | let popMovieStr = ` 60 | 97 | `; 98 | //var savedPM = $("#popMv").detach(); 99 | chrome.storage.local.set({ 'savedPopMovies': popMovieStr }); 100 | chrome.storage.local.set({ 'pmArr': pmRes }); 101 | //localStorage.setItem('savedPopMovies', popMovieStr); 102 | 103 | }); 104 | 105 | fetch('https://api.themoviedb.org/3/tv/popular?api_key=04c908115dc6ff5e5aa3709b5a735393&language=en-US&page=1').then(r => r.json()).then(popShows => { 106 | console.log(popShows.results); 107 | var psRes = popShows.results; 108 | let popShowStr = ` 109 | 141 | `; 142 | /*const popSh = document.createElement('article'); 143 | popSh.outerHTML = ` 144 | 147 | `; 148 | popSh.appendChild(psScrMen); 149 | chrome.storage.local.set({ 'savedPopShows': popShowStr }); 150 | chrome.storage.local.set({ 'psArr': psRes }); 151 | //localStorage.setItem('savedPopShows', popShowStr); 152 | }); 153 | //console.log("hi"); 154 | 155 | //var popMovies = await axios.get('https://api.themoviedb.org/3/movie/popular?api_key=04c908115dc6ff5e5aa3709b5a735393&language=en-US&page=1'); 156 | //var popShows = await axios.get('https://api.themoviedb.org/3/tv/popular?api_key=04c908115dc6ff5e5aa3709b5a735393&language=en-US&page=1'); 157 | /*console.log(popMovies.results); 158 | console.log(popShows.results); 159 | //};*/ -------------------------------------------------------------------------------- /Chrome/js/thankYou.js: -------------------------------------------------------------------------------- 1 | /* 2 | (function(i, s, o, g, r, a, m) { 3 | i['GoogleAnalyticsObject'] = r; 4 | i[r] = i[r] || function() { 5 | (i[r].q = i[r].q || []).push(arguments) 6 | }, i[r].l = 1 * new Date(); 7 | a = s.createElement(o), 8 | m = s.getElementsByTagName(o)[0]; 9 | a.async = 1; 10 | a.src = g; 11 | m.parentNode.insertBefore(a, m) 12 | })(window, document, 'script', './js/third-party/analytics.js', 'ga'); 13 | 14 | ga('create', 'UA-208644341-1', 'auto'); 15 | 16 | // Modifications: 17 | ga('set', 'checkProtocolTask', null); // Disables file protocol checking. 18 | ga('send', 'pageview', '/thankYou'); // Set page, avoiding rejection due to chrome-extension protocol 19 | */ -------------------------------------------------------------------------------- /Chrome/js/third-party/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Chrome/js/third-party/.DS_Store -------------------------------------------------------------------------------- /Chrome/js/third-party/axios.min.js: -------------------------------------------------------------------------------- 1 | /* axios v0.19.0 | (c) 2019 by Matt Zabriskie */ ! function(e, t) { "object" == typeof exports && "object" == typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define([], t) : "object" == typeof exports ? exports.axios = t() : e.axios = t() }(this, function() { 2 | return function(e) { 3 | function t(r) { if (n[r]) return n[r].exports; var o = n[r] = { exports: {}, id: r, loaded: !1 }; return e[r].call(o.exports, o, o.exports, t), o.loaded = !0, o.exports } var n = {}; return t.m = e, t.c = n, t.p = "", t(0) }([function(e, t, n) { e.exports = n(1) }, function(e, t, n) { "use strict"; 4 | 5 | function r(e) { var t = new i(e), 6 | n = s(i.prototype.request, t); return o.extend(n, i.prototype, t), o.extend(n, t), n } var o = n(2), 7 | s = n(3), 8 | i = n(5), 9 | a = n(22), 10 | u = n(11), 11 | c = r(u); 12 | c.Axios = i, c.create = function(e) { return r(a(c.defaults, e)) }, c.Cancel = n(23), c.CancelToken = n(24), c.isCancel = n(10), c.all = function(e) { return Promise.all(e) }, c.spread = n(25), e.exports = c, e.exports.default = c }, function(e, t, n) { "use strict"; 13 | 14 | function r(e) { return "[object Array]" === j.call(e) } 15 | 16 | function o(e) { return "[object ArrayBuffer]" === j.call(e) } 17 | 18 | function s(e) { return "undefined" != typeof FormData && e instanceof FormData } 19 | 20 | function i(e) { var t; return t = "undefined" != typeof ArrayBuffer && ArrayBuffer.isView ? ArrayBuffer.isView(e) : e && e.buffer && e.buffer instanceof ArrayBuffer } 21 | 22 | function a(e) { return "string" == typeof e } 23 | 24 | function u(e) { return "number" == typeof e } 25 | 26 | function c(e) { return "undefined" == typeof e } 27 | 28 | function f(e) { return null !== e && "object" == typeof e } 29 | 30 | function p(e) { return "[object Date]" === j.call(e) } 31 | 32 | function d(e) { return "[object File]" === j.call(e) } 33 | 34 | function l(e) { return "[object Blob]" === j.call(e) } 35 | 36 | function h(e) { return "[object Function]" === j.call(e) } 37 | 38 | function m(e) { return f(e) && h(e.pipe) } 39 | 40 | function y(e) { return "undefined" != typeof URLSearchParams && e instanceof URLSearchParams } 41 | 42 | function g(e) { return e.replace(/^\s*/, "").replace(/\s*$/, "") } 43 | 44 | function x() { return ("undefined" == typeof navigator || "ReactNative" !== navigator.product && "NativeScript" !== navigator.product && "NS" !== navigator.product) && ("undefined" != typeof window && "undefined" != typeof document) } 45 | 46 | function v(e, t) { if (null !== e && "undefined" != typeof e) 47 | if ("object" != typeof e && (e = [e]), r(e)) 48 | for (var n = 0, o = e.length; n < o; n++) t.call(null, e[n], n, e); 49 | else 50 | for (var s in e) Object.prototype.hasOwnProperty.call(e, s) && t.call(null, e[s], s, e) } 51 | 52 | function w() { 53 | function e(e, n) { "object" == typeof t[n] && "object" == typeof e ? t[n] = w(t[n], e) : t[n] = e } for (var t = {}, n = 0, r = arguments.length; n < r; n++) v(arguments[n], e); return t } 54 | 55 | function b() { 56 | function e(e, n) { "object" == typeof t[n] && "object" == typeof e ? t[n] = b(t[n], e) : "object" == typeof e ? t[n] = b({}, e) : t[n] = e } for (var t = {}, n = 0, r = arguments.length; n < r; n++) v(arguments[n], e); return t } 57 | 58 | function E(e, t, n) { return v(t, function(t, r) { n && "function" == typeof t ? e[r] = S(t, n) : e[r] = t }), e } var S = n(3), 59 | R = n(4), 60 | j = Object.prototype.toString; 61 | e.exports = { isArray: r, isArrayBuffer: o, isBuffer: R, isFormData: s, isArrayBufferView: i, isString: a, isNumber: u, isObject: f, isUndefined: c, isDate: p, isFile: d, isBlob: l, isFunction: h, isStream: m, isURLSearchParams: y, isStandardBrowserEnv: x, forEach: v, merge: w, deepMerge: b, extend: E, trim: g } }, function(e, t) { "use strict"; 62 | e.exports = function(e, t) { return function() { for (var n = new Array(arguments.length), r = 0; r < n.length; r++) n[r] = arguments[r]; return e.apply(t, n) } } }, function(e, t) { 63 | /*! 64 | * Determine if an object is a Buffer 65 | * 66 | * @author Feross Aboukhadijeh 67 | * @license MIT 68 | */ 69 | e.exports = function(e) { return null != e && null != e.constructor && "function" == typeof e.constructor.isBuffer && e.constructor.isBuffer(e) } 70 | }, function(e, t, n) { "use strict"; 71 | 72 | function r(e) { this.defaults = e, this.interceptors = { request: new i, response: new i } } var o = n(2), 73 | s = n(6), 74 | i = n(7), 75 | a = n(8), 76 | u = n(22); 77 | r.prototype.request = function(e) { "string" == typeof e ? (e = arguments[1] || {}, e.url = arguments[0]) : e = e || {}, e = u(this.defaults, e), e.method = e.method ? e.method.toLowerCase() : "get"; var t = [a, void 0], 78 | n = Promise.resolve(e); for (this.interceptors.request.forEach(function(e) { t.unshift(e.fulfilled, e.rejected) }), this.interceptors.response.forEach(function(e) { t.push(e.fulfilled, e.rejected) }); t.length;) n = n.then(t.shift(), t.shift()); return n }, r.prototype.getUri = function(e) { return e = u(this.defaults, e), s(e.url, e.params, e.paramsSerializer).replace(/^\?/, "") }, o.forEach(["delete", "get", "head", "options"], function(e) { r.prototype[e] = function(t, n) { return this.request(o.merge(n || {}, { method: e, url: t })) } }), o.forEach(["post", "put", "patch"], function(e) { r.prototype[e] = function(t, n, r) { return this.request(o.merge(r || {}, { method: e, url: t, data: n })) } }), e.exports = r }, function(e, t, n) { "use strict"; 79 | 80 | function r(e) { return encodeURIComponent(e).replace(/%40/gi, "@").replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, "+").replace(/%5B/gi, "[").replace(/%5D/gi, "]") } var o = n(2); 81 | e.exports = function(e, t, n) { if (!t) return e; var s; if (n) s = n(t); 82 | else if (o.isURLSearchParams(t)) s = t.toString(); 83 | else { var i = []; 84 | o.forEach(t, function(e, t) { null !== e && "undefined" != typeof e && (o.isArray(e) ? t += "[]" : e = [e], o.forEach(e, function(e) { o.isDate(e) ? e = e.toISOString() : o.isObject(e) && (e = JSON.stringify(e)), i.push(r(t) + "=" + r(e)) })) }), s = i.join("&") } if (s) { var a = e.indexOf("#"); 85 | a !== -1 && (e = e.slice(0, a)), e += (e.indexOf("?") === -1 ? "?" : "&") + s } return e } }, function(e, t, n) { "use strict"; 86 | 87 | function r() { this.handlers = [] } var o = n(2); 88 | r.prototype.use = function(e, t) { return this.handlers.push({ fulfilled: e, rejected: t }), this.handlers.length - 1 }, r.prototype.eject = function(e) { this.handlers[e] && (this.handlers[e] = null) }, r.prototype.forEach = function(e) { o.forEach(this.handlers, function(t) { null !== t && e(t) }) }, e.exports = r }, function(e, t, n) { "use strict"; 89 | 90 | function r(e) { e.cancelToken && e.cancelToken.throwIfRequested() } var o = n(2), 91 | s = n(9), 92 | i = n(10), 93 | a = n(11), 94 | u = n(20), 95 | c = n(21); 96 | e.exports = function(e) { r(e), e.baseURL && !u(e.url) && (e.url = c(e.baseURL, e.url)), e.headers = e.headers || {}, e.data = s(e.data, e.headers, e.transformRequest), e.headers = o.merge(e.headers.common || {}, e.headers[e.method] || {}, e.headers || {}), o.forEach(["delete", "get", "head", "post", "put", "patch", "common"], function(t) { delete e.headers[t] }); var t = e.adapter || a.adapter; return t(e).then(function(t) { return r(e), t.data = s(t.data, t.headers, e.transformResponse), t }, function(t) { return i(t) || (r(e), t && t.response && (t.response.data = s(t.response.data, t.response.headers, e.transformResponse))), Promise.reject(t) }) } }, function(e, t, n) { "use strict"; var r = n(2); 97 | e.exports = function(e, t, n) { return r.forEach(n, function(n) { e = n(e, t) }), e } }, function(e, t) { "use strict"; 98 | e.exports = function(e) { return !(!e || !e.__CANCEL__) } }, function(e, t, n) { "use strict"; 99 | 100 | function r(e, t) {!s.isUndefined(e) && s.isUndefined(e["Content-Type"]) && (e["Content-Type"] = t) } 101 | 102 | function o() { var e; return "undefined" != typeof process && "[object process]" === Object.prototype.toString.call(process) ? e = n(13) : "undefined" != typeof XMLHttpRequest && (e = n(13)), e } var s = n(2), 103 | i = n(12), 104 | a = { "Content-Type": "application/x-www-form-urlencoded" }, 105 | u = { adapter: o(), transformRequest: [function(e, t) { return i(t, "Accept"), i(t, "Content-Type"), s.isFormData(e) || s.isArrayBuffer(e) || s.isBuffer(e) || s.isStream(e) || s.isFile(e) || s.isBlob(e) ? e : s.isArrayBufferView(e) ? e.buffer : s.isURLSearchParams(e) ? (r(t, "application/x-www-form-urlencoded;charset=utf-8"), e.toString()) : s.isObject(e) ? (r(t, "application/json;charset=utf-8"), JSON.stringify(e)) : e }], transformResponse: [function(e) { if ("string" == typeof e) try { e = JSON.parse(e) } catch (e) {} 106 | return e }], timeout: 0, xsrfCookieName: "XSRF-TOKEN", xsrfHeaderName: "X-XSRF-TOKEN", maxContentLength: -1, validateStatus: function(e) { return e >= 200 && e < 300 } }; 107 | u.headers = { common: { Accept: "application/json, text/plain, */*" } }, s.forEach(["delete", "get", "head"], function(e) { u.headers[e] = {} }), s.forEach(["post", "put", "patch"], function(e) { u.headers[e] = s.merge(a) }), e.exports = u }, function(e, t, n) { "use strict"; var r = n(2); 108 | e.exports = function(e, t) { r.forEach(e, function(n, r) { r !== t && r.toUpperCase() === t.toUpperCase() && (e[t] = n, delete e[r]) }) } }, function(e, t, n) { "use strict"; var r = n(2), 109 | o = n(14), 110 | s = n(6), 111 | i = n(17), 112 | a = n(18), 113 | u = n(15); 114 | e.exports = function(e) { return new Promise(function(t, c) { var f = e.data, 115 | p = e.headers; 116 | r.isFormData(f) && delete p["Content-Type"]; var d = new XMLHttpRequest; if (e.auth) { var l = e.auth.username || "", 117 | h = e.auth.password || ""; 118 | p.Authorization = "Basic " + btoa(l + ":" + h) } if (d.open(e.method.toUpperCase(), s(e.url, e.params, e.paramsSerializer), !0), d.timeout = e.timeout, d.onreadystatechange = function() { if (d && 4 === d.readyState && (0 !== d.status || d.responseURL && 0 === d.responseURL.indexOf("file:"))) { var n = "getAllResponseHeaders" in d ? i(d.getAllResponseHeaders()) : null, 119 | r = e.responseType && "text" !== e.responseType ? d.response : d.responseText, 120 | s = { data: r, status: d.status, statusText: d.statusText, headers: n, config: e, request: d }; 121 | o(t, c, s), d = null } }, d.onabort = function() { d && (c(u("Request aborted", e, "ECONNABORTED", d)), d = null) }, d.onerror = function() { c(u("Network Error", e, null, d)), d = null }, d.ontimeout = function() { c(u("timeout of " + e.timeout + "ms exceeded", e, "ECONNABORTED", d)), d = null }, r.isStandardBrowserEnv()) { var m = n(19), 122 | y = (e.withCredentials || a(e.url)) && e.xsrfCookieName ? m.read(e.xsrfCookieName) : void 0; 123 | y && (p[e.xsrfHeaderName] = y) } if ("setRequestHeader" in d && r.forEach(p, function(e, t) { "undefined" == typeof f && "content-type" === t.toLowerCase() ? delete p[t] : d.setRequestHeader(t, e) }), e.withCredentials && (d.withCredentials = !0), e.responseType) try { d.responseType = e.responseType } catch (t) { if ("json" !== e.responseType) throw t } 124 | "function" == typeof e.onDownloadProgress && d.addEventListener("progress", e.onDownloadProgress), "function" == typeof e.onUploadProgress && d.upload && d.upload.addEventListener("progress", e.onUploadProgress), e.cancelToken && e.cancelToken.promise.then(function(e) { d && (d.abort(), c(e), d = null) }), void 0 === f && (f = null), d.send(f) }) } }, function(e, t, n) { "use strict"; var r = n(15); 125 | e.exports = function(e, t, n) { var o = n.config.validateStatus;!o || o(n.status) ? e(n) : t(r("Request failed with status code " + n.status, n.config, null, n.request, n)) } }, function(e, t, n) { "use strict"; var r = n(16); 126 | e.exports = function(e, t, n, o, s) { var i = new Error(e); return r(i, t, n, o, s) } }, function(e, t) { "use strict"; 127 | e.exports = function(e, t, n, r, o) { return e.config = t, n && (e.code = n), e.request = r, e.response = o, e.isAxiosError = !0, e.toJSON = function() { return { message: this.message, name: this.name, description: this.description, number: this.number, fileName: this.fileName, lineNumber: this.lineNumber, columnNumber: this.columnNumber, stack: this.stack, config: this.config, code: this.code } }, e } }, function(e, t, n) { "use strict"; var r = n(2), 128 | o = ["age", "authorization", "content-length", "content-type", "etag", "expires", "from", "host", "if-modified-since", "if-unmodified-since", "last-modified", "location", "max-forwards", "proxy-authorization", "referer", "retry-after", "user-agent"]; 129 | e.exports = function(e) { var t, n, s, i = {}; return e ? (r.forEach(e.split("\n"), function(e) { if (s = e.indexOf(":"), t = r.trim(e.substr(0, s)).toLowerCase(), n = r.trim(e.substr(s + 1)), t) { if (i[t] && o.indexOf(t) >= 0) return; "set-cookie" === t ? i[t] = (i[t] ? i[t] : []).concat([n]) : i[t] = i[t] ? i[t] + ", " + n : n } }), i) : i } }, function(e, t, n) { "use strict"; var r = n(2); 130 | e.exports = r.isStandardBrowserEnv() ? function() { 131 | function e(e) { var t = e; return n && (o.setAttribute("href", t), t = o.href), o.setAttribute("href", t), { href: o.href, protocol: o.protocol ? o.protocol.replace(/:$/, "") : "", host: o.host, search: o.search ? o.search.replace(/^\?/, "") : "", hash: o.hash ? o.hash.replace(/^#/, "") : "", hostname: o.hostname, port: o.port, pathname: "/" === o.pathname.charAt(0) ? o.pathname : "/" + o.pathname } } var t, n = /(msie|trident)/i.test(navigator.userAgent), 132 | o = document.createElement("a"); return t = e(window.location.href), 133 | function(n) { var o = r.isString(n) ? e(n) : n; return o.protocol === t.protocol && o.host === t.host } }() : function() { return function() { return !0 } }() }, function(e, t, n) { "use strict"; var r = n(2); 134 | e.exports = r.isStandardBrowserEnv() ? function() { return { write: function(e, t, n, o, s, i) { var a = []; 135 | a.push(e + "=" + encodeURIComponent(t)), r.isNumber(n) && a.push("expires=" + new Date(n).toGMTString()), r.isString(o) && a.push("path=" + o), r.isString(s) && a.push("domain=" + s), i === !0 && a.push("secure"), document.cookie = a.join("; ") }, read: function(e) { var t = document.cookie.match(new RegExp("(^|;\\s*)(" + e + ")=([^;]*)")); return t ? decodeURIComponent(t[3]) : null }, remove: function(e) { this.write(e, "", Date.now() - 864e5) } } }() : function() { return { write: function() {}, read: function() { return null }, remove: function() {} } }() }, function(e, t) { "use strict"; 136 | e.exports = function(e) { return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e) } }, function(e, t) { "use strict"; 137 | e.exports = function(e, t) { return t ? e.replace(/\/+$/, "") + "/" + t.replace(/^\/+/, "") : e } }, function(e, t, n) { "use strict"; var r = n(2); 138 | e.exports = function(e, t) { t = t || {}; var n = {}; return r.forEach(["url", "method", "params", "data"], function(e) { "undefined" != typeof t[e] && (n[e] = t[e]) }), r.forEach(["headers", "auth", "proxy"], function(o) { r.isObject(t[o]) ? n[o] = r.deepMerge(e[o], t[o]) : "undefined" != typeof t[o] ? n[o] = t[o] : r.isObject(e[o]) ? n[o] = r.deepMerge(e[o]) : "undefined" != typeof e[o] && (n[o] = e[o]) }), r.forEach(["baseURL", "transformRequest", "transformResponse", "paramsSerializer", "timeout", "withCredentials", "adapter", "responseType", "xsrfCookieName", "xsrfHeaderName", "onUploadProgress", "onDownloadProgress", "maxContentLength", "validateStatus", "maxRedirects", "httpAgent", "httpsAgent", "cancelToken", "socketPath"], function(r) { "undefined" != typeof t[r] ? n[r] = t[r] : "undefined" != typeof e[r] && (n[r] = e[r]) }), n } }, function(e, t) { "use strict"; 139 | 140 | function n(e) { this.message = e } 141 | n.prototype.toString = function() { return "Cancel" + (this.message ? ": " + this.message : "") }, n.prototype.__CANCEL__ = !0, e.exports = n }, function(e, t, n) { "use strict"; 142 | 143 | function r(e) { if ("function" != typeof e) throw new TypeError("executor must be a function."); var t; 144 | this.promise = new Promise(function(e) { t = e }); var n = this; 145 | e(function(e) { n.reason || (n.reason = new o(e), t(n.reason)) }) } var o = n(23); 146 | r.prototype.throwIfRequested = function() { if (this.reason) throw this.reason }, r.source = function() { var e, t = new r(function(t) { e = t }); return { token: t, cancel: e } }, e.exports = r }, function(e, t) { "use strict"; 147 | e.exports = function(e) { return function(t) { return e.apply(null, t) } } }]) 148 | }); 149 | //# sourceMappingURL=axios.min.map -------------------------------------------------------------------------------- /Chrome/js/third-party/main.min.js: -------------------------------------------------------------------------------- 1 | ! function() { 2 | const t = window, 3 | e = document.documentElement; 4 | if (e.classList.remove("no-js"), e.classList.add("js"), document.body.classList.contains("has-animations")) { 5 | (window.sr = ScrollReveal()).reveal(".hero-title, .hero-paragraph, .hero-form", { duration: 1e3, distance: "40px", easing: "cubic-bezier(0.5, -0.01, 0, 1.005)", origin: "bottom", interval: 150 }) 6 | } 7 | const s = document.querySelectorAll(".is-moving-object"); 8 | let n = 0, 9 | i = 0, 10 | a = 0, 11 | o = 0, 12 | r = 0, 13 | l = e.clientWidth, 14 | c = e.clientHeight; 15 | s && t.addEventListener("mousemove", function(t, e) { 16 | let s = null, 17 | n = e; 18 | return (...e) => { 19 | let i = Date.now(); 20 | (!s || i - s >= n) && (s = i, t.apply(this, e)) 21 | } 22 | }(function(e) { 23 | ! function(e, s) { 24 | n = e.pageX, i = e.pageY, a = t.scrollY, o = l / 2 - n, r = c / 2 - (i - a); 25 | for (let t = 0; t < s.length; t++) { 26 | const e = s[t].getAttribute("data-translating-factor") || 20, 27 | n = s[t].getAttribute("data-rotating-factor") || 20, 28 | i = s[t].getAttribute("data-perspective") || 500; 29 | let a = []; 30 | s[t].classList.contains("is-translating") && a.push("translate(" + o / e + "px, " + r / e + "px)"), s[t].classList.contains("is-rotating") && a.push("perspective(" + i + "px) rotateY(" + -o / n + "deg) rotateX(" + r / n + "deg)"), (s[t].classList.contains("is-translating") || s[t].classList.contains("is-rotating")) && (a = a.join(" "), s[t].style.transform = a, s[t].style.transition = "transform 1s ease-out", s[t].style.transformStyle = "preserve-3d", s[t].style.backfaceVisibility = "hidden") 31 | } 32 | }(e, s) 33 | }, 150)) 34 | }(); -------------------------------------------------------------------------------- /Chrome/js/utils.js: -------------------------------------------------------------------------------- 1 | const debounce = (func, delay = 1000) => { 2 | let timeoutId; 3 | return (...args) => { 4 | if (timeoutId) { 5 | clearTimeout(timeoutId); 6 | } 7 | timeoutId = setTimeout(() => { 8 | func.apply(null, args); 9 | }, delay); 10 | }; 11 | }; -------------------------------------------------------------------------------- /Chrome/js/viewPage.js: -------------------------------------------------------------------------------- 1 | let twoEmbUrl = localStorage.getItem('twoEmbUrl'); 2 | let vidSrcUrl = localStorage.getItem('vidSrcUrl'); 3 | let dbgoUrl = localStorage.getItem('dbgoUrl'); 4 | let firesonicUrl = localStorage.getItem('firesonicUrl'); 5 | let trailersToUrl = localStorage.getItem('trailersToUrl'); 6 | 7 | let vidTitle = localStorage.getItem('vidTitle'); 8 | let titleVideo = document.getElementById("titleVideo"); 9 | console.log(trailersToUrl); 10 | 11 | titleVideo.removeAttribute('sandbox'); 12 | titleVideo.contentWindow.location.href = twoEmbUrl; 13 | document.title = vidTitle; 14 | 15 | let vidSrcButt = document.getElementById("vidSrcButton"); 16 | let dbgoButt = document.getElementById("dbgoButton"); 17 | let twoEmbButt = document.getElementById("twoEmbButton"); 18 | let firesonicButton = document.getElementById("firesonicButton"); 19 | let trailersToButton = document.getElementById("trailersToButton"); 20 | let serverButt = document.getElementById("serversButton"); 21 | 22 | /*let serverOptions = document.getElementById("serverOptions"); 23 | serverButt.addEventListener('click', () => { 24 | if (serverOptions.style.display == "none") { 25 | serverOptions.style.display = "block"; 26 | } else { 27 | serverOptions.style.display = "none"; 28 | } 29 | }); 30 | */ 31 | vidSrcButt.addEventListener('click', () => { 32 | titleVideo.style.display = "none"; 33 | titleVideo.removeAttribute('sandbox'); 34 | titleVideo.src = vidSrcUrl; 35 | titleVideo.contentWindow.location.href = vidSrcUrl; 36 | serverButt.innerHTML = ` 37 | VIDSRC 38 | `; 39 | 40 | titleVideo.style.left = "0px"; 41 | titleVideo.style.top = "-50px"; 42 | titleVideo.style.display = "unset"; 43 | 44 | 45 | // serverOptions.style.display = "none"; 46 | }); 47 | 48 | dbgoButt.addEventListener('click', () => { 49 | //titleVideo.removeAttribute('sandbox'); 50 | titleVideo.setAttribute('sandbox', "allow-pointer-lock allow-same-origin allow-scripts allow-top-navigation allow-presentation"); 51 | titleVideo.style.top = "4px"; 52 | titleVideo.style.left = "0px"; 53 | 54 | 55 | titleVideo.src = dbgoUrl; 56 | titleVideo.contentWindow.location.href = dbgoUrl; 57 | serverButt.innerHTML = ` 58 | DBOGO 59 | `; 60 | 61 | //serverOptions.style.display = "none"; 62 | }); 63 | 64 | trailersToButton.addEventListener('click', () => { 65 | 66 | //titleVideo.removeAttribute('sandbox'); 67 | //titleVideo.setAttribute('sandbox', "allow-pointer-lock allow-same-origin allow-scripts allow-top-navigation"); 68 | titleVideo.setAttribute('sandbox', "allow-same-origin allow-scripts"); 69 | 70 | //titleVideo.src = trailersToUrl; 71 | 72 | /*if ('app' !== $('body').attr('id')) { 73 | window.setTimeout(function() { 74 | window.top.location.href = 'https://Trailers.to/video/test-user/imdb/tt7126948'; 75 | }, 5000); 76 | }*/ 77 | titleVideo.style.top = "33px"; 78 | titleVideo.style.left = "0px"; 79 | titleVideo.contentWindow.location.href = trailersToUrl; //"https://Trailers.to/video/test-user/imdb/tt7126948"; 80 | //serverButt.innerHTML = ``; 81 | //serverButt.innerText = "TRAILERS.TO"; 82 | serverButt.innerHTML = ` 83 | TRAILERS.TO 84 | `; 85 | //serverButt.style.width = "175px"; 86 | //serverOptions.style.display = "none"; 87 | }); 88 | 89 | twoEmbButt.addEventListener('click', () => { 90 | titleVideo.removeAttribute('sandbox'); 91 | titleVideo.style.top = "0px"; 92 | titleVideo.style.left = "0px"; 93 | titleVideo.src = twoEmbUrl; 94 | titleVideo.contentWindow.location.href = twoEmbUrl; 95 | 96 | serverButt.innerHTML = ` 97 | 2EMBED 98 | `; 99 | //serverOptions.style.display = "none"; 100 | }); 101 | 102 | firesonicButton.addEventListener('click', () => { 103 | titleVideo.src = firesonicUrl; 104 | titleVideo.contentWindow.location.href = firesonicUrl; 105 | serverButt.innerHTML = ` 106 | FIRESONIC 107 | `; 108 | titleVideo.style.top = "0px"; 109 | 110 | titleVideo.style.left = "0px"; 111 | titleVideo.style.height = "-webkit-fill-available"; 112 | // serverOptions.style.display = "none"; 113 | }); -------------------------------------------------------------------------------- /Chrome/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "LetMeWatch", 3 | "version": "1.87", 4 | "description": "LetMeWatch: A seamless watching experience in a Chrome extension.", 5 | "manifest_version": 3, 6 | "permissions": [ 7 | "storage", 8 | "scripting" 9 | ], 10 | "background": { 11 | "service_worker": "/js/background.js" 12 | }, 13 | "action": { 14 | "default_popup": "popup.html", 15 | "default_icon": "/images/LMWlogo.png" 16 | }, 17 | 18 | "icons": { 19 | 20 | "16": "/images/LMWlogo.png", 21 | "32": "/images/LMWlogo.png", 22 | "48": "/images/LMWlogo.png", 23 | "128": "/images/LMWlogo.png" 24 | }, 25 | "incognito": "split", 26 | "commands": { 27 | "_execute_action": { 28 | "suggested_key": { 29 | "default": "Alt+M", 30 | "mac": "Alt+M" 31 | } 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /Chrome/onInstall.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 11 | 12 | 13 | 14 | 15 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 51 | 52 | 53 | 54 | 55 | 56 | 90 | 91 |
92 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /Chrome/popup.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 16 | 17 | 18 | 19 |
20 |
21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /Chrome/viewPage.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 41 | 42 | 53 | 54 | 67 | 68 | 69 | nn 70 | 71 | 72 | -------------------------------------------------------------------------------- /Firefox/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/.DS_Store -------------------------------------------------------------------------------- /Firefox/css/onInstall.css: -------------------------------------------------------------------------------- 1 | .tutorial { 2 | width: 300px; 3 | text-align: center; 4 | margin: auto; 5 | } 6 | 7 | figure.image { 8 | display: flex; 9 | justify-content: right; 10 | background-color: black; 11 | } 12 | 13 | figure .image img { 14 | justify-content: right; 15 | height: 190px; 16 | border-radius: 3px; 17 | /*max-width: 120px;*/ 18 | } 19 | 20 | .notification { 21 | margin-top: 20px !important; 22 | } 23 | 24 | .results { 25 | max-height: 400px; 26 | overflow-y: scroll; 27 | } 28 | 29 | .title .icon { 30 | margin-left: 15px; 31 | } 32 | 33 | .hero { 34 | margin-bottom: 20px; 35 | } 36 | 37 | .forms { 38 | display: flex; 39 | justify-content: space-around; 40 | } 41 | 42 | .dropdown-item { 43 | display: flex; 44 | height: 110px; 45 | } 46 | 47 | .dropdown-item img { 48 | height: 100px; 49 | width: 75px; 50 | min-height: 100px; 51 | min-width: 75px; 52 | margin-right: 10px; 53 | border-radius: 2px; 54 | } 55 | 56 | 57 | /* 58 | CUSTOM - ADDED SCRIPT 59 | */ 60 | 61 | html { 62 | background-color: black; 63 | /* background-image: linear-gradient( 64 | 141deg, #425cf0 0%, #47c4f5 71%, #1ea1a3 100%); */ 65 | width: 100%; 66 | height: 100%; 67 | padding-bottom: 1% 68 | } 69 | 70 | #summary { 71 | width: auto; 72 | height: auto; 73 | } 74 | 75 | label { 76 | color: white 77 | } 78 | 79 | .dropdown-content { 80 | width: 400px; 81 | background-color: black; 82 | } 83 | 84 | .dropdown-menu { 85 | padding-bottom: 7px; 86 | } 87 | 88 | a.dropdown-item { 89 | white-space: unset; 90 | color: white; 91 | background-color: black; 92 | } 93 | 94 | .media-content { 95 | overflow-x: unset; 96 | } 97 | 98 | .content { 99 | display: block; 100 | justify-content: space-between; 101 | align-items: right; 102 | } 103 | 104 | h4 { 105 | color: white; 106 | white-space: nowrap; 107 | font-size: 12px; 108 | font: bold; 109 | margin-bottom: 0px; 110 | font-weight: 450; 111 | } 112 | 113 | .content h4 { 114 | color: white; 115 | white-space: nowrap; 116 | font-size: 12px; 117 | font-weight: 300; 118 | margin-bottom: 6px; 119 | } 120 | 121 | .content h1 { 122 | white-space: nowrap; 123 | font-size: 4vw; 124 | margin-bottom: 0px; 125 | padding-left: 0px; 126 | margin-left: 1px; 127 | line-height: 1.5; 128 | font-weight: 400; 129 | } 130 | 131 | .media-content p { 132 | font-size: 29px; 133 | padding-bottom: 0px; 134 | padding-top: 15px; 135 | font-weight: 200; 136 | line-height: 1.35; 137 | margin-left: 5%; 138 | } 139 | 140 | .content h1, 141 | .content h4, 142 | .media-content p { 143 | color: white; 144 | } 145 | 146 | article.media { 147 | display: block; 148 | width: 98%; 149 | /* height: 85%; */ 150 | /* background-color: black; */ 151 | border-radius: 4px; 152 | padding: 3 10px 7px 10px; 153 | margin-top: 0.7%; 154 | background-image: linear-gradient( 141deg, #425cf0 0%, #47c4f5 71%, #1ea1a3 100%); 155 | } 156 | 157 | .pill { 158 | /* background-color: #ddd;*/ 159 | background-image: linear-gradient(141deg, #ff7070e3 0%, #fb3e3edc 71%, #ff9d9d 100%); 160 | border: none; 161 | color: black; 162 | padding: 10px 20px; 163 | text-align: center; 164 | text-decoration: none; 165 | display: inline-block; 166 | cursor: pointer; 167 | border-radius: 16px; 168 | width: auto; 169 | } 170 | 171 | 172 | /* 173 | .seasons { 174 | position: relative; 175 | bottom: 0px; 176 | }*/ 177 | 178 | .pill-eps { 179 | background-image: linear-gradient(141deg, #42f0ca 0%, #47f5ec 71%, #359bee 100%); 180 | border: none; 181 | color: black; 182 | padding: 10px 20px; 183 | text-align: center; 184 | text-decoration: none; 185 | display: inline-block; 186 | cursor: pointer; 187 | border-radius: 16px; 188 | width: auto; 189 | margin-bottom: 5px; 190 | } 191 | 192 | 193 | /* .episodes { 194 | position: absolute; 195 | bottom: 32px; 196 | }*/ 197 | 198 | .pill-nxtszn, 199 | .pill-prevszn { 200 | background-image: url('../images/fwdIconWhite.png'); 201 | background-size: 22px 22px; 202 | height: 22px; 203 | width: 22px; 204 | background-color: black; 205 | border: none; 206 | padding: 0px 0px 0px 0px; 207 | color: white; 208 | text-align: center; 209 | text-decoration: none; 210 | display: inline-block; 211 | cursor: pointer; 212 | border-radius: 4px; 213 | font-weight: 700; 214 | margin: 0px 0px 0px 0px; 215 | padding-bottom: 8px; 216 | padding-right: 13px; 217 | margin-top: 7px; 218 | position: absolute; 219 | left: 310px; 220 | /* 221 | 222 | padding-bottom: 8px; 223 | padding-right: 13px; 224 | margin-top: 7px; 225 | position: absolute; 226 | right: 12px; 227 | background-image: linear-gradient(141deg, #ff7070e3 0%, #fb3e3edc 71%, #ff9d9d 100%); 228 | border: none; 229 | color: black; 230 | padding: 5px 10px; 231 | text-align: center; 232 | text-decoration: none; 233 | display: inline-block; 234 | cursor: pointer; 235 | border-radius: 16px; 236 | width: auto; 237 | margin-bottom: 10px;*/ 238 | } 239 | 240 | 241 | /*font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji;*/ 242 | 243 | .dropdown { 244 | display: block; 245 | } 246 | 247 | *::placeholder { 248 | /* modern browser */ 249 | color: white; 250 | } 251 | 252 | #autocomplete { 253 | width: 400px; 254 | } 255 | 256 | .input { 257 | color: white; 258 | background-color: black; 259 | width: 100%; 260 | font-size: 16px; 261 | font-weight: 500; 262 | } 263 | 264 | #logoHeader { 265 | height: 27px; 266 | display: inline-flex; 267 | color: white; 268 | padding: 0px 0px 0px 0px; 269 | margin: 0px 0px 0px 0px; 270 | margin-left: 28%; 271 | font-size: 25px; 272 | font-weight: 700; 273 | vertical-align: center; 274 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif; 275 | } 276 | 277 | a.dropdown-item:focus, 278 | button.dropdown-item:focus { 279 | background-color: whitesmoke; 280 | color: #0a0a0a; 281 | } 282 | 283 | .content { 284 | display: flex; 285 | } 286 | 287 | .media .content:not(:last-child) { 288 | margin-bottom: 0px; 289 | } 290 | 291 | #currSzn { 292 | margin-top: 10.5px; 293 | font-weight: 450; 294 | } 295 | 296 | .media-content p { 297 | overflow: hidden; 298 | text-overflow: hidden; 299 | display: block; 300 | padding-bottom: 4px; 301 | /* number of lines to show */ 302 | -webkit-box-orient: vertical; 303 | } 304 | 305 | .pill-back { 306 | /*background-image: linear-gradient(141deg, #ff7070e3 0%, #fb3e3edc 71%, #ff9d9d 100%);*/ 307 | background-image: url('../images/backIcon6.png'); 308 | background-size: 26px 26px; 309 | height: 26px; 310 | width: 26px; 311 | background-color: white; 312 | border: none; 313 | color: white; 314 | padding: 0px 0px 0px 0px; 315 | text-align: center; 316 | text-decoration: none; 317 | display: inline-block; 318 | cursor: pointer; 319 | border-radius: 4px; 320 | font-weight: 700; 321 | margin: 0px 0px 0px 0px; 322 | padding-bottom: 0px; 323 | } 324 | 325 | .content h1:not(:first-child) { 326 | margin-top: 0em; 327 | } 328 | 329 | article.seasons { 330 | font-size: 100%; 331 | } 332 | 333 | body { 334 | font-size: 75%; 335 | padding-left: 26%; 336 | padding-right: 24%; 337 | padding-top: 1%; 338 | padding-bottom: 0.5%; 339 | height: 100%; 340 | } 341 | 342 | .dropdown-item .description { 343 | font-size: 4vw; 344 | margin-bottom: 6px; 345 | padding-left: 0px; 346 | line-height: 1.25; 347 | } 348 | 349 | #appName { 350 | font-size: 8vw; 351 | font-weight: 100; 352 | line-height: 1.125; 353 | padding-left: 20px; 354 | margin-top: -1%; 355 | vertical-align: bottom; 356 | color: white; 357 | /* background: rgb(63, 94, 251); 358 | background: radial-gradient(circle, rgba(63, 94, 251, 1) 0%, rgba(252, 70, 107, 1) 100%); 359 | */ 360 | } 361 | 362 | #logoSummaryTV { 363 | height: 8vw; 364 | display: inline-flex; 365 | color: white; 366 | padding: 0px 0px 0px 0px; 367 | margin: 0px 0px 0px 0px; 368 | font-size: 25px; 369 | font-weight: bolder; 370 | margin-left: 0%; 371 | vertical-align: center; 372 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif; 373 | } 374 | 375 | #logoSummaryTVSzn { 376 | height: 27px; 377 | display: inline-flex; 378 | color: white; 379 | padding: 0px 0px 0px 0px; 380 | margin: 0px 0px 0px 0px; 381 | margin-left: 28%; 382 | font-size: 25px; 383 | font-weight: 700; 384 | vertical-align: center; 385 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif; 386 | } 387 | 388 | #logoSummaryMovie { 389 | height: 27px; 390 | display: inline-flex; 391 | color: white; 392 | padding: 0px 0px 0px 0px; 393 | margin: 0px 0px 0px 0px; 394 | margin-left: 28%; 395 | font-size: 25px; 396 | font-weight: 600; 397 | vertical-align: center; 398 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif; 399 | } 400 | 401 | .pill-nxtep, 402 | .pill-prevep { 403 | background-image: url('../images/fwdIconWhite.png'); 404 | background-size: 22px 22px; 405 | height: 22px; 406 | width: 22px; 407 | background-color: black; 408 | border: none; 409 | padding: 0px 0px 0px 0px; 410 | color: white; 411 | text-align: center; 412 | text-decoration: none; 413 | display: inline-block; 414 | cursor: pointer; 415 | border-radius: 4px; 416 | font-weight: 700; 417 | margin: 0px 0px 0px 0px; 418 | padding-bottom: 8px; 419 | padding-right: 13px; 420 | margin-top: 7px; 421 | position: absolute; 422 | right: -10px; 423 | } 424 | 425 | #suggestDescription { 426 | display: block; 427 | } 428 | 429 | #suggestDescription h1 { 430 | white-space: normal; 431 | line-height: 1.125; 432 | font-weight: 300; 433 | font-size: 4.5vw; 434 | } 435 | 436 | a.dropdown-item:hover * { 437 | color: black; 438 | } 439 | 440 | a.dropdown-item:focus * { 441 | color: black; 442 | } 443 | 444 | #rating img { 445 | min-height: 40px; 446 | min-width: 40px; 447 | height: 40px; 448 | width: 40px; 449 | position: absolute; 450 | right: -6px; 451 | top: 0px; 452 | } 453 | 454 | 455 | /* 456 | #rating img { 457 | height: 20px; 458 | width: 20px; 459 | margin-top: -5px; 460 | padding-left: 3px; 461 | } 462 | */ 463 | 464 | #rating h4 { 465 | padding-top: 14px; 466 | margin-left: -10px; 467 | position: absolute; 468 | right: 15px; 469 | top: 2px; 470 | font-size: 12px; 471 | font-weight: 300; 472 | color: black; 473 | } 474 | 475 | #rating { 476 | margin-top: -15px; 477 | display: flex; 478 | float: right; 479 | } 480 | 481 | #suggSubhead { 482 | margin-top: 2px; 483 | font-size: 3vw; 484 | } 485 | 486 | #inpSugg::placeholder { 487 | color: rgba(255, 255, 255, 0.589); 488 | font-weight: 300; 489 | } 490 | 491 | #tvTitle { 492 | margin-left: 0px; 493 | text-align: center; 494 | font-size: 61px; 495 | font-weight: 200; 496 | white-space: normal; 497 | line-height: 1.125; 498 | color: white; 499 | /* vertical-align: bottom; */ 500 | position: absolute; 501 | bottom: 30px; 502 | left: 23.1%; 503 | } 504 | 505 | #getStarted { 506 | margin-left: 0px; 507 | font-size: 33px; 508 | font-weight: 200; 509 | white-space: normal; 510 | line-height: 1.125; 511 | padding-bottom: 3px; 512 | padding-left: 2px; 513 | color: white; 514 | } 515 | 516 | #gsArticle { 517 | display: flex; 518 | width: 99%; 519 | height: auto; 520 | margin-left: 0%; 521 | padding-bottom: 0; 522 | padding: 0.5% 1% 0% 1%; 523 | background-image: linear-gradient( 317deg, #ffa500 0%, #ff0000c2 100%); 524 | } 525 | 526 | #description { 527 | margin-top: -5px; 528 | } 529 | 530 | .checked { 531 | color: orange; 532 | } 533 | 534 | #watchNow { 535 | margin-top: 5px; 536 | margin-bottom: 5px; 537 | } 538 | 539 | #logoArticle { 540 | background-image: linear-gradient(141deg, #425cf0 0%, #47c4f5 71%, #1ea1a3 100%); 541 | width: 75%; 542 | height: 100%; 543 | padding: 25px 25px 25px 25px; 544 | } 545 | 546 | #contentArticle { 547 | width: 18.5%; 548 | height: auto; 549 | margin-left: 0%; 550 | padding-bottom: 0; 551 | padding: 0.5% 1% 0% 1%; 552 | display: flex; 553 | } 554 | 555 | #contentDiv { 556 | display: block; 557 | margin-left: 10px; 558 | } 559 | 560 | #descriptionFt { 561 | margin-top: -35px; 562 | margin-left: 6px; 563 | font-size: 20px; 564 | font-weight: 200; 565 | } 566 | 567 | #descriptionIns { 568 | margin-top: -18px; 569 | margin-left: 6px; 570 | font-size: 20px; 571 | font-weight: 200; 572 | } 573 | 574 | #thanosBan { 575 | max-height: 280px; 576 | } 577 | 578 | 579 | /*font-family: 'Montserrat', sans-serif; 580 | font-family: 'Noto Sans JP', sans-serif; 581 | font-family: 'Open Sans', sans-serif; 582 | font-family: 'Poppins', sans-serif; 583 | font-family: 'Roboto', sans-serif; 584 | font-weight: bold; 585 | font-family: system-ui, sans-serif; 586 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji'; 587 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; 588 | font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; 589 | font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif ; 590 | */ -------------------------------------------------------------------------------- /Firefox/css/viewPage.css: -------------------------------------------------------------------------------- 1 | .pill { 2 | /* background-color: #ddd;*/ 3 | background-image: linear-gradient(141deg, #ff7070e3 0%, #fb3e3edc 71%, #ff9d9d 100%); 4 | border: none; 5 | color: black; 6 | text-align: center; 7 | text-decoration: none; 8 | display: inline-block; 9 | cursor: pointer; 10 | border-radius: 16px; 11 | } 12 | 13 | .pill-servers { 14 | background: black; 15 | color: #ffffff; 16 | border: none; 17 | padding: 10px 20px; 18 | text-align: center; 19 | text-decoration: none; 20 | cursor: pointer; 21 | border-radius: 16px; 22 | font-size: 16px; 23 | margin-top: 2px; 24 | margin-left: -5px; 25 | width: 160px; 26 | font-family: Montserrat, Arial; 27 | font-weight: 300; 28 | -webkit-font-smoothing: antialiased; 29 | display: inline-block; 30 | font-style: normal; 31 | font-variant: normal; 32 | position: fixed; 33 | z-index: 1; 34 | padding-top: 7px; 35 | padding-bottom: 7px; 36 | } -------------------------------------------------------------------------------- /Firefox/images/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/.DS_Store -------------------------------------------------------------------------------- /Firefox/images/Docs-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/Docs-1.png -------------------------------------------------------------------------------- /Firefox/images/Docs-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/Docs-2.png -------------------------------------------------------------------------------- /Firefox/images/EngFlow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/EngFlow.png -------------------------------------------------------------------------------- /Firefox/images/LMWBanner1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/LMWBanner1.jpg -------------------------------------------------------------------------------- /Firefox/images/LMWBanner2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/LMWBanner2.jpg -------------------------------------------------------------------------------- /Firefox/images/LMWBanner3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/LMWBanner3.jpg -------------------------------------------------------------------------------- /Firefox/images/LMWLarge.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/LMWLarge.jpg -------------------------------------------------------------------------------- /Firefox/images/LMWLogo48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/LMWLogo48.png -------------------------------------------------------------------------------- /Firefox/images/LMWLogo96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/LMWLogo96.png -------------------------------------------------------------------------------- /Firefox/images/LMWSmall.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/LMWSmall.jpg -------------------------------------------------------------------------------- /Firefox/images/LMW_NEWSC1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/LMW_NEWSC1.jpg -------------------------------------------------------------------------------- /Firefox/images/LMW_NEWSC2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/LMW_NEWSC2.jpg -------------------------------------------------------------------------------- /Firefox/images/LMW_NEWSC3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/LMW_NEWSC3.jpg -------------------------------------------------------------------------------- /Firefox/images/LMWlogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/LMWlogo.png -------------------------------------------------------------------------------- /Firefox/images/backIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/backIcon.png -------------------------------------------------------------------------------- /Firefox/images/backIcon1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/backIcon1.png -------------------------------------------------------------------------------- /Firefox/images/backIcon3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/backIcon3.png -------------------------------------------------------------------------------- /Firefox/images/backIcon4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/backIcon4.png -------------------------------------------------------------------------------- /Firefox/images/backIcon5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/backIcon5.png -------------------------------------------------------------------------------- /Firefox/images/backIcon6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/backIcon6.png -------------------------------------------------------------------------------- /Firefox/images/backIconWhite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/backIconWhite.png -------------------------------------------------------------------------------- /Firefox/images/button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/button.png -------------------------------------------------------------------------------- /Firefox/images/cinema.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/cinema.png -------------------------------------------------------------------------------- /Firefox/images/clapperboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/clapperboard.png -------------------------------------------------------------------------------- /Firefox/images/emp16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/emp16.png -------------------------------------------------------------------------------- /Firefox/images/emp4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/emp4.png -------------------------------------------------------------------------------- /Firefox/images/emp5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/emp5.png -------------------------------------------------------------------------------- /Firefox/images/en1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/en1.png -------------------------------------------------------------------------------- /Firefox/images/en11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/en11.png -------------------------------------------------------------------------------- /Firefox/images/en5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/en5.png -------------------------------------------------------------------------------- /Firefox/images/en6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/en6.png -------------------------------------------------------------------------------- /Firefox/images/en7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/en7.png -------------------------------------------------------------------------------- /Firefox/images/en9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/en9.png -------------------------------------------------------------------------------- /Firefox/images/expl1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/expl1.png -------------------------------------------------------------------------------- /Firefox/images/expl2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/expl2.png -------------------------------------------------------------------------------- /Firefox/images/expl3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/expl3.png -------------------------------------------------------------------------------- /Firefox/images/fwdIconWhite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/fwdIconWhite.png -------------------------------------------------------------------------------- /Firefox/images/movie-camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/movie-camera.png -------------------------------------------------------------------------------- /Firefox/images/nfl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/nfl.png -------------------------------------------------------------------------------- /Firefox/images/nfl1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/nfl1.png -------------------------------------------------------------------------------- /Firefox/images/nfl2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/nfl2.png -------------------------------------------------------------------------------- /Firefox/images/nfl3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/nfl3.png -------------------------------------------------------------------------------- /Firefox/images/nfl5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/nfl5.png -------------------------------------------------------------------------------- /Firefox/images/nfl7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/nfl7.png -------------------------------------------------------------------------------- /Firefox/images/no-poster1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/no-poster1.png -------------------------------------------------------------------------------- /Firefox/images/noposter2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/noposter2.png -------------------------------------------------------------------------------- /Firefox/images/noposter3.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/noposter3.jpeg -------------------------------------------------------------------------------- /Firefox/images/onInstall1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/onInstall1.png -------------------------------------------------------------------------------- /Firefox/images/onInstall2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/onInstall2.png -------------------------------------------------------------------------------- /Firefox/images/onInstall3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/onInstall3.png -------------------------------------------------------------------------------- /Firefox/images/popcorn (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/popcorn (1).png -------------------------------------------------------------------------------- /Firefox/images/popcorn (2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/popcorn (2).png -------------------------------------------------------------------------------- /Firefox/images/popcorn-box.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/popcorn-box.png -------------------------------------------------------------------------------- /Firefox/images/popcorn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/popcorn.png -------------------------------------------------------------------------------- /Firefox/images/ratingStar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/ratingStar.png -------------------------------------------------------------------------------- /Firefox/images/sports/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/sports/.DS_Store -------------------------------------------------------------------------------- /Firefox/images/sports/NFL/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/sports/NFL/.DS_Store -------------------------------------------------------------------------------- /Firefox/images/sports/NFL/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/sports/NFL/1.png -------------------------------------------------------------------------------- /Firefox/images/sports/NFL/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/sports/NFL/10.png -------------------------------------------------------------------------------- /Firefox/images/sports/NFL/11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/sports/NFL/11.png -------------------------------------------------------------------------------- /Firefox/images/sports/NFL/12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/sports/NFL/12.png -------------------------------------------------------------------------------- /Firefox/images/sports/NFL/13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/sports/NFL/13.png -------------------------------------------------------------------------------- /Firefox/images/sports/NFL/14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/sports/NFL/14.png -------------------------------------------------------------------------------- /Firefox/images/sports/NFL/15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/sports/NFL/15.png -------------------------------------------------------------------------------- /Firefox/images/sports/NFL/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/sports/NFL/16.png -------------------------------------------------------------------------------- /Firefox/images/sports/NFL/17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/sports/NFL/17.png -------------------------------------------------------------------------------- /Firefox/images/sports/NFL/18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/sports/NFL/18.png -------------------------------------------------------------------------------- /Firefox/images/sports/NFL/19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/sports/NFL/19.png -------------------------------------------------------------------------------- /Firefox/images/sports/NFL/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/sports/NFL/2.png -------------------------------------------------------------------------------- /Firefox/images/sports/NFL/20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/sports/NFL/20.png -------------------------------------------------------------------------------- /Firefox/images/sports/NFL/21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/sports/NFL/21.png -------------------------------------------------------------------------------- /Firefox/images/sports/NFL/22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/sports/NFL/22.png -------------------------------------------------------------------------------- /Firefox/images/sports/NFL/23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/sports/NFL/23.png -------------------------------------------------------------------------------- /Firefox/images/sports/NFL/24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/sports/NFL/24.png -------------------------------------------------------------------------------- /Firefox/images/sports/NFL/25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/sports/NFL/25.png -------------------------------------------------------------------------------- /Firefox/images/sports/NFL/26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/sports/NFL/26.png -------------------------------------------------------------------------------- /Firefox/images/sports/NFL/27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/sports/NFL/27.png -------------------------------------------------------------------------------- /Firefox/images/sports/NFL/28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/sports/NFL/28.png -------------------------------------------------------------------------------- /Firefox/images/sports/NFL/29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/sports/NFL/29.png -------------------------------------------------------------------------------- /Firefox/images/sports/NFL/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/sports/NFL/3.png -------------------------------------------------------------------------------- /Firefox/images/sports/NFL/30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/sports/NFL/30.png -------------------------------------------------------------------------------- /Firefox/images/sports/NFL/33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/sports/NFL/33.png -------------------------------------------------------------------------------- /Firefox/images/sports/NFL/34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/sports/NFL/34.png -------------------------------------------------------------------------------- /Firefox/images/sports/NFL/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/sports/NFL/4.png -------------------------------------------------------------------------------- /Firefox/images/sports/NFL/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/sports/NFL/5.png -------------------------------------------------------------------------------- /Firefox/images/sports/NFL/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/sports/NFL/6.png -------------------------------------------------------------------------------- /Firefox/images/sports/NFL/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/sports/NFL/7.png -------------------------------------------------------------------------------- /Firefox/images/sports/NFL/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/sports/NFL/8.png -------------------------------------------------------------------------------- /Firefox/images/sports/NFL/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/sports/NFL/9.png -------------------------------------------------------------------------------- /Firefox/images/sports/NFL/NFL.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/sports/NFL/NFL.jpg -------------------------------------------------------------------------------- /Firefox/images/winLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/images/winLogo.png -------------------------------------------------------------------------------- /Firefox/js/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/js/.DS_Store -------------------------------------------------------------------------------- /Firefox/js/adstop.js: -------------------------------------------------------------------------------- 1 | const clear = (() => { 2 | const defined = v => v !== null && v !== undefined; 3 | const timeout = setInterval(() => { 4 | const ad = [...document.querySelectorAll('.ad-showing')][0]; 5 | if (defined(ad)) { 6 | const video = document.querySelector('video'); 7 | if (defined(video)) { 8 | video.currentTime = video.duration; 9 | } 10 | } 11 | }, 500); 12 | return function() { 13 | clearTimeout(timeout); 14 | } 15 | })(); 16 | clear(); 17 | /* 18 | var myScript = `const clear = (() => { 19 | const defined = v => v !== null && v !== undefined; 20 | const timeout = setInterval(() => { 21 | const ad = [...document.querySelectorAll('.ad-showing')][0]; 22 | if (defined(ad)) { 23 | const video = document.querySelector('video'); 24 | if (defined(video)) { 25 | video.currentTime = video.duration; 26 | } 27 | } 28 | }, 500); 29 | return function() { 30 | clearTimeout(timeout); 31 | } 32 | })(); 33 | //clear(); 34 | `; 35 | var scriptTag = document.createElement("script"); 36 | scriptTag.innerHTML = myScript; 37 | document.querySelector('head').appendChild(scriptTag);*/ -------------------------------------------------------------------------------- /Firefox/js/autocomplete.js: -------------------------------------------------------------------------------- 1 | const createAutoComplete = async({ root, renderOption, onOptionSelect, inputValue, fetchData }) => { 2 | root.innerHTML = ` 3 |
4 | 5 |

LetMeWatch

6 |
7 | 8 | 13 | 27 | 31 | `; 32 | const popMovies = (await axios.get('https://api.themoviedb.org/3/movie/popular?api_key=04c908115dc6ff5e5aa3709b5a735393&language=en-US&page=1')).data.results; 33 | const popMoviesTwo = (await axios.get('https://api.themoviedb.org/3/movie/popular?api_key=04c908115dc6ff5e5aa3709b5a735393&language=en-US&page=2')).data.results; 34 | const popMoviesThree = (await axios.get('https://api.themoviedb.org/3/movie/popular?api_key=04c908115dc6ff5e5aa3709b5a735393&language=en-US&page=3')).data.results; 35 | const popShows = (await axios.get('https://api.themoviedb.org/3/tv/popular?api_key=04c908115dc6ff5e5aa3709b5a735393&language=en-US&page=1')).data.results; 36 | const popShowsTwo = (await axios.get('https://api.themoviedb.org/3/tv/popular?api_key=04c908115dc6ff5e5aa3709b5a735393&language=en-US&page=2')).data.results; 37 | const popShowsThree = (await axios.get('https://api.themoviedb.org/3/tv/popular?api_key=04c908115dc6ff5e5aa3709b5a735393&language=en-US&page=3')).data.results; 38 | // const popSports = (await fetch()) 39 | const input = root.querySelector('input'); 40 | const dropdown = root.querySelector('.dropdown'); 41 | const resultsWrapper = root.querySelector('.results'); 42 | for (let i = 0; i < 20; i++) { 43 | let currPM = popMovies[i]; 44 | let currPS = popShows[i]; 45 | 46 | const pmElem = document.createElement('a'); 47 | pmElem.classList.add('scrollmenu-item'); 48 | pmElem.innerHTML = ``; 49 | pmElem.addEventListener('click', () => { 50 | input.value = inputValue(currPM); 51 | document.querySelector('html').style.height = 'auto'; 52 | onOptionSelect(currPM); 53 | 54 | }); 55 | document.getElementById("pmScroll").appendChild(pmElem); 56 | 57 | const psElem = document.createElement('a'); 58 | psElem.classList.add('scrollmenu-item'); 59 | psElem.innerHTML = ``; 60 | psElem.addEventListener('click', () => { 61 | input.value = inputValue(currPS); 62 | document.querySelector('html').style.height = 'auto'; 63 | onOptionSelect(currPS); 64 | }); 65 | document.getElementById("psScroll").appendChild(psElem); 66 | } 67 | for (let i = 0; i < 20; i++) { 68 | let currPM = popMoviesTwo[i]; 69 | let currPS = popShowsTwo[i]; 70 | 71 | const pmElem = document.createElement('a'); 72 | pmElem.classList.add('scrollmenu-item'); 73 | pmElem.innerHTML = ``; 74 | pmElem.addEventListener('click', () => { 75 | input.value = inputValue(currPM); 76 | document.querySelector('html').style.height = 'auto'; 77 | onOptionSelect(currPM); 78 | 79 | }); 80 | document.getElementById("pmScroll").appendChild(pmElem); 81 | 82 | const psElem = document.createElement('a'); 83 | psElem.classList.add('scrollmenu-item'); 84 | psElem.innerHTML = ``; 85 | psElem.addEventListener('click', () => { 86 | input.value = inputValue(currPS); 87 | document.querySelector('html').style.height = 'auto'; 88 | onOptionSelect(currPS); 89 | }); 90 | document.getElementById("psScroll").appendChild(psElem); 91 | } 92 | for (let i = 0; i < 20; i++) { 93 | let currPM = popMoviesThree[i]; 94 | let currPS = popShowsThree[i]; 95 | 96 | const pmElem = document.createElement('a'); 97 | pmElem.classList.add('scrollmenu-item'); 98 | pmElem.innerHTML = ``; 99 | pmElem.addEventListener('click', () => { 100 | input.value = inputValue(currPM); 101 | document.querySelector('html').style.height = 'auto'; 102 | onOptionSelect(currPM); 103 | 104 | }); 105 | document.getElementById("pmScroll").appendChild(pmElem); 106 | 107 | const psElem = document.createElement('a'); 108 | psElem.classList.add('scrollmenu-item'); 109 | psElem.innerHTML = ``; 110 | psElem.addEventListener('click', () => { 111 | input.value = inputValue(currPS); 112 | document.querySelector('html').style.height = 'auto'; 113 | onOptionSelect(currPS); 114 | }); 115 | document.getElementById("psScroll").appendChild(psElem); 116 | } 117 | 118 | //SPORTS - NFL 119 | /*const spElem = document.createElement('a'); 120 | spElem.classList.add('scrollmenu-item'); 121 | spElem.innerHTML = ``; 122 | spElem.addEventListener('click', () => { 123 | document.querySelector('#autocomplete').style.display = 'none'; 124 | document.querySelector('#summary').style.display = 'block'; 125 | document.querySelector('#summary').innerHTML = ''; 126 | //setTemplate("nfl", 001, document.querySelector('#summary'), null); 127 | onSportSelect("NFL"); 128 | }); 129 | document.getElementById("spScroll").appendChild(spElem);*/ 130 | 131 | 132 | 133 | document.getElementById("popMovies").style.display = 'block'; 134 | let movieSugg = document.getElementById("movieSuggButt"); 135 | let tvSugg = document.getElementById("tvSuggButt"); 136 | 137 | tvSugg.style.backgroundColor = 'white'; 138 | tvSugg.style.color = 'black'; 139 | //let sportsSugg = document.getElementById("sportsSuggButt"); 140 | 141 | movieSugg.addEventListener('click', () => { 142 | document.getElementById("pmScroll").style.display = 'block'; 143 | document.getElementById("psScroll").style.display = 'none'; 144 | document.getElementById("spScroll").style.display = 'none'; 145 | movieSugg.style.backgroundColor = 'white'; 146 | movieSugg.style.color = 'black'; 147 | tvSugg.style.backgroundColor = 'black'; 148 | tvSugg.style.color = 'white'; 149 | sportsSugg.style.backgroundColor = 'black'; 150 | sportsSugg.style.color = 'white'; 151 | }); 152 | tvSugg.addEventListener('click', () => { 153 | document.getElementById("pmScroll").style.display = 'none'; 154 | document.getElementById("spScroll").style.display = 'none'; 155 | document.getElementById("psScroll").style.display = 'block'; 156 | tvSugg.style.backgroundColor = 'white'; 157 | tvSugg.style.color = 'black'; 158 | movieSugg.style.backgroundColor = 'black'; 159 | movieSugg.style.color = 'white'; 160 | sportsSugg.style.backgroundColor = 'black'; 161 | sportsSugg.style.color = 'white'; 162 | }); 163 | /* 164 | sportsSugg.addEventListener('click', () => { 165 | document.getElementById("pmScroll").style.display = 'none'; 166 | document.getElementById("psScroll").style.display = 'none'; 167 | document.getElementById("spScroll").style.display = 'block'; 168 | sportsSugg.style.backgroundColor = 'white'; 169 | sportsSugg.style.color = 'black'; 170 | movieSugg.style.backgroundColor = 'black'; 171 | movieSugg.style.color = 'white'; 172 | tvSugg.style.backgroundColor = 'black'; 173 | tvSugg.style.color = 'white'; 174 | });*/ 175 | //document.getElementById("popShows").style.display = 'block'; 176 | 177 | const onInput = async event => { 178 | const items = await fetchData(event.target.value); 179 | console.log(document.activeElement.className); 180 | if (!items.length) { 181 | document.querySelector('.dropdown-menu').style.display = 'none'; 182 | document.querySelector('html').style.height = 'auto'; 183 | document.querySelector('#summary').innerHTML = ''; 184 | document.getElementById("popMovies").style.display = 'block'; 185 | document.getElementById("autocomplete").style.height = 'unset'; 186 | 187 | //document.getElementById("popShows").style.display = 'block'; 188 | //document.getElementById("pmScroll").scrollLeft = 0; 189 | //document.getElementById("psScroll").scrollLeft = 0; 190 | return; 191 | } else { 192 | document.querySelector('.dropdown-menu').style.display = 'block'; 193 | document.querySelector('html').style.height = '100%'; 194 | document.getElementById("popMovies").style.display = 'none'; 195 | document.getElementById("autocomplete").style.height = '530px'; 196 | //document.getElementById("popShows").style.display = 'none'; 197 | //document.querySelector('.results').scrollTop = 0; 198 | } 199 | resultsWrapper.innerHTML = ''; 200 | dropdown.classList.add('is-active'); 201 | for (let item of items) { 202 | const option = document.createElement('a'); 203 | option.classList.add('dropdown-item'); 204 | option.innerHTML = renderOption(item); 205 | option.addEventListener('click', () => { 206 | //dropdown.classList.remove('is-active'); 207 | input.value = inputValue(item); 208 | document.querySelector('html').style.height = 'auto'; 209 | onOptionSelect(item); 210 | }); 211 | option.addEventListener('keydown', event => { 212 | 213 | console.log(event.key); 214 | 215 | if (event.key === "ArrowDown") { 216 | event.preventDefault(); 217 | var currActive = document.activeElement; 218 | if (currActive.nextElementSibling) { 219 | currActive.nextElementSibling.focus(); 220 | } else { 221 | input.focus(); 222 | } 223 | } else if (event.key === "ArrowUp") { 224 | event.preventDefault(); 225 | var currActive = document.activeElement; 226 | if (currActive.previousElementSibling) { 227 | console.log("prev sibling"); 228 | currActive.previousElementSibling.focus(); 229 | } else { 230 | input.focus(); 231 | } 232 | } else if (event.key === "Enter") { 233 | event.preventDefault(); 234 | dropdown.classList.remove('is-active'); 235 | input.value = inputValue(item); 236 | document.querySelector('html').style.height = 'auto'; 237 | onOptionSelect(item); 238 | } else { 239 | event.preventDefault(); 240 | if (isLetter(event.key) || isNumeric(event.key)) { 241 | input.value += event.key; 242 | } 243 | input.focus(); 244 | } 245 | }); 246 | option.setAttribute('tabindex', 0); 247 | resultsWrapper.appendChild(option); 248 | } 249 | 250 | function isLetter(str) { 251 | return str.length === 1 && str.match(/[a-z]/i); 252 | } 253 | 254 | function isNumeric(str) { 255 | if (typeof str != "string") return false // we only process strings! 256 | return !isNaN(str) && // use type coercion to parse the _entirety_ of the string (`parseFloat` alone does not do this)... 257 | !isNaN(parseFloat(str)) // ...and ensure strings of whitespace fail 258 | } 259 | input.addEventListener('keydown', event => { 260 | if (event.key === "ArrowDown") { 261 | event.preventDefault(); 262 | console.log(event.key); 263 | resultsWrapper.firstElementChild.focus(); 264 | } else if (event.key === "ArrowUp") { 265 | event.preventDefault(); 266 | console.log(event.key); 267 | resultsWrapper.lastElementChild.focus(); 268 | } 269 | 270 | }); 271 | }; 272 | input.addEventListener('input', debounce(onInput, 50)); 273 | 274 | document.addEventListener('click', event => { 275 | if (!root.contains(event.target)) { 276 | dropdown.classList.remove('is-active'); 277 | } 278 | }); 279 | 280 | }; 281 | 282 | function loadStored(cbMedia) { 283 | chrome.storage.local.get(['savedPopMovies', 'savedPopShows', 'pmArr', 'psArr'], cbMedia); 284 | } -------------------------------------------------------------------------------- /Firefox/js/background.js: -------------------------------------------------------------------------------- 1 | chrome.runtime.onInstalled.addListener((details) => { 2 | const currentVersion = chrome.runtime.getManifest().version; 3 | const previousVersion = details.previousVersion; 4 | const reason = details.reason; 5 | /* 6 | chrome.storage.local.get("savedPopMovies", function(items) { 7 | getTrending(); 8 | }); 9 | chrome.alarms.get('getTrending', a => { 10 | if (!a){ 11 | chrome.alarms.create('getTrending', { periodInMinutes: 1440.0 }); 12 | } 13 | }); 14 | console.log('Previous Version: ${previousVersion }') 15 | console.log('Current Version: ${currentVersion }') 16 | */ 17 | 18 | switch (reason) { 19 | case 'install': 20 | console.log('New User installed the extension.') 21 | chrome.tabs.create({ url: chrome.runtime.getURL("https://letmewatch.app/install.html") }); 22 | break; 23 | case 'update': 24 | console.log('User has updated their extension.') 25 | break; 26 | case 'chrome_update': 27 | case 'shared_module_update': 28 | default: 29 | console.log('Other install events within the browser') 30 | break; 31 | } 32 | 33 | }); 34 | 35 | /*chrome.alarms.onAlarm.addListener(() => { 36 | chrome.storage.local.set({ 'savedSummary': document.getElementById("summary").outerHTML }); 37 | 38 | }); 39 | 40 | /*chrome.runtime.onStartup.addListener(() => { 41 | //chrome.storage.local.get("savedPopMovies", function(items) { 42 | getTrending(); 43 | //}); 44 | }); 45 | /* 46 | //const getTrending = async() => { 47 | function getTrending() { 48 | //const popMovies = (await axios.get('https://api.themoviedb.org/3/movie/popular?api_key=04c908115dc6ff5e5aa3709b5a735393&language=en-US&page=1')).data.results; 49 | // var popMovies; 50 | // var popShows; 51 | //var pmRes = 52 | //var psRes; 53 | console.log("getTrending"); 54 | fetch('https://api.themoviedb.org/3/movie/popular?api_key=04c908115dc6ff5e5aa3709b5a735393&language=en-US&page=1').then(r => r.json()).then(popMovies => { 55 | console.log(popMovies.results); 56 | var pmRes = popMovies.results; 57 | 58 | 59 | let popMovieStr = ` 60 | 97 | `; 98 | //var savedPM = $("#popMv").detach(); 99 | chrome.storage.local.set({ 'savedPopMovies': popMovieStr }); 100 | chrome.storage.local.set({ 'pmArr': pmRes }); 101 | //localStorage.setItem('savedPopMovies', popMovieStr); 102 | 103 | }); 104 | 105 | fetch('https://api.themoviedb.org/3/tv/popular?api_key=04c908115dc6ff5e5aa3709b5a735393&language=en-US&page=1').then(r => r.json()).then(popShows => { 106 | console.log(popShows.results); 107 | var psRes = popShows.results; 108 | let popShowStr = ` 109 | 141 | `; 142 | /*const popSh = document.createElement('article'); 143 | popSh.outerHTML = ` 144 | 147 | `; 148 | popSh.appendChild(psScrMen); 149 | chrome.storage.local.set({ 'savedPopShows': popShowStr }); 150 | chrome.storage.local.set({ 'psArr': psRes }); 151 | //localStorage.setItem('savedPopShows', popShowStr); 152 | }); 153 | //console.log("hi"); 154 | 155 | //var popMovies = await axios.get('https://api.themoviedb.org/3/movie/popular?api_key=04c908115dc6ff5e5aa3709b5a735393&language=en-US&page=1'); 156 | //var popShows = await axios.get('https://api.themoviedb.org/3/tv/popular?api_key=04c908115dc6ff5e5aa3709b5a735393&language=en-US&page=1'); 157 | /*console.log(popMovies.results); 158 | console.log(popShows.results); 159 | //};*/ -------------------------------------------------------------------------------- /Firefox/js/thankYou.js: -------------------------------------------------------------------------------- 1 | (function(i, s, o, g, r, a, m) { 2 | i['GoogleAnalyticsObject'] = r; 3 | i[r] = i[r] || function() { 4 | (i[r].q = i[r].q || []).push(arguments) 5 | }, i[r].l = 1 * new Date(); 6 | a = s.createElement(o), 7 | m = s.getElementsByTagName(o)[0]; 8 | a.async = 1; 9 | a.src = g; 10 | m.parentNode.insertBefore(a, m) 11 | })(window, document, 'script', './js/third-party/analytics.js', 'ga'); 12 | 13 | ga('create', 'UA-208644341-1', 'auto'); 14 | 15 | // Modifications: 16 | ga('set', 'checkProtocolTask', null); // Disables file protocol checking. 17 | ga('send', 'pageview', '/thankYou'); // Set page, avoiding rejection due to chrome-extension protocol -------------------------------------------------------------------------------- /Firefox/js/third-party/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdvithGopinath/LetMeWatch/dc149a1efcff069221fe809da99a5b8ea5686abd/Firefox/js/third-party/.DS_Store -------------------------------------------------------------------------------- /Firefox/js/third-party/axios.min.js: -------------------------------------------------------------------------------- 1 | /* axios v0.19.0 | (c) 2019 by Matt Zabriskie */ ! function(e, t) { "object" == typeof exports && "object" == typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define([], t) : "object" == typeof exports ? exports.axios = t() : e.axios = t() }(this, function() { 2 | return function(e) { 3 | function t(r) { if (n[r]) return n[r].exports; var o = n[r] = { exports: {}, id: r, loaded: !1 }; return e[r].call(o.exports, o, o.exports, t), o.loaded = !0, o.exports } var n = {}; return t.m = e, t.c = n, t.p = "", t(0) }([function(e, t, n) { e.exports = n(1) }, function(e, t, n) { "use strict"; 4 | 5 | function r(e) { var t = new i(e), 6 | n = s(i.prototype.request, t); return o.extend(n, i.prototype, t), o.extend(n, t), n } var o = n(2), 7 | s = n(3), 8 | i = n(5), 9 | a = n(22), 10 | u = n(11), 11 | c = r(u); 12 | c.Axios = i, c.create = function(e) { return r(a(c.defaults, e)) }, c.Cancel = n(23), c.CancelToken = n(24), c.isCancel = n(10), c.all = function(e) { return Promise.all(e) }, c.spread = n(25), e.exports = c, e.exports.default = c }, function(e, t, n) { "use strict"; 13 | 14 | function r(e) { return "[object Array]" === j.call(e) } 15 | 16 | function o(e) { return "[object ArrayBuffer]" === j.call(e) } 17 | 18 | function s(e) { return "undefined" != typeof FormData && e instanceof FormData } 19 | 20 | function i(e) { var t; return t = "undefined" != typeof ArrayBuffer && ArrayBuffer.isView ? ArrayBuffer.isView(e) : e && e.buffer && e.buffer instanceof ArrayBuffer } 21 | 22 | function a(e) { return "string" == typeof e } 23 | 24 | function u(e) { return "number" == typeof e } 25 | 26 | function c(e) { return "undefined" == typeof e } 27 | 28 | function f(e) { return null !== e && "object" == typeof e } 29 | 30 | function p(e) { return "[object Date]" === j.call(e) } 31 | 32 | function d(e) { return "[object File]" === j.call(e) } 33 | 34 | function l(e) { return "[object Blob]" === j.call(e) } 35 | 36 | function h(e) { return "[object Function]" === j.call(e) } 37 | 38 | function m(e) { return f(e) && h(e.pipe) } 39 | 40 | function y(e) { return "undefined" != typeof URLSearchParams && e instanceof URLSearchParams } 41 | 42 | function g(e) { return e.replace(/^\s*/, "").replace(/\s*$/, "") } 43 | 44 | function x() { return ("undefined" == typeof navigator || "ReactNative" !== navigator.product && "NativeScript" !== navigator.product && "NS" !== navigator.product) && ("undefined" != typeof window && "undefined" != typeof document) } 45 | 46 | function v(e, t) { if (null !== e && "undefined" != typeof e) 47 | if ("object" != typeof e && (e = [e]), r(e)) 48 | for (var n = 0, o = e.length; n < o; n++) t.call(null, e[n], n, e); 49 | else 50 | for (var s in e) Object.prototype.hasOwnProperty.call(e, s) && t.call(null, e[s], s, e) } 51 | 52 | function w() { 53 | function e(e, n) { "object" == typeof t[n] && "object" == typeof e ? t[n] = w(t[n], e) : t[n] = e } for (var t = {}, n = 0, r = arguments.length; n < r; n++) v(arguments[n], e); return t } 54 | 55 | function b() { 56 | function e(e, n) { "object" == typeof t[n] && "object" == typeof e ? t[n] = b(t[n], e) : "object" == typeof e ? t[n] = b({}, e) : t[n] = e } for (var t = {}, n = 0, r = arguments.length; n < r; n++) v(arguments[n], e); return t } 57 | 58 | function E(e, t, n) { return v(t, function(t, r) { n && "function" == typeof t ? e[r] = S(t, n) : e[r] = t }), e } var S = n(3), 59 | R = n(4), 60 | j = Object.prototype.toString; 61 | e.exports = { isArray: r, isArrayBuffer: o, isBuffer: R, isFormData: s, isArrayBufferView: i, isString: a, isNumber: u, isObject: f, isUndefined: c, isDate: p, isFile: d, isBlob: l, isFunction: h, isStream: m, isURLSearchParams: y, isStandardBrowserEnv: x, forEach: v, merge: w, deepMerge: b, extend: E, trim: g } }, function(e, t) { "use strict"; 62 | e.exports = function(e, t) { return function() { for (var n = new Array(arguments.length), r = 0; r < n.length; r++) n[r] = arguments[r]; return e.apply(t, n) } } }, function(e, t) { 63 | /*! 64 | * Determine if an object is a Buffer 65 | * 66 | * @author Feross Aboukhadijeh 67 | * @license MIT 68 | */ 69 | e.exports = function(e) { return null != e && null != e.constructor && "function" == typeof e.constructor.isBuffer && e.constructor.isBuffer(e) } 70 | }, function(e, t, n) { "use strict"; 71 | 72 | function r(e) { this.defaults = e, this.interceptors = { request: new i, response: new i } } var o = n(2), 73 | s = n(6), 74 | i = n(7), 75 | a = n(8), 76 | u = n(22); 77 | r.prototype.request = function(e) { "string" == typeof e ? (e = arguments[1] || {}, e.url = arguments[0]) : e = e || {}, e = u(this.defaults, e), e.method = e.method ? e.method.toLowerCase() : "get"; var t = [a, void 0], 78 | n = Promise.resolve(e); for (this.interceptors.request.forEach(function(e) { t.unshift(e.fulfilled, e.rejected) }), this.interceptors.response.forEach(function(e) { t.push(e.fulfilled, e.rejected) }); t.length;) n = n.then(t.shift(), t.shift()); return n }, r.prototype.getUri = function(e) { return e = u(this.defaults, e), s(e.url, e.params, e.paramsSerializer).replace(/^\?/, "") }, o.forEach(["delete", "get", "head", "options"], function(e) { r.prototype[e] = function(t, n) { return this.request(o.merge(n || {}, { method: e, url: t })) } }), o.forEach(["post", "put", "patch"], function(e) { r.prototype[e] = function(t, n, r) { return this.request(o.merge(r || {}, { method: e, url: t, data: n })) } }), e.exports = r }, function(e, t, n) { "use strict"; 79 | 80 | function r(e) { return encodeURIComponent(e).replace(/%40/gi, "@").replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, "+").replace(/%5B/gi, "[").replace(/%5D/gi, "]") } var o = n(2); 81 | e.exports = function(e, t, n) { if (!t) return e; var s; if (n) s = n(t); 82 | else if (o.isURLSearchParams(t)) s = t.toString(); 83 | else { var i = []; 84 | o.forEach(t, function(e, t) { null !== e && "undefined" != typeof e && (o.isArray(e) ? t += "[]" : e = [e], o.forEach(e, function(e) { o.isDate(e) ? e = e.toISOString() : o.isObject(e) && (e = JSON.stringify(e)), i.push(r(t) + "=" + r(e)) })) }), s = i.join("&") } if (s) { var a = e.indexOf("#"); 85 | a !== -1 && (e = e.slice(0, a)), e += (e.indexOf("?") === -1 ? "?" : "&") + s } return e } }, function(e, t, n) { "use strict"; 86 | 87 | function r() { this.handlers = [] } var o = n(2); 88 | r.prototype.use = function(e, t) { return this.handlers.push({ fulfilled: e, rejected: t }), this.handlers.length - 1 }, r.prototype.eject = function(e) { this.handlers[e] && (this.handlers[e] = null) }, r.prototype.forEach = function(e) { o.forEach(this.handlers, function(t) { null !== t && e(t) }) }, e.exports = r }, function(e, t, n) { "use strict"; 89 | 90 | function r(e) { e.cancelToken && e.cancelToken.throwIfRequested() } var o = n(2), 91 | s = n(9), 92 | i = n(10), 93 | a = n(11), 94 | u = n(20), 95 | c = n(21); 96 | e.exports = function(e) { r(e), e.baseURL && !u(e.url) && (e.url = c(e.baseURL, e.url)), e.headers = e.headers || {}, e.data = s(e.data, e.headers, e.transformRequest), e.headers = o.merge(e.headers.common || {}, e.headers[e.method] || {}, e.headers || {}), o.forEach(["delete", "get", "head", "post", "put", "patch", "common"], function(t) { delete e.headers[t] }); var t = e.adapter || a.adapter; return t(e).then(function(t) { return r(e), t.data = s(t.data, t.headers, e.transformResponse), t }, function(t) { return i(t) || (r(e), t && t.response && (t.response.data = s(t.response.data, t.response.headers, e.transformResponse))), Promise.reject(t) }) } }, function(e, t, n) { "use strict"; var r = n(2); 97 | e.exports = function(e, t, n) { return r.forEach(n, function(n) { e = n(e, t) }), e } }, function(e, t) { "use strict"; 98 | e.exports = function(e) { return !(!e || !e.__CANCEL__) } }, function(e, t, n) { "use strict"; 99 | 100 | function r(e, t) {!s.isUndefined(e) && s.isUndefined(e["Content-Type"]) && (e["Content-Type"] = t) } 101 | 102 | function o() { var e; return "undefined" != typeof process && "[object process]" === Object.prototype.toString.call(process) ? e = n(13) : "undefined" != typeof XMLHttpRequest && (e = n(13)), e } var s = n(2), 103 | i = n(12), 104 | a = { "Content-Type": "application/x-www-form-urlencoded" }, 105 | u = { adapter: o(), transformRequest: [function(e, t) { return i(t, "Accept"), i(t, "Content-Type"), s.isFormData(e) || s.isArrayBuffer(e) || s.isBuffer(e) || s.isStream(e) || s.isFile(e) || s.isBlob(e) ? e : s.isArrayBufferView(e) ? e.buffer : s.isURLSearchParams(e) ? (r(t, "application/x-www-form-urlencoded;charset=utf-8"), e.toString()) : s.isObject(e) ? (r(t, "application/json;charset=utf-8"), JSON.stringify(e)) : e }], transformResponse: [function(e) { if ("string" == typeof e) try { e = JSON.parse(e) } catch (e) {} 106 | return e }], timeout: 0, xsrfCookieName: "XSRF-TOKEN", xsrfHeaderName: "X-XSRF-TOKEN", maxContentLength: -1, validateStatus: function(e) { return e >= 200 && e < 300 } }; 107 | u.headers = { common: { Accept: "application/json, text/plain, */*" } }, s.forEach(["delete", "get", "head"], function(e) { u.headers[e] = {} }), s.forEach(["post", "put", "patch"], function(e) { u.headers[e] = s.merge(a) }), e.exports = u }, function(e, t, n) { "use strict"; var r = n(2); 108 | e.exports = function(e, t) { r.forEach(e, function(n, r) { r !== t && r.toUpperCase() === t.toUpperCase() && (e[t] = n, delete e[r]) }) } }, function(e, t, n) { "use strict"; var r = n(2), 109 | o = n(14), 110 | s = n(6), 111 | i = n(17), 112 | a = n(18), 113 | u = n(15); 114 | e.exports = function(e) { return new Promise(function(t, c) { var f = e.data, 115 | p = e.headers; 116 | r.isFormData(f) && delete p["Content-Type"]; var d = new XMLHttpRequest; if (e.auth) { var l = e.auth.username || "", 117 | h = e.auth.password || ""; 118 | p.Authorization = "Basic " + btoa(l + ":" + h) } if (d.open(e.method.toUpperCase(), s(e.url, e.params, e.paramsSerializer), !0), d.timeout = e.timeout, d.onreadystatechange = function() { if (d && 4 === d.readyState && (0 !== d.status || d.responseURL && 0 === d.responseURL.indexOf("file:"))) { var n = "getAllResponseHeaders" in d ? i(d.getAllResponseHeaders()) : null, 119 | r = e.responseType && "text" !== e.responseType ? d.response : d.responseText, 120 | s = { data: r, status: d.status, statusText: d.statusText, headers: n, config: e, request: d }; 121 | o(t, c, s), d = null } }, d.onabort = function() { d && (c(u("Request aborted", e, "ECONNABORTED", d)), d = null) }, d.onerror = function() { c(u("Network Error", e, null, d)), d = null }, d.ontimeout = function() { c(u("timeout of " + e.timeout + "ms exceeded", e, "ECONNABORTED", d)), d = null }, r.isStandardBrowserEnv()) { var m = n(19), 122 | y = (e.withCredentials || a(e.url)) && e.xsrfCookieName ? m.read(e.xsrfCookieName) : void 0; 123 | y && (p[e.xsrfHeaderName] = y) } if ("setRequestHeader" in d && r.forEach(p, function(e, t) { "undefined" == typeof f && "content-type" === t.toLowerCase() ? delete p[t] : d.setRequestHeader(t, e) }), e.withCredentials && (d.withCredentials = !0), e.responseType) try { d.responseType = e.responseType } catch (t) { if ("json" !== e.responseType) throw t } 124 | "function" == typeof e.onDownloadProgress && d.addEventListener("progress", e.onDownloadProgress), "function" == typeof e.onUploadProgress && d.upload && d.upload.addEventListener("progress", e.onUploadProgress), e.cancelToken && e.cancelToken.promise.then(function(e) { d && (d.abort(), c(e), d = null) }), void 0 === f && (f = null), d.send(f) }) } }, function(e, t, n) { "use strict"; var r = n(15); 125 | e.exports = function(e, t, n) { var o = n.config.validateStatus;!o || o(n.status) ? e(n) : t(r("Request failed with status code " + n.status, n.config, null, n.request, n)) } }, function(e, t, n) { "use strict"; var r = n(16); 126 | e.exports = function(e, t, n, o, s) { var i = new Error(e); return r(i, t, n, o, s) } }, function(e, t) { "use strict"; 127 | e.exports = function(e, t, n, r, o) { return e.config = t, n && (e.code = n), e.request = r, e.response = o, e.isAxiosError = !0, e.toJSON = function() { return { message: this.message, name: this.name, description: this.description, number: this.number, fileName: this.fileName, lineNumber: this.lineNumber, columnNumber: this.columnNumber, stack: this.stack, config: this.config, code: this.code } }, e } }, function(e, t, n) { "use strict"; var r = n(2), 128 | o = ["age", "authorization", "content-length", "content-type", "etag", "expires", "from", "host", "if-modified-since", "if-unmodified-since", "last-modified", "location", "max-forwards", "proxy-authorization", "referer", "retry-after", "user-agent"]; 129 | e.exports = function(e) { var t, n, s, i = {}; return e ? (r.forEach(e.split("\n"), function(e) { if (s = e.indexOf(":"), t = r.trim(e.substr(0, s)).toLowerCase(), n = r.trim(e.substr(s + 1)), t) { if (i[t] && o.indexOf(t) >= 0) return; "set-cookie" === t ? i[t] = (i[t] ? i[t] : []).concat([n]) : i[t] = i[t] ? i[t] + ", " + n : n } }), i) : i } }, function(e, t, n) { "use strict"; var r = n(2); 130 | e.exports = r.isStandardBrowserEnv() ? function() { 131 | function e(e) { var t = e; return n && (o.setAttribute("href", t), t = o.href), o.setAttribute("href", t), { href: o.href, protocol: o.protocol ? o.protocol.replace(/:$/, "") : "", host: o.host, search: o.search ? o.search.replace(/^\?/, "") : "", hash: o.hash ? o.hash.replace(/^#/, "") : "", hostname: o.hostname, port: o.port, pathname: "/" === o.pathname.charAt(0) ? o.pathname : "/" + o.pathname } } var t, n = /(msie|trident)/i.test(navigator.userAgent), 132 | o = document.createElement("a"); return t = e(window.location.href), 133 | function(n) { var o = r.isString(n) ? e(n) : n; return o.protocol === t.protocol && o.host === t.host } }() : function() { return function() { return !0 } }() }, function(e, t, n) { "use strict"; var r = n(2); 134 | e.exports = r.isStandardBrowserEnv() ? function() { return { write: function(e, t, n, o, s, i) { var a = []; 135 | a.push(e + "=" + encodeURIComponent(t)), r.isNumber(n) && a.push("expires=" + new Date(n).toGMTString()), r.isString(o) && a.push("path=" + o), r.isString(s) && a.push("domain=" + s), i === !0 && a.push("secure"), document.cookie = a.join("; ") }, read: function(e) { var t = document.cookie.match(new RegExp("(^|;\\s*)(" + e + ")=([^;]*)")); return t ? decodeURIComponent(t[3]) : null }, remove: function(e) { this.write(e, "", Date.now() - 864e5) } } }() : function() { return { write: function() {}, read: function() { return null }, remove: function() {} } }() }, function(e, t) { "use strict"; 136 | e.exports = function(e) { return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e) } }, function(e, t) { "use strict"; 137 | e.exports = function(e, t) { return t ? e.replace(/\/+$/, "") + "/" + t.replace(/^\/+/, "") : e } }, function(e, t, n) { "use strict"; var r = n(2); 138 | e.exports = function(e, t) { t = t || {}; var n = {}; return r.forEach(["url", "method", "params", "data"], function(e) { "undefined" != typeof t[e] && (n[e] = t[e]) }), r.forEach(["headers", "auth", "proxy"], function(o) { r.isObject(t[o]) ? n[o] = r.deepMerge(e[o], t[o]) : "undefined" != typeof t[o] ? n[o] = t[o] : r.isObject(e[o]) ? n[o] = r.deepMerge(e[o]) : "undefined" != typeof e[o] && (n[o] = e[o]) }), r.forEach(["baseURL", "transformRequest", "transformResponse", "paramsSerializer", "timeout", "withCredentials", "adapter", "responseType", "xsrfCookieName", "xsrfHeaderName", "onUploadProgress", "onDownloadProgress", "maxContentLength", "validateStatus", "maxRedirects", "httpAgent", "httpsAgent", "cancelToken", "socketPath"], function(r) { "undefined" != typeof t[r] ? n[r] = t[r] : "undefined" != typeof e[r] && (n[r] = e[r]) }), n } }, function(e, t) { "use strict"; 139 | 140 | function n(e) { this.message = e } 141 | n.prototype.toString = function() { return "Cancel" + (this.message ? ": " + this.message : "") }, n.prototype.__CANCEL__ = !0, e.exports = n }, function(e, t, n) { "use strict"; 142 | 143 | function r(e) { if ("function" != typeof e) throw new TypeError("executor must be a function."); var t; 144 | this.promise = new Promise(function(e) { t = e }); var n = this; 145 | e(function(e) { n.reason || (n.reason = new o(e), t(n.reason)) }) } var o = n(23); 146 | r.prototype.throwIfRequested = function() { if (this.reason) throw this.reason }, r.source = function() { var e, t = new r(function(t) { e = t }); return { token: t, cancel: e } }, e.exports = r }, function(e, t) { "use strict"; 147 | e.exports = function(e) { return function(t) { return e.apply(null, t) } } }]) 148 | }); 149 | //# sourceMappingURL=axios.min.map -------------------------------------------------------------------------------- /Firefox/js/third-party/main.min.js: -------------------------------------------------------------------------------- 1 | ! function() { 2 | const t = window, 3 | e = document.documentElement; 4 | if (e.classList.remove("no-js"), e.classList.add("js"), document.body.classList.contains("has-animations")) { 5 | (window.sr = ScrollReveal()).reveal(".hero-title, .hero-paragraph, .hero-form", { duration: 1e3, distance: "40px", easing: "cubic-bezier(0.5, -0.01, 0, 1.005)", origin: "bottom", interval: 150 }) 6 | } 7 | const s = document.querySelectorAll(".is-moving-object"); 8 | let n = 0, 9 | i = 0, 10 | a = 0, 11 | o = 0, 12 | r = 0, 13 | l = e.clientWidth, 14 | c = e.clientHeight; 15 | s && t.addEventListener("mousemove", function(t, e) { 16 | let s = null, 17 | n = e; 18 | return (...e) => { 19 | let i = Date.now(); 20 | (!s || i - s >= n) && (s = i, t.apply(this, e)) 21 | } 22 | }(function(e) { 23 | ! function(e, s) { 24 | n = e.pageX, i = e.pageY, a = t.scrollY, o = l / 2 - n, r = c / 2 - (i - a); 25 | for (let t = 0; t < s.length; t++) { 26 | const e = s[t].getAttribute("data-translating-factor") || 20, 27 | n = s[t].getAttribute("data-rotating-factor") || 20, 28 | i = s[t].getAttribute("data-perspective") || 500; 29 | let a = []; 30 | s[t].classList.contains("is-translating") && a.push("translate(" + o / e + "px, " + r / e + "px)"), s[t].classList.contains("is-rotating") && a.push("perspective(" + i + "px) rotateY(" + -o / n + "deg) rotateX(" + r / n + "deg)"), (s[t].classList.contains("is-translating") || s[t].classList.contains("is-rotating")) && (a = a.join(" "), s[t].style.transform = a, s[t].style.transition = "transform 1s ease-out", s[t].style.transformStyle = "preserve-3d", s[t].style.backfaceVisibility = "hidden") 31 | } 32 | }(e, s) 33 | }, 150)) 34 | }(); -------------------------------------------------------------------------------- /Firefox/js/utils.js: -------------------------------------------------------------------------------- 1 | const debounce = (func, delay = 1000) => { 2 | let timeoutId; 3 | return (...args) => { 4 | if (timeoutId) { 5 | clearTimeout(timeoutId); 6 | } 7 | timeoutId = setTimeout(() => { 8 | func.apply(null, args); 9 | }, delay); 10 | }; 11 | }; -------------------------------------------------------------------------------- /Firefox/js/viewPage.js: -------------------------------------------------------------------------------- 1 | let twoEmbUrl = localStorage.getItem('twoEmbUrl'); 2 | let vidSrcUrl = localStorage.getItem('vidSrcUrl'); 3 | let dbgoUrl = localStorage.getItem('dbgoUrl'); 4 | let firesonicUrl = localStorage.getItem('firesonicUrl'); 5 | let trailersToUrl = localStorage.getItem('trailersToUrl'); 6 | 7 | let vidTitle = localStorage.getItem('vidTitle'); 8 | let titleVideo = document.getElementById("titleVideo"); 9 | console.log(trailersToUrl); 10 | 11 | titleVideo.removeAttribute('sandbox'); 12 | titleVideo.contentWindow.location.href = twoEmbUrl; 13 | document.title = vidTitle; 14 | 15 | let vidSrcButt = document.getElementById("vidSrcButton"); 16 | let dbgoButt = document.getElementById("dbgoButton"); 17 | let twoEmbButt = document.getElementById("twoEmbButton"); 18 | let firesonicButton = document.getElementById("firesonicButton"); 19 | let trailersToButton = document.getElementById("trailersToButton"); 20 | let serverButt = document.getElementById("serversButton"); 21 | 22 | /*let serverOptions = document.getElementById("serverOptions"); 23 | serverButt.addEventListener('click', () => { 24 | if (serverOptions.style.display == "none") { 25 | serverOptions.style.display = "block"; 26 | } else { 27 | serverOptions.style.display = "none"; 28 | } 29 | }); 30 | */ 31 | vidSrcButt.addEventListener('click', () => { 32 | titleVideo.style.display = "none"; 33 | 34 | titleVideo.removeAttribute('sandbox'); 35 | titleVideo.src = vidSrcUrl; 36 | titleVideo.contentWindow.location.href = vidSrcUrl; 37 | serverButt.innerText = "VIDSRC "; 38 | titleVideo.style.left = "0px"; 39 | titleVideo.style.top = "-50px"; 40 | titleVideo.style.height = "105%"; 41 | 42 | titleVideo.style.display = "unset"; 43 | 44 | 45 | // serverOptions.style.display = "none"; 46 | }); 47 | 48 | dbgoButt.addEventListener('click', () => { 49 | //titleVideo.removeAttribute('sandbox'); 50 | titleVideo.style.display = "none"; 51 | 52 | titleVideo.setAttribute('sandbox', "allow-pointer-lock allow-same-origin allow-scripts allow-top-navigation allow-presentation"); 53 | 54 | 55 | 56 | titleVideo.src = dbgoUrl; 57 | titleVideo.contentWindow.location.href = dbgoUrl; 58 | serverButt.innerText = "DBOGO "; 59 | titleVideo.style.top = "4px"; 60 | titleVideo.style.left = "0px"; 61 | titleVideo.style.height = "100%"; 62 | titleVideo.style.display = "unset"; 63 | 64 | 65 | //serverOptions.style.display = "none"; 66 | }); 67 | 68 | trailersToButton.addEventListener('click', () => { 69 | titleVideo.style.display = "none"; 70 | //titleVideo.removeAttribute('sandbox'); 71 | //titleVideo.setAttribute('sandbox', "allow-pointer-lock allow-same-origin allow-scripts allow-top-navigation"); 72 | titleVideo.setAttribute('sandbox', "allow-same-origin allow-scripts"); 73 | 74 | //titleVideo.src = trailersToUrl; 75 | 76 | /*if ('app' !== $('body').attr('id')) { 77 | window.setTimeout(function() { 78 | window.top.location.href = 'https://Trailers.to/video/test-user/imdb/tt7126948'; 79 | }, 5000); 80 | }*/ 81 | 82 | titleVideo.contentWindow.location.href = trailersToUrl; //"https://Trailers.to/video/test-user/imdb/tt7126948"; 83 | //serverButt.innerHTML = ``; 84 | //serverButt.innerText = "TRAILERS.TO"; 85 | serverButt.innerHTML = ` 86 | TRAILERS.TO 87 | `; 88 | titleVideo.style.top = "33px"; 89 | titleVideo.style.left = "0px"; 90 | titleVideo.style.height = "100%"; 91 | 92 | titleVideo.style.display = "unset"; 93 | 94 | //serverButt.style.width = "175px"; 95 | //serverOptions.style.display = "none"; 96 | }); 97 | 98 | twoEmbButt.addEventListener('click', () => { 99 | titleVideo.style.display = "none"; 100 | 101 | titleVideo.removeAttribute('sandbox'); 102 | 103 | titleVideo.src = twoEmbUrl; 104 | titleVideo.contentWindow.location.href = twoEmbUrl; 105 | 106 | serverButt.innerHTML = ` 107 | 2EMBED 108 | `; 109 | titleVideo.style.top = "-2px"; 110 | titleVideo.style.left = "0px"; 111 | titleVideo.style.height = "100%"; 112 | 113 | titleVideo.style.display = "unset"; 114 | 115 | //serverOptions.style.display = "none"; 116 | }); 117 | 118 | firesonicButton.addEventListener('click', () => { 119 | titleVideo.style.display = "none"; 120 | 121 | titleVideo.src = firesonicUrl; 122 | titleVideo.contentWindow.location.href = firesonicUrl; 123 | serverButt.innerText = "FIRESONIC "; 124 | titleVideo.style.top = "0px"; 125 | 126 | titleVideo.style.left = "0px"; 127 | titleVideo.style.height = "100%"; 128 | titleVideo.style.display = "unset"; 129 | 130 | // serverOptions.style.display = "none"; 131 | }); -------------------------------------------------------------------------------- /Firefox/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest_version": 2, 3 | "name": "LetMeWatch", 4 | "version": "1.86", 5 | "description": "LetMeWatch: A seamless watching experience in a Chrome extension.", 6 | "permissions": [ 7 | "storage", 8 | "tabs", 9 | "activeTab", 10 | "webNavigation" 11 | ], 12 | "background": { 13 | "scripts": ["/js/background.js"] 14 | }, 15 | "browser_action": { 16 | "default_popup": "popup.html", 17 | "default_icon": "/images/LMWlogo.png" 18 | }, 19 | 20 | "icons": { 21 | "48": "/images/LMWLogo48.png", 22 | "96": "/images/LMWLogo96.png" 23 | }, 24 | "commands": { 25 | "_execute_browser_action": { 26 | "suggested_key": { 27 | "default": "Alt+M" 28 | } 29 | } 30 | } 31 | } -------------------------------------------------------------------------------- /Firefox/onInstall.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 11 | 12 | 13 | 14 | 15 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 51 | 52 | 53 | 54 | 55 | 56 | 90 | 91 |
92 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /Firefox/popup.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 20 | 21 | 22 | 23 |
24 |
25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /Firefox/viewPage.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 41 | 42 | 53 | 54 | 67 | 68 | 69 | nn 70 | 71 | 72 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # LetMeWatch 2 | **Update: LetMeWatch was removed from the Chrome Web Store a while ago (for obvious reasons). As such, I've updated the [installation section](#installation) with instructions on how to manually add LetMeWatch to your Chrome browser.** 3 | 4 | ### A seamless watching experience contained in a browser extension 5 | 6 | LetMeWatch is a browser extension that offers end-to-end movie/TV show streaming, maximizing ease of use and convenience by sifting through a multitude of free streaming services and locating the highest-caliber video that is available. You can learn more at our website: [letmewatch.app](https://letmewatch.app). 7 | 8 | ## Features 9 | 10 | * All your favorite movies and TV Shows, only a few clicks away 11 | * More titles than Netflix, Hulu, Disney+, or HBOMax 12 | * Unlimited HD-quality content at your fingertips 13 | * Absolutely free, forever 14 | 15 | ## Installation 16 | 17 | ~~LetMeWatch is currently available for all Chromium browsers (Chrome, Edge, Opera, etc.) at the official [Chrome webstore](https://chrome.google.com/webstore/detail/letmewatch/lalbidfnmdmafompodhbmppbpakipaah), as well as for Mozilla Firefox at the [Firefox Add-ons Store](https://addons.mozilla.org/en-US/firefox/).~~ 18 | 19 | To manually install LetMeWatch, do the following: 20 | 1. Download [LetMeWatch_Build.zip](https://drive.google.com/file/d/1TXNoLgcCsr_TCYbHtFjLXJ6cnpKnXmRX/view?usp=drive_link) 21 | 2. Unzip the file. 22 | 3. Go to [chrome://extensions](chrome://extensions) and enable Developer mode in the top right. 23 | 4. Select Load unpacked in the top left, and select the LetMeWatch_Build folder that was unzipped. 24 | 25 | After installing LetMeWatch, press Alt+M (Windows) or Opt+M (Mac) to discover a supreme viewing experience! 26 | 27 | ## Usage 28 | 29 | ![Alt text](/Chrome/images/web_git_sc1.png) 30 | ![Alt text](/Chrome/images/web_git_sc2.png) 31 | 32 | ## Feedback 33 | 34 | If you come across any bugs/issues, or have any feedback whatsoever, it would be greatly appreciated if you logged it as a ticket in Issues. 35 | 36 | ## Donations 37 | 38 | LetMeWatch will be free forever, but donations are always appreciated :) If you liked LetMeWatch, you can help support it and future projects here: 39 | 40 | [BuyMeACoffee](https://www.buymeacoffee.com/AddyCo) [CashApp](https://cash.app/$AddyCo1) [Venmo](https://venmo.com/AddyCo?txn=pay¬e=LetMeWatch%20donation) 41 | 42 | Thank you for checking out LetMeWatch! 43 | --------------------------------------------------------------------------------