Last active
August 29, 2015 14:12
-
-
Save n00ge/b03a9dbffc9ebda689c6 to your computer and use it in GitHub Desktop.
Meetup.com icon and count widget
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<html> | |
<head> | |
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> | |
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> | |
<script src="local.js"></script> | |
<script src="api_key.js"></script> | |
<script id="config" type="text/javascript" charset="utf-8"> | |
var $parameters = { | |
urlname: "hgskiclub", | |
width: '250', | |
height:570, | |
bgcolor:'#1a7b8f', | |
textcolor:'#fff', | |
buttontextcolor:'#fff', | |
buttonbgcolor:'#1a7b8f', | |
buttonborder:'#1a7b8f', | |
fontfamily:'inherit', | |
fontsize:'inherit', | |
_name: "Meetup Group Stats Custom", | |
_description: "Shows basic stats on your favorite Meetup group. Uses basic styles and has options to set fonts and colors." | |
}; | |
var $queries = { | |
groups: function() { | |
return mup_widget.api_call("/2/groups", {group_urlname: $parameters.urlname}); | |
}, | |
events: function() { | |
return mup_widget.api_call("/2/events", {group_urlname: $parameters.urlname, page: '1'}); | |
} | |
}; | |
//$('.mug-badge .mup-widget, .mug-badge .mup-widget .mup-hd a').css('background', parameters.bgcolor); | |
</script> | |
<script type="text/javascript" charset="utf-8"> | |
mup_widget.with_jquery(function($, ctx) { | |
var group = '', | |
months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'], | |
addLink = function(content, link) { | |
return '<a target="_blank" href="' + link + '" style="color: #fff">' + content + '</a>'; | |
}, | |
addImage = function(src, alt) { | |
return ""; | |
}, | |
addStarRating = function(rating) { | |
var base_url = 'http://img1.meetupstatic.com/9260736631256287675/img/star_'; | |
var starlink = ''; | |
if (rating == 0) { | |
return 'Not Yet Rated'; | |
}else if (rating < 1.25) { | |
starlink = "100.png"; | |
}else if (rating < 1.75) { | |
starlink = "150.png"; | |
}else if (rating < 2.25) { | |
starlink = "200.png"; | |
}else if (rating < 2.75) { | |
starlink = "250.png"; | |
}else if (rating < 3.25) { | |
starlink = "300.png"; | |
}else if (rating < 3.75) { | |
starlink = "350.png"; | |
}else if (rating < 4.25) { | |
starlink = "400.png"; | |
}else if (rating < 4.75) { | |
starlink = "450.png"; | |
}else { | |
starlink = "500.png"; | |
} | |
return ''; | |
}, | |
addLeadingZero = function( num ) { | |
return (num < 10) ? ('0' + num) : num; | |
}, | |
getFormattedDate = function( millis ) { | |
var date = new Date( millis ); | |
return months[date.getMonth()] + ' ' + addLeadingZero( date.getDate() ) + ', ' + date.getFullYear().toString(); | |
}, | |
getFormattedTime = function( millis ) { | |
var time = new Date( millis ), | |
hours = time.getHours(), | |
min = time.getMinutes(), | |
ampm = (hours > 11) ? 'PM' : 'AM'; | |
min = (min < 10) ? ('0' + min) : min; | |
hours = (hours == 0) ? 1 : hours; | |
hours = (hours > 12) ? hours-12 : hours; | |
return hours + ':' + min + ' ' + ampm; | |
}, | |
numberFormat = function(nStr){ | |
nStr += ''; | |
x = nStr.split('.'); | |
x1 = x[0]; | |
x2 = x.length > 1 ? '.' + x[1] : ''; | |
var rgx = /(\d+)(\d{3})/; | |
while (rgx.test(x1)) | |
x1 = x1.replace(rgx, '$1' + ',' + '$2'); | |
return x1 + x2; | |
}; | |
$.getJSON($queries.groups(), function(data) { | |
if (data.results.length == 0) { | |
$('.mug-badge', ctx).width($parameters.width); | |
$('.mug-badge', ctx).append( | |
'<div class="mup-widget error">\ | |
<div class="errorMsg">Oops. No results for "' + $parameters.urlname + '"</div>\ | |
</div>'); | |
} | |
else { | |
group = data.results[0]; | |
$('.mug-badge', ctx).css('max-width',$parameters.width); | |
$('.mug-badge', ctx).append( | |
'<div class="mup-widget">\ | |
<div class="mup-bd">\ | |
<span class="mup-stats">' + addLink('<img src="http://img1.meetupstatic.com/84869143793177372874/img/birddog/everywhere_widget.png" style="vertical-align:middle"> ' + numberFormat(group.members) + ' ' + group.who, group.link) + '</span>\ | |
</div>\ | |
</div>' | |
); | |
$.getJSON($queries.events(), function(data) { | |
if (data.status && data.status.match(/^200/) == null) { | |
alert(data.status + ": " + data.details); | |
} else { | |
if (data.results.length == 0) { | |
$('.next-event', ctx).append('<span class="mup-tlabel">'+addLink('Suggest new ideas for Meetups!',group.link)+'</span>'); | |
} else { | |
var event = data.results[0]; | |
var venue = event.venue; | |
var city; | |
if (!venue || !venue.city) { | |
city = group.city; | |
} else { | |
city = venue.city; | |
} | |
var state_country; | |
if (!venue || !venue.state) { | |
if (group.state == "") { | |
state_country = group.country.toUpperCase(); | |
} else { | |
state_country = group.state; | |
} | |
} else { | |
state_country = venue.state; | |
} | |
var venue_addr; | |
if (venue) { | |
if (venue.name !== undefined) { | |
venue_addr = venue.name + " - "; | |
} else if (venue.address_1 !== undefined) { | |
venue_addr = venue.address_1 + " - "; | |
} else { | |
venue_addr = ""; | |
} | |
} else { | |
venue_addr = ""; | |
} | |
var location = venue_addr + city + ", " + state_country; | |
$('.next-event', ctx).append('<h4><div class="mup-tlabel">'+getFormattedDate(event.time) + '   |   ' + getFormattedTime(event.time) + "</div>" + addLink(event.name, event.event_url)+'<div class="mup-tlabel">' + location + "</div></h4>"); | |
} | |
} | |
}); | |
$('.mug-badge .mup-widget, .mug-badge .mup-widget .mup-hd a').css({ | |
'background': $parameters.bgcolor, | |
'color': $parameters.textcolor | |
}); | |
$('.mug-badge').css({ | |
'font-family': $parameters.fontfamily, | |
'font-size': $parameters.fontsize, | |
}); | |
$('.mup-img-wrap img').css('max-width', '90%'); | |
} | |
}); | |
}); | |
</script> | |
</head> | |
<body class="framed-mup-widget"> | |
<div class="mug-badge"></div> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment