Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Meetup integration #7 #18

Merged
merged 2 commits into from
Jun 10, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
"cheerio": "0.19.0",
"jquery": "2.1.4",
"jsonfile": "2.0.1",
"moment": "^2.10.3",
"react": "0.13.3",
"react-bootstrap": "0.22.6",
"react-router": "0.13.3",
Expand Down
4 changes: 3 additions & 1 deletion scripts/v1-extractor.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ var extractConferencesAndCommunities = function (html) {
var website = null;
var twitter = null;
var facebook = null;
var meetup = null;
$('div + div > p', contentNode).map(function (i, paragraph) {
var paragraphNode = $(paragraph);
if (paragraphNode.children().length === 0) {
Expand Down Expand Up @@ -63,7 +64,8 @@ var extractConferencesAndCommunities = function (html) {
description: description.replace(/\s+/g, " ").trim(),
website: website,
twitter: twitter,
facebook: facebook
facebook: facebook,
meetup: meetup
};
if (_.contains(communitiesId, id)) {
communities.push(item);
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/org/devconferences/events/Event.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,13 @@ public class Event {
public String website;
public String twitter;
public String facebook;
public String meetup;
public String city;
public List<String> tags = new ArrayList<>();
public Type type;
public GeoPoint location;


public enum Type{
COMMUNITY, CONFERENCE;
}
Expand Down
12 changes: 11 additions & 1 deletion src/main/resources/app/_js/components/event.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ var ReactBootstrap = require('react-bootstrap');
var WebsiteLink = require('./social/website-link');
var TwitterLink = require('./social/twitter-link');
var FacebookLink = require('./social/facebook-link');
var MeetupLink = require('./social/meetup-link');

var Grid = ReactBootstrap.Grid;
var Row = ReactBootstrap.Row;
Expand Down Expand Up @@ -40,7 +41,15 @@ var Event = React.createClass({
)
}
};

var renderMeetup = function (event) {
if (event.meetup) {
return (
<p>
<MeetupLink id={event.meetup}/>
</p>
);
}
};
var event = this.props.event;
return (
<div>
Expand All @@ -61,6 +70,7 @@ var Event = React.createClass({
{ renderWebsite(event) }
{ renderTwitter(event) }
{ renderFacebook(event) }
{ renderMeetup(event) }
</Col>
</Row>
</Grid>
Expand Down
60 changes: 60 additions & 0 deletions src/main/resources/app/_js/components/social/meetup-link.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
var React = require('react');
var ReactBootstrap = require('react-bootstrap');
var $ = require('jquery');
var moment = require('moment');

var Glyphicon = ReactBootstrap.Glyphicon;
var Label = ReactBootstrap.Label;

var MeetupLink = React.createClass({

getInitialState: function () {
return {
meetup: null
};
},

componentDidMount: function () {
var url = '/api/v2/meetup/' + this.props.id;
$.ajax({
url: url,
dataType: 'json',
cache: false,
success: function (data) {
this.setState({meetup: data});
}.bind(this),
error: function (xhr, status, err) {
// Redirect to homepage
console.error(url, status, err.toString());
this.transitionTo('/');
}.bind(this)
});
},

render: function () {
if (this.state.meetup && this.state.meetup.nextEvent) {
var nextEvent = this.state.meetup.nextEvent;
var date = new Date(nextEvent.time);
var formattedDate = moment(date).format("DD/MM/YYYY HH:mm");
return (
<div>
<p className="fa fa-users">
<a href={this.state.meetup.url}> {this.state.meetup.url}</a>
</p>
<p>
<Label bsStyle='danger'>Next event:</Label> <a target="_blank" href={nextEvent.url}>{nextEvent.name} ({formattedDate})</a>
</p>
</div>
)
} else {
// TODO loading icon ?
return (
<div className="container">
Chargement ...
</div>
)
}
}
});

module.exports = MeetupLink;
4 changes: 4 additions & 0 deletions src/main/resources/elastic/events-mapping.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@
"type": "string",
"index": "not_analyzed"
},
"meetup": {
"type": "string",
"index": "not_analyzed"
},
"website": {
"type": "string"
},
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/v1/nantes.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"id":"nantes","name":"Nantes","conferences":[{"id":"devfest","name":"DevFest Nantes","avatar":"http://www.devfest.info/images/gdgbig.png","description":"Il s’agit d’une journée complète de conférences sur Android, Dart, AppEngine, Angular JS, Chrome, HTML5, Google Drive, Go, GWT... Une occasion unique de partager et d’échanger autour des technologies du Web et du Cloud. Cet évènement a regroupé plus de 500 participants en 2014 à Nantes.","website":"http://devfest.gdgnantes.com","twitter":"gdgnantes","facebook":null},{"id":"web2day","name":"Web2Day","avatar":"https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xfa1/v/t1.0-1/p160x160/10173650_10154214770540085_5248290910534750476_n.png?oh=a32e5babaac5cb37d8fc59dc9146be7e&oe=5507021E&__gda__=1425970734_80e38ad8be27f0ad06b9430fc67145b2","description":"Le web2day est le festival du numérique organisé par Atlantic 2.0 le réseau des acteurs du web et de l'innovation des Pays de la Loire. Prochaine édition les 3, 4 et 5 Juin 2015 ! Au programme 3 jours de conférences, de débats et d'animation sur les sujets qui font l'actualité des nouvelles technologie. Une centaine d'experts de France et d'ailleurs sont présents pour échanger pendant ces 3 jours intenses du numérique.","website":"http://www.web2day-nantes.org/","twitter":"web2dayNantes","facebook":null},{"id":"agiletour","name":"Agile Tour Nantes","avatar":"http://www.agilenantes.org/wp-content/uploads/2014/08/agiletourNantes2014logos.png","description":"Une journée complète autour des méthodologies Agile à Nantes","website":"http://www.agilenantes.org/agile-tour-nantes-2014/","twitter":"agilenantes","facebook":null},{"id":"rebuild","name":"Rebuild","avatar":"https://lescommunautesms-public.sharepoint.com/logos/rebuild_logo_main.png","description":"Ce salon informatique et communautaire, vous propose de rencontrer des experts Microsoft reconnus, de découvrir l’écosystème des partenaires Microsoft et de vous aider à mieux comprendre les produits et les technologies Microsoft pour les intégrer dans vos projets informatiques.","website":"https://lescommunautesms-public.sharepoint.com/rebuild","twitter":null,"facebook":null}],"communities":[{"id":"nantesjug","name":"Nantes JUG","avatar":"http://www.nantesjug.org/images/site/logo-rond-bleu-transparent.png","description":"L'objectif du Nantes Java User Group est de permettre à des acteurs et utilisateurs du langage Java (professionnels, communautés open source, universitaires, étudiants) de se rencontrer et d'échanger autour des technologies Java. Des rencontres seront organisées tous mois, sous forme de réunions gratuites, ouvertes à tous.","website":"http://www.nantesjug.org","twitter":"nantesjug","facebook":null,"tags":["Java", "JUG"]},{"id":"nantesgdg","name":"GDG Nantes","avatar":"https://lh4.googleusercontent.com/-4VB6XGFv75Q/AAAAAAAAAAI/AAAAAAAAAGg/NbuA_LKEmtk/photo.jpg","description":"Les Google Developer Groups (GDGs) sont des groupes de développeurs intéressés par les technologies Google :GWT, Android, App Engine, les APIs Google, mais également les techno du Web comme HTML5, CSS3... Nous nous intéressons à tout type de techno que ce soit dans le domaine de la mobilité, du cloud ou du web. L’objectif du GDG Nantes est d’organiser des évènements de manière régulière :","website":"http://www.gdgnantes.com","twitter":"gdgnantes","facebook":null},{"id":"nantesht","name":"Human Talks Nantes","avatar":"http://humantalks.com/assets/logo-HumanTalks-5e952765425ff87840b0c920975c89ef.png","description":"Human Talks, c'est un événement mensuel pour les développeurs. Chaque mois, des développeurs se succèdent pour présenter en 10 minutes un sujet de leur choix (language, méthode de programmation, projet perso, design...) Quelque soit votre niveau vous pouvez proposer un talk aux organisateurs du Human Talks de votre ville. L'accès est gratuit !","website":"http://humantalks.com/cities/nantes","twitter":"HumanTalks","facebook":null},{"id":"nantesjs","name":"Nantes JS","avatar":"http://nantesjs.org/nantesjs-logo.svg","description":"Communauté Nantaise des utilisateurs de JavaScript","website":"http://www.nantesjs.org","twitter":"NantesJS","facebook":null,"tags":["Javascript", "JS"]},{"id":"nantesfp","name":"Nantes FP","avatar":"https://pbs.twimg.com/profile_images/1745815565/logo.png","description":"Nantes FP est un groupe centré sur la découverte et l’apprentissage de la programmation fonctionnelle. Des séances sont organisées régulièrement à Nantes autour de sujets divers (découverte de haskell, prolog, coq, …). Les débutants et ceux ne connaissant pas encore la programmation fonctionnelle sont bienvenus et sont accompagnés dans leur découverte.","website":"http://nantes-fp.github.io","twitter":"NantesJS","facebook":null},{"id":"nantesmug","name":"MongoDB User Group Nantes","avatar":"http://photos3.meetupstatic.com/photos/theme_head/a/0/7/3/full_6641075.jpeg","description":"Groupe des utilisateurs (ou pas) de MongoDB à Nantes.","website":"http://www.meetup.com/Nantes-MongoDB-User-Group","twitter":null,"facebook":null},{"id":"nantesagile","name":"Agile Nantes","avatar":"https://pbs.twimg.com/profile_images/2649428614/1ae2858cd8bc6841cf1281dc4e7fd52c_reasonably_small.png","description":"Association de promotion des méthodes Agiles sur Nantes et sa région.","website":"http://www.agilenantes.org","twitter":"agilenantes","facebook":null},{"id":"nantespy","name":"Nantes Python Meetup","avatar":"https://pbs.twimg.com/profile_images/467702363122188289/u0Nm3kUU.png","description":"Groupe d'utilisateurs Python de Nantes. Un rendez-vous pour la communauté développeurs Python et ceux qui s'intéressent à cet éco-système. Ce peut être un lieu de présentation de projets et d'échanges conviviaux.","website":"http://www.meetup.com/Nantes-Python-Meetup","twitter":"pythonnantes","facebook":null},{"id":"nantesml","name":"Nantes Machine Learning Meetup","avatar":"/img/no_logo.png","description":"Nous sommes développeurs et chercheurs avec un intérêt dans l'apprentissage automatique. Nous nous retrouverons pour discuter concrètement nos projets dans l'apprentissage automatique, réseau de neurones artificiels, modèles graphiques probabilistes, et traitement automatique du langage naturel. Nous pourrions également, pour ceux que s'y intéressent, former des groupes pour suivre des MOOC ML (Stanford et Toronto, par exemple).","website":"http://www.meetup.com/Nantes-Machine-Learning-Meetup","twitter":null,"facebook":null}]}
{"id":"nantes","name":"Nantes","conferences":[{"id":"devfest","name":"DevFest Nantes","avatar":"http://www.devfest.info/images/gdgbig.png","description":"Il s’agit d’une journée complète de conférences sur Android, Dart, AppEngine, Angular JS, Chrome, HTML5, Google Drive, Go, GWT... Une occasion unique de partager et d’échanger autour des technologies du Web et du Cloud. Cet évènement a regroupé plus de 500 participants en 2014 à Nantes.","website":"http://devfest.gdgnantes.com","twitter":"gdgnantes","facebook":null},{"id":"web2day","name":"Web2Day","avatar":"https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xfa1/v/t1.0-1/p160x160/10173650_10154214770540085_5248290910534750476_n.png?oh=a32e5babaac5cb37d8fc59dc9146be7e&oe=5507021E&__gda__=1425970734_80e38ad8be27f0ad06b9430fc67145b2","description":"Le web2day est le festival du numérique organisé par Atlantic 2.0 le réseau des acteurs du web et de l'innovation des Pays de la Loire. Prochaine édition les 3, 4 et 5 Juin 2015 ! Au programme 3 jours de conférences, de débats et d'animation sur les sujets qui font l'actualité des nouvelles technologie. Une centaine d'experts de France et d'ailleurs sont présents pour échanger pendant ces 3 jours intenses du numérique.","website":"http://www.web2day-nantes.org/","twitter":"web2dayNantes","facebook":null},{"id":"agiletour","name":"Agile Tour Nantes","avatar":"http://www.agilenantes.org/wp-content/uploads/2014/08/agiletourNantes2014logos.png","description":"Une journée complète autour des méthodologies Agile à Nantes","website":"http://www.agilenantes.org/agile-tour-nantes-2014/","twitter":"agilenantes","facebook":null},{"id":"rebuild","name":"Rebuild","avatar":"https://lescommunautesms-public.sharepoint.com/logos/rebuild_logo_main.png","description":"Ce salon informatique et communautaire, vous propose de rencontrer des experts Microsoft reconnus, de découvrir l’écosystème des partenaires Microsoft et de vous aider à mieux comprendre les produits et les technologies Microsoft pour les intégrer dans vos projets informatiques.","website":"https://lescommunautesms-public.sharepoint.com/rebuild","twitter":null,"facebook":null}],"communities":[{"id":"nantesjug","name":"Nantes JUG","avatar":"http://www.nantesjug.org/images/site/logo-rond-bleu-transparent.png","description":"L'objectif du Nantes Java User Group est de permettre à des acteurs et utilisateurs du langage Java (professionnels, communautés open source, universitaires, étudiants) de se rencontrer et d'échanger autour des technologies Java. Des rencontres seront organisées tous mois, sous forme de réunions gratuites, ouvertes à tous.","website":"http://www.nantesjug.org","twitter":"nantesjug","facebook":null},{"id":"nantesgdg","name":"GDG Nantes","avatar":"https://lh4.googleusercontent.com/-4VB6XGFv75Q/AAAAAAAAAAI/AAAAAAAAAGg/NbuA_LKEmtk/photo.jpg","description":"Les Google Developer Groups (GDGs) sont des groupes de développeurs intéressés par les technologies Google :GWT, Android, App Engine, les APIs Google, mais également les techno du Web comme HTML5, CSS3... Nous nous intéressons à tout type de techno que ce soit dans le domaine de la mobilité, du cloud ou du web. L’objectif du GDG Nantes est d’organiser des évènements de manière régulière :","website":"http://www.gdgnantes.com","twitter":"gdgnantes","facebook":null},{"id":"nantesht","name":"Human Talks Nantes","avatar":"http://humantalks.com/assets/logo-HumanTalks-5e952765425ff87840b0c920975c89ef.png","description":"Human Talks, c'est un événement mensuel pour les développeurs. Chaque mois, des développeurs se succèdent pour présenter en 10 minutes un sujet de leur choix (language, méthode de programmation, projet perso, design...) Quelque soit votre niveau vous pouvez proposer un talk aux organisateurs du Human Talks de votre ville. L'accès est gratuit !","website":"http://humantalks.com/cities/nantes","twitter":"HumanTalks","facebook":null},{"id":"nantesjs","name":"Nantes JS","avatar":"http://nantesjs.org/nantesjs-logo.svg","description":"Communauté Nantaise des utilisateurs de JavaScript","website":"http://www.nantesjs.org","twitter":"NantesJS","facebook":null},{"id":"nantesfp","name":"Nantes FP","avatar":"https://pbs.twimg.com/profile_images/1745815565/logo.png","description":"Nantes FP est un groupe centré sur la découverte et l’apprentissage de la programmation fonctionnelle. Des séances sont organisées régulièrement à Nantes autour de sujets divers (découverte de haskell, prolog, coq, …). Les débutants et ceux ne connaissant pas encore la programmation fonctionnelle sont bienvenus et sont accompagnés dans leur découverte.","website":"http://nantes-fp.github.io","twitter":"NantesJS","facebook":null},{"id":"nantesmug","name":"MongoDB User Group Nantes","avatar":"http://photos3.meetupstatic.com/photos/theme_head/a/0/7/3/full_6641075.jpeg","description":"Groupe des utilisateurs (ou pas) de MongoDB à Nantes.","website":"http://www.meetup.com/Nantes-MongoDB-User-Group","twitter":null,"facebook":null},{"id":"nantesagile","name":"Agile Nantes","avatar":"https://pbs.twimg.com/profile_images/2649428614/1ae2858cd8bc6841cf1281dc4e7fd52c_reasonably_small.png","description":"Association de promotion des méthodes Agiles sur Nantes et sa région.","website":"http://www.agilenantes.org","twitter":"agilenantes","facebook":null},{"id":"nantespy","name":"Nantes Python Meetup","avatar":"https://pbs.twimg.com/profile_images/467702363122188289/u0Nm3kUU.png","description":"Groupe d'utilisateurs Python de Nantes. Un rendez-vous pour la communauté développeurs Python et ceux qui s'intéressent à cet éco-système. Ce peut être un lieu de présentation de projets et d'échanges conviviaux.","website":"http://www.meetup.com/Nantes-Python-Meetup","twitter":"pythonnantes","facebook":null},{"id":"nantesml","name":"Nantes Machine Learning Meetup","avatar":"/img/no_logo.png","description":"Nous sommes développeurs et chercheurs avec un intérêt dans l'apprentissage automatique. Nous nous retrouverons pour discuter concrètement nos projets dans l'apprentissage automatique, réseau de neurones artificiels, modèles graphiques probabilistes, et traitement automatique du langage naturel. Nous pourrions également, pour ceux que s'y intéressent, former des groupes pour suivre des MOOC ML (Stanford et Toronto, par exemple).","website":null,"twitter":null,"facebook":null,"meetup":"http://www.meetup.com/Nantes-Machine-Learning-Meetup"}]}