PageSourceSearch

https://gifhq.com/js/fallback.backend.js

js gifhq.com collected 2026-09-28 07:00:30 UTC 19,802 bytes, 748 lines download raw bytes

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.