var CurrentTwitterTab = "twitter-home" var HashtagOpen = false; var MinimumTrending = 100; $(document).on('click', '.twitter-header-tab', function(e){ e.preventDefault(); var PressedTwitterTab = $(this).data('twittertab'); var PreviousTwitterTabObject = $('.twitter-header').find('[data-twittertab="'+CurrentTwitterTab+'"]'); if (PressedTwitterTab !== CurrentTwitterTab) { $(this).addClass('selected-twitter-header-tab'); $(PreviousTwitterTabObject).removeClass('selected-twitter-header-tab'); $("."+CurrentTwitterTab+"-tab").css({"display":"none"}); $("."+PressedTwitterTab+"-tab").css({"display":"block"}); if (PressedTwitterTab === "twitter-mentions") { $.post('https://qb-phone/ClearMentions'); } if (PressedTwitterTab == "twitter-home") { $.post('https://qb-phone/GetTweets', JSON.stringify({}), function(Tweets){ QB.Phone.Notifications.LoadTweets(Tweets); }); } CurrentTwitterTab = PressedTwitterTab; if (HashtagOpen) { event.preventDefault(); $(".twitter-hashtag-tweets").css({"left": "30vh"}); $(".twitter-hashtags").css({"left": "0vh"}); $(".twitter-new-tweet").css({"display":"block"}); $(".twitter-hashtags").css({"display":"block"}); HashtagOpen = false; } } else if (CurrentTwitterTab == "twitter-hashtags" && PressedTwitterTab == "twitter-hashtags") { if (HashtagOpen) { event.preventDefault(); $(".twitter-hashtags").css({"display":"block"}); $(".twitter-hashtag-tweets").animate({ left: 30+"vh" }, 150); $(".twitter-hashtags").animate({ left: 0+"vh" }, 150); HashtagOpen = false; } } else if (CurrentTwitterTab == "twitter-home" && PressedTwitterTab == "twitter-home") { event.preventDefault(); $.post('https://qb-phone/GetTweets', JSON.stringify({}), function(Tweets){ QB.Phone.Notifications.LoadTweets(Tweets); }); } else if (CurrentTwitterTab == "twitter-mentions" && PressedTwitterTab == "twitter-mentions") { event.preventDefault(); $.post('https://qb-phone/GetMentionedTweets', JSON.stringify({}), function(MentionedTweets){ QB.Phone.Notifications.LoadMentionedTweets(MentionedTweets) }) } }); $(document).on('click', '.twitter-new-tweet', function(e){ e.preventDefault(); ClearInputNew() $('#twt-box-textt').fadeIn(350); }); $(document).on('click', '#twt-sendmessage-chat', function(e){ e.preventDefault(); var TweetMessage = $(".twt-box-textt-input").val(); var imageURL = $('#tweet-new-url').val() if (TweetMessage != "") { var CurrentDate = new Date(); $.post('https://qb-phone/PostNewTweet', JSON.stringify({ Message: TweetMessage, Date: CurrentDate, Picture: QB.Phone.Data.MetaData.profilepicture, url: imageURL }), function(Tweets){ QB.Phone.Notifications.LoadTweets(Tweets); ClearInputNew(); $('#twt-box-textt').fadeOut(350); }); $.post('https://qb-phone/GetHashtags', JSON.stringify({}), function(Hashtags){ QB.Phone.Notifications.LoadHashtags(Hashtags) }) QB.Phone.Animations.TopSlideUp(".twitter-new-tweet-tab", 450, -120); } else { QB.Phone.Notifications.Add("fab fa-twitter", "Twitter", "Fill a message!", "#1DA1F2"); }; $('#tweet-new-url').val(""); }); $(document).on('click', '#take-pic', function (e) { e.preventDefault(); $.post('https://qb-phone/TakePhoto', JSON.stringify({}),function(url){ if(url){ $('#tweet-new-url').val(url) } }) QB.Phone.Functions.Close(); }) QB.Phone.Notifications.LoadTweets = function(Tweets) { Tweets = Tweets.reverse(); if (Tweets !== null && Tweets !== undefined && Tweets !== "" && Tweets.length > 0) { $(".twitter-home-tab").html(""); $.each(Tweets, function(i, Tweet){ var clean = DOMPurify.sanitize(Tweet.message , { ALLOWED_TAGS: [], ALLOWED_ATTR: [] }); if (clean == '') clean = 'Hmm, I shouldn\'t be able to do this...' var TwtMessage = QB.Phone.Functions.FormatTwitterMessage(clean); var TimeAgo = moment(Tweet.date).format('MM/DD/YYYY hh:mm'); var TwitterHandle = Tweet.firstName + ' ' + Tweet.lastName var PictureUrl = "./img/default.png" if (Tweet.picture !== "default") { PictureUrl = Tweet.picture } if (Tweet.url == "") { let TweetElement = '
' + '
' + Tweet.firstName + ' ' + Tweet.lastName + '  @' + TwitterHandle.replace(" ", "_") + ' · ' + TimeAgo + '
' + '
' + TwtMessage + '
' + '
' + '
'; $(".twitter-home-tab").append(TweetElement); } else { let TweetElement = '
'+ '
'+Tweet.firstName+' '+Tweet.lastName+'  @'+TwitterHandle.replace(" ", "_")+' · '+TimeAgo+'
'+ '
'+TwtMessage+'
'+ '' + '
' + '
'; $(".twitter-home-tab").append(TweetElement); } }); } } $(document).on('click','#twt-delete-click',function(e){ e.preventDefault(); let source = $('.twitter-tweet').data('twtid') $(this).parent().parent().parent().parent().remove() $.post('https://qb-phone/DeleteTweet', JSON.stringify({id: source})) }) $(document).on('click', '.tweet-reply', function(e){ e.preventDefault(); var TwtName = $(this).parent().data('twthandler'); ClearInputNew() $('#twt-box-textt').fadeIn(350); $(".twt-box-textt-input").val(TwtName+" "); }); QB.Phone.Notifications.LoadMentionedTweets = function(Tweets) { Tweets = Tweets.reverse(); $('#tweet-new-url').val(""); if (Tweets.length > 0) { $(".twitter-mentions-tab").html(""); $.each(Tweets, function(i, Tweet){ var clean = DOMPurify.sanitize(Tweet.message , { ALLOWED_TAGS: [], ALLOWED_ATTR: [] }); if (clean == '') clean = 'Hmm, I shouldn\'t be able to do this...' var TwtMessage = QB.Phone.Functions.FormatTwitterMessage(clean); var TimeAgo = moment(Tweet.date).format('MM/DD/YYYY hh:mm'); var TwitterHandle = Tweet.firstName + ' ' + Tweet.lastName var PictureUrl = "./img/default.png"; if (Tweet.picture !== "default") { PictureUrl = Tweet.picture } var TweetElement = '
'+ '
'+Tweet.firstName+' '+Tweet.lastName+'  @'+TwitterHandle.replace(" ", "_")+' · '+TimeAgo+'
'+ '
'+TwtMessage+'
'+ '
'; $(".twitter-mentioned-tweet").css({"background-color":"#F5F8FA"}); $(".twitter-mentions-tab").append(TweetElement); }); } } QB.Phone.Functions.FormatTwitterMessage = function(TwitterMessage) { var TwtMessage = TwitterMessage; var res = TwtMessage.split("@"); var tags = TwtMessage.split("#"); var InvalidSymbols = [ "[", "?", "!", "@", "#", "]", ] for(i = 1; i < res.length; i++) { var MentionTag = res[i].split(" ")[0]; if (MentionTag !== null && MentionTag !== undefined && MentionTag !== "") { TwtMessage = TwtMessage.replace("@"+MentionTag, "@"+MentionTag+""); } } for(i = 1; i < tags.length; i++) { var Hashtag = tags[i].split(" ")[0]; for(i = 1; i < InvalidSymbols.length; i++){ var symbol = InvalidSymbols[i]; var res = Hashtag.indexOf(symbol); if (res > -1) { Hashtag = Hashtag.replace(symbol, ""); } } if (Hashtag !== null && Hashtag !== undefined && Hashtag !== "") { TwtMessage = TwtMessage.replace("#"+Hashtag, "#"+Hashtag+""); } } return TwtMessage } $(document).on('click', '#send-tweet', function(e){ e.preventDefault(); var TweetMessage = $("#tweet-new-message").val(); var imageURL = $('#tweet-new-url').val() if (TweetMessage != "") { var CurrentDate = new Date(); $.post('https://qb-phone/PostNewTweet', JSON.stringify({ Message: TweetMessage, Date: CurrentDate, Picture: QB.Phone.Data.MetaData.profilepicture, url: imageURL }), function(Tweets){ QB.Phone.Notifications.LoadTweets(Tweets); }); $.post('https://qb-phone/GetHashtags', JSON.stringify({}), function(Hashtags){ QB.Phone.Notifications.LoadHashtags(Hashtags) }) QB.Phone.Animations.TopSlideUp(".twitter-new-tweet-tab", 450, -120); } else { QB.Phone.Notifications.Add("fab fa-twitter", "Twitter", "Fill a message!", "#1DA1F2"); }; $('#tweet-new-url').val(""); $("#tweet-new-message").val(""); }); $(document).on('click', '#cancel-tweet', function(e){ e.preventDefault(); $('#tweet-new-url').html(""); QB.Phone.Animations.TopSlideUp(".twitter-new-tweet-tab", 450, -120); }); $(document).on('click', '.image', function(e){ e.preventDefault(); let source = $(this).attr('src') QB.Screen.popUp(source) }); $(document).on('click', '.mentioned-tag', function(e){ e.preventDefault(); CopyMentionTag(this); }); $(document).on('click', '.hashtag-tag-text', function(e){ e.preventDefault(); if (!HashtagOpen) { var Hashtag = $(this).data('hashtag'); var PreviousTwitterTabObject = $('.twitter-header').find('[data-twittertab="'+CurrentTwitterTab+'"]'); $("#twitter-hashtags").addClass('selected-twitter-header-tab'); $(PreviousTwitterTabObject).removeClass('selected-twitter-header-tab'); $("."+CurrentTwitterTab+"-tab").css({"display":"none"}); $(".twitter-hashtags-tab").css({"display":"block"}); $.post('https://qb-phone/GetHashtagMessages', JSON.stringify({hashtag: Hashtag}), function(HashtagData){ QB.Phone.Notifications.LoadHashtagMessages(HashtagData.messages); }); $(".twitter-hashtag-tweets").css({"display":"block", "left":"30vh"}); $(".twitter-hashtag-tweets").css({"left": "0vh"}); $(".twitter-hashtags").css({"left": "-30vh"}); $(".twitter-hashtags").css({"display":"none"}); HashtagOpen = true; CurrentTwitterTab = "twitter-hashtags"; } }); function CopyMentionTag(elem) { var $temp = $(""); $("body").append($temp); $temp.val($(elem).data('mentiontag')).select(); QB.Phone.Notifications.Add("fab fa-twitter", "Twitter", $(elem).data('mentiontag')+ " copied!", "rgb(27, 149, 224)", 1250); document.execCommand("copy"); $temp.remove(); } QB.Phone.Notifications.LoadHashtags = function(hashtags) { if (hashtags !== null) { $(".twitter-hashtags").html(""); $.each(hashtags, function(i, hashtag){ var Elem = ''; var TweetHandle = "Tweet"; if (hashtag.messages.length > 1 ) { TweetHandle = "Tweets"; } if (hashtag.messages.length >= MinimumTrending) { Elem = '
Trending in City
#'+hashtag.hashtag+'
'+hashtag.messages.length+' '+TweetHandle+'
'; } else { Elem = '
Not trending in City
#'+hashtag.hashtag+'
'+hashtag.messages.length+' '+TweetHandle+'
'; } $(".twitter-hashtags").append(Elem); $("#tag-"+hashtag.hashtag).data('tagData', hashtag); }); } } QB.Phone.Notifications.LoadHashtagMessages = function(Tweets) { Tweets = Tweets.reverse(); if (Tweets !== null && Tweets !== undefined && Tweets !== "" && Tweets.length > 0) { $(".twitter-hashtag-tweets").html(""); $.each(Tweets, function(i, Tweet){ var clean = DOMPurify.sanitize(Tweet.message , { ALLOWED_TAGS: [], ALLOWED_ATTR: [] }); if (clean == '') clean = 'Hmm, I shouldn\'t be able to do this...' var TwtMessage = QB.Phone.Functions.FormatTwitterMessage(clean); var TimeAgo = moment(Tweet.date).format('MM/DD/YYYY hh:mm'); var TwitterHandle = Tweet.firstName + ' ' + Tweet.lastName var PictureUrl = "./img/default.png" if (Tweet.picture !== "default") { PictureUrl = Tweet.picture } var TweetElement = '
'+ '
'+Tweet.firstName+' '+Tweet.lastName+'  @'+TwitterHandle.replace(" ", "_")+' · '+TimeAgo+'
'+ '
'+TwtMessage+'
'+ '
'; $(".twitter-hashtag-tweets").append(TweetElement); }); } } $(document).on('click', '.twitter-hashtag', function(event){ event.preventDefault(); var TweetId = $(this).attr('id'); var TweetData = $("#"+TweetId).data('tagData'); QB.Phone.Notifications.LoadHashtagMessages(TweetData.messages); $(".twitter-hashtag-tweets").css({"display":"block", "left":"30vh"}); $(".twitter-hashtag-tweets").animate({ left: 0+"vh" }, 150); $(".twitter-hashtags").animate({ left: -30+"vh" }, 150, function(){ $(".twitter-hashtags").css({"display":"none"}); }); HashtagOpen = true; });