PageSourceSearch

https://ozpropertylaw.com/wp-content/themes/ozpropertylaw/js/twitterfeed.js?ver=1.1

js ozpropertylaw.com collected 2026-10-05 05:24:51 UTC 6,277 bytes, 201 lines download raw bytes

1/*
2	UPDATED TO AUTHENTICATE FOR API 1.1
3	This jQuery Twitter Feed is a modification of
4	-	http://www.webdevdoor.com/jquery/twitter-feed-authentication-search/
5	-	https://twitter.com/javascripts/blogger.js
6	
7	// - updated on 2013/07/11:  Added 'listHTML' and 'itemHTML' variables
8	// - updated on 2013/08/15:  Added Support for variables in loadingHTML and listHTML
9*/
10
11;(function($){
12	
13	// REPLACE VARIABLES
14	function replace_variables( text, vars ) {
15		var variable, regex;
16		for( variable in vars ) {
17			regex = new RegExp( '{'+ variable +'}', 'ig' );
18			text = text.replace( regex, vars[variable] );
19			console.log( variable+': '+vars[variable] );
20		}
21		return text;
22	}
23	
24	
25	// GET RELATIVE TIME
26	function relative_time( time_value ) {
27		
28		var values = time_value.split(" ");
29		time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
30		var parsed_date = Date.parse( time_value );
31		var relative_to = ( arguments.length > 1 ) ? arguments[1] : new Date();
32		var delta = parseInt( (relative_to.getTime() - parsed_date) / 1000 );
33		var shortdate = time_value.substr( 4, 2 ) + " " + time_value.substr( 0, 3 );
34		delta = delta + ( relative_to.getTimezoneOffset() * 60 );
35		
36		if( delta < 60 ) {
37			return '1m';
38		} else if( delta < 120 ) {
39			return '1m';
40		} else if( delta < (60*60) ) {
41			return ( parseInt( delta / 60 ) ).toString() + 'm';
42		} else if( delta < (120*60) ) {
43			return '1h';
44		} else if( delta < (24*60*60) ) {
45			return ( parseInt( delta / 3600 ) ).toString() + 'h';
46		} else if( delta < (48*60*60) ) {
47			//return '1 day';
48			return shortdate;
49		} else {
50			return shortdate;
51		}
52	}
53	
54	
55	// ADD LINKS (Function modified from Stack Overflow)
56	function addlinks( data ) {
57		
58		// Add link to all http:// links within tweets
59		data = data.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function( url ) {
60			return '<a href="'+url+'">'+url+'</a>';
61		});
62		
63		//Add link to @usernames used within tweets
64		data = data.replace(/\B@([_a-z0-9]+)/ig, function( reply ) {
65			return '<a href="http://twitter.com/'+reply.substring(1)+'">'+reply.charAt(0)+reply.substring(1)+'</a>';
66		});
67		
68		// Return data
69		return data;
70	}
71	
72	
73	// JQUERY TWITTER FEED
74	$.fn.twitterFeed = function( options ) {
75		
76		// Create Settings Object
77		var defaults = {
78			displaylimit : 3,
79			twitterprofile : '',
80			screenname : '',
81			showdirecttweets : false,
82			showretweets : true,
83			showtweetlinks : true,
84			headerHTML : '<h3><a href="{twitterprofile_link}">{screenname}</a></h3>',
85			loadingHTML : 'loading...',
86			listHTML: '<ul>{items}</ul>',
87			itemHTML: ['<li>',
88							'<div>',
89								'<a href="{twitterprofile_link}">',
90									'<img src="{profilepic}">',
91									'<strong>{screenname}</strong> @{twitterprofile}</a>',
92							'</div>',
93							'<div>',
94								'<a href="{tweet_link}">{relativetime}</a> ',
95								'{status}',
96							'</div>',
97						'</li>'].join('\n'), // since js doesn't allow multi-line strings, we use the join('\n') function to convert an array of strings into a single one
98			callback: function(){} // you can pass a function to be executed after the feed finishes loading
99		};
100		var settings = $.extend( {}, defaults, options );
101		var template_vars = {
102			screenname: settings.screenname,
103			twitterprofile: settings.twitterprofile,
104			twitterprofile_link: 'http://twitter.com/'+settings.twitterprofile
105		};
106		
107		// Override Settings
108		settings.headerHTML = replace_variables( settings.headerHTML, template_vars );
109		settings.loadingHTML = replace_variables( settings.loadingHTML, template_vars );
110		settings.listHTML = replace_variables( settings.listHTML, template_vars );
111		settings.feedURL = 'https://twitter.vodo.bz/get-tweets.php?u='+settings.twitterprofile;
112		
113		// Validate Required Data
114		if( !settings.twitterprofile ) {
115			$.error( '"twitterprofile" is required' );
116		}
117		
118		// Run Script
119		return this.each(function(){
120			console.log( settings.itemHTML );
121			var Container = $(this);
122			var outputHTML = settings.headerHTML;
123			var itemsHTML = '';
124			var thisItem = '';
125			var displayCounter = 1;
126			var i = 0;
127			
128			// Output Preloading Text
129			Container.html( settings.headerHTML + settings.loadingHTML );
130			
131			$.getJSON( settings.feedURL, function( Feeds ) {
132					
133				for( ; i<Feeds.length; i++ ) {
134					
135					var Feed = Feeds[i];
136					var tweet_screen_name = Feed.user.name;
137					var tweet_username = Feed.user.screen_name;
138					var profile_image = Feed.user.profile_image_url_https;
139					var status = Feed.text; 
140					var is_a_retweet = false;
141					var is_direct = false;
142					var tweet_id = Feed.id_str;
143					
144					// If its a Retweet
145					if( typeof Feed.retweeted_status != 'undefined' ) {
146						profile_image = Feed.retweeted_status.user.profile_image_url_https;
147						tweet_screen_name = Feed.retweeted_status.user.name;
148						tweet_username = Feed.retweeted_status.user.screen_name;
149						tweet_id = Feed.retweeted_status.id_str;
150						is_a_retweet = true;
151					};
152					
153					// If its a Direct Message
154					if( status.substr(0,1) == "@" ) {
155						is_direct = true;
156					}
157					
158					// Exit if tweet is not relevant
159					if( 
160						( is_a_retweet && !settings.showretweets ) ||
161						( is_direct && !settings.showdirecttweets ) ||
162						status.length <= 1 ||
163						displayCounter > settings.displaylimit
164					) {
165						continue;
166					}
167					
168					// Add Links to Text
169					if( settings.showtweetlinks ) {
170						status = addlinks( status );
171					}
172					
173					// Replace Variables
174					var tweet_template_vars = {
175						screenname: tweet_screen_name,
176						twitterprofile: tweet_username,
177						profilepic: profile_image,
178						tweetid: tweet_id,
179						relativetime: relative_time( Feed.created_at ),
180						status: status,
181						twitterprofile_link: 'http://twitter.com/'+tweet_username,
182						tweet_link: 'http://twitter.com/'+tweet_username+'/status/'+tweet_id
183					}
184					thisItem = replace_variables( settings.itemHTML, tweet_template_vars );
185					
186					// Update Data
187					itemsHTML += thisItem;
188					displayCounter++;
189				}
190	
191				// Replace Variables
192				outputHTML += settings.listHTML.replace( /{items}/i, itemsHTML );
193				Container.html( outputHTML );
194				
195				if( typeof settings.callback == 'function' ) {
196					settings.callback();
197				}
198			});
199		});
200	}
201})(jQuery);

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.