Skip to content

Instantly share code, notes, and snippets.

@n00ge
Last active August 29, 2015 14:12
Show Gist options
  • Save n00ge/b03a9dbffc9ebda689c6 to your computer and use it in GitHub Desktop.
Save n00ge/b03a9dbffc9ebda689c6 to your computer and use it in GitHub Desktop.
Meetup.com icon and count widget
<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) + ' &nbsp | &nbsp ' + 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