1 2//============================================//POSTER DIMENSION 3 4function posterDimension(element, pc=0) { 5 6 if ( $(element).attr('data-poster-updated') != 1 ) { 7 8 //return; 9 //=========// 10 var img = new Image(); 11 12 var original_data_w = $(element).attr('data-w'); 13 var original_data_h = $(element).attr('data-h'); 14 15 var original_data_id = $(element).attr('data-post-id'); 16 17 18 img.src = $(element).attr('data-poster'); 19 20 21 img.onload = function(element) { 22 23 if ( this.width != original_data_w && this.height != original_data_h ) { 24 25 //==========// 26 $.ajax({ 27 async: true, 28 type: "get", 29 data: "post_id="+original_data_id, 30 url: "/fallback_backend.php", 31 success: function( response ) { 32 33 var data = JSON.parse(response); 34 35 if (data.screenshots == null) { 36 37 return; 38 39 } 40 41 (async () => { 42 43 for(var i=0;i<data.screenshots.length;i++){ 44 45 await screenLoad(original_data_id, data.screenshots[i], original_data_w, original_data_h); 46 47 if ( $('[data-post-id="'+original_data_id+'"]').attr('data-poster-fallbacked') == 1 ) { break; } 48 49 } 50 51 if(pc==1 && $('[data-post-id="'+original_data_id+'"]').attr('data-poster-fallbacked') != 1) { await loadBrokenPoster(original_data_id); } 52 53 })(); 54 //==============// 55 56 } 57 58 }); 59 //==========// 60 61 } 62 63 } 64 65 66 img.onerror = function(element) { 67 //==========// 68 $.ajax({ 69 async: true, 70 type: "get", 71 data: "post_id="+original_data_id, 72 url: "/fallback_backend.php", 73 success: function( response ) { 74 75 var data = JSON.parse(response); 76 77 if (data.screenshots == null) { 78 79 return; 80 81 } 82 83 (async () => { 84 85 for(var i=0;i<data.screenshots.length;i++){ 86 87 await screenLoad(original_data_id, data.screenshots[i], original_data_w, original_data_h); 88 89 if ( $('[data-post-id="'+original_data_id+'"]').attr('data-poster-fallbacked') == 1 ) { break; } 90 91 } 92 93 if(pc==1 && $('[data-post-id="'+original_data_id+'"]').attr('data-poster-fallbacked') != 1) { await loadBrokenPoster(original_data_id); } 94 95 })(); 96 //==============// 97 98 } 99 100 }); 101 //==========// 102 103 }; 104 //=========// 105 $(element).attr('data-poster-updated', 1); 106 //=========// 107 108 } 109 110} 111//==============// 112function posterFallback(element, pc=0) { 113 114 if ( $(element).attr('data-poster-updated') != 1 ) { 115 116 117 //=========// 118 var img = new Image(); 119 120 var original_data_w = $(element).attr('data-w'); 121 var original_data_h = $(element).attr('data-h'); 122 123 var original_data_id = $(element).attr('data-post-id'); 124 125 var origElement = element; 126 127 128 img.src = $(element).attr('data-poster'); 129 130 //=========// 131 img.onload = function(element) { 132 133 if ( this.width != original_data_w && this.height != original_data_h ) { 134 135 //==========// 136 var poster_fallbacks = $('[data-post-id="'+original_data_id+'"]').attr('data-poster-fallbacks'); 137 138 if (poster_fallbacks != 'null' && poster_fallbacks != '') { 139 140 var jsonDataScreenshots = JSON.parse( poster_fallbacks ); 141 142 if (jsonDataScreenshots == null) { 143 144 return; 145 146 } 147 148 (async () => { 149 150 for(var i=0;i<jsonDataScreenshots.length;i++){ 151 152 await screenLoad(original_data_id, jsonDataScreenshots[i], original_data_w, original_data_h); 153 154 if ( $(origElement).attr('data-poster-fallbacked') == 1 ) { break; } 155 156 } 157 158 if(pc==1 && $(origElement).attr('data-poster-fallbacked') != 1) { await loadBrokenPoster(original_data_id); } 159 160 })(); 161 162 } 163 else { 164 165 if(pc==1 && $(origElement).attr('data-poster-fallbacked') != 1) { loadBrokenPoster(original_data_id); } 166 167 } 168 //==========// 169 170 } 171 172 } 173 174 img.onerror = function(element) { 175 176 //==========// 177 var poster_fallbacks = $('[data-post-id="'+original_data_id+'"]').attr('data-poster-fallbacks'); 178 179 if (poster_fallbacks != 'null' && poster_fallbacks != '') { 180 181 var jsonDataScreenshots = JSON.parse( poster_fallbacks ); 182 183 (async () => { 184 185 for(var i=0;i<jsonDataScreenshots.length;i++){ 186 187 await screenLoad(original_data_id, jsonDataScreenshots[i], original_data_w, original_data_h); 188 189 if ( $(origElement).attr('data-poster-fallbacked') == 1 ) { break; } 190 191 } 192 193 if(pc==1 && $(origElement).attr('data-poster-fallbacked') != 1) { await loadBrokenPoster(original_data_id); } 194 195 })(); 196 197 } 198 else { 199 200 if(pc==1 && $(origElement).attr('data-poster-fallbacked') != 1) { loadBrokenPoster(original_data_id); } 201 202 } 203 //==========// 204 205 }; 206 //=========// 207 $(element).attr('data-poster-updated', 1); 208 //=========// 209 210 } 211 212} 213//==============// 214 215async function screenLoad(data_post_id, data_src, original_data_w, original_data_h) { 216 217 218 return new Promise((res, rej) => { 219 220 var img = new Image(); 221 222 img.src = data_src; 223 224 img.onload = function(element) { 225 226 if ( (this.width == 640 && this.height == 480) ) { img = null; return res(); } 227 228 if ( (this.width == original_data_w && this.height == original_data_h) || (this.width > 200) ) { 229 230 231 $('[data-post-id="'+data_post_id+'"]').attr('poster', this.src
231); 232 $('[data-post-id="'+data_post_id+'"]').attr('data-poster', this.src); 233 234 $('[data-post-id="'+data_post_id+'"]').attr('data-poster-fallbacked', 1); 235 236 237 } 238 239 img = null; 240 241 return res(); 242 243 } 244 245 246 img.onerror = function(element) { 247 248 return res(); 249 250 } 251 252 253 }); 254 255 256} 257 258//==============// 259 260async function loadBrokenPoster(data_post_id) { 261 262 console.log('broken poster '+data_post_id); 263 264 $('[data-post-id="'+data_post_id+'"]').attr('poster', '/fallback_screenshot.php?post_id='+data_post_id); 265 $('[data-post-id="'+data_post_id+'"]').attr('data-poster', '/fallback_screenshot.php?post_id='+data_post_id); 266 $('[data-post-id="'+data_post_id+'"]').attr('data-poster-fallback', '/fallback_screenshot.php?post_id='+data_post_id); 267 268} 269 270//============================================// 271 272 273//============================================//IMAGE DIMENSION 274 275function imageDimension(element, original=0) { 276 277 if ( $(element).attr('data-poster-updated') != 1 ) { 278 279 //=========// 280 var img = new Image(); 281 282 var original_data_id = $(element).attr('data-post-id'); 283 284 285 img.src = $(element).attr('data-src'); 286 287 img.onload = function(element) { 288 289 if ( this.width < 200 ) { 290 291 //==========// 292 $.ajax({ 293 async: true, 294 type: "get", 295 data: "post_id="+original_data_id, 296 url: "/fallback_backend.php", 297 success: function( response ) { 298 299 var data = JSON.parse(response); 300 301 if (data.thumbs == null) { 302 303 return; 304 305 } 306 307 (async () => { 308 309 if (original == 1) { 310 311 312 for(var i=0;i<data.photos.length;i++){ 313 314 await thumbLoad(original_data_id, data.photos[i]); 315 316 if ( $('[data-post-id="'+original_data_id+'"]').attr('data-poster-fallbacked') == 1 ) { break; } 317 318 } 319 320 if ( $('[data-post-id="'+original_data_id+'"]').attr('data-poster-fallbacked') != 1 ) { Report_Unavaible(original_data_id); } 321 322 323 } 324 325 if (original == 0) { 326 327 for(var i=0;i<data.thumbs.length;i++){ 328 329 await thumbLoad(original_data_id, data.thumbs[i]); 330 331 if ( $('[data-post-id="'+original_data_id+'"]').attr('data-poster-fallbacked') == 1 ) { break; } 332 333 } 334 335 if ( $('[data-post-id="'+original_data_id+'"]').attr('data-poster-fallbacked') != 1 ) { Report_Unavaible(original_data_id); } 336 337 } 338 339 })(); 340 //==============// 341 342 } 343 344 }); 345 //==========// 346 347 } 348 349 } 350 351 352 img.onerror = function(element) { 353 //==========// 354 $.ajax({ 355 async: true, 356 type: "get", 357 data: "post_id="+original_data_id, 358 url: "/fallback_backend.php", 359 success: function( response ) { 360 361 var data = JSON.parse(response); 362 363 if (data.thumbs == null) { 364 365 return; 366 367 } 368 369 (async () => { 370 371 if (original == 1) { 372 373 374 for(var i=0;i<data.photos.length;i++){ 375 376 await thumbLoad(original_data_id, data.photos[i]); 377 378 if ( $('[data-post-id="'+original_data_id+'"]').attr('data-poster-fallbacked') == 1 ) { break; } 379 380 } 381 382 if ( $('[data-post-id="'+original_data_id+'"]').attr('data-poster-fallbacked') != 1 ) { Report_Unavaible(original_data_id); } 383 384 385 } 386 387 if (original == 0) { 388 389 for(var i=0;i<data.thumbs.length;i++){ 390 391 await thumbLoad(original_data_id, data.thumbs[i]); 392 393 if ( $('[data-post-id="'+original_data_id+'"]').attr('data-poster-fallbacked') == 1 ) { break; } 394 395 } 396 397 if ( $('[data-post-id="'+original_data_id+'"]').attr('data-poster-fallbacked') != 1 ) { Report_Unavaible(original_data_id); } 398 399 } 400 401 })(); 402 //==============// 403 404 } 405 406 }); 407 //==========// 408 409 }; 410 //=========// 411 $(element).attr('data-poster-updated', 1); 412 //=========// 413 414 } 415 416} 417 418//==============// 419function imageFallback(element, original=0) { 420 421 if ( $(element).attr('data-poster-updated') != 1 ) { 422 423 //=========// 424 var img = new Image(); 425 426 var original_data_id = $(element).attr('data-post-id'); 427 428 var origElement = element; 429 430 431 img.src = $(element).attr('data-src'); 432 433 img.onload = function(element) { 434 435 if ( this.width < 200 ) { 436 437 //==========// 438 (async () => { 439 440 if (original == 1) { 441 442 var fallback_original = JSON.parse( $('[data-post-id="'+original_data_id+'"]').attr('data-duplicates-original') ); 443 444 if (fallback_original == null || fallback_original == '') { 445 446 return; 447 448 } 449 450 for(var i=0;i<fallback_original.length;i++){ 451 452 await thumbLoad(original_data_id, fallback_original[i]); 453 454 if ( $(origElement).attr('data-poster-fallbacked') == 1 ) { break; } 455 456 } 457 458 if ( $(origElement).attr('data-poster-fallbacked') != 1 ) { Report_Unavaible(original_data_id); } 459 460 } 461 462 if (original == 0) { 463 464 var fallback_thumbs = JSON.parse( $('[data-post-id="'+original_data_id+'"]').attr('data-duplicates-thumbs') ); 465 466 if (fallback_thumbs == null) { 467 468 return; 469 470 } 471 472 for(var i=0;i<fallback_thumbs.length;i++){ 473 474 await thumbLoad(original_data_id, fallback_thumbs[i]); 475 476 if ( $(origElement).attr('data-poster-fallbacked') == 1 ) { break; } 477 478 } 479 480 if ( $(origElement).attr('data-poster-fallbacked') != 1 ) { Report_Unavaible(original_data_id); } 481 482 } 483 484 })(); 485 //==========// 486 487 } 488 489 } 490 img.onerror = function(element) { 491 //==========// 492 (async () => { 493 494 if (original == 1) { 495 496 var fallback_original = JSON.parse( $('[data-post-id="'+original_data_id+'"]').attr('data-duplicates-original') ); 497 498 if (fallback_original == null || fallback_original == '') { 499 500 return; 501 502 } 503 504 for(var i=0;i<fallback_original.length;i++){ 505 506 await thumbLoad(original_data_id, fallback_original[i]); 507 508 if ( $(origElement).attr('data-poster-fallbacked') == 1 ) { break; } 509 510 } 511 512 if ( $(origElement).attr('data-poster-fallbacked') != 1 ) { Report_Unavaible(original_data_id); } 513 514 } 515 516 if (original == 0) { 517 518 var fallback_thumbs = JSON.parse( $('[data-post-id="'+original_data_id+'"]').attr('data-duplicates-thumbs') ); 519 520 if (fallback_thumbs == null) { 521 522 return; 523 524 } 525 526 for(var i=0;i<fallback_thumbs.length;i++){ 527 528 await thumbLoad(original_data_id, fallback_thumbs[i]); 529 530 if ( $(origElement).attr('data-poster-fallbacked') == 1 ) { break; } 531 532 } 533 534 if ( $(origElement).attr('data-poster-fallbacked') != 1 ) { Report_Unavaible(original_data_id); } 535 536 } 537 538 })(); 539 //==========// 540 541 }; 542 //=========// 543 $(element).attr('data-poster-updated', 1); 544 //=========// 545 546 } 547 548} 549//==============// 550 551async function thumbLoad(data_post_id, data_src) { 552 553 554 return new Promise((res, rej) => { 555 556 var img = new Image(); 557 558 img.src = data_src; 559 560 img.onload = function(element) { 561 562 if ( this.width > 200 ) { 563 564 565 $('[data-post-id="'+data_post_id+'"]').attr('src', this.src
565); 566 $('[data-post-id="'+data_post_id+'"]').attr('data-src', this.src); 567 568 $('[data-post-id="'+data_post_id+'"]').attr('data-poster-fallbacked', 1); 569 570 571 } 572 573 img = null; 574 575 return res(); 576 577 } 578 579 580 img.onerror = function(element) { 581 582 return res(); 583 584 } 585 586 587 }); 588 589 590} 591 592//============================================// 593 594//============================================//FALLBACK BACKEND 595 596function SetFallbackElement(element, actions=[]) { 597 598 if ($(element).attr('data-fallback-set') != 1) { 599 600 var sources = $(element).find('source[type="video/mp4"]'); 601 602 for (i = 0; i < sources.length; i++) { 603 604 sources[i].setAttribute("data-source-num", i); 605 606 $(sources[i]).on('error', function(error){ 607 608 if (this.getAttribute('data-source-num') == sources.length-1) { 609 610 console.log('MP4 FAILED '+i); 611 612 Fallback_Backend(element, actions); 613 614 } 615 616 }); 617 618 } 619 620 //==============// 621 $(element).attr('data-fallback-set', 1); 622 //==============// 623 624 } 625 626} 627 628//====================// 629 function Fallback_Backend(element, actions=[]) { 630 631 if ($(element).attr('data-fallback-updated') != 1) { 632 633 var post_id = $(element).attr('data-post-id'); 634 635 $.ajax({ 636 async: true, 637 type: "get", 638 data: "post_id="+post_id, 639 url: "/fallback_backend.php", 640 success: function( response ) { 641 642 var data = JSON.parse(response); 643 644 if (data.videos == null) { 645 646 Report_Unavaible(post_id); 647 648 } 649 else { 650 651 for(var i=0;i<data.videos.length;i++){ 652 653 $(element).append('<source src="'+data.videos[i]+'" data-src="'+data.videos[i]+'" type="video/mp4" >'); 654 655 } 656 657 //======// 658 if(actions.indexOf("dont_report") == -1) { 659 660 var sources = $(element).find('source[type="video/mp4"]'); 661 662 for (i = 0; i < sources.length; i++) { 663 664 $(sources[i]).off(); 665 666 sources[i].setAttribute("data-source-num", i); 667 668 $(sources[i]).on('error', function(error){ 669 670 if (this.getAttribute('data-source-num') == sources.length-1) { 671 672 //console.log('FULLY FAILED'); 673 674 Report_Unavaible(post_id); 675 676 } 677 678 }); 679 680 } 681 682 } 683 //======// 684 685 686 //==============// 687 if(actions.indexOf("scroll") != -1) { 688 689 $(window).scrollTop($(window).scrollTop()+1); 690 691 } 692 if(actions.indexOf("play") != -1) { 693 694 var thumbVideo = $(element).get(0); 695 696 thumbVideo.load(); 697 698 thumbVideo.oncanplaythrough = function() { 699 window.thumbPlayPromise = thumbVideo.play(); 700 } 701 702 } 703 if(actions.indexOf("load") != -1) { 704 705 var thumbVideo = $(element).get(0); 706 707 thumbVideo.load(); 708 709 } 710 //==============// 711 $(element).attr('data-fallback-updated', 1); 712 //==============// 713 } 714 715 } 716 717 }); 718 719 } 720 721 if ($(element).attr('data-fallback-updated') == 1) { 722 723 724 725 } 726 727 } 728 729//============================================// 730 731//====================// 732function Report_Unavaible(post_id) { 733 734 $.ajax({ 735 async: true, 736 type: "get", 737 data: "post_id="+post_id, 738 url: "/report_unavaible.php", 739 success: function( response ) { 740 741 } 742 743 }); 744 745} 746//====================// 747 748//============================================//
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.