// Only for debugging messages function showAlert(message) { var isAble = gadgets.util.hasFeature("gadgets.MiniMessage"); if (isAble) { var msg = new gadgets.MiniMessage(__MODULE_ID__); msg.createDismissibleMessage(message); } else { alert(message); } } function getData(data, arg) { var field = data.get(arg); if (!field) { showAlert("'" + arg + "' not found"); return null; } if (field.hadError()) { return null; } return field.getData(); } function load() { var req = opensocial.newDataRequest(); req.add( req.newFetchPersonRequest(opensocial.DataRequest.PersonId.OWNER), "owner"); req.add( req.newFetchPersonRequest(opensocial.DataRequest.PersonId.VIEWER), "viewer"); req.add( req.newFetchPersonAppDataRequest( opensocial.DataRequest.PersonId.OWNER, "friendfeed-nickname"), "persondata"); req.send(loadComplete); } function loadComplete(data) { var owner = getData(data, "owner"); var viewer = getData(data, "viewer"); var isOwner = (viewer == null); var personData = getData(data, "persondata"); var nickname = ''; var ownerData = personData[owner.getId()]; if (ownerData && ownerData['friendfeed-nickname'] && ownerData['friendfeed-nickname'].length > 0) { nickname = ownerData['friendfeed-nickname']; showFeed(nickname); } else { var html = '

The owner has not yet configured their friendfeed.

'; if (isOwner) { html += '

Configure your ' + 'friendfeed

'; } document.getElementById('main').innerHTML = html; } } function config() { var views = gadgets.views.getSupportedViews(); var view = views['canvas']; if (view) { gadgets.views.requestNavigateTo(view); } else { showAlert('Unable to find canvas surface'); } } function showFeed(nickname) { var params = {}; params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON; var url = "http://friendfeed.com/api/feed/user/" + encodeURI(nickname); gadgets.io.makeRequest(url, callback, params); function callback(response) { var data = response.data; var entries = data.entries; var html = ''; for (var i = 0; i < entries.length; ++i) { var entry = entries[i]; if (entry.hidden) { continue; } html += ' '; html += '' + entry.title + ' '; html += '(via ' + entry.service.name + ')
'; } document.getElementById('main').innerHTML = html; } } ]]>
// Only for debugging messages function showAlert(message) { var isAble = gadgets.util.hasFeature("gadgets.MiniMessage"); if (isAble) { var msg = new gadgets.MiniMessage(__MODULE_ID__); msg.createDismissibleMessage(message); } else { alert(message); } } function loadSettings() { var req = opensocial.newDataRequest(); req.add( req.newFetchPersonRequest(opensocial.DataRequest.PersonId.OWNER), "owner"); req.add( req.newFetchPersonRequest(opensocial.DataRequest.PersonId.VIEWER), "viewer"); req.add( req.newFetchPersonAppDataRequest( opensocial.DataRequest.PersonId.VIEWER, "friendfeed-nickname"), "persondata"); req.send(loadComplete); } function getData(data, arg) { var field = data.get(arg); if (!field) { showAlert("'" + arg + "' not found"); return null; } if (field.hadError()) { return null; } return field.getData(); } function loadComplete(data) { var owner = getData(data, "owner"); var viewer = getData(data, "viewer"); if (viewer == null) { // The canvas page isn't very useful if you aren't the owner var settings = document.getElementById('settings'); settings.style.display = 'none'; var settings = document.getElementById('install'); settings.style.display = 'block'; return; } var personData = getData(data, "persondata"); var nickname = ''; if (personData[owner.getId()]) { var ownerData = personData[owner.getId()]; if (ownerData['friendfeed-nickname']) { nickname = ownerData['friendfeed-nickname']; } } var form = document.getElementById('friendfeedprefs'); form.nickname.value = nickname; form.savebutton.disabled = ''; form.nickname.disabled = ''; } function save(form) { var nickname = form.nickname.value; var req = opensocial.newDataRequest(); req.add(req.newUpdatePersonAppDataRequest( opensocial.DataRequest.PersonId.VIEWER, "friendfeed-nickname", nickname), "nickname"); req.send(saveComplete); } function saveComplete(data) { var nickname = getData(data, "nickname"); if (getData(data, "nickname")) { showAlert("Preferences saved"); } }

Feed preferences

Enter a FriendFeed account name below and the feed will be displayed in the gadget window on your profile. Sign up.

FriendFeed Nickname or Email:
]]>