Commit 67a2095b authored by Mario Chirinos's avatar Mario Chirinos

bulk upload

parent 789e2d00
...@@ -53,20 +53,20 @@ class Command(BaseCommand): ...@@ -53,20 +53,20 @@ class Command(BaseCommand):
publisher=publisher[0] publisher=publisher[0]
#---------------------------------------------------------------- #----------------------------------------------------------------
# news = News.objects.all().filter(publisher=publisher.id).order_by("-date") news = News.objects.all().filter(publisher=publisher.id).order_by("-date")
# minYear = 0 minYear = 0
# lastDate = datetime.datetime(1950,1,1) lastDate = datetime.datetime(1950,1,1)
# if news.count()>0: if news.count()>0:
# minYear = news[0].date.year minYear = news[0].date.year
# lastDate = news[0].date lastDate = news[0].date
# Year list from directory structure # Year list from directory structure
yearList = sorted([ int(y) for y in os.listdir('.') if os.path.isdir(y) ]) yearList = sorted([ int(y) for y in os.listdir('.') if os.path.isdir(y) ])
print (yearList) print (yearList)
for y in sorted(yearList): for y in sorted(yearList):
# if y >=minYear: if y >=minYear:
os.chdir(str(y)) os.chdir(str(y))
print (os.getcwd()) print (os.getcwd())
...@@ -75,8 +75,10 @@ class Command(BaseCommand): ...@@ -75,8 +75,10 @@ class Command(BaseCommand):
for f in filesList: for f in filesList:
fileDate = datetime.datetime.strptime(f[:f.find(".")], "%Y-%m-%d").date() fileDate = datetime.datetime.strptime(f[:f.find(".")], "%Y-%m-%d").date()
print(fileDate)
# if fileDate >= lastDate.date(): if fileDate >= lastDate.date():
#delete news form the most recent day in the database so it can upload the day again
News.objects.filter(date__gte=fileDate).delete()
with open(f) as data_file: with open(f) as data_file:
try: try:
print(f) print(f)
...@@ -85,7 +87,7 @@ class Command(BaseCommand): ...@@ -85,7 +87,7 @@ class Command(BaseCommand):
for d in data: for d in data:
newsDate = dateutil.parser.parse(d['date']) newsDate = dateutil.parser.parse(d['date'])
#check for repeted news #check for repeted news
# if News.objects.all().filter(Q(publisher=publisher.id)&Q(title=d['title'])&Q(date__gte=newsDate)).count() == 0: # if News.objects.all().filter(Q(publisher=publisher.id)&Q(title=d['title'])&Q(date__gte=newsDate)).count() == 0:
if d['title'] == None: if d['title'] == None:
d['title'] = "Sin Titulo" d['title'] = "Sin Titulo"
...@@ -100,24 +102,24 @@ class Command(BaseCommand): ...@@ -100,24 +102,24 @@ class Command(BaseCommand):
news.date = newsDate news.date = newsDate
# print ("topic type:", type(d['topic'])) # print ("topic type:", type(d['topic']))
# print (d['topic']) # print (d['topic'])
if "topic" not in d or d['topic'] == "" or d['topic'] == None or d['topic'] ==[]: if "topic" not in d or d['topic'] == "" or d['topic'] == None or d['topic'] ==[]:
topicstr = ["Sin Tema"] topicstr = ["Sin Tema"]
if type(d['topic'])==list: if type(d['topic'])==list:
topicstr = d['topic'] topicstr = d['topic']
# for t in d['topic']: # for t in d['topic']:
## topic, created = Topic.objects.all().get_or_create(name=t) ## topic, created = Topic.objects.all().get_or_create(name=t)
# topic, created = Topic.objects.get_or_create(name=t) # topic, created = Topic.objects.get_or_create(name=t)
# news.topic.add(topic) # news.topic.add(topic)
else: else:
# topic, created = Topic.objects.get_or_create(name=d['topic']) # topic, created = Topic.objects.get_or_create(name=d['topic'])
# news.topic.add(topic) # news.topic.add(topic)
topicstr = [d['topic']] topicstr = [d['topic']]
news.topic_raw = json.dumps(topicstr) news.topic_raw = json.dumps(topicstr)
# news.save() # news.save()
objectsList.append(news) objectsList.append(news)
News.objects.bulk_create(objectsList) News.objects.bulk_create(objectsList)
......
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