Commit b34d29ff authored by Mario Chirinos's avatar Mario Chirinos

api

parent 60cd6644
...@@ -22,7 +22,7 @@ class AuthRequiredMiddleware(object): ...@@ -22,7 +22,7 @@ class AuthRequiredMiddleware(object):
if request.path_info == reverse('ws-news-list2') or request.path_info == reverse('signup'): if request.path_info == reverse('api-download-news') reverse('ws-news-list2') or request.path_info == reverse('signup'):
return response return response
if not request.user.is_authenticated and request.path_info != reverse('login'): if not request.user.is_authenticated and request.path_info != reverse('login'):
......
...@@ -24,7 +24,7 @@ urlpatterns = [ ...@@ -24,7 +24,7 @@ urlpatterns = [
url(r'^ws/playlist/(?P<publisher>\w+)/(?P<start>\w+)/(?P<end>\w+)/$', views.wsAudioList, name='ws-audio-list'), url(r'^ws/playlist/(?P<publisher>\w+)/(?P<start>\w+)/(?P<end>\w+)/$', views.wsAudioList, name='ws-audio-list'),
url(r'^ws/wordcloud/(?P<newsId>\w+)/$', views.wsWordCloud, name='ws-wordcloud'), url(r'^ws/wordcloud/(?P<newsId>\w+)/$', views.wsWordCloud, name='ws-wordcloud'),
url(r'^ws/suggestions/(?P<newsId>\w+)/$', views.wsSuggestions, name='ws-suggestions'), url(r'^ws/suggestions/(?P<newsId>\w+)/$', views.wsSuggestions, name='ws-suggestions'),
url(r'^api/download/$', views.apiDownloadNews, name='api-download-news'),
url(r'^audio/$', views.audioList, name='audio'), url(r'^audio/$', views.audioList, name='audio'),
url(r'^audio/(?P<publisher>\w+)$', views.audioPublisher, name='audio'), url(r'^audio/(?P<publisher>\w+)$', views.audioPublisher, name='audio'),
......
...@@ -5,7 +5,7 @@ from django.shortcuts import render ...@@ -5,7 +5,7 @@ from django.shortcuts import render
# Create your views here. # Create your views here.
from django.conf import settings from django.conf import settings
from catalog.models import Publisher, News, Search, audioTime from catalog.models import Publisher, News, Search, audioTime, Apikey
from django.core.exceptions import ObjectDoesNotExist from django.core.exceptions import ObjectDoesNotExist
from django.shortcuts import redirect from django.shortcuts import redirect
from django.http import HttpResponse from django.http import HttpResponse
...@@ -381,7 +381,7 @@ def wsNewsList(request):#, publisherShortName="all"): ...@@ -381,7 +381,7 @@ def wsNewsList(request):#, publisherShortName="all"):
except PageNotAnInteger: except PageNotAnInteger:
news = paginator.page(1) news = paginator.page(1)
except EmptyPage: except EmptyPage:
news = paginator.page(paginator.num_pages) news = paginator.page(paginator.num_pages)
for n in news: for n in news:
row = list() row = list()
...@@ -426,6 +426,38 @@ def wsDownloadNews(request): ...@@ -426,6 +426,38 @@ def wsDownloadNews(request):
response = HttpResponse(s.getvalue(), content_type="application/x-zip-compressed") response = HttpResponse(s.getvalue(), content_type="application/x-zip-compressed")
response['Content-Disposition'] = 'attachment; filename="news_'+ str(int(time.time()))+'.zip"' response['Content-Disposition'] = 'attachment; filename="news_'+ str(int(time.time()))+'.zip"'
return response return response
#-------------------------------------------------------------------------------
def apiDownloadNews(request):
apiuser = Apikey.objects.get(key=request.GET["key"]]).user
if apiuser is None:
return HttpResponse(json.dumps("{}"), content_type="application/json")
else:
request.user=apiuser
news = getNewsByRequest(request)
s = BytesIO()
zf = zipfile.ZipFile(s, "w")
zf.writestr("setting.txt", json.dumps(request.GET))
data = news2JSON(news);
if request.GET['format']=="JSON":
zf.writestr("data.json", json.dumps(data))
if request.GET['format']=="CSV":
csvString = StringIO()
writer = csv.writer(csvString,quoting=csv.QUOTE_ALL)
for d in data:
row = [ d[k] for k in d ]
writer.writerow( row )
zf.writestr("data.csv", csvString.getvalue())
zf.close()
response = HttpResponse(s.getvalue(), content_type="application/x-zip-compressed")
response['Content-Disposition'] = 'attachment; filename="news_'+ str(int(time.time()))+'.zip"'
return response
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
def wsWordCloud(request, newsId): def wsWordCloud(request, newsId):
text = News.objects.filter(id=newsId)[0].text text = News.objects.filter(id=newsId)[0].text
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment