You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@community.apache.org by rg...@apache.org on 2015/07/28 06:12:56 UTC
svn commit: r1692984 - in /comdev/tools/events_list: admin.py models.py
templates/groups/index.html urls.py views.py
Author: rgardler
Date: Tue Jul 28 04:12:55 2015
New Revision: 1692984
URL: http://svn.apache.org/r1692984
Log:
beginings of an import members feature, brings in members of a group. Currently just imports Meetup ID - need to actually store useful data about each person
Modified:
comdev/tools/events_list/admin.py
comdev/tools/events_list/models.py
comdev/tools/events_list/templates/groups/index.html
comdev/tools/events_list/urls.py
comdev/tools/events_list/views.py
Modified: comdev/tools/events_list/admin.py
URL: http://svn.apache.org/viewvc/comdev/tools/events_list/admin.py?rev=1692984&r1=1692983&r2=1692984&view=diff
==============================================================================
--- comdev/tools/events_list/admin.py (original)
+++ comdev/tools/events_list/admin.py Tue Jul 28 04:12:55 2015
@@ -1,9 +1,10 @@
from django.contrib import admin
-from .models import Event, Group, Hashtag, Log
+from .models import Event, Group, Hashtag, Log, Person
admin.site.register(Event)
admin.site.register(Group)
admin.site.register(Hashtag)
+admin.site.register(Person)
admin.site.register(Log)
Modified: comdev/tools/events_list/models.py
URL: http://svn.apache.org/viewvc/comdev/tools/events_list/models.py?rev=1692984&r1=1692983&r2=1692984&view=diff
==============================================================================
--- comdev/tools/events_list/models.py (original)
+++ comdev/tools/events_list/models.py Tue Jul 28 04:12:55 2015
@@ -25,7 +25,6 @@ class Hashtag(models.Model):
class Person(models.Model):
meetupID = models.BigIntegerField(verbose_name = "Meetups.com ID", unique=True)
- lastMeetupVisit = models.DateTimeField()
class Event(models.Model):
name = models.CharField(max_length=200)
Modified: comdev/tools/events_list/templates/groups/index.html
URL: http://svn.apache.org/viewvc/comdev/tools/events_list/templates/groups/index.html?rev=1692984&r1=1692983&r2=1692984&view=diff
==============================================================================
--- comdev/tools/events_list/templates/groups/index.html (original)
+++ comdev/tools/events_list/templates/groups/index.html Tue Jul 28 04:12:55 2015
@@ -34,7 +34,7 @@
<td>{{ group.state }}</td>
<td>{{ group.country }}</td>
{% if can_import %}
- <td><a href="">Import Members</a></td>
+ <td><a href="{% url 'importMembers' group.id %}">Import Members</a></td>
{% endif %}
</tr>
{% endfor %}
Modified: comdev/tools/events_list/urls.py
URL: http://svn.apache.org/viewvc/comdev/tools/events_list/urls.py?rev=1692984&r1=1692983&r2=1692984&view=diff
==============================================================================
--- comdev/tools/events_list/urls.py (original)
+++ comdev/tools/events_list/urls.py Tue Jul 28 04:12:55 2015
@@ -9,4 +9,5 @@ urlpatterns = [
url(r'^importMeetups/$', views.importMeetups, name='importMeetups'),
url(r'^groups$', views.groupIndex, name='groupIndex'),
+ url(r'^groups/(?P<group_id>[0-9]+)/importMembers/$', views.importMembers, name='importMembers'),
]
Modified: comdev/tools/events_list/views.py
URL: http://svn.apache.org/viewvc/comdev/tools/events_list/views.py?rev=1692984&r1=1692983&r2=1692984&view=diff
==============================================================================
--- comdev/tools/events_list/views.py (original)
+++ comdev/tools/events_list/views.py Tue Jul 28 04:12:55 2015
@@ -2,13 +2,20 @@ from django.conf import settings
from django.shortcuts import get_object_or_404, render, redirect
from django.http import HttpResponse
from django.template import RequestContext, loader
-from events_list.models import Event, Group, Hashtag, Log
+from events_list.models import Event, Group, Hashtag, Log, Person
from datetime import datetime, timedelta
import json
import logging
import urllib2
import sys
+# Note that this API key is *my* API key (rbowen) and if we start using
+# it more than a few dozen times an hour it's likely to get revoked.
+# Please play nice.
+# FIXME: make this a configuration value
+MEETUP_API_KEY = "3a7711454d145e404e531c2ee6f391d"
+
+
logger = logging.getLogger(__name__)
def index(request):
@@ -75,6 +82,37 @@ def _canImport():
pass
return can_import
+def importMembers(request, group_id):
+ group = get_object_or_404(Group, pk = group_id)
+
+ # Import members of a given group
+ log = Log()
+ log.description = "Members imported"
+ log.action_type = Log.EVENT_IMPORT
+ log.save()
+
+ url = "https://api.meetup.com/2/members?offset=0&format=json&group_id=18712511&photo-host=public&page=20&order=name&sig_id=148657742&key=" + MEETUP_API_KEY
+ response = urllib2.urlopen(url)
+ result = response.read()
+
+ data = json.loads(result)
+ members = data['results']
+
+ for member in members:
+ try:
+ person = Person.objects.get(meetupID = member['id'])
+ except Person.DoesNotExist:
+ person = Person()
+
+ try:
+ person.meetupID = member['id']
+ person.save()
+ except:
+ print('Unable to save Person object: '), sys.exc_info()[0], sys.exc_info()[1]
+
+
+ return redirect('groupIndex')
+
def importMeetups(request):
# Import latest meetups from meetup.com, if we didn't import them within the last hour
log = Log()
@@ -82,7 +120,6 @@ def importMeetups(request):
log.action_type = Log.EVENT_IMPORT
log.save()
-
# get all the hashtags from the DB
hashtags = Hashtag.objects.all().exclude(name = "Meetup")
@@ -97,15 +134,9 @@ def importMeetups(request):
def _callMeetupsCom(hashtag):
print "searching meetups.com for " + hashtag.name
- # Note that this API key is *my* API key (rbowen) and if we start using
- # it more than a few dozen times an hour it's likely to get revoked.
- # Please play nice.
- # FIXME: make this a configuration value
- key = "3a7711454d145e404e531c2ee6f391d"
-
# Radius is defined around Lexington, KY, but it's infinite radius, so
# should work everywhere.
- url = "https://api.meetup.com/2/open_events?&sign=true&photo-host=public&state=ky&city=lexington&country=usa&text=" + hashtag.name + "&radius=10000&sign=true&key=" + key
+ url = "https://api.meetup.com/2/open_events?&sign=true&photo-host=public&state=ky&city=lexington&country=usa&text=" + hashtag.name + "&radius=10000&sign=true&key=" + MEETUP_API_KEY
print "Fetching meetups ..."
@@ -126,7 +157,7 @@ def _callMeetupsCom(hashtag):
keys = groups.keys()
keyarg = ",".join( keys )
- group_url = "https://api.meetup.com/2/groups?&sign=true&photo-host=public&group_id=" + keyarg + "&key=" + key
+ group_url = "https://api.meetup.com/2/groups?&sign=true&photo-host=public&group_id=" + keyarg + "&key=" + MEETUP_API_KEY
response = urllib2.urlopen( group_url )
m = response.read()