JAVASCRIPT   25

twittie js

Guest on 13th August 2022 12:42:05 AM

  1. (function(e) {
  2.     "use strict";
  3.     e.fn.twittie = function() {
  4.         var t = arguments[0] instanceof Object ? arguments[0] : {},
  5.             n = typeof arguments[0] === "function" ? arguments[0] : arguments[1];
  6.         var r = e.extend({
  7.             username: null,
  8.             list: null,
  9.             hashtag: null,
  10.             count: 10,
  11.             hideReplies: false,
  12.             dateFormat: "%b/%d/%Y",
  13.             template: "{{date}} - {{tweet}}",
  14.             apiPath: "api/tweet.php",
  15.             loadingText: "Loading..."
  16.         }, t);
  17.         if (r.list && !r.username) {
  18.             e.error("If you want to fetch tweets from a list, you must define the username of the list owner.")
  19.         }
  20.         var i = function(e) {
  21.             var t = e.replace(/(https?:\/\/([-\w\.]+)+(:\d+)?(\/([\w\/_\.]*(\?\S+)?)?)?)/ig, '<a href="$1" target="_blank" title="Visit this link">$1</a>').replace(/#([a-zA-Z0-9_]+)/g, '<a href="https://twitter.com/search?q=%23$1&src=hash" target="_blank" title="Search for #$1">#$1</a>').replace(/@([a-zA-Z0-9_]+)/g, '<a href="https://twitter.com/$1" target="_blank" title="$1 on Twitter">@$1</a>');
  22.             return t
  23.         };
  24.         var s = function(e) {
  25.             var t = e.split(" ");
  26.             e = new Date(Date.parse(t[1] + " " + t[2] + ", " + t[5] + " " + t[3] + " UTC"));
  27.             var n = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
  28.             var i = {
  29.                 "%d": e.getDate(),
  30.                 "%m": e.getMonth() + 1,
  31.                 "%b": n[e.getMonth()].substr(0, 3),
  32.                 "%B": n[e.getMonth()],
  33.                 "%y": String(e.getFullYear()).slice(-2),
  34.                 "%Y": e.getFullYear()
  35.             };
  36.             var s = r.dateFormat;
  37.             var o = r.dateFormat.match(/%[dmbByY]/g);
  38.             for (var u = 0, a = o.length; u < a; u++) {
  39.                 s = s.replace(o[u], i[o[u]])
  40.             }
  41.             return s
  42.         };
  43.         var o = function(e) {
  44.             var t = r.template;
  45.             var n = ["date", "tweet", "avatar", "url", "retweeted", "screen_name", "user_name"];
  46.             for (var i = 0, s = n.length; i < s; i++) {
  47.                 t = t.replace(new RegExp("{{" + n[i] + "}}", "gi"), e[n[i]])
  48.             }
  49.             return t
  50.         };
  51.         this.html("<span>" + r.loadingText + "</span>");
  52.         var u = this;
  53.         e.getJSON(r.apiPath, {
  54.             username: r.username,
  55.             list: r.list,
  56.             hashtag: r.hashtag,
  57.             count: r.count,
  58.             exclude_replies: r.hideReplies
  59.         }, function(e) {
  60.             u.find("span").fadeOut("fast", function() {
  61.                 u.html("<ul></ul>");
  62.                 for (var t = 0; t < r.count; t++) {
  63.                     var a = false;
  64.                     if (e[t]) {
  65.                         a = e[t]
  66.                     } else if (e.statuses !== undefined && e.statuses[t]) {
  67.                         a = e.statuses[t]
  68.                     } else {
  69.                         break
  70.                     }
  71.                     var f = {
  72.                         user_name: a.user.name,
  73.                         date: s(a.created_at),
  74.                         tweet: a.retweeted ? i("RT @" + a.user.screen_name + ": " + a.retweeted_status.text) : i(a.text),
  75.                         avatar: '<img src="' + a.user.profile_image_url + '" />',
  76.                         url: "https://twitter.com/" + a.user.screen_name + "/status/" + a.id_str,
  77.                         retweeted: a.retweeted,
  78.                         screen_name: i("@" + a.user.screen_name)
  79.                     };
  80.                     u.find("ul").append("<li>" + o(f) + "</li>")
  81.                 }
  82.                 if (typeof n === "function") {
  83.                     n()
  84.                 }
  85.             })
  86.         })
  87.     }
  88. })(jQuery);

Raw Paste


Login or Register to edit or fork this paste. It's free.