PageSourceSearch

http://xn--90ab1ab7gc.xn--p1ai/javascripts/jflickrfeed.js

js xn--90ab1ab7gc.xn--p1ai collected 2026-10-05 00:39:18 UTC 2,330 bytes, 83 lines download raw bytes

1/*
2* Copyright (C) 2009 Joel Sutherland
3* Licenced under the MIT license
4* http://www.newmediacampaigns.com/page/jquery-flickr-plugin
5*
6* Available tags for templates:
7* title, link, date_taken, description, published, author, author_id, tags, image*
8*/
9(function($) {
10	$.fn.jflickrfeed = function(settings, callback) {
11		settings = $.extend(true, {
12			flickrbase: 'http://api.flickr.com/services/feeds/',
13			feedapi: 'photos_public.gne',
14			limit: 20,
15			qstrings: {
16				lang: 'en-us',
17				format: 'json',
18				jsoncallback: '?'
19			},
20			cleanDescription: true,
21			useTemplate: true,
22			itemTemplate: '',
23			itemCallback: function(){}
24		}, settings);
25
26		var url = settings.flickrbase + settings.feedapi + '?';
27		var first = true;
28
29		for(var key in settings.qstrings){
30			if(!first)
31				url += '&';
32			url += key + '=' + settings.qstrings[key];
33			first = false;
34		}
35
36		return $(this).each(function(){
37			var $container = $(this);
38			var container = this;
39			$.getJSON(url, function(data){
40				$.each(data.items, function(i,item){
41					if(i < settings.limit){
42					
43						// Clean out the Flickr Description
44						if(settings.cleanDescription){
45							var regex = /<p>(.*?)<\/p>/g;
46							var input = item.description;
47							if(regex.test(input)) {
48								item.description = input.match(regex)[2]
49								if(item.description!=undefined)
50									item.description = item.description.replace('<p>','').replace('</p>','');
51							}
52						}
53						
54						// Add Image Sizes
55						// http://www.flickr.com/services/api/misc.urls.html
56						item['image_s'] = item.media.m.replace('_m', '_s');
57						item['image_t'] = item.media.m.replace('_m', '_t');
58						item['image_m'] = item.media.m.replace('_m', '_m');
59						item['image'] = item.media.m.replace('_m', '');
60						item['image_b'] = item.media.m.replace('_m', '_b');
61						delete item.media;
62						
63						// Use Template
64						if(settings.useTemplate){
65							var template = settings.itemTemplate;
66							for(var key in item){
67								var rgx = new RegExp('{{' + key + '}}', 'g');
68								template = template.replace(rgx, item[key]);
69							}
70							$container.append(template)
71						}
72						
73						//itemCallback
74						settings.itemCallback.call(container, item);
75					}
76				});
77				if($.isFunction(callback)){
78					callback.call(container, data);
79				}
80			});
81		});
82	}
83})(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.