def parse_book(item): book = get_or_default( Book, Book(), slug=nslugify(item['data']['bookTitle'], _parse_date(item).year, item['data'].get('volume'), item['data'].get('series')), year=_parse_date(item).year, ) book.title = item['data']['bookTitle'] book.isbn = _assign_if_exists(item, 'ISBN') book.volume = _assign_if_exists(item, 'volume') book.series = _assign_if_exists(item, 'series') book.publisher = _assign_if_exists(item, 'publisher') book.place = _assign_if_exists(item, 'place') book.published = _parse_date(item) book.year = book.published.year book.save() _save_publication_editors(_extract_editors(item), book) return book
def parse_proceedings(item): if item['data']['proceedingsTitle'] != '': proceedings_title = item['data']['proceedingsTitle'] else: if item['data']['conferenceName'] != '': proceedings_title = 'Proceedings of conference: %s' % item['data']['conferenceName'] else: proceedings_title = 'Proceedings for article: %s' % item['data']['title'] proceedings = get_or_default( Proceedings, Proceedings(), slug=nslugify(proceedings_title, _parse_date(item).year, item['data'].get('volume')), year=_parse_date(item).year, ) proceedings.title = proceedings_title proceedings.isbn = _assign_if_exists(item, 'ISBN') proceedings.volume = _assign_if_exists(item, 'volume') proceedings.series = _assign_if_exists(item, 'series') proceedings.publisher = _assign_if_exists(item, 'publisher') proceedings.place = _assign_if_exists(item, 'place') proceedings.published = _parse_date(item) proceedings.year = proceedings.published.year proceedings.save() return proceedings
def save(self, *args, **kwargs): old_slug = self.slug # Publish RDF data if getattr(settings, 'ENABLE_RDF_PUBLISHING', False): delete_event_rdf(self) if not self.short_name: self.short_name = self.full_name self.slug = nslugify(self.short_name, self.year) super(Event, self).save(*args, **kwargs) # Publish RDF data if getattr(settings, 'ENABLE_RDF_PUBLISHING', False): save_event_as_rdf(self) update_event_object_triples(old_slug, self.slug)
def parse_journal(item): journal_slug = nslugify(item['data']['publicationTitle'], _parse_date(item).year, item['data'].get('volume'), item['data'].get('issue')) journal = get_or_default(Journal, Journal(), slug=journal_slug) journal.title = item['data']['publicationTitle'] journal.issn = _assign_if_exists(item, 'ISSN') journal.volume = _assign_if_exists(item, 'volume') journal.publisher = _assign_if_exists(item, 'publisher') journal.place = _assign_if_exists(item, 'place') journal.journal_abbreviation = _assign_if_exists(item, 'journalAbbrevation') journal.issue = _assign_if_exists(item, 'issue') journal.published = _parse_date(item) journal.year = journal.published.year journal.save() return journal
def parse_magazine(item): magazine = get_or_default( Magazine, Magazine(), slug=nslugify(item['data']['publicationTitle'], _parse_date(item).year, item['data'].get('volume'), item['data'].get('issue')), year=_parse_date(item).year, ) magazine.title = item['data']['publicationTitle'] magazine.issn = _assign_if_exists(item, 'ISSN') magazine.volume = _assign_if_exists(item, 'volume') magazine.issue = _assign_if_exists(item, 'issue') magazine.published = _parse_date(item) magazine.year = magazine.published.year magazine.save() return magazine
def parse_conference(item, proceedings): if 'conferenceName' in item['data'] and item['data']['conferenceName'] != '': event = get_or_default( Event, Event(), slug=nslugify(item['data']['conferenceName'], _parse_date(item).year), ) event.event_type = 'Academic event' event.full_name = item['data']['conferenceName'] if 'place' in item['data'] and item['data']['place'] != '': places_list = item['data']['place'].split(', ') if len(places_list) == 2: city_name = places_list[0] country_name = places_list[1] event_location = '' if city_name and city_name != '': city, created = City.objects.get_or_create( slug=slugify(city_name), defaults={ 'full_name': city_name, }, ) else: city = None if country_name and country_name != '' and city: country, created = Country.objects.get_or_create( slug=slugify(country_name), defaults={ 'full_name': country_name, }, ) if city: city.country = country city.save() else: country = None try: event_location = '%s (%s)' % (city_name, country_name) except: event_location = '' event.host_city = city event.host_country = country event.location = event_location event.start_date = _parse_date(item) event.year = event.start_date.year event.proceedings = proceedings event.save() return event else: return None
def _generate_slug(self): return nslugify(self.title, self.year, self.volume, self.issue)