--- /dev/null
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.2 on 2016-02-18 22:53
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('tweet', '0008_auto_20160218_2208'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='tweet',
+ name='address',
+ field=models.TextField(blank=True, default=None, max_length=1020, null=True, verbose_name='address'),
+ ),
+ ]
text = models.TextField('tweet text', max_length=140)
latitude = models.FloatField('latitude', null=True)
longitude = models.FloatField('longitude', null=True)
+ address = models.TextField('address', max_length=1020, null=True, blank=True, default=None)
conforms_to_terms = models.BooleanField('tweet confirms to filters')
def __str__(self):
(tweet.latitude,tweet.longitude) = status['geo']['coordinates']
return tweet
- def location(self):
+ def fill_address(self):
+ if self.address is not None:
+ return self.address
if self.latitude is not None and self.longitude is not None:
try:
geolocator = OpenMapQuest(api_key = settings.TWEET_MAPQUEST_API_KEY, timeout=10)
#print("lat,long:[{},{}]".format(self.latitude,self.longitude))
location = geolocator.reverse((self.latitude, self.longitude), exactly_one=True)
+ self.address = location.address
return location.address
except GeocoderServiceError as e:
logger.exception("Error during reverse geocoding")
#logger.info("Stream tweet: {}".format(data))
tweet = Tweet.from_status(data)
tweet.conforms_to_terms = check_match(data)
+ tweet.fill_address()
tweet.save()
self.count += 1
if self.count%100 == 0:
exporter = ExcelExporter(filename)
tweets = Tweet.objects.filter(conforms_to_terms=True).order_by('-pk')
for tweet in tweets:
+ tweet.fill_address()
+ tweet.save(update_fields=['address'])
exporter.add_tweet(tweet)
exporter.close()
#self.worksheet.write(row, 6, tweet["user"]["name"])
if tweet.latitude is not None and tweet.longitude is not None:
self.worksheet.write(row, 7, "{},{}".format(tweet.latitude, tweet.longitude))
- self.worksheet.write(row, 8, tweet.location())
+ address = tweet.fill_address()
+ self.worksheet.write(row, 8, address)
#self.worksheet.write(row, 19, tweet["user"]["location"])