Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ITEM COMPONENT
- function addItem(c, indexe) {
- var r = {};
- r.el = {
- status: C('status'),
- picture: C('status-picture', 'img'),
- inner: C('status-inner'),
- user: C('status-username', 'span'),
- text: C('status-text', 'span'),
- date: C('status-date', 'span'),
- clear: C('clear-left')
- };
- var is_DM = 0;
- if (c.sender && !c.user) { c.user = c.sender; c.source = 'N/A'; is_DM = 1; }
- if (c.from === undefined) { c.from = c.user.screen_name; }
- var cdate = new Date(c.created_at);
- r.el.picture.src = c.user.profile_image_url;
- r.el.user.innerHTML = c.user.screen_name;
- var display_text = c.text;
- display_text = display_text.replace(/(https?:\/\/|www\.)(\S*\w+)+/g, function(a) {
- return '<span class="status-link-this-is-new" onclick="open_link(unescape(\'' + escape(a) + '\'))">' + failProofThis(a) + '</span>';
- }).replace(/\B(@[a-z0-9_A-Z\/]+)/g, function(a) {
- return '<span class="status-link-this-is-new" onclick="open_link(unescape(\'' + escape('http://twitter.com/' + a.substr(1)) + '\'))">' + failProofThis(a) + '</span>';
- }).replace(/\B(#[a-z0-9\-_A-Z]+)/g, function(a) {
- return '<span class="status-link-this-is-new" onclick="open_link(unescape(\'' + escape('http://twitter.com/search?q=' + encodeURIComponent(a)) + '\'))">' + failProofThis(a) + '</span>';
- });
- r.el.text.innerHTML = ' ' + display_text + ' ';
- var statusHREF = 'http://twitter.com/' + c.user.screen_name + '/status/' + c.id;
- var irpHTML = '';
- if (c.in_reply_to_status_id) {
- var irpHREF = 'http://twitter.com/' + c.in_reply_to_screen_name + '/status/' + c.in_reply_to_status_id;
- irpHTML = '<span class="status-in-reply-to"> <span class="status-date-text status-date-link" onclick="open_link(unescape(\'' + irpHREF + '\'))" title="In reply to">» ' + c.in_reply_to_screen_name + '</span></span>';
- }
- r.el.date.innerHTML = '<span class="status-date-text status-date-link" onclick="open_link(unescape(\'' + statusHREF + '\'))">' +
- cdate.getHours() + ':' + twoDigits(cdate.getMinutes()) + ':' + twoDigits(cdate.getSeconds()) +
- '</span><span class="status-client"> from ' + sanitizeSource(c.source) + '</span>' + irpHTML;
- r.el.picture.style.cursor = 'pointer';
- r.el.picture.onclick = function() {
- open_link ('http://twitter.com/' + r.getUser());
- };
- r.el.status.appendChild (r.el.picture);
- r.el.status.appendChild (r.el.inner);
- r.el.inner.appendChild (r.el.user);
- r.el.inner.appendChild (r.el.text);
- r.el.inner.appendChild (r.el.date);
- r.el.status.appendChild (r.el.clear);
- el.display.appendChild (r.el.status);
- var mgt = 0;
- // First item?
- if (indexe == 0) (function() {
- dtjs2.a.c (0, 1, 0.8, function(v) {
- mgt = Math.round(window.innerHeight * (1 - v));
- r.el.status.style.marginTop = mgt + 'px';
- }, dtjs2.ease.sine.o);
- mgt = Math.round(window.innerHeight);
- r.el.status.style.marginTop = mgt + 'px';
- })();
- var cl = '';
- if (MY_DAMN_NAME != '' && c.text.toLowerCase().indexOf('@' + MY_DAMN_NAME.toLowerCase()) > -1) {
- cl = 'status-mention';
- }
- r.isMentioned = function() {
- return cl != '';
- };
- var cla = '';
- var clb = '';
- var clc = '';
- var cld = '';
- var isTweetFiltered = false;
- var decodedText = html_entity_decode(c.text);
- r.updateClass = function() {
- r.el.status.className = 'status ' + cl + ' ' + cla + ' ' + clb + ' ' + clc + ' ' + cld;
- };
- r.setClass = function(d) {
- cla = d;
- r.updateClass ();
- };
- r.setSecondaryClass = function(d) {
- clb = d;
- r.updateClass ();
- };
- r.setFaved = function(d) {
- clc = d ? 'status-faved' : '';
- r.updateClass ();
- };
- r.updateHighlighted = function() {
- cld = isHighlight(decodedText) ? 'status-highed' : '';
- r.updateClass ();
- };
- r.updateFiltered = function() {
- isTweetFiltered = isFilter(decodedText, c) ? true : false;
- r.el.status.style.display = isTweetFiltered ? 'none' : '';
- };
- r.isFiltered = function() {
- return isTweetFiltered;
- };
- r.getPosition = function() {
- return r.el.status.offsetTop - mgt;
- };
- r.getHeight = function() {
- return r.el.status.offsetHeight;
- };
- r.getText = function() {
- return decodedText;
- };
- r.isDM = function() {
- return is_DM;
- };
- r.getUser = function() {
- return c.user.screen_name;
- };
- r.getId = function() {
- return c.id;
- };
- r.isProtected = function() {
- return !!c.user.protected;
- };
- var numWorks = 0;
- r.doWorks = function() {
- numWorks ++;
- r.el.status.style.opacity = 1 / (1 + (numWorks * 0.6));
- return function() {
- numWorks --;
- if (numWorks == 0) {
- r.el.status.style.opacity = '';
- } else {
- r.el.status.style.opacity = 1 / (1 + (numWorks * 0.6));
- }
- };
- };
- r.toggleFave = function() {
- var newState = true;
- if (clc == 'status-faved') {
- newState = false;
- }
- r.setFaved (newState);
- var xh = new XMLHttpRequest();
- var worked = r.doWorks();
- xh.open ('POST', 'api-fave.php?time=' + (new Date().getTime()), true);
- xh.setRequestHeader ('content-type', 'application/x-www-form-urlencoded');
- xh.onreadystatechange = function() {
- if (xh.readyState == 4) {
- try {
- var data = eval('(' + xh.responseText + ')');
- r.setFaved (newState);
- } catch (e) {
- notify ('Couldn\'t Save Favourite');
- r.setFaved (!newState);
- }
- worked ();
- }
- };
- xh.send ('mode=' + (newState ? 'create' : 'destroy') + '&id=' + r.getId() + '&tk=' + THE_TOKEN);
- };
- r.setClass ('');
- r.check = function() {
- var expected = '@' + c.user.screen_name.toLowerCase();
- var isMatch = el.tweetData.value.substr(0, expected.length).toLowerCase() == expected;
- r.setSecondaryClass (isMatch ? 'status-reply-to' : '');
- return isMatch;
- };
- r.uncheck = function() {
- r.setSecondaryClass ('');
- };
- r.test = function(str) {
- if (r.getUser().toLowerCase().indexOf(str.toLowerCase()) > -1) {
- return true;
- }
- if (r.getText().toLowerCase().indexOf(str.toLowerCase()) > -1) {
- return true;
- }
- if ((r.getUser() + ' ' + r.getText()).toLowerCase().indexOf(str.toLowerCase()) > -1) {
- return true;
- }
- return false;
- };
- currentItems.push (r);
- r.el.status.onclick = function() {
- for (var i = 0; i < currentItems.length; i ++) {
- if (currentItems[i] == r) {
- tl.selectItem (i);
- return;
- }
- }
- };
- if (c.favorited) r.setFaved (true);
- r.updateHighlighted ();
- r.updateFiltered ();
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement